diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index 353b909a7..0b6e69935 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -1610,8 +1610,8 @@ public class IoCodeTempController extends BaseController { // if (StrUtil.isEmpty(codeEnttity.getBatchNo())) { //当关联关系存在的时候 以关联关系的批次号为准 codeEnttity.setBatchNo(codeRelEntity.getBatchNo()); - codeEnttity.setExpireDate(codeRelEntity.getMadeDate() + ""); - codeEnttity.setExpireDate(codeRelEntity.getValidateDate() + ""); + codeEnttity.setProduceDate( MsDateUtil.formatDate(codeRelEntity.getMadeDate(), "yyMMdd")); + codeEnttity.setExpireDate( MsDateUtil.formatDate(codeRelEntity.getValidateDate(), "yyMMdd")); // } } diff --git a/src/main/java/com/glxp/api/entity/basic/BasicProductsEntity.java b/src/main/java/com/glxp/api/entity/basic/BasicProductsEntity.java index 032c8cd56..530cab88e 100644 --- a/src/main/java/com/glxp/api/entity/basic/BasicProductsEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/BasicProductsEntity.java @@ -547,8 +547,8 @@ public class BasicProductsEntity { /** * 明细分类 */ - @TableField(value = "detailSort") - private Integer detailSort; +// @TableField(value = "detailSort") +// private Integer detailSort; public static final String COL_ID = "id"; diff --git a/src/main/java/com/glxp/api/entity/basic/UdiRelevanceEntity.java b/src/main/java/com/glxp/api/entity/basic/UdiRelevanceEntity.java index dbe5db069..47d36ea8d 100644 --- a/src/main/java/com/glxp/api/entity/basic/UdiRelevanceEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/UdiRelevanceEntity.java @@ -311,4 +311,7 @@ public class UdiRelevanceEntity { @TableField(value = "unpackUseTime") private Integer unpackUseTime; + @TableField(value = "detailSort") + private Integer detailSort; + } diff --git a/src/main/java/com/glxp/api/entity/collect/IoCollectCodeBackup.java b/src/main/java/com/glxp/api/entity/collect/IoCollectCodeBackup.java index 7495c78ed..989af7a01 100644 --- a/src/main/java/com/glxp/api/entity/collect/IoCollectCodeBackup.java +++ b/src/main/java/com/glxp/api/entity/collect/IoCollectCodeBackup.java @@ -146,6 +146,27 @@ public class IoCollectCodeBackup implements Serializable { @ApiModelProperty(value = "码校验状态 0 or null:未校验 1:已校验 3:已替换") private Integer scanCodeCheckStatus; + /** + * 采购类型 1:普通入账产品;2.预验收产品。3:寄售产品 + */ + @TableField(value = "purType") + @ApiModelProperty(value = "1:普通入账产品;2.预验收产品。3:寄售产品") + private Integer purType; + + /** + * 是否消耗 0:未消耗 1:已消耗 + */ + @TableField(value = "isUsed") + @ApiModelProperty(value = "是否消耗 0:未消耗 1:已消耗") + private Boolean isUsed; + + /** + * 时间戳 + */ + @TableField(value = "inBatchNo") + @ApiModelProperty(value = "时间戳") + private Long inBatchNo; + private static final long serialVersionUID = 1L; } diff --git a/src/main/java/com/glxp/api/entity/collect/IoCollectSet.java b/src/main/java/com/glxp/api/entity/collect/IoCollectSet.java index 3650f528e..ae949a1f7 100644 --- a/src/main/java/com/glxp/api/entity/collect/IoCollectSet.java +++ b/src/main/java/com/glxp/api/entity/collect/IoCollectSet.java @@ -78,5 +78,13 @@ public class IoCollectSet implements Serializable { @TableField(value = "lastCodeSplit") @ApiModelProperty(value = "自动上传已完成单据轮询时间") private Integer startUploadHour; + + /** + * 是否启用寄售预验收扫码校验 0:关闭 1:开启 + */ + @TableField(value = "isScanCodeCheck") + @ApiModelProperty(value = "是否启用寄售预验收扫码校验 ") + private Boolean isScanCodeCheck; + private static final long serialVersionUID = 1L; } diff --git a/src/main/java/com/glxp/api/req/basic/UpdateLevelDrugRequest.java b/src/main/java/com/glxp/api/req/basic/UpdateLevelDrugRequest.java index 854a01eac..66b479f25 100644 --- a/src/main/java/com/glxp/api/req/basic/UpdateLevelDrugRequest.java +++ b/src/main/java/com/glxp/api/req/basic/UpdateLevelDrugRequest.java @@ -35,6 +35,7 @@ public class UpdateLevelDrugRequest { private String uuid; private String xjdw; private Integer diType; + private String packRatio; public Integer getMyBhxjsl() { if (bhxjsl == null || bhxjsl == 0) diff --git a/src/main/java/com/glxp/api/service/basic/UdiContrastService.java b/src/main/java/com/glxp/api/service/basic/UdiContrastService.java index 0d25b75fe..57e016b25 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiContrastService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiContrastService.java @@ -443,6 +443,7 @@ public class UdiContrastService { //商品条码 essentialDrugMarkName sptm // udiProductEntity.setSptm(ybDrug.getBusinessLicense()); udiProductEntity.setPrepnUnit(thirdAliDrug.getPrepnUnitName()); + udiProductEntity.setPackRatio(thirdAliDrug.getPackRatio()); List integers = new ArrayList<>(); if (StrUtil.isNotEmpty(thirdAliDrug.getPackRatio())) { diff --git a/src/main/java/com/glxp/api/service/basic/UdiProductService.java b/src/main/java/com/glxp/api/service/basic/UdiProductService.java index 43f2d9e5e..721845e0f 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiProductService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiProductService.java @@ -356,8 +356,10 @@ public class UdiProductService extends ServiceImpl manList, IoCollectOrder collectOrder) { if (CollUtil.isEmpty(manList)) return; List ioCollectCodes = new ArrayList<>(); for (IoCollectOrderCodeMan ioCollectOrderCodeMan : manList) { + //查询采购类型 + UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByRelId(ioCollectOrderCodeMan.getRelId() + ""); ioCollectCodes.add(IoCollectCodeBackup.builder().code(ioCollectOrderCodeMan.getUdiCode()) .fromType(collectOrder.getFromType()) .busType(collectOrder.getBusType()) @@ -114,7 +122,9 @@ public class IoCollectCodeService extends ServiceImpl ioCollectCodes = new ArrayList<>(); for (IoCollectOrderCodeAuto collectOrderCodeAuto : codeAutoList) { + UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByRelId(collectOrderCodeAuto.getRelId() + ""); ioCollectCodes.add(IoCollectCodeBackup.builder().code(collectOrderCodeAuto.getUdiCode()) .fromType(collectOrder.getFromType()) .busType(collectOrder.getBusType()) @@ -134,7 +145,9 @@ public class IoCollectCodeService extends ServiceImpl ioCollectCodes = new ArrayList<>(); for (IoCollectOrderCodeAuto collectOrderCodeAuto : codeAutoList) { + UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByRelId(collectOrderCodeAuto.getRelId() + ""); ioCollectCodes.add(IoCollectCodeBackup.builder().code(collectOrderCodeAuto.getUdiCode()) .fromType(collectOrder.getFromType()) .busType(collectOrder.getBusType()) @@ -154,10 +168,23 @@ public class IoCollectCodeService extends ServiceImpl ioCollectCodeBackups = collectCodeBackService.listByBillNo(billNo); + ArrayList ioCollectCodeBackups1 = new ArrayList<>(); + for (IoCollectCodeBackup collectCodeBackup : ioCollectCodeBackups) { + if (collectCodeBackup.getBusType().equals("QXCF001") && collectCodeBackup.getPurType() != 1){ + collectCodeBackup.setIsUsed(true); + ioCollectCodeBackups1.add(collectCodeBackup); + } + } + collectCodeBackService.updateBatchById(ioCollectCodeBackups1); + } } diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderBackupService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderBackupService.java index ab42d523d..eacbcd487 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderBackupService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderBackupService.java @@ -455,7 +455,6 @@ public class IoCollectOrderBackupService extends ServiceImpl filterList(CollectOrderCodeManRequest collectOrderCodeManRequest) { if (collectOrderCodeManRequest == null) { return Collections.emptyList(); @@ -124,12 +127,16 @@ public class IoCollectOrderCodeManService extends ServiceImpl() + .eq(IoCollectCodeBackup::getCode, code) + .eq(IoCollectCodeBackup::getPurType,udiRelevanceResponse.getPurType())); + if (collectCodeBackup == null){ + String PurTypeName = udiRelevanceResponse.getPurType() == 2 ? "预验收" : "寄售"; + throw new JsonException(500, "当前产品追溯码未进入" + PurTypeName + "库"); + } + } + } //流通数量 Integer circleCount = calCountUtil.getCirActCount(udiRelevanceResponse); @@ -387,8 +409,10 @@ public class IoCollectOrderCodeManService extends ServiceImpl().select("id", "count", "reCount", "bindRlFk", "batchNo", "price").eq("orderIdFk", orderEntity.getBillNo())); } else { +// && BigDecimalUtil.equalTo(IntUtil.value(orderDetailCodeEntity.getPrice()), IntUtil.value(codeTempEntity.getPrice()) boolean isUpdate = false; for (IoOrderDetailCodeEntity orderDetailCodeEntity : ioOrderDetailCodeEntities) { if (orderDetailCodeEntity.getBindRlFk().longValue() == udiRelevanceResponse.getId().longValue() - && StrUtil.trimToEmpty(orderDetailCodeEntity.getBatchNo()).equals(StrUtil.trimToEmpty(codeTempEntity.getBatchNo())) - && BigDecimalUtil.equalTo(IntUtil.value(orderDetailCodeEntity.getPrice()), IntUtil.value(codeTempEntity.getPrice())) + && StrUtil.trimToEmpty(orderDetailCodeEntity.getBatchNo()).equals(StrUtil.trimToEmpty(codeTempEntity.getBatchNo()) + ) ) { orderDetailCodeEntity.setCount(orderDetailCodeEntity.getCount() + codeTempEntity.getMyCount()); orderDetailCodeEntity.setReCount(orderDetailCodeEntity.getReCount() + codeTempEntity.getMyReCount()); diff --git a/src/main/java/com/glxp/api/service/sync/HeartService.java b/src/main/java/com/glxp/api/service/sync/HeartService.java index d3cd0ebf5..7038fb763 100644 --- a/src/main/java/com/glxp/api/service/sync/HeartService.java +++ b/src/main/java/com/glxp/api/service/sync/HeartService.java @@ -1868,21 +1868,20 @@ public class HeartService { basicHospTypeDao.replaceBatch(hospTypeList); } if (CollectionUtil.isNotEmpty(udiRelevanceList)) { - List> splits = CustomUtil.splitList(udiRelevanceList, 500); + List> splits = CustomUtil.splitList(udiRelevanceList, 200); splits.forEach(items -> { udiRelevanceDao.replaceBatch(items); }); } if (CollectionUtil.isNotEmpty(productsList)) { - List> splits = CustomUtil.splitList(productsList, 500); + List> splits = CustomUtil.splitList(productsList, 200); splits.forEach(items -> { basicProductsDao.replaceBatch(items); }); // basicProductsDao.replaceBatchs(productsList, 1000); } if (CollectionUtil.isNotEmpty(relevanceList)) { - relevanceDao.replaceBatch(relevanceList); } if (CollectionUtil.isNotEmpty(corpList)) { corpDao.replaceBatch(corpList); diff --git a/src/main/java/com/glxp/api/task/AsyncIoCollectOrderFinishTask.java b/src/main/java/com/glxp/api/task/AsyncIoCollectOrderFinishTask.java index 3c8d1f42c..f7aa637e2 100644 --- a/src/main/java/com/glxp/api/task/AsyncIoCollectOrderFinishTask.java +++ b/src/main/java/com/glxp/api/task/AsyncIoCollectOrderFinishTask.java @@ -77,9 +77,9 @@ public class AsyncIoCollectOrderFinishTask implements SchedulingConfigurer { SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = sysWorkplaceDocumentService.findByBusType(collectOrder.getBusType()); if (sysWorkplaceDocumentEntity != null && IntUtil.value(sysWorkplaceDocumentEntity.getAutoTag()) == 1 && IntUtil.value(collectOrder.getTagStatus()) == 1) { CollectOrderRequest collectOrderRequest = new CollectOrderRequest(); - BeanUtils.copyProperties(collectOrderRequest, collectOrder); + BeanUtils.copyProperties(collectOrder, collectOrderRequest); //获取当前业务类型对应的采集工位 - SysWorkplaceBus sysWorkplaceBus = sysWorkplaceBusService.getOne(new LambdaQueryWrapper().eq(SysWorkplaceBus::getBusTypeCode, sysWorkplaceDocumentEntity.getWorkplaceCode()).last("limit 1")); + SysWorkplaceBus sysWorkplaceBus = sysWorkplaceBusService.getOne(new LambdaQueryWrapper().eq(SysWorkplaceBus::getBusTypeCode, sysWorkplaceDocumentEntity.getDocumentTypeCode()).last("limit 1")); if (sysWorkplaceBus == null) break; collectOrderRequest.setWorkPlaceCode(sysWorkplaceBus.getWorkplaceCode()); diff --git a/src/main/java/com/glxp/api/task/AsyncIoCollectOrderUploadTask.java b/src/main/java/com/glxp/api/task/AsyncIoCollectOrderUploadTask.java index 564d5d33a..bc946f552 100644 --- a/src/main/java/com/glxp/api/task/AsyncIoCollectOrderUploadTask.java +++ b/src/main/java/com/glxp/api/task/AsyncIoCollectOrderUploadTask.java @@ -5,6 +5,7 @@ import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.util.StrUtil; import com.glxp.api.dao.basic.SysWorkplaceDocumentDao; import com.glxp.api.dao.schedule.ScheduledDao; +import com.glxp.api.entity.auth.AuthAdmin; import com.glxp.api.entity.collect.IoCollectSet; import com.glxp.api.entity.system.ScheduledEntity; import com.glxp.api.req.basic.WorkBindBusTypeRequest; @@ -100,7 +101,8 @@ public class AsyncIoCollectOrderUploadTask implements SchedulingConfigurer { List orderResponses = ioCollectOrderBackupService.filterList(collectOrderRequest); if (CollUtil.isNotEmpty(orderResponses)){ orderResponses.forEach( item -> { - ioCollectOrderBackupService.orderUpload(item.getBillNo(),null); + AuthAdmin authAdmin = new AuthAdmin(); + ioCollectOrderBackupService.orderUpload(item.getBillNo(),authAdmin); }); } // 无限循环去上传单据不做限制了 diff --git a/src/main/java/com/glxp/api/util/DimaUtil.java b/src/main/java/com/glxp/api/util/DimaUtil.java index 95cccd2ed..827c2fd62 100644 --- a/src/main/java/com/glxp/api/util/DimaUtil.java +++ b/src/main/java/com/glxp/api/util/DimaUtil.java @@ -28,14 +28,14 @@ public class DimaUtil { } // 最后加上最小单位(第一层级为 1) - calculatedLevels.add(1); + calculatedLevels.add(0,1); // 结果倒序 - List reversed = new ArrayList<>(); - for (int i = calculatedLevels.size() - 1; i >= 0; i--) { - reversed.add(calculatedLevels.get(i)); - } - return reversed; +// List reversed = new ArrayList<>(); +// for (int i = calculatedLevels.size() - 1; i >= 0; i--) { +// reversed.add(calculatedLevels.get(i)); +// } + return calculatedLevels; } diff --git a/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml b/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml index 03887652b..7aa94279c 100644 --- a/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml +++ b/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml @@ -196,7 +196,7 @@ destinyType, productsType, prepnUnit, prepnSpec, storageCondition, transportCondition, indate, packMatrial, majorType, majorStatus, physicType, medicareType, bzgg, xjdw, - requireScanCode, detailSort) + requireScanCode) values (#{id}, #{uuid}, #{originUuid}, #{nameCode}, @@ -270,7 +270,7 @@ #{physicType}, #{medicareType}, #{bzgg}, #{xjdw}, - #{requireScanCode}, #{detailSort}) + #{requireScanCode}) @@ -283,7 +283,7 @@ allowNoProduct, allowNoSerial, spmc, cplx, hchzsb, cpdls, price, basicPrductRemak1, basicPrductRemak2, basicPrductRemak3, basicPrductRemak4, basicPrductRemak5, basicPrductRemak6, basicPrductRemak7, basicPrductRemak8, updateTime, sfwblztlcp, cgzmraqxgxx, sfbjwycxsy, zdcfsycs, sfwwjbz, syqsfxyjxmj, - mjfs, categoryName, pinyinInitial, detailSort) + mjfs, categoryName, pinyinInitial) values @@ -587,9 +587,6 @@ packMatrial=#{packMatrial}, - - packMatrial=#{packMatrial}, - WHERE nameCode = #{nameCode} and uuid = #{uuid} @@ -801,9 +798,6 @@ workPlaceCount=#{workPlaceCount}, - - workPlaceCount=#{workPlaceCount}, - where uuid = #{uuid} @@ -1009,9 +1003,6 @@ matrial=#{matrial}, - - workPlaceCount=#{workPlaceCount}, - where id = #{id} @@ -1177,9 +1168,6 @@ basicPrductRemak8=#{basicPrductRemak8}, - - workPlaceCount=#{workPlaceCount}, - pinyinInitial=#{pinyinInitial}, diff --git a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml index a9bd403e9..2a19e4451 100644 --- a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml +++ b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml @@ -594,8 +594,7 @@ basic_products.majorType, basic_products.medicareType, basic_products.workPlaceCount, - th.hsmc hslbName, - basic_products.detailSort + th.hsmc hslbName FROM basic_products inner JOIN basic_udirel ON basic_products.uuid = basic_udirel.uuid @@ -1346,7 +1345,7 @@ groupBuy, needCert, isStack, distributeLevelCount, useLevel, distributeLevel, - splitEnable, autoCode, distributeMaxLevel, useMaxLevel, unpackUseTime) + splitEnable, autoCode, distributeMaxLevel, useMaxLevel, unpackUseTime,detailSort) values (#{id}, #{uuid}, #{mainId}, @@ -1382,7 +1381,7 @@ #{useLevel}, #{distributeLevel}, #{splitEnable}, - #{autoCode}, #{distributeMaxLevel}, #{useMaxLevel}, #{unpackUseTime}) + #{autoCode}, #{distributeMaxLevel}, #{useMaxLevel}, #{unpackUseTime}, #{detailSort}) + limit 1 diff --git a/src/main/resources/schemas/schema_v2.4.sql b/src/main/resources/schemas/schema_v2.4.sql index 7450396dd..5d707b3bb 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -4947,3 +4947,21 @@ CALL Pro_Temp_ColumnWork('io_collect_order_backup', 'checkCodeConfirm', CALL Pro_Temp_ColumnWork('io_collect_code_backup', 'scanCodeCheckStatus', ' tinyint NULL DEFAULT b''0''COMMENT ''码校验状态 0 or null:未校验 1:已校验 3:已替换''', 1); + +CALL Pro_Temp_ColumnWork('io_collect_set', 'isScanCodeCheck', + ' tinyint NULL DEFAULT b''0''COMMENT ''是否启用寄售预验收扫码校验 0:关闭 1:开启''', + 1); + +CALL Pro_Temp_ColumnWork('io_collect_code_backup', 'purType', + ' tinyint NULL DEFAULT b''1''COMMENT ''采购类型 1:普通入账产品;2.预验收产品。3:寄售产品''', + 1); + +CALL Pro_Temp_ColumnWork('io_collect_code_backup', 'isUsed', + ' tinyint NULL DEFAULT b''0''COMMENT ''是否消耗 0:未消耗 1:已消耗''', + 1); + +CALL Pro_Temp_ColumnWork('io_collect_code_backup', 'inBatchNo', + ' bigint DEFAULT NULL COMMENT ''时间戳''', + 1); + +CALL Pro_Temp_ColumnWork('basic_udirel', 'detailSort', ' tinyint DEFAULT NULL', 1);