diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/LmsToMesController.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/LmsToMesController.java index 4353d00f2..f9b6ca691 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/LmsToMesController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/LmsToMesController.java @@ -112,4 +112,11 @@ public class LmsToMesController { public ResponseEntity proudDayData(@RequestBody JSONObject jo) { return new ResponseEntity<>(lmsToMesService.proudDayData(jo), HttpStatus.OK); } + + @PostMapping("/ChildScrapUpdate") + @Log("成品日报推送") + @ApiOperation("成品日报推送") + public ResponseEntity ChildScrapUpdate(@RequestBody JSONObject jo) { + return new ResponseEntity<>(lmsToMesService.ChildScrapUpdate(jo), HttpStatus.OK); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/LmsToMesService.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/LmsToMesService.java index ce1937101..0b0104e42 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/LmsToMesService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/LmsToMesService.java @@ -122,4 +122,17 @@ public interface LmsToMesService { * 参数: */ JSONObject proudDayData(JSONObject jo); + + /** + * 报废出库:回传mes箱号、子卷号 + * 参数: + * { + * PackageBoxSN: 箱号 + * Status: 类型 + * Details: [ + * {ContainerName: 子卷号 , NetWeight:重量} + * ] + * } + */ + JSONObject ChildScrapUpdate(JSONObject jo); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/LmsToMesServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/LmsToMesServiceImpl.java index ecaa19e43..10fc513b3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/LmsToMesServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/LmsToMesServiceImpl.java @@ -661,4 +661,45 @@ public class LmsToMesServiceImpl implements LmsToMesService { } return result; } + + @Override + public JSONObject ChildScrapUpdate(JSONObject param) { + log.info("ChildScrapUpdate接口输入参数为:-------------------" + param.toString()); + + JSONObject result = new JSONObject(); + if (StrUtil.equals("0", is_connect_mes)) { + result.put("status", HttpStatus.OK.value()); + result.put("message", "下发成功,但未连接MES!"); + result.put("data", new JSONObject()); + return result; + } + + String url = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_URL").getValue(); + String api = "CamstarApi/ChildScrapUpdate"; + url = url + api; + + String UserName = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_USERNAME").getValue(); + String Password = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_PASSWORD").getValue(); + param.put("UserName", UserName); + param.put("Password", Password); + + try { + String resultMsg = HttpRequest.post(url) + .body(String.valueOf(param)) + .execute().body(); + result = JSONObject.parseObject(resultMsg); + log.info("ChildScrapUpdate接口输出参数为:-------------------" + result.toString()); + + + String RTYPE = result.getString("RTYPE"); + if ("E".equals(RTYPE)) { + throw new BadRequestException(result.getString("RTMSG")); + } + + + } catch (Exception e) { + throw new BadRequestException("MES提示错误:" + e.getMessage()); + } + return result; + } } 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 0a770f258..f01e09263 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 @@ -29,6 +29,7 @@ import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.*; +import java.util.stream.Collectors; /** * @@ -326,6 +327,54 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { WQLObject.getWQLObject("ST_IVT_IOStorInv").update(jo_mst); } + // 报废出库:回传mes + if (StrUtil.equals(bill_type, "1007") || StrUtil.equals(bill_type, "1008") || StrUtil.equals(bill_type, "1010") || StrUtil.equals(bill_type, "1002")) { + + JSONArray disArr = WQL.getWO("QST_IVT_INANDOUTRETRUN").addParam("flag", "3").addParam("iostorinv_id", jo_mst.getString("iostorinv_id")).process().getResultJSONArray(0); + + String box_no_in = disArr.toJavaList(JSONObject.class).stream() + .map(row -> row.getString("box_no")) + .collect(Collectors.joining("','")); + + List disList = WQLObject.getWQLObject("st_ivt_iostorinvdis").query("box_no in ('" + box_no_in + "') and iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0).toJavaList(JSONObject.class); + + JSONObject param = new JSONObject(); + JSONArray item = new JSONArray(); + + for (int j = 0; j < disArr.size(); j++) { + JSONObject json = disArr.getJSONObject(j); + + JSONObject jsonDtl = new JSONObject(); + JSONArray details = new JSONArray(); + + jsonDtl.put("PackageBoxSN", json.getString("box_no")); + jsonDtl.put("Status", "1"); + + List collect = disList.stream() + .filter(row -> row.getString("box_no").equals(json.getString("box_no"))) + .collect(Collectors.toList()); + + for (int k = 0; k < collect.size(); k++) { + JSONObject jsonObject = collect.get(k); + + JSONObject jsonObject1 = new JSONObject(); + jsonObject1.put("ContainerName", jsonObject.getString("pcsn")); + jsonObject1.put("NetWeight", jsonObject.getString("plan_qty")); + details.add(jsonObject1); + } + jsonDtl.put("Details",details); + item.add(jsonDtl); + } + param.put("item", item); + new LmsToMesServiceImpl().ChildScrapUpdate(param); + + jo_mst.put("upload_mes", "1"); + jo_mst.put("is_upload", "1"); + jo_mst.put("upload_optid", SecurityUtils.getCurrentUserId()); + jo_mst.put("upload_time", DateUtil.now()); + WQLObject.getWQLObject("ST_IVT_IOStorInv").update(jo_mst); + } + /*// 改切出库 if (StrUtil.equals(bill_type, "1003")) { JSONArray disArr = wo_dis.query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0); @@ -1470,6 +1519,54 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { } } + + // 报废出库:回传mes + if (StrUtil.equals(bill_type, "1007") || StrUtil.equals(bill_type, "1008") || StrUtil.equals(bill_type, "1010") || StrUtil.equals(bill_type, "1002")) { + + JSONArray disArr = WQL.getWO("QST_IVT_INANDOUTRETRUN").addParam("flag", "3").addParam("iostorinv_id", jo_mst.getString("iostorinv_id")).process().getResultJSONArray(0); + + String box_no_in = disArr.toJavaList(JSONObject.class).stream() + .map(row -> row.getString("box_no")) + .collect(Collectors.joining("','")); + + List disList = WQLObject.getWQLObject("st_ivt_iostorinvdis").query("box_no in ('" + box_no_in + "') and iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0).toJavaList(JSONObject.class); + + JSONObject param = new JSONObject(); + JSONArray item = new JSONArray(); + + for (int j = 0; j < disArr.size(); j++) { + JSONObject json = disArr.getJSONObject(j); + + JSONObject jsonDtl = new JSONObject(); + JSONArray details = new JSONArray(); + + jsonDtl.put("PackageBoxSN", json.getString("box_no")); + jsonDtl.put("Status", "1"); + + List collect = disList.stream() + .filter(row -> row.getString("box_no").equals(json.getString("box_no"))) + .collect(Collectors.toList()); + + for (int k = 0; k < collect.size(); k++) { + JSONObject jsonObject = collect.get(k); + + JSONObject jsonObject1 = new JSONObject(); + jsonObject1.put("ContainerName", jsonObject.getString("pcsn")); + jsonObject1.put("NetWeight", jsonObject.getString("plan_qty")); + details.add(jsonObject1); + } + jsonDtl.put("Details",details); + item.add(jsonDtl); + } + param.put("item", item); + new LmsToMesServiceImpl().ChildScrapUpdate(param); + + jo_mst.put("upload_mes", "1"); + jo_mst.put("is_upload", "1"); + jo_mst.put("upload_optid", SecurityUtils.getCurrentUserId()); + jo_mst.put("upload_time", DateUtil.now()); + WQLObject.getWQLObject("ST_IVT_IOStorInv").update(jo_mst); + } } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/wql/QST_IVT_INANDOUTRETRUN.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/wql/QST_IVT_INANDOUTRETRUN.wql index 06ad82d2f..27bbbd875 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/wql/QST_IVT_INANDOUTRETRUN.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/wql/QST_IVT_INANDOUTRETRUN.wql @@ -175,3 +175,18 @@ ENDSELECT ENDQUERY ENDIF + + IF 输入.flag = "3" + QUERY + SELECT + dis.box_no + FROM + st_ivt_iostorinvdis dis + LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dis.iostorinv_id + WHERE + dis.iostorinv_id = 输入.iostorinv_id + GROUP BY dis.box_no + + ENDSELECT + ENDQUERY + ENDIF