自动化立体仓库 - WMS系统
Junjie
2024-01-22 dd78a469b3167d5c0251427dcaab82f81bb3f3a5
#检料再入库逻辑修改,定时器检测是否存在在库无资料数据
7个文件已修改
1个文件已添加
126 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/mapper/LocMastMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/LocMastService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/CheckLocDetlExistScheduler.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/WcsController.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/LocDetlMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/LocMastMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -47,4 +47,6 @@
    Integer updateLocType2ByRBL(Integer locType2, Integer startRow, Integer endRow, Integer startBay, Integer endBay, Integer startLev, Integer endLev);
    List<LocMast> selectLocDetlNotExist();
}
src/main/java/com/zy/asrs/service/LocMastService.java
@@ -67,4 +67,6 @@
    Integer updateLocType2ByRBL(Integer locType2, Integer startRow, Integer endRow, Integer startBay, Integer endBay, Integer startLev, Integer endLev);
    void updateByLocNo(LocMast locMast);
    List<LocMast> selectLocDetlNotExist();
}
src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -207,7 +207,11 @@
    }
    public void updateByLocNo(LocMast locMast){
        this.update(locMast,new EntityWrapper<LocMast>().eq("loc_no",locMast.getLocNo()));
    }
    @Override
    public List<LocMast> selectLocDetlNotExist() {
        return this.baseMapper.selectLocDetlNotExist();
    }
}
src/main/java/com/zy/asrs/task/CheckLocDetlExistScheduler.java
New file
@@ -0,0 +1,74 @@
package com.zy.asrs.task;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.service.LocMastService;
import com.zy.common.utils.HttpHandler;
import com.zy.system.entity.Config;
import com.zy.system.service.ConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
/**
 * 检测库位状态为F但无库存数据
 * 每分钟扫描一次
 */
@Component
public class CheckLocDetlExistScheduler {
    @Autowired
    private LocMastService locMastService;
    @Autowired
    private ConfigService configService;
    @Scheduled(cron = "*/1 * * * * ? ")
    private void execute(){
        List<LocMast> locMasts = locMastService.selectLocDetlNotExist();
        if (locMasts.isEmpty()) {
            return;
        }
        Config config = configService.selectOne(new EntityWrapper<Config>().eq("code","dingdingReportUrl"));
        if (config == null) {
            return;
        }
        if (config.getStatus() == 0) {
            return;//通知禁用
        }
        StringBuffer buffer = new StringBuffer();
        buffer.append("【通知】三凯四向库-库存资料异常\n");//消息标题
        for (LocMast locMast : locMasts) {
            buffer.append(locMast.getLocNo()).append("\n");
        }
        try {
            HashMap<String, Object> param = new HashMap<>();
            HashMap<String, Object> data = new HashMap<>();
            data.put("content", buffer.toString());
            param.put("msgtype", "text");
            param.put("text", data);
            String response = new HttpHandler.Builder()
                    .setUri(config.getValue())
                    .setJson(JSON.toJSONString(param))
                    .setHttps(true)
                    .build()
                    .doPost();
            JSONObject jsonObject = JSON.parseObject(response);
            if (jsonObject.get("errmsg").equals("ok")) {
                return;//发送成功
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -3,6 +3,7 @@
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.WrkDetl;
@@ -165,6 +166,19 @@
                        List<LocDetl> locDetls1 = locDetlService.selectByLocNo(locMast.getLocNo());
                        log.info("工作号:" + wrkMast.getWrkNo() + ",托盘码:" + wrkMast.getBarcode() + ",修改库位状态Q=>F成功,库存明细:" + JSON.toJSONString(locDetls1));
                    }
                    //清空源库位数据 P ====>> O
                    LocMast locMast1 = locMastService.selectByLoc(wrkMast.getSourceLocNo());
                    if (locMast1.getLocSts().equals("P")) {
                        locMast1.setLocSts("O"); // 清空库位
                        locMast1.setModiTime(new Date());
                        if (!locMastService.updateById(locMast1)) {
                            throw new CoolException("改变库位状态失败");
                        }
                    } else {
                        throw new CoolException("源库位状态异常");
                    }
                    break;
                // 并板入库
                case 54:
src/main/java/com/zy/common/web/WcsController.java
@@ -497,17 +497,17 @@
            }
        }
        //清空源库位数据
//        //清空源库位数据
        LocMast locMast1 = locMastService.selectByLoc(wrkMast.getSourceLocNo());
        if (locMast1.getLocSts().equals("P")) {
            locMast1.setLocSts("O"); // 清空库位
            locMast1.setModiTime(new Date());
            if (!locMastService.updateById(locMast1)) {
                throw new CoolException("改变库位状态失败");
            }
        } else {
            throw new CoolException("源库位状态异常");
        }
//        if (locMast1.getLocSts().equals("P")) {
//            locMast1.setLocSts("O"); // 清空库位
//            locMast1.setModiTime(new Date());
//            if (!locMastService.updateById(locMast1)) {
//                throw new CoolException("改变库位状态失败");
//            }
//        } else {
//            throw new CoolException("源库位状态异常");
//        }
        // 保存工作主档历史档
        if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
src/main/resources/mapper/LocDetlMapper.xml
@@ -64,6 +64,7 @@
        where 1=1
        and loc_no = #{locNo}
        and matnr = #{matnr}
        and (batch IS NULL OR batch = '')
        <choose>
            <when test="suppCode != null and suppCode != ''">
                and supp_code = #{suppCode}
src/main/resources/mapper/LocMastMapper.xml
@@ -155,4 +155,11 @@
        and (bay1 &gt;= #{startBay} and bay1 &lt;= #{endBay})
        and (lev1 &gt;= #{startLev} and lev1 &lt;= #{endLev})
    </select>
    <select id="selectLocDetlNotExist" resultMap="BaseResultMap">
        select * from asr_loc_mast lm
        left join asr_loc_detl ld
        on lm.loc_no = ld.loc_no
        where ld.matnr is null and lm.loc_sts = 'F'
    </select>
</mapper>