From 469d41fe09ceec3dc5259d01a4060aac1448e09f Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期三, 03 九月 2025 09:59:34 +0800
Subject: [PATCH] 完善订单组托可用数据显示功能
---
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MatController.java | 254 ++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 240 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 a38d839..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
@@ -1,15 +1,19 @@
package com.zy.asrs.wms.controller;
+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.wms.entity.Mat;
-import com.zy.asrs.common.wms.service.MatService;
+import com.zy.asrs.common.utils.TreeUtils;
+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;
import com.zy.asrs.framework.domain.KeyValueVo;
import com.zy.asrs.framework.common.DateUtils;
import com.zy.asrs.common.web.BaseController;
+import com.zy.asrs.framework.exception.CoolException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -20,6 +24,16 @@
@Autowired
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
@@ -27,28 +41,90 @@
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")
@ManagerAuth
public R page(@RequestParam(defaultValue = "1") Integer curr,
@RequestParam(defaultValue = "10") Integer limit,
@RequestParam(required = false) String condition,
- @RequestParam(required = false) String timeRange) {
- LambdaQueryWrapper<Mat> wrapper = new LambdaQueryWrapper<>();
- if (!Cools.isEmpty(condition)) {
- wrapper.like(Mat::getId, condition);
- }
+ @RequestParam(required = false) String timeRange,
+ @RequestParam Map<String, Object> param) {
+ 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<>();
+ if (Cools.isEmpty(tagId)) {
+ tagId = getOriginTag().getId();
+ }
+ treeUtils.getTagIdList(Long.parseLong(tagId.toString()), nodes);
+ wrapper.in("tag_id", nodes);
+ if (!Cools.isEmpty(param.get("matnr"))) {
+ wrapper.like("matnr", param.get("matnr"));
+ }
+ if (!Cools.isEmpty(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();
}
@@ -65,9 +141,15 @@
@RequestMapping(value = "/mat/delete/auth")
@ManagerAuth
- public R delete(@RequestParam(value="ids[]") Long[] ids){
- for (Long id : ids){
- matService.removeById(id);
+ public R delete(@RequestParam String param){
+ List<Mat> list = JSONArray.parseArray(param, Mat.class);
+ if (Cools.isEmpty(list)){
+ return R.error();
+ }
+ for (Mat entity : list){
+ if (!matService.remove(new LambdaQueryWrapper<>(entity))) {
+ throw new CoolException("鍒犻櫎澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
}
return R.ok();
}
@@ -77,6 +159,7 @@
public R query(String condition) {
LambdaQueryWrapper<Mat> wrapper = new LambdaQueryWrapper<>();
wrapper.like(Mat::getId, condition);
+ wrapper.eq(Mat::getHostId, getHostId());
Page<Mat> page = matService.page(new Page<>(0, 10), wrapper);
List<Map<String, Object>> result = new ArrayList<>();
for (Mat mat : page.getRecords()){
@@ -93,11 +176,154 @@
public R getDataKV(@RequestParam(required = false) String condition) {
List<KeyValueVo> vos = new ArrayList<>();
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