From dfaae63b51ffc5885d67f22f28edcb4710179e89 Mon Sep 17 00:00:00 2001 From: zhangzhiqiang Date: Mon, 3 Apr 2023 09:45:12 +0800 Subject: [PATCH] =?UTF-8?q?rev:=E6=8E=A5=E5=8F=A3=E8=81=94=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/nl/common/utils/AcsUtil.java | 18 ++- .../acs/service/impl/AcsToWmsServiceImpl.java | 5 +- .../acs/service/impl/WmsToAcsServiceImpl.java | 14 ++- .../impl/ProduceshiftorderServiceImpl.java | 109 +++--------------- .../org/nl/wms/sch/manage/TaskStatusEnum.java | 3 +- .../nl/wms/sch/tasks/SpeMachineryTask.java | 9 +- .../src/main/java/org/nl/wms/sch/wql/sch.xls | Bin 183808 -> 183808 bytes 7 files changed, 56 insertions(+), 102 deletions(-) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/AcsUtil.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/AcsUtil.java index 5c4f137d..7154e6a3 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/AcsUtil.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/AcsUtil.java @@ -14,7 +14,10 @@ import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.wms.sch.manage.TaskStatusEnum; import org.springframework.http.HttpStatus; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; +import java.util.stream.Collectors; /** * ACS连接工具类: @@ -54,16 +57,27 @@ public class AcsUtil { result.put("data", new JSONObject()); } //acs抛异常这里 + List errorList = new ArrayList(); if (!StrUtil.equals(result.getString("status"), "200")) { - throw new BadRequestException("下发失败:"+result.getString("message")); + result.put("status", HttpStatus.BAD_REQUEST); + JSONArray errorArr = result.getJSONArray("result"); + if (errorArr !=null && errorArr.size()>0){ + errorList = errorArr.stream().map(a -> ((JSONObject) a).getString("task_id")).collect(Collectors.toList()); + } + result.put("message", result.getString("message")); + result.put("data", new JSONObject()); }else { //如果向ACS下发任务,变更任务状态为下发 if (api.equals("api/wms/task")){ for (int i = 0; i < list.size(); i++) { JSONObject task_jo = list.getJSONObject(i); + String task_id = task_jo.getString("task_id"); + if (errorList.contains(task_id)){ + continue; + } HashMap map = new HashMap<>(); map.put("task_status", TaskStatusEnum.ISSUE.getCode()); - WQLObject.getWQLObject("SCH_BASE_Task").update(map,"task_id = '"+task_jo.getString("ext_task_id")+"'"); + WQLObject.getWQLObject("SCH_BASE_Task").update(map,"task_id = '"+task_id+"'"); } } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 58464d15..ed31cfd7 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -109,7 +109,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ TaskDto taskDto = taskService.findById(task_id); String processing_class = taskDto.getHandle_class(); //1:执行中,2:完成 ,3:acs取消 - String acs_task_status = row.getString("task_status"); + String acs_task_status = row.getString("status"); String message = ""; String status = ""; if ("1".equals(acs_task_status)) { @@ -118,6 +118,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ if ("2".equals(acs_task_status)) { status = AcsTaskEnum.STATUS_FINISH.getCode(); } + if ("3".equals(acs_task_status)) { + status = AcsTaskEnum.STATUS_CANNEL.getCode(); + } // 任务处理类 try { Class clz = Class.forName(processing_class); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java index c297d0dd..c5e0a045 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java @@ -4,7 +4,9 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.nl.common.utils.AcsUtil; +import org.nl.common.utils.IdUtil; import org.nl.common.utils.MapOf; import org.nl.wms.ext.acs.service.WmsToAcsService; import org.springframework.context.annotation.Lazy; @@ -24,12 +26,14 @@ public class WmsToAcsServiceImpl implements WmsToAcsService{ JSONObject task = (JSONObject) o; JSONObject param = new JSONObject(MapOf.of("task_id", task.getString("task_id") , "acs_task_type", task.getString("acs_task_type") - , "start_point_code", task.getString("point_code1") - , "next_point_code", task.getString("point_code2") - , "return_point_code", task.getString("point_code3") - , "task_group_id", task.getString("task_group_id") + , "task_code", task.getString("task_code") + , "start_point_code", task.getString("point_code1")//起点 + , "put_point_code", task.getString("point_code2")//到料 + , "next_point_code", task.getString("point_code3")//空盘返回点 + , "task_group_id", StringUtils.isEmpty(task.getString("task_group_id"))? IdUtil.getStringId():task.getString("task_group_id") + , "task_type", task.getString("task_type") , "priority", task.getString("priority") - , "task_group_id", task.getString("is_send") + , "is_send", task.getString("is_send") , "vehicle_code", task.getString("vehicle_code") , "agv_system_type", task.getString("agv_system_type") )); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/impl/ProduceshiftorderServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/impl/ProduceshiftorderServiceImpl.java index c1eadc2a..343563c3 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/impl/ProduceshiftorderServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/impl/ProduceshiftorderServiceImpl.java @@ -242,106 +242,31 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService { @Override @Transactional(rollbackFor = Exception.class) public void openStart(JSONObject param) { - WQLObject wo = WQLObject.getWQLObject("MPS_BD_ProduceShiftOrder"); + WQLObject wo = WQLObject.getWQLObject("pdm_produce_workorder"); String currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); - //获取前台传入的开工的工单信息 - JSONObject row = param.getJSONObject("row"); - String device_id = row.getString("device_id"); - String produceorder_id = row.getString("produceorder_id"); + String workorder_id = param.getString("workorder_id"); + String device_code = param.getString("device_code"); - JSONObject result = wo.query("device_id = '" + device_id + "' and (order_status = '02' or order_status = '03') and produceorder_id != '" + produceorder_id + "'").uniqueResult(0); + JSONObject result = wo.query("current_device_code = '" + device_code + "' and workorder_status in ('2','3','4') and workorder_id != '" + workorder_id + "'").uniqueResult(0); if (ObjectUtil.isNotEmpty(result)) { throw new BadRequestException("已有工单选择该设备开工,请更换开工设备!"); } - String workprocedure_id = row.getString("workprocedure_id"); - String produceorder_code = row.getString("produceorder_code"); - String material_id = row.getString("material_id"); - String material_code = row.getString("material_code"); - String material_name = row.getString("material_name"); - String material_spec = row.getString("material_spec"); - String is_needmove = row.getString("is_needmove"); - String plan_qty = row.getString("plan_qty"); - String order_status = row.getString("order_status"); - //根据设备id获取设备编码 传给acs用 - WQLObject wo_device = WQLObject.getWQLObject("pdm_bi_device"); - JSONObject device = wo_device.query("device_id = '" + device_id + "'").uniqueResult(0); - String device_code = device.getString("device_code"); - //开工时修改生产班次工单表 生产设备、以及工单状态 - JSONObject jsonObject1 = wo.query("produceorder_id = '" + produceorder_id + "'").uniqueResult(0); - JSONObject produceorderMap = new JSONObject(); - produceorderMap.put("produceorder_id", produceorder_id); - produceorderMap.put("order_status", "02"); - produceorderMap.put("update_optid", currentUserId); - produceorderMap.put("update_optname", nickName); - produceorderMap.put("update_time", DateUtil.now()); - if (order_status.equals("01")) { - produceorderMap.put("realproducestart_date", DateUtil.now()); + + //TODO:开工时修改生产班次工单表 生产设备、以及工单状态 + + wo.update(MapOf.of("workorder_id",workorder_id,"workorder_status",WorkerOrderEnum.SEND.getCode(),"update_id", currentUserId,"update_name", nickName,"update_time", DateUtil.now())); + + JSONArray array = new JSONArray(); + JSONObject order = new JSONObject(MapOf.of("workorder_id", workorder_id,"type",WorkerOrderEnum.SEND.getCode())); + array.add(order); + Map resp = wmsToAcsService.orderStatusUpdate(array); + String status = String.valueOf(resp.get("status")); + String message = (String) resp.get("message"); + if (!status.equals("200")) { + throw new BadRequestException(message); } - wo.update(produceorderMap); - //同时工单记录表中插入一条数据 - WQLObject wo_record = WQLObject.getWQLObject("MPS_BD_MacOperateRecord"); - JSONObject recordMap = new JSONObject(); - recordMap.put("macoperate_id", IdUtil.getSnowflake(1, 1).nextId()); - recordMap.put("device_id", device_id); - recordMap.put("workprocedure_id", workprocedure_id); - recordMap.put("produceorder_id", produceorder_id); - recordMap.put("produceorder_code", produceorder_code); - recordMap.put("init_qty", jsonObject1.getString("real_qty")); - //填写生产记录表中的生产数量时,先判断是否已经生产过了,如果没有生产过,就将工单记录表中的计划数量付给记录表中的生产数量 - final JSONArray alreadyPro = wo_record.query("produceorder_id = '" + produceorder_id + "'").getResultJSONArray(0); - if (ObjectUtil.isEmpty(alreadyPro)) { - recordMap.put("produce_qty", plan_qty); - //同时向acs系统下发工单 问题是现在一个工单分多次执行,现在是每开工一次,向acs发送一次工单 - //acs那边就会新增多个工单 - //如果是第一次开工,就向acs下发工单 - JSONArray array = new JSONArray(); - JSONObject acsObj = new JSONObject(); - acsObj.put("ext_order_id", produceorder_id); - acsObj.put("is_needmove", is_needmove); - acsObj.put("order_code", produceorder_code); - acsObj.put("qty", plan_qty); - acsObj.put("material_uuid", material_id); - acsObj.put("material_code", material_code); - acsObj.put("material_name", material_name); - acsObj.put("material_spec", material_spec); - acsObj.put("device_code", device_code); - array.add(acsObj); - Map resp = wmsToAcsService.order(array); - String status = String.valueOf(resp.get("status")); - String message = (String) resp.get("message"); - if (!status.equals("200")) { - throw new BadRequestException(message); - } - } else { - Integer sum = 0; - //如果生产过了,就获取记录表中的报工数量,用计划数量减去生产过的报工数量的和,为这次的生产数量 - for (int i = 0; i < alreadyPro.size(); i++) { - JSONObject jsonObject = alreadyPro.getJSONObject(i); - String report_qty = jsonObject.getString("report_qty"); - sum += Integer.parseInt(report_qty); - } - Integer produce_qty = Integer.parseInt(plan_qty) - sum; - recordMap.put("produce_qty", produce_qty); - //wms向acs发送请求 工单恢复 - //如果不是第一次开工,就向acs发送恢复工单状态 - // TODO - JSONArray array = new JSONArray(); - JSONObject map = new JSONObject(); - map.put("ext_order_id", produceorder_id); - map.put("type", "2"); - array.add(map); - Map resp = wmsToAcsService.orderStatusUpdate(array); - String status = String.valueOf(resp.get("status")); - String message = (String) resp.get("message"); - if (!status.equals("200")) { - throw new BadRequestException(message); - } - } - recordMap.put("operatetime_start", DateUtil.now()); - recordMap.put("jockey_id", currentUserId); - wo_record.insert(recordMap); } @Override diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/TaskStatusEnum.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/TaskStatusEnum.java index 110167b9..5684e8bc 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/TaskStatusEnum.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/TaskStatusEnum.java @@ -10,7 +10,8 @@ public enum TaskStatusEnum { START_AND_POINT("4", "起点终点确认"), ISSUE("5", "下发"), EXECUTING("6", "执行中"), - FINISHED("7", "完成"); + FINISHED("7", "完成"), + CANCEL("8", "取消"); private String name; private String code; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/tasks/SpeMachineryTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/tasks/SpeMachineryTask.java index 85f65fc5..25b8a98c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/tasks/SpeMachineryTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/tasks/SpeMachineryTask.java @@ -42,7 +42,7 @@ public class SpeMachineryTask extends AbstractAcsTask { WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); log.info(InterfaceLogType.ACS_TO_LMS.getDesc()); // 指令执行中 - JSONObject task = taskTable.query("task_id = '" + param.getString("taskId") + "'").uniqueResult(0); + JSONObject task = taskTable.query("task_id = '" + param.getString("task_id") + "'").uniqueResult(0); AcsTaskEnum taskType = AcsTaskEnum.getType(task.getString("task_type"),"TASK_"); try { SpeHandles.get(taskType.name()).handle(param,status,task); @@ -133,6 +133,8 @@ public class SpeMachineryTask extends AbstractAcsTask { double currentQty = device.getDouble("deviceinstor_qty") + task.getDouble("material_qty"); deviceTable.update(MapOf.of("deviceinstor_qty", String.valueOf(currentQty)), "device_code = '" + pointInfo.getString("device_code") + "'"); break; + case STATUS_CANNEL: + cancel(param.getString("task_id")); default: log.error(OPT_NAME+"未定义任务状态:{}",sta); throw new BadRequestException(OPT_NAME+"未定义任务状态:"+sta); @@ -166,6 +168,8 @@ public class SpeMachineryTask extends AbstractAcsTask { //物料规格,物料名称 从物料信息表关联查询 )); break; + case STATUS_CANNEL: + cancel(param.getString("task_id")); default: throw new BadRequestException(OPT_NAME+"未定义任务状态:"+sta); } @@ -196,6 +200,9 @@ public class SpeMachineryTask extends AbstractAcsTask { double currentQty = device.getDouble("deviceinstor_qty") + task.getDouble("material_qty"); deviceTable.update(MapOf.of("deviceinstor_qty", String.valueOf(currentQty)), "device_code = '" + pointInfo.getString("device_code") + "'"); break; + case STATUS_CANNEL: + cancel(param.getString("task_id")); + break; default: throw new BadRequestException(OPT_NAME+"未定义任务状态:"+sta); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/wql/sch.xls b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/wql/sch.xls index 8531d1b3deaeaad7526f856b859a4d9b98ef9cca..b321442df4c977845c1701e4d5a82fe6c76ea276 100644 GIT binary patch delta 46372 zcmcJ22YgjU+WySVO(VS*0x1MYNFlw@lF&P$cL*Rzk>=8Z;7JrKE&>O+imodvDp(Pf zwLt_ds3>;qSXO1%6?Ap&@_(P1Idks0_u}sN?f1|9o#akA@AJIx^qKRXwA>WYa#O^F z<1fdZ+_^XXqpUC&!%v&|%?9>iLF~7);VeXk#qS{cJ&mh~SjHyPcf|d6_Uu{2&Y|#m zbj{_SxZSQUdzWqCTifL&gfYIDEnth;ELNgEW<$G)W@Eb$^ZIs+LQh=yTtf{DHrquE zn3&4Wkf5{1X21|5H-BJm$@=JdukR>j|J$@gcE-FVD#bKnGR$KU@n%e9RFp%s`F=z? z#fIdDvB0uFe|gUAd(a}k465`#ke^wYLF|OnROA#W_fgcdMbO5?zOUd z>to&+m0_ktr@9KcSsI;gz8jrtc8V!6heaovFGr=D&C$u`!RU@=R7|{iHY(NJPua)D zB$_j$)5+%H=C>ipR}}_m?Zht|TMZoLd3X(=_6O zqa13Oi{nyi5Caj?_%=ixt8>toFmqS|>n>n$bEp!B?}jDl--#$-DJ&sSVFxN7)Q!~t zsBU!dscRkG)l@aSD@R@+0ILEtuyoeZt0tkwWd7a_6WIf1aNHEW*KCSg8?=BuXkH(? zFz9@?&wM{_-oBm*8@OpCg_~a_C7Ji8$BXZONli8X-E|@@JF_C|BuixNsd0XHmbx;u zaQwK-MSLf7Spsz!N%5}qEVE}qM!PPQ_ANTOZ_VXNS?1TNsi7UD1oL=Wz8ROEYVJ;r ziPd6CRpKpaDLI|#HUaWFYof2|)X9oe#vY{jEXIB?Ur9G`$C01pOp?)#cCj|Ka#2W+|F72IpWEf0rUII2^Vq# z#TgnNzYV z&4XFzm5FL^6`rb=P|P965pS-~>SU-2AIeH)eO%|Pk5Dy^dz(f!C@EQ6)meXC{?#Z# z6u%d9x0F*5DH6N{sRUUq9D>YmI`)|0kS(p^FI&d@bN9BQ7i37dd39E$;g?_a?|!-} zD~cKypsmWbeXb_vUvtRqx#8ss;h&gs!k zwj#<}W42}`1fw#GZ_``^C$dpr<)}s8`bhgKeZ181E)Q=SGQOR8rc=2Q$Gs#e1V2ft zL}W>MNzx-REJ;k41u}qF?NhZLa#UxP<>-c`B^?$vf6D1#UYiwcpmX!FgyiXsYg>Y2 zxTr@C{8%#vAD${+!;&e)kCz>+Vaj|hH!j#ky2qN!+b3|Bc`Ua$L?kkERz`xLw5;_R-N;RE>20O%8m~lnaV!SGlTY^SnI7E(K z&O2?ARtF=E>puipMptsQab$dys8@tbMo$*?L6@`zjQ-bf}Zw>RdtACr4^?~I0 zl&}9_;Vnm+#L<{#Me%PVwjgK0Nnro{noz)sD1lWIk&Rj2;NRF}ytl@d(P1GH(KoWH)BfMnNJm`n&I7}_kCCr&CTGl$IP>(A?80yq~np z+hoetv$7-apd#Ws5gv>uXsg{4)c zrPb3tdYC^~l<^vKNmT)_g@_*JH$A#TxcPoh30+$o%X^taYYic+ve#f?t2)RaR=nPP zsb-P6esrw)W3NcFvQI9O&0l+Gh}1#m<&}#B*TH6SWqUJrW-K3K{%K^1*-%#&9wuyY zw$5$NYUsd6S^UO`ti=tnF=M?>X`V8Xsqt_3Unf-FUOC;#zZUy)fXu zSL-8P=J9c{=2v~w%^8D2&9;8AW^q6J`;vay<^%m>`T6Ek{R_Z|8z5Uc%m6THl8mv_YSB)Dqp6*Ef?P)?Lr}AGqHGJ zfZKd!bT7UF+7T_j()?ర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 delta 46871 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