#
lsh
2024-07-12 ef58dbca0a0e74e0542dc77bd1ead02ab58a69d1
#
5个文件已修改
3个文件已添加
2个文件已删除
423 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/WrkDetlService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/ReportToDismantleTheStackScheduler.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/StaEscalationScheduler.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/escalationParam/StaEscalationParam.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/ReportToDismantleTheStackHandler.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/StaEscalationHandler.java 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkDetlMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkMastMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
@@ -17,4 +17,6 @@
    int updateIoTime(@Param("workNo") Integer workNo, @Param("ioTime") Date ioTime);
    List<WrkDetl> selectByWrkNo(Integer wrkNo);
}
src/main/java/com/zy/asrs/service/WrkDetlService.java
@@ -15,4 +15,6 @@
    boolean updateIoTime(Integer workNo, Date ioTime);
    List<WrkDetl> selectByWrkNo(Integer wrkNo);
}
src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
@@ -58,4 +58,8 @@
        return this.baseMapper.updateIoTime(workNo, ioTime) > 0;
    }
    @Override
    public List<WrkDetl> selectByWrkNo(Integer wrkNo) {
        return this.baseMapper.selectByWrkNo(wrkNo);
    }
}
src/main/java/com/zy/asrs/task/ReportToDismantleTheStackScheduler.java
File was deleted
src/main/java/com/zy/asrs/task/StaEscalationScheduler.java
New file
@@ -0,0 +1,36 @@
package com.zy.asrs.task;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.StaEscalationHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
 * Created by Monkey D. Luffy on 2024.07.11
 * 亳州煜星..............以下.............亳州煜星.............2楼翻转倒料信息上传处理失败
 */
@Slf4j
@Component
public class StaEscalationScheduler {
    @Autowired
    private StaEscalationHandler staEscalationHandler;
    @Scheduled(cron = "0/3 * * * * ? ")
    private void execute(){//2楼翻转倒料信息上传
        int[] staNos =new int[]{126,131,310,312};
        for (int staNo : staNos){
            try{
                ReturnT<String> result = staEscalationHandler.start(staNo);
                if (result.getCode()==200){
                    break;
                }
            }catch (Exception e){
                log.error("站点"+staNo+"2楼翻转倒料信息上传处理失败,异常信息:"+e);
            }
        }
    }
}
src/main/java/com/zy/asrs/task/escalationParam/StaEscalationParam.java
New file
@@ -0,0 +1,51 @@
package com.zy.asrs.task.escalationParam;
import com.zy.asrs.entity.WrkDetl;
import com.zy.asrs.entity.WrkMast;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/*
 *  Created by Monkey D. Luffy on 2023.07.19
 * */
@Data
public class StaEscalationParam {
    private String barcode;//    是    字符串    托盘码
    private String boxType;//    是    字符串    码垛木箱类型(同一托盘一种类型)
    private String palletizingNo;//    是    字符串    码垛木箱类型(同一托盘一种类型)  废弃
    private String createTime;//        是    字符串    创建时间
    private String uuid;//        是    字符串    时间戳
    private Integer staStart;//        是    字符串    起始站点(托盘所在站点)
    private Integer staEnd;//        是    字符串    目标站点(拆垛目的站点)
    private List<MatList> matList;//        是    列表    拆垛剩余货物信息(可以为空)
    @Data
    public static class MatList{
        private String position;//        是    字符串    木箱码垛位置
        private boolean unstackingEnd;//    尾箱标识(最后一托为true,其他为false)
        private String boxNo;//        是    字符串    木箱编号(唯一字段,出库依据,出库时按照木箱编号出库)
    }
    public StaEscalationParam(){}
    public StaEscalationParam(WrkMast wrkMast, List<WrkDetl> wrkDetlList){
        Date now = new Date();
        this.barcode=wrkMast.getBarcode();
        this.boxType=wrkDetlList.get(0).getBrand();
        createTime=now.toString();
        uuid=String.valueOf(now.getTime());
        List<MatList> matLists=new ArrayList<>();
        for (WrkDetl wrkDetl:wrkDetlList){
            MatList matList = new MatList();
            matList.setBoxNo(wrkDetl.getBatch());
            matList.setPosition(wrkDetl.getOrigin());
            matList.setUnstackingEnd(false);
            matLists.add(matList);
        }
        this.matList = matLists;
    }
}
src/main/java/com/zy/asrs/task/handler/ReportToDismantleTheStackHandler.java
File was deleted
src/main/java/com/zy/asrs/task/handler/StaEscalationHandler.java
New file
@@ -0,0 +1,157 @@
package com.zy.asrs.task.handler;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.WrkDetl;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.escalationParam.StaEscalationParam;
import com.zy.common.utils.HttpHandler;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.thread.SiemensDevpThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
 * Created by Monkey D. Luffy on 2024.07.11
 * 亳州煜星..............以下.............亳州煜星.............2楼翻转倒料信息上传处理失败
 */
