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 658fd0f1..5a05ce31 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 @@ -464,12 +464,17 @@ public class AutoformulaServiceImpl implements AutoformulaService { String is_need_move = bomdlt.getString("is_need_move"); String bomdtl_material_id = bomdlt.getString("material_id"); String bomdtl_material_code = bomdlt.getString("material_code"); + String prior_level = bomdlt.getString("prior_level"); + if (StrUtil.isEmpty(prior_level)) { + prior_level = "03"; + } if("1".equals(is_need_move)){ //查询库存 JSONArray bom_materials = WQL.getWO("QPF_AUTOFORMULA01") .addParam("material_id",bomdtl_material_id) .addParam("workorder_id",workorder_id) .addParam("quality_scode","01") + .addParam("prior_level",prior_level) .addParam("flag","22") .process().getResultJSONArray(0); if(bom_materials.size()==0){ @@ -1308,12 +1313,17 @@ public class AutoformulaServiceImpl implements AutoformulaService { } String is_need_move = bomdlt.getString("is_need_move"); String bomdtl_material_id = bomdlt.getString("material_id"); + String prior_level = bomdlt.getString("prior_level"); + if (StrUtil.isEmpty(prior_level)) { + prior_level = "03"; + } if(nedd_qty>0 && "1".equals(is_need_move)){ //查询库存 JSONArray bom_materials = WQL.getWO("QPF_AUTOFORMULA01") .addParam("material_id",bomdtl_material_id) .addParam("quality_scode","01") .addParam("workorder_id",workorder_id) + .addParam("prior_level",prior_level) .addParam("flag","22") .process().getResultJSONArray(0); if(bom_materials.size()==0){ @@ -2525,9 +2535,14 @@ public class AutoformulaServiceImpl implements AutoformulaService { //获取Y1、X1、X2….剩余>0的物料 if(left_qty>0){ if(is_need_move.equals("1")){ + String prior_level = bomdlt.getString("prior_level"); + if (StrUtil.isEmpty(prior_level)) { + prior_level = "03"; + } JSONArray now_ivts = WQL.getWO("QPF_AUTOFORMULA01") .addParam("material_id",bomdtl_material_id) .addParam("quality_scode","01") + .addParam("prior_level",prior_level) .addParam("workorder_id",workorder_id) .addParam("flag","22") .process().getResultJSONArray(0); @@ -3426,11 +3441,16 @@ public class AutoformulaServiceImpl implements AutoformulaService { String bomdtl_material_id = bomdlts_plan.getString("material_id"); double left_qty = bomdlts_plan.getDouble("formula_qty"); String is_need_move = bomdlts_plan.getString("is_need_move"); + String prior_level = bomdlts_plan.getString("prior_level"); + if (StrUtil.isEmpty(prior_level)) { + prior_level = "03"; + } if(is_need_move.equals("1")){ //二次分配新料库存 JSONArray now_ivts = WQL.getWO("QPF_AUTOFORMULA01") .addParam("material_id",bomdtl_material_id) .addParam("quality_scode","01") + .addParam("prior_level",prior_level) .addParam("workorder_id",workorder_id) .addParam("flag","22") .process().getResultJSONArray(0); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/wql/QPF_AUTOFORMULA01.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/wql/QPF_AUTOFORMULA01.wql index 511cacef..54983e95 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/wql/QPF_AUTOFORMULA01.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/wql/QPF_AUTOFORMULA01.wql @@ -15,6 +15,7 @@ ################################################# 输入.flag TYPEAS s_string 输入.quality_scode TYPEAS s_string + 输入.prior_level TYPEAS s_string 输入.material_id TYPEAS s_string 输入.material_code TYPEAS s_string 输入.is_need_manage TYPEAS s_string @@ -186,10 +187,13 @@ OPTION 输入.quality_scode <> "" structivt.quality_scode = 输入.quality_scode ENDOPTION + OPTION 输入.prior_level <> "" + structivt.ivt_level <= 输入.prior_level + ENDOPTION OPTION 输入.is_pure <> "" stockmaterialext.is_pure = 输入.is_pure ENDOPTION - ORDER BY structivt.material_id,structivt.pcsn, structivt.sum_qty desc + ORDER BY structivt.material_id,structivt.ivt_level desc,structivt.pcsn, structivt.sum_qty desc ENDSELECT ENDQUERY ENDIF diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/stat/websocket/AutoWebSocketTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/stat/websocket/AutoWebSocketTask.java new file mode 100644 index 00000000..c75f0de8 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/stat/websocket/AutoWebSocketTask.java @@ -0,0 +1,38 @@ +package org.nl.wms.sb.stat.websocket; + +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.modules.mnt.websocket.MsgType; +import org.nl.modules.mnt.websocket.SocketMsg; +import org.nl.modules.mnt.websocket.WebSocketServer; +import org.nl.wms.pf.service.AutoPfTaskService; +import org.nl.wql.WQL; +import org.springframework.stereotype.Component; + +import java.io.IOException; +import java.util.HashMap; + +@Slf4j +@Component +@RequiredArgsConstructor +public class AutoWebSocketTask { + + public void run() { + try { + String today = DateUtil.today(); + HashMap map = new HashMap<>(); + map.put("flag", "1"); + map.put("today", "%"+today+"%"); + + JSONArray resultJSONArray = WQL.getWO("TASK_AUTOWEBSOCKETTSK").addParamMap(map).process().getResultJSONArray(0); + + SocketMsg socketMsg = new SocketMsg(resultJSONArray, MsgType.INFO); + WebSocketServer.sendInfo(socketMsg,"20"); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/stat/wql/TASK_AUTOWEBSOCKETTSK.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/stat/wql/TASK_AUTOWEBSOCKETTSK.wql new file mode 100644 index 00000000..83d2cfef --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/stat/wql/TASK_AUTOWEBSOCKETTSK.wql @@ -0,0 +1,163 @@ +[交易说明] + 交易名: 实时查询统计任务 + 所属模块: + 功能简述: + 版权所有: + 表引用: + 版本经历: + +[数据库] + --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库 + +[IO定义] + ################################################# + ## 表字段对应输入参数 + ################################################# + 输入.flag TYPEAS s_string + 输入.today TYPEAS s_string + + +[临时表] + --这边列出来的临时表就会在运行期动态创建 + +[临时变量] + --所有中间过程变量均可在此处定义 + +[业务过程] + + ########################################## + # 1、输入输出检查 # + ########################################## + + + ########################################## + # 2、主过程前处理 # + ########################################## + + + ########################################## + # 3、业务主过程 # + ########################################## + + IF 输入.flag = "1" + QUERY + SELECT + mst.input_time AS input_time, + mst.repair_code AS repair_code, + ( + CASE + mst.maintenancecycle + WHEN '01' THEN '计划维修' + WHEN '02' THEN '临时维修' + END + ) AS maintenancecycle, + file.device_code, + file.device_name, + ( + CASE + mst.invstatus + WHEN '01' THEN '生成' + WHEN '02' THEN '提交' + WHEN '03' THEN '开始' + WHEN '04' THEN '委外维修' + WHEN '05' THEN '委外验收' + WHEN '06' THEN '结束' + WHEN '07' THEN '确认' + WHEN '99' THEN '审核' + END + ) AS invstatus, + mst.real_start_date, + mst.real_end_date + FROM + EM_BI_DeviceRepairMst mst + LEFT JOIN EM_BI_EquipmentFile file ON mst.devicerecord_id = file.devicerecord_id + WHERE + mst.is_delete = '0' + AND (mst.invstatus <> '99' or (mst.invstatus = '99' and mst.audit_time like 输入.today)) + AND ( ISNULL( mst.source_bill_id ) OR mst.source_bill_type = 'WXJH' ) + + UNION + + SELECT + st.create_time AS input_time, + st.request_code AS repair_code, + class.class_name AS maintenancecycle, + file.device_code, + file.device_name, + ( + CASE + st.is_passed + WHEN '0' THEN + ( + CASE st.is_passed + WHEN '0' THEN '否' + WHEN '1' THEN '是' + END + ) + WHEN '1' THEN + ( + CASE mst.invstatus + WHEN '01' THEN '生成' + WHEN '02' THEN '提交' + WHEN '03' THEN '开始' + WHEN '04' THEN '委外维修' + WHEN '05' THEN '委外验收' + WHEN '06' THEN '结束' + WHEN '07' THEN '确认' + WHEN '99' THEN '审核' + END + ) + END + ) AS invstatus, + mst.real_start_date, + mst.real_end_date + FROM + EM_BI_DeviceRepairRequest st + LEFT JOIN EM_BI_EquipmentFile file ON st.devicerecord_id = file.devicerecord_id + LEFT JOIN md_pb_classstandard class ON class.class_id = st.device_faultclass_id + LEFT JOIN EM_BI_DeviceRepairMst mst ON mst.source_bill_id = st.request_id + WHERE + st.is_delete = '0' + AND (st.status <> '99' or (st.status = '99' and st.finish_time like 输入.today)) + AND mst.source_bill_type = 'BXD' + + UNION + + SELECT + mst.input_time AS input_time, + mst.maint_code AS repair_code, + ( + CASE + mst.maintenancecycle + WHEN '01' THEN '计划保养' + WHEN '02' THEN '临时保养' + END + ) AS maintenancecycle, + file.device_code, + file.device_name, + ( + CASE + mst.invstatus + WHEN '01' THEN '生成' + WHEN '02' THEN '提交' + WHEN '03' THEN '开始' + WHEN '04' THEN '结束' + WHEN '05' THEN '确认' + WHEN '99' THEN '审核' + END + ) AS invstatus, + mst.real_start_date, + mst.real_end_date + FROM + EM_BI_DeviceMaintenanceMst mst + LEFT JOIN EM_BI_EquipmentFile file ON mst.devicerecord_id = file.devicerecord_id + WHERE + mst.is_delete = '0' + AND (mst.invstatus <> '99' or (mst.invstatus = '99' and mst.audit_time like 输入.today)) + + ENDSELECT + ENDQUERY + ENDIF + + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/rest/ReturnOutBillController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/rest/ReturnOutBillController.java index 054839e2..0250a71d 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/rest/ReturnOutBillController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/rest/ReturnOutBillController.java @@ -47,4 +47,10 @@ public class ReturnOutBillController { public ResponseEntity queryBillDtl(@RequestParam Map whereJson, Pageable page){ return new ResponseEntity<>(returnOutBillService.queryBillDtl(whereJson,page), HttpStatus.OK); } + @GetMapping("/queryWashDtl") + @Log("查询软废库存") + @ApiOperation("查询软废库存") + public ResponseEntity queryWashDtl(@RequestParam Map whereJson, Pageable page){ + return new ResponseEntity<>(returnOutBillService.queryWashDtl(whereJson,page), HttpStatus.OK); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/service/ReturnOutBillService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/service/ReturnOutBillService.java index 5d4045e0..59753fdb 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/service/ReturnOutBillService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/service/ReturnOutBillService.java @@ -30,4 +30,12 @@ public interface ReturnOutBillService { * @return Map */ Map queryBillDtl(Map whereJson, Pageable page); + /** + * 查询数据分页 + * + * @param whereJson 条件 + * @param page 分页参数 + * @return Map + */ + Map queryWashDtl(Map whereJson, Pageable page); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/service/impl/ReturnOutBillServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/service/impl/ReturnOutBillServiceImpl.java index 8fd0f23e..3f65b410 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/service/impl/ReturnOutBillServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/service/impl/ReturnOutBillServiceImpl.java @@ -12,6 +12,7 @@ import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.utils.SpringContextHolder; +import org.nl.wms.basedata.master.constant.MaterOptTypeEnum; import org.nl.wms.basedata.master.service.ClassstandardService; import org.nl.wms.st.core.service.ReturnOutBillService; import org.nl.wql.WQL; @@ -161,4 +162,19 @@ public class ReturnOutBillServiceImpl implements ReturnOutBillService { return jo; } + @Override + public Map queryWashDtl(Map whereJson, Pageable page) { + HashMap map = new HashMap<>(whereJson); + if (StrUtil.isNotEmpty(map.get("search"))) { + map.put("search", "%" + map.get("search") + "%"); + } + if (StrUtil.isNotEmpty(map.get("pcsn"))) { + map.put("pcsn", "%" + map.get("pcsn") + "%"); + } + map.put("flag", "4"); + map.put("material_ids", MaterOptTypeEnum.RF.getClass_idStr()); + JSONObject jo = WQL.getWO("QST_IVT_RETURNOUTBILL").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "mb.material_id desc"); + return jo; + } + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/wql/QST_IVT_RETURNOUTBILL.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/wql/QST_IVT_RETURNOUTBILL.wql index d5756f22..e170d999 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/wql/QST_IVT_RETURNOUTBILL.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/wql/QST_IVT_RETURNOUTBILL.wql @@ -23,9 +23,11 @@ 输入.mater_type TYPEAS f_string 输入.query_type TYPEAS s_string 输入.searchid TYPEAS s_string + 输入.is_active TYPEAS s_string 输入.bucketunique TYPEAS s_string 输入.pcsn TYPEAS s_string 输入.storagevehicle_code TYPEAS s_string + 输入.material_ids TYPEAS f_string [临时表] --这边列出来的临时表就会在运行期动态创建 @@ -216,3 +218,55 @@ ENDSELECT ENDPAGEQUERY ENDIF + + IF 输入.flag = "4" + PAGEQUERY + SELECT + structivt.*, + mb.material_name, + mb.material_code, + '' AS remark + FROM + ( + SELECT + SUM( ivt.canuse_qty ) AS plan_qty, + SUM( ivt.ivt_qty ) AS sum_qty, + ivt.qty_unit_id, + ivt.qty_unit_name, + ivt.material_id, + ivt.pcsn, + ivt.is_active, + ivt.ivt_level, + ivt.quality_scode + FROM + st_ivt_structivt ivt + GROUP BY + ivt.material_id, + ivt.pcsn, + ivt.is_active, + ivt.ivt_level, + ivt.quality_scode, + ivt.qty_unit_id, + ivt.qty_unit_name + ) structivt + LEFT JOIN md_me_materialbase mb ON mb.material_id = structivt.material_id + WHERE + 1 = 1 + AND structivt.plan_qty > 0 + OPTION 输入.search <> "" + (mb.material_code like 输入.search + OR + mb.material_name like 输入.search) + ENDOPTION + OPTION 输入.pcsn <> "" + structivt.pcsn like 输入.pcsn + ENDOPTION + OPTION 输入.is_active <> "" + structivt.is_active = 输入.is_active + ENDOPTION + OPTION 输入.material_ids <> "" + mb.material_type_id in 输入.material_ids + ENDOPTION + ENDSELECT + ENDPAGEQUERY + ENDIF diff --git a/mes/qd/src/router/routers.js b/mes/qd/src/router/routers.js index 95a2bca4..f61e138e 100644 --- a/mes/qd/src/router/routers.js +++ b/mes/qd/src/router/routers.js @@ -17,6 +17,12 @@ export const constantRouterMap = [ hidden: true, meta: { title: '扩展屏' } }, + { + path: '/bigScreen/task/stat', + component: (resolve) => require(['@/views/wms/sb/stat/task/bigScreen'], resolve), + hidden: true, + meta: { title: '任务看板' } + }, { path: '/404', component: (resolve) => require(['@/views/features/404'], resolve), diff --git a/mes/qd/src/views/wms/sb/stat/task/bigScreen.vue b/mes/qd/src/views/wms/sb/stat/task/bigScreen.vue new file mode 100644 index 00000000..a4d387fe --- /dev/null +++ b/mes/qd/src/views/wms/sb/stat/task/bigScreen.vue @@ -0,0 +1,128 @@ + + + + + diff --git a/mes/qd/src/views/wms/st/core/outbill/wastewashoutbill/AddDialog.vue b/mes/qd/src/views/wms/st/core/outbill/wastewashoutbill/AddDialog.vue index 86c4c888..ae7eec29 100644 --- a/mes/qd/src/views/wms/st/core/outbill/wastewashoutbill/AddDialog.vue +++ b/mes/qd/src/views/wms/st/core/outbill/wastewashoutbill/AddDialog.vue @@ -108,6 +108,16 @@ + + 添加库存物料 + - + + @@ -225,6 +236,7 @@ +