From c84b5095edcc5bebc6724c11db4919b443704599 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Tue, 2 Jul 2024 10:39:04 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=99=9F=E5=8D=8E=E4=BA=8C=E6=9C=9F?= =?UTF-8?q?=E6=89=8B=E6=8C=81=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/nl/wms/pda/rest/PdaController.java | 58 ++++++++ .../org/nl/wms/pda/service/PdaService.java | 46 +++++++ .../wms/pda/service/impl/PdaServiceImpl.java | 127 ++++++++++++++++++ .../java/org/nl/wms/pda/util/PdaUtils.java | 14 ++ .../src/main/java/org/nl/wms/pda/wql/PDA.wql | 17 +++ .../nl/wms/pdm/service/dto/WorkorderDto.java | 1 + .../send/material/HLSendMaterialTask.java | 15 +++ .../send/material/YZSendMaterialTask.java | 19 ++- .../src/main/java/org/nl/wms/wms.xls | Bin 283648 -> 332288 bytes .../views/wms/pdm/workerorder/hl/index.vue | 14 +- .../src/views/wms/pdm/workerorder/index.vue | 11 +- 11 files changed, 319 insertions(+), 3 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/rest/PdaController.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/rest/PdaController.java index db71db3..ecebe03 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/rest/PdaController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/rest/PdaController.java @@ -466,4 +466,62 @@ public class PdaController { pdaService.samplingCountNum(param); return PdaUtils.buildSuccessResultJSON(null); } + // ==================================================================== + @PostMapping("/manual/loamCompare/list") + @Log("搬运点位下拉框") + @ApiOperation("搬运点位下拉框") + @PdaAnnotation + public JSONObject getLoamComparePointList() { + return PdaUtils.buildSuccessResultJSON(pdaService.getLoamComparePointList()); + } + @PostMapping("/manual/loamCompare/doCheck") + @Log("校验任务与组盘是否一致") + @ApiOperation("校验任务与组盘是否一致") + @PdaAnnotation + public JSONObject getLoamCompareDoCheck(@RequestBody JSONObject param) { + return PdaUtils.buildSuccessResultWithMessage(pdaService.getLoamCompareDoCheck(param)); + } + // ==================================================================== + + @PostMapping("/manual/updateInfo/getInfo") + @Log("根据载具编码获取组盘信息") + @ApiOperation("根据载具编码获取组盘信息") + @PdaAnnotation + public JSONObject getGroupInfoByVehicleCode(@RequestBody JSONObject param) { + return PdaUtils.buildSuccessResultJSON(pdaService.getGroupInfoByVehicleCode(param)); + } + + @PostMapping("/manual/updateInfo/updateWeight") + @Log("修改料盅重量") + @ApiOperation("修改料盅重量") + @PdaAnnotation + public JSONObject doUpdateWeight(@RequestBody JSONObject param) { + pdaService.doUpdateWeight(param); + return PdaUtils.buildSuccessResultJSON(null); + } + // ==================================================================== + @PostMapping("/manual/updateInfo/updateQty") + @Log("修改重量/数量") + @ApiOperation("修改重量/数量") + @PdaAnnotation + public JSONObject doUpdateQty(@RequestBody JSONObject param) { + pdaService.doUpdateQty(param); + return PdaUtils.buildSuccessResultJSON(null); + } + // ==================================================================== + @PostMapping("/manual/unbindVehicle/checkHaveMaterial") + @Log("校验托盘是否有货") + @ApiOperation("校验托盘是否有货") + @PdaAnnotation + public JSONObject checkHaveMaterial(@RequestBody JSONObject param) { + return PdaUtils.buildSuccessResultJSON(pdaService.checkHaveMaterial(param)); + } + @PostMapping("/manual/unbindVehicle/doUnbindVehicle") + @Log("解绑托盘信息") + @ApiOperation("解绑托盘信息") + @PdaAnnotation + public JSONObject doUnbindVehicle(@RequestBody JSONObject param) { + pdaService.doUnbindVehicle(param); + return PdaUtils.buildSuccessResultWithMessage("成功解绑"); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/service/PdaService.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/service/PdaService.java index 6a486fe..83af362 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/service/PdaService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/service/PdaService.java @@ -262,4 +262,50 @@ public interface PdaService { * @return / */ JSONArray kilnMoveCreateTaskShow(); + + /** + * 获取泥料比对的点位列表 + * @return / + */ + JSONArray getLoamComparePointList(); + + /** + * 校验任务与组盘是否一致 + * @param param / + * @return / + */ + String getLoamCompareDoCheck(JSONObject param); + + /** + * 查询数据 + * @param param / + * @return / + */ + JSONObject getGroupInfoByVehicleCode(JSONObject param); + + /** + * 更新料盅重量 + * @param param / + * @return / + */ + void doUpdateWeight(JSONObject param); + + /** + * 修改重量/数量 + * @param param / + */ + void doUpdateQty(JSONObject param); + + /** + * 校验托盘是否有货 + * @param param / + * @return / + */ + JSONObject checkHaveMaterial(JSONObject param); + + /** + * 校验托盘是否有货 + * @param param / + */ + void doUnbindVehicle(JSONObject param); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java index 3686663..c246126 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java @@ -18,6 +18,8 @@ import org.nl.wms.basedata.eum.StandStatus; import org.nl.wms.basedata.eum.TrueOrFalse; import org.nl.wms.basedata.eum.VehicleType; import org.nl.wms.common.PickType; +import org.nl.wms.das.service.GroupUpdateRecordService; +import org.nl.wms.das.service.dto.GroupUpdateRecordDto; import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.pda.service.PdaService; import org.nl.wms.sch.manage.*; @@ -69,6 +71,8 @@ public class PdaServiceImpl implements PdaService { private final WmsToAcsService wmsToAcsService; + private final GroupUpdateRecordService groupUpdateRecordService; + @Override public JSONArray region(String func) { switch (func) { @@ -1195,4 +1199,127 @@ public class PdaServiceImpl implements PdaService { public JSONArray kilnMoveCreateTaskShow() { return this.getTaskList(TaskType.PDA_VEHICLE_TRANSFER.value()); } + + @Override + public JSONArray getLoamComparePointList() { + return getPositionList(); + } + + @Override + public String getLoamCompareDoCheck(JSONObject param) { + // param: point_code、vehicle_code + WQLObject taskTab = WQLObject.getWQLObject("sch_base_task"); + JSONObject taskObj = taskTab.query("point_code2 = '" + param.getString("point_code") + "' AND point_type = '" + + TaskType.PDA_PRESS_UP.value() + "'", "update_time desc").uniqueResult(0); + if (taskObj.getString("vehicle_code").equals(param.getString("vehicle_code"))) { + return "检测符合!"; + } + return "检测不符合!"; + } + + @Override + public JSONObject getGroupInfoByVehicleCode(JSONObject param) { + // param: vehicle_code, vehicle_type + JSONObject info = WQL.getWO("PDA") + .addParam("flag", "10") + .addParam("vehicle_code", param.getString("vehicle_code")) + .addParam("vehicle_type", param.getString("vehicle_type")) + .process() + .uniqueResult(0); + if (ObjectUtil.isEmpty(info)) { + throw new BadRequestException("托盘:[" + param.getString("vehicle_code") + "]的组盘信息不存在!"); + } + return info; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void doUpdateWeight(JSONObject param) { + // param: vehicle_code, vehicle_type, current_weight + // 更新、记录信息 + WQLObject vdTab = WQLObject.getWQLObject("st_ivt_vehicle_detail"); + JSONObject info = vdTab.query("vehicle_code = '" + param.getString("vehicle_code") + "' AND vehicle_type = '" + + param.getString("vehicle_type") + "' AND is_delete = '0'").uniqueResult(0); + if (ObjectUtil.isEmpty(info)) { + throw new BadRequestException("托盘:[" + param.getString("vehicle_code") + "]的组盘信息不存在!"); + } + // 插入记录 + GroupUpdateRecordDto dto = new GroupUpdateRecordDto(); + dto.setGroup_id(info.getString("vd_id")); + dto.setOrign_weight(info.getString("weight")); + dto.setCurrent_weight(param.getString("current_weight")); + dto.setVehicle_code(param.getString("vehicle_code")); + dto.setVehicle_type(param.getString("vehicle_type")); + dto.setUpdate_type("1"); + groupUpdateRecordService.create(dto); + info.put("weight", param.getString("current_weight")); + TaskUtils.addCurrentUpdateColum(info); + vdTab.update(info); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void doUpdateQty(JSONObject param) { + // param: vehicle_code, vehicle_type, current_weight,current_qty + // 更新、记录信息 + WQLObject vdTab = WQLObject.getWQLObject("st_ivt_vehicle_detail"); + JSONObject info = vdTab.query("vehicle_code = '" + param.getString("vehicle_code") + "' AND vehicle_type = '" + + param.getString("vehicle_type") + "' AND is_delete = '0'").uniqueResult(0); + if (ObjectUtil.isEmpty(info)) { + throw new BadRequestException("托盘:[" + param.getString("vehicle_code") + "]的组盘信息不存在!"); + } + // 获取重量 + BigDecimal currentWeight = param.getBigDecimal("current_weight"); + // 获取数量 + BigDecimal currentQty = param.getBigDecimal("current_qty"); + if (ObjectUtil.isEmpty(currentQty)) { + currentQty = info.getBigDecimal("weight"); + } + // 插入记录 + GroupUpdateRecordDto dto = new GroupUpdateRecordDto(); + dto.setGroup_id(info.getString("vd_id")); + dto.setOrign_weight(info.getString("weight")); + dto.setCurrent_weight(String.valueOf(currentWeight.multiply(currentQty))); + dto.setOrign_qty(info.getString("qty")); + dto.setCurrent_qty(param.getString("current_qty")); + dto.setVehicle_code(param.getString("vehicle_code")); + dto.setVehicle_type(param.getString("vehicle_type")); + dto.setUpdate_type( + (ObjectUtil.isEmpty(param.getString("current_weight")) && ObjectUtil.isNotEmpty(param.getString("current_qty"))) + ? "2" : + (ObjectUtil.isNotEmpty(param.getString("current_weight")) && ObjectUtil.isNotEmpty(param.getString("current_qty"))) + ? "3" : "1"); + groupUpdateRecordService.create(dto); + info.put("weight", param.getString("current_weight")); + TaskUtils.addCurrentUpdateColum(info); + vdTab.update(info); + } + + @Override + public JSONObject checkHaveMaterial(JSONObject param) { + JSONObject res = new JSONObject(); + // param: vehicle_code, vehicle_type + WQLObject vdTab = WQLObject.getWQLObject("st_ivt_vehicle_detail"); + JSONObject info = vdTab.query("vehicle_code = '" + param.getString("vehicle_code") + "' AND vehicle_type = '" + + param.getString("vehicle_type") + "' AND is_delete = '0'").uniqueResult(0); + if (ObjectUtil.isEmpty(info)) { + res.put("message", "该托盘系统中无组盘信息!"); + return res; + } + res.put("message", "该托盘系统中存在组盘信息,如需解绑,请点击确认!"); + return res; + } + + @Override + public void doUnbindVehicle(JSONObject param) { + WQLObject vdTab = WQLObject.getWQLObject("st_ivt_vehicle_detail"); + JSONObject info = vdTab.query("vehicle_code = '" + param.getString("vehicle_code") + "' AND vehicle_type = '" + + param.getString("vehicle_type") + "' AND is_delete = '0'").uniqueResult(0); + if (ObjectUtil.isEmpty(info)) { + throw new BadRequestException("托盘:[" + param.getString("vehicle_code") + "]的组盘信息不存在!"); + } + info.put("is_delete", "1"); + TaskUtils.addCurrentUpdateColum(info); + vdTab.update(info); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/util/PdaUtils.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/util/PdaUtils.java index e770d79..70be18f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/util/PdaUtils.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/util/PdaUtils.java @@ -3,6 +3,8 @@ package org.nl.wms.pda.util; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import javax.validation.constraints.NotNull; + /** * 辽宁晟华手持工具类 * @@ -26,6 +28,18 @@ public final class PdaUtils { return resultJSON; } + /** + * 调用成功,返回String + * @param result / + * @return / + */ + public static JSONObject buildSuccessResultWithMessage(@NotNull String result) { + JSONObject resultJSON = new JSONObject(); + resultJSON.put("code", "1"); + resultJSON.put("desc", result); + return resultJSON; + } + /** * 服务层调用方法 * 创建操作失败的 JSONObject diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/wql/PDA.wql b/lms/nladmin-system/src/main/java/org/nl/wms/pda/wql/PDA.wql index 5ff5a2f..83c45bc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/wql/PDA.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/wql/PDA.wql @@ -18,6 +18,8 @@ 输入.region_code TYPEAS s_string 输入.handle_class TYPEAS s_string 输入.task_type TYPEAS s_string + 输入.vehicle_code TYPEAS s_string + 输入.vehicle_type TYPEAS s_string 输入.point_type TYPEAS f_string 输入.types TYPEAS f_string @@ -203,3 +205,18 @@ ENDSELECT ENDQUERY ENDIF + IF 输入.flag = "10" + QUERY + SELECT + vd.qty, + vd.weight, + mm.material_code, + mm.weight AS single_weight, + mm.material_brick_type + FROM + `st_ivt_vehicle_detail` vd + LEFT JOIN md_me_materialbase mm ON vd.material_id = mm.material_id + WHERE vd.vehicle_code = 输入.vehicle_code AND vd.vehicle_type = 输入.vehicle_type AND vd.is_delete = '0' + ENDSELECT + ENDQUERY + ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/dto/WorkorderDto.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/dto/WorkorderDto.java index 54b1207..bea933d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/dto/WorkorderDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/dto/WorkorderDto.java @@ -112,4 +112,5 @@ public class WorkorderDto implements Serializable { private String region_code; private String plan_date; + private String is_auto; } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/HLSendMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/HLSendMaterialTask.java index 795c0d2..cd0e5dc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/HLSendMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/HLSendMaterialTask.java @@ -81,6 +81,7 @@ public class HLSendMaterialTask extends AbstractAcsTask { @Override public void findNextPoint() { WQLObject task_table = WQLObject.getWQLObject("sch_base_task"); + WQLObject vdTable = WQLObject.getWQLObject("st_ivt_vehicle_detail"); JSONArray tasks = task_table .query("is_delete = '0' AND task_status = '" + TaskStatus.SURE_START.value() + "' AND handle_class = '" + HLSendMaterialTask.class.getName() + "'", "priority DESC, create_time ASC") .getResultJSONArray(0); @@ -94,6 +95,20 @@ public class HLSendMaterialTask extends AbstractAcsTask { JSONObject point1 = point_table.query("point_code = '" + task.getString("point_code1") + "'").uniqueResult(0); JSONObject point2 = null; JSONObject workorder = WQL.getWO("SEND_MATERIAL_TASK").addParam("flag", "8").addParam("vd_id", task.getString("group_id")).process().uniqueResult(0); + // 此处判断是否不需要AGV,如果不需要直接创建人工任务,todo 状态目前设置完成。。。 + if ("0".equals(workorder.getString("is_auto"))) { + task.put("task_status", TaskStatus.FINISHED.value()); + task.put("point_code2", "KLXNK"); + task.put("remark", ""); + TaskUtils.addAutoUpdateColum(task); + task_table.update(task); + // 为了库存,把点位编码设置成虚拟库 + JSONObject pa = new JSONObject(); + pa.put("point_code", "KLXNK"); + TaskUtils.addAutoUpdateColum(pa); + vdTable.update(pa, "vd_id = '" + task.getString("group_id") + "'"); + break; + } if (ObjectUtil.isNotEmpty(point1) && "2".equals(point1.getString("point_type")) && ObjectUtil.isNotEmpty(workorder) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/YZSendMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/YZSendMaterialTask.java index 305121e..44ad4db 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/YZSendMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/YZSendMaterialTask.java @@ -79,6 +79,7 @@ public class YZSendMaterialTask extends AbstractAcsTask { @Override public void findNextPoint() { WQLObject task_table = WQLObject.getWQLObject("sch_base_task"); + WQLObject vdTable = WQLObject.getWQLObject("st_ivt_vehicle_detail"); JSONArray tasks = task_table .query("is_delete = '0' AND task_status = '" + TaskStatus.SURE_START.value() + "' AND handle_class = '" + YZSendMaterialTask.class.getName() + "'", "priority DESC, create_time ASC") .getResultJSONArray(0); @@ -89,6 +90,22 @@ public class YZSendMaterialTask extends AbstractAcsTask { for (int i = 0; i < tasks.size(); i++) { JSONObject task = tasks.getJSONObject(i); + // 获取工单 + JSONObject workorder = WQL.getWO("SEND_MATERIAL_TASK").addParam("flag", "8").addParam("vd_id", task.getString("group_id")).process().uniqueResult(0); + if ("0".equals(workorder.getString("is_auto"))) { + task.put("task_status", TaskStatus.FINISHED.value()); + task.put("point_code2", "YQXNK"); + task.put("remark", ""); + TaskUtils.addAutoUpdateColum(task); + task_table.update(task); + // 为了库存,把点位编码设置成虚拟库 + JSONObject pa = new JSONObject(); + pa.put("point_code", "YQXNK"); + TaskUtils.addAutoUpdateColum(pa); + vdTable.update(pa, "vd_id = '" + task.getString("group_id") + "'"); + break; + } + JSONObject point = WQL .getWO("SEND_MATERIAL_TASK") .addParam("flag", "1") @@ -185,7 +202,7 @@ public class YZSendMaterialTask extends AbstractAcsTask { && current_task_status < Integer.parseInt(TaskStatus.START_AND_END.value())) { throw new BadRequestException("只能手动完成 [确认起点和终点] 之后的任务!"); } - + task.put("task_status", TaskStatus.FINISHED.value()); if (operation_type == OperationType.AUTO) { TaskUtils.addACSUpdateColum(task); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/wms.xls b/lms/nladmin-system/src/main/java/org/nl/wms/wms.xls index 5bb1e68d9980eb23bb6b0f781c41daba065ff68e..2a89f1097f65e635cb88578b3617f770610c6bb1 100644 GIT binary patch delta 61312 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 Nod@l4Ym0Nh{4cd+@tgnv delta 20092 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 + + + + + + + + @@ -310,7 +318,8 @@ const defaultForm = { qualified_qty: '0', unqualified_qty: '0', region_code: null, - plan_date: null + plan_date: null, + is_auto: '1' } export default { name: 'HLWorkorder', @@ -359,6 +368,9 @@ export default { device_name: [ { required: true, message: '生产设备不能为空', trigger: 'change' } ], + is_auto: [ + { required: true, message: '是否自动不能为空', trigger: 'blur' } + ], is_urgent: [ { required: true, message: '是否加急不能为空', trigger: 'blur' } ], diff --git a/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue b/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue index 6d172ef..7b941fe 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue @@ -179,6 +179,14 @@ + + + + + + + + @@ -449,7 +457,8 @@ const defaultForm = { qualified_qty: '0', unqualified_qty: '0', region_code: null, - plan_date: null + plan_date: null, + is_auto: '1' } export default { name: 'Produceshiftorder',