zwl
2025-09-12 7e10622ead5bd8b3ce0c9fda39d22ae0e938e030
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MatController.java
@@ -5,13 +5,8 @@
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.LocDetl;
import com.zy.asrs.common.wms.entity.LocMast;
import com.zy.asrs.common.wms.entity.Mat;
import com.zy.asrs.common.wms.entity.OrderDetl;
import com.zy.asrs.common.wms.service.LocDetlService;
import com.zy.asrs.common.wms.service.LocMastService;
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;
@@ -35,6 +30,10 @@
    private LocDetlService locDetlService;
    @Autowired
    private LocMastService locMastService;
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private WrkDetlService wrkDetlService;
    @RequestMapping(value = "/mat/{id}/auth")
    @ManagerAuth
@@ -194,6 +193,7 @@
        }
        OrderDetl orderDetl = new OrderDetl();
        orderDetl.sync(mat);
        orderDetl.setBatch("");
        orderDetl.setAnfme(0.0D);
        return R.ok().add(orderDetl);
    }
@@ -242,4 +242,88 @@
        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();
    }
}