Merge remote-tracking branch 'origin/master_merge_0523' into master_merge_0523
This commit is contained in:
@@ -179,7 +179,7 @@ public class TwoOutBoxTask extends AbstractAcsTask {
|
|||||||
if (status.equals(TaskStatusEnum.FINISHED.getCode())) {
|
if (status.equals(TaskStatusEnum.FINISHED.getCode())) {
|
||||||
immediateNotifyAcs(null);
|
immediateNotifyAcs(null);
|
||||||
}
|
}
|
||||||
},"zjInBound",20,this);
|
},"zjInBound",20,25,this);
|
||||||
}
|
}
|
||||||
// 取消
|
// 取消
|
||||||
if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||||
|
|||||||
@@ -217,7 +217,7 @@ public class TwoOutTask extends AbstractAcsTask {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, "cratergv", 30, this);
|
}, "cratergv", 30,35, this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ public class AutoRgvSendTask extends Prun {
|
|||||||
RedissonUtils.lock(c -> {
|
RedissonUtils.lock(c -> {
|
||||||
log.info("start_sendTaskAcs task......");
|
log.info("start_sendTaskAcs task......");
|
||||||
twoOutHeapTask.sendTaskAcs(null,true);
|
twoOutHeapTask.sendTaskAcs(null,true);
|
||||||
},"resendrgv", 30, this);
|
},"resendrgv", 30,35, this);
|
||||||
}catch (Exception ex){
|
}catch (Exception ex){
|
||||||
log.error(ex.getMessage());
|
log.error(ex.getMessage());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,11 +51,11 @@ public class RedissonUtils {
|
|||||||
* @param param
|
* @param param
|
||||||
*/
|
*/
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
public static void lock(Consumer process, String key, int secend, Object param){
|
public static void lock(Consumer process, String key, int wait,int least, Object param){
|
||||||
RedissonClient redissonClient = SpringContextHolder.getBean(RedissonClient.class);
|
RedissonClient redissonClient = SpringContextHolder.getBean(RedissonClient.class);
|
||||||
RLock lock = redissonClient.getLock(key);
|
RLock lock = redissonClient.getLock(key);
|
||||||
boolean isLock;
|
boolean isLock;
|
||||||
isLock = lock.tryLock(secend,secend+5,TimeUnit.SECONDS);
|
isLock = lock.tryLock(wait,least,TimeUnit.SECONDS);
|
||||||
try {
|
try {
|
||||||
if (isLock){
|
if (isLock){
|
||||||
process.accept(param);
|
process.accept(param);
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.impl.*;
|
|||||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.InBussManageService;
|
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.InBussManageService;
|
||||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.LashManageService;
|
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.LashManageService;
|
||||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBoxManageService;
|
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBoxManageService;
|
||||||
|
import org.nl.common.utils.RedissonUtils;
|
||||||
import org.nl.modules.logging.annotation.Log;
|
import org.nl.modules.logging.annotation.Log;
|
||||||
import org.nl.modules.wql.util.SpringContextHolder;
|
import org.nl.modules.wql.util.SpringContextHolder;
|
||||||
import org.nl.wms.st.inbill.service.CheckOutBillService;
|
import org.nl.wms.st.inbill.service.CheckOutBillService;
|
||||||
@@ -210,11 +211,13 @@ public class CheckOutBillController {
|
|||||||
@Log("一键设置")
|
@Log("一键设置")
|
||||||
|
|
||||||
public ResponseEntity<Object> allSetPoint(@RequestBody JSONObject whereJson) {
|
public ResponseEntity<Object> allSetPoint(@RequestBody JSONObject whereJson) {
|
||||||
if (whereJson.getString("stor_id").equals(IOSEnum.STOR_ID.code("二期"))) {
|
RedissonUtils.lock(c->{
|
||||||
iStIvtIostorinvOutService.allSetPoint2(whereJson);
|
if (whereJson.getString("stor_id").equals(IOSEnum.STOR_ID.code("二期"))) {
|
||||||
} else {
|
iStIvtIostorinvOutService.allSetPoint2(whereJson);
|
||||||
checkOutBillService.allSetPointByNoTran(whereJson);
|
} else {
|
||||||
}
|
checkOutBillService.allSetPointByNoTran(whereJson);
|
||||||
|
}
|
||||||
|
},"出库一键设置",1,120,null);
|
||||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3254,6 +3254,16 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
|
|||||||
//口口回口回口口口1
|
//口口回口回口口口1
|
||||||
//口口回回口口口口2
|
//口口回回口口口口2
|
||||||
Map<String, List<StructAllsetDto>> collect = structSet.stream().distinct().collect(Collectors.groupingBy(struct -> struct.getRow_num()+"_"+struct.getBlock_num()));
|
Map<String, List<StructAllsetDto>> collect = structSet.stream().distinct().collect(Collectors.groupingBy(struct -> struct.getRow_num()+"_"+struct.getBlock_num()));
|
||||||
|
//批量校验单据锁定
|
||||||
|
for (String orderBy : collect.keySet()) {
|
||||||
|
List<StructAllsetDto> needStructs = collect.get(orderBy);
|
||||||
|
//从左到右排序
|
||||||
|
needStructs.sort(Comparator.comparingInt(a -> Integer.valueOf(a.getOut_order_seq())));
|
||||||
|
StructAllsetDto left = needStructs.get(0);
|
||||||
|
StructAllsetDto right = needStructs.get(needStructs.size() - 1);
|
||||||
|
//确认左/右出库并根据出库顺序获取货位集合
|
||||||
|
锁单判断(needStructs, left, right, whereJson.getString("iostorinv_id"));
|
||||||
|
}
|
||||||
for (String orderBy : collect.keySet()) {
|
for (String orderBy : collect.keySet()) {
|
||||||
List<StructAllsetDto> needStructs = collect.get(orderBy);
|
List<StructAllsetDto> needStructs = collect.get(orderBy);
|
||||||
//从左到右排序
|
//从左到右排序
|
||||||
@@ -3298,6 +3308,17 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
private void 锁单判断(List<StructAllsetDto> structs, StructAllsetDto left, StructAllsetDto right,String invId) {
|
||||||
|
HashMap param = MapOf.of("invId",invId,"flag", "51", "sect_id",left.getSect_id(),"block_num", left.getBlock_num(), "row_num", left.getRow_num());
|
||||||
|
JSONArray allLock = WQL.getWO("ST_OUTIVT04").addParamMap(param).process().getResultJSONArray(0);
|
||||||
|
List<JSONObject> hasLock = this.isNumList(allLock);
|
||||||
|
if (!ObjectUtil.isEmpty(hasLock)){
|
||||||
|
String error = hasLock.stream()
|
||||||
|
.map(a -> "仓位" + a.getString("struct_code") + "锁定单据" + a.getString("inv_code"))
|
||||||
|
.collect(Collectors.joining(","));
|
||||||
|
throw new BadRequestException(error + "被锁定且未下发任务,无法生成任务!");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
private List<JSONObject> 左右出库确认(List<StructAllsetDto> structs, StructAllsetDto left, StructAllsetDto right,String invId) {
|
private List<JSONObject> 左右出库确认(List<StructAllsetDto> structs, StructAllsetDto left, StructAllsetDto right,String invId) {
|
||||||
/**
|
/**
|
||||||
@@ -3366,6 +3387,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
|
|||||||
if (StringUtils.equals(placementType,"01")){
|
if (StringUtils.equals(placementType,"01")){
|
||||||
//确认那边少出哪边-
|
//确认那边少出哪边-
|
||||||
//查询当前排最大order
|
//查询当前排最大order
|
||||||
|
//口回口口回口*口口
|
||||||
HashMap maxParam = MapOf.of("flag", "52", "sect_id",left.getSect_id(),"block_num", left.getBlock_num(), "row_num", left.getRow_num());
|
HashMap maxParam = MapOf.of("flag", "52", "sect_id",left.getSect_id(),"block_num", left.getBlock_num(), "row_num", left.getRow_num());
|
||||||
JSONObject result = WQL.getWO("ST_OUTIVT04").addParamMap(maxParam).process().uniqueResult(0);
|
JSONObject result = WQL.getWO("ST_OUTIVT04").addParamMap(maxParam).process().uniqueResult(0);
|
||||||
Integer maxSeq = result.getInteger("maxseq");
|
Integer maxSeq = result.getInteger("maxseq");
|
||||||
|
|||||||
Reference in New Issue
Block a user