#
lsh
2024-06-22 5a0f4ce17e31d84068bdb2f62d5bb7ef27f87d0f
#
12个文件已修改
240 ■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/BasJar.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/BasJarMast.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/BasJarMastService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/WrkMastExecuteService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/JarModeType.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BasJarMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BasJarMastMapper.xml 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/BasJar.java
@@ -119,6 +119,40 @@
    @TableField("right_out_enable")
    private String rightOutEnable;
    /**
     * 入罐小车
     */
    @ApiModelProperty(value= "入罐小车")
    @TableField("enter_ste_no")
    private Integer enterSteNo;
    /**
     * 出罐小车
     */
    @ApiModelProperty(value= "出罐小车")
    @TableField("out_ste_id")
    private Integer outSteId;
    /**
     * 入罐RGV
     */
    @ApiModelProperty(value= "入罐RGV")
    @TableField("enter_rgv_id")
    private Integer enterRgvId;
    /**
     * 出罐RGV
     */
    @ApiModelProperty(value= "出罐RGV")
    @TableField("out_rgv_id")
    private Integer outRgvId;
    /**
     * 冷却
     */
    @ApiModelProperty(value= "冷却")
    private Integer burial;
    public BasJar() {}
    public BasJar(Integer jarNo,Integer region,Integer jarCode,Integer staNo,Integer jarStatus,Integer jarCount,Integer jarErr,String leftDoor,String rightDoor,String leftInEnable,String leftOutEnable,String autoing,Integer jarMode,String rightInEnable,String rightOutEnable) {
src/main/java/com/zy/asrs/entity/BasJarMast.java
@@ -146,9 +146,15 @@
    @TableField("jar_loc_digit")
    private Integer jarLocDigit;
    /**
     * 冷却
     */
    @ApiModelProperty(value= "冷却")
    private Integer burial;
    public BasJarMast() {}
    public BasJarMast(Long wrkNo,Integer enterStaNo,Integer outStaNo,Integer jarEnterStaNo,Integer jarOutStaNo,Integer jarId,Integer jarRegin,Integer status,Integer enterSteNo,Integer outSteId,Integer enterRgvId,Integer outRgvId,Date ioTime,Date modiTime,Date appeTime) {
    public BasJarMast(Long wrkNo,Integer enterStaNo,Integer outStaNo,Integer jarEnterStaNo,Integer jarOutStaNo,Integer jarId,Integer jarRegin,Integer status,Integer enterSteNo,Integer outSteId,Integer enterRgvId,Integer outRgvId,Date ioTime,Date modiTime,Date appeTime,Integer jarLocDigit,Integer burial) {
        this.wrkNo = wrkNo;
        this.enterStaNo = enterStaNo;
        this.outStaNo = outStaNo;
@@ -164,8 +170,32 @@
        this.ioTime = ioTime;
        this.modiTime = modiTime;
        this.appeTime = appeTime;
        this.jarLocDigit = jarLocDigit;
        this.burial = burial;
    }
    public BasJarMast(BasJar jar,WrkMast wrkMast,Integer jarLocDigit) {
        Date now = new Date();
        this.wrkNo = wrkMast.getWrkNo().longValue();
        this.enterStaNo = wrkMast.getSourceStaNo();
        this.outStaNo = wrkMast.getStaNo();
//        this.jarEnterStaNo = jarEnterStaNo;
        this.jarOutStaNo = jar.getStaNo();
        this.jarId = jar.getJarNo();
        this.jarRegin = jar.getRegion();
        this.status = 0;
        this.enterSteNo = jar.getEnterSteNo();
        this.outSteId = jar.getOutSteId();
        this.enterRgvId = jar.getEnterRgvId();;
        this.outRgvId = jar.getOutRgvId();;
        this.ioTime = wrkMast.getIoTime();
        this.modiTime = now;
        this.appeTime = now;
        this.jarLocDigit = jarLocDigit;
        this.burial = jar.getBurial();
    }
//    BasJarMast basJarMast = new BasJarMast(
//            null,    // 工作号[非空]
//            null,    // 入库源站点[非空]
src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java
@@ -12,6 +12,8 @@
@Repository
public interface BasJarMastMapper extends BaseMapper<BasJarMast> {
    BasJarMast getJarMastByWrkNo(@Param("wrkNo") Long wrkNo);
    List<BasJarMast> getJarMastByJarId(@Param("jarId") Integer jarId);
    BasJarMast getJarMastByJarIdMax(@Param("jarId") Integer jarId);
src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java
@@ -10,6 +10,8 @@
@Repository
public interface WrkMastExecuteMapper extends BaseMapper<WrkMastExecute> {
    WrkMastExecute getWrkMastByWrkNo(@Param("wrkNo") Long wrkNo);
    Integer getWrkMastByJarIdCount(@Param("jarId") Integer jarId);
}
src/main/java/com/zy/asrs/service/BasJarMastService.java
@@ -7,6 +7,8 @@
public interface BasJarMastService extends IService<BasJarMast> {
    BasJarMast getJarMastByWrkNo(Long wrkNo);
    List<BasJarMast> getJarMastByJarId(Integer jarId);
    BasJarMast getJarMastByJarIdMax(Integer jarId);
src/main/java/com/zy/asrs/service/WrkMastExecuteService.java
@@ -5,6 +5,8 @@
public interface WrkMastExecuteService extends IService<WrkMastExecute> {
    WrkMastExecute getWrkMastByWrkNo(Long wrkNo);
    Integer getWrkMastByJarIdCount(Integer jarId);
}
src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java
@@ -11,6 +11,14 @@
@Service("basJarMastService")
public class BasJarMastServiceImpl extends ServiceImpl<BasJarMastMapper, BasJarMast> implements BasJarMastService {
    /*
     * 获取BasJarMast
     * */
    @Override
    public BasJarMast getJarMastByWrkNo(Long wrkNo) {
        return this.baseMapper.getJarMastByWrkNo(wrkNo);
    }
    @Override
    public List<BasJarMast> getJarMastByJarId(Integer jarId) {
        return this.baseMapper.getJarMastByJarId(jarId);
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -111,9 +111,14 @@
    private BasJarMastService basJarMastService;
    @Autowired
    private WrkMastExecuteService wrkMastExecuteService;
    @Autowired
    private BasJarService basJarService;
    @Autowired
    private BasJarMapper basJarMapper;
    @Value("${wms.url}")
    private String wmsUrl;
    /**
@@ -4413,42 +4418,63 @@
     */
    public synchronized void jarGenerateWrkMastSta() {
        for (JarSlave jarSlave : slaveProperties.getJar()) {
            for(JarSlave.StaStn staStn : jarSlave.getJarInSta()){
                // 获取硫化罐入库站信息
                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, staStn.getDevpPlcId());
                StaProtocol staProtocol = devpThread.getStation().get(staStn.getStaNo());
                if (staProtocol == null) {
                    continue;
                } else {
                    staProtocol = staProtocol.clone();
                }
                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo()!=0){
                    try{
                        if (basJarMastService.selectJarMastOperation(jarSlave.getId(),1)!=0){
                            break;
                        }
                        if (wrkMastExecuteService.getWrkMastByJarIdCount(jarSlave.getId())!=0){
                            break;
                        }
                        if (basJarMastService.getJarMastByJarIdCount(jarSlave.getId())>=7){
                            continue;
                        }
                        BasJarMast jarMastByJarIdMax = basJarMastService.getJarMastByJarIdMax(jarSlave.getId());
                        if (!Cools.isEmpty(jarMastByJarIdMax) && jarMastByJarIdMax.getJarLocDigit()==7){
                            continue;
                        }
                        WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
                        if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=2){
                            continue;
                        }
                        if (jarGenerateWrkMastStaExecute(jarSlave,wrkMast)){
                            return;
                        };
                    }catch (Exception e){
                        log.error(jarSlave.getId()+"号小车复位线程报错!"+e);
            try{
                for(JarSlave.StaStn staStn : jarSlave.getJarInSta()){
                    // 获取硫化罐入库站信息
                    DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, staStn.getDevpPlcId());
                    StaProtocol staProtocol = devpThread.getStation().get(staStn.getStaNo());
                    if (staProtocol == null) {
                        continue;
                    } else {
                        staProtocol = staProtocol.clone();
                    }
                    break;
                    if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo()!=0){
                        try{
                            if (basJarMastService.selectJarMastOperation(jarSlave.getId(),1)!=0){
                                break;
                            }
                            if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),1)!=0){
//                            log.error("{}号小车",jarSlave.getJarOtherId());
                                break;
                            }
                            if (wrkMastExecuteService.getWrkMastByJarIdCount(jarSlave.getId())!=0){
                                break;
                            }
                            if (basJarMastService.getJarMastByJarIdCount(jarSlave.getId())>=7){
                                break;
                            }
                            BasJarMast jarMastByJarIdMax = basJarMastService.getJarMastByJarIdMax(jarSlave.getId());
                            int jarLocDigit = 0;
                            if (Cools.isEmpty(jarMastByJarIdMax)){
                                jarLocDigit = 1;
                            } else if (jarMastByJarIdMax.getJarLocDigit()<7){
                                jarLocDigit = jarMastByJarIdMax.getJarLocDigit()+1;
                            } else {
                                continue;
                            }
                            WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
                            if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=2){
                                continue;
                            }
                            BasJarMast basJarMast = basJarMastService.getJarMastByWrkNo(wrkMast.getWrkNo().longValue());
                            if (!Cools.isEmpty(basJarMast)){
                                continue;
                            }
                            WrkMastExecute wrkMastExecute = wrkMastExecuteService.getWrkMastByWrkNo(wrkMast.getWrkNo().longValue());
                            if (!Cools.isEmpty(wrkMastExecute)){
                                continue;
                            }
                            if (jarGenerateWrkMastStaExecute(jarSlave,wrkMast,jarLocDigit,staStn.getStaNo())){
                                return;
                            }
                        }catch (Exception e){
                            log.error(jarSlave.getId()+"号小车复位线程报错!"+e);
                        }
                        break;
                    }
                }
            } catch (Exception e){
                log.error("{}号硫化罐Jar任务创建异常,异常原因={}",jarSlave.getId(),e.getMessage());
            }
        }
    }