@Slf4j
@Service
@Transactional
public class StaEscalationHandler extends AbstractHandler<String> {
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private WrkDetlService wrkDetlService;
    @Autowired
    private StaDescService staDescService;
    @Autowired
    private ApiLogService apiLogService;
    @Autowired
    private BasDevpService basDevpService;
//    @Value("${srHangJia.url}")
    private String erpUrl = "10.10.11.100:8580";
//    @Value("${srHangJia.reportOutPath}")
    private String reportOutPath = "mes/wms-service/inStorageEndReport";
    public ReturnT<String> start(int staNo) {
        try{
            Date now = new Date();
            BasDevp basDevp = basDevpService.selectById(staNo);
            if (Cools.isEmpty(basDevp) || basDevp.getReportSign()==1){
                return FAIL;
            }
            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
            StaProtocol staProtocol = devpThread.getStation().get(staNo);
            if (staProtocol == null) {
                return FAIL;
            } else {
                staProtocol = staProtocol.clone();
            }
            if (!Cools.isEmpty(basDevp) && basDevp.getAutoing().equals("Y") && basDevp.getWrkNo()!=0){ //上传前工作号跟电控约定为9992中控(桁架):码垛完成下发入库信息(你可以自定义)
                if (staProtocol.isAutoing() && staProtocol.getWorkNo()!=0){
                    WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", staProtocol.getWorkNo()).ne("sheet_no","2"));
                    if (Cools.isEmpty(wrkMast)) return FAIL;
                    List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
                    if (Cools.isEmpty(wrkDetls) || wrkDetls.isEmpty()){
                        return FAIL;
                    }
                    log.error("2楼翻转倒料信息上传时,站点状态:"+JSON.toJSONString(staProtocol));
                    log.error("2楼翻转倒料信息上传时,工作号:"+JSON.toJSONString(wrkMast));
                    StaEscalationParam staEscalationParam = new StaEscalationParam(wrkMast,wrkDetls);
                    staEscalationParam.setStaStart(staNo);
                    ReturnT<String> result = postMesData(reportOutPath,staEscalationParam);
                    if (result.getCode()==200){
                        wrkMast.setSheetNo("2");
                        wrkMastService.updateById(wrkMast);
                        basDevp.setReportSign(1);
                        basDevpService.updateById(basDevp);
                        return SUCCESS;
                    }else {
                        log.error("拆垛信息上传失败");
                    }
                }
            }
        }catch (Exception e){
            log.error("异常!!!"+e);
            return FAIL;
        }
        return FAIL;
    }
    private ReturnT<String> postMesData(String erpPath,Object combParam){
        if(combParam != null){
            String response = "";
            boolean success = false;
            try {
                response = new HttpHandler.Builder()
                        .setUri(erpUrl)
                        .setPath(erpPath)
                        .setJson(JSON.toJSONString(combParam))
                        .build()
                        .doPost();
                JSONObject jsonObject = JSON.parseObject(response);
                if (jsonObject.getInteger("Code")==200) {
                    success = true;
                } else {
                    log.error("2楼翻转倒料信息上传请求接口失败!!!url:{};request:{};response:{}"+erpUrl+erpPath, JSON.toJSONString(combParam), response);
                    throw new CoolException("上报erp系统失败");
                }
            } catch (Exception e) {
                log.error("fail", e);
//                      TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                return FAIL.setMsg(e.getMessage());
            } finally {
                try {
                    // 保存接口日志
                    apiLogService.save(
                            "上报MES系统",
                            erpUrl + erpPath,
                            null,
                            erpUrl,
                            JSON.toJSONString(combParam),
                            response,
                            success
                    );
                } catch (Exception e) { log.error("", e); }
            }
        }
        return SUCCESS;
    }
    public Integer getStaOther(Integer staNo){
        switch (staNo){
            case 118:
                return 119;
            case 119:
                return 118;
            case 120:
                return 121;
            case 121:
                return 120;
            default:
                return 0;
        }
    }
}
src/main/resources/mapper/WrkDetlMapper.xml
@@ -37,4 +37,8 @@
        and wrk_no = #{workNo}
    </update>
    <select id="selectByWrkNo" resultMap="BaseResultMap">
        select * from asr_wrk_detl where 1=1 and wrk_no = #{wrkNo}
    </select>
</mapper>
src/main/resources/mapper/WrkMastMapper.xml
@@ -92,7 +92,7 @@
    </select>
    <select id="selectPakInStep111" resultMap="BaseResultMap">
        select top 1 * from asr_wrk_mast where source_sta_no=#{sourceStaNo} and barcode=#{barcode} and ((io_type=202 and wrk_sts=51) or (io_type=1 and wrk_sts=2)) order by io_pri desc,io_time,wrk_no ASC
        select top 1 * from asr_wrk_mast where source_sta_no=#{sourceStaNo} and barcode=#{barcode} and ((io_type = 202 and wrk_sts=51) or (io_type=1 and wrk_sts=2)) order by io_pri desc,io_time,wrk_no ASC
    </select>
    <select id="selectPakInStep11" resultMap="BaseResultMap">