#
Junjie
2024-08-13 fc464a48c95cc0710d89501d9df99312c3efa603
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocMastController.java
@@ -1,8 +1,8 @@
package com.zy.asrs.wms.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSON;
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.domain.entity.Parameter;
import com.zy.asrs.common.domain.entity.Shelves;
@@ -18,10 +18,12 @@
import com.zy.asrs.framework.common.DateUtils;
import com.zy.asrs.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.*;
import static jdk.nashorn.api.scripting.ScriptUtils.convert;
@RestController
public class LocMastController extends BaseController {
@@ -30,6 +32,9 @@
    private LocMastService locMastService;
    @Autowired
    private LocDetlService locDetlService;
    @Value("${wcs.url}")
    private String WCS_URL;
    @RequestMapping(value = "/locMast/{id}/auth")
    @ManagerAuth
@@ -44,23 +49,39 @@
                  @RequestParam(required = false) String condition,
                  @RequestParam(required = false) String timeRange,
                  @RequestParam Map<String, Object> param) {
        LambdaQueryWrapper<LocMast> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(LocMast::getHostId, getHostId());
        if (!Cools.isEmpty(condition)) {
            wrapper.like(LocMast::getLocNo, condition);
        }
        if (!Cools.isEmpty(timeRange)) {
            String[] range = timeRange.split(RANGE_TIME_LINK);
            wrapper.ge(LocMast::getAppeTime, DateUtils.convert(range[0]));
            wrapper.le(LocMast::getAppeTime, DateUtils.convert(range[1]));
        }
        if (!Cools.isEmpty(param.get("loc_no"))) {
            wrapper.eq(LocMast::getLocNo, param.get("loc_no"));
        }
        if (!Cools.isEmpty(param.get("loc_sts"))) {
            wrapper.eq(LocMast::getLocSts, param.get("loc_sts"));
        }
        excludeTrash(param);
        QueryWrapper<LocMast> wrapper = new QueryWrapper<>();
        wrapper.eq("host_id",getHostId());
        //wrapper.eq(LocMast::getHostId, getHostId());
        convert(param, wrapper);
        //if (!Cools.isEmpty(condition)) {
        //    wrapper.like(LocMast::getLocNo, condition);
        //}
        //if (!Cools.isEmpty(timeRange)) {
        //    String[] range = timeRange.split(RANGE_TIME_LINK);
        //    wrapper.ge(LocMast::getAppeTime, DateUtils.convert(range[0]));
        //    wrapper.le(LocMast::getAppeTime, DateUtils.convert(range[1]));
        //}
        //if (!Cools.isEmpty(param.get("loc_no"))) {
        //    wrapper.eq(LocMast::getLocNo, param.get("loc_no"));
        //}
        //if (!Cools.isEmpty(param.get("loc_sts"))) {
        //    wrapper.eq(LocMast::getLocSts, param.get("loc_sts"));
        //}
        return R.ok(locMastService.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 {
                wrapper.like(entry.getKey(), val);
            }
        }
    }
    @PostMapping(value = "/group/empty/stock")
@@ -78,13 +99,25 @@
        return R.ok();
    }
   @RequestMapping(value = "/locMast/update/auth")
   @ManagerAuth
    @RequestMapping(value = "/locMast/update/auth")
    @ManagerAuth(memo = "库位修改")
    public R update(LocMast locMast){
        if (Cools.isEmpty(locMast) || null==locMast.getLocNo()){
            return R.error();
        }
        locMastService.updateById(locMast);
        LocMast oldLocMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, locMast.getLocNo()).eq(LocMast::getHostId, getHostId()));
        if (locMast.getLocSts().equals("F") && (oldLocMast.getLocSts().equals("D") || oldLocMast.getLocSts().equals("O"))) {
            return R.error("当前操作已被阻止,请联系管理员");
        }
        // 有物料时修改为空库位或者空板库位,则删除库存明细
        if (oldLocMast.getLocSts().equals("R") || oldLocMast.getLocSts().equals("F")) {
            if (locMast.getLocSts().equals("O") || locMast.getLocSts().equals("D")) {
                locDetlService.remove(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocNo, locMast.getLocNo()));
            }
        }
        locMast.setModiUser(getUserId());
        locMast.setModiTime(new Date());
        locMastService.update(locMast,new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, locMast.getLocNo()).eq(LocMast::getHostId, getHostId()));
        return R.ok();
    }
@@ -170,6 +203,7 @@
                    locMast.setModiUser(getUserId());
                    locMast.setModiTime(new Date());
                    locMast.setHostId(hostId);
                    locMast.setWhsType(0L);
                    list.add(locMast);
                }
            }
@@ -182,4 +216,27 @@
        return R.ok("初始化成功");
    }
    @GetMapping("/locMast/picUrl")
    @ManagerAuth
    public R getPicUrl(@RequestParam String locNo) {
        LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>()
                .eq(LocMast::getLocNo, locNo)
                .eq(LocMast::getHostId, getHostId()));
        if (locMast == null) {
            return R.error();
        }
        ArrayList<String> list = new ArrayList<>();
        String picStr = locMast.getPic();
        if (Cools.isEmpty(picStr)) {
            return R.ok().add(list);
        }
        List<String> pics = JSON.parseArray(picStr, String.class);
        for (String pic : pics) {
            list.add("http://" + WCS_URL + "/image/" + pic + "-1.jpg");
            list.add("http://" + WCS_URL + "/image/" + pic + "-2.jpg");
        }
        return R.ok().add(list);
    }
}