自动赋码任务修改,完成单据兼容自动赋码

dev_unify
yewj 7 months ago
parent d987d112ef
commit 1e1672da9f

@ -404,7 +404,7 @@ public class IoCollectOrderController extends BaseController {
}
}
collectOrderRequest.setUpdateUser(getUserId());
collectOrderService.finishOrder(collectOrderRequest, getUser());
collectOrderService.finishOrder(collectOrderRequest, getUser(), false);
return ResultVOUtils.success();
}
@ -451,7 +451,6 @@ public class IoCollectOrderController extends BaseController {
/**
*
* @param collectOrderRequest
* @return
*/

@ -1814,7 +1814,8 @@ public class IoCodeTempController extends BaseController {
} else
codeTempService.insert(codeEnttity);
// 查询是否存在药品关联信息 后将结果更新至 temp表
relCodeBatchService.threadUpdateIoCodeTempEntity(code);
updateRelCode(bussinessTypeEntity,code);
// relCodeBatchService.threadUpdateIoCodeTempEntity(code);
// } else if (bussinessTypeEntity.getCheckWebNew() == 2 && bussinessTypeEntity.isCheckEnable()) {
} else if (IntUtil.value(addOrderRequest.getOrderType()) == ConstantStatus.ORDER_TYPE_WAIT && bussinessTypeEntity.isCheckEnable()) {
String errMsg = ioCheckInoutService.checkDrugNoPiCode(codeEnttity);
@ -1823,12 +1824,15 @@ public class IoCodeTempController extends BaseController {
} else
codeTempService.insert(codeEnttity);
// 异步调用 查询是否存在药品关联信息 后将结果更新至 temp表
relCodeBatchService.threadUpdateIoCodeTempEntity(code);
updateRelCode(bussinessTypeEntity,code);
// relCodeBatchService.threadUpdateIoCodeTempEntity(code);
} else {
checkPrice(codeEnttity, bussinessTypeEntity, inBatch, codeEnttitys);
codeTempService.insert(codeEnttity);
updateRelCode(bussinessTypeEntity,code);
// 查询是否存在药品关联信息 后将结果更新至 temp表
relCodeBatchService.threadUpdateIoCodeTempEntity(code);
// relCodeBatchService.threadUpdateIoCodeTempEntity(code);
}
}
addCodeResult.setOrderId(orderId);
@ -1836,6 +1840,12 @@ public class IoCodeTempController extends BaseController {
return ResultVOUtils.success(addCodeResult);
}
public void updateRelCode(BasicBussinessTypeEntity bussinessTypeEntity, String code) {
if (!(bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_OUT) || bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_RETURN)))
relCodeBatchService.threadUpdateIoCodeTempEntity(code);
}
@Resource
RelCodeDetailService relCodeDetailService;

