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 83b15255..539f54a0 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 @@ -51,6 +51,7 @@ import java.math.BigDecimal; import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; @Service @@ -839,19 +840,81 @@ public class FormulaServiceImpl implements FormulaService { } // 系列设备 +// 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); +// } + 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); + JSONArray jsonDevice1 = WQL.getWO("QPF_POINTCARD01").addParamMap(map1).process().getResultJSONArray(0); + + List list = new ArrayList(); + if (jsonDevice1.size()!=0) { + for(int i=0;i> hashmap = new HashMap>(); + //第一个数据 + int flag = list.get(0); + int num = 0; + for(int i=0;i new_list= hashmap.get(num+""); + new_list.add(now); + hashmap.put(num+"",new_list); + }else{ + List new_list= new ArrayList(); + new_list.add(now); + hashmap.put(num+"",new_list); + } + }else{//不连续了就新增一个 + flag = now; + num++; + List new_list= new ArrayList(); + new_list.add(now); + hashmap.put(num+"",new_list); + } + } + String strs = ""; + for (Map.Entry> entry : hashmap.entrySet()) { + String key = entry.getKey(); + List bj_bomdlt = entry.getValue(); + int n0 = bj_bomdlt.get(0); + int n_last = bj_bomdlt.get(bj_bomdlt.size() - 1); + String str = ""; + if (n0 == n_last) { + str = n0 + ""; + } else { + str = n0 + "-" + n_last; + } + if (StrUtil.isNotEmpty(strs)) { + strs = strs + "、" + str; + } else { + strs = str; + } + } + oneMap.put("device1", strs); } + + HashMap map2 = new HashMap<>(); map2.put("flag", "5"); map2.put("product_series_id", jsonMst.getString("product_series_id")); @@ -887,122 +950,6 @@ public class FormulaServiceImpl implements FormulaService { workBook.fill(new FillWrapper("data", flData), sheet); // workBook.fill(ylData, sheet); workBook.finish(); - -/* String formula_id = MapUtil.getStr(whereJson, "formula_id"); - - WQLObject formMstTab = WQLObject.getWQLObject("PDM_BI_Formula"); // 配方主表 - WQLObject formDtlTab = WQLObject.getWQLObject("PDM_BI_FormulaDtl"); // 配方明细表 - WQLObject workTab = WQLObject.getWQLObject("PDM_BI_WorkOrder"); // 工令表 - WQLObject storageTab = WQLObject.getWQLObject("tool_local_storage"); // 文件表 - WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase"); // 物料表 - WQLObject classTab = WQLObject.getWQLObject("md_pb_classstandard"); // 分类表 - - JSONObject jsonMst = formMstTab.query("formula_id ='" + formula_id + "'").uniqueResult(0); - String material_id = jsonMst.getString("material_id"); - JSONObject jsonMater = materTab.query("material_id ='" + material_id + "'").uniqueResult(0); - - JSONObject jsonWork = workTab.query("workorder_id = '" + jsonMst.getString("workorder_id") + "'").uniqueResult(0); - - JSONObject jsonStor = storageTab.query("source_bill_id = '" + material_id + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(jsonStor)) throw new BadRequestException("此物料模板不存在,请先上传模板"); - - // 设置文件名和防止乱码现象 - 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 = jsonStor.getString("path"); - // 创建模板工作簿 - ExcelWriter workBook = EasyExcel.write(outputStream, DataDto.class).withTemplate(template).build(); - // 获取第一个sheet - WriteSheet sheet = EasyExcel.writerSheet().build(); - - String classIdsFl = classstandardService.getAllChildIdStr(MaterOptTypeEnum.FL.getClass_idStr()); - String classIdsYlandBcp = classstandardService.getAllChildIdStr(MaterOptTypeEnum.YL_AND_BCP.getClass_idStr()); - - // 单组填充 - String planstart_time = jsonWork.getString("planstart_time"); - - HashMap oneMap = new HashMap<>(); - oneMap.put("pcsn1", jsonMst.getString("pcsn")); - oneMap.put("weight1",NumberUtil.round(jsonMst.getString("masterbucket_qty"),3)); - if (ObjectUtil.isNotEmpty(planstart_time)) { - oneMap.put("date1", planstart_time.substring(0,10)); - } - // 查询配方明细-辅料 - HashMap map = new HashMap<>(); - map.put("flag", "1"); - map.put("classIds", classIdsFl); - map.put("formula_id", formula_id); - JSONArray flArr = WQL.getWO("QPF_POINTCARD01").addParamMap(map).process().getResultJSONArray(0); - - ArrayList> flData = new ArrayList<>(); - if (ObjectUtil.isNotEmpty(flArr)) { - for (int i = 0; i < flArr.size(); i++) { - HashMap mapFL = new HashMap<>(); - JSONObject jsonObject = flArr.getJSONObject(i); - mapFL.put("material_name",jsonObject.getString("material_name")); - mapFL.put("pcsn",jsonObject.getString("pcsn")); - mapFL.put("weight",NumberUtil.round(jsonObject.getString("formula_qty"),3)); - flData.add(mapFL); - } - } - // 查询配方明细-原料 - map.put("classIds", classIdsYlandBcp); - JSONArray ylArr = WQL.getWO("QPF_POINTCARD01").addParamMap(map).process().getResultJSONArray(0); - ArrayList> ylData = new ArrayList<>(); - if (ObjectUtil.isNotEmpty(ylArr)) { - for (int j = 0; j < ylArr.size(); j++) { - HashMap mapYL = new HashMap<>(); - JSONObject jsonObject = ylArr.getJSONObject(j); - String material_id1 = jsonObject.getString("material_id"); - if (StrUtil.equals(jsonObject.getString("material_type"), "01")) { - boolean is_PGF = materialbaseService.isAlongMaterType(MaterOptTypeEnum.PGF.getCode(),material_id1 , null); - boolean is_RF = materialbaseService.isAlongMaterType(MaterOptTypeEnum.RF.getCode(),material_id1 , null); - if (is_PGF || is_RF) { - mapYL.put("material_name",jsonObject.getString("material_code")); - } else { - mapYL.put("material_name",jsonObject.getString("material_name")); - } - } else { - mapYL.put("material_name",jsonObject.getString("material_name")); - } - mapYL.put("pcsn",jsonObject.getString("pcsn")); - mapYL.put("weight", NumberUtil.round(jsonObject.getString("formula_qty"),3)); - ylData.add(mapYL); - } - } - if (ylArr.size() == 8) { - map.put("flag", "2"); - JSONArray ylArr2 = WQL.getWO("QPF_POINTCARD01").addParamMap(map).process().getResultJSONArray(0); - if (ObjectUtil.isNotEmpty(ylArr2)) { - for (int k = 0; k < ylArr2.size(); k++) { - HashMap mapYL2 = new HashMap<>(); - JSONObject jsonObject2 = ylArr2.getJSONObject(k); - String material_id1 = jsonObject2.getString("material_id"); - if (StrUtil.equals(jsonObject2.getString("material_type"), "01")) { - boolean is_PGF = materialbaseService.isAlongMaterType(MaterOptTypeEnum.PGF.getCode(),material_id1 , null); - boolean is_RF = materialbaseService.isAlongMaterType(MaterOptTypeEnum.RF.getCode(),material_id1 , null); - if (is_PGF || is_RF) { - mapYL2.put("material_name",jsonObject2.getString("material_code")); - } else { - mapYL2.put("material_name",jsonObject2.getString("material_name")); - } - } else { - mapYL2.put("material_name",jsonObject2.getString("material_name")); - } - mapYL2.put("pcsn",jsonObject2.getString("pcsn")); - mapYL2.put("weight", NumberUtil.round(jsonObject2.getString("formula_qty"),3)); - flData.add(mapYL2); - } - } - - } - workBook.fill(oneMap, sheet); - workBook.fill(new FillWrapper("data1", ylData), sheet); - workBook.fill(new FillWrapper("data2", flData), sheet); -// workBook.fill(ylData, sheet); - workBook.finish();*/ } @Override @@ -1099,4 +1046,97 @@ public class FormulaServiceImpl implements FormulaService { return wcchange; } + + public static void main(String[] args) { + JSONArray jsonDevice1 = new JSONArray(); + JSONObject j51 = new JSONObject(); + j51.put("device_code","QMJ051"); + jsonDevice1.add(j51); + JSONObject j52 = new JSONObject(); + j52.put("device_code","QMJ052"); + jsonDevice1.add(j52); + JSONObject j53 = new JSONObject(); + j53.put("device_code","QMJ053"); + jsonDevice1.add(j53); + + JSONObject j54 = new JSONObject(); + j54.put("device_code","QMJ054"); + jsonDevice1.add(j54); + + JSONObject j60 = new JSONObject(); + j60.put("device_code","QMJ060"); + jsonDevice1.add(j60); + + JSONObject j67 = new JSONObject(); + j67.put("device_code","QMJ067"); + jsonDevice1.add(j67); + + JSONObject j68 = new JSONObject(); + j68.put("device_code","QMJ068"); + jsonDevice1.add(j68); + + JSONObject j69 = new JSONObject(); + j69.put("device_code","QMJ069"); + jsonDevice1.add(j69); + + JSONObject j70 = new JSONObject(); + j70.put("device_code","QMJ070"); + jsonDevice1.add(j70); + + List list = new ArrayList(); + if (jsonDevice1.size()!=0) { + for(int i=0;i> hashmap = new HashMap>(); + //第一个数据 + int flag = list.get(0); + int num = 0; + for(int i=0;i new_list= hashmap.get(num+""); + new_list.add(now); + hashmap.put(num+"",new_list); + }else{ + List new_list= new ArrayList(); + new_list.add(now); + hashmap.put(num+"",new_list); + } + }else{//不连续了就新增一个 + flag = now; + num++; + List new_list= new ArrayList(); + new_list.add(now); + hashmap.put(num+"",new_list); + } + } + + String strs = ""; + for (Map.Entry> entry : hashmap.entrySet()) { + String key = entry.getKey(); + List bj_bomdlt = entry.getValue(); + int n0 = bj_bomdlt.get(0); + int n_last = bj_bomdlt.get(bj_bomdlt.size() - 1); + String str = ""; + if (n0 == n_last) { + str = n0 + ""; + } else { + str = n0 + "-" + n_last; + } + if (StrUtil.isNotEmpty(strs)) { + strs = strs + "、" + str; + } else { + strs = str; + } + } + + System.out.println(strs); + } + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/auToTask/AutoCreateRepair.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/auToTask/AutoCreateRepair.java index c79006da..70151144 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/auToTask/AutoCreateRepair.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/auToTask/AutoCreateRepair.java @@ -1,5 +1,6 @@ package org.nl.wms.sb.auToTask; +import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.NumberUtil; @@ -12,9 +13,12 @@ import lombok.extern.slf4j.Slf4j; import org.nl.modules.security.service.dto.JwtUserDto; import org.nl.modules.system.util.CodeUtil; import org.nl.utils.SecurityUtils; +import org.nl.wql.WQL; import org.nl.wql.core.bean.WQLObject; import org.springframework.stereotype.Component; +import java.util.Date; + /** * 自动创建维修单 * @author Liuxy @@ -29,101 +33,97 @@ public class AutoCreateRepair { WQLObject planMstTab = WQLObject.getWQLObject("EM_BI_DeviceRepairPlanMst"); // 设备维修计划主表 WQLObject repairMstTab = WQLObject.getWQLObject("EM_BI_DeviceRepairMst"); // 设备维修单主表 - // 1.查询 设备档案表 中状态为:正常10、闲置11、故障20、维修30、保养40状态的设备 - JSONArray fileArr = fileTab.query("status in (10,11,20,30,40)").getResultJSONArray(0); - + // 1.查询 设备档案表 中状态为:正常10、闲置11、故障20、维修30、保养40状态的设备的 设备维修计划主表 // 2.根据查询出来的记录 查询 设备维修计划表 中启用状态 = 启用的记录 - for (int i = 0; i < fileArr.size(); i++) { - JSONObject json = fileArr.getJSONObject(i); - String devicerecord_id = json.getString("devicerecord_id"); + JSONArray jsonPlanMstArr = WQL.getWO("EM_BI_DEVICEREPAIR002").addParam("flag","3").process().getResultJSONArray(0); + if (ObjectUtil.isNotEmpty(jsonPlanMstArr)) { + for (int j = 0; j < jsonPlanMstArr.size(); j++) { + JSONObject jsonPlanMst = jsonPlanMstArr.getJSONObject(j); + // 2.1 判断维修计划表中:实际开始时间、实际结束时间 为空 + String real_start_date = jsonPlanMst.getString("real_start_date"); + String real_end_date = jsonPlanMst.getString("real_end_date"); - JSONArray jsonPlanMstArr = planMstTab.query("devicerecord_id = '" + devicerecord_id + "' and is_active = '1'").getResultJSONArray(0); - if (ObjectUtil.isNotEmpty(jsonPlanMstArr)) { - for (int j = 0; j < jsonPlanMstArr.size(); j++) { - JSONObject jsonPlanMst = jsonPlanMstArr.getJSONObject(j); - // 2.1 判断维修计划表中:实际开始时间、实际结束时间 为空 - String real_start_date = jsonPlanMst.getString("real_start_date"); - String real_end_date = jsonPlanMst.getString("real_end_date"); + // 2.2 根据源单号为维修计划id查询 维修单 --条件未删除、未审核 + JSONObject jsonRepairMst = repairMstTab.query("source_bill_id = '" + jsonPlanMst.getString("repair_plan_id") + "' and is_delete = '0' and invstatus != '99'").uniqueResult(0); + if (ObjectUtil.isEmpty(real_start_date) && ObjectUtil.isEmpty(real_end_date)) { + if (ObjectUtil.isEmpty(jsonRepairMst)) { + // 2.3 判断周期 + String maintenancecycle = jsonPlanMst.getString("maintenancecycle"); + String plan_start_date = jsonPlanMst.getString("plan_start_date"); + String today = DateUtil.today(); + // 准备参数 + JSONObject param = new JSONObject(); + param.put("devicerecord_id",jsonPlanMst.getString("devicerecord_id")); + param.put("maintenancecycle","01"); + param.put("plan_start_date",jsonPlanMst.getString("plan_start_date")); + param.put("source_bill_id",jsonPlanMst.getString("repair_plan_id")); + param.put("source_bill_code",jsonPlanMst.getString("repair_plan_code")); - // 2.2 根据源单号为维修计划id查询 维修单 --条件未删除、未审核 - JSONObject jsonRepairMst = repairMstTab.query("source_bill_id = '" + jsonPlanMst.getString("repair_plan_id") + "' and is_delete = '0' and invstatus != '99'").uniqueResult(0); - if (ObjectUtil.isEmpty(real_start_date) && ObjectUtil.isEmpty(real_end_date)) { - if (ObjectUtil.isEmpty(jsonRepairMst)) { - // 2.3 判断周期 - String maintenancecycle = jsonPlanMst.getString("maintenancecycle"); - String plan_start_date = jsonPlanMst.getString("plan_start_date").replace("-", ""); - String today = DateUtil.today().replace("-", ""); - // 准备参数 - JSONObject param = new JSONObject(); - param.put("devicerecord_id",jsonPlanMst.getString("devicerecord_id")); - param.put("maintenancecycle","01"); - param.put("plan_start_date",jsonPlanMst.getString("plan_start_date")); - param.put("source_bill_id",jsonPlanMst.getString("repair_plan_id")); - param.put("source_bill_code",jsonPlanMst.getString("repair_plan_code")); + // 计算 维修计划日期 - 当前日期 后的天数 + Date today2 = DateUtil.parse(today); + Date plan_start_date2 = DateUtil.parse(plan_start_date); + long num = (int) DateUtil.between(plan_start_date2,today2, DateUnit.DAY); - // 计算 当前日期 - 维修计划日期 后的天数 - String num = String.valueOf(NumberUtil.sub(today, plan_start_date)); - - // 周期为年 :当前日期-维修计划开始时间 <= 15 天时,新增维修单 - if (StrUtil.equals(maintenancecycle,"01")) { - if (Integer.parseInt(num) >= 15) { - this.createRepair(param); - } - // 周期为季度 :当前日期-维修计划开始时间 <= 10 天时,新增维修单 - } else if (StrUtil.equals(maintenancecycle,"02")) { - if (Integer.parseInt(num) >= 10) { - this.createRepair(param); - } - // 周期为月 :当前日期-维修计划开始时间 <= 7 天时,新增维修单 - } else if (StrUtil.equals(maintenancecycle,"03")) { - if (Integer.parseInt(num) >= 7) { - this.createRepair(param); - } - // 周期为周 :当前日期-维修计划开始时间 <= 3 天时,新增维修单 - } else if (StrUtil.equals(maintenancecycle,"04")) { - if (Integer.parseInt(num) >= 3) { - this.createRepair(param); - } + // 周期为年 : 维修计划日期 - 当前日期 <= 15 天时,新增维修单 + if (StrUtil.equals(maintenancecycle,"01")) { + if (num <= 15) { + this.createRepair(param); + } + // 周期为季度 : 维修计划日期 - 当前日期 <= 10 天时,新增维修单 + } else if (StrUtil.equals(maintenancecycle,"02")) { + if (num <= 10) { + this.createRepair(param); + } + // 周期为月 : 维修计划日期 - 当前日期 <= 7 天时,新增维修单 + } else if (StrUtil.equals(maintenancecycle,"03")) { + if (num <= 7) { + this.createRepair(param); + } + // 周期为周 : 维修计划日期 - 当前日期 <= 3 天时,新增维修单 + } else if (StrUtil.equals(maintenancecycle,"04")) { + if (num <= 3) { + this.createRepair(param); } } - } else { - // 3 如果保养实际开始时间 和 保养实际结束时间不为空 并且查不到对应单据 - if (ObjectUtil.isEmpty(jsonRepairMst)) { - // 取维修实际结束日期:用当前日期 - 维修实际结束日期 - String maintenancecycle = jsonPlanMst.getString("maintenancecycle"); - String rep_real_end_date = jsonPlanMst.getString("real_end_date").replace("-", ""); - String today = DateUtil.today().replace("-", ""); + } + } else { + // 3 如果保养实际开始时间 和 保养实际结束时间不为空 并且查不到对应单据 + if (ObjectUtil.isEmpty(jsonRepairMst)) { + // 取维修实际结束日期:用当前日期 - 维修实际结束日期 + String maintenancecycle = jsonPlanMst.getString("maintenancecycle"); + String rep_real_end_date = jsonPlanMst.getString("real_end_date"); + String today = DateUtil.today(); - // 准备参数 - JSONObject param = new JSONObject(); - param.put("devicerecord_id",jsonPlanMst.getString("devicerecord_id")); - param.put("maintenancecycle","01"); - param.put("plan_start_date",jsonPlanMst.getString("plan_start_date")); - param.put("source_bill_id",jsonPlanMst.getString("repair_plan_id")); - param.put("source_bill_code",jsonPlanMst.getString("repair_plan_code")); - // 计算 当前日期 - 维修实际结束 后的天数 - String num = String.valueOf(NumberUtil.sub(today, rep_real_end_date)); - - // 周期为年 :当前日期-维修实际结束 <= 15 天时,新增维修单 - if (StrUtil.equals(maintenancecycle,"01")) { - if (Integer.parseInt(num) >= 15) { - this.createRepair(param); - } - // 周期为季度 :当前日期-维修实际结束 <= 10 天时,新增维修单 - } else if (StrUtil.equals(maintenancecycle,"02")) { - if (Integer.parseInt(num) >= 10) { - this.createRepair(param); - } - // 周期为月 :当前日期-维修实际结束 <= 7 天时,新增维修单 - } else if (StrUtil.equals(maintenancecycle,"03")) { - if (Integer.parseInt(num) >= 7) { - this.createRepair(param); - } - // 周期为周 :当前日期-维修实际结束 <= 3 天时,新增维修单 - } else if (StrUtil.equals(maintenancecycle,"04")) { - if (Integer.parseInt(num) >= 3) { - this.createRepair(param); - } + // 准备参数 + JSONObject param = new JSONObject(); + param.put("devicerecord_id",jsonPlanMst.getString("devicerecord_id")); + param.put("maintenancecycle","01"); + param.put("plan_start_date",jsonPlanMst.getString("plan_start_date")); + param.put("source_bill_id",jsonPlanMst.getString("repair_plan_id")); + param.put("source_bill_code",jsonPlanMst.getString("repair_plan_code")); + // 计算 当前日期 - 维修实际结束 后的天数 + Date today2 = DateUtil.parse(today); + Date rep_real_end_date2 = DateUtil.parse(rep_real_end_date); + long num = (int) DateUtil.between(today2,rep_real_end_date2, DateUnit.DAY); + // 周期为年 :当前日期-维修实际结束 <= 15 天时,新增维修单 + if (StrUtil.equals(maintenancecycle,"01")) { + if (num >= 15) { + this.createRepair(param); + } + // 周期为季度 :当前日期-维修实际结束 <= 10 天时,新增维修单 + } else if (StrUtil.equals(maintenancecycle,"02")) { + if (num >= 10) { + this.createRepair(param); + } + // 周期为月 :当前日期-维修实际结束 <= 7 天时,新增维修单 + } else if (StrUtil.equals(maintenancecycle,"03")) { + if (num >= 7) { + this.createRepair(param); + } + // 周期为周 :当前日期-维修实际结束 <= 3 天时,新增维修单 + } else if (StrUtil.equals(maintenancecycle,"04")) { + if (num >= 3) { + this.createRepair(param); } } } @@ -132,7 +132,6 @@ public class AutoCreateRepair { } } - /** * 创建维修单共用方法 * json: { diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/auToTask/AutoCreateUpkeep.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/auToTask/AutoCreateUpkeep.java index 043dd6e3..15a7c47e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/auToTask/AutoCreateUpkeep.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/auToTask/AutoCreateUpkeep.java @@ -1,5 +1,6 @@ package org.nl.wms.sb.auToTask; +import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.NumberUtil; @@ -12,9 +13,12 @@ import lombok.extern.slf4j.Slf4j; import org.nl.modules.security.service.dto.JwtUserDto; import org.nl.modules.system.util.CodeUtil; import org.nl.utils.SecurityUtils; +import org.nl.wql.WQL; import org.nl.wql.core.bean.WQLObject; import org.springframework.stereotype.Component; +import java.util.Date; + /** * 自动创建保养单 * @author Liuxy @@ -30,93 +34,88 @@ public class AutoCreateUpkeep { WQLObject mainMstTab = WQLObject.getWQLObject("EM_BI_DeviceMaintenanceMst"); // 设备保养单主表 // 1.查询 设备档案表 中状态为:正常10、闲置11、故障20、维修30、保养40状态的设备 - JSONArray fileArr = fileTab.query("status in (10,11,20,30,40)").getResultJSONArray(0); - // 2.根据查询出来的记录 查询 设备保养计划表 中启用状态 = 启用的记录 - for (int i = 0; i < fileArr.size(); i++) { - JSONObject json = fileArr.getJSONObject(i); - String devicerecord_id = json.getString("devicerecord_id"); + JSONArray jsonPlanMstArr = WQL.getWO("EM_BI_DEVICEREPAIR002").addParam("flag","4").process().getResultJSONArray(0); + if (ObjectUtil.isNotEmpty(jsonPlanMstArr)) { + for (int j = 0; j < jsonPlanMstArr.size(); j++) { + JSONObject jsonPlanMst = jsonPlanMstArr.getJSONObject(j); + // 2.1 判断保养计划表中:实际开始时间、实际结束时间 为空 + String real_start_date = jsonPlanMst.getString("real_start_date"); + String real_end_date = jsonPlanMst.getString("real_end_date"); - JSONArray jsonPlanMstArr = planMstTab.query("devicerecord_id = '" + devicerecord_id + "' and is_active = '1'").getResultJSONArray(0); - if (ObjectUtil.isNotEmpty(jsonPlanMstArr)) { - for (int j = 0; j < jsonPlanMstArr.size(); j++) { - JSONObject jsonPlanMst = jsonPlanMstArr.getJSONObject(j); - // 2.1 判断保养计划表中:实际开始时间、实际结束时间 为空 - String real_start_date = jsonPlanMst.getString("real_start_date"); - String real_end_date = jsonPlanMst.getString("real_end_date"); + // 2.2 根据源单号为保养计划id查询 保养单 --条件未删除、未审核 + JSONObject jsonMainMst = mainMstTab.query("source_bill_id = '" + jsonPlanMst.getString("maint_plan_id") + "' and is_delete = '0' and invstatus != '99'").uniqueResult(0); + if (ObjectUtil.isEmpty(real_start_date) && ObjectUtil.isEmpty(real_end_date)) { + if (ObjectUtil.isEmpty(jsonMainMst)) { + // 2.3 判断周期 + String maintenancecycle = jsonPlanMst.getString("maintenancecycle"); + String plan_start_date = jsonPlanMst.getString("plan_start_date"); + String today = DateUtil.today(); + // 准备参数 + JSONObject param = new JSONObject(); + param.put("devicerecord_id",jsonPlanMst.getString("devicerecord_id")); + param.put("maintenancecycle","01"); + param.put("plan_start_date",jsonPlanMst.getString("plan_start_date")); + param.put("source_bill_id",jsonPlanMst.getString("maint_plan_id")); + param.put("source_bill_code",jsonPlanMst.getString("maint_plan_code")); + param.put("maint_object",jsonPlanMst.getString("maint_object")); - // 2.2 根据源单号为保养计划id查询 保养单 --条件未删除、未审核 - JSONObject jsonMainMst = mainMstTab.query("source_bill_id = '" + jsonPlanMst.getString("maint_plan_id") + "' and is_delete = '0' and invstatus != '99'").uniqueResult(0); - if (ObjectUtil.isEmpty(real_start_date) && ObjectUtil.isEmpty(real_end_date)) { - if (ObjectUtil.isEmpty(jsonMainMst)) { - // 2.3 判断周期 - String maintenancecycle = jsonPlanMst.getString("maintenancecycle"); - String plan_start_date = jsonPlanMst.getString("plan_start_date").replace("-", ""); - String today = DateUtil.today().replace("-", ""); - // 准备参数 - JSONObject param = new JSONObject(); - param.put("devicerecord_id",jsonPlanMst.getString("devicerecord_id")); - param.put("maintenancecycle","01"); - param.put("plan_start_date",jsonPlanMst.getString("plan_start_date")); - param.put("source_bill_id",jsonPlanMst.getString("maint_plan_id")); - param.put("source_bill_code",jsonPlanMst.getString("maint_plan_code")); - param.put("maint_object",jsonPlanMst.getString("maint_object")); - - // 计算 当前日期 - 保养计划日期 后的天数 - String num = String.valueOf(NumberUtil.sub(today, plan_start_date)); - - // 周期为年 :当前日期-保养计划日期 <= 15 天时,新增保养单 - if (StrUtil.equals(maintenancecycle,"01")) { - if (Integer.parseInt(num) >= 15) { - this.createMain(param); - } - // 周期为月 :当前日期-保养计划日期 <= 7 天时,新增保养单 - } else if (StrUtil.equals(maintenancecycle,"02")) { - if (Integer.parseInt(num) >= 7) { - this.createMain(param); - } - // 周期为周 :当前日期-保养计划日期 <= 3 天时,新增保养单 - } else if (StrUtil.equals(maintenancecycle,"03")) { - if (Integer.parseInt(num) >= 3) { - this.createMain(param); - } + // 计算 维修计划日期 - 当前日期 后的天数 + Date today2 = DateUtil.parse(today); + Date plan_start_date2 = DateUtil.parse(plan_start_date); + long num = (int) DateUtil.between(plan_start_date2,today2, DateUnit.DAY); + // 周期为年 :当前日期-保养计划日期 <= 15 天时,新增保养单 + if (StrUtil.equals(maintenancecycle,"01")) { + if (num >= 15) { + this.createMain(param); + } + // 周期为月 :当前日期-保养计划日期 <= 7 天时,新增保养单 + } else if (StrUtil.equals(maintenancecycle,"02")) { + if (num >= 7) { + this.createMain(param); + } + // 周期为周 :当前日期-保养计划日期 <= 3 天时,新增保养单 + } else if (StrUtil.equals(maintenancecycle,"03")) { + if (num >= 3) { + this.createMain(param); } } - } else { - // 3 如果保养实际开始时间 和 保养实际结束时间不为空 并且查不到对应单据 - if (ObjectUtil.isEmpty(jsonMainMst)) { - // 取保养实际结束日期:用当前日期 - 保养实际结束日期 - String maintenancecycle = jsonPlanMst.getString("maintenancecycle"); - String rep_real_end_date = jsonPlanMst.getString("real_end_date").replace("-", ""); - String today = DateUtil.today().replace("-", ""); + } + } else { + // 3 如果保养实际开始时间 和 保养实际结束时间不为空 并且查不到对应单据 + if (ObjectUtil.isEmpty(jsonMainMst)) { + // 取保养实际结束日期:用当前日期 - 保养实际结束日期 + String maintenancecycle = jsonPlanMst.getString("maintenancecycle"); + String rep_real_end_date = jsonPlanMst.getString("real_end_date"); + String today = DateUtil.today(); - // 准备参数 - JSONObject param = new JSONObject(); - param.put("devicerecord_id",jsonPlanMst.getString("devicerecord_id")); - param.put("maintenancecycle","01"); - param.put("plan_start_date",jsonPlanMst.getString("plan_start_date")); - param.put("source_bill_id",jsonPlanMst.getString("maint_plan_id")); - param.put("source_bill_code",jsonPlanMst.getString("maint_plan_code")); - param.put("maint_object",jsonPlanMst.getString("maint_object")); + // 准备参数 + JSONObject param = new JSONObject(); + param.put("devicerecord_id",jsonPlanMst.getString("devicerecord_id")); + param.put("maintenancecycle","01"); + param.put("plan_start_date",jsonPlanMst.getString("plan_start_date")); + param.put("source_bill_id",jsonPlanMst.getString("maint_plan_id")); + param.put("source_bill_code",jsonPlanMst.getString("maint_plan_code")); + param.put("maint_object",jsonPlanMst.getString("maint_object")); - // 计算 当前日期 - 保养实际结束 后的天数 - String num = String.valueOf(NumberUtil.sub(today, rep_real_end_date)); - - // 周期为年 :当前日期-保养实际结束 <= 15 天时,新增保养单 - if (StrUtil.equals(maintenancecycle,"01")) { - if (Integer.parseInt(num) >= 15) { - this.createMain(param); - } - // 周期为月 :当前日期-保养实际结束 <= 7 天时,新增保养单 - } else if (StrUtil.equals(maintenancecycle,"02")) { - if (Integer.parseInt(num) >= 7) { - this.createMain(param); - } - // 周期为周 :当前日期-保养实际结束 <= 3 天时,新增保养单 - } else if (StrUtil.equals(maintenancecycle,"03")) { - if (Integer.parseInt(num) >= 3) { - this.createMain(param); - } + // 计算 当前日期 - 维修实际结束 后的天数 + Date today2 = DateUtil.parse(today); + Date rep_real_end_date2 = DateUtil.parse(rep_real_end_date); + long num = (int) DateUtil.between(today2,rep_real_end_date2, DateUnit.DAY); + // 周期为年 :当前日期-保养实际结束 <= 15 天时,新增保养单 + if (StrUtil.equals(maintenancecycle,"01")) { + if (num <= 15) { + this.createMain(param); + } + // 周期为月 :当前日期-保养实际结束 <= 7 天时,新增保养单 + } else if (StrUtil.equals(maintenancecycle,"02")) { + if (num <= 7) { + this.createMain(param); + } + // 周期为周 :当前日期-保养实际结束 <= 3 天时,新增保养单 + } else if (StrUtil.equals(maintenancecycle,"03")) { + if (num <= 3) { + this.createMain(param); } } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/repair/service/impl/DevicerepairmstServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/repair/service/impl/DevicerepairmstServiceImpl.java index b2e5b573..1315ca15 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/repair/service/impl/DevicerepairmstServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/repair/service/impl/DevicerepairmstServiceImpl.java @@ -458,6 +458,7 @@ public class DevicerepairmstServiceImpl implements DevicerepairmstService { WQLObject reMstTab = WQLObject.getWQLObject("EM_BI_DeviceRepairMst"); // 设备维修单主表 WQLObject reDtlTab = WQLObject.getWQLObject("EM_BI_DeviceRepairDtl"); // 设备维修单明细表 + String invstatus = map.getString("invstatus"); JSONArray rows = map.getJSONArray("rows"); for(int m=0; m - 班组验收 + 验收通过 + + + 验收不通过 @@ -259,7 +269,23 @@ export default { return this.crud.notify('只能对结束状态的单据确认:' + now.repair_code, CRUD.NOTIFICATION_TYPE.INFO) } } - crudDevicerepairmst.confirmRepair({ rows: _selectData }).then(res => { + crudDevicerepairmst.confirmRepair({ invstatus: '07', rows: _selectData }).then(res => { + this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS) + this.crud.toQuery() + }) + }, + confirmRepair2() { + const _selectData = this.$refs.table.selection + if (_selectData.length === 0) { + return this.crud.notify('请选择需要操作的记录!', CRUD.NOTIFICATION_TYPE.INFO) + } + for (let i = 0; i < _selectData.length; i++) { + const now = _selectData[i] + if (now.invstatus !== '06') { + return this.crud.notify('只能对结束状态的单据操作:' + now.repair_code, CRUD.NOTIFICATION_TYPE.INFO) + } + } + crudDevicerepairmst.confirmRepair({ invstatus: '03', rows: _selectData }).then(res => { this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS) this.crud.toQuery() }) diff --git a/mes/qd/src/views/wms/statistics/materPlan/index.vue b/mes/qd/src/views/wms/statistics/materPlan/index.vue index 76e5b633..0ab1644a 100644 --- a/mes/qd/src/views/wms/statistics/materPlan/index.vue +++ b/mes/qd/src/views/wms/statistics/materPlan/index.vue @@ -65,8 +65,8 @@ >