From 055743022694b6fc1bb1864137e0c81b6ea658c5 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期四, 29 一月 2026 19:45:26 +0800
Subject: [PATCH] 盘点出库增加一个标记 可筛选可清除
---
src/main/java/com/zy/asrs/controller/LocDetlController.java | 261 +++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 248 insertions(+), 13 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/LocDetlController.java b/src/main/java/com/zy/asrs/controller/LocDetlController.java
index 32c72fd..888be35 100644
--- a/src/main/java/com/zy/asrs/controller/LocDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/LocDetlController.java
@@ -12,12 +12,18 @@
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
+import com.zy.asrs.entity.FrozenParam;
import com.zy.asrs.entity.LocDetl;
-import com.zy.asrs.entity.ManLocDetl;
+import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.LocOwner;
import com.zy.asrs.entity.Mat;
+import com.zy.asrs.entity.param.AbnormalLocDetlParam;
+import com.zy.asrs.entity.result.LocDetlAll;
+import com.zy.asrs.entity.result.LocDetlDTO;
import com.zy.asrs.mapper.LocDetlMapper;
import com.zy.asrs.service.LocDetlService;
-import com.zy.asrs.service.ManLocDetlService;
+import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.service.LocOwnerService;
import com.zy.asrs.service.MatService;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
@@ -39,12 +45,89 @@
@Autowired
private MatService matService;
+ @Autowired
+ private LocOwnerService locOwnerService;
+
+ @Autowired
+ private LocMastService locMastService;
+
@RequestMapping(value = "/locDetl/update")
public R update1() {
if (!locDetlService.updateLocNo("0402805", "0402804")) {
return R.error();
}
return R.ok();
+ }
+
+ @RequestMapping(value = "/locDetl/groupLocList/auth")
+ @ManagerAuth
+ public R groupLocList(@RequestParam(defaultValue = "1") Integer curr,
+ @RequestParam(defaultValue = "10") Integer limit,
+ @RequestParam(required = false) String orderByField,
+ @RequestParam(required = false) String orderByType,
+ @RequestParam(required = false) String condition,
+ @RequestParam Map<String, Object> param) {
+
+// List<LocDetl> result = new ArrayList<>();
+ List<AbnormalLocDetlParam> result = new ArrayList<>();
+// excludeTrash(param);
+ param.put("curr", curr);
+ param.put("limit", limit);
+ Page<LocDetl> groupLocDetl = locDetlService.getStockStatis2(toPage(1, 10000, param, LocDetl.class));
+// List<LocDetl> groupLocDetl = locDetlService.selectGroupPage(param, curr, limit);
+ for (LocDetl locDetl : groupLocDetl.getRecords()) {
+ AbnormalLocDetlParam abnormalLocDetlParam = new AbnormalLocDetlParam();
+ Mat mat = matService.selectOne(new EntityWrapper<Mat>()
+ .eq("matnr", locDetl.getMatnr()));
+ if (Cools.isEmpty(mat)) {
+ continue;
+ }
+
+
+ if (!Cools.isEmpty(mat.getStoreMax()) || !Cools.isEmpty(mat.getStoreMin())) {
+ abnormalLocDetlParam.setStoreMax(mat.getStoreMax());
+ abnormalLocDetlParam.setStoreMaxDate(mat.getStoreMaxDate());
+ abnormalLocDetlParam.setStoreMin(mat.getStoreMin());
+ abnormalLocDetlParam.setAnfme(locDetl.getAnfme());
+ abnormalLocDetlParam.setMaktx(mat.getMaktx());
+ abnormalLocDetlParam.setMatnr(mat.getMatnr());
+ abnormalLocDetlParam.setSpecs(mat.getSpecs());
+ abnormalLocDetlParam.setBatch(locDetl.getBatch());
+
+// SimpleDateFormat simple = new SimpleDateFormat("yyyyMMdd");
+// Date maxDate = simple.parse(locDetl.getBatch());
+// long time = maxDate.getTime();
+// Date now = new Date();
+// long time1 = now.getTime();
+// abnormalLocDetlParam.setNowTime((int) ((time1 - time) / (1000 * 60 * 60 * 24)));
+
+ if (!Cools.isEmpty(mat.getStoreMax()) && locDetl.getAnfme() > mat.getStoreMax()) {
+ result.add(abnormalLocDetlParam);
+ } else if (!Cools.isEmpty(mat.getStoreMin()) && locDetl.getAnfme() < mat.getStoreMin()) {
+ result.add(abnormalLocDetlParam);
+ }
+ }
+ }
+
+ Page<AbnormalLocDetlParam> locDetlPage = new Page<>();
+ locDetlPage.setRecords(paging(result, curr, limit));
+ locDetlPage.setTotal(result.size());
+ locDetlPage.setCurrent(curr);
+ locDetlPage.setSize(limit);
+ return R.ok(locDetlPage);
+ }
+
+ private List<AbnormalLocDetlParam> paging(List<AbnormalLocDetlParam> result, Integer curr, Integer limit) {
+ List<AbnormalLocDetlParam> pageRecord = new ArrayList<AbnormalLocDetlParam>();
+ int minIndex = (curr - 1) * limit;
+ int maxIndex = (curr * limit) - 1;
+ if (result.size() < maxIndex) {
+ maxIndex = result.size();
+ }
+ for (int i = minIndex; i < maxIndex; i++) {
+ pageRecord.add(result.get(i));
+ }
+ return pageRecord;
}
@RequestMapping(value = "/locDetl/{id}/auth")
@@ -74,19 +157,23 @@
public R stockOutList(@RequestParam(defaultValue = "1")Integer curr,
@RequestParam(defaultValue = "10")Integer limit,
@RequestParam Map<String, Object> param){
- if (!Cools.isEmpty(param.get("modi_time"))){
- String val = String.valueOf(param.get("modi_time"));
+ if (!Cools.isEmpty(param.get("appe_time"))){
+ String val = String.valueOf(param.get("appe_time"));
if (val.contains(RANGE_TIME_LINK)) {
String[] dates = val.split(RANGE_TIME_LINK);
param.put("startTime", DateUtils.convert(dates[0]));
param.put("endTime", DateUtils.convert(dates[1]));
- param.remove("modi_time");
+ param.remove("appe_time");
}
}
- return R.ok(locDetlService.getStockOut(toPage(curr, limit, param, LocDetl.class)));
+ Page<LocDetl> stockOut = locDetlService.getStockOut(toPage(curr, limit, param, LocDetl.class));
+ if (stockOut.getRecords().size()==0){
+ stockOut = locDetlService.getStockOut(toPage(1, limit, param, LocDetl.class));
+ }
+ return R.ok(stockOut);
}
- @RequestMapping(value = "/error/locDetl/list/auth")// /locDetl/list/auth 鎺ュ彛闂
+ @RequestMapping(value = "/locDetl/list/auth")// /locDetl/list/auth 鎺ュ彛闂
@ManagerAuth
public R list(@RequestParam(defaultValue = "1")Integer curr,
@RequestParam(defaultValue = "10")Integer limit,
@@ -107,19 +194,86 @@
// }
// }
excludeTrash(param);
+ // 澶勭悊 mk 瀛楁鏌ヨ锛堥渶瑕佸叧鑱� LocMast 琛級
+ Object mkParam = param.get("mk");
+ if (!Cools.isEmpty(mkParam)) {
+ String mkValue = String.valueOf(mkParam);
+ EntityWrapper<LocMast> locMastWrapper = new EntityWrapper<>();
+ if ("Y".equals(mkValue)) {
+ locMastWrapper.eq("mk", "Y");
+ } else {
+ locMastWrapper.ne("mk", "Y");
+ }
+ // 鏌ヨ绗﹀悎鏉′欢鐨勫簱浣嶅彿鍒楄〃
+ List<LocMast> locMastList = locMastService.selectList(locMastWrapper);
+ if (locMastList != null && !locMastList.isEmpty()) {
+ List<String> locNos = new ArrayList<>();
+ for (LocMast locMast : locMastList) {
+ if (!Cools.isEmpty(locMast.getLocNo())) {
+ locNos.add(locMast.getLocNo());
+ }
+ }
+ if (!locNos.isEmpty()) {
+ wrapper.in("loc_no", locNos);
+ } else {
+ // 濡傛灉娌℃湁绗﹀悎鏉′欢鐨勫簱浣嶏紝杩斿洖绌虹粨鏋�
+ wrapper.eq("1", "0");
+ }
+ } else {
+ // 濡傛灉娌℃湁绗﹀悎鏉′欢鐨勫簱浣嶏紝杩斿洖绌虹粨鏋�
+ wrapper.eq("1", "0");
+ }
+ // 绉婚櫎 mk 鍙傛暟锛岄伩鍏嶅湪 convert 鏂规硶涓噸澶嶅鐞�
+ param.remove("mk");
+ }
convert(param, wrapper);
- allLike(LocDetl.class, param.keySet(), wrapper, condition);
+ // 鍦� allLike 涓帓闄� mk 瀛楁锛屽洜涓� mk 瀛楁鍦� LocMast 琛ㄤ腑
+ Set<String> excludeFields = new HashSet<>(param.keySet());
+ excludeFields.add("mk"); // 纭繚 mk 瀛楁琚帓闄�
+ allLike(LocDetl.class, excludeFields, wrapper, condition);
if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
// if (!row.equals("")){
// wrapper.and()
// .where("loc_no like '" +row +"%'");
// }
- return R.ok(locDetlService.selectPage(new Page<>(curr, limit), wrapper));
+ Page<LocDetl> page = locDetlService.selectPage(new Page<>(curr, limit), wrapper);
+ // 濉厖 mk 瀛楁锛堟槸鍚︾洏鐐圭姸鎬侊級
+ if (page != null && page.getRecords() != null && !page.getRecords().isEmpty()) {
+ // 鏀堕泦鎵�鏈夊簱浣嶅彿
+ Set<String> locNos = new HashSet<>();
+ for (LocDetl locDetl : page.getRecords()) {
+ if (!Cools.isEmpty(locDetl.getLocNo())) {
+ locNos.add(locDetl.getLocNo());
+ }
+ }
+ // 鎵归噺鏌ヨ搴撲綅淇℃伅
+ if (!locNos.isEmpty()) {
+ Map<String, String> locMkMap = new HashMap<>();
+ for (String locNo : locNos) {
+ com.zy.asrs.entity.LocMast locMast = locMastService.selectById(locNo);
+ if (locMast != null) {
+ locMkMap.put(locNo, locMast.getMk());
+ }
+ }
+ // 濉厖 mk 瀛楁
+ for (LocDetl locDetl : page.getRecords()) {
+ if (!Cools.isEmpty(locDetl.getLocNo())) {
+ locDetl.setMk(locMkMap.get(locDetl.getLocNo()));
+ }
+ }
+ }
+ }
+ return R.ok(page);
}
private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
for (Map.Entry<String, Object> entry : map.entrySet()){
+ String key = entry.getKey();
+ // 鎺掗櫎 mk 瀛楁锛屽洜涓� mk 瀛楁鍦� LocMast 琛ㄤ腑锛屼笉鍦� LocDetl 琛ㄤ腑
+ if ("mk".equals(key)) {
+ continue;
+ }
String val = String.valueOf(entry.getValue());
if (val.contains(RANGE_TIME_LINK)){
String[] dates = val.split(RANGE_TIME_LINK);
@@ -171,6 +325,26 @@
return R.ok();
}
+ @PostMapping(value = "/locDetl/frozenInventory")
+ @ManagerAuth(memo = "搴撳瓨鍐荤粨")
+ public R frozen(@RequestBody List<FrozenParam> param){
+ if (param.size() == 0) {
+ return R.parse("鏈敹鍒版暟鎹�");
+ }
+
+ return locDetlService.frozenInventory(param);
+ }
+
+ @PostMapping(value = "/locDetl/unfreezeInventory")
+ @ManagerAuth(memo = "搴撳瓨瑙e喕")
+ public R unfreeze(@RequestBody List<FrozenParam> param){
+ if (param.size() == 0) {
+ return R.parse("鏈敹鍒版暟鎹�");
+ }
+
+ return locDetlService.unfreezeInventory(param);
+ }
+
@RequestMapping(value = "/locDetl/export/auth")
@ManagerAuth(memo = "搴撲綅鏄庣粏瀵煎嚭")
public R export(@RequestBody JSONObject param){
@@ -183,18 +357,65 @@
if (chooseRow.length() == 1) {
row = "0" + chooseRow;
map.remove("row");
- }else {
+ } else {
row = chooseRow;
map.remove("row");
}
}
convert(map, wrapper);
- if (!row.equals("")){
+ if (!row.equals("")) {
wrapper.and()
- .where("loc_no like '" +row +"%'");
+ .where("loc_no like '" + row + "%'");
}
List<LocDetl> list = locDetlService.selectList(wrapper);
return R.ok(exportSupport(list, fields));
+ }
+
+ @RequestMapping(value = "/locDetl/selectOwner/list/auth")
+ @ManagerAuth
+ public R selectOwnerlist(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam(required = false)String orderByField,
+ @RequestParam(required = false)String orderByType,
+ @RequestParam Map<String, Object> param){
+ Integer owner = null;
+ if (param.get("owner$") != null && param.get("owner$") != ""){
+ LocOwner locOwner = locOwnerService.selectOne(new EntityWrapper<LocOwner>().like("owner", (String) param.get("owner$")));
+ if(locOwner == null){
+ return R.error("鍙傛暟鏈夎锛�");
+ }
+ param.remove("owner$");
+ owner = locOwner.getId();
+ }
+
+ LocDetlDTO locDetlDTO = new LocDetlDTO();
+ locDetlDTO.setPageSize(limit);
+ locDetlDTO.setPageNumber(curr);
+ String locNo = String.valueOf(param.get("locNo"));
+ String matnr = String.valueOf(param.get("matnr"));
+ if (!Cools.isEmpty(locNo) && !locNo.equals("null")) {
+ locDetlDTO.setLocNo(locNo);
+ }
+ if (!Cools.isEmpty(matnr) && !matnr.equals("null")) {
+ locDetlDTO.setMatnr(matnr);
+ }
+ if (!Cools.isEmpty(owner) && !owner.equals("null")) {
+ locDetlDTO.setOwner(owner);
+ }
+ List<LocDetlAll> list = locDetlService.selectAllOwner(locDetlDTO);
+ int count = locDetlService.selectAllCount(locDetlDTO);
+ Page<LocDetlAll> page = new Page<>();
+ page.setRecords(list);
+ page.setTotal(count);
+ if (list.size()==0){
+ locDetlDTO.setPageNumber(1);
+ list = locDetlService.selectAllOwner(locDetlDTO);
+ count = locDetlService.selectAllCount(locDetlDTO);
+ page = new Page<>();
+ page.setRecords(list);
+ page.setTotal(count);
+ }
+ return R.ok(page);
}
@RequestMapping(value = "/locDetlQuery/auth")
@@ -202,7 +423,7 @@
public R query(String condition) {
EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
wrapper.like("matnr", condition);
- Page<LocDetl> page = locDetlService.selectPage(new Page<>(0, 10), wrapper);
+ Page<LocDetl> page = locDetlService.selectPage(new Page<>(0, 10000), wrapper);
List<Map<String, Object>> result = new ArrayList<>();
for (LocDetl locDetl : page.getRecords()){
Map<String, Object> map = new HashMap<>();
@@ -230,9 +451,13 @@
@RequestParam Map<String, Object> param) {
Page<LocDetl> stockStatis = locDetlService.getStockStatis(toPage(curr, limit, param, LocDetl.class));
for (LocDetl locDetl : stockStatis.getRecords()) {
+ Double weight = locDetl.getWeight();
+ String standby1 = locDetl.getStandby1();
Mat mat = matService.selectByMatnr(locDetl.getMatnr());
if (mat != null) {
locDetl.sync(mat);
+ locDetl.setStandby1(standby1);
+ locDetl.setWeight(weight);
}
}
return R.ok().add(stockStatis);
@@ -271,4 +496,14 @@
return R.ok(sum);
}
+ /**
+ * 鑾峰彇搴撳瓨鎬绘暟
+ * @return
+ */
+ @RequestMapping("/locDetl/count2")
+ public R getAllCount2(){
+ Integer sum = locDetlService.sum2();
+ return R.ok(sum);
+ }
+
}
--
Gitblit v1.9.1