自动化立体仓库 - WMS系统
zjj
2023-06-09 180d28a0dcc7319c55380a3c6e433d9b009c3b01
#入库测试完成
13个文件已修改
105 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/LocDetlController.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/OrderDetlService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/DetlDto.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/OrderDetlMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/locDetl/locDetl.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/order/order.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/home/map.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/pakStore/turnOverQuery.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/LocDetlController.java
@@ -12,10 +12,7 @@
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.LocOwner;
import com.zy.asrs.entity.ManLocDetl;
import com.zy.asrs.entity.Mat;
import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.LocDetlMapper;
import com.zy.asrs.service.LocDetlService;
import com.zy.asrs.service.LocOwnerService;
@@ -313,4 +310,27 @@
    }
    @RequestMapping(value = "/locDetl/selectPayment/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){
        if (param.get("owner$") != null && param.get("owner$") != ""){
             LocOwner locOwner = locOwnerService.selectOne(new EntityWrapper<LocOwner>().eq("owner", param.get("owner$")));
             param.remove("owner$");
             param.put("owner",locOwner.getId());
        }
        EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
        wrapper.eq("payment",0);
        excludeTrash(param);
        convert(param, wrapper);
        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
        return R.ok(locDetlService.selectPage(new Page<>(curr, limit), wrapper));
    }
}
src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
@@ -25,7 +25,7 @@
    int increase(@Param("orderId")Long orderId, @Param("matnr")String matnr, @Param("batch")String batch, @Param("qty")Double qty);
    int decrease(@Param("orderNo")String orderNo, @Param("matnr")String matnr, @Param("batch")String batch, @Param("qty")Double qty);
    int decrease(@Param("orderNo")String orderNo, @Param("matnr")String matnr, @Param("batch")String batch, @Param("workQty")Double workQty);
    int modifyStatus(@Param("orderId") Long orderId, @Param("status")Integer status);
src/main/java/com/zy/asrs/service/OrderDetlService.java
@@ -20,7 +20,7 @@
    boolean increase(Long orderId, String matnr, String batch, Double qty);
    boolean decrease(String orderNo, String matnr, String batch, Double qty);
    boolean decrease(String orderNo, String matnr, String batch, Double workQty);
    boolean modifyStatus(Long orderId, Integer status);
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -131,7 +131,7 @@
            // 生成入库通知档
            List<DetlDto> detlDtos = new ArrayList<>();
            param.getCombMats().forEach(elem -> {
                DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
                DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(),elem.getWeight());
                if (DetlDto.has(detlDtos, detlDto)) {
                    DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
                    assert one != null;
@@ -162,7 +162,7 @@
                waitPakin.setModiTime(now);
                waitPakin.setOwner(detlDto.getOwner());
                waitPakin.setUuid(uuid);
                waitPakin.setWeight(param.getCombMats().get(0).getWeight());
                waitPakin.setWeight(detlDto.getWeight());
                if (!waitPakinService.insert(waitPakin)) {
                    throw new CoolException("保存入库通知档失败");
                }
@@ -202,6 +202,7 @@
                }
                DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(),orderDetl.getOwner(),elem.getWeight());
                detlDto.setPayment(orderDetl.getPayment());
                if (DetlDto.has(detlDtos, detlDto)) {
                    DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
                    assert one != null;
@@ -229,6 +230,7 @@
                waitPakin.setModiUser(userId);
                waitPakin.setModiTime(now);
                waitPakin.setOwner(detlDto.getOwner());
                waitPakin.setPayment(detlDto.getPayment());
                waitPakin.setUuid(uuid);
                waitPakin.setWeight(detlDto.getWeight());
                if (!waitPakinService.insert(waitPakin)) {
src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
@@ -54,10 +54,10 @@
    }
    @Override
    public boolean decrease(String orderNo, String matnr, String batch, Double qty) {
        int decrease = this.baseMapper.decrease(orderNo, matnr, batch, qty);
    public boolean decrease(String orderNo, String matnr, String batch, Double workQty) {
        int decrease = this.baseMapper.decrease(orderNo, matnr, batch, workQty);
        if (decrease == 0) {
            return this.baseMapper.decrease(orderNo, matnr, null, qty) > 0;
            return this.baseMapper.decrease(orderNo, matnr, null, workQty) > 0;
        } else {
            return true;
        }
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -903,17 +903,17 @@
        }
        // 订单关联
        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
        for (WrkDetl wrkDetl : wrkDetls) {
            if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
                if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
                    throw new CoolException("订单数据回滚失败");
                }
                // 生成新的出库作业
//                        stockOutRe(wrkMast, wrkDetls);
            }
        }
