From 429ad2a69af32668782221b1abb4273acbe7bd8e Mon Sep 17 00:00:00 2001
From: Administrator <1051256694@qq.com>
Date: 星期二, 14 四月 2026 22:01:33 +0800
Subject: [PATCH] 上报 ERP 重量:≤20 传 0,>20 减 20.8
---
src/main/java/com/zy/asrs/controller/BasDevpController.java | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 109 insertions(+), 11 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/BasDevpController.java b/src/main/java/com/zy/asrs/controller/BasDevpController.java
index 297dc68..af961df 100644
--- a/src/main/java/com/zy/asrs/controller/BasDevpController.java
+++ b/src/main/java/com/zy/asrs/controller/BasDevpController.java
@@ -6,13 +6,17 @@
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.zy.asrs.entity.BasDevp;
+import com.zy.asrs.entity.param.BasDevpInitParam;
+import com.zy.asrs.service.BasCrnpService;
import com.zy.asrs.service.BasDevpService;
+import com.zy.asrs.utils.Utils;
import com.zy.common.web.BaseController;
import com.core.annotations.ManagerAuth;
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
+import com.core.exception.CoolException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -23,6 +27,32 @@
@Autowired
private BasDevpService basDevpService;
+ @Autowired
+ private BasCrnpService basCrnpService;
+
+ @RequestMapping(value = "/basDevp/init/auth")
+ @ManagerAuth(memo = "鍒濆鍖栫珯鐐�")
+ public R init(BasDevpInitParam param) {
+ List<BasDevp> list = new ArrayList<>();
+ for (int devNo = param.getStartDev() ; devNo<=param.getEndDev() ; devNo++){
+ BasDevp basDevp = basDevpService.selectById(devNo);
+ if (Cools.isEmpty(basDevp)){
+ BasDevp basDevp1 = new BasDevp();
+ basDevp1.setDevNo(devNo);
+ basDevp1.setInEnable("Y");
+ basDevp1.setOutEnable("Y");
+ basDevp1.setAutoing("Y");
+ basDevp1.setLoading("Y");
+ basDevp1.setCanining("Y");
+ basDevp1.setCanouting("Y");
+ basDevp1.setModiUser(getUserId());
+ basDevp1.setModiTime(new Date());
+ list.add(basDevp1);
+ }
+ }
+ basDevpService.insertBatch(list);
+ return R.ok("鍒濆鍖栨垚鍔�");
+ }
@RequestMapping(value = "/basDevp/{id}/auth")
@ManagerAuth
@@ -44,21 +74,23 @@
return R.ok(basDevpService.selectPage(new Page<>(curr, limit), wrapper));
}
- private void convert(Map<String, Object> map, EntityWrapper wrapper){
+ private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
for (Map.Entry<String, Object> entry : map.entrySet()){
- if (entry.getKey().endsWith(">")) {
- wrapper.ge(Cools.deleteChar(entry.getKey()), DateUtils.convert(String.valueOf(entry.getValue())));
- } else if (entry.getKey().endsWith("<")) {
- wrapper.le(Cools.deleteChar(entry.getKey()), DateUtils.convert(String.valueOf(entry.getValue())));
+ String val = String.valueOf(entry.getValue());
+ if (val.contains(RANGE_TIME_LINK)){
+ String[] dates = val.split(RANGE_TIME_LINK);
+ wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+ wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
} else {
- wrapper.eq(entry.getKey(), String.valueOf(entry.getValue()));
+ wrapper.like(entry.getKey(), val);
}
}
}
@RequestMapping(value = "/basDevp/add/auth")
- @ManagerAuth
+ @ManagerAuth(memo = "绔欑偣娣诲姞")
public R add(BasDevp basDevp) {
+ normalizeInboundPriority(basDevp, null);
basDevp.setModiUser(getUserId());
basDevp.setModiTime(new Date());
basDevp.setAppeUser(getUserId());
@@ -68,19 +100,24 @@
}
@RequestMapping(value = "/basDevp/update/auth")
- @ManagerAuth
+ @ManagerAuth(memo = "绔欑偣淇敼")
public R update(BasDevp basDevp){
if (Cools.isEmpty(basDevp) || null==basDevp.getDevNo()){
return R.error();
}
+ BasDevp existing = basDevpService.selectById(basDevp.getDevNo());
+ if (existing == null) {
+ return R.error("绔欑偣涓嶅瓨鍦�");
+ }
+ normalizeInboundPriority(basDevp, existing);
basDevp.setModiUser(getUserId());
basDevp.setModiTime(new Date());
basDevpService.updateById(basDevp);
- return R.ok();
+ return R.ok("淇敼瀹屾垚");
}
@RequestMapping(value = "/basDevp/delete/auth")
- @ManagerAuth
+ @ManagerAuth(memo = "绔欑偣鍒犻櫎")
public R delete(@RequestParam String param){
List<BasDevp> list = JSONArray.parseArray(param, BasDevp.class);
if (Cools.isEmpty(list)){
@@ -93,7 +130,7 @@
}
@RequestMapping(value = "/basDevp/export/auth")
- @ManagerAuth
+ @ManagerAuth(memo = "绔欑偣瀵煎嚭")
public R export(@RequestBody JSONObject param){
List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
EntityWrapper<BasDevp> wrapper = new EntityWrapper<>();
@@ -129,4 +166,65 @@
return R.ok();
}
+ private void normalizeInboundPriority(BasDevp basDevp, BasDevp existing) {
+ if (basDevp == null) {
+ return;
+ }
+ String firstCsv = resolveCsvValue(basDevp.getInFirstCrnCsv(), existing == null ? null : existing.getInFirstCrnCsv());
+ String secondCsv = resolveCsvValue(basDevp.getInSecondCrnCsv(), existing == null ? null : existing.getInSecondCrnCsv());
+
+ List<Integer> firstCrnNos = parseCrnPool("绗竴浼樺厛姹�", firstCsv);
+ List<Integer> secondCrnNos = parseCrnPool("绗簩浼樺厛姹�", secondCsv);
+ Set<Integer> duplicateCrnNos = new LinkedHashSet<>(firstCrnNos);
+ duplicateCrnNos.retainAll(secondCrnNos);
+ if (!duplicateCrnNos.isEmpty()) {
+ throw new CoolException("绗竴浼樺厛姹犲拰绗簩浼樺厛姹犱笉鑳介噸澶嶉厤缃悓涓�鍙板爢鍨涙満锛�" + duplicateCrnNos);
+ }
+
+ basDevp.setInFirstCrnCsv(Utils.normalizeCrnCsv(firstCrnNos));
+ basDevp.setInSecondCrnCsv(Utils.normalizeCrnCsv(secondCrnNos));
+
+ if (existing == null) {
+ basDevp.setInFirstCrnCurrentNo(null);
+ basDevp.setInSecondCrnCurrentNo(null);
+ return;
+ }
+
+ basDevp.setInFirstCrnCurrentNo(resolveCurrentNo(existing.getInFirstCrnCurrentNo(), firstCrnNos));
+ basDevp.setInSecondCrnCurrentNo(resolveCurrentNo(existing.getInSecondCrnCurrentNo(), secondCrnNos));
+ }
+
+ private String resolveCsvValue(String incoming, String existing) {
+ if (incoming == null) {
+ return existing;
+ }
+ return incoming;
+ }
+
+ private List<Integer> parseCrnPool(String label, String csv) {
+ List<Integer> crnNos;
+ try {
+ crnNos = Utils.parseCrnNos(csv);
+ } catch (CoolException e) {
+ throw new CoolException(label + e.getMessage());
+ }
+ List<Integer> distinctCrnNos = Utils.distinctCrnNos(crnNos);
+ if (crnNos.size() != distinctCrnNos.size()) {
+ throw new CoolException(label + "瀛樺湪閲嶅鍫嗗灈鏈哄彿");
+ }
+ for (Integer crnNo : distinctCrnNos) {
+ if (basCrnpService.selectById(crnNo) == null) {
+ throw new CoolException(label + "鍖呭惈涓嶅瓨鍦ㄧ殑鍫嗗灈鏈哄彿锛�" + crnNo);
+ }
+ }
+ return distinctCrnNos;
+ }
+
+ private Integer resolveCurrentNo(Integer currentNo, List<Integer> crnNos) {
+ if (currentNo == null || Cools.isEmpty(crnNos) || !crnNos.contains(currentNo)) {
+ return null;
+ }
+ return currentNo;
+ }
+
}
--
Gitblit v1.9.1