From 7e10622ead5bd8b3ce0c9fda39d22ae0e938e030 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期五, 12 九月 2025 13:44:10 +0800
Subject: [PATCH] 完善订单组托可用数据显示功能
---
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MatController.java | 225 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 211 insertions(+), 14 deletions(-)
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MatController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MatController.java
index 3b95db1..c00b5f1 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MatController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MatController.java
@@ -2,10 +2,11 @@
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zy.asrs.common.utils.TreeUtils;
-import com.zy.asrs.common.wms.entity.Mat;
-import com.zy.asrs.common.wms.service.MatService;
+import com.zy.asrs.common.wms.entity.*;
+import com.zy.asrs.common.wms.service.*;
import com.zy.asrs.framework.annotations.ManagerAuth;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.R;
@@ -25,11 +26,31 @@
private MatService matService;
@Autowired
private TreeUtils treeUtils;
+ @Autowired
+ private LocDetlService locDetlService;
+ @Autowired
+ private LocMastService locMastService;
+ @Autowired
+ private WrkMastService wrkMastService;
+ @Autowired
+ private WrkDetlService wrkDetlService;
@RequestMapping(value = "/mat/{id}/auth")
@ManagerAuth
public R get(@PathVariable("id") Long id) {
return R.ok(matService.getById(id));
+ }
+
+ @RequestMapping(value = "/mat/auth")
+ @ManagerAuth
+ public R find(@RequestParam("matnr") String matnr) {
+ Mat one = matService.getOne(new LambdaQueryWrapper<Mat>()
+ .eq(Mat::getMatnr, matnr)
+ .eq(Mat::getHostId, getHostId()));
+ if (Cools.isEmpty(one)){
+ return R.error("鏈煡璇㈠埌鐩稿叧鐗╂枡");
+ }
+ return R.ok(one);
}
@RequestMapping(value = "/mat/page/auth")
@@ -39,15 +60,16 @@
@RequestParam(required = false) String condition,
@RequestParam(required = false) String timeRange,
@RequestParam Map<String, Object> param) {
- LambdaQueryWrapper<Mat> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(Mat::getHostId, getHostId());
- if (!Cools.isEmpty(condition)) {
- wrapper.like(Mat::getId, condition);
- }
+ QueryWrapper<Mat> wrapper = new QueryWrapper<>();
+// convert(param, wrapper);
+ wrapper.eq("host_id", getHostId());
+// if (!Cools.isEmpty(condition)) {
+// wrapper.like(Mat::getId, condition);
+// }
if (!Cools.isEmpty(timeRange)) {
String[] range = timeRange.split(RANGE_TIME_LINK);
- wrapper.ge(Mat::getCreateTime, DateUtils.convert(range[0]));
- wrapper.le(Mat::getCreateTime, DateUtils.convert(range[1]));
+ wrapper.ge("create_time", DateUtils.convert(range[0]));
+ wrapper.le("create_time", DateUtils.convert(range[1]));
}
Object tagId = param.get("tag_id");
ArrayList<Long> nodes = new ArrayList<>();
@@ -55,20 +77,53 @@
tagId = getOriginTag().getId();
}
treeUtils.getTagIdList(Long.parseLong(tagId.toString()), nodes);
- wrapper.in(Mat::getTagId, nodes);
+ wrapper.in("tag_id", nodes);
if (!Cools.isEmpty(param.get("matnr"))) {
- wrapper.eq(Mat::getMatnr, param.get("matnr"));
+ wrapper.like("matnr", param.get("matnr"));
}
if (!Cools.isEmpty(param.get("maktx"))) {
- wrapper.eq(Mat::getMaktx, param.get("maktx"));
+ wrapper.like("maktx", param.get("maktx"));
}
+ if (!Cools.isEmpty(param.get("decrees"))) {
+ wrapper.like("decrees", param.get("decrees"));
+ }
+// if (!Cools.isEmpty(param.get("owner$"))) {
+// wrapper.eq("owner", param.get("owner$"));
+// }
+ param.remove("matnr");
+ param.remove("maktx");
+ param.remove("decrees");
+// param.remove("owner$");
+ allLike(Mat.class, param.keySet(), wrapper, condition);
return R.ok(matService.page(new Page<>(curr, limit), wrapper));
}
+
+
+// private <T> void convert(Map<String, Object> map, QueryWrapper<T> wrapper){
+// for (Map.Entry<String, Object> entry : map.entrySet()){
+// 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 {
+// if (entry.getKey().equals("locNo")) {
+// wrapper.eq("loc_no", String.valueOf(entry.getValue()));
+// } else {
+// wrapper.like(entry.getKey(), String.valueOf(entry.getValue()));
+// }
+// }
+// }
+// }
@RequestMapping(value = "/mat/add/auth")
@ManagerAuth
public R add(Mat mat) {
+ int count = matService.count(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, mat.getMatnr()));
+ if(count > 0){
+ return R.error("褰撳墠鐗╂枡鍙峰凡瀛樺湪");
+ }
mat.setHostId(getHostId());
matService.save(mat);
return R.ok();
@@ -123,10 +178,152 @@
LambdaQueryWrapper<Mat> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Mat::getHostId, getHostId());
if (!Cools.isEmpty(condition)) {
- wrapper.like(Mat::getId, condition);
+ wrapper.like(Mat::getMatnr, condition);
}
- matService.page(new Page<>(1, 30), wrapper).getRecords().forEach(item -> vos.add(new KeyValueVo(String.valueOf(item.getId()), item.getId())));
+ matService.page(new Page<>(1, 30), wrapper).getRecords().forEach(item -> vos.add(new KeyValueVo(item.getMatnr(), item.getId())));
return R.ok().add(vos);
}
+ @RequestMapping(value = "/mat/covert/{id}/auth")
+ @ManagerAuth
+ public R covert(@PathVariable("id") String id) {
+ Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getId, id).eq(Mat::getHostId, getHostId()));
+ if (mat == null) {
+ return R.ok();
+ }
+ OrderDetl orderDetl = new OrderDetl();
+ orderDetl.sync(mat);
+ orderDetl.setBatch("");
+ orderDetl.setAnfme(0.0D);
+ return R.ok().add(orderDetl);
+ }
+
+ @RequestMapping(value = "/mat/list/pda/page/auth")
+ @ManagerAuth
+ public R pdaPageList(@RequestParam(required = true)Long tagId,
+ @RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit){
+ LambdaQueryWrapper<Mat> wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(Mat::getHostId, getHostId());
+ wrapper.orderBy(true, false,Mat::getCreateTime);
+ return R.ok().add(matService.page(new Page<>(curr, limit), wrapper));
+ }
+
+ @RequestMapping(value = "/mat/pad/search")
+ @ManagerAuth
+ public R padSearch(@RequestParam("matnr") String matnr) {
+ List<Mat> list = matService.list(new LambdaQueryWrapper<Mat>()
+ .like(Mat::getMatnr, matnr)
+ .eq(Mat::getHostId, getHostId()));
+ if (list.isEmpty()){
+ return R.error("鏈煡璇㈠埌鐩稿叧鐗╂枡");
+ }
+ return R.ok(list);
+ }
+
+ @RequestMapping(value = "/mat/pad/searchLoc")
+ @ManagerAuth
+ public R padSearchLoc(@RequestParam("matnr") String matnr) {
+ List<LocDetl> list = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getMatnr, matnr).eq(LocDetl::getHostId, getHostId()));
+
+ ArrayList<LocDetl> locDetls = new ArrayList<>();
+ for (LocDetl locDetl : list) {
+ LocMast one = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, locDetl.getLocNo()).eq(LocMast::getHostId, locDetl.getHostId()));
+ if (one == null) {
+ continue;
+ }
+
+ if (!one.getLocSts().equals("F")) {
+ continue;
+ }
+
+ locDetls.add(locDetl);
+ }
+ return R.ok(locDetls);
+ }
+
+ @GetMapping("/mat/synchronous")
+ @ManagerAuth
+ public R synchronous(){
+ int wrkConut=wrkMastService.count(new LambdaQueryWrapper<WrkMast>());
+ if(wrkConut>0){
+ return R.error("鏈夊伐浣滀腑鐨勪换鍕欙紝绂佹鍚屾搴撳瓨淇℃伅");
+ }
+ List<Mat> mats=matService.list();
+ for (Mat mat:mats
+ ) {
+ List<LocDetl>locDetls=locDetlService.list(new LambdaQueryWrapper<LocDetl>()
+ .eq(LocDetl::getMatnr,mat.getMatnr()));
+ for (LocDetl locDetl:locDetls
+ ) {
+ locDetl.setMaktx(mat.getMaktx());
+
+ if(!Cools.isEmpty(mat.getSpecs())){
+ locDetl.setSpecs(mat.getSpecs());
+ }else{
+ locDetl.setSpecs("");
+ }
+ if(!Cools.isEmpty(mat.getModel())){
+ locDetl.setModel(mat.getModel());
+ }else {
+ locDetl.setModel("");
+ }
+ if(!Cools.isEmpty(mat.getSku())){
+ locDetl.setSku(mat.getSku());
+ }else {
+ locDetl.setSku("");
+ }
+ //鍥惧彿
+ if(!Cools.isEmpty(mat.getImgNum())){
+ locDetl.setItemNum(mat.getImgNum());
+ }else {
+ locDetl.setItemNum("");
+ }
+// if(!Cools.isEmpty(mat.getWeight())){
+// locDetl.setWeight(Double.parseDouble(mat.getWeight()));
+// }else {
+// locDetl.setWeight(0.0);
+// }
+// if(!Cools.isEmpty(mat.getLength())){
+// locDetl.setLength(Double.parseDouble(mat.getLength()));
+// }else {
+// locDetl.setLength(0.0);
+// }
+ locDetlService.updateById(locDetl);
+ }
+ }
+ return R.ok();
+ }
+
+ @PostMapping("/mat/sync")
+ @ManagerAuth
+ public R synchronous(@RequestBody Mat data) {
+ // 妫�鏌ユ槸鍚︽湁浠诲姟涓娇鐢ㄤ簡璇ョ墿鏂�
+ int wrkCount = wrkDetlService.count(new LambdaQueryWrapper<WrkDetl>()
+ .eq(WrkDetl::getMatnr, data.getMatnr()));
+ if (wrkCount > 0) {
+ return R.error("璇ョ墿鏂欐鍦ㄨ浠诲姟浣跨敤锛岀姝㈠悓姝�");
+ }
+
+ // 鏌ヨ瀵瑰簲搴撳瓨鏄庣粏
+ List<LocDetl> locDetls = locDetlService.list(
+ new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getMatnr, data.getMatnr())
+ );
+
+ for (LocDetl locDetl : locDetls) {
+ locDetl.setMaktx(data.getMaktx());
+ locDetl.setSpecs(Cools.isEmpty(data.getSpecs()) ? "" : data.getSpecs());
+ locDetl.setModel(Cools.isEmpty(data.getModel()) ? "" : data.getModel());
+ locDetl.setSku(Cools.isEmpty(data.getSku()) ? "" : data.getSku());
+ locDetl.setItemNum(Cools.isEmpty(data.getImgNum()) ? "" : data.getImgNum());
+ // 鑻ラ渶瑕佸悓姝ラ噸閲忓拰闀垮害锛屽彇娑堟敞閲�
+ // locDetl.setWeight(Cools.isEmpty(data.getWeight()) ? 0.0 : Double.parseDouble(data.getWeight()));
+ // locDetl.setLength(Cools.isEmpty(data.getLength()) ? 0.0 : Double.parseDouble(data.getLength()));
+
+ locDetlService.updateById(locDetl);
+ }
+
+ return R.ok();
+ }
+
}
--
Gitblit v1.9.1