|
|
@ -6,6 +6,7 @@ import com.github.pagehelper.PageInfo;
|
|
|
|
import com.glxp.api.common.enums.ResultEnum;
|
|
|
|
import com.glxp.api.common.enums.ResultEnum;
|
|
|
|
import com.glxp.api.common.res.BaseResponse;
|
|
|
|
import com.glxp.api.common.res.BaseResponse;
|
|
|
|
import com.glxp.api.common.util.ResultVOUtils;
|
|
|
|
import com.glxp.api.common.util.ResultVOUtils;
|
|
|
|
|
|
|
|
import com.glxp.api.constant.Constant;
|
|
|
|
import com.glxp.api.constant.WorkOperType;
|
|
|
|
import com.glxp.api.constant.WorkOperType;
|
|
|
|
import com.glxp.api.controller.BaseController;
|
|
|
|
import com.glxp.api.controller.BaseController;
|
|
|
|
import com.glxp.api.entity.auth.SysWorkplace;
|
|
|
|
import com.glxp.api.entity.auth.SysWorkplace;
|
|
|
@ -26,7 +27,9 @@ import com.glxp.api.service.collect.IoCollectOrderBizService;
|
|
|
|
import com.glxp.api.service.collect.IoCollectOrderCodeManService;
|
|
|
|
import com.glxp.api.service.collect.IoCollectOrderCodeManService;
|
|
|
|
import com.glxp.api.service.collect.IoCollectOrderService;
|
|
|
|
import com.glxp.api.service.collect.IoCollectOrderService;
|
|
|
|
import com.glxp.api.service.inout.IoSplitFifoCodeService;
|
|
|
|
import com.glxp.api.service.inout.IoSplitFifoCodeService;
|
|
|
|
|
|
|
|
import com.glxp.api.util.GennerOrderUtils;
|
|
|
|
import com.glxp.api.util.IntUtil;
|
|
|
|
import com.glxp.api.util.IntUtil;
|
|
|
|
|
|
|
|
import com.glxp.api.util.OrderNoTypeBean;
|
|
|
|
import com.glxp.api.util.udi.FilterUdiUtils;
|
|
|
|
import com.glxp.api.util.udi.FilterUdiUtils;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
@ -58,6 +61,8 @@ public class IoCollectOrderCodeManController extends BaseController {
|
|
|
|
UdiRelevanceService udiRelevanceService;
|
|
|
|
UdiRelevanceService udiRelevanceService;
|
|
|
|
@Resource
|
|
|
|
@Resource
|
|
|
|
IoSplitFifoCodeService splitFifoCodeService;
|
|
|
|
IoSplitFifoCodeService splitFifoCodeService;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
GennerOrderUtils gennerOrderUtils;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -95,13 +100,10 @@ public class IoCollectOrderCodeManController extends BaseController {
|
|
|
|
if (bindingResult.hasErrors()) {
|
|
|
|
if (bindingResult.hasErrors()) {
|
|
|
|
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
|
|
|
|
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
SysWorkplace workPlace = sysWorkPlaceService.getWorkplace(addTagCodeReqeust.getWorkPlaceCode());
|
|
|
|
|
|
|
|
IoCollectOrderBiz collectOrderBiz = null;
|
|
|
|
|
|
|
|
IoCollectOrder collectOrder = null;
|
|
|
|
|
|
|
|
|
|
|
|
IoCollectOrder collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo());
|
|
|
|
|
|
|
|
BasicCollectBustypeEntity bustypeEntity = bustypeService.findByCode(collectOrder.getBusType());
|
|
|
|
|
|
|
|
SysWorkplace workPlace = sysWorkPlaceService.getWorkplace(collectOrder.getWorkPlaceCode());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (collectOrder == null)
|
|
|
|
|
|
|
|
return ResultVOUtils.error(500, "单据不存在!");
|
|
|
|
|
|
|
|
//1.校验UDI码完整性
|
|
|
|
//1.校验UDI码完整性
|
|
|
|
String code = addTagCodeReqeust.getCode();
|
|
|
|
String code = addTagCodeReqeust.getCode();
|
|
|
|
if (StringUtils.isBlank(code)) return ResultVOUtils.error(ResultEnum.DATA_ERROR);
|
|
|
|
if (StringUtils.isBlank(code)) return ResultVOUtils.error(ResultEnum.DATA_ERROR);
|
|
|
@ -118,32 +120,73 @@ public class IoCollectOrderCodeManController extends BaseController {
|
|
|
|
else
|
|
|
|
else
|
|
|
|
udiRelevanceResponse = udiRelevanceResponses.get(0);
|
|
|
|
udiRelevanceResponse = udiRelevanceResponses.get(0);
|
|
|
|
|
|
|
|
|
|
|
|
IoCollectOrderBiz collectOrderBiz = null;
|
|
|
|
|
|
|
|
List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(addTagCodeReqeust.getBillNo());
|
|
|
|
List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(addTagCodeReqeust.getBillNo());
|
|
|
|
//2.校验是否处方单UDI码
|
|
|
|
//2.校验是否处方单UDI码
|
|
|
|
if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_GEN_ORDER) {
|
|
|
|
if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_GEN_ORDER) {
|
|
|
|
|
|
|
|
if (StrUtil.isEmpty(addTagCodeReqeust.getBillNo())) {
|
|
|
|
|
|
|
|
String orderNo = gennerOrderUtils.createWdOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER, "yyyyMMdd"));
|
|
|
|
|
|
|
|
BasicCollectBustypeEntity bustypeEntity = bustypeService.findByCode(workPlace.getOrderId());
|
|
|
|
|
|
|
|
IoCollectOrder.builder()
|
|
|
|
|
|
|
|
.billNo(orderNo)
|
|
|
|
|
|
|
|
.busType(bustypeEntity.getCode())
|
|
|
|
|
|
|
|
.fromType(bustypeEntity.getFromType())
|
|
|
|
|
|
|
|
.fromCorp(addTagCodeReqeust.getFromCorp())
|
|
|
|
|
|
|
|
.billTime(new Date())
|
|
|
|
|
|
|
|
.workPlaceCode(workPlace.getWorkplaceId() + "")
|
|
|
|
|
|
|
|
.createTime(new Date())
|
|
|
|
|
|
|
|
.createUser(getUserId() + "")
|
|
|
|
|
|
|
|
.updateTime(new Date())
|
|
|
|
|
|
|
|
.tagStatus(1)
|
|
|
|
|
|
|
|
.build();
|
|
|
|
|
|
|
|
collectOrderService.save(collectOrder);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//直接扫码单生成业务单
|
|
|
|
//直接扫码单生成业务单
|
|
|
|
collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity);
|
|
|
|
collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity);
|
|
|
|
collectOrderBiz.setOrderIdFk(collectOrder.getBillNo());
|
|
|
|
collectOrderBiz.setOrderIdFk(collectOrder.getBillNo());
|
|
|
|
collectOrderBizService.saveOrUpdate(collectOrderBiz);
|
|
|
|
collectOrderBizService.saveOrUpdate(collectOrderBiz);
|
|
|
|
} else if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_VAIL_BATCH) {
|
|
|
|
} else if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_VAIL_BATCH) {
|
|
|
|
|
|
|
|
collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo());
|
|
|
|
|
|
|
|
if (collectOrder == null)
|
|
|
|
|
|
|
|
return ResultVOUtils.error(500, "单据不存在!");
|
|
|
|
//3.校验该UDI码是否已经出库(是否在预出库队列)
|
|
|
|
//3.校验该UDI码是否已经出库(是否在预出库队列)
|
|
|
|
Boolean b1 = splitFifoCodeService.isExitCode(code, collectOrder.getWorkPlaceCode());
|
|
|
|
Boolean b1 = splitFifoCodeService.isExitCode(code, collectOrder.getWorkPlaceCode());
|
|
|
|
if (!b1) {
|
|
|
|
if (!b1) {
|
|
|
|
return ResultVOUtils.error(500, "该追溯码未上货,无法使用!");
|
|
|
|
return ResultVOUtils.error(500, "该追溯码未上货,无法使用!");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//按单校验三期
|
|
|
|
|
|
|
|
collectOrderBiz = vailByBatchNo(udiRelevanceResponses, collectOrderBizs, udiEntity);
|
|
|
|
collectOrderBiz = vailByBatchNo(udiRelevanceResponses, collectOrderBizs, udiEntity);
|
|
|
|
if (collectOrderBiz == null)
|
|
|
|
|
|
|
|
return ResultVOUtils.error(500, "非此单据追溯码!");
|
|
|
|
//先不管
|
|
|
|
else {
|
|
|
|
if (IntUtil.value(workPlace.getCheckInsert()) == 1) {
|
|
|
|
collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + 1);
|
|
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
} else if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_UNVAIL_BATCH) {
|
|
|
|
if (IntUtil.value(workPlace.getWarnType()) == 1) {
|
|
|
|
|
|
|
|
//信息提醒
|
|
|
|
|
|
|
|
if (collectOrderBiz == null) {
|
|
|
|
|
|
|
|
collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity);
|
|
|
|
|
|
|
|
collectOrderBiz.setOrderIdFk(collectOrder.getBillNo());
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + 1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
//禁止录入
|
|
|
|
|
|
|
|
if (collectOrderBiz == null)
|
|
|
|
|
|
|
|
return ResultVOUtils.error(500, "非此单据追溯码!");
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + 1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_UNVAIL_BATCH) {
|
|
|
|
|
|
|
|
collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo());
|
|
|
|
|
|
|
|
if (collectOrder == null)
|
|
|
|
|
|
|
|
return ResultVOUtils.error(500, "单据不存在!");
|
|
|
|
//3.校验该UDI码是否已经出库(是否在预出库队列)
|
|
|
|
//3.校验该UDI码是否已经出库(是否在预出库队列)
|
|
|
|
Boolean b1 = splitFifoCodeService.isExitCode(code, collectOrder.getWorkPlaceCode());
|
|
|
|
Boolean b1 = splitFifoCodeService.isExitCode(code, collectOrder.getWorkPlaceCode());
|
|
|
|
if (!b1) {
|
|
|
|
if (!b1) {
|
|
|
@ -152,10 +195,28 @@ public class IoCollectOrderCodeManController extends BaseController {
|
|
|
|
|
|
|
|
|
|
|
|
//按单不校验三期
|
|
|
|
//按单不校验三期
|
|
|
|
collectOrderBiz = vailNoBatchNo(udiRelevanceResponses, collectOrderBizs);
|
|
|
|
collectOrderBiz = vailNoBatchNo(udiRelevanceResponses, collectOrderBizs);
|
|
|
|
if (collectOrderBiz == null)
|
|
|
|
//先不管
|
|
|
|
return ResultVOUtils.error(500, "非此单据追溯码!");
|
|
|
|
if (IntUtil.value(workPlace.getCheckInsert()) == 1) {
|
|
|
|
else {
|
|
|
|
|
|
|
|
collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + 1);
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (IntUtil.value(workPlace.getWarnType()) == 1) {
|
|
|
|
|
|
|
|
//信息提醒
|
|
|
|
|
|
|
|
if (collectOrderBiz == null) {
|
|
|
|
|
|
|
|
collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity);
|
|
|
|
|
|
|
|
collectOrderBiz.setOrderIdFk(collectOrder.getBillNo());
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + 1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
//禁止录入
|
|
|
|
|
|
|
|
if (collectOrderBiz == null)
|
|
|
|
|
|
|
|
return ResultVOUtils.error(500, "非此单据追溯码!");
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + 1);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
collectOrderBizService.updateById(collectOrderBiz);
|
|
|
|
collectOrderBizService.updateById(collectOrderBiz);
|
|
|
@ -184,7 +245,7 @@ public class IoCollectOrderCodeManController extends BaseController {
|
|
|
|
.build();
|
|
|
|
.build();
|
|
|
|
collectOrderCodeManService.save(collectOrderCodeMan);
|
|
|
|
collectOrderCodeManService.save(collectOrderCodeMan);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return ResultVOUtils.success("赋码成功");
|
|
|
|
return ResultVOUtils.success(collectOrder);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -213,8 +274,8 @@ public class IoCollectOrderCodeManController extends BaseController {
|
|
|
|
.batchNo(udiEntity.getBatchNo())
|
|
|
|
.batchNo(udiEntity.getBatchNo())
|
|
|
|
.productDate(udiEntity.getProduceDate())
|
|
|
|
.productDate(udiEntity.getProduceDate())
|
|
|
|
.expireDate(udiEntity.getExpireDate())
|
|
|
|
.expireDate(udiEntity.getExpireDate())
|
|
|
|
.count(1)
|
|
|
|
.count(0)
|
|
|
|
.actCount(1)
|
|
|
|
.actCount(0)
|
|
|
|
.scanCount(1)
|
|
|
|
.scanCount(1)
|
|
|
|
.scanActCount(1)
|
|
|
|
.scanActCount(1)
|
|
|
|
.measureUnit(udiRelevanceResponse.getMeasname())
|
|
|
|
.measureUnit(udiRelevanceResponse.getMeasname())
|
|
|
|