src/main/java/com/zy/asrs/controller/LocCacheController.java
@@ -47,6 +47,7 @@ convert(param, wrapper); allLike(LocCache.class, param.keySet(), wrapper, condition); if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} wrapper.eq("full_plt", "N"); return R.ok(locCacheService.selectPage(new Page<>(curr, limit), wrapper)); } src/main/java/com/zy/asrs/controller/MobileController.java
@@ -16,6 +16,7 @@ import com.zy.asrs.utils.OrderInAndOutUtil; import com.zy.common.model.WrkDto; import com.zy.common.web.BaseController; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; @@ -138,6 +139,25 @@ } @GetMapping("/cache/locs") @ManagerAuth @ApiOperation("获取缓存区库位信息") public R getCacheLocs() { return mobileService.getCacheLocs(); } @PostMapping("/cache/agv/call") @ApiOperation("呼叫AGV搬运") @ManagerAuth public R callAgvMove(@RequestBody AgvCallParams params) { if (Objects.isNull(params)) { return R.error("参数不能为空!!"); } return mobileService.callAgvMove(params, getUserId()); } // 组托 ---------------------------------------------------------------------------------------------------- src/main/java/com/zy/asrs/entity/LocCache.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.enums.IdType; import com.baomidou.mybatisplus.annotations.TableField; import com.core.common.SpringUtils; import com.zy.asrs.enums.LocStsType; import com.zy.asrs.service.BasWhsTypeService; import com.zy.asrs.service.BasCrnpService; @@ -204,6 +205,24 @@ return null; } public String getLocSts$() { if (this.locSts.equals(LocStsType.LOC_STS_TYPE_F.type)) { return LocStsType.LOC_STS_TYPE_F.desc; } else if (locSts.equals(LocStsType.LOC_STS_TYPE_D.type)) { return LocStsType.LOC_STS_TYPE_D.desc; } else if (locSts.equals(LocStsType.LOC_STS_TYPE_O.type)) { return LocStsType.LOC_STS_TYPE_F.desc; } else if (locSts.equals(LocStsType.LOC_STS_TYPE_R.type)) { return LocStsType.LOC_STS_TYPE_R.desc; } else if (locSts.equals(LocStsType.LOC_STS_TYPE_S.type)) { return LocStsType.LOC_STS_TYPE_S.desc; } else if (locSts.equals(LocStsType.LOC_STS_TYPE_X.type)) { return LocStsType.LOC_STS_TYPE_X.desc; } else { return null; } } // public String getCrnNo$(){ // BasCrnpService service = SpringUtils.getBean(BasCrnpService.class); // BasCrnp basCrnp = service.selectById(this.crnNo); src/main/java/com/zy/asrs/entity/WaitPakin.java
@@ -44,6 +44,10 @@ @TableField("order_no") private String orderNo; @ApiModelProperty("单据ID") @TableField("order_id") private Long orderId; @ApiModelProperty(value= "规格") private String specs; src/main/java/com/zy/asrs/entity/WrkDetl.java
@@ -9,12 +9,14 @@ import com.zy.system.service.UserService; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.Date; @Data @Accessors(chain = true) @TableName("asr_wrk_detl") public class WrkDetl implements Serializable { src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -30,6 +30,9 @@ @TableField("wrk_no") private Integer wrkNo; @ApiModelProperty("任务类型: agv, crn") private String taskType; @ApiModelProperty(value= "") @TableField("inv_wh") private String invWh; @@ -92,14 +95,14 @@ */ @ApiModelProperty(value= "目标站") @TableField("sta_no") private Integer staNo; private String staNo; /** * 源站 */ @ApiModelProperty(value= "源站") @TableField("source_sta_no") private Integer sourceStaNo; private String sourceStaNo; /** * 源库位 @@ -373,6 +376,16 @@ return null; } public String getTaskType$(){ if (Cools.isEmpty(this.taskType)){return null;} if (taskType.equals("agv")) { return "AGV任务"; } else { return "堆垛机任务"; } } public String getStaNo$(){ BasDevpService service = SpringUtils.getBean(BasDevpService.class); BasDevp basDevp = service.selectById(this.staNo); src/main/java/com/zy/asrs/entity/param/AgvCallParams.java
New file @@ -0,0 +1,26 @@ package com.zy.asrs.entity.param; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; @Data @ApiModel(value = "AgvCallParams", description = "呼叫AGV参数") public class AgvCallParams implements Serializable { @ApiModelProperty("起始位置") private String orgSite; @ApiModelProperty("终点位置") private String tarSite; @ApiModelProperty("托盘码") private String barcode; @ApiModelProperty("操作类型") private String type; } src/main/java/com/zy/asrs/enums/LocStsType.java
New file @@ -0,0 +1,60 @@ package com.zy.asrs.enums; public enum LocStsType { //空板 LOC_STS_TYPE_D("D", "空板"), //在库 LOC_STS_TYPE_F("F", "在库"), //空库 LOC_STS_TYPE_O("O", "空库"), //禁用 LOC_STS_TYPE_X("X", "禁用"), //入库预约 LOC_STS_TYPE_S("S", "入库预约"), //出库预约 LOC_STS_TYPE_R("R", "出库预约"), ; public String type; public String desc; LocStsType(String type, String desc) { this.type = type; this.desc = desc; } public static LocStsType get(String el) { for (LocStsType value : LocStsType.values()) { if (el.equals(value.toString())) { return value; } } return null; } // /** // * @author Ryan // * @date 2025/8/28 // * @description: RCS库位状态转换 // * @version 1.0 // */ // public static String getLocSts(String val) { // if (val.equals(RcsLocStsType.LOC_STS_TYPE_D.type)) { // return LocStsType.LOC_STS_TYPE_O.type; // } else if (val.equals(RcsLocStsType.LOC_STS_TYPE_F.type)) { // return LocStsType.LOC_STS_TYPE_F.type; // } else if (val.equals(RcsLocStsType.LOC_STS_TYPE_S.type)) { // return LocStsType.LOC_STS_TYPE_S.type; // } else if (val.equals(RcsLocStsType.LOC_STS_TYPE_R.type)) { // return LocStsType.LOC_STS_TYPE_R.type; // } else if (val.equals(RcsLocStsType.LOC_STS_TYPE_X.type)) { // return LocStsType.LOC_STS_TYPE_X.type; // } // return null; // } } src/main/java/com/zy/asrs/service/MobileService.java
@@ -67,4 +67,20 @@ void stockOut(OrderDetl orderDetl, BasDevp staNo, LocDetl locDetl, Double curOutQty, Integer ioType, Long userId, Date now); /** * @author Ryan * @date 2025/9/22 * @description: 获取缓冲区库位信息 * @version 1.0 */ R getCacheLocs(); /** * @author Ryan * @date 2025/9/22 * @description: 呼叫AGV搬运 * @version 1.0 */ R callAgvMove(AgvCallParams params, Long userId); } src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -8,6 +8,7 @@ import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.*; import com.zy.asrs.enums.LocStsType; import com.zy.asrs.mapper.LocMastMapper; import com.zy.asrs.mapper.ManLocDetlMapper; import com.zy.asrs.service.*; @@ -96,6 +97,8 @@ @Resource private OrderDetlPakoutService orderDetlPakoutService; @Autowired private LocCacheService locCacheService; @Override @Transactional @@ -118,8 +121,8 @@ wrkMast.setIoType(8); // 入出库状态:8.拣料途中并板 wrkMast.setIoPri(13D); // 优先级 wrkMast.setCrnNo(1); wrkMast.setSourceStaNo(1); wrkMast.setStaNo(1); wrkMast.setSourceStaNo(1 + ""); wrkMast.setStaNo(1 + ""); wrkMast.setLocNo(param.getLocNo()); wrkMast.setBarcode(param.getBarcode()); // 托盘码 wrkMast.setFullPlt("Y"); // 满板:Y @@ -245,8 +248,8 @@ wrkMast.setWrkSts(11L); // 工作状态:101.生成出库 wrkMast.setIoType(104); // 入出库状态 wrkMast.setIoPri(13D); // 优先级:13 wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 源站 wrkMast.setStaNo(staDesc.getStnNo()); // 目标站 wrkMast.setSourceStaNo(staDesc.getCrnStn() + ""); // 源站 wrkMast.setStaNo(staDesc.getStnNo() + ""); // 目标站 wrkMast.setSourceLocNo(param.getLocNo()); // 源库位 wrkMast.setFullPlt("Y"); // 满板:Y wrkMast.setPicking("Y"); // 拣料 @@ -379,8 +382,8 @@ wrkMast.setIoType(108); // 入出库状态:出库,拣料入库 wrkMast.setIoPri(13D); // 优先级 wrkMast.setCrnNo(1); wrkMast.setSourceStaNo(1); wrkMast.setStaNo(1); wrkMast.setSourceStaNo(1 + ""); wrkMast.setStaNo(1 + ""); wrkMast.setSourceLocNo(combParam.getLocNo()); wrkMast.setBarcode(combParam.getBarcode()); // 托盘码 wrkMast.setFullPlt("Y"); // 满板:Y @@ -650,6 +653,7 @@ BeanUtils.copyProperties(mat, waitPakin); // waitPakin.sync(mat); waitPakin.setOrderNo(order.getOrderNo()); // 单据编号 waitPakin.setOrderId(order.getId()); waitPakin.setBatch(detlDto.getBatch()); // 序列码 waitPakin.setZpallet(param.getBarcode()); // 托盘码 waitPakin.setIoStatus("N"); // 入出状态 @@ -1072,8 +1076,8 @@ wrkMast.setIoType(ioType); // 入出库状态 wrkMast.setIoPri(13D); // 优先级:13 wrkMast.setCrnNo(locMast.getCrnNo()); wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 源站 wrkMast.setStaNo(staDesc.getStnNo()); // 目标站 wrkMast.setSourceStaNo(staDesc.getCrnStn() + ""); // 源站 wrkMast.setStaNo(staDesc.getStnNo() + ""); // 目标站 wrkMast.setSourceLocNo(locDetl.getLocNo()); // 源库位 wrkMast.setFullPlt("Y"); // 满板:Y wrkMast.setPicking("N"); // 拣料 @@ -1116,4 +1120,132 @@ throw new CoolException(locDetl.getLocNo() + "库位不是在库状态"); } } /** * @author Ryan * @date 2025/9/22 * @description: 获取缓冲区库位信息 * @version 1.0 */ @Override public R getCacheLocs() { return R.ok().add(locCacheService.selectList(new EntityWrapper<LocCache>() .eq("frozen", 0) .ne("full_plt", "Y") .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type).orderAsc(Arrays.asList("row1")))); } /** * @author Ryan * @date 2025/9/22 * @description: 呼叫AGV搬运 * @version 1.0 */ @Override public R callAgvMove(AgvCallParams params, Long userId) { if (Objects.isNull(params.getTarSite())) { throw new CoolException("目标参数不能为空!!"); } if (Objects.isNull(params.getOrgSite())) { throw new CoolException("源站点不能为空!!"); } LocCache locCache = locCacheService.selectOne(new EntityWrapper<LocCache>() .eq("frozen", 0) .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type) .eq("loc_no", params.getTarSite()) .orderAsc(Arrays.asList("loc_no")) .last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY")); if (Objects.isNull(locCache)) { throw new CoolException("请检查目标库位是否闲置中!!"); } generateAgvTask("agv", locCache, params.getOrgSite(), params.getBarcode(), userId); return R.ok(); } /** * @author Ryan * @date 2025/9/22 * @description: 生成AGV搬运任务 * @version 1.0 */ @Transactional(rollbackFor = Exception.class) public void generateAgvTask(String type, LocCache loc, String orgSite, String barcode, Long userId) { WaitPakin pakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("zpallet", barcode)); if (Objects.isNull(pakin)) { throw new CoolException("组托信息不存在!!"); } OrderPakin orderPakin = orderPakinService.selectById(pakin.getOrderId()); if (Objects.isNull(orderPakin)) { throw new CoolException("单据不能为空!!"); } List<OrderDetlPakin> detls = orderDetlPakinService.selectList(new EntityWrapper<OrderDetlPakin>().eq("order_id", pakin.getOrderId())); if (Objects.isNull(detls) || detls.isEmpty()) { throw new CoolException("数据错误:单据明细不存在!!"); } Date now = new Date(); // 获取工作号 int workNo = commonService.getWorkNo(WorkNoType.PICK.type); // 保存工作档 WrkMast wrkMast = new WrkMast(); wrkMast.setWrkNo(workNo); wrkMast.setIoTime(now); wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID wrkMast.setIoType(11); // 入出库状态: 11.库格移载 wrkMast.setTaskType("agv"); wrkMast.setIoPri(10D); wrkMast.setLocNo(loc.getLocNo()); // 目标库位 wrkMast.setFullPlt("Y"); // 满板:Y wrkMast.setPicking("N"); // 拣料 wrkMast.setExitMk("N"); // 退出 wrkMast.setSourceStaNo(orgSite); wrkMast.setEmptyMk(loc.getLocSts().equals("D") ? "Y" : "N"); // 空板 wrkMast.setBarcode(barcode); // 托盘码 wrkMast.setLinkMis("N"); wrkMast.setAppeUser(userId); wrkMast.setAppeTime(now); wrkMast.setModiUser(userId); wrkMast.setModiTime(now); if (!wrkMastService.insert(wrkMast)) { throw new CoolException("保存工作档失败"); } List<WrkDetl> taskDetls = new ArrayList<>(); detls.forEach(detl -> { WrkDetl wrkDetl = new WrkDetl(); BeanUtils.copyProperties(detl, wrkDetl); wrkDetl.setWrkNo(workNo) .setIoTime(new Date()) .setAnfme(detl.getAnfme()) .setZpallet(pakin.getZpallet()) .setBatch(detl.getBatch()) .setMatnr(detl.getMatnr()) .setMaktx(detl.getMaktx()) .setAppeUser(userId) .setUnit(detl.getUnit()) .setModel(detl.getModel()) .setAppeTime(new Date()) .setModiUser(userId); taskDetls.add(wrkDetl); }); //保存工作档明细 if (!wrkDetlService.insertBatch(taskDetls)) { throw new CoolException("保存工作档明细失败"); } // 修改目标库位状态 if (loc.getLocSts().equals("O")) { loc.setLocSts("S"); // S.入库预约 loc.setModiTime(now); loc.setModiUser(userId); if (!locCacheService.updateById(loc)) { throw new CoolException("更新目标库位状态失败"); } } else { throw new CoolException("移转失败,目标库位状态:" + loc.getLocSts$()); } } } src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -123,8 +123,8 @@ wrkMast.setIoType(1); // 入出库状态:1.入库 wrkMast.setIoPri(13D); // 优先级:13 wrkMast.setCrnNo(dto.getCrnNo()); wrkMast.setSourceStaNo(dto.getSourceStaNo()); wrkMast.setStaNo(dto.getStaNo()); wrkMast.setSourceStaNo(dto.getSourceStaNo() + ""); wrkMast.setStaNo(dto.getStaNo() + ""); wrkMast.setLocNo(dto.getLocNo()); wrkMast.setBarcode(param.getBarcode()); // 托盘码 wrkMast.setFullPlt("Y"); // 满板:Y @@ -338,8 +338,8 @@ wrkMast.setIoType(ioType); // 入出库状态 wrkMast.setIoPri(13D); // 优先级:13 wrkMast.setCrnNo(locMast.getCrnNo()); wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 源站 wrkMast.setStaNo(staDesc.getStnNo()); // 目标站 wrkMast.setSourceStaNo(staDesc.getCrnStn() + ""); // 源站 wrkMast.setStaNo(staDesc.getStnNo() + ""); // 目标站 wrkMast.setSourceLocNo(dto.getLocNo()); // 源库位 wrkMast.setFullPlt("Y"); // 满板:Y wrkMast.setPicking("N"); // 拣料 @@ -356,7 +356,9 @@ } // 生成工作档明细 for (LocDetlDto detlDto : dto.getLocDetlDtos()) { if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;} if (detlDto.getCount() == null || detlDto.getCount() <= 0.0D) { continue; } WrkDetl wrkDetl = new WrkDetl(); wrkDetl.sync(detlDto.getLocDetl()); wrkDetl.setOrderNo(""); // 手动出库不需要带出库存中的单据编号 @@ -414,8 +416,8 @@ wrkMast.setIoType(ioType); // 入出库状态 wrkMast.setIoPri(13D); // 优先级:13 wrkMast.setCrnNo(locMast.getCrnNo()); wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 源站 wrkMast.setStaNo(staDesc.getStnNo()); // 目标站 wrkMast.setSourceStaNo(staDesc.getCrnStn() + ""); // 源站 wrkMast.setStaNo(staDesc.getStnNo() + ""); // 目标站 wrkMast.setSourceLocNo(taskDto.getLocNo()); // 源库位 wrkMast.setFullPlt("Y"); // 满板:Y wrkMast.setPicking("N"); // 拣料 @@ -432,7 +434,9 @@ } // 生成工作档明细 for (LocDto locDto : taskDto.getLocDtos()) { if (locDto.getAnfme()==null || locDto.getAnfme() <= 0.0D) { continue; } if (locDto.getAnfme() == null || locDto.getAnfme() <= 0.0D) { continue; } // OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch()); OrderDetl orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(),locDto.getBrand() ,locDto.getStandby1(),locDto.getStandby2(),locDto.getStandby3(),locDto.getBoxType1(),locDto.getBoxType2(),locDto.getBoxType3()); @@ -501,8 +505,8 @@ wrkMast.setIoType(10); // 入出库状态:10.空板入库 wrkMast.setIoPri(10D); // 优先级:10 wrkMast.setCrnNo(dto.getCrnNo()); wrkMast.setSourceStaNo(dto.getSourceStaNo()); wrkMast.setStaNo(dto.getStaNo()); wrkMast.setSourceStaNo(dto.getSourceStaNo() + ""); wrkMast.setStaNo(dto.getStaNo() + ""); wrkMast.setLocNo(dto.getLocNo()); wrkMast.setFullPlt("N"); // 满板 wrkMast.setPicking("N"); // 拣料 @@ -583,8 +587,8 @@ wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID wrkMast.setIoType(110); // 入出库状态: 110.空板出库 wrkMast.setIoPri(10D); wrkMast.setSourceStaNo(sourceStaNo); // 源站 wrkMast.setStaNo(param.getOutSite()); // 目标站 wrkMast.setSourceStaNo(sourceStaNo + ""); // 源站 wrkMast.setStaNo(param.getOutSite() + ""); // 目标站 wrkMast.setCrnNo(locMast.getCrnNo()); wrkMast.setSourceLocNo(locNo); // 源库位 wrkMast.setFullPlt("N"); // 满板:Y @@ -645,8 +649,8 @@ wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID wrkMast.setIoType(110); // 入出库状态: 110.空板出库 wrkMast.setIoPri(10D); wrkMast.setSourceStaNo(sourceStaNo); // 源站 wrkMast.setStaNo(param.getOutSite()); // 目标站 wrkMast.setSourceStaNo(sourceStaNo + ""); // 源站 wrkMast.setStaNo(param.getOutSite() + ""); // 目标站 wrkMast.setCrnNo(locMast.getCrnNo()); wrkMast.setSourceLocNo(locNo); // 源库位 wrkMast.setFullPlt("N"); // 满板:Y @@ -885,7 +889,9 @@ Iterator<LocDetlAdjustParam.LocDetlAdjust> iterator1 = list.iterator(); while (iterator1.hasNext()) { LocDetlAdjustParam.LocDetlAdjust adjust = iterator1.next(); if (adjust.getCount() == 0) { continue; } if (adjust.getCount() == 0) { continue; } if (locDetl.getMatnr().equals(adjust.getMatnr()) && Cools.eq(locDetl.getBatch(), adjust.getBatch())) { if (!locDetl.getAnfme().equals(adjust.getCount())) { // todo 盘点记录 @@ -984,7 +990,9 @@ // 添加库存 for (LocDetlAdjustParam.LocDetlAdjust adjust : list) { if (adjust.getCount() == 0.0D) { continue; } if (adjust.getCount() == 0.0D) { continue; } Mat mat = matService.selectByMatnr(adjust.getMatnr()); LocDetl locDetl = new LocDetl(); locDetl.sync(mat); @@ -1252,7 +1260,7 @@ wrkMast.setIoType(wrkMast.getIoType() - 50); // 入出库类型: 103->53,104->54,107->57 wrkMast.setWrkSts(2L); // 工作状态: 2.设备上走 wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 源站 wrkMast.setStaNo(staNo); // 目标站 wrkMast.setStaNo(staNo + ""); // 目标站 wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 目标库位 = 出库时的源库位 wrkMast.setSourceLocNo(""); // 源库位清空 wrkMast.setModiTime(now); @@ -1346,7 +1354,7 @@ } wrkMast.setWrkSts(2L); wrkMast.setLocNo(targetLoc.getLocNo()); wrkMast.setStaNo(staDesc.getCrnStn()); wrkMast.setStaNo(staDesc.getCrnStn() + ""); wrkMast.setCrnNo(targetLoc.getCrnNo()); wrkMast.setModiTime(now); wrkMast.setModiUser(userId); src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java
@@ -103,8 +103,8 @@ wrkMast.setWrkSts(11L); // 工作状态 wrkMast.setIoType(ioType); // 入出库状态 wrkMast.setIoPri(10D); wrkMast.setSourceStaNo(sourceStaNo); // 源站 wrkMast.setStaNo(staNo); // 目标站 wrkMast.setSourceStaNo(sourceStaNo + ""); // 源站 wrkMast.setStaNo(staNo + ""); // 目标站 wrkMast.setCrnNo(locMast.getCrnNo()); wrkMast.setSourceLocNo(locMast.getLocNo()); // 源库位 wrkMast.setFullPlt(ioType.equals(110)? "N" : "Y"); // 满板:Y src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -2,8 +2,10 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.service.*; import com.zy.asrs.service.impl.LocCacheServiceImpl; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.core.ReturnT; import lombok.extern.slf4j.Slf4j; @@ -14,6 +16,7 @@ import java.util.Date; import java.util.List; import java.util.Objects; /** * Created by vincent on 2020/7/4 @@ -39,6 +42,8 @@ private OrderDetlPakinService orderDetlPakinService; @Autowired private OrderDetlPakoutService orderDetlPakoutService; @Autowired private LocCacheServiceImpl locCacheService; public ReturnT<String> start(WrkMast wrkMast) { // 4.入库完成 @@ -52,6 +57,14 @@ } private ReturnT<String> doIn(WrkMast wrkMast){ if (wrkMast.getTaskType().equals("agv")) { Date now = new Date(); LocCache locCache = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", wrkMast.getLocNo())); if (Objects.isNull(locCache)) { throw new CoolException("数据错误,库位不存在!!"); } } else { Date now = new Date(); LocMast locMast = locMastService.selectById(wrkMast.getLocNo()); try { @@ -416,6 +429,7 @@ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return FAIL.setMsg(e.getMessage()); } } return SUCCESS; } src/main/java/com/zy/common/.DS_StoreBinary files differ
src/main/java/com/zy/common/config/.DS_StoreBinary files differ
src/main/java/com/zy/common/web/WcsController.java
@@ -124,8 +124,8 @@ wrkMast.setIoPri(13D); wrkMast.setIoType(10); wrkMast.setCrnNo(dto.getCrnNo()); wrkMast.setSourceStaNo(dto.getSourceStaNo()); wrkMast.setStaNo(dto.getStaNo()); wrkMast.setSourceStaNo(dto.getSourceStaNo() + ""); wrkMast.setStaNo(dto.getStaNo() + ""); wrkMast.setLocNo(dto.getLocNo()); wrkMast.setFullPlt("N"); // 满板:N wrkMast.setPicking("N"); // 拣料 @@ -178,8 +178,8 @@ wrkMast.setIoType(1); // 入出库状态:1.入库 wrkMast.setIoPri(13D); // 优先级 wrkMast.setCrnNo(dto.getCrnNo()); wrkMast.setSourceStaNo(dto.getSourceStaNo()); wrkMast.setStaNo(dto.getStaNo()); wrkMast.setSourceStaNo(dto.getSourceStaNo() + ""); wrkMast.setStaNo(dto.getStaNo() + ""); wrkMast.setLocNo(dto.getLocNo()); wrkMast.setBarcode(barcode); // 托盘码 wrkMast.setFullPlt("Y"); // 满板:Y @@ -254,8 +254,8 @@ wrkMast.setIoType(10); // 入出库状态:10.空板入库 wrkMast.setIoPri(13D); // 优先级 wrkMast.setCrnNo(dto.getCrnNo()); wrkMast.setSourceStaNo(dto.getSourceStaNo()); wrkMast.setStaNo(dto.getStaNo()); wrkMast.setSourceStaNo(dto.getSourceStaNo() + ""); wrkMast.setStaNo(dto.getStaNo() + ""); wrkMast.setLocNo(dto.getLocNo()); wrkMast.setFullPlt("N"); // 满板 wrkMast.setPicking("N"); // 拣料 src/main/resources/application.yml
@@ -43,7 +43,7 @@ # global-config: # field-strategy: 0 configuration: # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl log-impl: org.apache.ibatis.logging.stdout.StdOutImpl map-underscore-to-camel-case: true cache-enabled: true call-setters-on-nulls: true src/main/webapp/static/js/wrkMast/wrkMast.js
@@ -25,11 +25,12 @@ ,{field: 'wrkSts$', align: 'center',title: '工作状态'} ,{field: 'ioType$', align: 'center',title: '入出库类型'} ,{field: 'ioPri', align: 'center',title: '优先级'} ,{field: 'taskType$', align: 'center',title: '任务类型'} ,{field: 'crnNo$', align: 'center',title: '堆垛机'} ,{field: 'sourceStaNo$', align: 'center',title: '源站'} ,{field: 'staNo$', align: 'center',title: '目标站'} ,{field: 'sourceLocNo$', align: 'center',title: '源库位'} ,{field: 'locNo$', align: 'center',title: '目标库位'} ,{field: 'sourceLocNo', align: 'center',title: '源库位'} ,{field: 'locNo', align: 'center',title: '目标库位'} ,{field: 'barcode', align: 'center',title: '条码'} ,{field: 'preHave', align: 'center',title: '先入品', hide: true} ,{field: 'takeNone', align: 'center',title: '空操作', hide: true}