汇总单扫码校验,与单据提交校验修改

dev_2.5_csconfilt
yewj 3 months ago
parent 6b8e839da8
commit 6ae643f0d4

@ -80,9 +80,7 @@ public class IoCollectOrderController extends BaseController {
request.setUserId(userId.toString());
page = basicCollectUserService.filterList(request);
if (page != null && page.size() > 0) {
workPlaceCodes = page.stream()
.map(UserWorkResponse::getWorkplaceId)
.collect(Collectors.toList());
workPlaceCodes = page.stream().map(UserWorkResponse::getWorkplaceId).collect(Collectors.toList());
}
//通过工位列表 获取出 业务列表
workBindBusTypeRequest.setWorkPlaceCodes(workPlaceCodes);
@ -98,9 +96,7 @@ public class IoCollectOrderController extends BaseController {
}
if (CollUtil.isNotEmpty(sysWorkplaceDocumentResponses)) {
Set<String> uniqueDocumentTypeCodesLinkedHashSet = sysWorkplaceDocumentResponses.stream()
.map(SysWorkplaceDocumentResponse::getDocumentTypeCode)
.collect(Collectors.toCollection(LinkedHashSet::new));
Set<String> uniqueDocumentTypeCodesLinkedHashSet = sysWorkplaceDocumentResponses.stream().map(SysWorkplaceDocumentResponse::getDocumentTypeCode).collect(Collectors.toCollection(LinkedHashSet::new));
List<String> documentTypeCodes = new ArrayList<>(uniqueDocumentTypeCodesLinkedHashSet);
collectOrderRequest.setDocumentTypeCodes(documentTypeCodes);
@ -128,8 +124,7 @@ public class IoCollectOrderController extends BaseController {
request.setBusType(collectOrderRequest.getBusType());
request.setTagStatusList(List.of(1));
List<IoCollectOrderResponse> orderResponses = collectOrderService.filterList(request);
if (CollUtil.isNotEmpty(orderResponses))
return ResultVOUtils.success(orderResponses.get(0));
if (CollUtil.isNotEmpty(orderResponses)) return ResultVOUtils.success(orderResponses.get(0));
return ResultVOUtils.error(500, "该工位已无待处理单据");
}
@ -154,20 +149,17 @@ public class IoCollectOrderController extends BaseController {
request.setUpdateUser(getUserId());
request.setTagStatus(2);
List<IoCollectOrderResponse> orderResponses = collectOrderService.filterList(request);
if (CollUtil.isNotEmpty(orderResponses))
return ResultVOUtils.success(orderResponses.get(0));
if (CollUtil.isNotEmpty(orderResponses)) return ResultVOUtils.success(orderResponses.get(0));
else {
request.setTagStatus(-1);
orderResponses = collectOrderService.filterList(request);
if (CollUtil.isNotEmpty(orderResponses))
return ResultVOUtils.success(orderResponses.get(0));
if (CollUtil.isNotEmpty(orderResponses)) return ResultVOUtils.success(orderResponses.get(0));
else {
IoCollectSet collectSet = collectSetService.getSet();
if (IntUtil.value(collectSet.getAutoAllotOrder())) {
request.setTagStatus(1);
orderResponses = collectOrderService.filterList(request);
if (CollUtil.isNotEmpty(orderResponses))
return ResultVOUtils.success(orderResponses.get(0));
if (CollUtil.isNotEmpty(orderResponses)) return ResultVOUtils.success(orderResponses.get(0));
}
}
}
@ -192,13 +184,11 @@ public class IoCollectOrderController extends BaseController {
request.setLimit(1);
request.setBillNo(collectOrderRequest.getBillNo());
List<IoCollectOrderResponse> orderResponses = collectOrderService.filterList(request);
if (CollUtil.isNotEmpty(orderResponses))
return ResultVOUtils.success(orderResponses.get(0));
if (CollUtil.isNotEmpty(orderResponses)) return ResultVOUtils.success(orderResponses.get(0));
else {
request.setTagStatus(-1);
orderResponses = collectOrderService.filterList(request);
if (CollUtil.isNotEmpty(orderResponses))
return ResultVOUtils.success(orderResponses.get(0));
if (CollUtil.isNotEmpty(orderResponses)) return ResultVOUtils.success(orderResponses.get(0));
}
return ResultVOUtils.error(500, "未查到待处理单据");
}
@ -214,7 +204,7 @@ public class IoCollectOrderController extends BaseController {
return ResultVOUtils.error(500, "未找到单据");
}
//如果是 处理单据页面来的 有汇总单号 要走汇总单号
if (collectOrderBizRequest.getSummaryNoFlag() && StrUtil.isNotEmpty(collectOrder.getSummaryNo())){
if (collectOrderBizRequest.getSummaryNoFlag() && StrUtil.isNotEmpty(collectOrder.getSummaryNo())) {
collectOrderBizRequest.setSummaryNo(collectOrder.getSummaryNo());
List<CollectOrderBizResponse> list = collectOrderBizService.filterList(collectOrderBizRequest);
PageInfo<CollectOrderBizResponse> pageInfo = new PageInfo<>(list);
@ -222,7 +212,7 @@ public class IoCollectOrderController extends BaseController {
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(list);
return ResultVOUtils.success(pageSimpleResponse);
}else {
} else {
List<CollectOrderBizResponse> list = collectOrderBizService.filterList(collectOrderBizRequest);
PageInfo<CollectOrderBizResponse> pageInfo = new PageInfo<>(list);
PageSimpleResponse<CollectOrderBizResponse> pageSimpleResponse = new PageSimpleResponse<>();
@ -345,11 +335,9 @@ public class IoCollectOrderController extends BaseController {
BeanUtils.copyProperties(collectOrderRequest, collectOrder);
collectOrder.setUpdateTime(new Date());
collectOrder.setUpdateUser(getUserId());
boolean update = collectOrderService.update(new LambdaUpdateWrapper<IoCollectOrder>().eq(IoCollectOrder::getBillNo, collectOrder.getBillNo())
.set(IoCollectOrder::getTagStatus, 2).set(IoCollectOrder::getUpdateUser, getUserId()));
boolean update = collectOrderService.update(new LambdaUpdateWrapper<IoCollectOrder>().eq(IoCollectOrder::getBillNo, collectOrder.getBillNo()).set(IoCollectOrder::getTagStatus, 2).set(IoCollectOrder::getUpdateUser, getUserId()));
if (collectOrder.getTagStatus() == 2) {
collectOrderOriginService.update(new LambdaUpdateWrapper<IoCollectOrderOrigin>().eq(IoCollectOrderOrigin::getBillNo, collectOrder.getBillNo())
.set(IoCollectOrderOrigin::getTagStatus, 2));
collectOrderOriginService.update(new LambdaUpdateWrapper<IoCollectOrderOrigin>().eq(IoCollectOrderOrigin::getBillNo, collectOrder.getBillNo()).set(IoCollectOrderOrigin::getTagStatus, 2));
}
return ResultVOUtils.success();
}
@ -421,31 +409,56 @@ public class IoCollectOrderController extends BaseController {
@PostMapping("/udiwms/basic/collect/order/finish")
@Transactional(rollbackFor = Exception.class)
public BaseResponse saveFinishOrder(@RequestBody CollectOrderRequest collectOrderRequest) {
List<String> billNos = new ArrayList<>();
if (!IntUtil.value(collectOrderRequest.getConfirmFinish())) {
//1.校验是否全部自动赋码
CollectOrderBizRequest collectOrderBizRequest = new CollectOrderBizRequest();
collectOrderBizRequest.setOrderIdFk(collectOrderRequest.getBillNo());
List<CollectOrderBizResponse> collectOrderBizResponses = collectOrderService.combieOrderDetail(collectOrderBizRequest);
IoCollectOrder collectOrder = collectOrderService.getByBillNo(collectOrderRequest.getBillNo());
if (StrUtil.isNotEmpty(collectOrder.getSummaryNo())) {
// collectOrderBizRequest.setSummaryNo(collectOrder.getSummaryNo());
billNos = collectOrderService.getBillBySummary(collectOrder.getSummaryNo());
} else {
billNos.add(collectOrderRequest.getBillNo());
}
boolean isAllTag = true;
String msg = "";
if (CollUtil.isNotEmpty(collectOrderBizResponses)) {
for (int i = 0; i < collectOrderBizResponses.size(); i++) {
CollectOrderBizResponse collectOrderBizResponse = collectOrderBizResponses.get(i);
if (!(StrUtil.isNotEmpty(collectOrderBizResponse.getFinishUdiCode()) || collectOrderBizResponse.getAutoTagStatus() == 2)) {
isAllTag = false;
String cpmctymc = collectOrderBizResponse.getCpmctymc();
Integer count = collectOrderBizResponse.getCount();
Integer autoResCount = IntUtil.value(collectOrderBizResponse.getAutoResCount());
msg = msg + " " + cpmctymc + ":未采集数量" + (count - autoResCount) + ";";
for (String billNo : billNos) {
collectOrderBizRequest.setOrderIdFk(billNo);
List<CollectOrderBizResponse> collectOrderBizResponses = collectOrderService.combieOrderDetail(collectOrderBizRequest);
if (CollUtil.isNotEmpty(collectOrderBizResponses)) {
for (int i = 0; i < collectOrderBizResponses.size(); i++) {
CollectOrderBizResponse collectOrderBizResponse = collectOrderBizResponses.get(i);
if (!(StrUtil.isNotEmpty(collectOrderBizResponse.getFinishUdiCode()) || collectOrderBizResponse.getAutoTagStatus() == 2)) {
isAllTag = false;
String cpmctymc = collectOrderBizResponse.getCpmctymc();
Integer count = collectOrderBizResponse.getCount();
Integer autoResCount = IntUtil.value(collectOrderBizResponse.getAutoResCount());
msg = msg + " " + cpmctymc + ":未采集数量" + (count - autoResCount) + ";";
}
}
}
}
if (!isAllTag) {
return ResultVOUtils.error(502, "该业务单据未全部赋码【" + msg.replaceAll(";$", "") + "】,是否强制完成单据?");
}
}
collectOrderService.finishOrder(collectOrderRequest, getUser(), false);
if (CollUtil.isNotEmpty(billNos)) {
List<IoCollectOrder> collectOrders = collectOrderService.list(new LambdaQueryWrapper<IoCollectOrder>().in(IoCollectOrder::getBillNo, billNos));
if (CollUtil.isNotEmpty(collectOrders)) {
for (IoCollectOrder collectOrder : collectOrders) {
CollectOrderRequest tempRequest = new CollectOrderRequest();
BeanUtils.copyProperties(collectOrder, tempRequest);
collectOrderService.finishOrder(tempRequest, getUser(), false);
}
}
} else {
collectOrderService.finishOrder(collectOrderRequest, getUser(), false);
}
return ResultVOUtils.success();
}
@ -459,9 +472,14 @@ public class IoCollectOrderController extends BaseController {
if (collectOrderRequest.getIsCheckFinish() != null) {
collectOrderBizRequest.setIsOrderCheck(collectOrderRequest.getIsCheckFinish());
}
IoCollectOrder collectOrder = collectOrderService.getByBillNo(collectOrderRequest.getBillNo());
if (StrUtil.isNotEmpty(collectOrder.getSummaryNo())) {
collectOrderBizRequest.setSummaryNo(collectOrder.getSummaryNo());
}
List<CollectOrderBizResponse> collectOrderBizResponses = collectOrderService.combieOrderDetail(collectOrderBizRequest);
boolean isAllTag = collectOrderBizResponses.stream()
.allMatch(obj -> StrUtil.isNotEmpty(obj.getFinishUdiCode()) || obj.getAutoTagStatus() == 2);
boolean isAllTag = collectOrderBizResponses.stream().allMatch(obj -> StrUtil.isNotEmpty(obj.getFinishUdiCode()) || obj.getAutoTagStatus() == 2);
}
collectOrderService.finishOrder(collectOrderRequest, getUser(), false);
return ResultVOUtils.success();
@ -486,8 +504,7 @@ public class IoCollectOrderController extends BaseController {
if (!IntUtil.value(collectSet.getGetSplitConfirm())) {
confirmOrderBiz.setSkipSplitConfirm(true);
}
ConfirmResponse splitInfo = splitCodeService.confirmBizAutiTagCode(confirmOrderBiz, confirmOrderBiz.getQueueCode(),
confirmOrderBiz.getConfirmSplitCode(), confirmOrderBiz.getSkipSplitConfirm());
ConfirmResponse splitInfo = splitCodeService.confirmBizAutiTagCode(confirmOrderBiz, confirmOrderBiz.getQueueCode(), confirmOrderBiz.getConfirmSplitCode(), confirmOrderBiz.getSkipSplitConfirm());
return ResultVOUtils.success(splitInfo);
}
@ -504,8 +521,7 @@ public class IoCollectOrderController extends BaseController {
return ResultVOUtils.error(500, "单据号不能为空!");
}
List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(collectOrderRequest.getBillNo());
boolean allConfirmed = CollUtil.isNotEmpty(collectOrderBizs) &&
collectOrderBizs.stream().allMatch(biz -> IntUtil.value(biz.getGetConfirm()));
boolean allConfirmed = CollUtil.isNotEmpty(collectOrderBizs) && collectOrderBizs.stream().allMatch(biz -> IntUtil.value(biz.getGetConfirm()));
if (allConfirmed) {
collectOrderService.confirmFinishOrder(collectOrderRequest, getUser());
return ResultVOUtils.success("单据完成!");
@ -521,16 +537,13 @@ public class IoCollectOrderController extends BaseController {
*/
@PostMapping("/udiwms/basic/collect/order/vailFinish")
public BaseResponse vailOrderFinish(@RequestBody CollectOrderRequest collectOrderRequest) {
if (StrUtil.isEmpty(collectOrderRequest.getBillNo()))
return ResultVOUtils.error(500, "单据号不能为空!");
if (StrUtil.isEmpty(collectOrderRequest.getBillNo())) return ResultVOUtils.error(500, "单据号不能为空!");
CollectOrderBizRequest collectOrderBizRequest = new CollectOrderBizRequest();
collectOrderBizRequest.setOrderIdFk(collectOrderRequest.getBillNo());
List<CollectOrderBizResponse> collectOrderBizResponses = collectOrderService.combieOrderDetail(collectOrderBizRequest);
boolean isAllTag = collectOrderBizResponses.stream()
.allMatch(obj -> obj.getAutoTagStatus() == 2);
boolean isAllTag = collectOrderBizResponses.stream().allMatch(obj -> obj.getAutoTagStatus() == 2);
boolean isAllTag2 = collectOrderBizResponses.stream()
.allMatch(obj -> IntUtil.value(obj.getScanActCount()) >= IntUtil.value(obj.getCount()));
boolean isAllTag2 = collectOrderBizResponses.stream().allMatch(obj -> IntUtil.value(obj.getScanActCount()) >= IntUtil.value(obj.getCount()));
return ResultVOUtils.success(isAllTag || isAllTag2);
}

@ -61,6 +61,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCodeManMapper, IoCollectOrderCodeMan> {
@ -116,14 +117,12 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
}
public List<IoCollectOrderCodeMan> listByBillNo(String billNo) {
return collectOrderCodeManMapper.selectList(new LambdaQueryWrapper<IoCollectOrderCodeMan>()
.eq(IoCollectOrderCodeMan::getOrderIdFk, billNo));
return collectOrderCodeManMapper.selectList(new LambdaQueryWrapper<IoCollectOrderCodeMan>().eq(IoCollectOrderCodeMan::getOrderIdFk, billNo));
}
public IoCollectOrderCodeMan findByCode(String billNo, String code) {
return collectOrderCodeManMapper.selectOne(new LambdaQueryWrapper<IoCollectOrderCodeMan>().eq(IoCollectOrderCodeMan::getOrderIdFk, billNo)
.eq(IoCollectOrderCodeMan::getUdiCode, code).last("limit 1"));
return collectOrderCodeManMapper.selectOne(new LambdaQueryWrapper<IoCollectOrderCodeMan>().eq(IoCollectOrderCodeMan::getOrderIdFk, billNo).eq(IoCollectOrderCodeMan::getUdiCode, code).last("limit 1"));
}
@Resource
@ -141,18 +140,12 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(workPlace.getWorkplaceId(), null);
IoCollectSet collectSet = collectSetService.getSet();
Long putWorkPlaceCode = null;
if (sysWorkplacePutRel != null)
putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
if (sysWorkplacePutRel != null) putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
if (workPlace == null) throw new JsonException(500, "请先选择工位");
SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = sysWorkplaceDocumentService.findByWorkplaceCode(workPlace.getWorkplaceId(), addTagCodeReqeust.getBusType());
IoCollectOrderBiz collectOrderBiz = null;
IoCollectOrder collectOrder = null;
// try {
// Thread.sleep(3*1000);
// } catch (InterruptedException e) {
// throw new RuntimeException(e);
// }
//1.校验UDI码完整性
String code = addTagCodeReqeust.getCode();
if (StringUtils.isBlank(code)) throw new JsonException(ResultEnum.DATA_ERROR.getMessage());
@ -183,7 +176,6 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
}
}
} else {
if (udiRelevanceResponse.getDistributeMaxLevel() != null && IntUtil.value(udiRelevanceResponse.getDistributeMaxLevel()) < IntUtil.value(udiRelevanceResponse.getPackLevel())) {
throw new JsonException(500, "当前产品不支持采集该包装层级追溯码!");
@ -194,13 +186,13 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
}
//如果是处方退药的码 要去校验是 否是 原始单据处方已完成的码
if (addTagCodeReqeust.getBusType().startsWith("YPCFTF")){
if (addTagCodeReqeust.getBusType().startsWith("YPCFTF")) {
collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo());
IoCollectCodeRequest ioCollectCodeRequest = new IoCollectCodeRequest();
ioCollectCodeRequest.setBillNo(collectOrder.getRemark());
ioCollectCodeRequest.setCode(code);
List<IoCollectCodeResponse> ioCollectCodeResponses = ioCollectCodeBackService.filterList(ioCollectCodeRequest);
if (ioCollectCodeResponses.size() == 0){
if (ioCollectCodeResponses.size() == 0) {
throw new JsonException(500, "当前追溯码非原始处方追溯码");
}
IoCollectCodeResponse ioCollectCodeResponse = ioCollectCodeResponses.get(0);
@ -209,7 +201,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
// //这个为 退货的数量 如果退货数量 是
// Integer count = collectOrderBiz1.getCount();
// }
if (!ioCollectCodeResponse.getCode().equals(code)){
if (!ioCollectCodeResponse.getCode().equals(code)) {
throw new JsonException(500, "当前追溯码非原始处方追溯码");
}
}
@ -274,25 +266,18 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
}
}
IoSplitCodeEntity splitCodeEntity = splitCodeService.findByCode(code, putWorkPlaceCode);
List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(addTagCodeReqeust.getBillNo());
List<IoCollectOrderBiz> collectOrderBizs;
collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo());
if (StrUtil.isNotEmpty(collectOrder.getSummaryNo())) {
collectOrderBizs = collectOrderService.getOrderBizs(collectOrder.getSummaryNo());
} else {
collectOrderBizs = collectOrderBizService.listByBillNo(addTagCodeReqeust.getBillNo());
}
//2.校验是否处方单UDI码
if (IntUtil.value(sysWorkplaceDocumentEntity.getScanType()) == WorkOperType.TYPE_GEN_ORDER) {
if (StrUtil.isEmpty(addTagCodeReqeust.getBillNo())) {
String orderNo = gennerOrderUtils.createWdOrderNo(new OrderNoTypeBean(Constant.SPLIT_ORDER, "yyyyMMdd"));
collectOrder = IoCollectOrder.builder()
.billNo(orderNo)
.busType(sysWorkplaceDocumentEntity.getDocumentTypeCode())
.fromCorp(addTagCodeReqeust.getFromCorp())
.fromCorpName(addTagCodeReqeust.getFromCorpName())
.billTime(new Date())
.workPlaceCode(workPlace.getWorkplaceId())
.createTime(new Date())
.createUser(userIds)
.shipper(addTagCodeReqeust.getInvCode())
.updateTime(new Date())
.orderCirType(sysWorkplaceDocumentEntity.getOrderCirType())
.tagStatus(1)
.build();
collectOrder = IoCollectOrder.builder().billNo(orderNo).busType(sysWorkplaceDocumentEntity.getDocumentTypeCode()).fromCorp(addTagCodeReqeust.getFromCorp()).fromCorpName(addTagCodeReqeust.getFromCorpName()).billTime(new Date()).workPlaceCode(workPlace.getWorkplaceId()).createTime(new Date()).createUser(userIds).shipper(addTagCodeReqeust.getInvCode()).updateTime(new Date()).orderCirType(sysWorkplaceDocumentEntity.getOrderCirType()).tagStatus(1).build();
if (StrUtil.isNotEmpty(addTagCodeReqeust.getShipper())) {
collectOrder.setShipper(addTagCodeReqeust.getShipper());
collectOrder.setShipperName(addTagCodeReqeust.getShipperName());
@ -300,8 +285,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
if (IntUtil.value(sysWorkplaceDocumentEntity.getIsMatching()) == 1) {
collectOrder.setFromType("药械追溯管理系统");
} else {
ThrBusTypeOriginEntity one = thrBusTypeOriginService.getOne(new LambdaQueryWrapper<ThrBusTypeOriginEntity>()
.eq(ThrBusTypeOriginEntity::getAction, sysWorkplaceDocumentEntity.getDocumentTypeCode()));
ThrBusTypeOriginEntity one = thrBusTypeOriginService.getOne(new LambdaQueryWrapper<ThrBusTypeOriginEntity>().eq(ThrBusTypeOriginEntity::getAction, sysWorkplaceDocumentEntity.getDocumentTypeCode()));
if (one != null) {
ThrSystemEntity thrSystemEntity = thrSystemService.getOne(new LambdaQueryWrapper<ThrSystemEntity>().eq(ThrSystemEntity::getThirdId, one.getThirdSys()));
if (thrSystemEntity != null) {
@ -321,8 +305,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
} else if (IntUtil.value(sysWorkplaceDocumentEntity.getScanType()) == WorkOperType.TYPE_VAIL_BATCH) {
collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo());
collectOrder.setWorkPlaceCode(addTagCodeReqeust.getWorkPlaceCode());
if (collectOrder == null)
throw new JsonException(500, "单据不存在!");
if (collectOrder == null) throw new JsonException(500, "单据不存在!");
if (splitCodeEntity != null && StrUtil.isNotEmpty(splitCodeEntity.getSerialNo())) {
if (IntUtil.value(splitCodeEntity.getRemainCount()) < 1) {
throw new JsonException(500, "当前追溯码已被拆零!");
@ -364,8 +347,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
}
break;
case 2: //不插入
if (collectOrderBiz == null)
throw new JsonException(500, "非此单据追溯码!");
if (collectOrderBiz == null) throw new JsonException(500, "非此单据追溯码!");
int count = IntUtil.value(collectOrderBiz.getScanCount()) + 1;
int actCount = 0;
@ -430,8 +412,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
} else if (IntUtil.value(sysWorkplaceDocumentEntity.getScanType()) == WorkOperType.TYPE_UNVAIL_BATCH) {
collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo());
collectOrder.setWorkPlaceCode(addTagCodeReqeust.getWorkPlaceCode());
if (collectOrder == null)
throw new JsonException(500, "单据不存在!");
if (collectOrder == null) throw new JsonException(500, "单据不存在!");
//按单不校验三期
collectOrderBiz = vailNoBatchNo(udiRelevanceResponses, collectOrderBizs, udiEntity);
@ -443,7 +424,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
throw new JsonException(500, "当前追溯码已被其他单据关联!");
}
if (!addTagCodeReqeust.getBusType().startsWith("YPCFTF")){
if (!addTagCodeReqeust.getBusType().startsWith("YPCFTF")) {
if (splitCodeEntity != null && StrUtil.isNotEmpty(splitCodeEntity.getSerialNo())) {
if (IntUtil.value(splitCodeEntity.getRemainCount()) < 1) {
throw new JsonException(500, "当前追溯码已被拆零!");
@ -470,8 +451,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
}
break;
case 2: //不插入
if (collectOrderBiz == null)
throw new JsonException(500, "非此单据追溯码!");
if (collectOrderBiz == null) throw new JsonException(500, "非此单据追溯码!");
int count = IntUtil.value(collectOrderBiz.getScanCount()) + 1;
int actCount = 0;
actCount = IntUtil.value(collectOrderBiz.getScanActCount()) + scanCount;
@ -496,7 +476,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
int count1 = IntUtil.value(collectOrderBiz.getScanCount()) + 1;
int actCount1 = 0;
actCount1 = IntUtil.value(collectOrderBiz.getScanActCount()) + scanCount;
if (!addTagCodeReqeust.getBusType().startsWith("YPCFTF")){
if (!addTagCodeReqeust.getBusType().startsWith("YPCFTF")) {
if (actCount1 > IntUtil.value(collectOrderBiz.getCount())) {
int needCount = IntUtil.value(collectOrderBiz.getCount()) - IntUtil.value(collectOrderBiz.getScanActCount());
if (needCount > 0) {
@ -546,26 +526,11 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
if (isExitRel(code, collectOrder.getBillNo())) {
throw new JsonException(500, "当前追溯码已上传关联关系,请勿重复扫码!");
}
IoCollectOrderCodeMan collectOrderCodeMan =
IoCollectOrderCodeMan.builder()
.udiCode(code)
.orderIdFk(collectOrder.getBillNo())
.bizIdFk(collectOrderBiz.getId())
.relId(collectOrderBiz.getRelId())
.nameCode(udiEntity.getUdi())
.batchNo(udiEntity.getBatchNo() == null ? collectOrderBiz.getBatchNo() : udiEntity.getBatchNo())
.serialNo(udiEntity.getSerialNo())
.productDate(udiEntity.getProduceDate() == null ? collectOrderBiz.getProductDate() : udiEntity.getProduceDate())
.expireDate(udiEntity.getExpireDate() == null ? collectOrderBiz.getExpireDate() : udiEntity.getExpireDate())
.createTime(new Date())
.createUser(userId)
.updateTime(new Date())
.updateUser(userId)
.scanCount(count + 1)
IoCollectOrderCodeMan collectOrderCodeMan = IoCollectOrderCodeMan.builder().udiCode(code)
.orderIdFk(collectOrderBiz.getOrderIdFk())
.bizIdFk(collectOrderBiz.getId()).relId(collectOrderBiz.getRelId()).nameCode(udiEntity.getUdi()).batchNo(udiEntity.getBatchNo() == null ? collectOrderBiz.getBatchNo() : udiEntity.getBatchNo()).serialNo(udiEntity.getSerialNo()).productDate(udiEntity.getProduceDate() == null ? collectOrderBiz.getProductDate() : udiEntity.getProduceDate()).expireDate(udiEntity.getExpireDate() == null ? collectOrderBiz.getExpireDate() : udiEntity.getExpireDate()).createTime(new Date()).createUser(userId).updateTime(new Date()).updateUser(userId).scanCount(count + 1)
// .scanCount(scanCount)
.isSplitCode(addTagCodeReqeust.getIsSplitCode())
.scanActCount(scanCount)
.build();
.isSplitCode(addTagCodeReqeust.getIsSplitCode()).scanActCount(scanCount).build();
RelCodeDetailResponse codeRelEntity = relCodeDetailService.findByCode(code);
@ -604,8 +569,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
ret = collectOrderCodeManMapper.exists(new LambdaQueryWrapper<IoCollectOrderCodeMan>().eq(IoCollectOrderCodeMan::getOrderIdFk, orderId).eq(IoCollectOrderCodeMan::getUdiCode, relCodeDetail.getParentCode()));
}
}
if (ret)
return true;
if (ret) return true;
//若父码不存在,判断当前单号是否存在当前码的子码,若存在则表示存在关联关系重复扫码
ret = collectOrderCodeManMapper.exists(new LambdaQueryWrapper<IoCollectOrderCodeMan>().eq(IoCollectOrderCodeMan::getOrderIdFk, orderId).eq(IoCollectOrderCodeMan::getParentCode, code));
if (!ret) {
@ -632,9 +596,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
public IoCollectOrderBiz scanGenOrder(List<UdiRelevanceResponse> udiRelevanceResponses, List<IoCollectOrderBiz> collectOrderBizs, UdiEntity udiEntity, IoCollectOrder collectOrder) {
for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) {
for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) {
if (udiRelevanceResponse.getId().equals(collectOrderBiz.getRelId()) &&
(StrUtil.trimToEmpty(collectOrderBiz.getBatchNo()).equals(StrUtil.trimToEmpty(udiEntity.getBatchNo())))
) {
if (udiRelevanceResponse.getId().equals(collectOrderBiz.getRelId()) && (StrUtil.trimToEmpty(collectOrderBiz.getBatchNo()).equals(StrUtil.trimToEmpty(udiEntity.getBatchNo())))) {
int actCount = 0;
if (IntUtil.value(collectOrder.getOrderCirType()) == 1) {
actCount = +calCountUtil.getCirActCount(udiRelevanceResponse);
@ -659,30 +621,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
} else {
actCount = calCountUtil.getUseActCount(udiRelevanceResponse);
}
return IoCollectOrderBiz.builder()
.id(IdUtil.getSnowflakeNextId())
.relId(udiRelevanceResponse.getId())
.thrCode(udiRelevanceResponse.getMainId())
.ybbm(udiRelevanceResponse.getYbbm())
.payFeeCode(udiRelevanceResponse.getPayFeeCode())
.cpmctymc(udiRelevanceResponse.getCpmctymc())
.nameCode(udiEntity.getUdi())
.ggxh(StrUtil.isNotEmpty(udiRelevanceResponse.getGgxh()) ? udiRelevanceResponse.getGgxh() : udiRelevanceResponse.getBzgg())
.batchNo(udiEntity.getBatchNo())
.productDate(udiEntity.getProduceDate())
.expireDate(udiEntity.getExpireDate())
.count(1)
.addCount(1)
.actCount(actCount)
.addActCount(actCount)
.scanCount(1)
.addScanCount(1)
.scanActCount(actCount)
.addScanActCount(actCount)
.measureUnit(udiRelevanceResponse.getMeasname())
.createTime(new Date())
.updateTime(new Date())
.build();
return IoCollectOrderBiz.builder().id(IdUtil.getSnowflakeNextId()).relId(udiRelevanceResponse.getId()).thrCode(udiRelevanceResponse.getMainId()).ybbm(udiRelevanceResponse.getYbbm()).payFeeCode(udiRelevanceResponse.getPayFeeCode()).cpmctymc(udiRelevanceResponse.getCpmctymc()).nameCode(udiEntity.getUdi()).ggxh(StrUtil.isNotEmpty(udiRelevanceResponse.getGgxh()) ? udiRelevanceResponse.getGgxh() : udiRelevanceResponse.getBzgg()).batchNo(udiEntity.getBatchNo()).productDate(udiEntity.getProduceDate()).expireDate(udiEntity.getExpireDate()).count(1).addCount(1).actCount(actCount).addActCount(actCount).scanCount(1).addScanCount(1).scanActCount(actCount).addScanActCount(actCount).measureUnit(udiRelevanceResponse.getMeasname()).createTime(new Date()).updateTime(new Date()).build();
}
@ -694,8 +633,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
// 增加医保编码/组套编码等校验
if (StrUtil.isNotEmpty(collectOrderBiz.getCheckCode())) {
if ((StrUtil.emptyIfNull(collectOrderBiz.getBatchNo()).equals(StrUtil.emptyIfNull(udiEntity.getBatchNo())))
&& (StrUtil.emptyIfNull(collectOrderBiz.getCheckCode()).contains(StrUtil.emptyIfNull(udiRelevanceResponse.getYbbm())))) {
if ((StrUtil.emptyIfNull(collectOrderBiz.getBatchNo()).equals(StrUtil.emptyIfNull(udiEntity.getBatchNo()))) && (StrUtil.emptyIfNull(collectOrderBiz.getCheckCode()).contains(StrUtil.emptyIfNull(udiRelevanceResponse.getYbbm())))) {
collectOrderBiz.setRelId(udiRelevanceResponse.getId());
return collectOrderBiz;
}
@ -757,13 +695,10 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
public BaseResponse CheckCode(CollectOrderCodeManRequest request) {
String orderId = request.getOrderIdFk();
IoCollectOrder ioCollectOrder = collectOrderService.getByBillNo(orderId);
if (ioCollectOrder == null)
return ResultVOUtils.error(500, "单据不存在");
if (ioCollectOrder == null) return ResultVOUtils.error(500, "单据不存在");
//判断
if (StrUtil.isNotEmpty(request.getUdiCode())) {
IoCollectOrderCodeMan ioCollectOrderCodeMan = collectOrderCodeManMapper.selectOne(new LambdaQueryWrapper<IoCollectOrderCodeMan>()
.eq(IoCollectOrderCodeMan::getOrderIdFk, request.getOrderIdFk())
.eq(IoCollectOrderCodeMan::getUdiCode, request.getUdiCode()));
IoCollectOrderCodeMan ioCollectOrderCodeMan = collectOrderCodeManMapper.selectOne(new LambdaQueryWrapper<IoCollectOrderCodeMan>().eq(IoCollectOrderCodeMan::getOrderIdFk, request.getOrderIdFk()).eq(IoCollectOrderCodeMan::getUdiCode, request.getUdiCode()));
if (ioCollectOrderCodeMan == null) {
BaseResponse response = new BaseResponse();
response.setData(request.getUdiCode());
@ -782,9 +717,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
} else {
List<VailCodeResultResponse> vailCodeResultResponses = new ArrayList<>();
for (String code : request.getUdiCodeList()) {
IoCollectOrderCodeMan ioCollectOrderCodeMan = collectOrderCodeManMapper.selectOne(new LambdaQueryWrapper<IoCollectOrderCodeMan>()
.eq(IoCollectOrderCodeMan::getOrderIdFk, request.getOrderIdFk())
.eq(IoCollectOrderCodeMan::getUdiCode, code));
IoCollectOrderCodeMan ioCollectOrderCodeMan = collectOrderCodeManMapper.selectOne(new LambdaQueryWrapper<IoCollectOrderCodeMan>().eq(IoCollectOrderCodeMan::getOrderIdFk, request.getOrderIdFk()).eq(IoCollectOrderCodeMan::getUdiCode, code));
VailCodeResultResponse vailCodeResultResponse = new VailCodeResultResponse();
if (ioCollectOrderCodeMan != null) {
vailCodeResultResponse.setStatus(1);
@ -823,13 +756,11 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
/**
* @param purType 1:23
*/
public boolean checkDiAttribute(BasicBussinessTypeEntity bussinessTypeEntity, UdiRelevanceResponse
udiRelevanceEntity, Integer purType) {
public boolean checkDiAttribute(BasicBussinessTypeEntity bussinessTypeEntity, UdiRelevanceResponse udiRelevanceEntity, Integer purType) {
if (bussinessTypeEntity.getUseDyCount() == 2) {
if (IntUtil.value(udiRelevanceEntity.getPurType()) == IntUtil.value(purType)) {
return true;
} else
return false;
} else return false;
}
return true;
}

@ -167,6 +167,7 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
public List<CollectOrderBizResponse> combieOrderDetail(CollectOrderBizRequest collectOrderBizRequest) {
List<CollectOrderBizResponse> list = collectOrderBizService.filterList(collectOrderBizRequest);
List<IoCollectOrderCodeAuto> splitCodes = collectOrderCodeAutoService.listByBillNo(collectOrderBizRequest.getOrderIdFk(), 1);
@ -1012,4 +1013,20 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
return new ArrayList<>(summarizedMap.values());
}
public List<String> getBillBySummary(String summaryNo) {
List<String> billNos = listObjs(new LambdaQueryWrapper<IoCollectOrder>().select(IoCollectOrder::getBillNo).eq(IoCollectOrder::getSummaryNo, summaryNo), Object::toString);
return billNos;
}
public List<IoCollectOrderBiz> getOrderBizs(String summaryNo) {
List<IoCollectOrderBiz> collectOrderBizs = null;
List<String> billNos = getBillBySummary(summaryNo);
if (CollUtil.isNotEmpty(billNos)) {
collectOrderBizs = collectOrderBizService.list(new LambdaQueryWrapper<IoCollectOrderBiz>().in(IoCollectOrderBiz::getOrderIdFk, billNos));
}
return collectOrderBizs;
}
}

@ -208,8 +208,8 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
Long putWorkPlaceCode = null;
if (sysWorkplacePutRel != null) putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(collectOrder.getBillNo());
List<IoCollectOrderBiz> collectOrderBizs = null;
collectOrderBizs = collectOrderBizService.listByBillNo(collectOrder.getBillNo());
//如果手动扫码判断该码是否在队列里,如果已在队列,则队列里剔除
List<IoCollectOrderCodeMan> collectOrderCodeMEN = collectOrderCodeManService.listByBillNo(collectOrder.getBillNo());
if (CollUtil.isNotEmpty(collectOrderCodeMEN)) {
@ -595,7 +595,8 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
for (IoSplitCodeEntity ioSplitCodeEntity : ioSplitCodeEntities) {
if (IntUtil.value(ioSplitCodeEntity.getRemainCount()) > 0) {
count = IntUtil.value(ioSplitCodeEntity.getRemainCount()) - unCount;
IoCollectOrderCodeAuto collectOrderCodeAuto = IoCollectOrderCodeAuto.builder().codeIdFk(ioSplitCodeEntity.getId()).udiCode(ioSplitCodeEntity.getCode()).orderIdFk(collectOrder.getBillNo()).batchNo(ioSplitCodeEntity.getBatchNo()).productDate(ioSplitCodeEntity.getProduceDate()).expireDate(ioSplitCodeEntity.getExpireDate()).serialNo(ioSplitCodeEntity.getSerialNo()).relId(collectOrderBiz.getRelId()).bizIdFk(collectOrderBiz.getId()).fifoSplit(count > 0 ? count : 0).reCount(count).createTime(new Date()).updateTime(new Date()).build();
IoCollectOrderCodeAuto collectOrderCodeAuto = IoCollectOrderCodeAuto.builder().codeIdFk(ioSplitCodeEntity.getId()).udiCode(ioSplitCodeEntity.getCode()).orderIdFk(collectOrder.getBillNo()).batchNo(ioSplitCodeEntity.getBatchNo()).productDate(ioSplitCodeEntity.getProduceDate()).expireDate(ioSplitCodeEntity.getExpireDate()).serialNo(ioSplitCodeEntity.getSerialNo()).relId(collectOrderBiz.getRelId()).bizIdFk(collectOrderBiz.getId())
.fifoSplit(1).reCount(count > 0 ? count : 0).createTime(new Date()).updateTime(new Date()).build();
collectOrderCodeAutoService.save(collectOrderCodeAuto);
codeAutoList.add(collectOrderCodeAuto);
if (count > 0) {

Loading…
Cancel
Save