| pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/controller/OpenController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/entity/param/MatSyncParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/entity/param/TokenParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/entity/result/TokenVo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/task/OrderToSortLineScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/common/service/CommonService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/webapp/static/js/common.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
pom.xml
@@ -120,7 +120,7 @@ </dependencies> <build> <finalName>jshdasrs</finalName> <finalName>wms</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> src/main/java/com/zy/asrs/controller/OpenController.java
@@ -7,6 +7,7 @@ import com.zy.asrs.entity.WaitPakin; import com.zy.asrs.entity.WrkDetl; import com.zy.asrs.entity.param.*; import com.zy.asrs.entity.result.TokenVo; import com.zy.asrs.service.ApiLogService; import com.zy.asrs.service.OpenService; import com.zy.common.model.DetlDto; @@ -39,7 +40,21 @@ @Autowired private OpenService openService; @PostMapping("/order/matSync/default/v2") @PostMapping("/getToken") public synchronized R getToken(@RequestBody(required = true) TokenParam param, HttpServletRequest request){ authNew(param, param, request); if (Cools.isEmpty(param)) { return R.parse(BaseRes.PARAM); } TokenVo tokenVo = new TokenVo(); String token = Cools.enToken(System.currentTimeMillis() + param.getAppId(), param.getAppSecret()); tokenVo.setToken(token); tokenVo.setValidTime(30); return R.ok().add(tokenVo); } @PostMapping("/erp/mat/sync") // @AppAuth(memo = "商品信息同步接口") public synchronized R syncMatInfoV2(@RequestHeader(required = false) String appkey, @RequestBody(required = false) MatSyncParam.MatParam param, @@ -183,6 +198,23 @@ } } private void authNew(TokenParam param, Object obj, HttpServletRequest request) { log.info("{}接口被访问;appSecret:{};请求数据:{}", "open/sensorType/list/auth/v1", param.getAppSecret(), JSON.toJSONString(obj)); request.setAttribute("cache", obj); if (!auth) { return; } if (Cools.isEmpty(param.getAppId()) || Cools.isEmpty(param.getAppSecret())) { throw new CoolException("认证失败,请确认appId和appSecret无误!"); } if (!param.getAppId().contains("FNWMS")){ throw new CoolException("认证失败,请确认appId无误!"); } if (!APP_KEY_LIST.contains(param.getAppSecret())) { throw new CoolException("认证失败,请确认appSecret无误!"); } } public static void main(String[] args) { // 1 System.out.println("======================================"); src/main/java/com/zy/asrs/entity/param/MatSyncParam.java
@@ -1,5 +1,6 @@ package com.zy.asrs.entity.param; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import java.util.List; @@ -23,16 +24,19 @@ /** * 商品编号 */ @JsonProperty("matNr") private String matnr; /** * 商品名称 */ @JsonProperty("makTx") private String maktx; /** * 商品分类 */ @JsonProperty("groupId") private String groupCode; /** @@ -176,8 +180,9 @@ private Integer danger; /** * 状态 1: 正常 0: 禁用 * 状态 1: 新增(默认) 2: 修改 3: 禁用 4: 启用 */ @JsonProperty("operateType") private Integer status; /** @@ -193,6 +198,7 @@ /** * 备注 */ @JsonProperty("describle") private String memo; } src/main/java/com/zy/asrs/entity/param/TokenParam.java
New file @@ -0,0 +1,19 @@ package com.zy.asrs.entity.param; import lombok.Data; @Data public class TokenParam { /** * 应用编码 wms线下分配 */ private String appId; /** * 应用密钥 wms线下分配 */ private String appSecret; } src/main/java/com/zy/asrs/entity/result/TokenVo.java
New file @@ -0,0 +1,17 @@ package com.zy.asrs.entity.result; import lombok.Data; @Data public class TokenVo { /** * token值 */ private String token; /** * 有效时间 单位:分钟 */ private Integer validTime; } src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -559,8 +559,8 @@ throw new CoolException(param.getBarcode() + "数据正在进行入库"); } if(param.getBarcode().length()!=6){ throw new CoolException("条码长度不是6位===>>" + param.getBarcode()); if(param.getBarcode().length()!=8){ throw new CoolException("条码长度不是8位===>>" + param.getBarcode()); } // if (param.getCombMats().size()>1){ // throw new CoolException("不允许混料===>>" + param.getBarcode()); src/main/java/com/zy/asrs/task/OrderToSortLineScheduler.java
@@ -138,7 +138,7 @@ } } @Scheduled(cron = "0/3 * * * * ? ") // @Scheduled(cron = "0/3 * * * * ? ") private void orderToSortLine2() { //获取未下发单据 List<String> orderNos = orderPakinService.AllStatusSatisfyOrder(1); src/main/java/com/zy/common/service/CommonService.java
@@ -172,6 +172,11 @@ // } int rowCount = params[0]; int nearRow = params[3]; int MIN_SPARE_SLOTS = 0; if (rowLastno.getTypeId() == 1){ MIN_SPARE_SLOTS = 2; } // 只取数量判断,避免拉整 list int availableLocCount = locMastService.selectCount(new EntityWrapper<LocMast>() @@ -180,7 +185,7 @@ .eq("whs_type", rowLastnoType.getType().longValue())); int crnCountO = wrkMastService.selectCount(new EntityWrapper<WrkMast>() .eq("crn_no", crnNo).le("io_type", 100)); if (availableLocCount - crnCountO <= 2) { // 可以提成常量,比如 MIN_SPARE_SLOTS = 2 if (availableLocCount - crnCountO <= MIN_SPARE_SLOTS) { // 可以提成常量,比如 MIN_SPARE_SLOTS = 2 log.error("{}号堆垛机没有空库位!!! 尺寸规格: {}, 轮询次数:{}", crnNo, JSON.toJSONString(locTypeDto), attempt); attempt++; continue; @@ -242,15 +247,21 @@ //此程序用于优化堆垛机异常时的运行时间 Optional<CrnRowInfo> infoOpt = findAvailableCrnAndNearRow(rowLastno, curRow, crnNumber, times, findLocNoAttributeVo, locTypeDto, rowLastnoType); if (!infoOpt.isPresent()) { throw new CoolException("无可用堆垛机"); if (infoOpt.isPresent()) { // throw new CoolException("无可用堆垛机"); CrnRowInfo info = infoOpt.get(); crnNo = info.getCrnNo(); nearRow = info.getNearRow(); curRow = info.getCurRow(); rowCount = info.getRowCount(); times = info.getTimes(); } CrnRowInfo info = infoOpt.get(); crnNo = info.getCrnNo(); nearRow = info.getNearRow(); curRow = info.getCurRow(); rowCount = info.getRowCount(); times = info.getTimes(); // CrnRowInfo info = infoOpt.get(); // crnNo = info.getCrnNo(); // nearRow = info.getNearRow(); // curRow = info.getCurRow(); // rowCount = info.getRowCount(); // times = info.getTimes(); boolean signRule1 = false; @@ -440,19 +451,26 @@ List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() .eq("row1", nearRow) .eq("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue()) .orderBy("lev1", true).orderBy("bay1", false)); .orderBy("lev1", true).orderBy("bay1", true)); for (LocMast locMast1 : locMasts) { if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) { continue; } if (Utils.BooleanWhsTypeStaIoType(rowLastno)) { String shallowLoc = Utils.getDeepLoc(slaveProperties, locMast1.getLocNo()); LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>() .eq("loc_no", shallowLoc).eq("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue())); if (!Cools.isEmpty(locMast2)) { locMast = locMast2; if (locMast1.getCrnNo() == 2) { String shallowLoc = Utils.getDeepLoc(slaveProperties, locMast1.getLocNo()); LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>() .eq("loc_no", shallowLoc).eq("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue())); if (!Cools.isEmpty(locMast2)) { locMast = locMast2; break; } } else if (locMast1.getCrnNo() == 1) { locMast = locMast1; break; } } else { if (!Cools.isEmpty(locMast1)) { locMast = locMast1; @@ -505,9 +523,10 @@ // 递归查询 if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("O")) { // 当前巷道无空库位时,递归调整至下一巷道,检索全部巷道无果后,跳出递归 if (times < rowCount * 2) { if (times <= rowCount * 2) { times = times + 1; return getLocNoRun(whsType, staDescId, sourceStaNo, findLocNoAttributeVo, moveCrnNo, locTypeDto, times); // return getLocNoRun(whsType, staDescId, sourceStaNo, findLocNoAttributeVo, moveCrnNo, locTypeDto, times); return getLocNoRun(5, staDescId, sourceStaNo, findLocNoAttributeVo, moveCrnNo, locTypeDto, times); } // // 2.库位当前所属尺寸无空库位时,调整尺寸参数,向上兼容检索库位 // if (locTypeDto.getLocType1() < 2) { src/main/resources/application.yml
@@ -1,5 +1,5 @@ server: port: 8081 port: 8080 servlet: context-path: /@pom.build.finalName@ @@ -32,17 +32,17 @@ logging: file: path: /stock/out/@pom.build.finalName@/logs path: ./stock/out/@pom.build.finalName@/logs super: pwd: asrs2023 pwd: xltys1995 swagger: enable: false #License相关配置 license: subject: jshdasrs subject: hnfnasrs publicAlias: publicCert storePass: public_zhongyang_123456789 licensePath: license.lic @@ -58,13 +58,13 @@ # 双深 doubleDeep: true # 双深库位排号 doubleLocs: 1,4,5,8,9,12,13,16,17,20 doubleLocs: 3,6 # 一个堆垛机负责的货架排数 groupCount: 4 # 左深库位排号 doubleLocsLeft: 1,5,9,13,17 doubleLocsLeft: 3 # 右深库位排号 doubleLocsRight: 4,8,12,16,20 doubleLocsRight: 6 # wms参数配置 wms-parameter: # 自动补空板功能开关 @@ -98,13 +98,13 @@ # 开关 switch: #计时器上报开关 ErpReportOld: true ErpReportOld: false #获取单据开关 InboundOrderSwitch: true InboundOrderSwitch: false #登录接口开关 LoginAuthenticationSwitch: true LoginAuthenticationSwitch: false #上报、审核单据开关 ReviewOrderSwitch: true ReviewOrderSwitch: false # 地址 address: URL: https://shyucheng.test.kdgalaxy.com src/main/webapp/static/js/common.js
@@ -1,4 +1,4 @@ var baseUrl = "/jshdasrs"; var baseUrl = "/wms"; // 详情窗口-高度 var detailHeight = '80%';