代码备份

dev_2.5_optimize_250306
yewj 3 months ago
parent 837060c28d
commit 026a49b886

@ -141,7 +141,6 @@ public class IoCodeTempController extends BaseController {
IoCollectOrderCodeManService collectOrderCodeManService;
/**
* PDA-----
*/
@ -1244,6 +1243,12 @@ public class IoCodeTempController extends BaseController {
if (udiInfoEntity == null) {
return ResultVOUtils.error(500, "药品字典不存在此产品!");
}
if (IntUtil.value(udiRelevanceResponse.getNotCodeType()) != 0) {
return ResultVOUtils.error(500, "当前为无码类型产品,无需扫码!");
}
if (StrUtil.isEmpty(udiEntity.getBatchNo())) {
IoCodeLostEntity codeLostEntity = codeLostService.findByCode(addOrderRequest.getCode());
if (codeLostEntity != null) {

@ -57,7 +57,6 @@ public class IoCollectOrderBiz implements Serializable {
private String ybbm;
/**
*
*/
@ -153,7 +152,7 @@ public class IoCollectOrderBiz implements Serializable {
* 1:23
*/
@TableField(value = "tagStatus")
@ApiModelProperty(value = "单据明细赋码状态 1:未赋码2部分赋码3已赋码")
@ApiModelProperty(value = "单据明细赋码状态 1:未赋码2部分赋码3已赋码;4:无需赋码")
private Integer tagStatus;
/**

@ -333,4 +333,36 @@ public class UdiRelevanceResponse {
*
*/
private Integer detailSort;
/**
* 01567
*/
private Integer notCodeType;
/**
* 01
*/
private Integer manuReview;
/**
* 01
*/
@TableField(value = "drugSellingPrice")
private String drugSellingPrice;
/**
*
*/
@TableField(value = "drugSellingPriceTime")
private Date drugSellingPriceTime;
/**
* 0 1
*/
@TableField(value = "hangingNetType")
private Integer hangingNetType;
}

@ -436,13 +436,13 @@ public class IoCodeTempService {
if (code.length() == 13) {
UdiProductEntity udiProductEntity = udiProductService.findBySptm(code);
if (udiProductEntity != null) {
BaseResponse baseResponse = ResultVOUtils.error(508, "UDI码格式错误");
BaseResponse baseResponse = ResultVOUtils.error(508, "追溯码格式错误");
baseResponse.setData(udiProductEntity);
return baseResponse;
}
}
}
BaseResponse baseResponse = ResultVOUtils.error(501, "UDI码格式错误");
BaseResponse baseResponse = ResultVOUtils.error(501, "追溯码格式错误");
baseResponse.setData(originCode);
return baseResponse;
}

@ -259,12 +259,16 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
}
}
for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) {
// UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(collectOrderBiz.getRelId());
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
filterUdiRelRequest.setId(collectOrderBiz.getRelId());
filterUdiRelRequest.setPackLevel("1");
//todo 后面可以 没有搜索到层级为1的
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectOneUdi(filterUdiRelRequest);
if (IntUtil.value(udiRelevanceResponse.getNotCodeType()) != 0) {
collectOrderBiz.setTagStatus(4);//无需扫码
collectOrderBizService.updateById(collectOrderBiz);
continue;
}
//去除掉已经手动扫码的数据,找出需要自动扫码的明细,执行上述的拆零或整取
int unTagCount = collectOrderBiz.getCount() - IntUtil.value(collectOrderBiz.getScanActCount());
if (unTagCount > 0) {
@ -308,7 +312,6 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
List<IoSplitFifoCodeEntity> ioSplitFifoCodeEntities = splitFifoCodeService.findByRelId(putWorkPlaceCode, collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), queueCode);
if (ioSplitFifoCodeEntities.size() < quotient) {
if (isAuto) throw new JsonException(500, "提交失败,工位库存数量不足!");
// else return;
}
if (ioSplitFifoCodeEntities.size() > 0) {
Integer indexFlag = ioSplitFifoCodeEntities.size() < quotient ? ioSplitFifoCodeEntities.size() : quotient;
@ -331,13 +334,12 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
}
}
}
//.如果拆零,拆零表扣除
if (remainder > 0) {
splitRemove(collectOrderBiz, collectOrder, putWorkPlaceCode, isAuto, null);
}
collectOrderBizService.updateById(collectOrderBiz);
}
ArrayList<IoCollectOrderBizBackup> ioCollectOrderBizBackups = new ArrayList<>();
for (IoCollectOrderBiz ioCollectOrderBiz : collectOrderBizs) {

@ -19,6 +19,7 @@ import com.glxp.api.service.collect.IoCollectOrderService;
import com.glxp.api.service.collect.IoCollectSetService;
import com.glxp.api.util.IntUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
@ -30,6 +31,7 @@ import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
@Slf4j
@Component
@ -49,9 +51,13 @@ public class AsyncIoCollectOrderFinishTask implements SchedulingConfigurer {
@Resource
IoCollectSetBustypeMapper ioCollectSetBustypeMapper;
// 使用原子布尔值作为简单的锁机制
private final AtomicBoolean isRunning = new AtomicBoolean(false);
@Override
public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
scheduledTaskRegistrar.addTriggerTask(() -> process(),
scheduledTaskRegistrar.addTriggerTask(() -> processWithLock(),
triggerContext -> {
ScheduledRequest scheduledRequest = new ScheduledRequest();
scheduledRequest.setCronName("ioCollectOrderFinishTask");
@ -64,6 +70,23 @@ public class AsyncIoCollectOrderFinishTask implements SchedulingConfigurer {
});
}
private void processWithLock() {
// 如果已经在运行,则跳过本次执行
if (!isRunning.compareAndSet(false, true)) {
log.warn("上一次任务还在执行中,跳过本次执行");
return;
}
try {
log.info("开始执行订单下载任务");
process();
} finally {
isRunning.set(false);
log.info("订单下载任务执行完成");
}
}
@Resource
IoCollectSetService collectSetService;
@ -97,7 +120,7 @@ public class AsyncIoCollectOrderFinishTask implements SchedulingConfigurer {
try {
collectOrderService.finishOrder(collectOrderRequest, authAdmin, true);
} catch (Exception e) {
log.error("自动完成第三方处方单异常", e);
log.error("自动完成第三方处方单异常", ExceptionUtils.getStackTrace(e));
}
}

Loading…
Cancel
Save