rev:损益支持多个托盘

This commit is contained in:
2026-04-23 15:04:03 +08:00
parent 17759bb6d8
commit f53d9ac0f8
8 changed files with 90 additions and 64 deletions

View File

@@ -710,6 +710,7 @@ public class HandNewMaterialServiceImpl implements HandNewMaterialService {
public Map<String, Object> getBillDtl(Map<String, String> jsonObject, HttpContext ctx) {
HashMap<String, String> map = new HashMap<>();
map.put("flag", "2");
map.put("pcsn", jsonObject.get("pcsn"));
JSONObject jo = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParamMap(map).pageQuery(ctx, "input_time desc");
JSONObject returnjo = new JSONObject();
returnjo.put("code", "1");
@@ -727,6 +728,8 @@ public class HandNewMaterialServiceImpl implements HandNewMaterialService {
HashMap<String, String> map = new HashMap<>();
map.put("flag", "8");
map.put("clsss_ids", class_idStr);
map.put("startTime", jsonObject.get("startTime"));
map.put("endTime", jsonObject.get("endTime"));
String material_search = jsonObject.get("material_search");
String bill_code = jsonObject.get("bill_code");
if (StrUtil.isNotEmpty(material_search)){

View File

@@ -46,6 +46,19 @@ public class PointServiceImpl implements PointService {
map.put("point_type", whereJson.get("point_type"));
map.put("name", whereJson.get("name"));
JSONObject json = WQL.getWO("QSCH_BASE_POINT").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "point_code asc");
JSONArray content = json.getJSONArray("content");
for (int i = 0; i < content.size(); i++) {
JSONObject jsonNum = content.getJSONObject(i);
if (ObjectUtil.isNotEmpty(jsonNum.getString("vehicle_code"))) {
JSONArray resultJSONArray = WQLObject.getWQLObject("md_pb_bucketrecord")
.query("storagevehicle_code = '" + jsonNum.getString("vehicle_code") + "'")
.getResultJSONArray(0);
jsonNum.put("num", resultJSONArray.size());
} else {
jsonNum.put("num", "0");
}
}
json.put("content",content);
return json;
}

View File

@@ -15,9 +15,12 @@
#################################################
输入.flag TYPEAS s_string
输入.bill_code TYPEAS s_string
输入.pcsn TYPEAS s_string
输入.material_search TYPEAS s_string
输入.end_time TYPEAS s_string
输入.begin_time TYPEAS s_string
输入.startTime TYPEAS s_string
输入.endTime TYPEAS s_string
输入.bill_status TYPEAS s_string
输入.bill_code TYPEAS s_string
输入.create_mode TYPEAS s_string
@@ -154,6 +157,9 @@
OPTION 输入.end_time <> ""
rm.receive_date <= 输入.end_time
ENDOPTION
OPTION 输入.pcsn <> ""
rd.pcsn = 输入.pcsn
ENDOPTION
ENDSELECT
ENDPAGEQUERY
ENDIF
@@ -347,6 +353,12 @@
ENDOPTION
OPTION 输入.end_time <> ""
pp.CREATE_DATE <= 输入.end_time
ENDOPTION
OPTION 输入.startTime <> ""
SUBSTRING(pp.CREATE_DATE,1,10) >= 输入.startTime
ENDOPTION
OPTION 输入.endTime <> ""
SUBSTRING(pp.CREATE_DATE,1,10) <= 输入.endTime
ENDOPTION
ENDSELECT
ENDPAGEQUERY

View File

@@ -123,10 +123,10 @@ public class MoreOrLessServiceImpl implements MoreOrLessService {
row.put("storagevehicle_id", nowjo.getString("storagevehicle_id"));
row.put("storagevehicle_code", nowjo.getString("storagevehicle_code"));
row.put("storagevehicle_type", nowjo.getString("storagevehicle_type"));
row.put("sect_id", (String) whereJson.get("sect_id"));
row.put("sect_name", (String) whereJson.get("sect_name"));
row.put("struct_id", (String) whereJson.get("struct_id"));
row.put("struct_name", (String) whereJson.get("struct_name"));
row.put("sect_id", (String) row.get("sect_id"));
row.put("sect_name", (String) row.get("sect_name"));
row.put("struct_id", (String) row.get("struct_id"));
row.put("struct_name", (String) row.get("struct_name"));
row.put("seq_no", (i + 1) + "");
row.put("status", "10");
WQLObject.getWQLObject("ST_IVT_MoreOrLessDtl").insert(row);
@@ -288,42 +288,43 @@ public class MoreOrLessServiceImpl implements MoreOrLessService {
this.updateBucket(mol_row, mol_type);
mol_row.put("status", "99");
wo_dtl.update(mol_row);
}
//损溢后仓位库存
JSONArray new_struct_rows = WQLObject.getWQLObject("ST_IVT_StructIvt").query("struct_id = '" + whereJson.get("struct_id") + "'").getResultJSONArray(0);
//损溢后仓位库存
JSONArray new_struct_rows = WQLObject.getWQLObject("ST_IVT_StructIvt").query("struct_id = '" + mol_row.get("struct_id") + "'").getResultJSONArray(0);
//将损溢仓位进行解锁
HashMap<String, String> map = new HashMap<>();
//如果损溢后库存为0将载具清空损溢后库存大于0将载具绑定
if (old_struct_rows.size() == 0 && new_struct_rows.size() > 0) {
String vehicle_code = mol_rows.getJSONObject(0).getString("storagevehicle_code");
String storagevehicle_id = mol_rows.getJSONObject(0).getString("storagevehicle_id");
String storagevehicle_type = mol_rows.getJSONObject(0).getString("storagevehicle_type");
map.put("point_status", "02");
map.put("vehicle_code", vehicle_code);
WQLObject.getWQLObject("sch_base_point").update(map, "point_code = '" + whereJson.get("struct_code") + "'");
HashMap<String, String> struct_map = new HashMap<>();
struct_map.put("storagevehicle_id", storagevehicle_id);
struct_map.put("storagevehicle_code", vehicle_code);
struct_map.put("storagevehicle_type", storagevehicle_type);
struct_map.put("is_emptyvehicle", "0");
WQLObject.getWQLObject("ST_IVT_StructAttr").update(struct_map, "struct_code = '" + whereJson.get("struct_code") + "'");
//将损溢仓位进行解锁
HashMap<String, String> map = new HashMap<>();
//如果损溢后库存为0将载具清空损溢后库存大于0将载具绑定
JSONObject attrJson = WQLObject.getWQLObject("ST_IVT_StructAttr").query("struct_id = '" + mol_row.get("struct_id") + "'").uniqueResult(0);
if (old_struct_rows.size() == 0 && new_struct_rows.size() > 0) {
String vehicle_code = mol_row.getString("storagevehicle_code");
String storagevehicle_id = mol_row.getString("storagevehicle_id");
String storagevehicle_type = mol_row.getString("storagevehicle_type");
map.put("point_status", "02");
map.put("vehicle_code", vehicle_code);
WQLObject.getWQLObject("sch_base_point").update(map, "point_code = '" + attrJson.get("struct_code") + "'");
HashMap<String, String> struct_map = new HashMap<>();
struct_map.put("storagevehicle_id", storagevehicle_id);
struct_map.put("storagevehicle_code", vehicle_code);
struct_map.put("storagevehicle_type", storagevehicle_type);
struct_map.put("is_emptyvehicle", "0");
WQLObject.getWQLObject("ST_IVT_StructAttr").update(struct_map, "struct_code = '" + attrJson.get("struct_code") + "'");
}
if (old_struct_rows.size() > 0 && new_struct_rows.size() == 0) {
map.put("point_status", "00");
map.put("vehicle_code", "");
WQLObject.getWQLObject("sch_base_point").update(map, "point_code = '" + attrJson.get("struct_code") + "'");
HashMap<String, String> struct_map = new HashMap<>();
struct_map.put("storagevehicle_id", "");
struct_map.put("storagevehicle_code", "");
struct_map.put("storagevehicle_type", "");
struct_map.put("is_emptyvehicle", "1");
WQLObject.getWQLObject("ST_IVT_StructAttr").update(struct_map, "struct_code = '" + attrJson.get("struct_code") + "'");
}
map.put("lock_type", "00");
WQLObject.getWQLObject("ST_IVT_StructAttr").update(map, "struct_id = '" + attrJson.get("struct_id") + "'");
WQLObject.getWQLObject("sch_base_point").update(map, "point_code = '" + attrJson.get("struct_code") + "'");
}
if (old_struct_rows.size() > 0 && new_struct_rows.size() == 0) {
map.put("point_status", "00");
map.put("vehicle_code", "");
WQLObject.getWQLObject("sch_base_point").update(map, "point_code = '" + whereJson.get("struct_code") + "'");
HashMap<String, String> struct_map = new HashMap<>();
struct_map.put("storagevehicle_id", "");
struct_map.put("storagevehicle_code", "");
struct_map.put("storagevehicle_type", "");
struct_map.put("is_emptyvehicle", "1");
WQLObject.getWQLObject("ST_IVT_StructAttr").update(struct_map, "struct_code = '" + whereJson.get("struct_code") + "'");
}
map.put("lock_type", "00");
WQLObject.getWQLObject("ST_IVT_StructAttr").update(map, "struct_id = '" + whereJson.get("struct_id") + "'");
WQLObject.getWQLObject("sch_base_point").update(map, "point_code = '" + whereJson.get("struct_code") + "'");
//更新损溢单主表
mst.put("status", "99");

View File

@@ -52,28 +52,18 @@
PAGEQUERY
SELECT
mst.*,
a.total_qty,
a.struct_name,
sa.struct_code,
sa.struct_id,
sa.sect_id,
sa.sect_name
a.total_qty
FROM
st_ivt_moreorlessmst mst
LEFT JOIN (
SELECT
dtl.struct_name,
dtl.struct_id,
SUM( dtl.mol_qty ) AS total_qty,
dtl.mol_id
FROM
st_ivt_moreorlessdtl dtl
GROUP BY
dtl.struct_name,
dtl.mol_id,
dtl.struct_id
dtl.mol_id
) a ON a.mol_id = mst.mol_id
LEFT JOIN st_ivt_structattr sa ON sa.struct_id = a.struct_id
WHERE
mst.is_delete = '0'
OPTION 输入.bill_code <> ""
@@ -98,11 +88,6 @@
mst.input_time <= 输入.end_time
ENDOPTION
OPTION 输入.struct_search <> ""
(
sa.struct_code = 输入.struct_search
OR
sa.struct_name = 输入.struct_search
)
ENDOPTION
ENDSELECT
ENDPAGEQUERY

View File

@@ -223,6 +223,7 @@
<el-table-column prop="lock_type_name" label="锁定类型" />
<el-table-column prop="area_type_name" label="所属区域" width="110" />
<el-table-column prop="vehicle_code" label="载具编码" />
<el-table-column prop="num" label="桶数" />
<el-table-column prop="taskdtl_type" label="锁定任务类型" width="110" :formatter="taskdtl_typeFormat" />
<el-table-column prop="task_code" label="锁定任务编码" width="100" />
<el-table-column prop="inv_code" label="锁定单据编码" width="130" />

View File

@@ -61,8 +61,8 @@
/>
</el-select>
</el-form-item>
<el-form-item label="货位" prop="struct_code">
<label slot="label">货&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;位:</label>
<el-form-item label="添加货位" prop="struct_code">
<label slot="label">添加货位:</label>
<el-input v-model.trim="form.struct_code" style="width: 210px" disabled placeholder="选择货位">
<el-button v-show="crud.status.view <= 0" slot="append" icon="el-icon-plus" @click="queryStruct()" />
</el-input>
@@ -128,6 +128,7 @@
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
>
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column prop="struct_name" label="货位名称" align="center" min-width="150" show-overflow-tooltip />
<el-table-column show-overflow-tooltip prop="storagevehicle_code" label="载具号" align="center" width="150px">
<template scope="scope">
<el-input v-show="!scope.row.edit && scope.row.is_add" v-model="scope.row.storagevehicle_code" size="mini" />
@@ -367,11 +368,11 @@ export default {
return false
}
const vehicle_code = this.form.tableData[i].storagevehicle_code
const same = this.form.tableData.some(mater => mater.storagevehicle_code !== vehicle_code)
if (same) {
this.crud.notify('存在不同载具号', CRUD.NOTIFICATION_TYPE.INFO)
return false
}
// const same = this.form.tableData.some(mater => mater.storagevehicle_code !== vehicle_code)
// if (same) {
// this.crud.notify('存在不同载具号', CRUD.NOTIFICATION_TYPE.INFO)
// return false
// }
}
},
billTypeChange(val) {
@@ -418,9 +419,20 @@ export default {
this.form.sect_id = row.sect_id
this.form.sect_name = row.sect_name
this.form.struct_name = row.struct_name
// 向列表添加数据
crudMoreOrless.getStructIvt({ 'struct_id': row.struct_id }).then(res => {
this.form.tableData = res
this.form.dtl_num = this.form.tableData.length
res.forEach((item) => {
let same_mater = true
for (let i = 0; i < this.form.tableData.length; i++) {
if (this.form.tableData[i].bucketunique === item.bucketunique) {
same_mater = false
}
}
if (same_mater) {
this.form.tableData.splice(-1, 0, item)
this.form.dtl_num += 1
}
})
})
},

View File

@@ -139,7 +139,6 @@
</template>
</el-table-column>
<el-table-column :formatter="typeFormat" prop="mol_inv_type" label="损溢类型" />
<el-table-column prop="struct_name" label="货位" min-width="150" />
<el-table-column label="明细数" align="center" prop="dtl_num" min-width="100" />
<el-table-column label="重量" align="center" prop="total_qty" min-width="100" >
<template slot-scope="scope">