diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/dp/service/imp/BigScreenServiceImpl.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/dp/service/imp/BigScreenServiceImpl.java index d4c099a..5feff1b 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/dp/service/imp/BigScreenServiceImpl.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/dp/service/imp/BigScreenServiceImpl.java @@ -1,7 +1,6 @@ package org.nl.wms.ext.dp.service.imp; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -13,8 +12,6 @@ import org.nl.modules.system.service.dto.UserDto; import org.nl.utils.RsaUtils; import org.nl.wms.ext.dp.service.BigScreenService; import org.nl.wql.WQL; -import org.nl.wql.core.bean.WQLObject; -import org.nl.wql.core.engine.object.WO; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; @@ -172,24 +169,6 @@ public class BigScreenServiceImpl implements BigScreenService { //查询熟化仓位信息 JSONArray allrows = WQL.getWO("QST_BIG_SCREEN").addParam("flag", "5").process() .getResultJSONArray(0); - //物料标签明细表【md_base_materialLabelDtl】 - WQLObject materialLabelDtlTab = WQLObject.getWQLObject("md_base_materialLabelDtl"); - //拼接库存信息 - for (int i = 0; i < allrows.size(); i++) { - JSONObject json = allrows.getJSONObject(i); - String labeldtl_uuid = json.getString("labeldtl_uuid"); - if (StrUtil.isNotEmpty(labeldtl_uuid)) { - JSONObject jsonObject1 = materialLabelDtlTab.query("labeldtl_uuid = '" + labeldtl_uuid + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(jsonObject1)) { - JSONObject labelObj = WQL.getWO("QST_BIG_SCREEN").addParam("flag", "12").addParam("labeldtl_uuid", labeldtl_uuid).process().uniqueResult(0); - //配方-批次-重量(YC-B8-1000) - String material_ivt_info = labelObj.getString("formula") + "-" + labelObj.getString("pcsn") + "-" + labelObj.getString("weight"); - json.put("material_ivt_info", material_ivt_info); - json.put("color", labelObj.getString("color")); - } - } - - } return allrows; } @@ -306,24 +285,6 @@ public class BigScreenServiceImpl implements BigScreenService { //查询恒温区信息 JSONArray allrows = WQL.getWO("QST_BIG_SCREEN").addParam("flag", "10").process() .getResultJSONArray(0); - //物料标签明细表【md_base_materialLabelDtl】 - WQLObject materialLabelDtlTab = WQLObject.getWQLObject("md_base_materialLabelDtl"); - //拼接库存信息 - for (int i = 0; i < allrows.size(); i++) { - JSONObject json = allrows.getJSONObject(i); - String labeldtl_uuid = json.getString("labeldtl_uuid"); - if (StrUtil.isNotEmpty(labeldtl_uuid)) { - JSONObject jsonObject1 = materialLabelDtlTab.query("labeldtl_uuid = '" + labeldtl_uuid + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(jsonObject1)) { - JSONObject labelObj = WQL.getWO("QST_BIG_SCREEN").addParam("flag", "12").addParam("labeldtl_uuid", labeldtl_uuid).process().uniqueResult(0); - //配方-批次-重量(YC-B8-1000) - String material_ivt_info = labelObj.getString("formula") + "-" + labelObj.getString("pcsn") + "-" + labelObj.getString("weight"); - json.put("material_ivt_info", material_ivt_info); - json.put("color", labelObj.getString("color")); - } - } - - } return allrows; } } diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/dp/wql/QST_BIG_SCREEN.wql b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/dp/wql/QST_BIG_SCREEN.wql index f056c97..9a99fef 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/dp/wql/QST_BIG_SCREEN.wql +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/dp/wql/QST_BIG_SCREEN.wql @@ -170,9 +170,13 @@ IF 输入.flag = "3" material.material_code, material.pcsn, material.formula, + material.color, point.point_code AS struct_code, ivt.label_code, ivt.labeldtl_uuid, + round( q.quantity, 0 ) AS quantity, + round( ivt.canuse_weight, 0 ) AS weight, + concat(material.formula,'-',material.pcsn,'-',round( ivt.canuse_weight, 0 )) AS material_ivt_info, CASE WHEN point.is_active = '0' THEN @@ -181,7 +185,6 @@ IF 输入.flag = "3" '3' ELSE '5' END AS struct_type, point.vehicle_code AS storagevehicle_code, - round ( ivt.canuse_qty, 0 ) AS quantity, "" AS pcsn, '在库' AS STATUS, ivt.instorage_time, @@ -198,6 +201,18 @@ IF 输入.flag = "3" sch_base_point point LEFT JOIN st_ivt_structivt ivt ON ivt.struct_uuid = point.point_uuid LEFT JOIN md_base_materialLabelMst material ON material.label_uuid = ivt.label_uuid + LEFT JOIN ( + SELECT + i.label_uuid, + count(*) AS quantity + FROM + st_ivt_structivt i + LEFT JOIN sch_base_point p ON i.struct_uuid = p.point_uuid + WHERE + p.area_type IN ( '01', '02' ) + GROUP BY + i.label_uuid + ) AS q ON ivt.label_uuid = q.label_uuid WHERE point.area_type IN ('01','02' ) ENDSELECT @@ -344,9 +359,14 @@ IF 输入.flag = "8" material.material_code, material.pcsn, material.formula, + material.color, point.point_code AS struct_code, + point.point_uuid, ivt.label_code, ivt.labeldtl_uuid, + round( q.quantity, 0 ) AS quantity, + round( ivt.canuse_weight, 0 ) AS weight, + concat(material.formula,'-', material.pcsn,'-',round( ivt.canuse_weight, 0 )) AS material_ivt_info, CASE WHEN point.point_status = '01' THEN @@ -356,17 +376,27 @@ IF 输入.flag = "8" WHEN ( point.is_active = '0' ) THEN '3' ELSE '4' END AS struct_type, - point.vehicle_code AS storagevehicle_code, - round( ivt.canuse_qty, 0 ) AS quantity, - "" AS pcsn, - ivt.instorage_time, - "" AS status_name + point.vehicle_code AS storagevehicle_code FROM sch_base_point point LEFT JOIN st_ivt_structivt ivt ON ivt.struct_uuid = point.point_uuid LEFT JOIN md_base_materialLabelMst material ON material.label_uuid = ivt.label_uuid + LEFT JOIN ( + SELECT + i.label_uuid, + count(*) AS quantity + FROM + st_ivt_structivt i + LEFT JOIN sch_base_point p ON i.struct_uuid = p.point_uuid + WHERE + p.area_type IN ( '03' ) + GROUP BY + i.label_uuid + ) AS q ON ivt.label_uuid = q.label_uuid WHERE - point.area_type IN ('03' ) + point.area_type IN ( + '03' + ) ENDSELECT ENDQUERY ENDIF @@ -391,25 +421,3 @@ IF 输入.flag = "8" ENDQUERY ENDIF - - IF 输入.flag = "12" - QUERY - SELECT - mst.material_uuid, - mst.material_code, - mst.material_name, - mst.formula, - mst.pcsn, - mst.color, - dtl.weight - FROM - md_base_materialLabelDtl dtl - LEFT JOIN md_base_materialLabelMst mst ON dtl.label_uuid = mst.label_uuid - where 1=1 - OPTION 输入.labeldtl_uuid <> "" - dtl.labeldtl_uuid = 输入.labeldtl_uuid - ENDOPTION - ENDSELECT - ENDQUERY - ENDIF - diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/ProduceTaskServiceImpl.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/ProduceTaskServiceImpl.java index 57ec1b4..4a3886c 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/ProduceTaskServiceImpl.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/ProduceTaskServiceImpl.java @@ -25,10 +25,8 @@ import org.nl.wms.sch.tasks.InEmptyVehicleTask; import org.nl.wms.sch.tasks.MaterialBackTask; import org.nl.wms.sch.tasks.TaskTypeEnum; import org.nl.wms.st.core.IOStoreMst; -import org.nl.wms.st.core.enu.EmptyVehicleBillStatusEnum; import org.nl.wms.st.core.service.EmptyVehicleService; import org.nl.wms.st.core.service.IOStoreService; -import org.nl.wms.st.core.service.dto.EmptyVehicleDto; import org.nl.wms.st.util.StructFindUtil; import org.nl.wql.WQL; import org.nl.wql.core.bean.WQLObject; @@ -386,12 +384,29 @@ public class ProduceTaskServiceImpl implements ProduceTaskService { if (ObjectUtil.isEmpty(map)) { throw new BadRequestException("没有要完成的任务"); } - String produce_uuid = MapUtil.getStr(map, "produce_uuid"); + /* String produce_uuid = MapUtil.getStr(map, "produce_uuid"); //生产任务表【pdm_base_produceTask】 WQLObject produceTaskTab = WQLObject.getWQLObject("pdm_base_produceTask"); JSONObject produceTaskObj = produceTaskTab.query("is_delete='0' and produce_uuid = '" + produce_uuid + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(produceTaskObj)) throw new BadRequestException("生产任务已完成或被删除,操作失败!"); + produceTaskObj.put("produce_status", "02"); + produceTaskTab.update(produceTaskObj);*/ + + + //生产任务表【pdm_base_produceTask】 + String produce_uuid = MapUtil.getStr(map, "produce_uuid"); + WQLObject taskTab = WQLObject.getWQLObject("pdm_base_produceTask"); + String currentUsername = SecurityUtils.getCurrentUsername(); + String now = DateUtil.now(); + + JSONObject taskObj = taskTab.query("produce_uuid = '" + produce_uuid + "'").uniqueResult(0); + taskObj.put("produce_status", "02"); + taskObj.put("remark", "强制结束完成"); + taskObj.put("update_by", currentUsername); + taskObj.put("update_time", now); + taskTab.update(taskObj); + + /* if (ObjectUtil.isEmpty(produceTaskObj)) throw new BadRequestException("生产任务已完成或被删除,操作失败!"); String produce_status = produceTaskObj.optString("produce_status"); if (StrUtil.equals("00", produce_status)) { throw new BadRequestException("生产任务未叫料,不能生产完成!"); @@ -442,7 +457,7 @@ public class ProduceTaskServiceImpl implements ProduceTaskService { map.put("produce_status", ProducStatus.FINISHED.getCode()); map.put("end_time", now); } - WQLObject.getWQLObject("pdm_base_produceTask").update(map); + WQLObject.getWQLObject("pdm_base_produceTask").update(map);*/ } @Override diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/dto/PointDto.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/dto/PointDto.java index 8310f48..9010ba5 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/dto/PointDto.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/dto/PointDto.java @@ -97,6 +97,8 @@ public class PointDto implements Serializable { */ private String label_uuid; private String material_uuid; + private String label_code; + private String weight; } diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java index 87bdabd..c609ef4 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java @@ -115,8 +115,7 @@ public class PointServiceImpl implements PointService { // 获取数据 String label_uuid = dto.getLabel_uuid(); - String point_type1 = dto.getPoint_type1(); // 点位类型 - String struct_code = dto.getPoint_code(); // 点位编码就是仓位编码 + String point_type1 = dto.getPoint_type1(); String point_status = dto.getPoint_status(); String vehicle_code = dto.getVehicle_code(); String material_uuid = dto.getMaterial_uuid(); @@ -124,59 +123,34 @@ public class PointServiceImpl implements PointService { WQLObject structIvtTab = WQLObject.getWQLObject("ST_IVT_StructIvt"); WQLObject materialLabelTab = WQLObject.getWQLObject("md_base_materialLabelMst"); WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point"); - WQLObject structTab = WQLObject.getWQLObject("st_base_struct"); - JSONObject structIvtObj = null; - JSONObject structObj = null; - JSONObject materialLabelObj = null; - - if (ObjectUtil.isNotEmpty(struct_code)) { - structObj = structTab.query("struct_code = '" + struct_code + "'").uniqueResult(0); - } - - // 通过载具号获取仓位库存信息 - if (ObjectUtil.isNotEmpty(structObj)) { - structIvtObj = structIvtTab.query("struct_uuid = '" + structObj.getString("struct_uuid") + "'").uniqueResult(0); - } - - if (ObjectUtil.isNotEmpty(label_uuid)) { - materialLabelObj = materialLabelTab.query("label_uuid = '" + label_uuid + "'").uniqueResult(0); - } if (point_type1.equals("01")) { // 仓位的时候需要对仓位库存进行操作 + structIvtTab.delete("struct_uuid = '" + dto.getPoint_uuid() + "'"); + if (point_status.equals("00")) { // 空位 - // 删除仓位库存 - if (ObjectUtil.isNotEmpty(structIvtObj)) structIvtTab.delete(structIvtObj); vehicle_code = null; } else if (point_status.equals("01")) { // 空载具 - if (ObjectUtil.isNotEmpty(structIvtObj)) structIvtTab.delete(structIvtObj); + } else { // 有箱有料 + JSONObject materialLabelObj = materialLabelTab.query("label_uuid = '" + label_uuid + "'").uniqueResult(0); if (ObjectUtil.isEmpty(materialLabelObj)) throw new BadRequestException("物料不能为空"); - if (ObjectUtil.isEmpty(vehicle_code)) throw new BadRequestException("载具编码不能为空"); - if (ObjectUtil.isEmpty(structIvtObj)) { // 仓位库存为空就插入 - JSONObject structIvt = new JSONObject(); - structIvt.put("stockrecord_uuid", IdUtil.simpleUUID()); - structIvt.put("struct_uuid", structObj.getString("struct_uuid")); - structIvt.put("stand_hour", materialLabelObj.getString("stand_hour")); - structIvt.put("label_uuid", label_uuid); - structIvt.put("canuse_qty", "1"); - structIvt.put("ivt_qty", "1"); - structIvt.put("ivt_weight", "1"); - structIvt.put("qty_unit_uuid", "2FE6EC94FF82441FADD6E78BA833CABC"); - structIvt.put("weight_unit_uuid", "9F8D4F6046494CC0AC1EB17B09570A2C"); - structIvt.put("material_uuid", material_uuid); - structIvt.put("vehicle_code", vehicle_code); - structIvt.put("instorage_time", DateUtil.now()); - structIvtTab.insert(structIvt); - } else { // 修改 - structIvtObj.put("struct_uuid", structObj.getString("struct_uuid")); - structIvtObj.put("label_uuid", label_uuid); - structIvtObj.put("stand_hour", materialLabelObj.getString("stand_hour")); - structIvtObj.put("material_uuid", material_uuid); - structIvtObj.put("vehicle_code", vehicle_code); - structIvtObj.put("instorage_time", DateUtil.now()); - structIvtTab.update(structIvtObj); - } + if (ObjectUtil.isEmpty(dto.getWeight())) throw new BadRequestException("重量不能为空"); + JSONObject structIvt = new JSONObject(); + structIvt.put("stockrecord_uuid", IdUtil.simpleUUID()); + structIvt.put("struct_uuid", dto.getPoint_uuid()); + structIvt.put("stand_hour", materialLabelObj.getString("stand_hour")); + structIvt.put("label_uuid", label_uuid); + structIvt.put("canuse_qty", "1"); + structIvt.put("ivt_qty", "1"); + structIvt.put("canuse_weight", dto.getWeight()); + structIvt.put("ivt_weight", dto.getWeight()); + structIvt.put("qty_unit_uuid", "2FE6EC94FF82441FADD6E78BA833CABC"); + structIvt.put("weight_unit_uuid", "9F8D4F6046494CC0AC1EB17B09570A2C"); + structIvt.put("material_uuid", material_uuid); + structIvt.put("vehicle_code", vehicle_code); + structIvt.put("instorage_time", DateUtil.now()); + structIvtTab.insert(structIvt); } } // 点位修改 diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InEmptyVehicleTask.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InEmptyVehicleTask.java index 1dd91b9..460a748 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InEmptyVehicleTask.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InEmptyVehicleTask.java @@ -70,10 +70,13 @@ public class InEmptyVehicleTask extends AbstractAcsTask { //解锁下一点位 JSONObject nextPoint = pointTab.query("point_code='" + taskObj.optString("next_point_code") + "'").uniqueResult(0); - nextPoint.put("lock_type", "00"); - nextPoint.put("point_status", "01"); - nextPoint.put("vehicle_code", taskObj.optString("vehicle_code")); - pointTab.update(nextPoint); + if (ObjectUtil.isNotEmpty(nextPoint)){ + nextPoint.put("lock_type", "00"); + nextPoint.put("point_status", "01"); + nextPoint.put("vehicle_code", taskObj.optString("vehicle_code")); + pointTab.update(nextPoint); + } + } diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/ivt/StoreIvtServiceImpl.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/ivt/StoreIvtServiceImpl.java index dbab002..9a667d7 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/ivt/StoreIvtServiceImpl.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/ivt/StoreIvtServiceImpl.java @@ -164,6 +164,22 @@ public class StoreIvtServiceImpl { throw new BadRequestException("变动类型不正确!"); } json.put("vehicle_code", vehicle_code); + + + //更新标签和重量信息 + WQLObject dtlTab = WQLObject.getWQLObject("md_base_materiallabeldtl"); + String labeldtl_uuid = json.getString("labeldtl_uuid"); + if (ObjectUtil.isNotEmpty(labeldtl_uuid)){ + JSONObject labDtl = dtlTab.query("labeldtl_uuid = '" + labeldtl_uuid + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(labDtl)){ + json.put("label_code",labDtl.getString("label_code")); + json.put("canuse_weight",labDtl.getString("weight")); + json.put("ivt_weight", labDtl.getString("weight")); + json.put("qty_unit_uuid", "2FE6EC94FF82441FADD6E78BA833CABC"); + json.put("weight_unit_uuid", "9F8D4F6046494CC0AC1EB17B09570A2C"); + } + } + stackIvtTab.insert(json); } // 对应的货位上有物料,需判断数量重量相关字段是否符合实际逻辑,符合时更新相应记录 diff --git a/wms/hd/nladmin-system/src/main/resources/logback-spring.xml b/wms/hd/nladmin-system/src/main/resources/logback-spring.xml index c3532ba..67a968e 100644 --- a/wms/hd/nladmin-system/src/main/resources/logback-spring.xml +++ b/wms/hd/nladmin-system/src/main/resources/logback-spring.xml @@ -63,7 +63,7 @@ https://juejin.cn/post/6844903775631572999 - + diff --git a/wms/qd/lms前端.zip b/wms/qd/lms前端.zip new file mode 100644 index 0000000..b1c5428 Binary files /dev/null and b/wms/qd/lms前端.zip differ diff --git a/wms/qd/src/layout/components/Navbar.vue b/wms/qd/src/layout/components/Navbar.vue index 198b8e6..77ef601 100644 --- a/wms/qd/src/layout/components/Navbar.vue +++ b/wms/qd/src/layout/components/Navbar.vue @@ -16,9 +16,9 @@ - + diff --git a/wms/qd/src/views/wms/pdm/produceTask/bigScreen.vue b/wms/qd/src/views/wms/pdm/produceTask/bigScreen.vue index 129bc87..47ec4f8 100644 --- a/wms/qd/src/views/wms/pdm/produceTask/bigScreen.vue +++ b/wms/qd/src/views/wms/pdm/produceTask/bigScreen.vue @@ -1,7 +1,7 @@