From f6e687c194354f1c0b883b5ac56da3a8e70db471 Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期三, 14 一月 2026 18:43:37 +0800
Subject: [PATCH] 出库工作档功能优化

---
 src/main/java/com/zy/asrs/controller/MatController.java |   87 +++++++++++++++++++++++++++----------------
 1 files changed, 55 insertions(+), 32 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/MatController.java b/src/main/java/com/zy/asrs/controller/MatController.java
index 53e9135..2b8ad49 100644
--- a/src/main/java/com/zy/asrs/controller/MatController.java
+++ b/src/main/java/com/zy/asrs/controller/MatController.java
@@ -10,12 +10,13 @@
 import com.core.annotations.ManagerAuth;
 import com.core.common.*;
 import com.core.exception.CoolException;
-import com.zy.asrs.entity.Mat;
-import com.zy.asrs.entity.MatPrint;
-import com.zy.asrs.entity.OrderDetl;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.BatchMatsUpdateParam;
 import com.zy.asrs.entity.param.EmptyPlateOutParam;
 import com.zy.asrs.entity.result.KeyValueVo;
+import com.zy.asrs.service.LocDetlService;
 import com.zy.asrs.service.MatService;
+import com.zy.asrs.service.WrkDetlService;
 import com.zy.asrs.utils.MatExcelListener;
 import com.zy.common.CodeRes;
 import com.zy.common.config.AdminInterceptor;
@@ -42,15 +43,20 @@
     private MatService matService;
     @Autowired
     private SnowflakeIdWorker snowflakeIdWorker;
+    @Autowired
+    private LocDetlService locDetlService;
+    @Autowired
+    private WrkDetlService wrkDetlService;
+
 
     @RequestMapping(value = "/mat/auto/matnr/auth")
-    public R autoMatnr(){
+    public R autoMatnr() {
         return R.ok().add("YJ" + DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmsssss).substring(0, 16));
     }
 
     @RequestMapping(value = "/mat/list/pda/auth")
     @ManagerAuth