@ -706,12 +706,12 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = sysWorkplaceDocumentService.findByBusType(addr);
if (IntUtil.value(sysWorkplaceDocumentEntity.getAutoTag()) == 1 && IntUtil.value(collectOrder.getTagStatus()) == 1) {
boolean b = splitFifoCodeService.lockInventoryByOrder(collectOrder.getBillNo(), 1);
if (b && sysWorkplaceDocumentEntity.getAutoHandle()){
if (b && sysWorkplaceDocumentEntity.getAutoHandle()) {
//单据是否自动完成 是 调用 完成
CollectOrderRequest collectOrderRequest = new CollectOrderRequest();
AuthAdmin user = customerService.getUserBean();
collectOrderRequest.setUpdateUser(user.getId());
finishOrder(collectOrderRequest, user);
finishOrder(collectOrderRequest, user, true);
}
}
}
@ -800,7 +800,7 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
SysWorkplacePutRelService sysWorkplacePutRelService;
public void finishOrder(CollectOrderRequest collectOrderRequest, AuthAdmin authAdmin) {
public void finishOrder(CollectOrderRequest collectOrderRequest, AuthAdmin authAdmin, Boolean isAuto) {
IoCollectOrder collectOrder = new IoCollectOrder();
BeanUtils.copyProperties(collectOrderRequest, collectOrder);
collectOrder.setTagStatus(3);
@ -812,7 +812,7 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
// if (sysWorkplacePutRel != null) {
// putWorkPlace = sysWorkplacePutRel.getWorkPlaceCode();
// }
splitCodeService.finishAutoTagCode(collectOrder);
splitCodeService.finishAutoTagCode(collectOrder, isAuto);
//插入备用表

@ -95,7 +95,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
.eq(IoSplitCodeEntity::getCode, code).last("limit 1"));
}
public void splitRemove(IoCollectOrderBiz collectOrderBiz, IoCollectOrder collectOrder, Long putWorkPlaceCode) {
public void splitRemove(IoCollectOrderBiz collectOrderBiz, IoCollectOrder collectOrder, Long putWorkPlaceCode, Boolean isAuto) {
//1.按照先进先出原则查询拆零表获取拆零表ID
List<IoSplitCodeEntity> ioSplitCodeEntities = findSplitCodes(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), putWorkPlaceCode);
@ -146,8 +146,10 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
//预出库队列数量不足
collectOrderBiz.setTagStatus(2);
collectOrderBiz.setTagMsg("预出库队列码数量不足,赋码失败!");
return;
// throw new JsonException(500, "提交失败,工位库存数量不足!");
if (isAuto)
throw new JsonException(500, "提交失败,工位库存数量不足!");
else return;
} else {
//再次执行赋码
ioSplitCodeEntities = findSplitCodes(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), putWorkPlaceCode);
@ -185,8 +187,9 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
if (unCount > 0) {
collectOrderBiz.setTagStatus(2);
collectOrderBiz.setTagMsg("预出库队列码数量不足,赋码失败!");
return;
// throw new JsonException(500, "提交失败,工位库存数量不足!");
if (isAuto)
throw new JsonException(500, "提交失败,工位库存数量不足!");
else return;
} else {
collectOrderBiz.setTagStatus(3);
collectOrderBiz.setTagMsg("赋码完成!");
@ -210,7 +213,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
IoCollectOrderBizBackupService ioCollectOrderBizBackupService;
@Transactional(rollbackFor = Exception.class)
public void finishAutoTagCode(IoCollectOrder collectOrder) {
public void finishAutoTagCode(IoCollectOrder collectOrder, Boolean isAuto) {
SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
Long putWorkPlaceCode = null;
@ -333,8 +336,9 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
if (quotient > 0) {
List<IoSplitFifoCodeEntity> ioSplitFifoCodeEntities = splitFifoCodeService.findByRelId(putWorkPlaceCode, collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo());
if (ioSplitFifoCodeEntities.size() < quotient) {
return;
// throw new JsonException(500, "提交失败,工位库存数量不足!");
if (isAuto)
throw new JsonException(500, "提交失败,工位库存数量不足!");
else return;
}
for (int i = 0; i < quotient; i++) {
IoSplitFifoCodeEntity splitFifoCodeEntity = ioSplitFifoCodeEntities.get(i);
@ -368,7 +372,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
}
//.如果拆零,拆零表扣除
if (remainder > 0) {
splitRemove(collectOrderBiz, collectOrder, putWorkPlaceCode);
splitRemove(collectOrderBiz, collectOrder, putWorkPlaceCode, isAuto);
}
}
ArrayList<IoCollectOrderBizBackup> ioCollectOrderBizBackups = new ArrayList<>();
@ -441,7 +445,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
}
//.如果拆零,拆零表扣除
if (remainder > 0) {
splitRemove(collectOrderBiz, collectOrder, putWorkPlaceCode);
splitRemove(collectOrderBiz, collectOrder, putWorkPlaceCode, false);
}
if (collectOrderBiz.getTagStatus() == 2) {
throw new JsonException(500, "确认失败,工位库存数量不足!");

@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.glxp.api.dao.basic.SysWorkplaceDocumentDao;
import com.glxp.api.dao.schedule.ScheduledDao;
import com.glxp.api.entity.auth.AuthAdmin;
import com.glxp.api.entity.basic.SysWorkplaceBus;
import com.glxp.api.entity.basic.SysWorkplaceDocumentEntity;
import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.entity.collect.IoCollectSet;
@ -15,6 +16,7 @@ import com.glxp.api.req.basic.WorkBindBusTypeRequest;
import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.req.system.ScheduledRequest;
import com.glxp.api.res.basic.SysWorkplaceDocumentResponse;
import com.glxp.api.service.basic.SysWorkplaceBusService;
import com.glxp.api.service.basic.SysWorkplaceDocumentService;
import com.glxp.api.service.collect.IoCollectOrderService;
import com.glxp.api.service.collect.IoCollectOriginService;
@ -24,6 +26,7 @@ import com.glxp.api.util.MsDateUtil;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
@ -47,6 +50,9 @@ public class AsyncIoCollectOrderFinishTask implements SchedulingConfigurer {
SysWorkplaceDocumentService sysWorkplaceDocumentService;
@Resource
IoCollectOrderService collectOrderService;
@Resource
SysWorkplaceBusService sysWorkplaceBusService;
@Override
public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
scheduledTaskRegistrar.addTriggerTask(() -> process(),
@ -64,17 +70,27 @@ public class AsyncIoCollectOrderFinishTask implements SchedulingConfigurer {
private void process() {
List<IoCollectOrder> list = collectOrderService.list(new LambdaQueryWrapper<IoCollectOrder>().eq(IoCollectOrder::getTagStatus, 1));
if (CollUtil.isNotEmpty(list)) {
for (IoCollectOrder collectOrder : list) {
SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = sysWorkplaceDocumentService.findByBusType(collectOrder.getBusType());
if (IntUtil.value(sysWorkplaceDocumentEntity.getAutoTag()) == 1 && IntUtil.value(collectOrder.getTagStatus()) == 1) {
if ( sysWorkplaceDocumentEntity.getAutoHandle()){
if (sysWorkplaceDocumentEntity != null && IntUtil.value(sysWorkplaceDocumentEntity.getAutoTag()) == 1 && IntUtil.value(collectOrder.getTagStatus()) == 1) {
CollectOrderRequest collectOrderRequest = new CollectOrderRequest();
BeanUtils.copyProperties(collectOrderRequest, collectOrder);
//获取当前业务类型对应的采集工位
SysWorkplaceBus sysWorkplaceBus = sysWorkplaceBusService.getOne(new LambdaQueryWrapper<SysWorkplaceBus>().eq(SysWorkplaceBus::getBusTypeCode, sysWorkplaceDocumentEntity.getWorkplaceCode()).last("limit 1"));
if (sysWorkplaceBus == null)
break;
collectOrderRequest.setWorkPlaceCode(sysWorkplaceBus.getWorkplaceCode());
collectOrderRequest.setBusType(sysWorkplaceBus.getBusTypeCode());
collectOrderRequest.setBillNo(collectOrder.getBillNo());
if (sysWorkplaceDocumentEntity.getAutoHandle()) {
//单据是否自动完成 是 调用 完成
AuthAdmin authAdmin = new AuthAdmin();
authAdmin.setId(1l);
CollectOrderRequest collectOrderRequest = new CollectOrderRequest();
collectOrderRequest.setUpdateUser(1l);
collectOrderService.finishOrder(collectOrderRequest, authAdmin);
collectOrderService.finishOrder(collectOrderRequest, authAdmin, true);
}
}
}

@ -4,9 +4,9 @@ server:
spring:
datasource:
driver-class-name: com.p6spy.engine.spy.P6SpyDriver
jdbc-url: jdbc:p6spy:mysql://192.168.0.206:3306/udi_wms?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_wms?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: Glxp@6066
password: 123456
hikari:
connection-timeout: 60000
maximum-pool-size: 20

Loading…
Cancel
Save