diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/FlourworkServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/FlourworkServiceImpl.java index 56892ef5..e38c286a 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/FlourworkServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/FlourworkServiceImpl.java @@ -189,6 +189,9 @@ public class FlourworkServiceImpl implements FlourworkService { @Override @Transactional(rollbackFor = Exception.class) public JSONObject autoCalledMater(JSONObject form) { + StringBuffer error = new StringBuffer(); + error.append("叫料失败..."); + JSONObject jsonFormMst = WQLObject.getWQLObject("PDM_BI_Formula").query("formula_id = '" + form.getString("formula_id") + "' and status <> '99'").uniqueResult(0); if (ObjectUtil.isEmpty(jsonFormMst)) { throw new BadRequestException("配方已完成"); } JSONArray dtlArr = WQLObject.getWQLObject("PDM_BI_FormulaDtl").query("formula_id = '" + form.getString("formula_id") + "' and status <> '99' and is_need_move = '1' order by seq_no ASC").getResultJSONArray(0); @@ -241,7 +244,7 @@ public class FlourworkServiceImpl implements FlourworkService { }, HashMap::putAll); Map moveQty = total_move.stream().collect(HashMap::new, (map, qty) -> { JSONObject jo = (JSONObject) qty; - map.put(jo.getString("qk"), jo.getDouble("canuse_qty")); + map.put(jo.getString("qk"), jo.getDouble("qty")); }, HashMap::putAll); //需要移库的库存 List need_move = new ArrayList<>(); @@ -249,18 +252,21 @@ public class FlourworkServiceImpl implements FlourworkService { JSONObject item = (JSONObject) o; String material_id = item.getString("material_id"); String pcsn = item.getString("pcsn"); - //校验配粉位有没有位置没有跳过 - if (g_material.contains(material_id)?g_points.size()==0:notG_points.size()==0){ - continue; - } //3 double subQty = NumberUtil.sub(item.getDoubleValue("formula_qty"), item.getDoubleValue("put_qty")); Double 配粉位_hasQty = hasQty.get(item.getString("material_id") + item.getString("pcsn")); Double 移库种_hasQty = moveQty.get(item.getString("material_id") + item.getString("pcsn")); double uncla_qty = Double.parseDouble(String.valueOf(NumberUtil.sub(subQty, 配粉位_hasQty, 移库种_hasQty))); if (uncla_qty<=0){ + error.append("批次"+pcsn).append("配粉位已叫料").append(";").append("\n"); continue; } + //校验配粉位有没有位置没有跳过 + if (g_material.contains(material_id)?g_points.size()==0:notG_points.size()==0){ + error.append("批次"+pcsn).append("配粉位有没有位置").append(";").append("\n"); + continue; + } + //4 库存:从小到大 JSONArray 库存_qty = WQL.getWO("QMD_FORMING01") .addParam("flag", "5") @@ -268,6 +274,7 @@ public class FlourworkServiceImpl implements FlourworkService { .addParam("pcsn", pcsn).process() .getResultJSONArray(0); if (库存_qty.size()==0){ + error.append("批次"+pcsn).append("没有库存").append(";").append("\n"); log.info("叫料失败,此配方明细批次:"+pcsn+"/物料:"+material_id+"没有库存"); continue; } @@ -298,24 +305,31 @@ public class FlourworkServiceImpl implements FlourworkService { log.info("待移库信息:{}",need_move); List moveForm = new ArrayList<>(); if (!CollectionUtils.isEmpty(need_move)){ - for (JSONObject move_ivt : need_move) { - String material_id = move_ivt.getString("material_id"); + Map> collect = need_move.stream().collect(Collectors.groupingBy(move -> move.getString("storagevehicle_code"))); + for (String storagevehicle_code : collect.keySet()) { + String material_id = collect.get(storagevehicle_code).get(0).getString("material_id"); JSONObject in_point = null; if (g_material.contains(material_id )){ - if (g_points.size()>0){ - in_point= g_points.remove(0); - } + if (g_points.size()>0){ in_point= g_points.remove(0); } }else if (notG_points.size()>0){ - if (notG_points.size()>0){ - in_point= notG_points.remove(0); - } + if (notG_points.size()>0){ in_point= notG_points.remove(0); } } - if (in_point==null){ - continue; - }; - // 8.2 生成移库单 - JSONObject map = packageMoveForm(move_ivt, in_point); + if (in_point==null){ continue; }; + + JSONObject map = new JSONObject(); + JSONArray tableData = new JSONArray(); + map.put("bill_status", "10"); + map.put("bill_type", "21"); + map.put("biz_date", DateUtil.today()); + map.put("stor_code", "01"); + map.put("stor_id", "1473161852946092032"); + map.put("stor_name", "原材料库"); + map.put("tableData",tableData); moveForm.add(map); + for (JSONObject item : collect.get(storagevehicle_code)) { + tableData.add(packageMoveForm(item, in_point)); + } + } List moveList = new ArrayList<>(); for (JSONObject map : moveForm) { @@ -323,6 +337,8 @@ public class FlourworkServiceImpl implements FlourworkService { moveList.add(move_id); } flourworkService.asyncdown(moveList,SecurityUtils.getCurrentUserId(),SecurityUtils.getNickName()); + }else { + throw new BadRequestException(error.toString()); } JSONObject result = new JSONObject(); result.put("task", moveForm.size()); @@ -330,14 +346,6 @@ public class FlourworkServiceImpl implements FlourworkService { } private JSONObject packageMoveForm(JSONObject move_ivt, JSONObject in_point) { - JSONObject map = new JSONObject(); - JSONArray tableData = new JSONArray(); - map.put("bill_status", "10"); - map.put("bill_type", "21"); - map.put("biz_date", DateUtil.today()); - map.put("stor_code", "01"); - map.put("stor_id", "1473161852946092032"); - map.put("stor_name", "原材料库"); JSONObject param = new JSONObject(); param.put("edit", true); param.put("is_active", move_ivt.getString("is_active")); @@ -362,9 +370,7 @@ public class FlourworkServiceImpl implements FlourworkService { param.put("storagevehicle_code", move_ivt.getString("storagevehicle_code")); param.put("work_status", "10"); param.put("source_billdtl_id", move_ivt.getString("source_billdtl_id")); - tableData.add(param); - map.put("tableData", tableData); - return map; + return param; } @Override diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/wql/QMD_FORMING01.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/wql/QMD_FORMING01.wql index 76f8432c..75ce3448 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/wql/QMD_FORMING01.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/wql/QMD_FORMING01.wql @@ -131,7 +131,7 @@ LEFT JOIN PDM_BI_FormulaDtl formdtl ON formdtl.formuladtl_id = invdtl.source_billdtl_id LEFT JOIN PDM_BI_Formula formmst ON formmst.formula_id = formdtl.formula_id WHERE - invdtl.work_status = '02' + invdtl.work_status in ('01','02') OPTION 输入.workorder_id <> "" formmst.workorder_id = 输入.workorder_id ENDOPTION diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/HandMoveStorServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/HandMoveStorServiceImpl.java index 40ad13bb..4c88bd0a 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/HandMoveStorServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/HandMoveStorServiceImpl.java @@ -390,7 +390,7 @@ public class HandMoveStorServiceImpl implements HandMoveStorService { Struct_map.put(storagevehicle_code, row); } if (i != 0) { - ids.append("','"); + ids.append(",'"); } ids.append(storagevehicle_code); } @@ -413,6 +413,7 @@ public class HandMoveStorServiceImpl implements HandMoveStorService { jo.put("seq_no", (i + 1) + ""); jo.put("work_status", "01"); jo.put("is_issued", "0"); + JSONObject row = (JSONObject) Struct_map.get(jo.getString("storagevehicle_code")); String turnin_struct_id = row.getString("turnin_struct_id"); jo.put("turnin_sect_id", row.getString("turnin_sect_id")); @@ -421,6 +422,7 @@ public class HandMoveStorServiceImpl implements HandMoveStorService { jo.put("turnin_struct_id", turnin_struct_id); jo.put("turnin_struct_code", row.getString("turnin_struct_code")); jo.put("turnin_struct_name", row.getString("turnin_struct_name")); + jo.put("source_billdtl_id", row.getString("source_billdtl_id")); //查询移入点位 JSONObject point = wo_Point.query("source_id='" + turnin_struct_id + "'").uniqueResult(0); if (point == null) { diff --git a/mes/hd/nladmin-system/src/main/resources/config/application-dev.yml b/mes/hd/nladmin-system/src/main/resources/config/application-dev.yml index 8e335f22..1981c100 100644 --- a/mes/hd/nladmin-system/src/main/resources/config/application-dev.yml +++ b/mes/hd/nladmin-system/src/main/resources/config/application-dev.yml @@ -19,12 +19,9 @@ spring: druid: db-type: com.alibaba.druid.pool.DruidDataSource driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy -# url: jdbc:log4jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:whxr_test}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:whxr}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true username: ${DB_USER:root} - password: ${DB_PWD:942464Yy} -# username: ${DB_USER:root} -# password: ${DB_PWD:root} + password: ${DB_PWD:123456} # 初始连接数 initial-size: 5 # 最小连接数 diff --git a/mes/hd/nladmin-system/src/main/resources/config/application.yml b/mes/hd/nladmin-system/src/main/resources/config/application.yml index 30f56233..949b17da 100644 --- a/mes/hd/nladmin-system/src/main/resources/config/application.yml +++ b/mes/hd/nladmin-system/src/main/resources/config/application.yml @@ -2,7 +2,7 @@ spring: freemarker: check-template-location: false profiles: - active: dev + active: prod jackson: time-zone: GMT+8 data: