|
|
|
@ -6,7 +6,10 @@ import com.github.pagehelper.PageInfo;
|
|
|
|
|
import com.glxp.api.common.enums.ResultEnum;
|
|
|
|
|
import com.glxp.api.common.res.BaseResponse;
|
|
|
|
|
import com.glxp.api.common.util.ResultVOUtils;
|
|
|
|
|
import com.glxp.api.constant.WorkOperType;
|
|
|
|
|
import com.glxp.api.controller.BaseController;
|
|
|
|
|
import com.glxp.api.entity.auth.SysWorkplace;
|
|
|
|
|
import com.glxp.api.entity.basic.BasicCollectBustypeEntity;
|
|
|
|
|
import com.glxp.api.entity.basic.UdiEntity;
|
|
|
|
|
import com.glxp.api.entity.collect.IoCollectOrder;
|
|
|
|
|
import com.glxp.api.entity.collect.IoCollectOrderBiz;
|
|
|
|
@ -16,6 +19,8 @@ import com.glxp.api.req.inout.AddTagCodeReqeust;
|
|
|
|
|
import com.glxp.api.res.PageSimpleResponse;
|
|
|
|
|
import com.glxp.api.res.basic.UdiRelevanceResponse;
|
|
|
|
|
import com.glxp.api.res.collect.CollectOrderCodeManResponse;
|
|
|
|
|
import com.glxp.api.service.auth.SysWorkplaceService;
|
|
|
|
|
import com.glxp.api.service.basic.BasicCollectBustypeService;
|
|
|
|
|
import com.glxp.api.service.basic.UdiRelevanceService;
|
|
|
|
|
import com.glxp.api.service.collect.IoCollectOrderBizService;
|
|
|
|
|
import com.glxp.api.service.collect.IoCollectOrderCodeManService;
|
|
|
|
@ -74,6 +79,10 @@ public class IoCollectOrderCodeManController extends BaseController {
|
|
|
|
|
return ResultVOUtils.success(pageSimpleResponse);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
BasicCollectBustypeService bustypeService;
|
|
|
|
|
@Resource
|
|
|
|
|
SysWorkplaceService sysWorkPlaceService;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 器械拆零处方赋码(手动赋码)
|
|
|
|
@ -88,6 +97,9 @@ public class IoCollectOrderCodeManController extends BaseController {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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码完整性
|
|
|
|
@ -105,18 +117,49 @@ public class IoCollectOrderCodeManController extends BaseController {
|
|
|
|
|
return ResultVOUtils.error(500, "耗材字典不存在此产品!");
|
|
|
|
|
else
|
|
|
|
|
udiRelevanceResponse = udiRelevanceResponses.get(0);
|
|
|
|
|
//2.校验是否处方单UDI码
|
|
|
|
|
|
|
|
|
|
IoCollectOrderBiz collectOrderBiz = null;
|
|
|
|
|
List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(addTagCodeReqeust.getBillNo());
|
|
|
|
|
IoCollectOrderBiz collectOrderBiz = vailPrescribeProduct(udiRelevanceResponses, collectOrderBizs, udiEntity);
|
|
|
|
|
//2.校验是否处方单UDI码
|
|
|
|
|
if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_GEN_ORDER) {
|
|
|
|
|
//直接扫码单生成业务单
|
|
|
|
|
collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity);
|
|
|
|
|
collectOrderBiz.setOrderIdFk(collectOrder.getBillNo());
|
|
|
|
|
collectOrderBizService.saveOrUpdate(collectOrderBiz);
|
|
|
|
|
} else if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_VAIL_BATCH) {
|
|
|
|
|
|
|
|
|
|
//3.校验该UDI码是否已经出库(是否在预出库队列)
|
|
|
|
|
Boolean b1 = splitFifoCodeService.isExitCode(code, collectOrder.getWorkPlaceCode());
|
|
|
|
|
if (!b1) {
|
|
|
|
|
return ResultVOUtils.error(500, "该追溯码未上货,无法使用!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//按单校验三期
|
|
|
|
|
collectOrderBiz = vailByBatchNo(udiRelevanceResponses, collectOrderBizs, udiEntity);
|
|
|
|
|
if (collectOrderBiz == null)
|
|
|
|
|
return ResultVOUtils.error(500, "非此单据UDI码!");
|
|
|
|
|
return ResultVOUtils.error(500, "非此单据追溯码!");
|
|
|
|
|
else {
|
|
|
|
|
collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + 1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} else if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_UNVAIL_BATCH) {
|
|
|
|
|
|
|
|
|
|
//3.校验该UDI码是否已经出库(是否在预出库队列)
|
|
|
|
|
Boolean b1 = splitFifoCodeService.isExitCode(code, collectOrder.getWorkPlaceCode());
|
|
|
|
|
if (!b1) {
|
|
|
|
|
return ResultVOUtils.error(500, "该UDI码未出库,无法使用!");
|
|
|
|
|
return ResultVOUtils.error(500, "该追溯码未上货,无法使用!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//按单不校验三期
|
|
|
|
|
collectOrderBiz = vailNoBatchNo(udiRelevanceResponses, collectOrderBizs);
|
|
|
|
|
if (collectOrderBiz == null)
|
|
|
|
|
return ResultVOUtils.error(500, "非此单据追溯码!");
|
|
|
|
|
else {
|
|
|
|
|
collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + 1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//4.
|
|
|
|
|
collectOrderBizService.updateById(collectOrderBiz);
|
|
|
|
|
|
|
|
|
|
IoCollectOrderCodeMan exitCode = collectOrderCodeManService.findByCode(collectOrderBiz.getOrderIdFk(), code);
|
|
|
|
|
if (StrUtil.isEmpty(udiEntity.getSerialNo()) && exitCode != null) {
|
|
|
|
|
exitCode.setScanCount(IntUtil.value(exitCode.getScanCount()) + 1);
|
|
|
|
@ -127,8 +170,12 @@ public class IoCollectOrderCodeManController extends BaseController {
|
|
|
|
|
IoCollectOrderCodeMan collectOrderCodeMan =
|
|
|
|
|
IoCollectOrderCodeMan.builder()
|
|
|
|
|
.udiCode(code)
|
|
|
|
|
.orderIdFk(collectOrder.getBillNo())
|
|
|
|
|
.relId(collectOrderBiz.getRelId())
|
|
|
|
|
.nameCode(udiRelevanceResponse.getNameCode())
|
|
|
|
|
.batchNo(udiEntity.getBatchNo())
|
|
|
|
|
.productDate(udiEntity.getProduceDate())
|
|
|
|
|
.expireDate(udiEntity.getExpireDate())
|
|
|
|
|
.createTime(new Date())
|
|
|
|
|
.createUser(getUserId())
|
|
|
|
|
.updateTime(new Date())
|
|
|
|
@ -141,10 +188,46 @@ public class IoCollectOrderCodeManController extends BaseController {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public IoCollectOrderBiz vailPrescribeProduct(List<UdiRelevanceResponse> udiRelevanceResponses, List<IoCollectOrderBiz> collectOrderBizs, UdiEntity udiEntity) {
|
|
|
|
|
public IoCollectOrderBiz scanGenOrder(List<UdiRelevanceResponse> udiRelevanceResponses, List<IoCollectOrderBiz> collectOrderBizs, UdiEntity udiEntity) {
|
|
|
|
|
for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) {
|
|
|
|
|
for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) {
|
|
|
|
|
if (udiRelevanceResponse.getId().equals(collectOrderBiz.getRelId()) &&
|
|
|
|
|
(StrUtil.isNotEmpty(collectOrderBiz.getBatchNo()) && collectOrderBiz.getBatchNo().equals(udiEntity.getBatchNo()))
|
|
|
|
|
) {
|
|
|
|
|
collectOrderBiz.setCount(IntUtil.value(collectOrderBiz.getCount()) + 1);
|
|
|
|
|
collectOrderBiz.setScanCount(IntUtil.value(collectOrderBiz.getScanCount()) + 1);
|
|
|
|
|
return collectOrderBiz;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceResponses.get(0);
|
|
|
|
|
return IoCollectOrderBiz.builder()
|
|
|
|
|
.relId(udiRelevanceResponse.getRelId())
|
|
|
|
|
.thrCode(udiRelevanceResponse.getMainId())
|
|
|
|
|
.ybbm(udiRelevanceResponse.getYbbm())
|
|
|
|
|
.payFeeCode(udiRelevanceResponse.getPayFeeCode())
|
|
|
|
|
.cpmctymc(udiRelevanceResponse.getCpmctymc())
|
|
|
|
|
.nameCode(udiRelevanceResponse.getNameCode())
|
|
|
|
|
.ggxh(udiRelevanceResponse.getGgxh())
|
|
|
|
|
.batchNo(udiEntity.getBatchNo())
|
|
|
|
|
.productDate(udiEntity.getProduceDate())
|
|
|
|
|
.expireDate(udiEntity.getExpireDate())
|
|
|
|
|
.count(1)
|
|
|
|
|
.actCount(1)
|
|
|
|
|
.scanCount(1)
|
|
|
|
|
.scanActCount(1)
|
|
|
|
|
.measureUnit(udiRelevanceResponse.getMeasname())
|
|
|
|
|
.createTime(new Date())
|
|
|
|
|
.updateTime(new Date())
|
|
|
|
|
.build();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public IoCollectOrderBiz vailByBatchNo(List<UdiRelevanceResponse> udiRelevanceResponses, List<IoCollectOrderBiz> collectOrderBizs, UdiEntity udiEntity) {
|
|
|
|
|
for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) {
|
|
|
|
|
for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) {
|
|
|
|
|
if (udiRelevanceResponse.getId().equals(collectOrderBiz) &&
|
|
|
|
|
if (udiRelevanceResponse.getId().equals(collectOrderBiz.getRelId()) &&
|
|
|
|
|
(StrUtil.isNotEmpty(collectOrderBiz.getBatchNo()) && collectOrderBiz.getBatchNo().equals(udiEntity.getBatchNo()))
|
|
|
|
|
) {
|
|
|
|
|
return collectOrderBiz;
|
|
|
|
@ -156,4 +239,18 @@ public class IoCollectOrderCodeManController extends BaseController {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public IoCollectOrderBiz vailNoBatchNo(List<UdiRelevanceResponse> udiRelevanceResponses, List<IoCollectOrderBiz> collectOrderBizs) {
|
|
|
|
|
for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) {
|
|
|
|
|
for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) {
|
|
|
|
|
if (udiRelevanceResponse.getId().equals(collectOrderBiz.getRelId())
|
|
|
|
|
) {
|
|
|
|
|
return collectOrderBiz;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|