//        // 订单关联
//        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
//        for (WrkDetl wrkDetl : wrkDetls) {
//            if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
//                if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
//                    throw new CoolException("订单数据回滚失败");
//                }
//                // 生成新的出库作业
////                        stockOutRe(wrkMast, wrkDetls);
//            }
//        }
        // 取消操作人员记录
        wrkMast.setManuType("手动取消");
@@ -1197,7 +1197,12 @@
                if (!locNos.contains(locDetl.getLocNo())){
                    locNos.add(locDetl.getLocNo());
                    locNos2[i][0]=locDetl.getLocNo();
                    locNos2[i][1]=locDetl.getManu();
                    if (locDetl.getLocNo().substring(0,2) == "DT"){
                        locNos2[i][1]= "平库";
                    }else {
                        locNos2[i][1]= "立库";
                    }
                    i++;
                }
            }
@@ -1208,7 +1213,7 @@
                    for (ManLocDetl manLocDetl:manLocDetls){
                        manLocDetl.setPayment(1);
                        try{
                            manLocDetlService.update(manLocDetl,new EntityWrapper<ManLocDetl>().eq("loc_no", locNo).eq("uuid",manLocDetl.getMatnr()));
                            manLocDetlService.update(manLocDetl,new EntityWrapper<ManLocDetl>().eq("loc_no", locNo).eq("matnr",manLocDetl.getMatnr()));
                        }catch (Exception e){
                            throw new Exception("更新库存明细货物形态字段信息出错了");
                        }
@@ -1218,7 +1223,7 @@
                    for (LocDetl locDetl:locDetls){
                        locDetl.setPayment(1);
                        try{
                            locDetlService.update(locDetl,new EntityWrapper<LocDetl>().eq("loc_no", locNo).eq("uuid",locDetl.getMatnr()));
                            locDetlService.update(locDetl,new EntityWrapper<LocDetl>().eq("loc_no", locNo).eq("matnr",locDetl.getMatnr()));
                        }catch (Exception e){
                            throw new Exception("更新库存明细货物形态字段信息出错了");
                        }
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -111,6 +111,7 @@
                            locDetl.setAppeTime(now);
                            locDetl.setOwner(wrkDetl.getOwner());
                            locDetl.setPayment(wrkDetl.getPayment());
                            locDetl.setWeight(wrkDetl.getWeight());
                            if (!locDetlService.insert(locDetl)) {
//                                exceptionHandle("全板入库 ===>> 添加库存明细失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
src/main/java/com/zy/common/model/DetlDto.java
@@ -22,6 +22,8 @@
    private int owner;
    private int payment;
    private Double weight;
    public DetlDto() {
@@ -59,6 +61,13 @@
        this.weight = weight;
    }
    public DetlDto(String matnr, String batch, Double anfme,Double weight) {
        this.matnr = matnr;
        this.batch = batch;
        this.anfme = anfme;
        this.weight = weight;
    }
    public static boolean hasList(Set<DetlDto> detlDtos, OrderDetl orderDetl) {
        for (DetlDto dto : detlDtos) {
src/main/resources/mapper/OrderDetlMapper.xml
@@ -157,7 +157,7 @@
    <update id="decrease">
        update man_order_detl
        set qty = qty - #{qty}
        set work_qty = work_qty - #{workQty}
        where 1=1
        and order_no = #{orderNo}
        and matnr = #{matnr}
src/main/webapp/static/js/locDetl/locDetl.js
@@ -5,10 +5,10 @@
        {field: 'matnr', align: 'center',title: '商品编号', sort:true}
        ,{field: 'maktx', align: 'center',title: '商品名称', sort:true}
        ,{field: 'orderNo', align: 'center',title: '单据编号', hide: false}
        ,{field: 'batch', align: 'center',title: '批号', width: 300, sort:true}
        ,{field: 'batch', align: 'center',title: '批号', width: 200, sort:true}
        ,{field: 'anfme', align: 'center',title: '数量'}
        ,{field: 'zpallet', align: 'center',title: '托盘条码'}
        ,{field: 'specs', align: 'center',title: '配置'}
        ,{field: 'specs', align: 'center',title: '配置',hide: true}
        ,{field: 'model', align: 'center',title: '代码', hide: true}
        ,{field: 'color', align: 'center',title: '颜色', hide: true}
        ,{field: 'brand', align: 'center',title: '品牌', hide: true}
@@ -23,6 +23,8 @@
        ,{field: 'itemNum', align: 'center',title: '品项数', hide: true}
        ,{field: 'safeQty', align: 'center',title: '安全库存量', hide: true}
        ,{field: 'weight', align: 'center',title: '重量', hide: false}
        ,{field: 'owner$', align: 'center',title: '货主', hide: false}
        ,{field: 'payment$', align: 'center',title: '货物状态', hide: false}
        ,{field: 'length', align: 'center',title: '单箱毛重', hide: true}
        ,{field: 'volume', align: 'center',title: '单箱体积', hide: true}
        ,{field: 'threeCode', align: 'center',title: '箱子尺寸', hide: true}
src/main/webapp/static/js/order/order.js
@@ -317,7 +317,7 @@
                        {field: 'specs', title: '规格'},
                        {field: 'anfme', title: '数量(修改)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110},
                        {field: 'owner', title: '货主编号', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110},
                        {field: 'payment', title: '货主编号', style: 'color: blue;font-weight: bold', templet: '#payment'},
                        {field: 'payment', title: '货物状态', style: 'color: blue;font-weight: bold', templet: '#payment'},
                        // {field: 'payment', title: '货物状态',align: 'center', templet: '#payment'},
                        {field: 'qty', title: '作业数量',  minWidth: 100, width: 100},
                        // {field: 'unit', title: '单位', width: 80},
src/main/webapp/views/home/map.html
@@ -689,7 +689,7 @@
            rightBoxLeft: "0px",
            pointContainerWidth: 0,
            currentLev: 1,
            area:6,
            area:1,
            areaName:"立库",
            crnList: null,
            crnBox: false,
@@ -842,7 +842,7 @@
                    }else if (this.area == 6){
                        if (rowData[i].locNo != undefined) {
                            let locNo = rowData[i].locNo;
                            return "#" + parseInt(locNo.substr(8, 2));
                            return "#" + parseInt(locNo.substr(7, 2));
                        }
                    }
                    else {
src/main/webapp/views/pakStore/turnOverQuery.html
@@ -69,7 +69,7 @@
        </div>
        <div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" type="text" name="owner" placeholder="货主" autocomplete="off">
                <input class="layui-input" type="text" name="owner$" placeholder="货主" autocomplete="off">
            </div>
        </div>
        <!-- 待添加 -->
@@ -125,7 +125,7 @@
        locDetlTableIns = table.render({
            elem: '#stockOut',
            headers: {token: localStorage.getItem('token')},
            url: baseUrl+'/turn/over/list/auth',
            url: baseUrl+'/locDetl/selectPayment/list/auth',
            page: true,
            limits: [16, 30, 50, 100, 200, 500],
            limit: 16,