diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/ext/erp/service/WmsToErpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/ext/erp/service/WmsToErpService.java index 267284c5..0e247fd6 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/ext/erp/service/WmsToErpService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/ext/erp/service/WmsToErpService.java @@ -8,4 +8,6 @@ public interface WmsToErpService { void getMaterialInfo(Map map); void getPurchaseInfo(Map map); + + void getPurchaseInInfo(Map map); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/ext/erp/service/impl/WmsToErpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/ext/erp/service/impl/WmsToErpServiceImpl.java index dd6cad06..c4b56e24 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/ext/erp/service/impl/WmsToErpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/ext/erp/service/impl/WmsToErpServiceImpl.java @@ -378,6 +378,36 @@ public class WmsToErpServiceImpl implements WmsToErpService { } log.info("采购订单导入数据结束---------成功:" + ja.size() + "条"); + } + @Override + @Transactional(rollbackFor = Exception.class) + public void getPurchaseInInfo(Map map) { + WQLObject purchaseIn_wql = WQLObject.getWQLObject("EM_BI_ErpPurchaseIn"); + HashMap whereMap = new HashMap(); + if (map == null) { + //查询日期 + String import_date = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("PURCHASE_IMPORT_DATE").getValue(); + whereMap.put("import_date4", import_date); + //更新日期 + SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("PURCHASE_IN_IMPORT_DATE").setValue(DateUtil.now()); + ParamDto purchase_import_date = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("PURCHASE_IN_IMPORT_DATE"); + purchase_import_date.setValue(DateUtil.now()); + SpringContextHolder.getBean(ParamServiceImpl.class).update(purchase_import_date); + } else { + whereMap = new HashMap(map); + } + + JSONArray ja = WQL.getWO("QERP").setDbname("dataSource1").addParamMap(whereMap).addParam("flag", "4").process().getResultJSONArray(0); + log.info("备件入库单导入数据---------:" + ja.toString()); + + for (int i = 0; i < ja.size(); i++) { + JSONObject jo = ja.getJSONObject(i); + String CGENERALHID = jo.getString("CGENERALHID"); + JSONObject purchase = purchaseIn_wql.query("CGENERALHID = '"+CGENERALHID+"'").uniqueResult(0); + if (ObjectUtil.isEmpty(purchase)){ + + } + } } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/ext/erp/wql/QERP.wql b/mes/hd/nladmin-system/src/main/java/org/nl/ext/erp/wql/QERP.wql index 4f83452b..b177c3e8 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/ext/erp/wql/QERP.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/ext/erp/wql/QERP.wql @@ -19,10 +19,10 @@ 输入.import_date1 TYPEAS s_string 输入.import_date2 TYPEAS s_string 输入.import_date3 TYPEAS s_string - 输入.begin_time TYPEAS s_string - 输入.end_time TYPEAS s_string - 输入.fbillflag TYPEAS s_string - 输入.vbillcode TYPEAS s_string + 输入.begin_time TYPEAS s_string + 输入.end_time TYPEAS s_string + 输入.fbillflag TYPEAS s_string + 输入.vbillcode TYPEAS s_string 输入.cmaterialvid TYPEAS s_string diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoPruchaseInTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoPruchaseInTask.java new file mode 100644 index 00000000..70dad9ae --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoPruchaseInTask.java @@ -0,0 +1,15 @@ +package org.nl.modules.quartz.task; + +import lombok.extern.slf4j.Slf4j; +import org.nl.ext.erp.service.WmsToErpService; +import org.nl.utils.SpringContextHolder; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +public class AutoPruchaseInTask { + public void run () { + WmsToErpService wmsToErpService = SpringContextHolder.getBean(WmsToErpService.class); + wmsToErpService.getPurchaseInInfo(null); + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/pda/sb/service/impl/SparePartServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/pda/sb/service/impl/SparePartServiceImpl.java index 14ebdcb8..0c4e9e14 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/pda/sb/service/impl/SparePartServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/pda/sb/service/impl/SparePartServiceImpl.java @@ -176,6 +176,8 @@ public class SparePartServiceImpl implements SparePartService { io_mst.put("buss_type", "0008"); io_mst.put("io_type", "0"); io_mst.put("bill_type", "000801"); + io_mst.put("bizdeptid", deptId); + io_mst.put("bizperson", nickName); io_mst.put("biz_date", DateUtil.today()); StorattrDto storattrDto = storattrService.findById(Long.parseLong(stor_id)); String stor_code = storattrDto.getStor_code(); @@ -249,13 +251,25 @@ public class SparePartServiceImpl implements SparePartService { JSONObject jo = JSONObject.parseObject(JSON.toJSONString(jsonObject)); String sparepart_only_id = jo.getString("sparepart_only_id"); String iostorinvdtl_id = jo.getString("iostorinvdtl_id"); + String io_flag = jo.getString("io_flag"); + JSONObject dtl = WQLObject.getWQLObject("EM_BI_IOStorInvDtl").query("iostorinvdtl_id = '"+iostorinvdtl_id+"'").uniqueResult(0); HashMap map = new HashMap<>(); map.put("flag", "4"); map.put("sparepart_only_id", sparepart_only_id); map.put("iostorinvdtl_id", iostorinvdtl_id); JSONObject row = WQL.getWO("QPDAEM_BI_SPAREPART").addParamMap(map).process().uniqueResult(0); + + if (io_flag.equals("1") && ObjectUtil.isEmpty(row)){ + //如果出库的话查询库存记录表 + map.put("flag", "8"); + map.put("material_id",dtl.getString("material_id")); + row = WQL.getWO("QPDAEM_BI_SPAREPART").addParamMap(map).process().uniqueResult(0); + } + if (ObjectUtil.isEmpty(row)){ + throw new PdaRequestException("请扫描或输入正确的备件唯一码!"); + } JSONObject returnjo = new JSONObject(); returnjo.put("code", "1"); returnjo.put("content", row); @@ -271,9 +285,42 @@ public class SparePartServiceImpl implements SparePartService { } JSONObject jo = JSONObject.parseObject(JSON.toJSONString(jsonObject)); String io_flag = jo.getString("io_flag"); + JSONObject form = jo.getJSONObject("form"); if (io_flag.equals("0")) { sparePartInService.disConfirm(jo); } else { + //对明细进行循环,如果没有分配标识的,插入到出库分配表中 + JSONArray rows = jo.getJSONArray("rows"); + JSONArray ja = new JSONArray(); + for (int i = 0; i < rows.size(); i++) { + JSONObject row = rows.getJSONObject(i); + if (StrUtil.isEmpty(row.getString("iostorinvdis_id"))){ + JSONObject dis_jo = new JSONObject(); + dis_jo.put("iostorinvdis_id", IdUtil.getSnowflake(1, 1).nextId()); + dis_jo.put("iostorinv_id", form.getString("iostorinv_id")); + dis_jo.put("iostorinvdtl_id", form.getString("iostorinvdtl_id")); + JSONArray ass_dis = WQLObject.getWQLObject("EM_BI_IOStorInvDis").query("iostorinvdtl_id = '" + form.getString("iostorinvdtl_id") + "'").getResultJSONArray(0); + dis_jo.put("disseq_no", ass_dis.size() + 1); + dis_jo.put("material_id", row.getString("material_id")); + dis_jo.put("pcsn", "999999"); + dis_jo.put("real_qty", "1"); + dis_jo.put("work_status", "01"); + dis_jo.put("qty_unit_id", row.getString("qty_unit_id")); + dis_jo.put("qty_unit_name", row.getString("qty_unit_name")); + dis_jo.put("sect_id", row.getString("sect_id")); + dis_jo.put("sect_code", row.getString("sect_code")); + dis_jo.put("sect_name", row.getString("sect_name")); + dis_jo.put("struct_id", row.getString("struct_id")); + dis_jo.put("struct_code", row.getString("struct_code")); + dis_jo.put("struct_name", row.getString("struct_name")); + dis_jo.put("sparepart_only_id", row.getString("sparepart_only_id")); + WQLObject.getWQLObject("EM_BI_IOStorInvDis").insert(dis_jo); + ja.add(dis_jo); + }else { + ja.add(row); + } + } + jo.put("rows",ja); sparePartOutService.disConfirm(jo); } @@ -720,11 +767,13 @@ public class SparePartServiceImpl implements SparePartService { } JSONObject jo = JSONObject.parseObject(JSON.toJSONString(jsonObject)); String device_code = jo.getString("device_code"); + String run_date = jo.getString("run_date"); - JSONObject content = WQL.getWO("QPDAEM_BI_SPAREPART").addParam("flag", "7").addParam("device_code", device_code).process().uniqueResult(0); - if (ObjectUtil.isEmpty(content)) { - throw new PdaRequestException("未查询到相关设备信息!"); + if (StrUtil.isEmpty(device_code)){ + throw new PdaRequestException("输入的设备编码不能为空!"); } + + JSONObject content = WQL.getWO("QPDAEM_BI_SPAREPART").addParam("flag", "7").addParam("device_code", device_code).addParam("run_date",run_date).process().uniqueResult(0); JSONObject returnjo = new JSONObject(); returnjo.put("code", "1"); returnjo.put("content", content); @@ -796,6 +845,9 @@ public class SparePartServiceImpl implements SparePartService { double product_qty = jo.getDoubleValue("product_qty"); //生产总量 double nok_qty = jo.getDoubleValue("nok_qty"); //不合格数 double oee_value = jo.getDoubleValue("oee_value"); //不合格数 + if (ObjectUtil.isEmpty(jo.getString("oee_value"))){ + throw new PdaRequestException("oee不能为空!"); + } double theory_beat = jsonFile.getDoubleValue("theory_beat"); // 理论节拍 JSONObject run = WQLObject.getWQLObject("EM_BI_DeviceRunRecord").query("devicerecord_id = '" + jsonFile.getString("devicerecord_id") + "' AND run_date = '" + jo.getString("run_date") + "'").uniqueResult(0); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/pda/sb/wql/QPDAEM_BI_SPAREPART.wql b/mes/hd/nladmin-system/src/main/java/org/nl/pda/sb/wql/QPDAEM_BI_SPAREPART.wql index df8689d5..f051f8fb 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/pda/sb/wql/QPDAEM_BI_SPAREPART.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/pda/sb/wql/QPDAEM_BI_SPAREPART.wql @@ -19,6 +19,8 @@ 输入.device_code TYPEAS s_string 输入.maintenance_flag TYPEAS s_string 输入.iostorinvdtl_id TYPEAS s_string + 输入.material_id TYPEAS s_string + 输入.run_date TYPEAS s_string [临时表] @@ -92,9 +94,8 @@ mst.bill_code, mst.device_code, detail.label AS source_bill_type_name, - IFNULL( a.assign_qty, 0 ) AS finish_qty, - ( - dtl.plan_qty - IFNULL( a.assign_qty, 0 )) AS need_qty + round(IFNULL( a.assign_qty, 0 ),3) AS finish_qty, + round((dtl.plan_qty - IFNULL( a.assign_qty, 0 )),3) AS need_qty FROM em_bi_iostorinvdtl dtl LEFT JOIN md_me_materialbase mb ON mb.material_id = dtl.material_id @@ -125,9 +126,8 @@ mst.bill_code, mst.device_code, detail.label AS source_bill_type_name, - IFNULL( a.assign_qty, 0 ) AS finish_qty, - ( - dtl.plan_qty - IFNULL( a.assign_qty, 0 )) AS need_qty + round(IFNULL( a.assign_qty, 0 ),3) AS finish_qty, + round((dtl.plan_qty - IFNULL( a.assign_qty, 0 )),3) AS need_qty FROM em_bi_iostorinvdtl dtl LEFT JOIN md_me_materialbase mb ON mb.material_id = dtl.material_id @@ -245,29 +245,68 @@ ENDQUERY ENDIF - IF 输入.flag = "7" - QUERY - SELECT - file.device_code, - run.run_times, - run.prepare_times, - run.error_times, - run.adjust_times, - run.product_qty, - run.nok_qty, - run.oee_value, - run.run_date - FROM - em_bi_equipmentfile file - LEFT JOIN em_bi_devicerunrecord run ON run.devicerecord_id = file.devicerecord_id - WHERE - file.is_delete = '0' - OPTION 输入.device_code <> "" - file.device_code = 输入.device_code - ENDOPTION - ENDSELECT - ENDQUERY - ENDIF + IF 输入.flag = "7" + QUERY + SELECT + file.device_code, + run.run_times, + run.prepare_times, + run.error_times, + run.adjust_times, + run.product_qty, + run.nok_qty, + run.oee_value, + run.run_date + FROM + em_bi_equipmentfile file + LEFT JOIN em_bi_devicerunrecord run ON run.devicerecord_id = file.devicerecord_id AND run.run_date = 输入.run_date + WHERE + file.is_delete = '0' + OPTION 输入.device_code <> "" + file.device_code = 输入.device_code + ENDOPTION + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "8" + QUERY + SELECT + ivt.material_id, + qty_unit_name, + qty_unit_id, + ivt_qty AS real_qty, + ivt.sparepart_only_id, + mb.material_name, + ivt.struct_name, + sa.sect_id, + sa.sect_code, + sa.sect_name, + sa.struct_id, + sa.struct_code, + sa.struct_name + FROM + EM_BI_DeviceSparePartIvt ivt + LEFT JOIN md_me_materialbase mb ON mb.material_id = ivt.material_id + LEFT JOIN st_ivt_structattr sa ON sa.struct_id = ivt.struct_id + WHERE + ivt.sparepart_only_id NOT IN ( + SELECT + dis.sparepart_only_id + FROM + EM_BI_IOStorInv mst + LEFT JOIN EM_BI_IOStorInvDis dis ON mst.iostorinv_id = dis.iostorinv_id + WHERE + io_type = '1' + AND bill_status <> '99' + AND dis.iostorinvdis_id IS NOT NULL + ) + AND ivt.sparepart_only_id = 输入.sparepart_only_id + AND ivt.material_id = 输入.material_id + ENDSELECT + ENDQUERY + ENDIF + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/core/service/impl/SparePartOutServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/core/service/impl/SparePartOutServiceImpl.java index 73aa3f8f..b27c0cde 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/core/service/impl/SparePartOutServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/core/service/impl/SparePartOutServiceImpl.java @@ -384,13 +384,13 @@ public class SparePartOutServiceImpl implements SparePartOutService { } String iostorinvdtl_id = rows.getJSONObject(0).getString("iostorinvdtl_id"); - JSONArray unfinish_dis = dis_wql.query("iostorinvdtl_id = '" + iostorinvdtl_id + "' AND work_status < '99'").getResultJSONArray(0); - double disassist_qty = unfinish_dis.size(); + JSONArray unfinish_dis = dis_wql.query("iostorinvdtl_id = '" + iostorinvdtl_id + "' AND work_status = '99'").getResultJSONArray(0); + double assist_qty = unfinish_dis.size(); JSONObject dtl_jo = dtl_wql.query("iostorinvdtl_id = '" + iostorinvdtl_id + "'").uniqueResult(0); double plan_qty = dtl_jo.getDoubleValue("plan_qty"); - double real_qty = NumberUtil.sub(plan_qty, disassist_qty); + double real_qty = assist_qty; dtl_jo.put("real_qty", real_qty); - if (disassist_qty == 0) { + if (assist_qty == plan_qty) { dtl_jo.put("bill_status", "99"); } dtl_wql.update(dtl_jo); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/core/wql/QEM_BI_SPAREPART.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/core/wql/QEM_BI_SPAREPART.wql index db6cef40..06fb0048 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/core/wql/QEM_BI_SPAREPART.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/core/wql/QEM_BI_SPAREPART.wql @@ -497,7 +497,9 @@ out_mst.bizperson like 输入.out_person ENDOPTION OPTION 输入.sparepart_only_id <> "" - dis.sparepart_only_id like 输入.sparepart_only_id + (dis.sparepart_only_id like 输入.sparepart_only_id + OR + mb.material_name like 输入.sparepart_only_id) ENDOPTION OPTION 输入.in_person <> "" in_mst.bizperson like 输入.in_person diff --git a/mes/qd/src/views/wms/sb/inbill/AddDialog.vue b/mes/qd/src/views/wms/sb/inbill/AddDialog.vue index 0d6e281e..5a906876 100644 --- a/mes/qd/src/views/wms/sb/inbill/AddDialog.vue +++ b/mes/qd/src/views/wms/sb/inbill/AddDialog.vue @@ -123,6 +123,7 @@ :data="form.tableData" style="width: 100%;" border + :highlight-current-row="true" :header-cell-style="{background:'#f5f7fa',color:'#606266'}" > diff --git a/mes/qd/src/views/wms/sb/inbill/DivDialog.vue b/mes/qd/src/views/wms/sb/inbill/DivDialog.vue index 9fe92c5e..de804d19 100644 --- a/mes/qd/src/views/wms/sb/inbill/DivDialog.vue +++ b/mes/qd/src/views/wms/sb/inbill/DivDialog.vue @@ -30,7 +30,7 @@ style="width: 100%;" max-height="300" border - highlight-current-row + :highlight-current-row="true" :row-class-name="tableRowClassName" :header-cell-style="{background:'#f5f7fa',color:'#606266'}" @row-click="clcikRow" @@ -139,6 +139,7 @@ - + - + diff --git a/mes/qd/src/views/wms/sb/scrap/index.vue b/mes/qd/src/views/wms/sb/scrap/index.vue index 99621fa3..886f116e 100644 --- a/mes/qd/src/views/wms/sb/scrap/index.vue +++ b/mes/qd/src/views/wms/sb/scrap/index.vue @@ -100,6 +100,17 @@ + + 出库分配 +