自动化立体仓库 - WMS系统
LSH
2023-07-20 96b30d7e4005d76fabc48894150edfe208a70218
#桁架上位软件:单次拆垛完成通知 接口实装
10个文件已修改
143 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/WrkDetl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/SingleUnstackingCompleteParam.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/WrkDetlService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/enums/WorkNoType.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkDetlMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkMastMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkDetl.java
@@ -225,6 +225,7 @@
    /**
     * 要求检验 1: 是  0: 否
     * 徐工汉云拆垛标记  0: 未拆  1: 已拆
     */
    @ApiModelProperty(value= "要求检验 1: 是  0: 否  ")
    private Integer inspect;
src/main/java/com/zy/asrs/entity/param/SingleUnstackingCompleteParam.java
@@ -1,5 +1,6 @@
package com.zy.asrs.entity.param;
import com.core.common.Cools;
import lombok.Data;
import java.util.List;
@@ -20,4 +21,32 @@
        private String boxNo;//        是    字符串    木箱编号(唯一字段,出库依据,出库时按照木箱编号出库)
    }
    public Integer getSourceDevNo$(){
        if (!Cools.isEmpty(this.palletizingNo)){
            switch (this.palletizingNo){
                case "1":
                    return 119;
                case "2":
                    return 121;
                default:
                    return null;
            }
        }
        return null;
    }
    public Integer getDevNo$(){
        if (!Cools.isEmpty(this.palletizingNo)){
            switch (this.palletizingNo){
                case "1":
                    return 132;
                case "2":
                    return 134;
                default:
                    return null;
            }
        }
        return null;
    }
}
src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
@@ -13,6 +13,7 @@
public interface WrkDetlMapper extends BaseMapper<WrkDetl> {
    List<WrkDetl> selectByWrkNo(Integer wrkNo);
    List<WrkDetl> selectByWrkNoUnstacking(Integer wrkNo);
    int deleteItem(@Param("wrkNo")Integer wrkNo, @Param("matnr")String matnr, @Param("batch")String batch);
src/main/java/com/zy/asrs/service/WrkDetlService.java
@@ -12,6 +12,7 @@
    void createWorkDetail(Integer workNo, List<DetlDto> detlDtos, String barcode, Long userId, Date now);
    List<WrkDetl> selectByWrkNo(Integer wrkNo);
    List<WrkDetl> selectByWrkNoUnstacking(Integer wrkNo);
    boolean updateAnfme(Double anfme, Integer wrkNo, String matnr, String batch);
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -13,6 +13,8 @@
import com.zy.asrs.service.*;
import com.zy.asrs.utils.MatUtils;
import com.zy.common.model.DetlDto;
import com.zy.common.model.enums.WorkNoType;
import com.zy.common.service.CommonService;
import com.zy.common.utils.NodeUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -56,6 +58,8 @@
    private WrkDetlService wrkDetlService;
    @Autowired
    private WaitPakinService waitPakinService;
    @Autowired
    private CommonService commonService;
    @Override
    @Transactional
@@ -753,6 +757,76 @@
    @Override
    @Transactional
    public void singleUnstackingComplete(SingleUnstackingCompleteParam param) {
        Long userId = 8888L;//桁架上位软件
        //判断param参数
        if (Cools.isEmpty(param.getBarcode())){
            throw new CoolException("参数:托盘码 barcode为空");
        }else if (Cools.isEmpty(param.getPalletizingNo())){
            throw new CoolException("参数:码垛位编号 palletizingNo为空");
        }else if (Cools.isEmpty(param.getMatLists()) || param.getMatLists().size()==0){
            throw new CoolException("参数:物料明细 matLists为空");
        }
        WrkMast wrkMastMatrix = wrkMastService.selectByBarcode(param.getBarcode());
        if (Cools.isEmpty(wrkMastMatrix)){
            throw new CoolException("参数:托盘码查询工作档失败:"+param.getBarcode());
        }
        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNoUnstacking(wrkMastMatrix.getWrkNo());
        ArrayList<WrkDetl> wrkDetlsNew = new ArrayList<>();
        //判断matLists参数
        for (SingleUnstackingCompleteParam.MatList matList:param.getMatLists()){
            if (Cools.isEmpty(matList.getPosition())){
                throw new CoolException("参数:码垛位置 position为空");
            }else if (Cools.isEmpty(matList.getBoxNo())){
                throw new CoolException("参数:木箱编号 boxNo为空");
            }
            boolean sign=true;
            for (WrkDetl wrkDetl:wrkDetls){
                if (wrkDetl.getSku().equals(matList.getBoxNo())){//木箱编码
                    wrkDetl.setInspect(1);
                    wrkDetlService.updateById(wrkDetl);
                    wrkDetlsNew.add(wrkDetl);
                    sign=false;
                    break;
                }
            }
            if (sign){
                throw new CoolException("参数:木箱编号 boxNo未查询到对应的工作明细!");
            }
        }
        // 生成工作号
        int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(202));
        Date now = new Date();
        // 生成工作档
        WrkMast wrkMast = new WrkMast();
        wrkMast.setWrkNo(workNo);
        wrkMast.setIoTime(now);
        wrkMast.setWrkSts(51L); // 工作状态:生成入库ID
        wrkMast.setIoType(202); // 入出库状态:202.拆垛后出库
        wrkMast.setIoPri(13D); // 优先级
        wrkMast.setSourceStaNo(param.getDevNo$());
        wrkMast.setStaNo(140); //贴标站点
        // 操作人员数据
        wrkMast.setAppeUser(userId);
        wrkMast.setAppeTime(now);
        wrkMast.setModiUser(userId);
        wrkMast.setModiTime(now);
        boolean res = wrkMastService.insert(wrkMast);
        if (!res) {
            throw new CoolException("生成工作档失败");
        }
        for (WrkDetl wrkDetl : wrkDetlsNew){
            wrkDetl.setWrkNo(wrkMast.getWrkNo());
            wrkDetl.setIoTime(wrkMast.getIoTime());
            wrkDetl.setAppeTime(now);
            wrkDetl.setModiTime(now);
            if (!wrkDetlService.insert(wrkDetl)) {
                throw new CoolException("保存工作明细失败");
            }
        }
    }
