no message
This commit is contained in:
@@ -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<String, String> 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<String, String> 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<Integer> list = new ArrayList<Integer>();
|
||||
if (jsonDevice1.size()!=0) {
|
||||
for(int i=0;i<jsonDevice1.size();i++){
|
||||
JSONObject jo_i = jsonDevice1.getJSONObject(i);
|
||||
list.add(Integer.valueOf(jo_i.getString("device_code").substring(3, 6)));
|
||||
}
|
||||
HashMap<String,List<Integer>> hashmap = new HashMap<String,List<Integer>>();
|
||||
//第一个数据
|
||||
int flag = list.get(0);
|
||||
int num = 0;
|
||||
for(int i=0;i<list.size();i++){
|
||||
int now = list.get(i);
|
||||
int now2 = now - 1 ;
|
||||
//如果连着
|
||||
if((now == flag) || (now2 == flag)){
|
||||
flag = now;
|
||||
if(hashmap.containsKey(num+"")){
|
||||
List<Integer> new_list= hashmap.get(num+"");
|
||||
new_list.add(now);
|
||||
hashmap.put(num+"",new_list);
|
||||
}else{
|
||||
List<Integer> new_list= new ArrayList<Integer>();
|
||||
new_list.add(now);
|
||||
hashmap.put(num+"",new_list);
|
||||
}
|
||||
}else{//不连续了就新增一个
|
||||
flag = now;
|
||||
num++;
|
||||
List<Integer> new_list= new ArrayList<Integer>();
|
||||
new_list.add(now);
|
||||
hashmap.put(num+"",new_list);
|
||||
}
|
||||
}
|
||||
String strs = "";
|
||||
for (Map.Entry<String, List<Integer>> entry : hashmap.entrySet()) {
|
||||
String key = entry.getKey();
|
||||
List<Integer> 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<String, String> 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<String, Object> 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<String, String> 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<HashMap<String,Object>> flData = new ArrayList<>();
|
||||
if (ObjectUtil.isNotEmpty(flArr)) {
|
||||
for (int i = 0; i < flArr.size(); i++) {
|
||||
HashMap<String, Object> 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<HashMap<String,Object>> ylData = new ArrayList<>();
|
||||
if (ObjectUtil.isNotEmpty(ylArr)) {
|
||||
for (int j = 0; j < ylArr.size(); j++) {
|
||||
HashMap<String, Object> 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<String, Object> 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<Integer> list = new ArrayList<Integer>();
|
||||
if (jsonDevice1.size()!=0) {
|
||||
for(int i=0;i<jsonDevice1.size();i++){
|
||||
JSONObject jo_i = jsonDevice1.getJSONObject(i);
|
||||
list.add(Integer.valueOf(jo_i.getString("device_code").substring(3, 6)));
|
||||
}
|
||||
HashMap<String,List<Integer>> hashmap = new HashMap<String,List<Integer>>();
|
||||
//第一个数据
|
||||
int flag = list.get(0);
|
||||
int num = 0;
|
||||
for(int i=0;i<list.size();i++){
|
||||
int now = list.get(i);
|
||||
int now2 = now - 1 ;
|
||||
//如果连着
|
||||
if((now == flag) || (now2 == flag)){
|
||||
flag = now;
|
||||
if(hashmap.containsKey(num+"")){
|
||||
List<Integer> new_list= hashmap.get(num+"");
|
||||
new_list.add(now);
|
||||
hashmap.put(num+"",new_list);
|
||||
}else{
|
||||
List<Integer> new_list= new ArrayList<Integer>();
|
||||
new_list.add(now);
|
||||
hashmap.put(num+"",new_list);
|
||||
}
|
||||
}else{//不连续了就新增一个
|
||||
flag = now;
|
||||
num++;
|
||||
List<Integer> new_list= new ArrayList<Integer>();
|
||||
new_list.add(now);
|
||||
hashmap.put(num+"",new_list);
|
||||
}
|
||||
}
|
||||
|
||||
String strs = "";
|
||||
for (Map.Entry<String, List<Integer>> entry : hashmap.entrySet()) {
|
||||
String key = entry.getKey();
|
||||
List<Integer> 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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: {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<rows.size();m++){
|
||||
JSONObject whereJson = rows.getJSONObject(m);
|
||||
@@ -478,7 +479,7 @@ public class DevicerepairmstServiceImpl implements DevicerepairmstService {
|
||||
throw new BadRequestException(whereJson.getString("repair_code")+"维修人或者维修时间不能为空");
|
||||
}
|
||||
// 3.更新维修单主表
|
||||
jsonRemst.put("invstatus","07");
|
||||
jsonRemst.put("invstatus",invstatus);
|
||||
jsonRemst.put("confirm_optid",currentUserId);
|
||||
jsonRemst.put("confirm_optname",nickName);
|
||||
jsonRemst.put("confirm_time",DateUtil.now());
|
||||
|
||||
@@ -164,7 +164,7 @@ public class DevicerepairrequestServiceImpl implements DevicerepairrequestServic
|
||||
|
||||
// 根据登陆人员的部门查询设备使用班组对应的运行记录 超过三条没填的报错
|
||||
JSONArray numRunArr = new JSONArray();
|
||||
JSONArray fileArr = fileTab.query("use_groupid = '"+jsonUser.getString("dept_id")+"' and is_delete = '0' and status not in ('90','91')").getResultJSONArray(0);
|
||||
JSONArray fileArr = fileTab.query("use_groupid = '"+jsonUser.getString("dept_id")+"' and is_delete = '0' and status not in ('90','91') and device_level in ('A','B')").getResultJSONArray(0);
|
||||
|
||||
String yesterday = DateUtil.yesterday().toString().substring(0,10);
|
||||
|
||||
|
||||
@@ -76,4 +76,40 @@
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "3"
|
||||
QUERY
|
||||
SELECT
|
||||
PlanMst.*
|
||||
FROM
|
||||
EM_BI_DeviceRepairPlanMst PlanMst
|
||||
INNER JOIN EM_BI_EquipmentFile EquipmentFile ON PlanMst.devicerecord_id = EquipmentFile.devicerecord_id
|
||||
WHERE
|
||||
1 = 1
|
||||
AND EquipmentFile.STATUS IN ( 10, 11, 20, 30, 40 )
|
||||
AND EquipmentFile.is_delete = '0'
|
||||
AND PlanMst.is_active = '1'
|
||||
AND PlanMst.is_delete = '0'
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "4"
|
||||
QUERY
|
||||
SELECT
|
||||
PlanMst.*
|
||||
FROM
|
||||
EM_BI_DeviceMaintenancePlanMst PlanMst
|
||||
INNER JOIN EM_BI_EquipmentFile EquipmentFile ON PlanMst.devicerecord_id = EquipmentFile.devicerecord_id
|
||||
WHERE
|
||||
1 = 1
|
||||
AND EquipmentFile.STATUS IN ( 10, 11, 20, 30, 40 )
|
||||
AND EquipmentFile.is_delete = '0'
|
||||
AND PlanMst.is_active = '1'
|
||||
AND PlanMst.is_delete = '0'
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
|
||||
|
||||
@@ -88,6 +88,9 @@ public class StatisticalReportServiceImpl implements StatisticalReportService {
|
||||
JSONObject jo1 = new JSONObject();
|
||||
jo1.put("1", "库存现存量");
|
||||
rows.add(jo1);
|
||||
JSONObject jo22 = new JSONObject();
|
||||
jo22.put("1", "已开单重量");
|
||||
rows.add(jo22);
|
||||
JSONObject jo2 = new JSONObject();
|
||||
jo2.put("1", "排产需求量");
|
||||
rows.add(jo2);
|
||||
@@ -129,6 +132,8 @@ public class StatisticalReportServiceImpl implements StatisticalReportService {
|
||||
double canuse_num = NumberUtil.sub(now_ivt - need_qty).doubleValue();
|
||||
jo1.put(material_id, String.format("%.3f", canuse_num));
|
||||
|
||||
//已开单重量
|
||||
jo22.put(material_id, String.format("%.3f", need_qty));
|
||||
//2、排产需求量(未开单的工令重量+排产未生成工令日计划重量)根据bom计算需要多少原料库存重量:
|
||||
JSONObject nedd_mater = WQL.getWO("statistical_report_query_01").addParam("flag", "6").addParam("material_id", material_id).addParam("begin_time", begin_time).addParam("end_time", end_time).addParam("org_id", org_id).process().uniqueResult(0);
|
||||
double bom_qty = 0;
|
||||
|
||||
Reference in New Issue
Block a user