diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java index 2f9075fef..23be1917b 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -138,14 +138,14 @@ public class IoOrderController extends BaseController { //拿到当前单据 List list = orderService.filterList(filterOrderRequest); //根据单据查询 发票号 - for (IoOrderResponse ioOrderResponse : list){ + for (IoOrderResponse ioOrderResponse : list) { FilterOrderDetailCodeRequest filterOrderDetailCodeRequest = new FilterOrderDetailCodeRequest(); filterOrderDetailCodeRequest.setOrderIdFk(ioOrderResponse.getBillNo()); List orderInvoiceEntities = ioOrderInvoiceService.findByBillNo(filterOrderDetailCodeRequest.getOrderIdFk()); String invoiceCodes = orderInvoiceEntities.stream() .map(IoOrderInvoiceEntity::getInvoiceEncode) .collect(Collectors.joining(",")); - log.error("当前所有的发票号{}",invoiceCodes); + log.error("当前所有的发票号{}", invoiceCodes); ioOrderResponse.setInvoiceCodes(invoiceCodes); } @@ -270,7 +270,7 @@ public class IoOrderController extends BaseController { if (StrUtil.isEmpty(orderDetailBizEntity.getSupId())) { return ResultVOUtils.error(500, orderDetailBizEntity.getCoName() + "该产品未指定供应商!"); } - if (orderDetailBizEntity.getCount() == 0) { + if (IntUtil.value(orderDetailBizEntity.getCount()) == 0) { return ResultVOUtils.error(500, orderDetailBizEntity.getCoName() + "产品数量不能为0!"); } diff --git a/src/main/java/com/glxp/api/controller/thrsys/ForThirdSysApiController.java b/src/main/java/com/glxp/api/controller/thrsys/ForThirdSysApiController.java index 154cdfca3..788d40f12 100644 --- a/src/main/java/com/glxp/api/controller/thrsys/ForThirdSysApiController.java +++ b/src/main/java/com/glxp/api/controller/thrsys/ForThirdSysApiController.java @@ -3,12 +3,14 @@ package com.glxp.api.controller.thrsys; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.ConstantStatus; import com.glxp.api.entity.auth.InvWarehouseEntity; import com.glxp.api.entity.basic.UdiEntity; +import com.glxp.api.entity.inout.IoCodeEntity; import com.glxp.api.req.basic.FilterUdiRelRequest; import com.glxp.api.req.forthird.ForInvOutScanCodeRequest; import com.glxp.api.req.inv.FilterInvProductRequest; @@ -19,6 +21,7 @@ import com.glxp.api.res.inv.InvProductResponse; import com.glxp.api.service.auth.InvWarehouseService; import com.glxp.api.service.basic.UdiRelevanceService; import com.glxp.api.service.forthird.impl.ForThirdSysApiService; +import com.glxp.api.service.inout.impl.IoCodeService; import com.glxp.api.service.inv.InvPreProductDetailService; import com.glxp.api.service.inv.InvPreinProductDetailService; import com.glxp.api.service.inv.impl.InvProductDetailService; @@ -64,6 +67,9 @@ public class ForThirdSysApiController { return ResultVOUtils.success(pageSimpleResponse); } + @Resource + IoCodeService codeService; + /** * B001 查询指定科室高值 * @@ -77,29 +83,65 @@ public class ForThirdSysApiController { } int count = 0; UdiEntity udiEntity = FilterUdiUtils.getUdi(filterInvProductRequest.getUdiCode()); - List udiRelevanceResponses = null; - udiRelevanceResponses = udiRelevanceService.selectGroupByNameCode(udiEntity.getUdi(), false); - if (udiRelevanceResponses.size() == 0) { - return ResultVOUtils.error("收费项目未对照!"); + UdiRelevanceResponse checkUdi = udiRelevanceService.selectByNameCode(udiEntity.getUdi()); + if (checkUdi == null) { + return ResultVOUtils.error(500, "收费项目未对照!"); + } + boolean checkSuccess = true; + String lostMsg = ""; + //校验条码完整性 + if ("是".equals(checkUdi.getScbssfbhph()) && StrUtil.isEmpty(udiEntity.getBatchNo())) { + checkSuccess = false; + lostMsg = lostMsg + ",批次号"; + } + if ("是".equals(checkUdi.getScbssfbhscrq()) && StrUtil.isEmpty(udiEntity.getProduceDate())) { + checkSuccess = false; + lostMsg = lostMsg + ",生产日期"; + } + + if ("是".equals(checkUdi.getScbssfbhsxrq()) && StrUtil.isEmpty(udiEntity.getExpireDate())) { + checkSuccess = false; + lostMsg = lostMsg + ",失效日期"; + } + + if ("是".equals(checkUdi.getScbssfbhxlh()) && StrUtil.isEmpty(udiEntity.getSerialNo())) { + checkSuccess = false; + lostMsg = lostMsg + ",序列号"; + } + if (StrUtil.isNotEmpty(udiEntity.getSerialNo()) && udiEntity.getSerialNo().length() > 20) { + return ResultVOUtils.error(504, "序列号超出20位!"); + } + if (StrUtil.isNotEmpty(udiEntity.getBatchNo()) && udiEntity.getBatchNo().length() > 20) { + return ResultVOUtils.error(504, "批次号超出20位!"); + } + if (StrUtil.isEmpty(udiEntity.getSerialNo()) && StrUtil.isEmpty(udiEntity.getBatchNo())) { + checkSuccess = false; + } + if (!checkSuccess) { + return ResultVOUtils.error("UDI码格式错误:缺少" + lostMsg); + } + IoCodeEntity codeEntity = codeService.getOne(new QueryWrapper().likeLeft("code", filterInvProductRequest.getUdiCode()).last("limit 1")); + if (codeEntity == null) { + return ResultVOUtils.error("库存未找到该UDI码,请检查该UDI是否存在错误!"); } //1.获取预验收库存 InvWarehouseEntity preInInv = invWarehouseService.findByOne(ConstantStatus.ACTION_TYPE_PREIN); if (StrUtil.isNotEmpty(udiEntity.getSerialNo())) { count = invPreinProductDetailService.vailStockCountByCode(null, preInInv.getCode(), null, filterInvProductRequest.getUdiCode()); } else - count = invPreinProductDetailService.vailStockCount(udiRelevanceResponses.get(0).getRelId(), udiEntity.getBatchNo(), null, null, preInInv.getCode(), null); + count = invPreinProductDetailService.vailStockCount(checkUdi.getRelId(), udiEntity.getBatchNo(), null, null, preInInv.getCode(), null); if (count == 0) { //2.获取寄售库存 InvWarehouseEntity preInv = invWarehouseService.findByOne(ConstantStatus.ACTION_TYPE_ADVANCE); - count = invPreProductDetailService.vailStockCount(udiRelevanceResponses.get(0).getRelId(), udiEntity.getBatchNo(), null, null, preInv.getCode(), null); + count = invPreProductDetailService.vailStockCount(checkUdi.getRelId(), udiEntity.getBatchNo(), null, null, preInv.getCode(), null); } if (count == 0) { //3.获取入账库库存 - count = invProductDetailService.vailStockCount(udiRelevanceResponses.get(0).getRelId(), udiEntity.getBatchNo(), null, null, filterInvProductRequest.getInvCode(), null, true); + count = invProductDetailService.vailStockCount(checkUdi.getRelId(), udiEntity.getBatchNo(), null, null, filterInvProductRequest.getInvCode(), null, true); } InvProductResponse invProductResponse = new InvProductResponse(); - BeanUtil.copyProperties(udiRelevanceResponses.get(0), invProductResponse); + BeanUtil.copyProperties(checkUdi, invProductResponse); invProductResponse.setReCount(count); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicDestinyRelService.java b/src/main/java/com/glxp/api/service/basic/impl/BasicDestinyRelService.java index 5f780d652..b02a1b4dc 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/BasicDestinyRelService.java +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicDestinyRelService.java @@ -115,7 +115,7 @@ public class BasicDestinyRelService extends ServiceImpl thrInvOrderDetails = thrInvOrderDetailMapper.selectList( new LambdaQueryWrapper() .and(o -> o.isNull(ThrInvOrderDetail::getHandleStatus).or().ne(ThrInvOrderDetail::getHandleStatus, 1)). eq(ThrInvOrderDetail::getOrderIdFk, thrInvOrder.getBillNo()) ); - if (CollectionUtil.isEmpty(thrInvOrderDetails)) return; + if (CollectionUtil.isEmpty(thrInvOrderDetails)) continue; log.info("扫描处理第三方收费明细生成单据定时任务==orderIdFk==:[" + thrInvOrder.getBillNo() + "]"); //新单号 String newBillNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER, "yyyyMMdd")); @@ -978,7 +977,12 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { ioOrderEntity.setUpdateTime(new Date()); ioOrderEntity.setCreateTime(new Date()); ioOrderEntity.setCustomerId("110"); - Long userId = customerService.getUserId(); + Long userId = 1l; + try { + userId = customerService.getUserId(); + } catch (Exception e) { + e.printStackTrace(); + } ioOrderEntity.setCreateUser(userId + ""); ioOrderEntity.setUpdateUser(userId + ""); ioOrderEntity.setOrderType(ConstantStatus.ORDER_TYPE_SCAN);//正常单据处理 @@ -1309,10 +1313,12 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { Long relId = thrInvOrderDetail.getRelId(); if (relId != null) { BasicProductsEntity basicProductsEntity = relIdBasicProductsEntityMap.get(relId); - IoOrderDetailBizEntity ioOrderDetailBizEntity = new IoOrderDetailBizEntity(); - parameterPackag(basicProductsEntity, ioOrderDetailBizEntity, thrInvOrderDetail); - ioOrderDetailBizEntity.setOrderIdFk(newBillNo); - newOrderDetailBiz.add(ioOrderDetailBizEntity); + if (basicProductsEntity != null && StrUtil.isNotEmpty(basicProductsEntity.getNameCode())) { + IoOrderDetailBizEntity ioOrderDetailBizEntity = new IoOrderDetailBizEntity(); + parameterPackag(basicProductsEntity, ioOrderDetailBizEntity, thrInvOrderDetail); + ioOrderDetailBizEntity.setOrderIdFk(newBillNo); + newOrderDetailBiz.add(ioOrderDetailBizEntity); + } } } diff --git a/src/main/resources/mybatis/mapper/thrsys/ThrInvWarehouseDao.xml b/src/main/resources/mybatis/mapper/thrsys/ThrInvWarehouseDao.xml index 6172d3bd8..a5582a945 100644 --- a/src/main/resources/mybatis/mapper/thrsys/ThrInvWarehouseDao.xml +++ b/src/main/resources/mybatis/mapper/thrsys/ThrInvWarehouseDao.xml @@ -50,7 +50,7 @@ and thirdSysFk = #{thirdSysFk}) and thirdSysFk = #{thirdSysFk} - and name like concat('%', #{name}, '%') + and (name like concat('%', #{name}, '%') or code like concat('%', #{name}, '%'))