@@ -4456,7 +4482,7 @@
    /**
     *  Jar任务创建  执行
     */
    public synchronized boolean jarGenerateWrkMastStaExecute(JarSlave jarSlave,WrkMast wrkMast) {
    public synchronized boolean jarGenerateWrkMastStaExecute(JarSlave jarSlave,WrkMast wrkMast,Integer jarLocDigit,Integer staNo) {
        try{
            // 获取堆垛机信息
            JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
@@ -4477,13 +4503,29 @@
                return false;
            }
            //自动、空闲、右门关闭、   Other左门关闭
            if (jarProtocol.isAutoing() && !jarProtocol.isRightDoor() && jarProtocol.jarErr==0 && !jarOtherProtocol.isLeftDoor()){
            BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
            if (Cools.isEmpty(basJar)){
                log.error("{}号硫化罐查询设备档案无信息!!!",jarProtocol.getJarNo());
                return false;
            }
            if (basJar.getJarMode()!=1 && basJar.getJarMode()!=0){
                return false;
            }
            //自动、空闲、右门关闭、   Other左门关闭
            if (jarProtocol.isAutoing() && !jarProtocol.isRightDoor() && jarProtocol.jarErr==0 && jarProtocol.leftDoorOpen==0  && jarProtocol.leftDoorClose==0
                    && !jarOtherProtocol.isLeftDoor() && jarOtherProtocol.leftDoorOpen==0  && jarOtherProtocol.leftDoorClose==0){
                if (jarProtocol.statusType == JarStatusType.IDLE || jarProtocol.statusType == JarStatusType.MOVING){
                    BasJarMast basJarMast = new BasJarMast(basJar, wrkMast, jarLocDigit);
                    basJarMast.setJarEnterStaNo(staNo);//入硫化罐站点
                    basJarMastService.insert(basJarMast);
                    return true;
                }
            }
        } catch (Exception e){
//            log.error("堆垛机工位二完成等待确认异常,堆垛机号={},异常信息={},工位号={}",crn.getId(),e.getMessage(),2);
            log.error("{}号硫化罐生成BasJarMast初始任务失败,异常原因={},工作号={},硫化库位={}",jarSlave.getId(),e.getMessage(),wrkMast,jarLocDigit);
        }
        return false;
    }
src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java
@@ -8,6 +8,12 @@
@Service("wrkMastExecuteService")
public class WrkMastExecuteServiceImpl extends ServiceImpl<WrkMastExecuteMapper, WrkMastExecute> implements WrkMastExecuteService {
    @Override
    public WrkMastExecute getWrkMastByWrkNo(Long wrkNo) {
        return this.baseMapper.getWrkMastByWrkNo(wrkNo);
    }
    @Override
    public Integer getWrkMastByJarIdCount(Integer jarId) {
        return this.baseMapper.getWrkMastByJarIdCount(jarId);
src/main/java/com/zy/core/enums/JarModeType.java
@@ -4,10 +4,11 @@
    NONE(-1, "离线"),
    STOP(0, "离线"),
    HAND(1, "手动"),
    HALF_AUTO(2, "自动"),
    AUTO(3, "其他"),
    AUTO2(100, "其它"),
//    HAND(1, "手动"),
    HALF_AUTO(1, "手动"),
    AUTO(2, "自动"),
    OTHER(3, "其他"),
    OTHER2(100, "其它"),
    ;
    public Integer id;
src/main/resources/mapper/BasJarMapper.xml
@@ -19,6 +19,11 @@
        <result column="jar_mode" property="jarMode" />
        <result column="right_in_enable" property="rightInEnable" />
        <result column="right_out_enable" property="rightOutEnable" />
        <result column="enter_ste_no" property="enterSteNo" />
        <result column="out_ste_id" property="outSteId" />
        <result column="enter_rgv_id" property="enterRgvId" />
        <result column="out_rgv_id" property="outRgvId" />
        <result column="burial" property="burial" />
    </resultMap>
src/main/resources/mapper/BasJarMastMapper.xml
@@ -21,14 +21,22 @@
        <result column="modi_time" property="modiTime" />
        <result column="appe_time" property="appeTime" />
        <result column="jar_loc_digit" property="jarLocDigit" />
        <result column="burial" property="burial" />
    </resultMap>
    <select id="getJarMastByWrkNo" resultMap="BaseResultMap">
        select top 1 * from asr_bas_jar_mast
        where 1=1
          and wrk_no = #{wrkNo}
        order by jar_loc_digit desc
    </select>
    <select id="getJarMastByJarId" resultMap="BaseResultMap">
        select * from asr_bas_jar_mast
        where 1=1
        and jar_id = #{jarId}
        order by jar_loc_digit
        order by jar_loc_digit desc
    </select>
    <select id="getJarMastByJarIdMax" resultMap="BaseResultMap">
@@ -54,29 +62,29 @@
    <select id="selectJarMastOperation1" resultType="Integer">
        select count(1) from asr_bas_jar_mast
        where 1=1
        and jar_id = #{jarId}
        and wrk_sts
          and jar_id = #{jarId}
          and wrk_sts in (0,1,2,3)
    </select>
    <select id="selectJarMastOperation2" resultType="Integer">
        select count(1) from asr_bas_jar_mast
        where 1=1
          and jar_id = #{jarId}
          and wrk_sts
          and wrk_sts in (4,5,6,7)
    </select>
    <select id="selectJarMastOperation3" resultType="Integer">
        select count(1) from asr_bas_jar_mast
        where 1=1
          and jar_id = #{jarId}
          and wrk_sts
          and wrk_sts in (0,1,2,3)
    </select>
    <select id="selectJarMastOperation4" resultType="Integer">
        select count(1) from asr_bas_jar_mast
        where 1=1
          and jar_id = #{jarId}
          and wrk_sts
          and wrk_sts in (0,1,2,3)
    </select>
</mapper>