diff --git a/mes/hd/nladmin-system/pom.xml b/mes/hd/nladmin-system/pom.xml index b88c3703..ca6ebf28 100644 --- a/mes/hd/nladmin-system/pom.xml +++ b/mes/hd/nladmin-system/pom.xml @@ -29,8 +29,8 @@ e-iceblue - spire.xls - 4.9.0 + spire.xls.free + 5.1.0 diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/mdpb.xls b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/mdpb.xls index b39f4942..0d2f5442 100644 Binary files a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/mdpb.xls and b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/mdpb.xls differ diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/WorkTaskServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/WorkTaskServiceImpl.java index b519efd3..f1e2ed3e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/WorkTaskServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/WorkTaskServiceImpl.java @@ -143,6 +143,7 @@ public class WorkTaskServiceImpl implements WorkTaskService { Long currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getNickName(); String now = DateUtil.now(); + WQLObject em_bi_deviceinfo = WQLObject.getWQLObject("em_bi_deviceinfo"); WQLObject PDM_BI_WorkOrder = WQLObject.getWQLObject("PDM_BI_WorkOrder"); // 工艺路线主表 WQLObject mstTab = WQLObject.getWQLObject("PDM_BI_WorkTask"); // 工艺路线主表 WQLObject PDM_BI_WorkTaskJob = WQLObject.getWQLObject("PDM_BI_WorkTaskJob"); // 工艺路线主表 @@ -161,6 +162,19 @@ public class WorkTaskServiceImpl implements WorkTaskService { if (StrUtil.isEmpty(device_id)) { throw new BadRequestException(jo.getString("worktask_code") + "当前记录未指定设备!"); } + String workprocedure_code = jsonMst.getString("workprocedure_code"); + if("GX002".contains(workprocedure_code)){ + JSONArray others = mstTab.query("worktask_id<>'"+worktask_id+"' and device_id='"+device_id+"' and status in('30')").getResultJSONArray(0); + if(others.size()>0){ + throw new BadRequestException(jo.getString("worktask_code") + "指定设备有其它已开始生产但未完成任务!"); + } + + } + JSONObject device = em_bi_deviceinfo.query("is_delete='0' and device_id='"+device_id+"'").uniqueResult(0); + + if(!workprocedure_code.equals(device.getString("workprocedure_code"))){ + throw new BadRequestException(jo.getString("worktask_code") + "指定设备所属工序与当前工序任务不一致!"); + } //更新任务 HashMap map = new HashMap<>(); map.put("status", "30"); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/AutoformulaServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/AutoformulaServiceImpl.java index 4287e9ec..443dd5c7 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/AutoformulaServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/AutoformulaServiceImpl.java @@ -3653,6 +3653,7 @@ public class AutoformulaServiceImpl implements AutoformulaService { @Override public void autoAll(JSONObject map) { WQLObject MD_ME_ProductMaterialExt = WQLObject.getWQLObject("MD_ME_ProducMaterialExt"); + WQLObject pdm_bi_workprocedureparaproduct = WQLObject.getWQLObject("pdm_bi_workprocedureparaproduct"); WQLObject md_me_materialbase = WQLObject.getWQLObject("md_me_materialbase"); WQLObject PDM_BI_WorkOrder = WQLObject.getWQLObject("PDM_BI_WorkOrder"); JSONArray rows = map.getJSONArray("rows"); @@ -3665,14 +3666,21 @@ public class AutoformulaServiceImpl implements AutoformulaService { if(workorder == null){ throw new BadRequestException("当前工令信息查询失败!"); } + JSONObject result = new JSONObject(); if("20".equals(workorder.getString("status"))){ JSONObject material = MD_ME_ProductMaterialExt.query("material_id ='"+material_id+"'").uniqueResult(0); if(material == null ){ throw new BadRequestException("当前成品查询不到成品物料扩展信息!"); } + JSONObject materPa = pdm_bi_workprocedureparaproduct.query("para_code ='QM008' and workprocedure_code='GX002' and material_id ='"+material_id+"'").uniqueResult(0); + + if(materPa == null ){ + throw new BadRequestException("当前成品查询不到球磨工艺参数球磨时间!"); + } JSONObject mater = md_me_materialbase.query("material_id ='"+material_id+"'").uniqueResult(0); workorder.put("formula_type","01"); + workorder.put("ball_time",materPa.getDouble("value")); workorder.put("waste_limit_down","0"); workorder.put("waste_limit_up","0"); workorder.put("c_balance",material.getString("c_balance")); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/FormulaServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/FormulaServiceImpl.java index 9f36c0b7..30a718a0 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/FormulaServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/FormulaServiceImpl.java @@ -500,15 +500,28 @@ public class FormulaServiceImpl implements FormulaService { JSONObject json98jj = paraTab.query("material_id = '" + material_id + "' and para_code = 'QM001'").uniqueResult(0); JSONObject json92jj = paraTab.query("material_id = '" + material_id + "' and para_code = 'QM002'").uniqueResult(0); + // 生成二维码 + String create_time = jsonWork.getString("create_time"); + BarcodeFormat qrCode = BarcodeFormat.QR_CODE; + BufferedImage imageCode = QrCodeUtil.generate(jsonWork.getString("workorder_id")+"#"+jsonMater.getString("ext_id")+"#"+jsonWork.getString("pcsn")+"#"+jsonWork.getString("workorder_qty")+"#"+create_time.substring(0,10), qrCode, 60, 60); + Workbook workbook = new Workbook(); + // 获取模板地址 + String template = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("EXCEL_PATH").getValue(); + String code_template = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("CODE_EXCEL_PATH").getValue(); + + workbook.loadFromFile(template); + //获取第一张工作表并将二维码流put进去 + Worksheet worksheet = workbook.getWorksheets().get(0); + worksheet.getPictures().add(1,1,imageCode); + workbook.saveToFile(code_template); + // 设置文件名和防止乱码现象 String fileName = URLEncoder.encode(jsonMater.getString("material_code")+"---"+jsonMst.getString("pcsn"), "UTF-8"); response.setHeader("Content-Disposition", "attachment; filename*=UTf-8''"+fileName+".xlsx"); // 获取输出流 ServletOutputStream outputStream = response.getOutputStream(); - String template = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("EXCEL_PATH").getValue(); -// String template = "D:\\work\\工艺控制卡模板.xlsx"; // 创建模板工作簿 - ExcelWriter workBook = EasyExcel.write(outputStream, DataDto.class).withTemplate(template).build(); + ExcelWriter workBook = EasyExcel.write(outputStream, DataDto.class).withTemplate(code_template).build(); // 获取第一个sheet WriteSheet sheet = EasyExcel.writerSheet().build(); @@ -569,31 +582,26 @@ public class FormulaServiceImpl implements FormulaService { } // 系列设备 - JSONObject jsonWorkTask_QM = workTaskTab.query("workorder_id = '" + jsonWork.getString("workorder_id") + "' and workprocedure_code = 'GX002'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(jsonWorkTask_QM)) { - HashMap map1 = new HashMap<>(); - map1.put("flag", "3"); - map1.put("product_series_id", jsonWorkTask_QM.getString("product_series_id")); - map1.put("workprocedure_id", jsonWorkTask_QM.getString("workprocedure_id")); - JSONObject jsonDevice1 = WQL.getWO("QPF_POINTCARD01").addParamMap(map1).process().uniqueResult(0); - map1.put("flag", "4"); - JSONObject jsonDevice2= WQL.getWO("QPF_POINTCARD01").addParamMap(map1).process().uniqueResult(0); - if (ObjectUtil.isNotEmpty(jsonDevice1) && ObjectUtil.isNotEmpty(jsonDevice2)) { - String device_code_1 = jsonDevice1.getString("device_code").substring(4, 6); - String device_code_2 = jsonDevice2.getString("device_code").substring(4, 6); - oneMap.put("device1", device_code_1 + "-" + device_code_2); - } + HashMap map1 = new HashMap<>(); + map1.put("flag", "3"); + map1.put("product_series_id", jsonMst.getString("product_series_id")); + map1.put("workprocedure_id", "1472449856613257216"); + JSONObject jsonDevice1 = WQL.getWO("QPF_POINTCARD01").addParamMap(map1).process().uniqueResult(0); + map1.put("flag", "4"); + JSONObject jsonDevice2= WQL.getWO("QPF_POINTCARD01").addParamMap(map1).process().uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonDevice1) && ObjectUtil.isNotEmpty(jsonDevice2)) { + String device_code_1 = jsonDevice1.getString("device_code").substring(4, 6); + String device_code_2 = jsonDevice2.getString("device_code").substring(4, 6); + oneMap.put("device1", device_code_1 + "-" + device_code_2); } - JSONObject jsonWorkTask_PW = workTaskTab.query("workorder_id = '" + jsonWork.getString("workorder_id") + "' and workprocedure_code = 'GX003'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(jsonWorkTask_PW)) { - HashMap map2 = new HashMap<>(); - map2.put("flag", "5"); - map2.put("product_series_id", jsonWorkTask_PW.getString("product_series_id")); - map2.put("workprocedure_id", jsonWorkTask_PW.getString("workprocedure_id")); - JSONObject jsonDevice3= WQL.getWO("QPF_POINTCARD01").addParamMap(map2).process().uniqueResult(0); - if (ObjectUtil.isNotEmpty(jsonDevice3)) oneMap.put("device2",jsonDevice3.getString("device_name")); - } + HashMap map2 = new HashMap<>(); + map2.put("flag", "5"); + map2.put("product_series_id", jsonMst.getString("product_series_id")); + map2.put("workprocedure_id", "1472449923327856640"); + JSONObject jsonDevice3= WQL.getWO("QPF_POINTCARD01").addParamMap(map2).process().uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonDevice3)) oneMap.put("device2",jsonDevice3.getString("device_name")); + // 球磨 oneMap.put("ball_speed", jsonMaterExt.getString("ball_speed")); @@ -797,9 +805,10 @@ public class FormulaServiceImpl implements FormulaService { //设置相关打印选项 Paper paper = pageFormat.getPaper(); -// paper.setImageableArea(0, 0, pageFormat.getWidth(), pageFormat.getHeight()); - paper.setSize(1240,1754); - paper.setImageableArea(0, 0, 1240, 1754); + paper.setImageableArea(0, 0, pageFormat.getWidth(), pageFormat.getHeight()); +// paper.setSize(1240,1754); + paper.setSize(595,842); +// paper.setImageableArea(0, 0, 1240, 1754); pageFormat.setPaper(paper); printerJob.setCopies(1); printerJob.setPrintable(workbook, pageFormat); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/ProductmaterialsetServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/ProductmaterialsetServiceImpl.java index 7492f84e..792e71c2 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/ProductmaterialsetServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/ProductmaterialsetServiceImpl.java @@ -117,6 +117,7 @@ public class ProductmaterialsetServiceImpl implements ProductmaterialsetService setJson.put("set_material_id", (String) json.getString("material_id")); setJson.put("set_prior_level", (String) json.getString("set_prior_level")); setJson.put("is_calculate_forming", json.getString("is_calculate_forming")); + setJson.put("add_rate", json.getString("add_rate")); setTab.insert(setJson); } } else { @@ -141,6 +142,7 @@ public class ProductmaterialsetServiceImpl implements ProductmaterialsetService setJson.put("set_material_id", (String) json.getString("material_id")); setJson.put("set_prior_level", (String) json.getString("set_prior_level")); setJson.put("is_calculate_forming", json.getString("is_calculate_forming")); + setJson.put("add_rate", json.getString("add_rate")); setTab.insert(setJson); } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/wql/QPD_PD_PRODUCTMATERIALSET01.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/wql/QPD_PD_PRODUCTMATERIALSET01.wql index 85e929d5..3946cdce 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/wql/QPD_PD_PRODUCTMATERIALSET01.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/wql/QPD_PD_PRODUCTMATERIALSET01.wql @@ -99,6 +99,7 @@ mset.set_type, mset.set_prior_level, mset.is_calculate_forming, + mset.add_rate, c.class_name, ext.old_mark FROM diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/service/impl/CheckOutBillServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/service/impl/CheckOutBillServiceImpl.java index 8b67a63f..bc81f00a 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/service/impl/CheckOutBillServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/service/impl/CheckOutBillServiceImpl.java @@ -89,6 +89,9 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { if (StrUtil.isNotEmpty(map.get("material_code"))) { map.put("material_code", "%" + map.get("material_code") + "%"); } + if (StrUtil.isNotEmpty(map.get("username"))) { + map.put("username", "%" + map.get("username") + "%"); + } if (StrUtil.isNotEmpty(map.get("pcsn"))) { map.put("pcsn", "%" + map.get("pcsn") + "%"); } @@ -100,6 +103,17 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { if (StrUtil.isNotEmpty(end_time)) { map.put("end_time", end_time.substring(0,10)+" 23:59:59"); } + String source_bill_code = map.get("source_bill_code"); + if (StrUtil.isNotEmpty(source_bill_code)) { + StringBuilder sb = new StringBuilder(); + String[] strs = source_bill_code.split(","); + for(int i=0;i "" - (mb.material_code like 输入.remark or mb.material_name like 输入.remark) + OPTION 输入.material_code <> "" + (mb.material_code like 输入.material_code or mb.material_name like 输入.material_code) ENDOPTION OPTION 输入.username <> "" - (ios.input_optid = 输入.username or ios.input_optname = 输入.username) + (user.username like 输入.username or ios.input_optname like 输入.username) ENDOPTION OPTION 输入.pcsn <> "" iosdtl.pcsn like 输入.pcsn ENDOPTION OPTION 输入.source_bill_code <> "" - iosdtl.source_bill_code = 输入.source_bill_code + iosdtl.source_bill_code in 输入.source_bill_code ENDOPTION OPTION 输入.begin_time <> "" ios.biz_date >= 输入.begin_time diff --git a/mes/qd/src/views/wms/pf/formula/PicDialog.vue b/mes/qd/src/views/wms/pf/formula/PicDialog.vue index 1163976f..91ccd79f 100644 --- a/mes/qd/src/views/wms/pf/formula/PicDialog.vue +++ b/mes/qd/src/views/wms/pf/formula/PicDialog.vue @@ -15,7 +15,7 @@ - 打印 - + --> diff --git a/mes/qd/src/views/wms/pf/productmaterialset/SetMaterial.vue b/mes/qd/src/views/wms/pf/productmaterialset/SetMaterial.vue index 65876ac6..9bc8aa14 100644 --- a/mes/qd/src/views/wms/pf/productmaterialset/SetMaterial.vue +++ b/mes/qd/src/views/wms/pf/productmaterialset/SetMaterial.vue @@ -96,6 +96,11 @@ + + + + + diff --git a/mes/qd/src/views/wms/statistics/outStorQuery/index.vue b/mes/qd/src/views/wms/statistics/outStorQuery/index.vue index 1621d313..6f872539 100644 --- a/mes/qd/src/views/wms/statistics/outStorQuery/index.vue +++ b/mes/qd/src/views/wms/statistics/outStorQuery/index.vue @@ -58,15 +58,6 @@ @change="crud.toQuery" /> - - - + + + + + @@ -127,6 +120,7 @@ + @@ -138,11 +132,12 @@ import crudOperation from '@crud/CRUD.operation' import pagination from '@crud/Pagination' import crudStorattr from '@/api/wms/basedata/st/storattr' import Date from '@/utils/datetime' +import StructIvt from '@/views/wms/statistics/outStorQuery/StructIvt' import crudRawAssist from '@/api/wms/st/core/inbill/rawassist' export default { name: 'outStorQuery', - components: { crudOperation, rrOperation, pagination }, + components: { StructIvt, crudOperation, rrOperation, pagination }, cruds() { return CRUD({ title: '生产配粉领料', idField: 'iostorinv_id', url: 'api/checkoutbill/queryDtl', crudMethod: { ...checkoutbill }, optShow: { @@ -161,11 +156,8 @@ export default { height: document.documentElement.clientHeight - 180 + 'px;', permission: { }, - divShow: false, - openParam: [], - mstrow: {}, + structshow: false, currentRow: null, - checkrows: [], storlist: [], billtypelist: [] } @@ -187,31 +179,11 @@ export default { this.crud.toQuery() }, methods: { - [CRUD.HOOK.beforeRefresh]() { - this.handleCurrentChange(null) - }, onInput() { this.$forceUpdate() }, - handleSelectionChange(val, row) { - if (val.length > 1) { - this.$refs.table.clearSelection() - this.$refs.table.toggleRowSelection(val.pop()) - this.buttonChange(row) - } else if (val.length === 1) { - this.buttonChange(row) - } else { - this.handleCurrentChange(null) - } - }, - onSelectAll() { - this.$refs.table.clearSelection() - this.handleCurrentChange(null) - }, - buttonChange(current) { - if (current !== null) { - this.currentRow = current - } + async queryMater() { + this.structshow = true }, quality_scodeFormat(row, column) { return this.dict.label.ST_QUALITY_SCODE[row.quality_scode] @@ -222,14 +194,19 @@ export default { is_activeFormat(row, column) { return this.dict.label.is_usable[row.is_active] }, - handleCurrentChange(current) { - if (current === null) { - this.currentRow = {} + queryTableDtl(rows) { + let devices = '' + for (let i = 0; i < rows.length; i++) { + if ( i === 0 ) { + devices = rows[i].workorder_code + }else{ + devices = devices + ',' + rows[i].workorder_code + } + } + if(rows.length > 0){ + this.crud.query.source_bill_code = devices + this.crud.toQuery() } - }, - querytable() { - this.crud.toQuery() - this.handleCurrentChange(null) } } }