-    public R pdaList(@RequestParam(required = true)Long tagId){
+    public R pdaList(@RequestParam(required = true) Long tagId) {
         EntityWrapper<Mat> wrapper = new EntityWrapper<>();
         wrapper.eq("tag_id", tagId);
         wrapper.orderBy("create_time", false);
@@ -60,7 +66,7 @@
 
     @RequestMapping(value = "/mat/search/pda/auth")
     @ManagerAuth
-    public R pdaSearch(@RequestParam(required = false)String condition){
+    public R pdaSearch(@RequestParam(required = false) String condition) {
         EntityWrapper<Mat> wrapper = new EntityWrapper<>();
         if (!Cools.isEmpty(condition)) {
 //            wrapper.like("matnr", condition).or().like("maktx", condition);
@@ -85,11 +91,11 @@
 
     @RequestMapping(value = "/mat/list/auth")
     @ManagerAuth
-    public R list(@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){
+    public R list(@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) {
         Object tagId = param.get("tag_id");
         if (Cools.isEmpty(tagId)) {
             tagId = getOriginTag().getId();
@@ -103,10 +109,10 @@
 
     }
 
-    private void convert(Map<String, Object> map, EntityWrapper wrapper){
-        for (Map.Entry<String, Object> entry : map.entrySet()){
+    private void convert(Map<String, Object> map, EntityWrapper wrapper) {
+        for (Map.Entry<String, Object> entry : map.entrySet()) {
             String val = String.valueOf(entry.getValue());
-            if (val.contains(RANGE_TIME_LINK)){
+            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]));
@@ -127,6 +133,7 @@
         mat.setCreateTime(now);
         mat.setUpdateBy(getUserId());
         mat.setUpdateTime(now);
+        mat.setLocType(mat.getTagId());
         mat.setStatus(1);
         if (!matService.insert(mat)) {
             throw new CoolException("娣诲姞澶辫触锛岃鑱旂郴绠$悊鍛�");
@@ -134,26 +141,42 @@
         return R.ok();
     }
 
-	@RequestMapping(value = "/mat/update/auth")
-	@ManagerAuth
-    public R update(Mat mat){
-        if (Cools.isEmpty(mat) || null==mat.getId()){
+    @RequestMapping(value = "/mat/update/auth")
+    @ManagerAuth
+    public R update(Mat mat) {
+        if (Cools.isEmpty(mat) || null == mat.getId()) {
             return R.error();
         }
         mat.setUpdateBy(getUserId());
+        mat.setLocType(mat.getTagId());
         mat.setUpdateTime(new Date());
         matService.updateById(mat);
         return R.ok();
     }
 
+    @PostMapping("mat/batch/auth")
+    @ManagerAuth
+    public R batchUpdate(@RequestBody BatchMatsUpdateParam params) {
+
+        return  matService.batchInfo(params);
+    }
+
     @RequestMapping(value = "/mat/delete/auth")
     @ManagerAuth
-    public R delete(@RequestParam String param){
+    public R delete(@RequestParam String param) {
         List<Mat> list = JSONArray.parseArray(param, Mat.class);
-        if (Cools.isEmpty(list)){
+        if (Cools.isEmpty(list)) {
             return R.error();
         }
-        for (Mat entity : list){
+        for (Mat entity : list) {
+            List<WrkDetl> matnr = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("matnr", entity.getMatnr()));
+            if (Cools.isEmpty(matnr)) {
+                throw new CoolException("鍒犻櫎澶辫触锛屽綋鍓嶇墿鏂欒繕鏈夋墽琛屼腑鐨勪换鍔℃。鏄庣粏锛岃鑱旂郴绠$悊鍛橈紒锛�");
+            }
+            List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", entity.getMatnr()));
+            if (Cools.isEmpty(locDetls)) {
+                throw new CoolException("鍒犻櫎澶辫触锛屽綋鍓嶇墿鏂欒繕鏈夊簱瀛樻槑缁嗗瓨鍦ㄧ珛搴撲腑锛岃鑱旂郴绠$悊鍛橈紒锛�");
+            }
             if (!matService.delete(new EntityWrapper<>(entity))) {
                 throw new CoolException("鍒犻櫎澶辫触锛岃鑱旂郴绠$悊鍛�");
             }
@@ -163,15 +186,15 @@
 
     @RequestMapping(value = "/mat/turn/over/list/auth")
     @ManagerAuth
-    public R turnOverList(@RequestParam(defaultValue = "1")Integer curr,
-                          @RequestParam(defaultValue = "10")Integer limit,
-                          @RequestParam Map<String, Object> param){
+    public R turnOverList(@RequestParam(defaultValue = "1") Integer curr,
+                          @RequestParam(defaultValue = "10") Integer limit,
+                          @RequestParam Map<String, Object> param) {
         return R.ok(matService.getMatTurnPage(toPage(curr, limit, param, Mat.class)));
     }
 
     @RequestMapping("/mat/turn/over/take/site")
     @ManagerAuth()
-    public R availableTakeSite(@RequestParam(required = false) String matnr){
+    public R availableTakeSite(@RequestParam(required = false) String matnr) {
         List<Map<String, Object>> result = new ArrayList<>();
         List<Mat> mats = matService.selectByMatnrLink(matnr);
         for (Mat mat : mats) {
@@ -185,7 +208,7 @@
 
     @RequestMapping(value = "/mat/export/auth")
     @ManagerAuth
-    public R export(@RequestBody JSONObject param){
+    public R export(@RequestBody JSONObject param) {
         EntityWrapper<Mat> wrapper = new EntityWrapper<>();
         List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
         Map<String, Object> map = excludeTrash(param.getJSONObject("mat"));
@@ -201,7 +224,7 @@
         wrapper.like("matnr", condition).or().like("maktx", condition);
         Page<Mat> page = matService.selectPage(new Page<>(0, 10), wrapper);
         List<Map<String, Object>> result = new ArrayList<>();
-        for (Mat mat : page.getRecords()){
+        for (Mat mat : page.getRecords()) {
             Map<String, Object> map = new HashMap<>();
             map.put("id", mat.getId());
             map.put("value", mat.getMatnr() + "(" + mat.getMaktx() + ")");
@@ -214,7 +237,7 @@
     @ManagerAuth
     public R query(@RequestBody JSONObject param) {
         Wrapper<Mat> wrapper = new EntityWrapper<Mat>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
-        if (null != matService.selectOne(wrapper)){
+        if (null != matService.selectOne(wrapper)) {
             return R.parse(BaseRes.REPEAT).add(getComment(Mat.class, String.valueOf(param.get("key"))));
         }
         return R.ok();
@@ -241,7 +264,7 @@
             , @RequestParam String param
             , HttpServletResponse response) throws Exception {
         AdminInterceptor.cors(response);
-        if (Cools.isEmpty(param)){
+        if (Cools.isEmpty(param)) {
             return R.parse(BaseRes.EMPTY);
         }
         BufferedImage img;
@@ -262,11 +285,11 @@
     @RequestMapping(value = "/mat/print/auth")
     @ManagerAuth(memo = "鍟嗗搧缂栫爜鎵撳嵃")
     public R matCodePrint(@RequestParam(value = "param[]") String[] param) {
-        if(Cools.isEmpty(param)) {
+        if (Cools.isEmpty(param)) {
             return R.parse(CodeRes.EMPTY);
         }
         List<MatPrint> res = new ArrayList<>();
-        for (String matnr : param){
+        for (String matnr : param) {
             Mat mat = matService.selectByMatnr(matnr);
             // 鎵撳嵃鏁版嵁娉ㄥ叆
             MatPrint print = new MatPrint();
@@ -307,7 +330,7 @@
     public R matExcelImport(MultipartFile file) throws IOException {
         MatExcelListener listener = new MatExcelListener(getUserId());
         EasyExcel.read(file.getInputStream(), MatExcel.class, listener).sheet().doRead();
-        return R.ok("鎴愬姛鍚屾"+listener.getTotal()+"鏉″晢鍝佹暟鎹�");
+        return R.ok("鎴愬姛鍚屾" + listener.getTotal() + "鏉″晢鍝佹暟鎹�");
     }
 
     /*************************************** xm-select ***********************************************/

--
Gitblit v1.9.1