From 2f59a0e74d808db36853918e734def67a6ed90a8 Mon Sep 17 00:00:00 2001 From: "ZHOUZ\\Noble'lift" <1014987728@qq.com> Date: Fri, 23 Dec 2022 09:23:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/nl/wms/basedata/st/wql/stivt.xls | Bin 306688 -> 307200 bytes .../wms/ext/acs/rest/AcsToWmsController.java | 7 + .../wms/ext/acs/service/AcsToWmsService.java | 9 + .../acs/service/impl/AcsToWmsServiceImpl.java | 181 ++++++++---- .../crm/service/impl/CrmToLmsServiceImpl.java | 4 + .../mes/service/impl/MesToLmsServiceImpl.java | 274 ++++++++++-------- .../sap/service/impl/SapToLmsServiceImpl.java | 1 + .../main/java/org/nl/wms/ext/wql/QCRM_001.wql | 4 + .../java/org/nl/wms/pda/mps/wql/PDA_02.wql | 32 ++ .../service/impl/CoolPointIvtServiceImpl.java | 1 + .../SlittingproductionplanServiceImpl.java | 24 ++ .../nl/wms/pdm/wql/ST_IVT_COOLPOINTIVT.wql | 4 + .../org/nl/wms/sch/tasks/CutTrussTask.java | 32 +- .../impl/RawAssistIStorServiceImpl.java | 68 ++--- .../service/impl/StorPublicServiceImpl.java | 7 +- .../st/inbill/wql/QST_IVT_RAWASSISTISTOR.wql | 3 + .../service/impl/HandMoveStorServiceImpl.java | 9 +- .../service/impl/CheckOutBillServiceImpl.java | 6 +- .../impl/InAndOutRetrunServiceImpl.java | 18 +- .../wms/pdm/ivt/coolpointivt/inventory.vue | 29 +- .../views/wms/pdm/ivt/cutpointivt/index.vue | 11 +- .../wms/pdm/ivt/hotpointivt/pointIvt.vue | 16 +- 22 files changed, 478 insertions(+), 262 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/stivt.xls b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/stivt.xls index e1e2d8fae1c2cd6cf5273d1e2e6c89be47aef3ec..eb0467b6837894e528fc5f8cad3898b3bb83e115 100644 GIT binary patch delta 33714 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 delta 32932 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.deviceApply(jo), HttpStatus.OK); } + @PostMapping("/process") + @Log("RCS上报密集库任务异常处理") + @ApiOperation("RCS上报密集库任务异常处理") + public ResponseEntity process(@RequestBody JSONObject jo) { + return new ResponseEntity<>(acsToWmsService.process(jo), HttpStatus.OK); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java index f6c2de94d..8e84247a0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java @@ -60,4 +60,13 @@ public interface AcsToWmsService { */ JSONObject deviceApply(JSONObject whereJson); + /** + * ACS客户端--->LMS服务端 + * RCS上报密集库任务异常处理 + * + * @param whereJson 条件 + * @return JSONObject + */ + JSONObject process(JSONObject whereJson); + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 29028775a..2fbdd2f69 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -21,6 +21,7 @@ import org.nl.wms.sch.service.TaskService; import org.nl.wms.sch.tasks.EmptyVehicleTask; import org.nl.wms.sch.tasks.SendOutTask; import org.nl.wms.st.inbill.service.RawAssistIStorService; +import org.nl.wms.st.inbill.service.StorPublicService; import org.nl.wms.st.inbill.service.impl.RawAssistIStorServiceImpl; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; @@ -39,6 +40,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { private final PrintService printService; private final RawAssistIStorService rawAssistIStorService; + + private final StorPublicService storPublicService; + /** * task_id:任务标识 * task_code:任务编码 @@ -62,8 +66,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { //1:执行中,2:完成 ,3:acs取消 String acs_task_status = row.getString("task_status"); String car_no = row.getString("car_no"); - if (StrUtil.isNotEmpty(car_no)){ - taskObj.put("car_no",car_no); + if (StrUtil.isNotEmpty(car_no)) { + taskObj.put("car_no", car_no); WQLObject.getWQLObject("SCH_BASE_Task").update(taskObj); } String message = ""; @@ -194,21 +198,21 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { * 3.空盘出库任务 * 4.出库口申请入发货区任务 */ - if (type.equals("1")){ + if (type.equals("1")) { //通过该木箱码查询对应的分配明细 - JSONArray dis_rows = WQLObject.getWQLObject("st_ivt_iostorinvdis").query("work_status = '00' AND box_no = '"+vehicle_code+"'").getResultJSONArray(0); - if (ObjectUtil.isEmpty(dis_rows)){ - throw new BadRequestException("未查询到木箱:"+vehicle_code+"相关入库分配明细记录!"); + JSONArray dis_rows = WQLObject.getWQLObject("st_ivt_iostorinvdis").query("work_status = '00' AND box_no = '" + vehicle_code + "'").getResultJSONArray(0); + if (ObjectUtil.isEmpty(dis_rows)) { + throw new BadRequestException("未查询到木箱:" + vehicle_code + "相关入库分配明细记录!"); } Map map = new HashMap(); - map.put("tableMater",dis_rows); - map.put("point_code",device_code); - map.put("checked",true); - map.put("auto_issue","1"); + map.put("tableMater", dis_rows); + map.put("point_code", device_code); + map.put("checked", true); + map.put("auto_issue", "1"); //自动分配货位并下发任务 rawAssistIStorService.divStruct(map); } - if (type.equals("2")){ + if (type.equals("2")) { //查询一个可用的空载具点位并下发给ACS /* * 1、优先存放空托盘区、托盘号默认99999;空托盘区没有位置,再找空巷道,或者空巷道有空位置的货位。 @@ -217,7 +221,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { b、没有,则优先找空的巷道;按空位置顺序分配; 3、任务下发,判断巷道的任务类型,只能为空盘入库或者无任务类型; * */ - JSONObject empty_row = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("flag","21").process().uniqueResult(0); + JSONObject empty_row = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("flag", "21").process().uniqueResult(0); JSONObject struct_jo = new JSONObject(); if (ObjectUtil.isNotEmpty(empty_row)) { @@ -231,15 +235,15 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' order by out_order_seq").uniqueResult(0); } } - if (ObjectUtil.isEmpty(struct_jo)){ + if (ObjectUtil.isEmpty(struct_jo)) { throw new BadRequestException("未查询到可用的空载具存放点位!"); } JSONObject task_jo = new JSONObject(); - task_jo.put("point_code1",device_code); - task_jo.put("point_code2",struct_jo.getString("struct_code")); - task_jo.put("task_type","010502"); - task_jo.put("vehicle_code",vehicle_code); + task_jo.put("point_code1", device_code); + task_jo.put("point_code2", struct_jo.getString("struct_code")); + task_jo.put("task_type", "010502"); + task_jo.put("vehicle_code", vehicle_code); EmptyVehicleTask task = new EmptyVehicleTask(); task.createTask(task_jo); @@ -249,7 +253,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { point_table.update(map, "point_code = '" + struct_jo.getString("struct_code") + "'"); struct_table.update(map, "struct_code = '" + struct_jo.getString("struct_code") + "'"); } - if (type.equals("3")){ + if (type.equals("3")) { //查询一个可用的空载具点位并下发给ACS /* * 1、优先存放空托盘区、托盘号默认99999;空托盘区没有位置,再找空巷道,或者空巷道有空位置的货位。 @@ -258,7 +262,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { b、没有,则优先找空的巷道;按空位置顺序分配; 3、任务下发,判断巷道的任务类型,只能为空盘入库或者无任务类型; * */ - JSONObject empty_row = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("flag","22").process().uniqueResult(0); + JSONObject empty_row = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("flag", "22").process().uniqueResult(0); JSONObject struct_jo = new JSONObject(); if (ObjectUtil.isNotEmpty(empty_row)) { @@ -272,15 +276,15 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' order by out_order_seq desc").uniqueResult(0); } } - if (ObjectUtil.isEmpty(struct_jo)){ + if (ObjectUtil.isEmpty(struct_jo)) { throw new BadRequestException("未查询到可用的空载具!"); } JSONObject task_jo = new JSONObject(); - task_jo.put("point_code1",struct_jo.getString("struct_code")); - task_jo.put("point_code2",device_code); - task_jo.put("task_type","010504"); - task_jo.put("vehicle_code",struct_jo.getString("vehicle_code")); + task_jo.put("point_code1", struct_jo.getString("struct_code")); + task_jo.put("point_code2", device_code); + task_jo.put("task_type", "010504"); + task_jo.put("vehicle_code", struct_jo.getString("vehicle_code")); EmptyVehicleTask task = new EmptyVehicleTask(); task.createTask(task_jo); @@ -290,64 +294,69 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { point_table.update(map, "point_code = '" + struct_jo.getString("struct_code") + "'"); struct_table.update(map, "struct_code = '" + struct_jo.getString("struct_code") + "'"); } - if (type.equals("4")){ + if (type.equals("4")) { //查询该木箱对应的包装关系 - JSONObject sub_jo = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '"+vehicle_code+"'").uniqueResult(0); - if (ObjectUtil.isEmpty(sub_jo)){ + JSONObject sub_jo = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + vehicle_code + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(sub_jo)) { throw new BadRequestException("未查询到该木箱对应的包装关系!"); } String sale_order_name = sub_jo.getString("sale_order_name"); //查询是否存在可用的空位 - JSONObject jo = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("flag","19").addParam("sale_order_name",sale_order_name).process().uniqueResult(0); - if (ObjectUtil.isEmpty(jo)){ + JSONObject jo = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("flag", "19").addParam("sale_order_name", sale_order_name).process().uniqueResult(0); + if (ObjectUtil.isEmpty(jo)) { //查询新的一排 - JSONObject point_jo = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("flag","20").process().uniqueResult(0); - if (ObjectUtil.isEmpty(point_jo)){ + JSONObject point_jo = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("flag", "20").process().uniqueResult(0); + if (ObjectUtil.isEmpty(point_jo)) { throw new BadRequestException("未查询到相同销售订单的放货区点位或空的一排!"); - }else { - jo = WQLObject.getWQLObject("sch_base_point").query("row_num = '"+point_jo.getString("row_num")+"' AND point_type ='9' AND is_delete = '0'").uniqueResult(0); + } else { + jo = WQLObject.getWQLObject("sch_base_point").query("row_num = '" + point_jo.getString("row_num") + "' AND point_type ='9' AND is_delete = '0'").uniqueResult(0); } } //创建任务 JSONObject task_jo = new JSONObject(); - task_jo.put("point_code1",device_code); - task_jo.put("point_code2",jo.getString("point_cde")); - task_jo.put("vehicle_code",vehicle_code); - task_jo.put("task_type","010506"); + task_jo.put("point_code1", device_code); + task_jo.put("point_code2", jo.getString("point_cde")); + task_jo.put("vehicle_code", vehicle_code); + task_jo.put("task_type", "010506"); SendOutTask sendOutTask = new SendOutTask(); sendOutTask.createTask(task_jo); } - return null; + JSONObject result = new JSONObject(); + result.put("status", HttpStatus.OK.value()); + result.put("message", "下发成功!"); + return result; } @Override public JSONObject deviceApply(JSONObject whereJson) { String vehicle_code = whereJson.getString("vehicle_code"); String type = whereJson.getString("type"); - if (StrUtil.isEmpty(vehicle_code)){ + if (StrUtil.isEmpty(vehicle_code)) { throw new BadRequestException("木箱码不能为空!"); } - if (StrUtil.isEmpty(type)){ + if (StrUtil.isEmpty(type)) { throw new BadRequestException("任务类型不能为空!"); } JSONObject result = new JSONObject(); + result.put("status", HttpStatus.OK.value()); + result.put("message", "反馈成功!"); - JSONObject sub_jo = WQLObject.getWQLObject("").query("package_box_sn = '"+vehicle_code+"'").uniqueResult(0); - if (ObjectUtil.isEmpty(sub_jo)){ + JSONObject sub_jo = WQLObject.getWQLObject("").query("package_box_sn = '" + vehicle_code + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(sub_jo)) { throw new BadRequestException("未查询到该木箱对应的包装关系!"); } - if (type.equals("1")){ + if (type.equals("1")) { //贴标申请 String print_type = sub_jo.getString("print_type"); - if (StrUtil.isEmpty(print_type)){ + if (StrUtil.isEmpty(print_type)) { throw new BadRequestException("请指定一台打印机进行打印!"); } String print_code = ""; - switch (print_type){ + switch (print_type) { case "1": print_code = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("print_device1").getValue(); break; @@ -357,25 +366,89 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { default: throw new BadRequestException("未查询到对应打印机!"); } - JSONObject print_info = WQLObject.getWQLObject("pdm_bi_printinfo").query("print_name = '"+print_code+"'").uniqueResult(0); + JSONObject print_info = WQLObject.getWQLObject("pdm_bi_printinfo").query("print_name = '" + print_code + "'").uniqueResult(0); JSONObject print_jo = new JSONObject(); - print_jo.put("box_no",vehicle_code); - print_jo.put("print_type",print_info.getString("print_id")); + print_jo.put("box_no", vehicle_code); + print_jo.put("print_type", print_info.getString("print_id")); printService.customerPrint(print_jo); - }else if (type.equals("2")){ + } else if (type.equals("2")) { //捆扎申请 String box_length = sub_jo.getString("box_length"); String box_width = sub_jo.getString("box_width"); String box_high = sub_jo.getString("box_high"); - result.put("box_length",box_length); - result.put("box_width",box_width); - result.put("box_high",box_high); - result.put("bundle_times",2); - }else { + result.put("box_length", box_length); + result.put("box_width", box_width); + result.put("box_high", box_high); + result.put("bundle_times", 2); + } else { throw new BadRequestException("请输入正确的任务类型!"); } return result; } + @Override + public JSONObject process(JSONObject whereJson) { + String vehicle_code = whereJson.getString("vehicle_code"); + String ext_task_id = whereJson.getString("ext_task_id"); + String srcLocation = whereJson.getString("srcLocation"); + String dtl_type = whereJson.getString("dtl_type"); + log.info("ACS提示原货位:" + srcLocation + "被占用,需要重新分配货位!"); + //锁定原货位 + HashMap unlock_map = new HashMap(); + unlock_map.put("lock_type", "99"); + unlock_map.put("taskdtl_type", ""); + unlock_map.put("taskdtl_id", ""); + unlock_map.put("task_code", ""); + unlock_map.put("inv_type", ""); + unlock_map.put("inv_id", ""); + unlock_map.put("inv_code", ""); + WQLObject.getWQLObject("sch_base_point").update(unlock_map, "point_code = '" + srcLocation + "'"); + WQLObject.getWQLObject("ST_IVT_StructAttr").update(unlock_map, "struct_code = '" + srcLocation + "'"); + + JSONObject old_struct = WQLObject.getWQLObject("ST_IVT_StructAttr").query("struct_code = '" + srcLocation + "'").uniqueResult(0); + //根据木箱码和任务号查询对应的分配明细 + JSONArray dis_rows = WQLObject.getWQLObject("ST_IVT_IOStorInvDis").query("box_no = '" + vehicle_code + "' AND task_id = '" + ext_task_id + "'").getResultJSONArray(0); + + //查询一个新的货位 + JSONObject str_jo = new JSONObject(); + str_jo.put("box_no", vehicle_code); + str_jo.put("sect_id", "1582991348217286656"); + JSONObject new_str = rawAssistIStorService.autoDis(str_jo); + JSONObject mst_jo = WQLObject.getWQLObject("ST_IVT_IOStorInv").query("iostorinv_id = '" + dis_rows.getJSONObject(0).getString("iostorinv_id") + "'").uniqueResult(0); + + //更新分配数据 + HashMap dis_map = new HashMap(); + dis_map.put("struct_id", new_str.getString("struct_id")); + dis_map.put("struct_code", new_str.getString("struct_code")); + dis_map.put("struct_name", new_str.getString("struct_name")); + WQLObject.getWQLObject("ST_IVT_IOStorInvDis").update(dis_map, "box_no = '" + vehicle_code + "' AND task_id = '" + ext_task_id + "'"); + //取消分配之前的货位 + for (int i = 0; i < dis_rows.size(); i++) { + JSONObject i_form = new JSONObject(); + JSONObject dis_row = dis_rows.getJSONObject(i); + i_form.put("struct_id", old_struct.getString("struct_id")); + i_form.put("material_id", dis_row.getString("material_id")); + i_form.put("quality_scode", dis_row.getString("quality_scode")); + i_form.put("pcsn", dis_row.getString("pcsn")); + i_form.put("ivt_level", dis_row.getString("ivt_level")); + i_form.put("change_qty", dis_row.getString("plan_qty")); + i_form.put("bill_type_scode", mst_jo.getString("bill_type")); + i_form.put("inv_id", mst_jo.getString("iostorinv_id")); + i_form.put("bill_code", mst_jo.getString("bill_code")); + i_form.put("bill_table", "ST_IVT_IOStorInv"); + i_form.put("qty_unit_id", dis_row.getString("qty_unit_id")); + i_form.put("qty_unit_name", dis_row.getString("qty_unit_name")); + storPublicService.IOStor(i_form, "32"); + i_form.put("struct_id", new_str.getString("struct_id")); + storPublicService.IOStor(i_form, "31"); + } + JSONObject result = new JSONObject(); + result.put("status", HttpStatus.OK.value()); + result.put("message", "变更货位成功!"); + result.put("srcLocation", old_struct.getString("struct_code")); + result.put("destLocation", new_str.getString("struct_code")); + result.put("dtl_type", "1"); + return result; + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/crm/service/impl/CrmToLmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/crm/service/impl/CrmToLmsServiceImpl.java index 92029505e..8d635c5b1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/crm/service/impl/CrmToLmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/crm/service/impl/CrmToLmsServiceImpl.java @@ -109,6 +109,7 @@ public class CrmToLmsServiceImpl implements CrmToLmsService { String dateoffginbound = jo.getString("dateoffginbound"); String packageboxsn = jo.getString("packageboxsn"); String container_name = jo.getString("container_name"); + String pcsn = jo.getString("pcsn"); HashMap map = new HashMap<>(); if (StrUtil.isNotEmpty(material_code)) { @@ -150,6 +151,9 @@ public class CrmToLmsServiceImpl implements CrmToLmsService { if (StrUtil.isNotEmpty(container_name)) { map.put("container_name", container_name); } + if (StrUtil.isNotEmpty(pcsn)) { + map.put("sap_pcsn", pcsn); + } //将查询条件带入,查询LMS成品库库存信息 JSONArray rows = WQL.getWO("QCRM_001").addParamMap(map).addParam("flag", "1").process().getResultJSONArray(0); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java index 7d847a0e8..cdd865df9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java @@ -13,12 +13,14 @@ import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.SecurityUtils; import org.nl.modules.system.service.impl.ParamServiceImpl; import org.nl.modules.system.util.CodeUtil; +import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; import org.nl.wms.ext.acs.service.impl.WmsToAcsServiceImpl; import org.nl.wms.ext.mes.service.MesToLmsService; import org.nl.wms.log.LokiLog; import org.nl.wms.log.LokiLogType; +import org.nl.wms.pda.mps.service.InService; import org.nl.wms.pda.mps.service.OutService; import org.nl.wms.pda.mps.service.impl.BakingServiceImpl; import org.nl.wms.sch.manage.AbstractAcsTask; @@ -39,6 +41,8 @@ public class MesToLmsServiceImpl implements MesToLmsService { private final OutService outService; + private final InService inService; + /** * 生箔烘箱: * 母卷批次创建信息发送智能物流(MES生箔工序Move In) @@ -353,6 +357,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { String SplitBreadth = param.getString("SplitBreadth"); // 子卷幅宽 String SplitHeight = param.getString("SplitHeight"); // 子卷理论长度 String SplitWeight = param.getString("SplitWeight"); // 子卷理论重量 + String Attribute2 = param.getString("Attribute2"); // 销售订单及行号 WQLObject tab = WQLObject.getWQLObject("PDM_BI_SlittingProductionPlan"); @@ -428,6 +433,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { json.put("split_breadth", SplitBreadth); json.put("split_height", SplitHeight); json.put("split_weight", SplitWeight); + json.put("sale_order_name", Attribute2); json.put("start_time", DateUtil.now()); json.put("status", "01"); json.put("is_parent_ok", "0"); @@ -470,7 +476,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { String is_mesTolms = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("is_mesTolms").getValue(); if (StrUtil.equals(is_mesTolms, "1")) { String Attribute1 = param.getString("Attribute1"); - if (Attribute1.equals("0")){ + if (Attribute1.equals("0")) { result.put("RTYPE", "S"); result.put("RTMSG", "操作成功!"); result.put("RTOAL", 1); @@ -591,9 +597,9 @@ public class MesToLmsServiceImpl implements MesToLmsService { JSONObject mst_jo = new JSONObject(); mst_jo.put("biz_date", DateUtil.now()); mst_jo.put("bill_type", "1003"); - mst_jo.put("stor_id",struct.getString("stor_id")); - mst_jo.put("stor_code",struct.getString("stor_code")); - mst_jo.put("stor_name",struct.getString("stor_name")); + mst_jo.put("stor_id", struct.getString("stor_id")); + mst_jo.put("stor_code", struct.getString("stor_code")); + mst_jo.put("stor_name", struct.getString("stor_name")); mst_jo.put("total_qty", "0"); mst_jo.put("bill_status", "10"); @@ -614,7 +620,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { dtl.put("qty_unit_id", unit.getString("measure_unit_id")); dtl.put("qty_unit_name", unit.getString("unit_name")); dtl.put("plan_qty", sub_jo.getString("net_weight")); - dtl.put("source_billdtl_id",plan_jo.getString("workorder_id")); + dtl.put("source_billdtl_id", plan_jo.getString("workorder_id")); rows.add(dtl); mst_jo.put("tableData", rows); mst_jo.put("user", "mes"); @@ -667,7 +673,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { JSONObject row = param.getJSONObject(i); JSONObject plan_jo = WQLObject.getWQLObject("pdm_bi_slittingproductionplan").query("container_name = '" + row.getString("ContainerGroup") + "'").uniqueResult(0); if (ObjectUtil.isEmpty(plan_jo)) { - throw new BadRequestException("未查询到分切计划:"+row.getString("ContainerGroup")); + throw new BadRequestException("未查询到分切计划:" + row.getString("ContainerGroup")); } plan_jo.put("status", "05"); WQLObject.getWQLObject("pdm_bi_slittingproductionplan").update(plan_jo); @@ -678,7 +684,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { String ResourceName = param.getJSONObject(0).getString("ResourceName"); JSONObject cut_jo = WQLObject.getWQLObject("ST_IVT_CutPointIvt").query("ext_code = '" + ResourceName + "'").uniqueResult(0); if (ObjectUtil.isEmpty(cut_jo)) { - throw new BadRequestException("分切点位库存不存在:"+ResourceName); + throw new BadRequestException("分切点位库存不存在:" + ResourceName); } String up_point_code = cut_jo.getString("up_point_code"); String down_point_code = cut_jo.getString("down_point_code"); @@ -690,7 +696,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { //查询对应的分切计划 JSONObject plan_jo = WQLObject.getWQLObject("pdm_bi_slittingproductionplan").query("container_name = '" + row.getString("ContainerGroup") + "'").uniqueResult(0); if (ObjectUtil.isEmpty(plan_jo)) { - throw new BadRequestException("未查询到分切计划:"+row.getString("ContainerGroup")); + throw new BadRequestException("未查询到分切计划:" + row.getString("ContainerGroup")); } if (row.getString("ContainerPosition").equals("1")) { up_rows.add(plan_jo); @@ -700,20 +706,52 @@ public class MesToLmsServiceImpl implements MesToLmsService { } } + if (ObjectUtil.isEmpty(up_rows) && ObjectUtil.isEmpty(down_rows)) { + throw new BadRequestException("分切机上轴、下轴不存在一个分切计划!"); + } + //查询输送线上该分切机下一分切组可用的气涨轴 + + JSONObject group_jo = WQL.getWO("PDA_02").addParam("flag","14").addParam("resource_name",ResourceName).process().uniqueResult(0); + JSONArray del_rows = WQLObject.getWQLObject("pdm_bi_slittingproductionplan").query("resource_name = '"+ResourceName+"' AND split_group = '"+group_jo.getString("split_group")+"' AND (parent_container_name = '"+group_jo.getString("source_container_name")+"' OR parent_container_name = '"+group_jo.getString("source_container_name")+"')").getResultJSONArray(0); if (up_rows.size() > 0) { JSONObject jo = new JSONObject(); jo.put("point_code", up_point_code); jo.put("cut_rows", up_rows); - jo.put("is_last", "0"); + if (del_rows.size() > 0) { + jo.put("is_last", "0"); + } else { + jo.put("is_last", "1"); + } outService.confirm(jo); } if (down_rows.size() > 0) { JSONObject jo = new JSONObject(); jo.put("point_code", down_point_code); jo.put("cut_rows", down_rows); - jo.put("is_last", "0"); + if (del_rows.size() > 1) { + jo.put("is_last", "0"); + } else { + jo.put("is_last", "1"); + } outService.confirm(jo); } + + if ((ObjectUtil.isEmpty(up_rows) || ObjectUtil.isEmpty(down_rows)) && del_rows.size() == 2) { + String point_code = ""; + //分切机上只存在一个气涨轴,下一分切组存在两个气涨轴,执行一个进站 + if (ObjectUtil.isEmpty(up_rows)) { + point_code = down_point_code; + } + if (ObjectUtil.isEmpty(down_rows)) { + point_code = up_point_code; + } + //查询当前输送线上可用的气涨轴 + JSONObject del_row = WQLObject.getWQLObject("pdm_bi_slittingproductionplan").query("resource_name = '"+ResourceName+"' AND split_group = '"+group_jo.getString("split_group")+"' AND (parent_container_name = '"+group_jo.getString("source_container_name")+"' OR parent_container_name = '"+group_jo.getString("source_container_name")+"') AND status = '03'").uniqueResult(0); + JSONObject whereJson = new JSONObject(); + whereJson.put("point_code",point_code); + whereJson.put("cut_rows",del_row); + inService.confirm(whereJson); + } } } result.put("RTYPE", "S"); @@ -748,7 +786,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { try { // String is_mesTolms = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("is_mesTolms").getValue(); // if (StrUtil.equals(is_mesTolms, "1")) { - + String isUnPlanProductionBox = param.getString("isUnPlanProductionBox"); // 是否计划外子卷 String QuanlityInBox = param.getString("QuanlityInBox"); // 产品编码 String QualityGuaranPeriod = param.getString("QualityGuaranPeriod"); // 保质期 @@ -799,13 +837,13 @@ public class MesToLmsServiceImpl implements MesToLmsService { jo.put("box_high", box_high); jo.put("quanlity_in_box", QuanlityInBox); if (StrUtil.equals(BoxWeight, "0")) { - BoxWeight2 = NumberUtil.add(BoxWeight2,NetWeight).toString(); + BoxWeight2 = NumberUtil.add(BoxWeight2, NetWeight).toString(); } jo.put("box_weight", BoxWeight); - if (QualityGuaranPeriod.equals("0天")){ + if (QualityGuaranPeriod.equals("0天")) { jo.put("quality_guaran_period", "90天"); - }else { + } else { jo.put("quality_guaran_period", QualityGuaranPeriod); } @@ -826,8 +864,8 @@ public class MesToLmsServiceImpl implements MesToLmsService { jo.put("un_plan_product_property1", UnPlanProductProperty1); jo.put("un_plan_product_property2", UnPlanProductProperty2); jo.put("un_plan_product_property3", UnPlanProductProperty3); - jo.put("width_standard",width_standard); - jo.put("thickness_request",thickness_request); + jo.put("width_standard", width_standard); + jo.put("thickness_request", thickness_request); jo.put("status", "0"); jo.put("create_id", "1"); jo.put("create_name", "管理员"); @@ -842,7 +880,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { map.put("box_weight", String.valueOf(BoxWeight)); } - tab.update(map,"package_box_sn = '"+PackageBoxSN+"'"); + tab.update(map, "package_box_sn = '" + PackageBoxSN + "'"); } // } result.put("RTYPE", "S"); @@ -876,101 +914,103 @@ public class MesToLmsServiceImpl implements MesToLmsService { // String is_mesTolms = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("is_mesTolms").getValue(); // if (StrUtil.equals(is_mesTolms, "1")) { - try { - JSONArray rows = param.getJSONArray("details"); - String SaleOrderItem = param.getString("SaleOrderItem"); - String CustomerName = param.getString("CustomerName"); - String DemandDate = param.getString("DemandDate"); - double total_qty = 0; - double detail_count = 0; - String changeinv_id = IdUtil.getSnowflake(1, 1).nextId() + ""; - if (ObjectUtil.isEmpty(rows) || rows.size() == 0) { - throw new BadRequestException("item长度不能为0!"); - } - for (int i = 0; i < rows.size(); i++) { - JSONObject row = rows.getJSONObject(i); - String PackageBoxSN = row.getString("PackageBoxSN"); - String isRePrintPackageBoxLabel = row.getString("isRePrintPackageBoxLabel"); - String isUnPackBox = row.getString("isUnPackBox"); - String UpdatedDateOfProduction = row.getString("UpdatedDateOfProduction"); - //查询该木箱内子卷数量 - JSONArray container_rows = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + PackageBoxSN + "'").getResultJSONArray(0); - for (int j = 0; j < container_rows.size(); j++) { - JSONObject container_row = container_rows.getJSONObject(j); - JSONObject change_jo = new JSONObject(); - change_jo.put("changeinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + ""); - change_jo.put("changeinv_id", changeinv_id); - change_jo.put("seq_no", detail_count + 1); - JSONObject mater_jo = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + container_row.getString("product_name") + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(mater_jo)) throw new BadRequestException("物料不存在:"+container_row.getString("product_name")); - change_jo.put("material_id", mater_jo.getString("material_id")); - change_jo.put("pcsn", container_row.getString("container_name")); - change_jo.put("package_box_sn", container_row.getString("package_box_sn")); - change_jo.put("mfg_order_name", SaleOrderItem); - change_jo.put("demand_date", DemandDate); - change_jo.put("customer_name", CustomerName); - //查询对应的客户 - JSONObject customer_jo = WQLObject.getWQLObject("md_cs_customerbase").query("cust_code = '" + CustomerName + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(customer_jo)) throw new BadRequestException("客户不存在:"+CustomerName); - change_jo.put("customer_description", customer_jo.getString("cust_name")); - change_jo.put("isRePrintPackageBoxLabel", isRePrintPackageBoxLabel); - change_jo.put("isUnPackBox", isUnPackBox); - change_jo.put("UpdatedDateOfProduction", UpdatedDateOfProduction); - JSONObject unit = WQLObject.getWQLObject("md_pb_measureunit").query("measure_unit_id = '" + mater_jo.getString("base_unit_id") + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(unit)) throw new BadRequestException("计量单位不存在:"+mater_jo.getString("base_unit_id")); - change_jo.put("qty_unit_id", mater_jo.getString("base_unit_id")); - change_jo.put("qty_unit_name", unit.getString("unit_name")); - change_jo.put("qty", container_row.getString("net_weight")); - WQLObject.getWQLObject("ST_IVT_StructIvtChangeDtl").insert(change_jo); - total_qty += container_row.getDoubleValue("net_weight"); - detail_count += 1; - } - } - Long currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - String now = DateUtil.now(); - - JSONObject mst_jo = new JSONObject(); - mst_jo.put("changeinv_id",changeinv_id); - mst_jo.put("bill_code",CodeUtil.getNewCode("CHANGE_CODE")); - mst_jo.put("buss_type","2001"); - mst_jo.put("bill_type","2001"); - mst_jo.put("biz_date", DateUtil.today()); - JSONObject stor = WQLObject.getWQLObject("st_ivt_bsrealstorattr").query("is_delete = '0' AND is_used = '1' AND is_productstore = '1'").uniqueResult(0); - if (ObjectUtil.isEmpty(stor)) throw new BadRequestException("仓库不存在!"); - mst_jo.put("stor_id", stor.getString("stor_id")); - mst_jo.put("stor_code", stor.getString("stor_code")); - mst_jo.put("stor_name", stor.getString("stor_name")); - mst_jo.put("total_qty", total_qty); - mst_jo.put("detail_count", detail_count); - mst_jo.put("bill_status", "10"); - mst_jo.put("create_mode", "03"); - mst_jo.put("input_optid", currentUserId + ""); - mst_jo.put("input_optname", nickName); - mst_jo.put("input_time", now); - mst_jo.put("update_optid", currentUserId + ""); - mst_jo.put("update_optname", nickName); - mst_jo.put("update_time", now); - mst_jo.put("is_delete", "0"); - mst_jo.put("is_upload", "0"); - Long deptId = SecurityUtils.getDeptId(); - mst_jo.put("sysdeptid", deptId + ""); - mst_jo.put("syscompanyid", deptId + ""); - WQLObject.getWQLObject("ST_IVT_StructIvtChange").insert(mst_jo); - - result.put("RTYPE", "S"); - result.put("RTMSG", "操作成功!"); - result.put("RTOAL", 1); - result.put("RTDAT", null); - System.out.println(result); - - } catch (Exception e) { - result.put("RTYPE", "E"); - result.put("RTMSG", "操作失败!," + e.getMessage()); - result.put("RTOAL", 0); - result.put("RTDAT", null); - System.out.println(result); + try { + JSONArray rows = param.getJSONArray("details"); + String SaleOrderItem = param.getString("SaleOrderItem"); + String CustomerName = param.getString("CustomerName"); + String DemandDate = param.getString("DemandDate"); + double total_qty = 0; + double detail_count = 0; + String changeinv_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + if (ObjectUtil.isEmpty(rows) || rows.size() == 0) { + throw new BadRequestException("item长度不能为0!"); } + for (int i = 0; i < rows.size(); i++) { + JSONObject row = rows.getJSONObject(i); + String PackageBoxSN = row.getString("PackageBoxSN"); + String isRePrintPackageBoxLabel = row.getString("isRePrintPackageBoxLabel"); + String isUnPackBox = row.getString("isUnPackBox"); + String UpdatedDateOfProduction = row.getString("UpdatedDateOfProduction"); + //查询该木箱内子卷数量 + JSONArray container_rows = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + PackageBoxSN + "'").getResultJSONArray(0); + for (int j = 0; j < container_rows.size(); j++) { + JSONObject container_row = container_rows.getJSONObject(j); + JSONObject change_jo = new JSONObject(); + change_jo.put("changeinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + ""); + change_jo.put("changeinv_id", changeinv_id); + change_jo.put("seq_no", detail_count + 1); + JSONObject mater_jo = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + container_row.getString("product_name") + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(mater_jo)) + throw new BadRequestException("物料不存在:" + container_row.getString("product_name")); + change_jo.put("material_id", mater_jo.getString("material_id")); + change_jo.put("pcsn", container_row.getString("container_name")); + change_jo.put("package_box_sn", container_row.getString("package_box_sn")); + change_jo.put("mfg_order_name", SaleOrderItem); + change_jo.put("demand_date", DemandDate); + change_jo.put("customer_name", CustomerName); + //查询对应的客户 + JSONObject customer_jo = WQLObject.getWQLObject("md_cs_customerbase").query("cust_code = '" + CustomerName + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(customer_jo)) throw new BadRequestException("客户不存在:" + CustomerName); + change_jo.put("customer_description", customer_jo.getString("cust_name")); + change_jo.put("isRePrintPackageBoxLabel", isRePrintPackageBoxLabel); + change_jo.put("isUnPackBox", isUnPackBox); + change_jo.put("UpdatedDateOfProduction", UpdatedDateOfProduction); + JSONObject unit = WQLObject.getWQLObject("md_pb_measureunit").query("measure_unit_id = '" + mater_jo.getString("base_unit_id") + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(unit)) + throw new BadRequestException("计量单位不存在:" + mater_jo.getString("base_unit_id")); + change_jo.put("qty_unit_id", mater_jo.getString("base_unit_id")); + change_jo.put("qty_unit_name", unit.getString("unit_name")); + change_jo.put("qty", container_row.getString("net_weight")); + WQLObject.getWQLObject("ST_IVT_StructIvtChangeDtl").insert(change_jo); + total_qty += container_row.getDoubleValue("net_weight"); + detail_count += 1; + } + } + Long currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + + JSONObject mst_jo = new JSONObject(); + mst_jo.put("changeinv_id", changeinv_id); + mst_jo.put("bill_code", CodeUtil.getNewCode("CHANGE_CODE")); + mst_jo.put("buss_type", "2001"); + mst_jo.put("bill_type", "2001"); + mst_jo.put("biz_date", DateUtil.today()); + JSONObject stor = WQLObject.getWQLObject("st_ivt_bsrealstorattr").query("is_delete = '0' AND is_used = '1' AND is_productstore = '1'").uniqueResult(0); + if (ObjectUtil.isEmpty(stor)) throw new BadRequestException("仓库不存在!"); + mst_jo.put("stor_id", stor.getString("stor_id")); + mst_jo.put("stor_code", stor.getString("stor_code")); + mst_jo.put("stor_name", stor.getString("stor_name")); + mst_jo.put("total_qty", total_qty); + mst_jo.put("detail_count", detail_count); + mst_jo.put("bill_status", "10"); + mst_jo.put("create_mode", "03"); + mst_jo.put("input_optid", currentUserId + ""); + mst_jo.put("input_optname", nickName); + mst_jo.put("input_time", now); + mst_jo.put("update_optid", currentUserId + ""); + mst_jo.put("update_optname", nickName); + mst_jo.put("update_time", now); + mst_jo.put("is_delete", "0"); + mst_jo.put("is_upload", "0"); + Long deptId = SecurityUtils.getDeptId(); + mst_jo.put("sysdeptid", deptId + ""); + mst_jo.put("syscompanyid", deptId + ""); + WQLObject.getWQLObject("ST_IVT_StructIvtChange").insert(mst_jo); + + result.put("RTYPE", "S"); + result.put("RTMSG", "操作成功!"); + result.put("RTOAL", 1); + result.put("RTDAT", null); + System.out.println(result); + + } catch (Exception e) { + result.put("RTYPE", "E"); + result.put("RTMSG", "操作失败!," + e.getMessage()); + result.put("RTOAL", 0); + result.put("RTDAT", null); + System.out.println(result); + } // } log.info("inventoryTransferInfoSync接口输出参数为:-------------------" + result.toString()); return result; @@ -997,20 +1037,20 @@ public class MesToLmsServiceImpl implements MesToLmsService { String SaleOrderName = param.getString("SaleOrderName"); String isUnPlanProduction = param.getString("isUnPlanProduction"); String sale_order_description = param.getString("Attribute1"); - if (isUnPlanProduction.equals("1")){ + if (isUnPlanProduction.equals("1")) { Long currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); - JSONObject sub_jo = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("container_name = '"+ContainerName+"'").uniqueResult(0); - if (ObjectUtil.isEmpty(sub_jo)) throw new BadRequestException("子卷包装不存在:"+ContainerName); + JSONObject sub_jo = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("container_name = '" + ContainerName + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(sub_jo)) throw new BadRequestException("子卷包装不存在:" + ContainerName); /*sub_jo.put("change_type_scode","02"); sub_jo.put("create_id",currentUserId); sub_jo.put("create_name",nickName); sub_jo.put("change_time",DateUtil.now()); sub_jo.put("workorder_id",IdUtil.getSnowflake(1, 1).nextId() + ""); WQLObject.getWQLObject("PDM_BI_SubPackageRelationChangeFlow").insert(sub_jo);*/ - sub_jo.put("sale_order_name",SaleOrderName); - sub_jo.put("sale_order_description",sale_order_description); + sub_jo.put("sale_order_name", SaleOrderName); + sub_jo.put("sale_order_description", sale_order_description); WQLObject.getWQLObject("pdm_bi_subpackagerelation").update(sub_jo); /*JSONObject new_sub = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("container_name = '"+ContainerName+"' AND status = '2'").uniqueResult(0); @@ -1034,7 +1074,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { result.put("RTDAT", null); System.out.println(result); } - + log.info("childRollInfoUpdate接口输出参数为:-------------------" + result.toString()); return result; } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/SapToLmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/SapToLmsServiceImpl.java index ae98b090d..3aad950f7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/SapToLmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/SapToLmsServiceImpl.java @@ -180,6 +180,7 @@ public class SapToLmsServiceImpl implements SapToLmsService { jsonDtl.put("source_bill_code", json.getString("VGBEL-VGPOS")); jsonDtl.put("vbeln", json.getString("VBELN")); // 来源交货单 jsonDtl.put("posnr", json.getString("POSNR")); // 来源交货单行 + jsonDtl.put("posnr", json.getString("POSNR")); // 幅宽 tableData.add(jsonDtl); } if (StrUtil.equals(lfart, "ZLR")) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/wql/QCRM_001.wql b/lms/nladmin-system/src/main/java/org/nl/wms/ext/wql/QCRM_001.wql index 3094bb858..ef8810d00 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/wql/QCRM_001.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/wql/QCRM_001.wql @@ -22,6 +22,7 @@ 输入.dateoffginbound TYPEAS s_string 输入.warehouse_code TYPEAS s_string 输入.customerdescription TYPEAS s_string + 输入.sap_pcsn TYPEAS s_string 输入.container_name TYPEAS s_string 输入.width TYPEAS f_string @@ -102,6 +103,9 @@ ENDOPTION OPTION 输入.container_name <> "" sub.container_name = 输入.container_name + ENDOPTION + OPTION 输入.sap_pcsn <> "" + sub.sap_pcsn = 输入.sap_pcsn ENDOPTION ENDSELECT ENDQUERY diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_02.wql b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_02.wql index aaba7287a..04cff2d8a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_02.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_02.wql @@ -24,6 +24,7 @@ 输入.device_code TYPEAS s_string 输入.container_name TYPEAS s_string 输入.source_container_name TYPEAS s_string + 输入.resource_name TYPEAS s_string [临时表] @@ -427,6 +428,37 @@ ENDQUERY ENDIF + IF 输入.flag = "14" + QUERY + SELECT + * + FROM + ( + SELECT + plan.resource_name, + plan.split_group, + ( CASE WHEN plan.order_type = '1' THEN parent_container_name WHEN plan.order_type = '2' THEN restruct_container_name END ) AS source_container_name + FROM + st_ivt_deliverypointivt ivt + INNER JOIN pdm_bi_slittingproductionplan plan ON plan.qzzno = ivt.qzzno + LEFT JOIN st_ivt_cutpointivt cut ON cut.ext_code = plan.resource_name + WHERE + ivt.point_status = '03' + AND plan.`status` = '03' + AND plan.resource_name = 输入.resource_name + ORDER BY + plan.manufacture_sort, + split_group + ) a + GROUP BY + resource_name, + split_group, + source_container_name + LIMIT 1 + ENDSELECT + ENDQUERY + ENDIF + diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/CoolPointIvtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/CoolPointIvtServiceImpl.java index 6c331fee4..1774134df 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/CoolPointIvtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/CoolPointIvtServiceImpl.java @@ -51,6 +51,7 @@ public class CoolPointIvtServiceImpl implements CoolPointIvtService { map.put("is_used", whereJson.get("is_used")); map.put("begin_time", whereJson.get("begin_time")); map.put("end_time", whereJson.get("end_time")); + map.put("point_location",whereJson.get("point_location")); JSONObject json = WQL.getWO("ST_IVT_COOLPOINTIVT").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "product_area,point_code"); return json; } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/SlittingproductionplanServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/SlittingproductionplanServiceImpl.java index ec235ec06..8ea37910d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/SlittingproductionplanServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/SlittingproductionplanServiceImpl.java @@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSON; import lombok.RequiredArgsConstructor; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.WQL; +import org.nl.wms.ext.mes.service.LmsToMesService; import org.nl.wms.pdm.service.SlittingproductionplanService; import org.nl.wms.pdm.service.dto.SlittingproductionplanDto; import org.springframework.stereotype.Service; @@ -40,6 +41,8 @@ import cn.hutool.core.util.ObjectUtil; @Slf4j public class SlittingproductionplanServiceImpl implements SlittingproductionplanService { + private final LmsToMesService lmsToMesService; + @Override public Map queryAll(Map whereJson, Pageable page) { String order_type = MapUtil.getStr(whereJson, "order_type"); @@ -167,6 +170,7 @@ public class SlittingproductionplanServiceImpl implements Slittingproductionplan WQLObject tab = WQLObject.getWQLObject("PDM_BI_SlittingProductionPlan"); for (int i = 0; i < data.size(); i++) { + JSONObject mom_jo = new JSONObject(); JSONObject json = data.getJSONObject(i); JSONObject jsonObject = tab.query("workorder_id = '" + json.getString("workorder_id") + "'").uniqueResult(0); HashMap map = new HashMap<>(); @@ -176,10 +180,20 @@ public class SlittingproductionplanServiceImpl implements Slittingproductionplan map.put("update_time",DateUtil.now()); if (jsonObject.getString("order_type").equals("1")){ tab.update(map,"parent_container_name = '"+json.getString("parent_container_name")+"'"); + mom_jo.put("contain_name",json.getString("contain_name")); + mom_jo.put("warehouse","1"); }else { tab.update(map,"restruct_container_name = '"+json.getString("restruct_container_name")+"'"); + mom_jo.put("container_name", json.getString("contain_name")); + mom_jo.put("package_box_sn", json.getString("package_box_sn")); + mom_jo.put("warehouse", "3"); } + //判断该接口是否需要回传 + JSONObject back_jo = WQLObject.getWQLObject("MD_PB_InterfaceBack").query("interface_name = 'momRollSemiFGInboundComplete'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(back_jo) && back_jo.getString("is_back").equals("1")){ + lmsToMesService.cutPlanMomRollDeliveryComplete(mom_jo); + } } } @@ -200,6 +214,16 @@ public class SlittingproductionplanServiceImpl implements Slittingproductionplan jsonObject.put("update_optname",currentUsername); jsonObject.put("update_time",DateUtil.now()); tab.update(jsonObject); + + //调用MES接口,通知MES已经套轴完成 + JSONObject jo = new JSONObject(); + jo.put("container_name", jsonObject.getString("container_name")); + //判断该接口是否需要回传 + JSONObject back_jo = WQLObject.getWQLObject("MD_PB_InterfaceBack").query("interface_name = 'airSwellWithPaperTubeAssComplete'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(back_jo) && back_jo.getString("is_back").equals("1")) { + lmsToMesService.airSwellWithPaperTubeAssComplete(jo); + } + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/ST_IVT_COOLPOINTIVT.wql b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/ST_IVT_COOLPOINTIVT.wql index dffe1e6e5..055f52aab 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/ST_IVT_COOLPOINTIVT.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/ST_IVT_COOLPOINTIVT.wql @@ -28,6 +28,7 @@ 输入.pcsn TYPEAS s_string 输入.vehicle_code TYPEAS s_string 输入.bill_status TYPEAS s_string + 输入.point_location TYPEAS s_string [临时表] @@ -80,6 +81,9 @@ OPTION 输入.is_used <> "" is_used = 输入.is_used ENDOPTION + OPTION 输入.is_used <> "" + point_location = 输入.point_location + ENDOPTION OPTION 输入.begin_time <> "" instorage_time >= 输入.begin_time ENDOPTION diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutTrussTask.java index 06c1a9f57..ede8fb241 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutTrussTask.java @@ -42,10 +42,10 @@ public class CutTrussTask extends AbstractAcsTask { String product_area = json.getString("product_area"); String agv_system_type = ""; - if (product_area.equals("A1") || product_area.equals("A2")){ + if (product_area.equals("A1") || product_area.equals("A2")) { agv_system_type = "2"; } - if (product_area.equals("A3") || product_area.equals("A4")){ + if (product_area.equals("A3") || product_area.equals("A4")) { agv_system_type = "3"; } @@ -55,6 +55,8 @@ public class CutTrussTask extends AbstractAcsTask { .task_type(json.getString("acs_task_type")) .start_device_code(json.getString("point_code1")) .next_device_code(json.getString("point_code2")) + .start_device_code2(json.getString("point_code3")) + .next_device_code2(json.getString("point_code4")) .vehicle_code(json.getString("vehicle_code")) .agv_system_type(agv_system_type) .priority(json.getString("priority")) @@ -77,7 +79,7 @@ public class CutTrussTask extends AbstractAcsTask { if (StrUtil.equals(status, "0")) { // 更新删除字段 - jsonTask.put("is_delete","1"); + jsonTask.put("is_delete", "1"); jsonTask.put("update_time", DateUtil.now()); taskTab.update(jsonTask); } @@ -145,11 +147,11 @@ public class CutTrussTask extends AbstractAcsTask { //生成一个输送线出库任务 JSONObject form = new JSONObject(); - form.put("point_code1",jsonTask.getString("point_code1")); - JSONObject ss_jo = WQLObject.getWQLObject("sch_base_point").query("product_area = '"+delivery_point.getString("product_area")+"' AND point_type = '7'").uniqueResult(0); - form.put("point_code2",ss_jo.getString("point_code")); - form.put("vehiclie_code",jsonTask.getString("vehicle_code2")); - form.put("task_type","010401"); + form.put("point_code1", jsonTask.getString("point_code1")); + JSONObject ss_jo = WQLObject.getWQLObject("sch_base_point").query("product_area = '" + delivery_point.getString("product_area") + "' AND point_type = '7'").uniqueResult(0); + form.put("point_code2", ss_jo.getString("point_code")); + form.put("vehiclie_code", jsonTask.getString("vehicle_code2")); + form.put("task_type", "010401"); cutConveyorTask.createTask(form); } if (jsonTask.getString("task_type").equals("010404")) { @@ -176,10 +178,10 @@ public class CutTrussTask extends AbstractAcsTask { //生成一个输送线出库任务 JSONObject form = new JSONObject(); - form.put("point_code1",jsonTask.getString("point_code2")); - JSONObject ss_jo = WQLObject.getWQLObject("sch_base_point").query("product_area = '"+delivery_point.getString("product_area")+"' AND point_type = '7'").uniqueResult(0); - form.put("point_code2",ss_jo.getString("point_code")); - form.put("task_type","010401"); + form.put("point_code1", jsonTask.getString("point_code2")); + JSONObject ss_jo = WQLObject.getWQLObject("sch_base_point").query("product_area = '" + delivery_point.getString("product_area") + "' AND point_type = '7'").uniqueResult(0); + form.put("point_code2", ss_jo.getString("point_code")); + form.put("task_type", "010401"); cutConveyorTask.createTask(form); } @@ -260,10 +262,10 @@ public class CutTrussTask extends AbstractAcsTask { json.put("create_name", currentUsername); json.put("create_time", DateUtil.now()); //根据类型获取对应的任务优先级 - JSONObject priority_jo = WQL.getWO("PDA_COOLIN").addParam("flag","3").addParam("task_type",json.getString("task_type")).process().uniqueResult(0); - if (ObjectUtil.isEmpty(priority_jo)){ + JSONObject priority_jo = WQL.getWO("PDA_COOLIN").addParam("flag", "3").addParam("task_type", json.getString("task_type")).process().uniqueResult(0); + if (ObjectUtil.isEmpty(priority_jo)) { json.put("priority", "1"); - }else { + } else { json.put("priority", priority_jo.getString("value")); } json.put("acs_task_type", "6"); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java index 061bdc989..a495cb99b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java @@ -553,49 +553,32 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { transfer = false; } - if (transfer) { - //创建任务 - AbstractAcsTask task = new InTask(); - JSONObject task_form = new JSONObject(); - task_form.put("task_type", "03"); - task_form.put("taskdtl_type", "04"); - task_form.put("start_point_code", map.get("point_code")); - task_form.put("next_point_code", struct_code); - task_form.put("storagevehicle_id", map.get("storagevehicle_id")); - task_form.put("vehicle_code", map.get("storagevehicle_code")); - task_form.put("storagevehicle_type", map.get("storagevehicle_type")); - task_form.put("task_id", map.get("task_id")); - String task_id = task.createTask(task_form); - dis_map.put("task_id", map.get("task_id")); - dis_map.put("work_status", "01"); - } else { - //创建任务 - AbstractAcsTask task = new InTask(); - JSONObject task_form = new JSONObject(); - task_form.put("task_type", "010501"); - task_form.put("start_device_code", map.get("point_code")); - task_form.put("next_device_code", struct_code); - task_form.put("vehicle_code", map.get("box_no")); - task_form.put("storagevehicle_type", map.get("storagevehicle_type")); - String task_id = task.createTask(task_form); - if (whereJson.containsKey("auto_issue")) { - AbstractAcsTask intask = new InTask(); - //调用ACS接受任务接口 - JSONObject result = null; - if (ObjectUtil.isNotEmpty(result)) { - String status = result.getString("status"); - if ("200".equals(status)) { - HashMap mapnow = new HashMap<>(); - mapnow.put("task_status", "02"); - WQLObject.getWQLObject("SCH_BASE_Task").update(mapnow, "taskdtl_id = '" + task_id + "'"); - } else { - throw new BadRequestException("任务下发失败:" + result.getString("message")); - } + //创建任务 + AbstractAcsTask task = new InTask(); + JSONObject task_form = new JSONObject(); + task_form.put("task_type", "010501"); + task_form.put("start_device_code", map.get("point_code")); + task_form.put("next_device_code", struct_code); + task_form.put("vehicle_code", map.get("box_no")); + task_form.put("storagevehicle_type", map.get("storagevehicle_type")); + String task_id = task.createTask(task_form); + if (whereJson.containsKey("auto_issue")) { + AbstractAcsTask intask = new InTask(); + //调用ACS接受任务接口 + JSONObject result = null; + if (ObjectUtil.isNotEmpty(result)) { + String status = result.getString("status"); + if ("200".equals(status)) { + HashMap mapnow = new HashMap<>(); + mapnow.put("task_status", "02"); + WQLObject.getWQLObject("SCH_BASE_Task").update(mapnow, "taskdtl_id = '" + task_id + "'"); + } else { + throw new BadRequestException("任务下发失败:" + result.getString("message")); } } - dis_map.put("task_id", task_id); - dis_map.put("work_status", "01"); } + dis_map.put("task_id", task_id); + dis_map.put("work_status", "01"); } WQLObject.getWQLObject("ST_IVT_IOStorInvDis").update(dis_map, "iostorinv_id = '" + map.get("iostorinv_id") + "' AND box_no = '" + map.get("box_no") + "'"); @@ -747,8 +730,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { //创建任务 AbstractAcsTask task = new InTask(); JSONObject task_form = new JSONObject(); - task_form.put("task_type", "01"); - task_form.put("taskdtl_type", "01"); + task_form.put("task_type", "010501"); task_form.put("start_device_code", point_code); task_form.put("next_device_code", ios_dis.getString("struct_code")); task_form.put("vehicle_code", map.get("box_no")); @@ -858,7 +840,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { //根据分切计划查询该订单物料大概还有多少未入 row_map.put("flag", "12"); JSONArray plan_rows = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParamMap(row_map).process().getResultJSONArray(0); - int box_num = (int) Math.ceil(plan_rows.size() / 3); + int box_num = (int) Math.ceil(plan_rows.size() / 2); //查询数量与订单物料箱子数量相近的一排 JSONObject empty_row = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("sect_id", sect_id).addParam("flag", "13").addParam("sql_str", " ORDER BY abs(" + box_num + "-a.struct_num)").process().uniqueResult(0); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/StorPublicServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/StorPublicServiceImpl.java index 4167caa73..f51668dcc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/StorPublicServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/StorPublicServiceImpl.java @@ -459,7 +459,12 @@ public class StorPublicServiceImpl implements StorPublicService { map.put("inv_id",""); map.put("inv_code",""); map.put("point_status","1"); - map.put("storagevehicle_code",""); + if (!from.getString("is_free").equals("1") && StrUtil.isNotEmpty(storagevehicle_code)){ + map.put("storagevehicle_code",storagevehicle_code); + map.put("storagevehicle_qty","1"); + map.put("vehicle_code",storagevehicle_code); + map.put("point_status","01"); + } wo_Struct.update(map,"struct_id = '"+jo.getString("struct_id")+"'"); wo_Point.update(map,"point_id = '"+jo.getString("point_id")+"'"); }else{//锁定 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/wql/QST_IVT_RAWASSISTISTOR.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/wql/QST_IVT_RAWASSISTISTOR.wql index 12a845525..9a7b513d0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/wql/QST_IVT_RAWASSISTISTOR.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/wql/QST_IVT_RAWASSISTISTOR.wql @@ -468,6 +468,9 @@ IFNULL( sub.container_name, '' ) = '' AND plan.is_delete = '0' + OPTION 输入.sale_order_name <> "" + plan.sale_order_name = 输入.sale_order_name + ENDOPTION ENDSELECT ENDQUERY ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/HandMoveStorServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/HandMoveStorServiceImpl.java index e7c09dd3d..d34c020b5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/HandMoveStorServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/HandMoveStorServiceImpl.java @@ -17,8 +17,6 @@ import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.WqlUtil; import org.nl.wms.basedata.st.service.impl.UserStorServiceImpl; import org.nl.wms.sch.manage.TaskStatusEnum; -import org.nl.wms.sch.tasks.OutTask; -import org.nl.wms.st.inbill.service.CheckOutBillService; import org.nl.wms.st.inbill.service.StorPublicService; import org.nl.wms.st.instor.service.HandMoveStorService; import org.nl.wms.st.instor.task.HandMoveStorAcsTask; @@ -253,8 +251,7 @@ public class HandMoveStorServiceImpl implements HandMoveStorService { task.put("taskdtl_id", task_id); task.put("task_id", task_id); task.put("task_code", task_code); - task.put("task_type", "05"); - task.put("taskdtl_type", "07"); + task.put("task_type", "010505"); task.put("task_status", "01"); task.put("point_code1", jo.getString("start_point_code")); task.put("point_code2", point.getString("point_code")); @@ -711,7 +708,7 @@ public class HandMoveStorServiceImpl implements HandMoveStorService { JSONObject jo = ja.getJSONObject(i); //删除任务 HashMap task_map = new HashMap<>(); - task_map.put("task_status", "99"); + task_map.put("task_status", "07"); task_map.put("update_optid", currentUserId + ""); task_map.put("update_optname", nickName); task_map.put("update_time", now); @@ -978,7 +975,7 @@ public class HandMoveStorServiceImpl implements HandMoveStorService { for (int i = 0; i < ja.size(); i++) { JSONObject jo = ja.getJSONObject(i); String task_id = jo.getString("task_id"); - JSONObject result = handMoveStorAcsTask.notifyAcs(task_id); + JSONObject result = handMoveStorAcsTask.immediateNotifyAcs(task_id); JSONObject task = wo_Task.query("task_id='" + task_id + "'").uniqueResult(0); if (ObjectUtil.isNotEmpty(result)) { String status = result.getString("status"); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java index bc0c6f415..03e6b89dd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java @@ -1479,7 +1479,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { // 创建任务 JSONObject param = new JSONObject(); - param.put("task_type", "010301"); + param.put("task_type", "010503"); param.put("vehicle_code", dis.getString("box_no")); param.put("task_name", "task_name"); param.put("point_code1", jsonPoint1.getString("point_code")); @@ -1620,7 +1620,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { // 生成任务 JSONObject param2 = new JSONObject(); - param2.put("task_type", "010301"); + param2.put("task_type", "010503"); param2.put("vehicle_code", json.getString("storagevehicle_code")); param2.put("task_name", "task_name"); param2.put("point_code1", json.getString("point_code")); @@ -1739,7 +1739,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { // 生成任务 JSONObject param2 = new JSONObject(); - param2.put("task_type", "010301"); + param2.put("task_type", "010503"); param2.put("vehicle_code", json.getString("storagevehicle_code")); param2.put("task_name", "task_name"); param2.put("point_code1", json.getString("point_code")); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java index 8833748af..89712c251 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java @@ -142,6 +142,10 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { } param.put("Details", details); new LmsToMesServiceImpl().lmsPackage(param); + + jo_mst.put("upload_mes", "1"); + jo_mst.put("is_upload", "1"); + WQLObject.getWQLObject("ST_IVT_IOStorInv").update(jo_mst); } // 拆分出库:回传mes @@ -162,6 +166,10 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { } param.put("Details", details); new LmsToMesServiceImpl().lmsUnPackage(param); + + jo_mst.put("upload_mes", "1"); + jo_mst.put("is_upload", "1"); + WQLObject.getWQLObject("ST_IVT_IOStorInv").update(jo_mst); } // 销售出库 @@ -634,6 +642,10 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { } param.put("Details", details); new LmsToMesServiceImpl().lmsPackage(param); + + jo_mst.put("upload_mes", "1"); + jo_mst.put("is_upload", "1"); + WQLObject.getWQLObject("ST_IVT_IOStorInv").update(jo_mst); } // 拆分出库:回传mes @@ -654,9 +666,13 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { } param.put("Details", details); new LmsToMesServiceImpl().lmsUnPackage(param); + + jo_mst.put("upload_mes", "1"); + jo_mst.put("is_upload", "1"); + WQLObject.getWQLObject("ST_IVT_IOStorInv").update(jo_mst); } - // 销售出库 + // 销售出库 if (StrUtil.equals(bill_type, "1001")) { // 1.回传sap JSONArray paramSapMstArr = new JSONArray(); diff --git a/lms/nladmin-ui/src/views/wms/pdm/ivt/coolpointivt/inventory.vue b/lms/nladmin-ui/src/views/wms/pdm/ivt/coolpointivt/inventory.vue index 9823b409d..c692308e3 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/ivt/coolpointivt/inventory.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/ivt/coolpointivt/inventory.vue @@ -82,6 +82,23 @@ /> + + + + + - - - - - @@ -252,6 +262,11 @@ {{ dict.label.point_location[scope.row.point_location] }} + + + diff --git a/lms/nladmin-ui/src/views/wms/pdm/ivt/cutpointivt/index.vue b/lms/nladmin-ui/src/views/wms/pdm/ivt/cutpointivt/index.vue index 9c11b9ce3..17ea8852a 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/ivt/cutpointivt/index.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/ivt/cutpointivt/index.vue @@ -160,18 +160,12 @@ - - - - + + + diff --git a/lms/nladmin-ui/src/views/wms/pdm/ivt/hotpointivt/pointIvt.vue b/lms/nladmin-ui/src/views/wms/pdm/ivt/hotpointivt/pointIvt.vue index 7b9498c76..3eb7a59c3 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/ivt/hotpointivt/pointIvt.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/ivt/hotpointivt/pointIvt.vue @@ -153,20 +153,13 @@ - + - - - - - @@ -176,12 +169,17 @@ - + + + +