@@ -762,6 +836,7 @@
    @Override
    @Transactional
    public void singleMountUnstackingComplete(SingleMountUnstackingCompleteParam param) {
        Long userId = 8888L;//桁架上位软件
    }
src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
@@ -57,6 +57,11 @@
    }
    @Override
    public List<WrkDetl> selectByWrkNoUnstacking(Integer wrkNo) {
        return this.baseMapper.selectByWrkNoUnstacking(wrkNo);
    }
    @Override
    public boolean updateAnfme(Double anfme, Integer wrkNo, String matnr, String batch) {
        if (anfme <= 0) {
            return this.baseMapper.deleteItem(wrkNo, matnr, batch) > 0;
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -44,7 +44,7 @@
        try {
            List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
            // 修改订单状态 作业中 ===>> 已完成
            if (!Cools.isEmpty(wrkDetls)) {
            if (wrkMast.getIoType()<200 && !Cools.isEmpty(wrkDetls)) {
                Iterator<WrkDetl> iterator = wrkDetls.iterator();
                while (iterator.hasNext()) {
                    WrkDetl wrkDetl = iterator.next();
@@ -102,13 +102,15 @@
            if (!wrkMastService.deleteById(wrkMast)) {
                exceptionHandle("删除工作主档[workNo={0}]失败", wrkMast.getWrkNo());
            }
            // 保存工作明细档历史档
            if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
//                exceptionHandle("保存工作明细历史档[workNo={0}]失败", wrkMast.getWrkNo());
            }
            // 删除工作明细档
            if (!wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()))) {
//                exceptionHandle("删除工作明细档[workNo={0}]失败", wrkMast.getWrkNo());
            if ((wrkMast.getIoType()<200 || wrkMast.getWrkSts().equals(57L)) && !Cools.isEmpty(wrkDetls)){
                // 保存工作明细档历史档
                if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
                    exceptionHandle("保存工作明细历史档[workNo={0}]失败", wrkMast.getWrkNo());
                }
                // 删除工作明细档
                if (!wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()))) {
                    exceptionHandle("删除工作明细档[workNo={0}]失败", wrkMast.getWrkNo());
                }
            }
        } catch (Exception e) {
            log.error("fail", e);
src/main/java/com/zy/common/model/enums/WorkNoType.java
@@ -10,7 +10,9 @@
    PAKIN(0),
    PICK(1),
    PAKOUT(2),
    OTHER(3),
    OTHER1(3),
    OTHER2(4),
    OTHER(5),
    ;
    public Integer type;
@@ -39,6 +41,10 @@
                return PICK.type;
            case 110:
                return PAKOUT.type;
            case 201:
                return OTHER1.type;
            case 202:
                return OTHER2.type;
            default:
                break;
        }
src/main/resources/mapper/WrkDetlMapper.xml
@@ -63,6 +63,10 @@
        select * from asr_wrk_detl where 1=1 and wrk_no = #{wrkNo}
    </select>
    <select id="selectByWrkNoUnstacking" resultMap="BaseResultMap">
        select * from asr_wrk_detl where 1=1 and inspect=0 and wrk_no = #{wrkNo}
    </select>
    <delete id="deleteItem">
        delete from asr_wrk_detl
        where 1=1
src/main/resources/mapper/WrkMastMapper.xml
@@ -69,6 +69,7 @@
    <select id="selectToBeHistoryData" resultMap="BaseResultMap">
        select * from asr_wrk_mast
        where wrk_sts=5
        or wrk_sts=44 or wrk_sts=57
        or (wrk_sts=15 and ove_mk='Y' and wrk_no not in (select wrk_no from asr_bas_devp))
        or (wrk_sts=15 and dateadd(mi,15,crn_end_time) &lt;= getdate() and wrk_no not in (select wrk_no from asr_bas_devp))
        or (wrk_sts=15 and crn_end_time is null and wrk_no not in (select wrk_no from asr_bas_devp))