src/main/java/com/zy/asrs/entity/WrkDetlSingle.java
@@ -3,6 +3,8 @@ import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableField; import java.text.SimpleDateFormat; import java.util.Date; import com.zy.common.utils.Synchro; import org.springframework.format.annotation.DateTimeFormat; import com.core.common.SpringUtils; import com.zy.system.service.UserService; @@ -459,5 +461,9 @@ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime); } public void sync(Object source) { Synchro.Copy(source, this); } } src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -67,7 +67,7 @@ /** * 徐工汉云拆垛标记 0: 未拆 1: 已拆 2:已处理可下一步(转历史档) * 徐工汉云拆垛标记 0: 初始 1、未拆已上报 2: 已拆 3:已处理可下一步(转历史档) */ @ApiModelProperty(value= "") @TableField("sheet_no") src/main/java/com/zy/asrs/entity/WrkMastSta.java
@@ -86,9 +86,9 @@ private Date updateTime; /** * 类型 0:非空 1:空板 * 类型 1:非空 2:空板 */ @ApiModelProperty(value = "类型 0:非空 1:空板") @ApiModelProperty(value = "类型 1:非空 2:空板") private Integer type; /** src/main/java/com/zy/asrs/entity/WrkMastStaLog.java
@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotations.TableField; import java.text.SimpleDateFormat; import java.util.Date; import com.zy.common.utils.Synchro; import org.springframework.format.annotation.DateTimeFormat; import java.text.SimpleDateFormat; import java.util.Date; @@ -174,5 +176,8 @@ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.bignTime); } public void sync(Object source) { Synchro.Copy(source, this); } } src/main/java/com/zy/asrs/entity/param/SingleMountUnstackingCompleteParam.java
@@ -1,7 +1,11 @@ package com.zy.asrs.entity.param; 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 @@ -9,14 +13,37 @@ @Data public class SingleMountUnstackingCompleteParam { private String barcode;// 是 字符串 托盘码 private String palletizingNo;// 是 字符串 拆垛位编号 private String boxType;// 是 字符串 码垛木箱类型(同一托盘一种类型) private String palletizingNo;// 是 字符串 码垛木箱类型(同一托盘一种类型) private String createTime;// 是 字符串 创建时间 private String uuid;// 是 字符串 时间戳 private Integer staStart;// 是 字符串 起始站点(托盘所在站点) private Integer staEnd;// 是 字符串 目标站点(拆垛目的站点) private List<MatList> matLists;// 是 列表 拆垛剩余货物信息(可以为空) @Data public static class MatList{ private String position;// 是 字符串 木箱码垛位置 private boolean unstackingEnd;// 尾箱标识(最后一托为true,其他为false) private String boxNo;// 是 字符串 木箱编号(唯一字段,出库依据,出库时按照木箱编号出库) } public SingleMountUnstackingCompleteParam(){} public SingleMountUnstackingCompleteParam(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.matLists = matLists; } } src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -891,9 +891,10 @@ //判断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.getPalletizingNo())){ // throw new CoolException("参数:码垛位编号 palletizingNo为空"); // } WrkMast wrkMastMatrix = wrkMastService.selectByBarcode(param.getBarcode()); if (Cools.isEmpty(wrkMastMatrix)){ throw new CoolException("参数:托盘码查询工作档失败:"+param.getBarcode()); src/main/java/com/zy/asrs/task/ReportToDismantleTheStackScheduler.java
@@ -1,7 +1,7 @@ package com.zy.asrs.task; import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.task.handler.BarcodeUploadHandler; import com.zy.asrs.task.handler.ReportToDismantleTheStackHandler; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -14,13 +14,13 @@ public class ReportToDismantleTheStackScheduler { @Autowired private BarcodeUploadHandler barcodeUploadHandler; private ReportToDismantleTheStackHandler reportToDismantleTheStackHandler; @Scheduled(cron = "0/3 * * * * ? ") private void execute(){//条码上传中控 int[] staNos =new int[]{216,220}; private void execute(){//拆垛信息上传 int[] staNos =new int[]{118,119,120,121}; for (int staNo : staNos){ ReturnT<String> result = barcodeUploadHandler.start(staNo); ReturnT<String> result = reportToDismantleTheStackHandler.start(staNo); if (result.getCode()==200){ break; } src/main/java/com/zy/asrs/task/ReportToOKScheduler.java
New file @@ -0,0 +1,30 @@ package com.zy.asrs.task; import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.task.handler.ReportToDismantleTheStackHandler; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; /** * Created by Monkey D. Luffy on 2023.07.25 * 徐工汉云..............以下.............上饶江铜.............拆垛完成信息处理 */ @Component public class ReportToOKScheduler { @Autowired private ReportToDismantleTheStackHandler reportToDismantleTheStackHandler; // @Scheduled(cron = "0/3 * * * * ? ") private void execute(){//拆垛完成信息处理 int[] staNos =new int[]{118,119,120,121}; for (int staNo : staNos){ ReturnT<String> result = reportToDismantleTheStackHandler.start(staNo); if (result.getCode()==200){ break; } } } } src/main/java/com/zy/asrs/task/WorkLogScheduler.java
@@ -1,7 +1,11 @@ package com.zy.asrs.task; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.entity.WrkMastSta; import com.zy.asrs.service.WrkMastService; import com.zy.asrs.service.WrkMastStaService; import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.task.handler.WorkLogHandler; import lombok.extern.slf4j.Slf4j; @@ -22,6 +26,8 @@ private WorkLogHandler workLogHandler; @Autowired private WrkMastService wrkMastService; @Autowired private WrkMastStaService wrkMastStaService; @Scheduled(cron = "0/3 * * * * ? ") private void execute(){ @@ -37,4 +43,18 @@ } } @Scheduled(cron = "0/3 * * * * ? ") private void execute2(){ List<WrkMastSta> wrkMastStaList = wrkMastStaService.selectList(new EntityWrapper<WrkMastSta>().eq("wrk_sts", 3)); if (Cools.isEmpty(wrkMastStaList) || wrkMastStaList.size()==0) { return; } for (WrkMastSta wrkMastSta : wrkMastStaList) { ReturnT<String> result = workLogHandler.start(wrkMastSta); if (!result.isSuccess()) { log.error("工作档[workNo={}]历史档处理失败", wrkMastSta.getWrkNo()); } } } } src/main/java/com/zy/asrs/task/handler/ReportToDismantleTheStackHandler.java
@@ -5,8 +5,8 @@ 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.WaitPakin; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.SingleMountUnstackingCompleteParam; import com.zy.asrs.service.*; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.core.ReturnT; @@ -18,6 +18,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; /** * Created by Monkey D. Luffy on 2023.07.25 * 徐工汉云..............以下.............上饶江铜.............自动补空板 @@ -28,11 +30,11 @@ public class ReportToDismantleTheStackHandler extends AbstractHandler<String> { @Autowired private WaitPakinService waitPakinService; private WrkMastService wrkMastService; @Autowired private LocMastService locMastService; private WrkDetlSingleService wrkDetlSingleService; @Autowired private CommonService commonService; private WrkDetlService wrkDetlService; @Autowired private StaDescService staDescService; @Autowired @@ -48,17 +50,42 @@ public ReturnT<String> start(int staNo) { try { BasDevp basDevp = basDevpService.selectById(staNo); if (!Cools.isEmpty(basDevp) && !Cools.isEmpty(basDevp.getBarcode()) && basDevp.getWrkNo()==9992){ //上传前工作号跟电控约定为9992(你可以自定义) WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("zpallet", basDevp.getBarcode())); if (Cools.isEmpty(waitPakin)){ ReturnT<String> result = null; result = postMesData(barcodeUploadpath,basDevp); System.out.println(result); if (result.getCode()==200){ return SUCCESS; }else { log.error("条码上传中控失败"); if (!Cools.isEmpty(basDevp) && basDevp.getAutoing().equals("Y") && basDevp.getWrkNo()!=0){ //上传前工作号跟电控约定为9992(你可以自定义) WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo())); if (Cools.isEmpty(wrkMast) || !wrkMast.getSheetNo().equals("0")){ return SUCCESS; } List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); if (Cools.isEmpty(wrkDetls) || wrkDetls.size()==0){ return SUCCESS; } SingleMountUnstackingCompleteParam singleMountUnstackingCompleteParam = new SingleMountUnstackingCompleteParam(wrkMast,wrkDetls); singleMountUnstackingCompleteParam.setStaStart(staNo); singleMountUnstackingCompleteParam.setStaEnd(staNo>119? 135:133); ReturnT<String> result = null; result = postMesData(barcodeUploadpath,singleMountUnstackingCompleteParam); System.out.println(result); if (true){ for (WrkDetl wrkDetl:wrkDetls){ WrkDetlSingle wrkDetlSingle = new WrkDetlSingle(); wrkDetlSingle.sync(wrkDetl); wrkDetlSingleService.insert(wrkDetlSingle); } wrkMast.setSheetNo("1"); wrkMastService.updateById(wrkMast); return SUCCESS; } if (result.getCode()==200){ for (WrkDetl wrkDetl:wrkDetls){ WrkDetlSingle wrkDetlSingle = new WrkDetlSingle(); wrkDetlSingle.sync(wrkDetl); wrkDetlSingleService.insert(wrkDetlSingle); } wrkMast.setSheetNo("1"); wrkMastService.updateById(wrkMast); return SUCCESS; }else { log.error("条码上传中控失败"); } } }catch (Exception e){ @@ -94,7 +121,7 @@ try { // 保存接口日志 apiLogService.save( "上报erp系统", "上报桁架系统", erpUrl + erpPath, null, erpUrl, src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -2,9 +2,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.zy.asrs.entity.WaitPakin; import com.zy.asrs.entity.WrkDetl; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.entity.*; import com.zy.asrs.service.*; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.core.ReturnT; @@ -38,6 +36,10 @@ private WaitPakinLogService waitPakinLogService; @Autowired private OrderService orderService; @Autowired private WrkMastStaService wrkMastStaService; @Autowired private WrkMastStaLogService wrkMastStaLogService; @Transactional public ReturnT<String> start(WrkMast wrkMast) { @@ -121,4 +123,26 @@ return SUCCESS; } @Transactional public ReturnT<String> start(WrkMastSta wrkMastSta) { try { WrkMastStaLog wrkMastStaLog = new WrkMastStaLog(); wrkMastStaLog.sync(wrkMastSta); // 保存工作主档历史档 if (!wrkMastStaLogService.insert(wrkMastStaLog)) { exceptionHandle("保存工作历史档[workNo={0}]失败", wrkMastSta.getWrkNo()); } // 删除工作主档 if (!wrkMastStaService.deleteById(wrkMastSta)) { exceptionHandle("删除工作主档[workNo={0}]失败", wrkMastSta.getWrkNo()); } } catch (Exception e) { log.error("fail", e); e.printStackTrace(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return FAIL.setMsg(e.getMessage()); } return SUCCESS; } } src/main/java/com/zy/asrs/task/handler/WrkMastStaInItHandler.java
@@ -33,6 +33,9 @@ public ReturnT<String> start(WrkMast wrkMast,BasDevp basDevp,Integer type) { try { WrkMastSta wrkMastSta = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>().eq("wrk_no", wrkMast.getWrkNo().longValue())); if (!Cools.isEmpty(wrkMastSta)){ return SUCCESS; } switch (type){ case 13://出 3:取放 if (Cools.isEmpty(wrkMastSta)){ @@ -48,14 +51,16 @@ wrkMastSta1.setType(fullKM(wrkMast)? 1:2); wrkMastSta1.setWrkType(1); wrkMastStaService.insert(wrkMastSta1); } }; break; case 22://2:放 if (Cools.isEmpty(wrkMastSta)){ WrkMastSta wrkMastSta1 = new WrkMastSta(wrkMast,new Date(),basDevp); wrkMastSta1.setType(fullKM(wrkMast)? 1:2); wrkMastSta1.setWrkType(5); wrkMastStaService.insert(wrkMastSta1); } }; break; // case 23://3:取放 // if (Cools.isEmpty(wrkMastSta)){ // WrkMastSta wrkMastSta1 = new WrkMastSta(wrkMast,new Date(),basDevp); @@ -64,14 +69,14 @@ // wrkMastStaService.insert(wrkMastSta1); // } default: return FAIL; return SUCCESS; } }catch (Exception e){ log.error("异常!!!"+e); return FAIL; } return FAIL; return SUCCESS; } public boolean fullKM(WrkMast wrkMast){