src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/WrkDetlService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/ReportToDismantleTheStackScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/StaEscalationScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/escalationParam/StaEscalationParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/handler/ReportToDismantleTheStackHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/handler/StaEscalationHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/WrkDetlMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/WrkMastMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | 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">