diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/pdm/service/impl/WasteBallTimeServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/pdm/service/impl/WasteBallTimeServiceImpl.java index c6b9fbe7..401a7d21 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/pdm/service/impl/WasteBallTimeServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/pdm/service/impl/WasteBallTimeServiceImpl.java @@ -16,6 +16,7 @@ import org.apache.commons.lang3.StringUtils; import org.nl.modules.system.domain.DictDetail; import org.nl.modules.system.repository.DictDetailRepository; import org.nl.utils.SecurityUtils; +import org.nl.utils.SpringContextHolder; import org.nl.wms.basedata.master.constant.MaterOptTypeEnum; import org.nl.wms.basedata.pdm.service.WasteBallTimeService; import org.nl.wms.basedata.pdm.service.dto.WastecchangeDto; @@ -56,7 +57,7 @@ public class WasteBallTimeServiceImpl implements WasteBallTimeService { map.put("material_code", "%" + material_code + "%"); } map.put("class_ids", MaterOptTypeEnum.THW.getClass_idStr()); - List rfType = dictDetailRepository.findByDictName("MD_MATERIAL_WASTE_TYPE"); + List rfType = SpringContextHolder.getBean(DictDetailRepository.class).findByDictName("MD_MATERIAL_WASTE_TYPE"); Map typeMap = rfType.stream().collect(HashMap::new, (k, v) -> k.put(v.getValue(), v.getLabel()), HashMap::putAll); JSONObject allmaterialIds = WQL.getWO("PDM_WASTEBALLTIME").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "mater.material_code"); @@ -129,7 +130,7 @@ public class WasteBallTimeServiceImpl implements WasteBallTimeService { @Override @Transactional(rollbackFor = Exception.class) public void update(JSONObject form) { - List rfType = dictDetailRepository.findByDictName("MD_MATERIAL_WASTE_TYPE").stream().map(DictDetail::getValue).collect(Collectors.toList()); + List rfType = SpringContextHolder.getBean(DictDetailRepository.class).findByDictName("MD_MATERIAL_WASTE_TYPE").stream().map(DictDetail::getValue).collect(Collectors.toList()); JSONObject allData = new JSONObject(); for (String key : rfType) { allData.put(key,form.get(key)); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/pdm/service/impl/WastecchangeServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/pdm/service/impl/WastecchangeServiceImpl.java index 1e4b32d8..8e7c8a38 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/pdm/service/impl/WastecchangeServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/pdm/service/impl/WastecchangeServiceImpl.java @@ -54,7 +54,6 @@ public class WastecchangeServiceImpl implements WastecchangeService { @Autowired private DictDetailRepository dictDetailRepository; - @Override public Map queryAll(Map whereJson, Pageable page) { String material_code = MapUtil.getStr(whereJson, "material_code"); @@ -95,10 +94,17 @@ public class WastecchangeServiceImpl implements WastecchangeService { } map.put("class_ids", MaterOptTypeEnum.THW.getClass_idStr()); - JSONObject allmaterialIds = WQL.getWO("PDM_WASTECCHANGE").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "mater.material_code"); + // 判断工艺是否为空 + if (ObjectUtil.isEmpty(tech_type)) { + map.put("is_emp", "1"); + } else { + map.put("is_emp", "2"); + } + + JSONObject allmaterialIds = WQL.getWO("PDM_WASTECCHANGE").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "material_code"); JSONArray array = allmaterialIds.getJSONArray("content"); //label:name;value:code - List rfType = dictDetailRepository.findByDictName("MD_MATERIAL_WASTE_TYPE"); + List rfType = SpringContextHolder.getBean(DictDetailRepository.class).findByDictName("MD_MATERIAL_WASTE_TYPE"); Map typeMap = rfType.stream().collect(HashMap::new, (k, v) -> k.put(v.getValue(), v.getLabel()), HashMap::putAll); JSONArray array2 = new JSONArray(); if (ObjectUtil.isNotEmpty(array)){ @@ -142,7 +148,9 @@ public class WastecchangeServiceImpl implements WastecchangeService { @Override @Transactional(rollbackFor = Exception.class) public void update(JSONObject form) { - List rfType = dictDetailRepository.findByDictName("MD_MATERIAL_WASTE_TYPE").stream().map(DictDetail::getValue).collect(Collectors.toList()); + WQLObject wasTab = WQLObject.getWQLObject("pdm_bi_wastecchange"); + + List rfType = SpringContextHolder.getBean(DictDetailRepository.class).findByDictName("MD_MATERIAL_WASTE_TYPE").stream().map(DictDetail::getValue).collect(Collectors.toList()); JSONObject allData = new JSONObject(); for (String key : rfType) { allData.put(key,form.get(key)); @@ -151,7 +159,24 @@ public class WastecchangeServiceImpl implements WastecchangeService { form.put("create_name",SecurityUtils.getNickName()); form.put("create_time",DateUtil.now()); form.put("alldata",allData); - WQLObject.getWQLObject("pdm_bi_wastecchange").update(form); + + JSONObject json = wasTab.query("material_id = '" + form.getString("material_id") + "' and tech_type = '" + form.getString("tech_type") + "'").uniqueResult(0); + + if (ObjectUtil.isEmpty(json)) { + form.put("change_id", IdUtil.getSnowflake(1, 1).nextId()); + wasTab.insert(form); + + if (form.getString("tech_type").equals("01")) { + form.put("tech_type","02"); + } else { + form.put("tech_type","01"); + } + + form.put("change_id", IdUtil.getSnowflake(1, 1).nextId()); + wasTab.insert(form); + } else { + wasTab.update(form); + } } @Override @@ -196,6 +221,8 @@ public class WastecchangeServiceImpl implements WastecchangeService { // 2.找软废 String tech_type = whereJson.getString("tech_type"); + if (ObjectUtil.isEmpty(tech_type)) throw new BadRequestException("工艺类型不能为空!"); + for (int i = 0; i < rf_arr.size(); i++) { JSONObject json_rf_type = rf_arr.getJSONObject(i); // 校验修正值必须为 -0.5 ~ 0.5 之间 或者为 99 @@ -248,15 +275,13 @@ public class WastecchangeServiceImpl implements WastecchangeService { } } // 3.更新软废碳平衡修正表 - this.update(whereJson); } @Transactional(rollbackFor = Exception.class) public JSONArray contentShift(JSONObject json) { - DictDetailRepository bean = SpringContextHolder.getBean(DictDetailRepository.class); - List rfType = bean.findByDictName("MD_MATERIAL_WASTE_TYPE").stream().map(DictDetail::getValue).collect(Collectors.toList()); + List rfType = SpringContextHolder.getBean(DictDetailRepository.class).findByDictName("MD_MATERIAL_WASTE_TYPE").stream().map(DictDetail::getValue).collect(Collectors.toList()); JSONArray rf_arr = new JSONArray(); rfType.forEach(a->{ JSONObject json_CF = new JSONObject(); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/pdm/wal/PDM_WASTECCHANGE.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/pdm/wal/PDM_WASTECCHANGE.wql index 81c5afa7..e587ba22 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/pdm/wal/PDM_WASTECCHANGE.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/pdm/wal/PDM_WASTECCHANGE.wql @@ -17,6 +17,7 @@ 输入.material_code TYPEAS s_string 输入.class_ids TYPEAS f_string 输入.material_id TYPEAS s_string + 输入.is_emp TYPEAS s_string 输入.code TYPEAS s_string 输入.tech_type TYPEAS s_string 输入.materialIds TYPEAS f_string @@ -70,6 +71,15 @@ OPTION 输入.tech_type <> "" chan.tech_type = 输入.tech_type ENDOPTION + + OPTION 输入.is_emp = "1" + IFNULL(chan.tech_type,'') = '' + ENDOPTION + + OPTION 输入.is_emp = "2" + IFNULL(chan.tech_type,'') <> '' + ENDOPTION + ENDSELECT ENDPAGEQUERY ENDIF