#
cp
2025-06-19 e64b1d5ec0b3ca0c42048903f4ab5f9d588349e8
#
5个文件已修改
86 ■■■■■ 已修改文件
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/LocDetl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/CommonService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MatController.java 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/mat/mat.js 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/views/mat/mat.html 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/LocDetl.java
@@ -26,6 +26,7 @@
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Data
@TableName("wms_loc_detl")
@@ -307,7 +308,15 @@
    public Mat getMat$(){
        MatService service = SpringUtils.getBean(MatService.class);
        Mat mat = service.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, matnr));
        Mat mat = null;
        if (hostId!=null){
             mat = service.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, matnr).eq(Mat::getHostId,hostId));
        }else {
            List<Mat> list = service.list(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, matnr));
            if (!list.isEmpty()){
                mat =list.get(0);
            }
        }
        if (!Cools.isEmpty(mat)){
            return mat;
        }
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/CommonService.java
@@ -160,7 +160,7 @@
            List<LocMast> locMasts = locMastService.queryFreeLocMast2(locTypeDto.getLocType1(), locRule.getRowBeg(), locRule.getRowEnd(), locRule.getBayBeg(), locRule.getBayEnd(), locRule.getLevBeg(), locRule.getLevEnd(), hostId,WHS_TYPE);
            for (LocMast locMast0 : locMasts) {
                //预留空库位
                if (locMastService.checkEmptyCount(locMast0, 10, hostId)) {
                if (locMastService.checkEmptyCount(locMast0, 5, hostId)) {
                    return locMast0;
                }
            }
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MatController.java
@@ -6,10 +6,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zy.asrs.common.utils.TreeUtils;
import com.zy.asrs.common.wms.entity.*;
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.service.WrkMastService;
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 +32,8 @@
    private LocMastService locMastService;
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private WrkDetlService wrkDetlService;
    @RequestMapping(value = "/mat/{id}/auth")
    @ManagerAuth
@@ -295,4 +294,36 @@
        }
        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();
    }
}
zy-asrs-wms/src/main/webapp/static/js/mat/mat.js
@@ -234,6 +234,36 @@
            case 'edit':
                showEditModel(data)
                break;
            case'sync':
            case 'sync':
                layer.confirm('确认同步库存?', function () {
                    notice.msg('正在同步库存......', {icon: 4}); // 加载提示
                    $.ajax({
                        url: baseUrl + "/mat/sync",
                        method: 'POST',
                        contentType: 'application/json', // 正确的Content-Type位置
                        headers: {
                            'token': localStorage.getItem('token')
                        },
                        data: JSON.stringify(data),
                        success: function (res) {
                            notice.destroy(); // 移除“正在同步”提示
                            if (res.code === 200) {
                                layer.msg('同步成功 ✅', {icon: 1}); // ✅ 成功提示
                                $(".layui-laypage-btn")[0].click(); // 触发表格刷新
                            } else {
                                layer.msg(res.msg || '同步失败 ❌', {icon: 2}); // ❌ 失败提示
                            }
                        },
                        error: function (xhr) {
                            notice.destroy();
                            layer.msg('请求失败:' + (xhr.responseText || '未知错误'), {icon: 2});
                        }
                    });
                });
                break;
        }
    });
zy-asrs-wms/src/main/webapp/views/mat/mat.html
@@ -162,7 +162,9 @@
<script type="text/html" id="operate">
    <a class="layui-btn layui-btn-xs btn-edit layui-btn-primary" lay-event="edit">修改</a>
<!--    <a class="layui-btn layui-btn-xs btn-edit layui-btn-primary" lay-event="sync">同步</a>-->
    <button class="layui-btn layui-btn-xs btn-print" lay-event="btnPrint">打印</button>
    <button class="layui-btn layui-btn-xs btn-sync" lay-event="sync">同步</button>
</script>
<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
@@ -255,7 +257,7 @@
                <div class="layui-form-item">
                    <label class="layui-form-label">机型</label>
                    <div class="layui-input-block">
                        <input name="model" type="number" placeholder="请输入机型" class="layui-input">
                        <input name="model" placeholder="请输入机型" class="layui-input">
                    </div>
                </div>