From 18418fa8f0afa224fa9ad6f5694fa2039e36bda8 Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Mon, 14 Oct 2024 11:19:48 +0800 Subject: [PATCH 01/35] =?UTF-8?q?feat:=20=E6=89=8B=E5=B7=A5=E3=80=81?= =?UTF-8?q?=E6=8B=BC=E7=AE=B1=E5=85=B3=E8=81=94=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/glxp/api/service/collect/RelCodeDetailService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java b/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java index cc3d725f8..87e55f1db 100644 --- a/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java +++ b/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java @@ -87,7 +87,7 @@ public class RelCodeDetailService extends ServiceImpl Date: Mon, 14 Oct 2024 15:41:19 +0800 Subject: [PATCH 02/35] =?UTF-8?q?feat:=20=E6=89=8B=E5=B7=A5=E3=80=81?= =?UTF-8?q?=E6=8B=BC=E7=AE=B1=E5=85=B3=E8=81=94=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../constant/BasicExportStatusTimeEnum.java | 5 ++ .../api/constant/BasicExportTypeEnum.java | 5 ++ .../api/entity/system/SyncDataSetEntity.java | 5 ++ .../res/sync/SpsSyncDrugDataTaskResponse.java | 16 +++++ .../glxp/api/service/sync/HeartService.java | 59 +++++++++++++++++++ 5 files changed, 90 insertions(+) create mode 100644 src/main/java/com/glxp/api/res/sync/SpsSyncDrugDataTaskResponse.java diff --git a/src/main/java/com/glxp/api/constant/BasicExportStatusTimeEnum.java b/src/main/java/com/glxp/api/constant/BasicExportStatusTimeEnum.java index 351079102..434b8ffe5 100644 --- a/src/main/java/com/glxp/api/constant/BasicExportStatusTimeEnum.java +++ b/src/main/java/com/glxp/api/constant/BasicExportStatusTimeEnum.java @@ -131,6 +131,11 @@ public enum BasicExportStatusTimeEnum { DEV_REPAIR("device_repair","设备维修单数据"), PRODUCE_BUSINESS_DATA("thr_manufacturer", "生产企业数据"), + /** + * 药品关联信息任务同步 + */ + DRUG_DATA_TASK("drug_data_task", "药品关联信息任"), + ; @EnumValue private String key; diff --git a/src/main/java/com/glxp/api/constant/BasicExportTypeEnum.java b/src/main/java/com/glxp/api/constant/BasicExportTypeEnum.java index 581bc2799..1b301f29e 100644 --- a/src/main/java/com/glxp/api/constant/BasicExportTypeEnum.java +++ b/src/main/java/com/glxp/api/constant/BasicExportTypeEnum.java @@ -64,6 +64,11 @@ public enum BasicExportTypeEnum { DEVICE_UPKEEP_DATA("device__upkeep", "设备保养数据"), PRODUCE_BUSINESS_DATA("thr_manufacturer", "生产企业数据"), + + /** + * 药品关联信息任务同步 + */ + DRUG_DATA_TASK("drug_data_task", "药品关联信息任"), // // NEW_ALL_ORDER("all_order", "出入库扫码单据"), // ALL_BUS_ORDER("all_bus_order", "业务单据"), diff --git a/src/main/java/com/glxp/api/entity/system/SyncDataSetEntity.java b/src/main/java/com/glxp/api/entity/system/SyncDataSetEntity.java index b0b38dab4..e6bc67e84 100644 --- a/src/main/java/com/glxp/api/entity/system/SyncDataSetEntity.java +++ b/src/main/java/com/glxp/api/entity/system/SyncDataSetEntity.java @@ -83,4 +83,9 @@ public class SyncDataSetEntity { private int deviceUpkeep;//保养单 private int produceBusiness;//生产企业 PRODUCE_BUSINESS_DATA + /** + * 设备任务 + */ + private int drugDataTask; + } diff --git a/src/main/java/com/glxp/api/res/sync/SpsSyncDrugDataTaskResponse.java b/src/main/java/com/glxp/api/res/sync/SpsSyncDrugDataTaskResponse.java new file mode 100644 index 000000000..d44b33d2e --- /dev/null +++ b/src/main/java/com/glxp/api/res/sync/SpsSyncDrugDataTaskResponse.java @@ -0,0 +1,16 @@ +package com.glxp.api.res.sync; + +import com.glxp.api.entity.collect.RelCodeBatch; +import com.glxp.api.entity.collect.RelCodeDetail; +import lombok.Data; + +import java.util.List; + +@Data +public class SpsSyncDrugDataTaskResponse extends BaseSyncResponse { + + public List relCodeBatches; + + public List relCodeDetails; + +} 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 5b29286ab..b15ee12ac 100644 --- a/src/main/java/com/glxp/api/service/sync/HeartService.java +++ b/src/main/java/com/glxp/api/service/sync/HeartService.java @@ -3,8 +3,12 @@ package com.glxp.api.service.sync; import cn.hutool.core.bean.BeanUtil; import com.glxp.api.dao.dev.*; import com.glxp.api.dao.thrsys.ThrManufacturerMapper; +import com.glxp.api.entity.collect.RelCodeBatch; +import com.glxp.api.entity.collect.RelCodeDetail; import com.glxp.api.entity.dev.*; import com.glxp.api.res.inv.InnerOrderPrintResponse; +import com.glxp.api.service.collect.RelCodeBatchService; +import com.glxp.api.service.collect.RelCodeDetailService; import com.glxp.api.service.dev.*; import org.junit.Test; import org.springframework.beans.BeanUtils; @@ -69,6 +73,7 @@ import java.io.IOException; import java.time.LocalDateTime; import java.util.*; import java.util.function.Function; +import java.util.stream.Collectors; import static com.glxp.api.constant.BasicProcessStatus.NEW_ALL_ORDER; import static com.glxp.api.constant.BasicProcessStatus.NEW_ALL_UDIS; @@ -305,6 +310,12 @@ public class HeartService { // if (needExec(info.getDeviceTask())) { //默认开启 uploadData(exportType, taskId, x -> x.getDeviceTaskData(info, taskId, now, syncTime)); +// } + break; + case DRUG_DATA_TASK: +// if (needExec(info.getDeviceTask())) { + //默认开启 + uploadData(exportType, taskId, x -> x.getDrugDataTaskData(info, taskId, now, syncTime)); // } break; } @@ -1108,6 +1119,10 @@ public class HeartService { @Resource DeviceInspectTaskService deviceInspectTaskService; @Resource + RelCodeDetailService relCodeDetailService; + @Resource + RelCodeBatchService relCodeBatchService; + @Resource DeviceInspectTaskDetailService deviceInspectTaskDetailService; @Value("${file_path}") private String filePath; @@ -1164,6 +1179,50 @@ public class HeartService { } return dataResponse; } + /** + * @param info + * @param taskId + * @param now + * @param syncTime + * @return + */ + private SpsSyncDrugDataTaskResponse getDrugDataTaskData(SyncDataSetEntity info, String taskId, Date now, Date syncTime) { + SpsSyncDrugDataTaskResponse dataResponse = null; + Map syncTimeMap = new WeakHashMap<>(3); + syncTimeMap.put("isNew", true); + boolean ge = false; + if (syncTime != null) { + ge = true; + } + StringBuffer remark = new StringBuffer(); + if (needExec(info.getDrugDataTask())) { + Map map = basicExportStatusTimeInfo(now, BasicExportStatusTimeEnum.DRUG_DATA_TASK); + List relCodeBatches = relCodeBatchService.list(Wrappers.lambdaQuery(RelCodeBatch.class) + .le(!ge && (boolean) map.get("isNew"), RelCodeBatch::getUpdateTime, now) + .between(ge, RelCodeBatch::getUpdateTime, syncTime, now) + .between(!ge && !(boolean) map.get("isNew"), RelCodeBatch::getUpdateTime + , map.get("oldDate"), now) + ); + if (CollectionUtil.isNotEmpty(relCodeBatches)) { + dataResponse = new SpsSyncDrugDataTaskResponse(); + dataResponse.setRelCodeBatches(relCodeBatches); + + //增加明细数据 + List batchIds = relCodeBatches.stream().map(RelCodeBatch::getId).collect(Collectors.toList()); + List list = relCodeDetailService.list(Wrappers.lambdaQuery(RelCodeDetail.class) + .in(RelCodeDetail::getBatchIdFk,batchIds)); + dataResponse.setRelCodeDetails(list); + + remark.append("药品关联信息任务:").append(relCodeBatches.size()).append("条\n"); + } + } + if (dataResponse != null) { + dataResponse.setTaskId(taskId); + dataResponse.setType(BasicExportTypeEnum.DRUG_DATA_TASK.getRemark()); + dataResponse.setSyncRemark(remark.toString()); + } + return dataResponse; + } /** From 2bb5f8b11607cc1f428f7761b3827c17e3e6b40d Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Mon, 14 Oct 2024 17:31:54 +0800 Subject: [PATCH 03/35] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/glxp/api/service/thrsys/YbDrugService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/glxp/api/service/thrsys/YbDrugService.java b/src/main/java/com/glxp/api/service/thrsys/YbDrugService.java index 19544d742..b6792f2ec 100644 --- a/src/main/java/com/glxp/api/service/thrsys/YbDrugService.java +++ b/src/main/java/com/glxp/api/service/thrsys/YbDrugService.java @@ -28,7 +28,7 @@ public class YbDrugService { BaseResponse> ybDrugDetail = erpBasicClient.getYbDrugDetail(ybHcflDetailFilterRequest); PageSimpleResponse data = ybDrugDetail.getData(); List list1 = data.getList(); - ybDrugMapper.batchSaveOrUpdateByGoodsCode(list1); + if (CollUtil.isNotEmpty(list1)) ybDrugMapper.batchSaveOrUpdateByGoodsCode(list1); return list1; } return list; From e938cc0c7ad85232113638c541b5a9ae2b20ed58 Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Mon, 14 Oct 2024 17:45:57 +0800 Subject: [PATCH 04/35] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/glxp/api/service/thrsys/YbDrugService.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/glxp/api/service/thrsys/YbDrugService.java b/src/main/java/com/glxp/api/service/thrsys/YbDrugService.java index b6792f2ec..70042a569 100644 --- a/src/main/java/com/glxp/api/service/thrsys/YbDrugService.java +++ b/src/main/java/com/glxp/api/service/thrsys/YbDrugService.java @@ -7,12 +7,15 @@ import com.glxp.api.entity.thrsys.YbDrug; import com.glxp.api.http.ErpBasicClient; import com.glxp.api.req.basic.YbDrugDetailFilterRequest; import com.glxp.api.res.PageSimpleResponse; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; @Service +@Slf4j public class YbDrugService { @Resource @@ -25,9 +28,14 @@ public class YbDrugService { ybHcflDetailFilterRequest.setLimit(1); List list = ybDrugMapper.list(ybHcflDetailFilterRequest); if (CollUtil.isEmpty(list)){ - BaseResponse> ybDrugDetail = erpBasicClient.getYbDrugDetail(ybHcflDetailFilterRequest); - PageSimpleResponse data = ybDrugDetail.getData(); - List list1 = data.getList(); + List list1 = new ArrayList<>(); + try { + BaseResponse> ybDrugDetail = erpBasicClient.getYbDrugDetail(ybHcflDetailFilterRequest); + PageSimpleResponse data = ybDrugDetail.getData(); + list1 = data.getList(); + }catch (Exception e){ + log.debug("获取国家同步库药品的信息错误",e); + } if (CollUtil.isNotEmpty(list1)) ybDrugMapper.batchSaveOrUpdateByGoodsCode(list1); return list1; } From 432882d8ffabcfcb83edc644a4614fc378928d14 Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Mon, 14 Oct 2024 17:59:02 +0800 Subject: [PATCH 05/35] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/glxp/api/controller/basic/UdiRelevanceController.java | 2 +- .../java/com/glxp/api/service/basic/UdiContrastService.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java b/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java index c409414c1..3f5757d00 100644 --- a/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java +++ b/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java @@ -859,7 +859,7 @@ public class UdiRelevanceController extends BaseController { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } List list = ybDrugService.getList(ybHcflDetailFilterRequest); - if (list.size() > 0) { + if (list != null && list.size() > 0) { return ResultVOUtils.success(list.get(0)); } return ResultVOUtils.success(null); 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 f6db79e29..e761f0feb 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiContrastService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiContrastService.java @@ -285,7 +285,7 @@ public class UdiContrastService { UdiProductEntity udiProductEntity = new UdiProductEntity(); BeanUtils.copyProperties(thrProductsEntity, udiProductEntity); udiProductEntity.setId(IdUtil.getSnowflakeNextId()); - if (list.size() > 0) { + if (list != null && list.size() > 0) { YbDrug ybDrug = list.get(0); // udiProductEntity.setNameCode(thrProductsEntity.getCode()); udiProductEntity.setPrepnSpec(ybDrug.getRealityOutlook()); From 8927680db7aa6c432a90b9d45924eb4edea4492e Mon Sep 17 00:00:00 2001 From: qyt <123456> Date: Mon, 14 Oct 2024 21:04:02 +0800 Subject: [PATCH 06/35] =?UTF-8?q?1=E3=80=81=E5=A2=9E=E5=8A=A0=E6=B5=81?= =?UTF-8?q?=E9=80=9A=E5=B1=82=E7=BA=A7=E9=BB=98=E8=AE=A4=E5=80=BC=E4=B8=BA?= =?UTF-8?q?1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/glxp/api/service/basic/UdiProductService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 bded86f20..fe5b5b2fd 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiProductService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiProductService.java @@ -421,7 +421,7 @@ public class UdiProductService extends ServiceImpl udiProductEntities = udiProductDao.findByUuids(udiRelevanceEntity.getUuid()); - Integer curLevel = udiRelevanceEntity.getDistributeLevel(); + Integer curLevel = Objects.isNull(udiRelevanceEntity.getDistributeLevel()) ? 1 : udiRelevanceEntity.getDistributeLevel(); List diLevelResponses = findLevelByRelId(udiRelevanceEntity.getId()); //更新各个层级流通时包含计量单元数量 @@ -439,7 +439,7 @@ public class UdiProductService extends ServiceImpl Date: Mon, 14 Oct 2024 21:13:33 +0800 Subject: [PATCH 07/35] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../glxp/api/service/auth/impl/AuthAdminServiceImpl.java | 7 +++++-- .../com/glxp/api/task/AsyncIoCollectOrderDownloadTask.java | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/glxp/api/service/auth/impl/AuthAdminServiceImpl.java b/src/main/java/com/glxp/api/service/auth/impl/AuthAdminServiceImpl.java index 037837cbf..d49df8623 100644 --- a/src/main/java/com/glxp/api/service/auth/impl/AuthAdminServiceImpl.java +++ b/src/main/java/com/glxp/api/service/auth/impl/AuthAdminServiceImpl.java @@ -214,13 +214,16 @@ public class AuthAdminServiceImpl extends ServiceImpl i @Override public List getUserByDeptCode(String deptCode) { - DeptEntity deptEntity = deptService.selectByCode(deptCode); List deptUserEntitys = deptUserDao.selectList(new LambdaQueryWrapper().eq(DeptUserEntity::getDeptId, deptEntity.getId())); List userIds = deptUserEntitys.stream() .map(DeptUserEntity::getUserId) .collect(Collectors.toList()); - List authAdmins = authAdminDao.selectList(new LambdaQueryWrapper().in(AuthAdmin::getId, userIds)); + List authAdmins = new ArrayList<>(); + if (CollUtil.isEmpty(userIds)){ + return authAdmins; + } + authAdmins = authAdminDao.selectList(new LambdaQueryWrapper().in(AuthAdmin::getId, userIds)); return authAdmins; } diff --git a/src/main/java/com/glxp/api/task/AsyncIoCollectOrderDownloadTask.java b/src/main/java/com/glxp/api/task/AsyncIoCollectOrderDownloadTask.java index 52f0a698e..704cf514d 100644 --- a/src/main/java/com/glxp/api/task/AsyncIoCollectOrderDownloadTask.java +++ b/src/main/java/com/glxp/api/task/AsyncIoCollectOrderDownloadTask.java @@ -92,7 +92,7 @@ public class AsyncIoCollectOrderDownloadTask implements SchedulingConfigurer { try{ collectOriginService.downloadOrderV2(collectOrderRequest); }catch (Exception e){ - log.error("自动下载原始下载出错:{}", e.getMessage()); + log.error("自动下载原始单据出错:{}", e.getMessage()); } } } From a250ce1700f0acd7d19c403447917801ff95c949 Mon Sep 17 00:00:00 2001 From: yewj Date: Mon, 14 Oct 2024 22:05:13 +0800 Subject: [PATCH 08/35] =?UTF-8?q?=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../collect/IoCollectOrderService.java | 56 +------------------ 1 file changed, 3 insertions(+), 53 deletions(-) diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java index fe8f003f7..6e13e0577 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java @@ -227,7 +227,6 @@ public class IoCollectOrderService extends ServiceImpl list = orderService.filterList(filterOrderRequest); - List collectOrderList = new ArrayList<>(); - List allWorksList = new ArrayList<>(); for (IoOrderResponse ioOrderEntity : list) { if (collectOrderMapper.exists(new LambdaQueryWrapper().eq(IoCollectOrder::getBillNo, ioOrderEntity.getBillNo()))) { @@ -271,39 +268,11 @@ public class IoCollectOrderService extends ServiceImpl sysWorkplaces = sysWorkplaceService.getAllByBusType(ioOrderEntity.getAction()); - - //自动分配工位 - final Long[] defaultWorkplace = {null}; - if (CollUtil.isNotEmpty(sysWorkplaces)) { - if (sysWorkplaces.size() == 1) { - defaultWorkplace[0] = sysWorkplaces.get(0).getWorkplaceId(); - } else { - List addWorkplace = new ArrayList<>(); - for (SysWorkplaceResponse sysWorkplace : sysWorkplaces) { - //获取是否有正在处理的工位 - List collectOrderList1 = collectOrderMapper.selectList(new LambdaQueryWrapper() - .eq(IoCollectOrder::getWorkPlaceCode, sysWorkplace.getWorkplaceId()).in(IoCollectOrder::getTagStatus, -1, 1, 2)); - sysWorkplace.setOrderCount(collectOrderList1.size()); - if (IntUtil.value(sysWorkplace.getOrderCount()) > 0) { - addWorkplace.add(sysWorkplace); - } - } - if (addWorkplace.size() > 0) { - Optional minCountObject = addWorkplace.stream() - .min((o1, o2) -> Integer.compare(o1.getOrderCount(), o2.getOrderCount())); - minCountObject.ifPresent(sysWorkplace -> defaultWorkplace[0] = sysWorkplace.getWorkplaceId()); - } else { - defaultWorkplace[0] = sysWorkplaces.get(0).getWorkplaceId(); - } - } - } IoCollectOrder collectOrder = IoCollectOrder.builder() .billNo(ioOrderEntity.getBillNo()) .fromType("UDI系统") .busType(ioOrderEntity.getAction()) .fromCorp(ioOrderEntity.getFromName()) - .workPlaceCode(defaultWorkplace[0]) .billTime(ioOrderEntity.getCreateTime()) .createTime(ioOrderEntity.getCreateTime()) .createUser(ioOrderEntity.getCreateUser()) @@ -317,7 +286,6 @@ public class IoCollectOrderService extends ServiceImpl orderDetailBizEntities = orderDetailBizService.findByOrderId(ioOrderEntity.getBillNo()); - List collectOrderBizs = new ArrayList<>(); for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) { UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByRelId(bizEntity.getBindRlFk() + ""); @@ -346,25 +314,7 @@ public class IoCollectOrderService extends ServiceImpl sysWorkplaceMap = new HashMap<>(); -// for (SysWorkplaceResponse sysWorkplace : allWorksList) { -// sysWorkplaceMap.put(sysWorkplace.getId(), sysWorkplace); -// } -// for (SysWorkplaceResponse value : sysWorkplaceMap.values()) { -// splitFifoCodeService.preAllotInv(value.getWorkplaceId()); -// } - } From 77b0bb79cecedc6c2e431de4e653b42e23a423c3 Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Tue, 15 Oct 2024 10:29:17 +0800 Subject: [PATCH 09/35] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=8E=9F?= =?UTF-8?q?=E5=A7=8B=E5=8D=95=E6=8D=AE=E4=B8=8B=E8=BD=BD=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E5=8D=95=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../collect/IoCollectOriginController.java | 25 +++- .../api/service/collect/DownloadFactory.java | 4 + .../collect/IoCollectOrderService.java | 120 +++++++++++++++++- 3 files changed, 141 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectOriginController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectOriginController.java index 90a5f6734..5fff486f0 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOriginController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOriginController.java @@ -16,6 +16,7 @@ import com.glxp.api.req.basic.GetSickPrescribeRequest; import com.glxp.api.req.basic.WorkBindBusTypeRequest; import com.glxp.api.req.collect.CollectOrderBizRequest; import com.glxp.api.req.collect.CollectOrderRequest; +import com.glxp.api.req.inout.FilterOrderRequest; import com.glxp.api.req.thrsys.FilterThrOrderRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.SysWorkplaceDocumentResponse; @@ -24,10 +25,7 @@ import com.glxp.api.res.collect.CollectOrderBizResponse; import com.glxp.api.res.collect.IoCollectOrderResponse; import com.glxp.api.service.basic.BasicCollectUserService; import com.glxp.api.service.basic.SysWorkplaceDocumentService; -import com.glxp.api.service.collect.DownloadFactory; -import com.glxp.api.service.collect.IoCollectOrderBizOriginService; -import com.glxp.api.service.collect.IoCollectOrderOriginService; -import com.glxp.api.service.collect.IoCollectOriginService; +import com.glxp.api.service.collect.*; import com.glxp.api.util.IntUtil; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -62,6 +60,8 @@ public class IoCollectOriginController extends BaseController { SysWorkplaceDocumentService sysWorkplaceDocumentService; @Resource private ErpBasicClient erpBasicClient; + @Resource + private IoCollectOrderService ioCollectOrderService; @PostMapping("/udiwms/basic/collect/origin/order/download") public BaseResponse downloadOrder(@RequestBody CollectOrderRequest collectOrderRequest) { @@ -107,7 +107,22 @@ public class IoCollectOriginController extends BaseController { BaseResponse> baseResponse = erpBasicClient.getPrescribeQx(getSickPrescribeRequest); return baseResponse; - } else { + }else if (busType.contains("SC")) { + FilterOrderRequest filterOrderRequest = new FilterOrderRequest(); + filterOrderRequest.setStatus(7); + filterOrderRequest.setAction(busType); + filterOrderRequest.setProductType(null); + filterOrderRequest.setLimit(collectOrderRequest.getLimit()); + filterOrderRequest.setPage(collectOrderRequest.getPage()); + filterOrderRequest.setStartTime(collectOrderRequest.getStartTime()); + filterOrderRequest.setEndTime(collectOrderRequest.getEndTime()); + filterOrderRequest.setBillNo(collectOrderRequest.getBillNo()); + filterOrderRequest.setFromCorp(collectOrderRequest.getFromCorpName()); + filterOrderRequest.setAction(collectOrderRequest.getBusType()); + filterOrderRequest.setKeyWords(collectOrderRequest.getKeyWords()); + BaseResponse> baseResponse = ioCollectOrderService.selectImportUdi(filterOrderRequest); + return baseResponse; + }else { FilterThrOrderRequest filterThrOrderRequest = new FilterThrOrderRequest(); filterThrOrderRequest.setLimit(collectOrderRequest.getLimit()); filterThrOrderRequest.setBillNo(collectOrderRequest.getBillNo()); diff --git a/src/main/java/com/glxp/api/service/collect/DownloadFactory.java b/src/main/java/com/glxp/api/service/collect/DownloadFactory.java index 228e74473..d914bbc85 100644 --- a/src/main/java/com/glxp/api/service/collect/DownloadFactory.java +++ b/src/main/java/com/glxp/api/service/collect/DownloadFactory.java @@ -22,6 +22,8 @@ public class DownloadFactory { @Resource private ThrOrderDownload thrOrderDownload; + @Resource + private IoCollectOrderService ioCollectOrderService; /** * 第三方单据类型 @@ -38,6 +40,8 @@ public class DownloadFactory { return ypcf002Download.downloadOrder(collectOrderRequest); }else if (busType.equals(BusTypeConstant.QXCF001.getBusType())) { return qxcf001Download.downloadOrder(collectOrderRequest); + }else if (busType.contains("SC")) { + return ioCollectOrderService.importUdi(collectOrderRequest); } else { return thrOrderDownload.downloadOrder(collectOrderRequest); } diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java index 6e13e0577..306704dd7 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java @@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.Constant; @@ -49,6 +50,7 @@ import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.collect.CollectOrderBizResponse; import com.glxp.api.res.collect.IoCollectOrderResponse; import com.glxp.api.res.inout.IoOrderResponse; +import com.glxp.api.res.inout.IoStatOrderResponse; import com.glxp.api.res.thrsys.ThrInvProductResponse; import com.glxp.api.service.auth.SysWorkplaceService; import com.glxp.api.service.basic.*; @@ -254,26 +256,47 @@ public class IoCollectOrderService extends ServiceImpl list = orderService.filterList(filterOrderRequest); for (IoOrderResponse ioOrderEntity : list) { - if (collectOrderMapper.exists(new LambdaQueryWrapper().eq(IoCollectOrder::getBillNo, ioOrderEntity.getBillNo()))) { continue; } SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = sysWorkplaceDocumentService.findByBusType(ioOrderEntity.getAction()); if (sysWorkplaceDocumentEntity == null) continue; + String mainAction = ioOrderEntity.getMainAction(); + String fromCorpName = ""; + String shipperName = ""; + if (mainAction.equals(ConstantType.TYPE_PUT)){ + shipperName = ioOrderEntity.getFromName(); + fromCorpName = ioOrderEntity.getDeptName(); + }else { + shipperName = ioOrderEntity.getDeptName(); + fromCorpName = ioOrderEntity.getFromName(); + } IoCollectOrder collectOrder = IoCollectOrder.builder() .billNo(ioOrderEntity.getBillNo()) .fromType("UDI系统") .busType(ioOrderEntity.getAction()) .fromCorp(ioOrderEntity.getFromName()) + .fromCorpName(fromCorpName) .billTime(ioOrderEntity.getCreateTime()) + .shipperName(shipperName) .createTime(ioOrderEntity.getCreateTime()) .createUser(ioOrderEntity.getCreateUser()) .updateTime(new Date()) @@ -285,8 +308,13 @@ public class IoCollectOrderService extends ServiceImpl orderDetailBizEntities = orderDetailBizService.findByOrderId(ioOrderEntity.getBillNo()); List collectOrderBizs = new ArrayList<>(); + List collectOrderOriginBizs = new ArrayList<>(); for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) { UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByRelId(bizEntity.getBindRlFk() + ""); IoCollectOrderBiz collectOrderBiz = IoCollectOrderBiz.builder().orderIdFk(collectOrder.getBillNo()) @@ -310,14 +338,100 @@ public class IoCollectOrderService extends ServiceImpl> selectImportUdi(FilterOrderRequest filterOrderRequest) { + + List ioCollectOrders = new ArrayList<>(); + List list = orderService.filterList(filterOrderRequest); + PageInfo pageInfo = new PageInfo<>(list); + + for (IoOrderResponse ioOrderEntity : list) { + if (collectOrderMapper.exists(new LambdaQueryWrapper().eq(IoCollectOrder::getBillNo, ioOrderEntity.getBillNo()))) { + continue; + } + SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = sysWorkplaceDocumentService.findByBusType(ioOrderEntity.getAction()); + if (sysWorkplaceDocumentEntity == null) + continue; + String mainAction = ioOrderEntity.getMainAction(); + String fromCorpName = ""; + String shipperName = ""; + if (mainAction.equals(ConstantType.TYPE_PUT)){ + shipperName = ioOrderEntity.getFromName(); + fromCorpName = ioOrderEntity.getDeptName(); + }else { + shipperName = ioOrderEntity.getDeptName(); + fromCorpName = ioOrderEntity.getFromName(); + } + IoCollectOrder collectOrder = IoCollectOrder.builder() + .billNo(ioOrderEntity.getBillNo()) + .fromType("UDI系统") + .busType(ioOrderEntity.getAction()) + .fromCorp(ioOrderEntity.getFromName()) + .fromCorpName(fromCorpName) + .billTime(ioOrderEntity.getCreateTime()) + .shipperName(shipperName) + .createTime(ioOrderEntity.getCreateTime()) + .createUser(ioOrderEntity.getCreateUser()) + .updateTime(new Date()) + .orderCirType(sysWorkplaceDocumentEntity.getOrderCirType()) + .splitStatus(0) + .tagStatus(0) + .build(); + if (collectOrder.getWorkPlaceCode() != null) { + collectOrder.setTagStatus(1); + } + List orderDetailBizEntities = orderDetailBizService.findByOrderId(ioOrderEntity.getBillNo()); + List collectOrderBizs = new ArrayList<>(); + for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) { + UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByRelId(bizEntity.getBindRlFk() + ""); + IoCollectOrderBiz collectOrderBiz = IoCollectOrderBiz.builder().orderIdFk(collectOrder.getBillNo()) + .relId(bizEntity.getBindRlFk()) + .thrCode(udiRelevanceResponse.getMainId()) + .ybbm(udiRelevanceResponse.getYbbm()) + .payFeeCode(udiRelevanceResponse.getPayFeeCode()) + .cpmctymc(bizEntity.getCoName()) + .nameCode(bizEntity.getNameCode()) + .ggxh(bizEntity.getSpec()) + .batchNo(bizEntity.getBatchNo()) + .productDate(bizEntity.getProductDate()) + .expireDate(bizEntity.getExpireDate()) + .count(bizEntity.getCount()) + .measureUnit(bizEntity.getMeasname()) + .tagStatus(1) + .unTagCount(bizEntity.getCount()).build(); + + if (IntUtil.value(udiRelevanceResponse.getProductsType()) == 2) { + collectOrderBiz.setGgxh(udiRelevanceResponse.getBzgg()); + collectOrderBiz.setMeasureUnit(udiRelevanceResponse.getPrepnUnit()); + } + collectOrderBizs.add(collectOrderBiz); + } + collectOrder.setBizList(collectOrderBizs); + ioCollectOrders.add(collectOrder); } + + PageInfo pageInfoReturn = new PageInfo<>(ioCollectOrders); + BeanUtils.copyProperties(pageInfo,pageInfoReturn); + pageInfoReturn.setList(ioCollectOrders); + return ResultVOUtils.success(pageInfoReturn); } + public void importPrescribe(List basicSkPrescribeEntities) { //下载处方 if (CollUtil.isEmpty(basicSkPrescribeEntities)) From 23e199af6d9716be230278fba549e8b013740bcd Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Tue, 15 Oct 2024 10:41:16 +0800 Subject: [PATCH 10/35] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=8E=9F?= =?UTF-8?q?=E5=A7=8B=E5=8D=95=E6=8D=AE=E4=B8=8B=E8=BD=BD=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E5=8D=95=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/glxp/api/service/collect/IoCollectOrderService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java index 306704dd7..567a08ba6 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java @@ -302,7 +302,7 @@ public class IoCollectOrderService extends ServiceImpl orderDetailBizEntities = orderDetailBizService.findByOrderId(ioOrderEntity.getBillNo()); From 5387561d2b68666d563a60e196bdb6c5614e4cad Mon Sep 17 00:00:00 2001 From: yewj Date: Tue, 15 Oct 2024 11:59:35 +0800 Subject: [PATCH 11/35] =?UTF-8?q?=E5=99=A8=E6=A2=B0=E5=B7=A5=E4=BD=8D?= =?UTF-8?q?=E4=B8=8A=E8=B4=A7=E7=AD=89=E7=9B=B8=E5=85=B3=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inout/IoCodeTempController.java | 44 +++++++++++++------ .../service/inout/IoSplitFifoInvService.java | 7 +++ src/main/resources/application-dev.yml | 4 +- 3 files changed, 39 insertions(+), 16 deletions(-) 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 0c4b199e9..130a12085 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -808,23 +808,33 @@ public class IoCodeTempController extends BaseController { } - //校验码表是否已经存在追溯码 io_code_temp - IoCodeTempEntity codeTempEntity1 = codeTempService.selectByCode(code, udiEntity.getBatchNo(), bussinessTypeEntity.getAction()); - if (codeTempEntity1 != null) { - return ResultVOUtils.error(533, "扫码重复或当前追溯码已存在草稿单据中!"); - } //校验工位存量是否存在 if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_OUT)) { IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(code, addOrderRequest.getWorkPlaceCode()); if (fifoCodeEntity != null && StrUtil.isNotEmpty(fifoCodeEntity.getSerialNo())) { return ResultVOUtils.error(533, "当前追溯码已存在!"); } - } else { + //校验码表是否已经存在追溯码 io_code_temp + if (StrUtil.isNotEmpty(udiEntity.getSerialNo())) { + IoCodeTempEntity codeTempEntity1 = codeTempService.selectByCode(code, udiEntity.getBatchNo(), bussinessTypeEntity.getAction()); + if (codeTempEntity1 != null) { + return ResultVOUtils.error(533, "扫码重复或当前追溯码已存在草稿单据中!"); + } + } + + } else if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_RETURN)) { IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(code, addOrderRequest.getWorkPlaceCode()); if (fifoCodeEntity == null) { return ResultVOUtils.error(500, "当前追溯码未上货!"); } + //校验码表是否已经存在追溯码 io_code_temp + if (StrUtil.isNotEmpty(udiEntity.getSerialNo())) { + IoCodeTempEntity codeTempEntity1 = codeTempService.selectByCode(code, udiEntity.getBatchNo(), bussinessTypeEntity.getAction()); + if (codeTempEntity1 != null) { + return ResultVOUtils.error(533, "扫码重复或当前追溯码已存在草稿单据中!"); + } + } } //校验预验收是否已存在 if (bussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_PREIN && bussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_PUT)) { @@ -908,9 +918,9 @@ public class IoCodeTempController extends BaseController { exitLocalEntity.setCount(exitLocalEntity.getMyCount() + 1); if (bussinessTypeEntity.isUse()) { - exitLocalEntity.setReCount(IntUtil.value(exitLocalEntity.getMyReCount()) * udiCalCountUtil.getUseActCount(udiRelevanceResponses.get(0))); + exitLocalEntity.setReCount(IntUtil.value(exitLocalEntity.getMyReCount()) + udiCalCountUtil.getUseActCount(udiRelevanceResponses.get(0))); } else { - exitLocalEntity.setReCount(IntUtil.value(exitLocalEntity.getMyReCount()) * udiCalCountUtil.getCirActCount(udiRelevanceResponses.get(0))); + exitLocalEntity.setReCount(IntUtil.value(exitLocalEntity.getMyReCount()) + udiCalCountUtil.getCirActCount(udiRelevanceResponses.get(0))); } if (!StringUtils.isBlank(exitLocalEntity.getSerialNo())) { @@ -1304,12 +1314,6 @@ public class IoCodeTempController extends BaseController { } } - - //校验码表是否已经存在追溯码 io_code_temp - IoCodeTempEntity codeTempEntity = codeTempService.selectByCode(code, udiEntity.getBatchNo(), bussinessTypeEntity.getAction()); - if (codeTempEntity != null) { - return ResultVOUtils.error(533, "扫码重复或当前追溯码已存在草稿单据中!"); - } //------工位上货相关-----校验工位存量是否存在---- if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_OUT)) { IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(code, addOrderRequest.getWorkPlaceCode()); @@ -1322,6 +1326,12 @@ public class IoCodeTempController extends BaseController { return ResultVOUtils.error(533, "当前追溯码已存在!"); } + //校验码表是否已经存在追溯码 io_code_temp + IoCodeTempEntity codeTempEntity = codeTempService.selectByCode(code, udiEntity.getBatchNo(), bussinessTypeEntity.getAction()); + if (codeTempEntity != null) { + return ResultVOUtils.error(533, "扫码重复或当前追溯码已存在草稿单据中!"); + } + } else if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_RETURN)) { IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(code, addOrderRequest.getWorkPlaceCode()); if (fifoCodeEntity == null) { @@ -1332,6 +1342,12 @@ public class IoCodeTempController extends BaseController { if (splitCodeEntity != null && StrUtil.isNotEmpty(splitCodeEntity.getSerialNo())) { return ResultVOUtils.error(533, "当前追溯码已经拆零,无法退货!"); } + + //校验码表是否已经存在追溯码 io_code_temp + IoCodeTempEntity codeTempEntity = codeTempService.selectByCode(code, udiEntity.getBatchNo(), bussinessTypeEntity.getAction()); + if (codeTempEntity != null) { + return ResultVOUtils.error(533, "扫码重复或当前追溯码已存在草稿单据中!"); + } } diff --git a/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java b/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java index e2800d4df..62969be4a 100644 --- a/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java +++ b/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java @@ -64,6 +64,13 @@ public class IoSplitFifoInvService extends ServiceImpl Date: Tue, 15 Oct 2024 18:26:58 +0800 Subject: [PATCH 12/35] =?UTF-8?q?10/15=20=E5=9F=BA=E7=A1=80=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=20=E5=99=A8=E6=A2=B0=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/BasicProductCategoryController.java | 1 + .../basic/UdiContrastController.java | 3 +++ .../basic/UdiRelevanceController.java | 4 +--- .../collect/IoCollectOrderController.java | 19 +++++++++++++++++-- .../req/basic/FilterUdiProductRequest.java | 1 + .../BasicProductCategoryServiceImpl.java | 10 ++++++++-- .../api/service/basic/UdiProductService.java | 2 ++ .../glxp/api/service/sync/HeartService.java | 1 + .../basic/BasicProductCategoryRelMapper.xml | 3 +++ .../mybatis/mapper/basic/UdiRelevanceDao.xml | 3 +++ 10 files changed, 40 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/basic/BasicProductCategoryController.java b/src/main/java/com/glxp/api/controller/basic/BasicProductCategoryController.java index 11ad37860..21fbfbb4d 100644 --- a/src/main/java/com/glxp/api/controller/basic/BasicProductCategoryController.java +++ b/src/main/java/com/glxp/api/controller/basic/BasicProductCategoryController.java @@ -266,6 +266,7 @@ public class BasicProductCategoryController { filterUdiProductRequest.setUnionCode(filterUdiRelRequest.getUnionCode()); filterUdiProductRequest.setThrPiId(filterUdiRelRequest.getThrPiId()); filterUdiProductRequest.setNameCode(filterUdiRelRequest.getNameCode()); + filterUdiProductRequest.setProductsType(filterUdiRelRequest.getProductsType()); filterUdiProductRequest.setExistid(list); udiRelevanceResponses = basicProductCategoryService.selectAll(filterUdiProductRequest); diff --git a/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java b/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java index 8a134e0ae..64cc4361f 100644 --- a/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java +++ b/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java @@ -279,6 +279,9 @@ public class UdiContrastController { UdiInfoRequest.setUuid(CustomUtil.getUUId()); UdiInfoRequest.setProductType(ConstantStatus.PRODUCT_TYPE_THIRD); UdiInfoRequest.setDiType(1); + UdiInfoRequest.setRequireScanCode(1); + UdiInfoRequest.setProductsType(1); + UdiInfoRequest.setPackLevel(1 + ""); udiProductService.insertUdiInfo(UdiInfoRequest); udiRelevanceEntity.setUuid(UdiInfoRequest.getUuid()); udiRelevanceEntity.setUpdateTime(new Date()); diff --git a/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java b/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java index 3f5757d00..a2f1b5b40 100644 --- a/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java +++ b/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java @@ -152,7 +152,6 @@ public class UdiRelevanceController extends BaseController { List temps = udiRelevanceService.filterUdiGp(filterUdiRelRequest); if (temps != null && temps.size() > 0) { filterUdiRelRequest.setOriginUuid(temps.get(0).getOriginUuid()); -// filterUdiRelRequest.setNameCode(null);原为空 } } @@ -162,10 +161,9 @@ public class UdiRelevanceController extends BaseController { List temps = udiRelevanceService.filterUdiGp(filterUdiRelRequest); if (temps != null && temps.size() > 0) { filterUdiRelRequest.setOriginUuid(temps.get(0).getOriginUuid()); + filterUdiRelRequest.setNameCode(null); } - filterUdiRelRequest.setNameCode(null); } - } else { filterUdiRelRequest.setDiType(1); } diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java index 4b597d430..df7b9813c 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java @@ -422,12 +422,27 @@ public class IoCollectOrderController extends BaseController { CollectOrderBizRequest collectOrderBizRequest = new CollectOrderBizRequest(); collectOrderBizRequest.setOrderIdFk(collectOrderRequest.getBillNo()); List collectOrderBizResponses = collectOrderService.combieOrderDetail(collectOrderBizRequest); + // 全部自动赋码 boolean isAllTag = collectOrderBizResponses.stream() .allMatch(obj -> obj.getAutoTagStatus() == 2); -// StrUtil.isNotEmpty(obj.getFinishUdiCode()) || boolean isAllTag2 = collectOrderBizResponses.stream() .allMatch(obj -> IntUtil.value(obj.getScanActCount()) >= IntUtil.value(obj.getCount())); - return ResultVOUtils.success(isAllTag || isAllTag2); + if (isAllTag || isAllTag2){ + return ResultVOUtils.success(true); + } + //如果有一条自动赋码的 + boolean isAllTag3 = collectOrderBizResponses.stream() + .anyMatch(obj -> obj.getAutoTagStatus() == 2); + if (isAllTag3){ + //过滤掉自动赋码的 + boolean isAllTag4 = collectOrderBizResponses.stream() + .filter(obj -> obj.getAutoTagStatus() != 2) + .allMatch(obj -> IntUtil.value(obj.getScanActCount()) >= IntUtil.value(obj.getCount())); + if (isAllTag4){ + return ResultVOUtils.success(true); + } + } + return ResultVOUtils.success(false); } diff --git a/src/main/java/com/glxp/api/req/basic/FilterUdiProductRequest.java b/src/main/java/com/glxp/api/req/basic/FilterUdiProductRequest.java index 98fa46517..99cfb9b92 100644 --- a/src/main/java/com/glxp/api/req/basic/FilterUdiProductRequest.java +++ b/src/main/java/com/glxp/api/req/basic/FilterUdiProductRequest.java @@ -21,6 +21,7 @@ public class FilterUdiProductRequest extends ListPageRequest { private String thrPiId; private String originUuid; private Integer diType; + private Integer productsType; private List existid; diff --git a/src/main/java/com/glxp/api/service/basic/BasicProductCategoryServiceImpl.java b/src/main/java/com/glxp/api/service/basic/BasicProductCategoryServiceImpl.java index 44f227da2..33d294f1e 100644 --- a/src/main/java/com/glxp/api/service/basic/BasicProductCategoryServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/BasicProductCategoryServiceImpl.java @@ -55,7 +55,7 @@ public class BasicProductCategoryServiceImpl implements BasicProductCategoryServ if (basicProductTypeFilterRequest.getType() != null && basicProductTypeFilterRequest.getType() == 1 && StrUtil.isNotEmpty(basicProductTypeFilterRequest.getCode())) { List basicProductCategories = basicProductCategoryMapper.selectLowTypeAll(basicProductTypeFilterRequest.getCode()); List ids = basicProductCategories.stream().map(BasicProductCategory::getId).collect(Collectors.toList()); - ew.notIn("id", ids); +// ew.notIn("id", ids); } List list = basicProductCategoryMapper.selectList(ew); return list; @@ -113,6 +113,8 @@ public class BasicProductCategoryServiceImpl implements BasicProductCategoryServ basicProductCategory.setName(basicProductTypeRequest.getName()); basicProductCategory.setParentCode(basicProductTypeRequest.getParentCode()); basicProductCategory.setRemark(basicProductTypeRequest.getRemark()); + basicProductCategory.setDeptCode(basicProductTypeRequest.getDeptCode()); + basicProductCategory.setInvCode(basicProductTypeRequest.getInvCode()); Long userId = customerService.getUserId(); basicProductCategory.setCreateUser(userId + ""); basicProductCategory.setUpdateUser(userId + ""); @@ -120,7 +122,11 @@ public class BasicProductCategoryServiceImpl implements BasicProductCategoryServ QueryWrapper ew = new QueryWrapper<>(); ew.select("max(code) as code"); BasicProductCategory basicProductCategory1 = basicProductCategoryMapper.selectOne(ew); - basicProductCategory.setCode(Integer.valueOf(basicProductCategory1.getCode()) + 1 + ""); + if (basicProductCategory1 != null){ + basicProductCategory.setCode(Integer.valueOf(basicProductCategory1.getCode()) + 1 + ""); + }else { + basicProductCategory.setCode(basicProductTypeRequest.getCode()); + } basicProductCategory.setId(IdUtil.getSnowflakeNextId()); int insert = basicProductCategoryMapper.insert(basicProductCategory); if (insert == 0) { 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 fe5b5b2fd..44b15d9d2 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiProductService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiProductService.java @@ -304,6 +304,7 @@ public class UdiProductService extends ServiceImpl + + AND basic_products.productsType= #{productsType} + AND basic_product_category_rel.code= #{code} diff --git a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml index b78b8e081..2b1145d91 100644 --- a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml +++ b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml @@ -894,6 +894,9 @@ AND basic_udirel.id = #{id} + + AND basic_products.productsType = #{productsType} + and originUuid = #{originUuid} From fa02aaa4395f38e55608f628159d2a1e271b0ffc Mon Sep 17 00:00:00 2001 From: qyt <123456> Date: Wed, 16 Oct 2024 09:50:05 +0800 Subject: [PATCH 13/35] =?UTF-8?q?1=E3=80=81=E8=80=97=E6=9D=90=E5=AD=97?= =?UTF-8?q?=E5=85=B8=E4=BF=A1=E6=81=AF=E8=A1=A8=20=E5=A4=87=E6=B3=A8?= =?UTF-8?q?=E6=9C=89=E8=AF=AF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java b/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java index 4dea758b3..99735fdb0 100644 --- a/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java @@ -229,7 +229,7 @@ public class UdiProductEntity { /** - * 产品类型 1:药品 2:耗材 + * 产品类型 1:耗材 2:药品 */ @TableField(value = "productsType") private Integer productsType; From dcfa320847af78262d0ae5ffefebf968ef9c4338 Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Wed, 16 Oct 2024 10:16:15 +0800 Subject: [PATCH 14/35] =?UTF-8?q?fix:=20=E6=8B=89=E5=8F=96=E5=A4=96?= =?UTF-8?q?=E7=BD=91=E8=8D=AF=E5=93=81=E5=85=B3=E8=81=94=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/dao/collect/RelCodeBatchMapper.java | 3 +- .../api/dao/collect/RelCodeDetailMapper.java | 4 ++- .../glxp/api/service/sync/HeartService.java | 30 +++++++++++++++++++ 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/glxp/api/dao/collect/RelCodeBatchMapper.java b/src/main/java/com/glxp/api/dao/collect/RelCodeBatchMapper.java index 2d51b6b5b..d6570cf96 100644 --- a/src/main/java/com/glxp/api/dao/collect/RelCodeBatchMapper.java +++ b/src/main/java/com/glxp/api/dao/collect/RelCodeBatchMapper.java @@ -1,6 +1,7 @@ package com.glxp.api.dao.collect; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.dao.BaseMapperPlus; import com.glxp.api.entity.collect.RelCodeBatch; import com.glxp.api.req.collect.RelCodeBatchRequest; import com.glxp.api.res.collect.RelCodeBatchResponse; @@ -9,7 +10,7 @@ import org.apache.ibatis.annotations.Mapper; import java.util.List; @Mapper -public interface RelCodeBatchMapper extends BaseMapper { +public interface RelCodeBatchMapper extends BaseMapperPlus { List filterList(RelCodeBatchRequest relCodeBatchRequest); } diff --git a/src/main/java/com/glxp/api/dao/collect/RelCodeDetailMapper.java b/src/main/java/com/glxp/api/dao/collect/RelCodeDetailMapper.java index e5b5feabb..1b7aecefe 100644 --- a/src/main/java/com/glxp/api/dao/collect/RelCodeDetailMapper.java +++ b/src/main/java/com/glxp/api/dao/collect/RelCodeDetailMapper.java @@ -1,6 +1,8 @@ package com.glxp.api.dao.collect; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.dao.BaseMapperPlus; +import com.glxp.api.entity.collect.RelCodeBatch; import com.glxp.api.entity.collect.RelCodeDetail; import com.glxp.api.req.collect.RelCodeDetailRequest; import com.glxp.api.res.collect.RelCodeDetailResponse; @@ -9,7 +11,7 @@ import org.apache.ibatis.annotations.Mapper; import java.util.List; @Mapper -public interface RelCodeDetailMapper extends BaseMapper { +public interface RelCodeDetailMapper extends BaseMapperPlus { List filterList(RelCodeDetailRequest relCodeDetailRequest); } 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 8bf07e686..d61cec085 100644 --- a/src/main/java/com/glxp/api/service/sync/HeartService.java +++ b/src/main/java/com/glxp/api/service/sync/HeartService.java @@ -1,6 +1,8 @@ package com.glxp.api.service.sync; import cn.hutool.core.bean.BeanUtil; +import com.glxp.api.dao.collect.RelCodeBatchMapper; +import com.glxp.api.dao.collect.RelCodeDetailMapper; import com.glxp.api.dao.dev.*; import com.glxp.api.dao.thrsys.ThrManufacturerMapper; import com.glxp.api.entity.collect.RelCodeBatch; @@ -1802,6 +1804,9 @@ public class HeartService { case PRODUCE_BUSINESS_DATA: this.insertProBusinessData(bean.getFileContent()); break; + case DRUG_DATA_TASK: + this.insertDrugData(bean.getFileContent()); + break; } String taskId = bean.getTaskId(); if (StrUtil.isNotBlank(taskId)) { @@ -2188,6 +2193,31 @@ public class HeartService { } } + /** + * 批量 || 插入 药品关联信息 + * insertDrugData + */ + @Resource + RelCodeDetailMapper relCodeDetailMapper; + @Resource + RelCodeBatchMapper relCodeBatchMapper; + + @Transactional(propagation = Propagation.NESTED) + public void insertDrugData(String content){ + cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(content); + SpsSyncDrugDataTaskResponse spsSyncDrugDataTaskResponse = JSONUtil.toBean(String.valueOf(jsonObject.get(SpsSyncDrugDataTaskResponse.class.getSimpleName())), SpsSyncDrugDataTaskResponse.class); + + if (CollectionUtil.isNotEmpty(spsSyncDrugDataTaskResponse.getRelCodeBatches())) { + for (RelCodeBatch entity : spsSyncDrugDataTaskResponse.getRelCodeBatches()) { + entity.setUpdateTime(null); + } + boolean b = relCodeBatchMapper.replaceBatchs(spsSyncDrugDataTaskResponse.getRelCodeBatches()); + } + if (CollectionUtil.isNotEmpty(spsSyncDrugDataTaskResponse.getRelCodeDetails())) { + boolean b = relCodeDetailMapper.replaceBatchs(spsSyncDrugDataTaskResponse.getRelCodeDetails()); + } + } + /** * 从UDI自助平台拉取基础数据 */ From 08c4123483b730a68cfe5631387f5200a883af2e Mon Sep 17 00:00:00 2001 From: yewj Date: Wed, 16 Oct 2024 10:48:53 +0800 Subject: [PATCH 15/35] =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=8B=86=E9=9B=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../glxp/api/controller/inout/IoCodeTempController.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 130a12085..43b6beb2a 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -810,7 +810,7 @@ public class IoCodeTempController extends BaseController { //校验工位存量是否存在 if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_OUT)) { - IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(code, addOrderRequest.getWorkPlaceCode()); + IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(code, null); if (fifoCodeEntity != null && StrUtil.isNotEmpty(fifoCodeEntity.getSerialNo())) { return ResultVOUtils.error(533, "当前追溯码已存在!"); } @@ -824,7 +824,7 @@ public class IoCodeTempController extends BaseController { } else if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_RETURN)) { - IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(code, addOrderRequest.getWorkPlaceCode()); + IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(code, null); if (fifoCodeEntity == null) { return ResultVOUtils.error(500, "当前追溯码未上货!"); } @@ -1316,7 +1316,7 @@ public class IoCodeTempController extends BaseController { //------工位上货相关-----校验工位存量是否存在---- if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_OUT)) { - IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(code, addOrderRequest.getWorkPlaceCode()); + IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(code, null); if (fifoCodeEntity != null && StrUtil.isNotEmpty(fifoCodeEntity.getSerialNo())) { return ResultVOUtils.error(533, "当前追溯码已存在!"); } @@ -1333,7 +1333,7 @@ public class IoCodeTempController extends BaseController { } } else if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_RETURN)) { - IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(code, addOrderRequest.getWorkPlaceCode()); + IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(code, null); if (fifoCodeEntity == null) { return ResultVOUtils.error(500, "当前追溯码未上货!"); } From 987fb774c0947d679babb28626e33fcbeb132fae Mon Sep 17 00:00:00 2001 From: yewj Date: Wed, 16 Oct 2024 10:57:52 +0800 Subject: [PATCH 16/35] =?UTF-8?q?=E8=8D=AF=E5=93=81=E6=9A=82=E6=97=B6?= =?UTF-8?q?=E4=B8=8D=E6=A0=A1=E9=AA=8C=E5=BA=8F=E5=88=97=E5=8F=B7=EF=BC=8C?= =?UTF-8?q?=E6=9C=89bug=EF=BC=8C=E8=8D=AF=E5=93=81=E6=89=AB=E7=A0=81?= =?UTF-8?q?=E5=BA=8F=E5=88=97=E5=8F=B7=E6=B2=A1=E6=9C=89=E8=AF=86=E5=88=AB?= =?UTF-8?q?=E5=88=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/glxp/api/controller/inout/IoCodeTempController.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 43b6beb2a..7611a0644 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -1322,8 +1322,8 @@ public class IoCodeTempController extends BaseController { } IoSplitCodeEntity splitCodeEntity = splitCodeService.findByCode(code); - if (splitCodeEntity != null && StrUtil.isNotEmpty(splitCodeEntity.getSerialNo())) { - return ResultVOUtils.error(533, "当前追溯码已存在!"); + if (splitCodeEntity != null) {//&& StrUtil.isNotEmpty(splitCodeEntity.getSerialNo()) + return ResultVOUtils.error(533, "当前追溯码已存在拆零库存!"); } //校验码表是否已经存在追溯码 io_code_temp @@ -1339,7 +1339,7 @@ public class IoCodeTempController extends BaseController { } IoSplitCodeEntity splitCodeEntity = splitCodeService.findByCode(code); - if (splitCodeEntity != null && StrUtil.isNotEmpty(splitCodeEntity.getSerialNo())) { + if (splitCodeEntity != null) {//&& StrUtil.isNotEmpty(splitCodeEntity.getSerialNo()) return ResultVOUtils.error(533, "当前追溯码已经拆零,无法退货!"); } From bfaae7675ea3e65b94c9b4a73118bbedde13ea6b Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Wed, 16 Oct 2024 18:07:19 +0800 Subject: [PATCH 17/35] =?UTF-8?q?feat:=20=E8=8D=AF=E5=93=81=E5=85=B3?= =?UTF-8?q?=E8=81=94=E5=85=B3=E7=B3=BB=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/service/collect/RelCodeBatchService.java | 12 ++++++++++++ .../java/com/glxp/api/task/SyncHeartService.java | 6 ++++++ 2 files changed, 18 insertions(+) diff --git a/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java b/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java index 5943670d9..65f6d93d4 100644 --- a/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java +++ b/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java @@ -149,6 +149,18 @@ public class RelCodeBatchService extends ServiceImpl list = this.list(new LambdaQueryWrapper() + .eq(RelCodeBatch::getProductCode, productCode) + .eq(RelCodeBatch::getSubTypeNo, subTypeNo) + .eq(RelCodeBatch::getBatchNo, batchNo)) + ; + if (CollUtil.isNotEmpty(list)){ + throw new JsonException( "层级编码:【"+productCode + "】;类型编码:【" + subTypeNo + "】;批次号:【"+batchNo + "】已存在!"); + } List detailList = relCodeBatchRequest.getDetailList(); if(CollUtil.isEmpty(detailList)){ throw new JsonException("关联明细不能为空!"); diff --git a/src/main/java/com/glxp/api/task/SyncHeartService.java b/src/main/java/com/glxp/api/task/SyncHeartService.java index 1bb046e69..515076ade 100644 --- a/src/main/java/com/glxp/api/task/SyncHeartService.java +++ b/src/main/java/com/glxp/api/task/SyncHeartService.java @@ -47,7 +47,13 @@ public class SyncHeartService { try { if (curTime1 - lastTime1 > timeInterval1) { Arrays.stream(BasicExportTypeEnum.values()).forEach(i -> { + try { heartService.pushData(syncDataSetEntity, null, i); + } catch (Exception e) { + log.error(ExceptionUtils.getStackTrace(e)); + e.printStackTrace(); + + } }); redisUtil.set("SPS_SYNC_UPLOAD_DATA", curTime1); } From 61e784aca35046ca89b20e1b51a68f92e846f896 Mon Sep 17 00:00:00 2001 From: wangwei <1610949092@qq.com> Date: Thu, 17 Oct 2024 10:15:59 +0800 Subject: [PATCH 18/35] =?UTF-8?q?10/17=20=E5=8D=95=E6=8D=AE=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=8D=95=E6=8D=AE=E7=B1=BB=E5=9E=8B=EF=BC=88=E5=99=A8?= =?UTF-8?q?=E6=A2=B0/=E8=8D=AF=E5=93=81=EF=BC=89=E5=9F=BA=E7=A1=80?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=99=A8=E6=A2=B0=E5=93=8D=E5=BA=94=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/BasicBussinessTypeController.java | 4 +- .../collect/IoCollectOrderController.java | 20 +-- .../basic/BasicBussinessTypeEntity.java | 4 + .../req/basic/BussinessTypeSaveRequest.java | 7 + .../req/basic/FilterBussinessTypeRequest.java | 5 + .../res/basic/BasicBussinessTypeResponse.java | 6 + .../basic/IBasicBussinessTypeService.java | 2 + .../impl/BasicBussinessTypeServiceImpl.java | 158 ++++++++++++++++++ .../mapper/basic/BasicBussinessTypeDao.xml | 9 + src/main/resources/schemas/schema_v2.4.sql | 5 + 10 files changed, 200 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java b/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java index 3203ab37f..ce4d9cca7 100644 --- a/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java +++ b/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java @@ -263,7 +263,7 @@ public class BasicBussinessTypeController extends BaseController { BindingResult bindingResult) { if (StrUtil.isNotEmpty(bussinessTypeFilterRequest.getVueType())) { List result = new ArrayList<>(); - List bussinessTypeEntities = basicBussinessTypeService.findByVueType(bussinessTypeFilterRequest.getVueType()); + List bussinessTypeEntities = basicBussinessTypeService.findByVueTypeAndType(bussinessTypeFilterRequest); if (StrUtil.isNotEmpty(bussinessTypeFilterRequest.getInvCode()) || StrUtil.isNotEmpty(bussinessTypeFilterRequest.getCode())) { //过滤是否是当前仓库底下单据类型 FilterBussinessTypeRequest tempRequest = new FilterBussinessTypeRequest(); @@ -319,7 +319,7 @@ public class BasicBussinessTypeController extends BaseController { List reList = new ArrayList<>(); if (StrUtil.isNotEmpty(bussinessTypeFilterRequest.getVueType())) { List result = new ArrayList<>(); - List bussinessTypeEntities = basicBussinessTypeService.findByVueType(bussinessTypeFilterRequest.getVueType()); + List bussinessTypeEntities = basicBussinessTypeService.findByVueTypeAndType(bussinessTypeFilterRequest); if (StrUtil.isNotEmpty(bussinessTypeFilterRequest.getInvCode()) || StrUtil.isNotEmpty(bussinessTypeFilterRequest.getCode())) { //过滤是否是当前仓库底下单据类型 FilterBussinessTypeRequest tempRequest = new FilterBussinessTypeRequest(); diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java index df7b9813c..fcb412e17 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java @@ -416,33 +416,17 @@ 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, "单据号不能为空!"); CollectOrderBizRequest collectOrderBizRequest = new CollectOrderBizRequest(); collectOrderBizRequest.setOrderIdFk(collectOrderRequest.getBillNo()); List collectOrderBizResponses = collectOrderService.combieOrderDetail(collectOrderBizRequest); - // 全部自动赋码 boolean isAllTag = collectOrderBizResponses.stream() .allMatch(obj -> obj.getAutoTagStatus() == 2); +// StrUtil.isNotEmpty(obj.getFinishUdiCode()) || boolean isAllTag2 = collectOrderBizResponses.stream() .allMatch(obj -> IntUtil.value(obj.getScanActCount()) >= IntUtil.value(obj.getCount())); - if (isAllTag || isAllTag2){ - return ResultVOUtils.success(true); - } - //如果有一条自动赋码的 - boolean isAllTag3 = collectOrderBizResponses.stream() - .anyMatch(obj -> obj.getAutoTagStatus() == 2); - if (isAllTag3){ - //过滤掉自动赋码的 - boolean isAllTag4 = collectOrderBizResponses.stream() - .filter(obj -> obj.getAutoTagStatus() != 2) - .allMatch(obj -> IntUtil.value(obj.getScanActCount()) >= IntUtil.value(obj.getCount())); - if (isAllTag4){ - return ResultVOUtils.success(true); - } - } - return ResultVOUtils.success(false); + return ResultVOUtils.success(isAllTag || isAllTag2); } diff --git a/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java b/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java index e45d8e513..c5bb48c3c 100644 --- a/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java @@ -522,6 +522,10 @@ public class BasicBussinessTypeEntity { @TableField(value = "codeCheck") private Integer codeCheck; + + @TableField(value = "productType") + private Integer productType; + /** * 是否流通单据类型 */ diff --git a/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java b/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java index 0ce110322..e440e1a9d 100644 --- a/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java +++ b/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java @@ -342,4 +342,11 @@ public class BussinessTypeSaveRequest { private Integer codeCheck; + /** + * 单据类型, 1:器械单据,2:药品单据 + */ + @TableField(value = "productType") + private Integer productType; + + } diff --git a/src/main/java/com/glxp/api/req/basic/FilterBussinessTypeRequest.java b/src/main/java/com/glxp/api/req/basic/FilterBussinessTypeRequest.java index cd7f141cd..656518b96 100644 --- a/src/main/java/com/glxp/api/req/basic/FilterBussinessTypeRequest.java +++ b/src/main/java/com/glxp/api/req/basic/FilterBussinessTypeRequest.java @@ -143,4 +143,9 @@ public class FilterBussinessTypeRequest extends ListPageRequest { */ private Boolean vailInvBatchNo; + /** + * 单据类型, 1:器械单据,2:药品单据 + */ + private Integer productType; + } diff --git a/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java b/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java index ddd7feb26..e70318f0c 100644 --- a/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java +++ b/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java @@ -223,4 +223,10 @@ public class BasicBussinessTypeResponse { @TableField(value = "codeCheck") private Integer codeCheck; + /** + * 单据类型, 1:器械单据,2:药品单据 + */ + @TableField(value = "productType") + private Integer productType; + } diff --git a/src/main/java/com/glxp/api/service/basic/IBasicBussinessTypeService.java b/src/main/java/com/glxp/api/service/basic/IBasicBussinessTypeService.java index f3bc13965..e2c8e6926 100644 --- a/src/main/java/com/glxp/api/service/basic/IBasicBussinessTypeService.java +++ b/src/main/java/com/glxp/api/service/basic/IBasicBussinessTypeService.java @@ -122,4 +122,6 @@ public interface IBasicBussinessTypeService extends IService selectbyNotAction(List list); List findByLastTime(Date lastUpdateTime); + + List findByVueTypeAndType(FilterBussinessTypeRequest bussinessTypeFilterRequest); } diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java index 68f8bcc51..d93aaff2c 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java @@ -392,4 +392,162 @@ public class BasicBussinessTypeServiceImpl extends ServiceImpl findByLastTime(Date lastUpdateTime) { return basicBussinessTypeDao.selectList(new QueryWrapper().gt("updateTime", lastUpdateTime)); } + + @Override + public List findByVueTypeAndType(FilterBussinessTypeRequest bussinessTypeFilterRequest) { + List bussinessTypeEntities = null; + + switch (bussinessTypeFilterRequest.getVueType()) { + case Constant.ORDER_ACTION_NOR_DETAIL: + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("actionType", 1) + .eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType()) + .eq("inStock", true).eq("enable", true)); + break; + + case Constant.ORDER_ACTION_PRE_DETAIL: + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("actionType", 3) + .eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType()) + .eq("inStock", true).eq("enable", true)); + break; + case Constant.ORDER_ACTION_PREIN_DETAIL: + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("actionType", 2) + .eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType()) + .eq("inStock", true).eq("enable", true)); + break; + case Constant.ORDER_ACTION_SUP_DELIVERY: + //允许送货单直接入库变更库存,则不判断送货单是否入库 + String deliveryInstock = systemParamConfigService.selectValueByParamKey("deliveryInstock"); + if (StrUtil.isNotEmpty(deliveryInstock) && deliveryInstock.equals("1")) { + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("mainAction", ConstantType.TYPE_PUT) + .eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType()) + .eq("corpType", ConstantStatus.CORP_TYPE_OUT) + .gt("spUse", 1).eq("enable", true)); + } else { + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("mainAction", ConstantType.TYPE_PUT) + .eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType()) + .eq("corpType", ConstantStatus.CORP_TYPE_OUT) + .gt("spUse", 1).eq("inStock", false).eq("enable", true)); + } + + break; + + /** + * 出入库类型为入库 + * 往来单位类型为供应商 + * 更改库存为否 + * 供应商使用权限为增删改查 + * 库存方式为入账 + * 单据状态待审核 + * + * or + * + * 出入库类型为入库 + * 往来单位类型为供应商 + * 是否更改库存为是 + * 库存方式为入账 + * 单据状态已审核 + */ + case Constant.ORDER_ACTION_SUP_INVOICE: + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("mainAction", ConstantType.TYPE_PUT) + .eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType()) + .gt("spUse", 0).eq("actionType", 1).eq("enable", true)); + break; + + + case Constant.ORDER_ACTION_SUP_DELAUDIT: //供应商审核送货单 + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("mainAction", ConstantType.TYPE_PUT).eq("corpType", ConstantStatus.CORP_TYPE_OUT) + .eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType()) + .gt("spUse", 1).eq("enable", true)); + break; + + case Constant.ORDER_ACTION_SUP_INOUT: //供应商查询出入库单 + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .gt("spUse", 0).eq("enable", true).eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType())); + break; + case Constant.ORDER_ACTION_SUP_PREIN: + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .gt("spUse", 0).eq("enable", true).eq("corpType", ConstantStatus.CORP_TYPE_OUT).eq("actionType", 2) + .eq("inStock", true) + .eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType()) + .eq("mainAction", ConstantType.TYPE_PUT)); + break; + case Constant.ORDER_ACTION_WAIT_CHECK: //待校验 + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("enable", true).eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType()).and( + webNew -> webNew.eq("checkWebNew", 3) + .or().eq("checkPdaUn", 3) + .or().eq("checkPdaEd", 3) + .or().eq("checkUdims", 3) + .or().eq("checkPc", 3) + .or().eq("checkSp", 3) + .or().eq("checkChange", 3) + .or().eq("checkBalance", 3) + .or().eq("checkCopy", 3) + ) + ); + break; + case Constant.ORDER_ACTION_WAIT_DEAL: //待配货/拣货页面 + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("enable", true).eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType()).and( + webNew -> webNew.in("checkWebNew", 1, 2) + .or().in("checkPdaUn", 1, 2) + .or().in("checkPdaEd", 1, 2) + .or().in("checkUdims", 1, 2) + .or().in("checkPc", 1, 2) + .or().in("checkSp", 1, 2) + .or().in("checkChange", 1, 2) + .or().in("checkBalance", 1, 2) + .or().in("checkCopy", 1, 2) + ) + ); + break; + case Constant.ORDER_THIRD_STOCK: //内部码 + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("enable", true).eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType()).and( + webNew -> webNew.in("checkWebNew", 1, 2, 3) + .or().in("checkPdaUn", 1, 2, 3) + .or().in("checkPdaEd", 1, 2, 3) + .or().in("checkUdims", 1, 2, 3) + .or().in("checkPc", 1, 2, 3) + .or().in("checkSp", 1, 2, 3) + .or().in("checkChange", 1, 2, 3) + .or().in("checkBalance", 1, 2, 3) + .or().in("checkCopy", 1, 2, 3) + ) + ); + break; + case Constant.ORDER_THIRD_UPLOAD: + + List thrOrderUploadBustypesEntities = thrOrderUploadBustypesService.list(); + List actions = new ArrayList<>(); + thrOrderUploadBustypesEntities.forEach(item -> + { + actions.add(item.getAction()); + }); + if (CollUtil.isNotEmpty(actions)) { + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper().in("action", actions)); + } + break; + + //科室拆零预出库界面 + case Constant.ORDER_ACTION_SPLIT: + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("enable", true).and( + webNew -> webNew.in("action", "SC72197936495755", "SC72249388338364") + ) + ); + break; + default: + break; + } + + return bussinessTypeEntities; + } } diff --git a/src/main/resources/mybatis/mapper/basic/BasicBussinessTypeDao.xml b/src/main/resources/mybatis/mapper/basic/BasicBussinessTypeDao.xml index b3c6d2a75..5a45506d7 100644 --- a/src/main/resources/mybatis/mapper/basic/BasicBussinessTypeDao.xml +++ b/src/main/resources/mybatis/mapper/basic/BasicBussinessTypeDao.xml @@ -39,6 +39,9 @@ AND bu.busType = #{busType} + + AND bu.productType = #{productType} + AND bu.preIn = #{preIn} @@ -213,6 +216,9 @@ AND basic_bussiness_type.enable = #{enable} + + AND basic_bussiness_type.productType = #{productType} + AND basic_bussiness_type.spUse > 0 @@ -263,6 +269,9 @@ AND basic_bussiness_type.enable = #{enable} + + AND basic_bussiness_type.productType = #{productType} + AND basic_bussiness_type.spUse > 0 diff --git a/src/main/resources/schemas/schema_v2.4.sql b/src/main/resources/schemas/schema_v2.4.sql index ae0d0015a..e665bc460 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -4545,3 +4545,8 @@ CREATE TABLE IF NOT EXISTS `anncmnt_product` CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC; + + +CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'productType', + ' tinyint NULL DEFAULT NULL COMMENT ''单据类型; 1:器械单据 2:药品单据''', + 1); From f6fbc4272b4473ed97c36fca81515e74ef05a2c6 Mon Sep 17 00:00:00 2001 From: yewj Date: Thu, 17 Oct 2024 10:19:58 +0800 Subject: [PATCH 19/35] =?UTF-8?q?=E5=99=A8=E6=A2=B0=E5=B1=82=E7=BA=A7?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/glxp/api/service/basic/UdiProductService.java | 2 +- src/main/resources/application-dev.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) 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 44b15d9d2..2885e11ff 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiProductService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiProductService.java @@ -149,7 +149,7 @@ public class UdiProductService extends ServiceImpl Date: Thu, 17 Oct 2024 15:30:46 +0800 Subject: [PATCH 20/35] =?UTF-8?q?10/17=20=E4=BB=A3=E7=A0=81=E5=A4=87?= =?UTF-8?q?=E4=BB=BD1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/basic/impl/BasicBussinessTypeServiceImpl.java | 3 ++- src/main/resources/mybatis/mapper/inout/IoOrderDao.xml | 6 ++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java index d93aaff2c..42b39ed0d 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java @@ -495,7 +495,8 @@ public class BasicBussinessTypeServiceImpl extends ServiceImpl() - .eq("enable", true).eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType()).and( + .eq("enable", true) + .eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType()).and( webNew -> webNew.in("checkWebNew", 1, 2) .or().in("checkPdaUn", 1, 2) .or().in("checkPdaEd", 1, 2) diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml index e9296af48..be058a6ab 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml @@ -60,9 +60,7 @@ AND io.productType = #{productType} - - - + AND (SELECT NAME FROM auth_warehouse aw2 WHERE aw2.CODE = io.fromInvCode) like @@ -199,7 +197,7 @@ and (io.billNo like concat('%', #{keyWords}, '%') - or io.fromCorp like concat('%', #{keyWords}, '%') + or bc1.name like concat('%', #{keyWords}, '%') or io.workPlaceCode like concat('%', #{keyWords}, '%') or io.busType like concat('%', #{keyWords}, '%') or sw.workplaceName like concat('%', #{keyWords}, '%') From e66332e4fb9da98e87e3d1a6648ae5b96df6e275 Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Thu, 17 Oct 2024 15:56:31 +0800 Subject: [PATCH 21/35] =?UTF-8?q?feat:=20=E8=8D=AF=E5=93=81=E5=85=B3?= =?UTF-8?q?=E8=81=94=E4=BF=A1=E6=81=AF=E4=B8=8A=E4=B8=8B=E4=BC=A0=E8=BE=93?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/constant/BasicExportTypeEnum.java | 2 +- .../collect/RelCodeBatchController.java | 13 ++ .../glxp/api/entity/collect/RelCodeBatch.java | 16 +++ .../glxp/api/http/sync/SpsDirectClient.java | 27 ++++ .../RelCodeDetailByParentCodeResponse.java | 125 ++++++++++++++++++ .../api/service/basic/ProductInfoService.java | 2 + .../basic/impl/ProductInfoServiceImpl.java | 10 ++ .../service/collect/RelCodeBatchService.java | 120 ++++++++++++++++- .../glxp/api/service/sync/HeartService.java | 9 +- 9 files changed, 315 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/glxp/api/res/collect/RelCodeDetailByParentCodeResponse.java diff --git a/src/main/java/com/glxp/api/constant/BasicExportTypeEnum.java b/src/main/java/com/glxp/api/constant/BasicExportTypeEnum.java index 1b301f29e..0acfe7c51 100644 --- a/src/main/java/com/glxp/api/constant/BasicExportTypeEnum.java +++ b/src/main/java/com/glxp/api/constant/BasicExportTypeEnum.java @@ -68,7 +68,7 @@ public enum BasicExportTypeEnum { /** * 药品关联信息任务同步 */ - DRUG_DATA_TASK("drug_data_task", "药品关联信息任"), + DRUG_DATA_TASK("drug_data_task", "药品关联信息数据"), // // NEW_ALL_ORDER("all_order", "出入库扫码单据"), // ALL_BUS_ORDER("all_bus_order", "业务单据"), diff --git a/src/main/java/com/glxp/api/controller/collect/RelCodeBatchController.java b/src/main/java/com/glxp/api/controller/collect/RelCodeBatchController.java index b854a721b..953052696 100644 --- a/src/main/java/com/glxp/api/controller/collect/RelCodeBatchController.java +++ b/src/main/java/com/glxp/api/controller/collect/RelCodeBatchController.java @@ -1,5 +1,6 @@ package com.glxp.api.controller.collect; +import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.CusRedissonAnnotation; import com.glxp.api.annotation.RepeatSubmit; @@ -111,4 +112,16 @@ public class RelCodeBatchController extends BaseController { return ResultVOUtils.success("清空成功"); } + + /** + * 获取本地是否存在该层级码 + * @param parentCode + * @return + */ + @GetMapping("/udiwms/relCode/batch/exist") + public BaseResponse batchExist(@RequestParam("parentCode") String parentCode) { + if (StrUtil.isBlank(parentCode)) return ResultVOUtils.error(500,"层级编码格式错误!"); + return ResultVOUtils.success(relCodeBatchService.batchExist(parentCode)); + } + } diff --git a/src/main/java/com/glxp/api/entity/collect/RelCodeBatch.java b/src/main/java/com/glxp/api/entity/collect/RelCodeBatch.java index 035b75f82..7056f3691 100644 --- a/src/main/java/com/glxp/api/entity/collect/RelCodeBatch.java +++ b/src/main/java/com/glxp/api/entity/collect/RelCodeBatch.java @@ -111,4 +111,20 @@ public class RelCodeBatch implements Serializable { @ApiModelProperty(value = "") private String updateUser; + @TableField(value = "uploadFlagUp") + @ApiModelProperty(value = "") + private Integer uploadFlagUp; + + @TableField(value = "uploadFlagDown") + @ApiModelProperty(value = "") + private Integer uploadFlagDown; + + /** + * 父级码 + */ + + @TableField(value = "parentCode") + @ApiModelProperty(value = "") + private String parentCode; + } diff --git a/src/main/java/com/glxp/api/http/sync/SpsDirectClient.java b/src/main/java/com/glxp/api/http/sync/SpsDirectClient.java index 9bb0a83c3..9edb29eef 100644 --- a/src/main/java/com/glxp/api/http/sync/SpsDirectClient.java +++ b/src/main/java/com/glxp/api/http/sync/SpsDirectClient.java @@ -7,12 +7,15 @@ import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.entity.system.SyncDataSetEntity; import com.glxp.api.req.inout.PostOrderRequest; +import com.glxp.api.res.collect.RelCodeDetailByParentCodeResponse; import com.glxp.api.service.sync.SyncDataSetService; +import com.glxp.api.util.HttpClient; import com.glxp.api.util.OkHttpCli; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.HashMap; +import java.util.List; import java.util.Map; @Service @@ -100,4 +103,28 @@ public class SpsDirectClient { } + /** + * 层级编码查询spms同步库 + */ + public List detailByParentCode(String parentCode) { + Map paramMap = new HashMap<>(2); + paramMap.put("parentCode", parentCode); + String response = okHttpCli.doGet(getIpUrl() + "/udiwms/relCode/detailByParentCode", paramMap); + try { + BaseResponse> baseResponse = + JSONObject.parseObject(response, new TypeReference>>() { + }); + if (baseResponse.getCode() == 20000) { + List list = baseResponse.getData(); + return list; + } else { + return null; + } + + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + } diff --git a/src/main/java/com/glxp/api/res/collect/RelCodeDetailByParentCodeResponse.java b/src/main/java/com/glxp/api/res/collect/RelCodeDetailByParentCodeResponse.java new file mode 100644 index 000000000..09b5b9e75 --- /dev/null +++ b/src/main/java/com/glxp/api/res/collect/RelCodeDetailByParentCodeResponse.java @@ -0,0 +1,125 @@ +package com.glxp.api.res.collect; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.glxp.api.entity.collect.RelCodeDetail; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +@Data +public class RelCodeDetailByParentCodeResponse { + + @TableId(value = "id", type = IdType.AUTO) + @ApiModelProperty(value="") + private Integer id; + + /** + * 产品编码 + */ + @TableField(value = "productCode") + @ApiModelProperty(value="产品编码") + private String productCode; + + /** + * 类型编码 + */ + @TableField(value = "subTypeNo") + @ApiModelProperty(value="类型编码") + private String subTypeNo; + + /** + * 包装比例 + */ + @TableField(value = "cascadeRatio") + @ApiModelProperty(value="包装比例") + private String cascadeRatio; + + /** + * 包装规格 + */ + @TableField(value = "packageSpec") + @ApiModelProperty(value="包装规格") + private String packageSpec; + + /** + * 备注 + */ + @TableField(value = "comment") + @ApiModelProperty(value="备注") + private String comment; + + /** + * 批次号 + */ + @TableField(value = "batchNo") + @ApiModelProperty(value="批次号") + private String batchNo; + + /** + * 生产日期 + */ + @TableField(value = "madeDate") + @ApiModelProperty(value="生产日期") + private String madeDate; + + /** + * 有效期至 + */ + @TableField(value = "validateDate") + @ApiModelProperty(value="有效期至") + private String validateDate; + + /** + * 生产车间 + */ + @TableField(value = "workShop") + @ApiModelProperty(value="生产车间") + private String workShop; + + /** + * 生产线 + */ + @TableField(value = "lineName") + @ApiModelProperty(value="生产线") + private String lineName; + + /** + * 负责人 + */ + @TableField(value = "lineManager") + @ApiModelProperty(value="负责人") + private String lineManager; + + @TableField(value = "createTime") + @ApiModelProperty(value = "") + private Date createTime; + + @TableField(value = "`createUser`") + @ApiModelProperty(value = "") + private String createUser; + + @TableField(value = "updateTime") + @ApiModelProperty(value = "") + private Date updateTime; + + @TableField(value = "updateUser") + @ApiModelProperty(value = "") + private String updateUser; + + + /** + * 父级码 + */ + + @TableField(value = "parentCode") + @ApiModelProperty(value = "") + private String parentCode; + + private List relCodeDetail; + + private List RelCodeDetailSons; +} diff --git a/src/main/java/com/glxp/api/service/basic/ProductInfoService.java b/src/main/java/com/glxp/api/service/basic/ProductInfoService.java index c0cc49bf9..ff057fc21 100644 --- a/src/main/java/com/glxp/api/service/basic/ProductInfoService.java +++ b/src/main/java/com/glxp/api/service/basic/ProductInfoService.java @@ -53,5 +53,7 @@ public interface ProductInfoService { boolean updateProductInfo(ProductInfoEntity productInfoEntity); + ProductInfoEntity findByNameCode(String nameCode); + } diff --git a/src/main/java/com/glxp/api/service/basic/impl/ProductInfoServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/ProductInfoServiceImpl.java index 8670a0026..4cadf5c6b 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/ProductInfoServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/ProductInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.glxp.api.service.basic.impl; +import cn.hutool.core.collection.CollUtil; import com.glxp.api.req.basic.AddProductRequest; import org.springframework.beans.BeanUtils; import com.github.pagehelper.PageHelper; @@ -206,4 +207,13 @@ public class ProductInfoServiceImpl implements ProductInfoService { public boolean deleteAll(List ids) { return productInfoDao.deleteAll(ids); } + + @Override + public ProductInfoEntity findByNameCode(String nameCode) { + + ProductInfoFilterRequest productInfoFilterRequest = new ProductInfoFilterRequest(); + productInfoFilterRequest.setNameCode(nameCode); + List productInfoEntities = productInfoDao.filterProductGroup(productInfoFilterRequest); + return CollUtil.isNotEmpty(productInfoEntities) ? productInfoEntities.get(0) : null; + } } diff --git a/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java b/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java index 65f6d93d4..edc45091e 100644 --- a/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java +++ b/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java @@ -5,16 +5,31 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.XmlUtil; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.github.pagehelper.PageHelper; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.entity.auth.AuthAdmin; +import com.glxp.api.entity.basic.ProductInfoEntity; +import com.glxp.api.entity.basic.UdiEntity; import com.glxp.api.entity.collect.RelCodeDetail; +import com.glxp.api.entity.thrsys.ThrSystemEntity; import com.glxp.api.exception.JsonException; +import com.glxp.api.http.sync.SpsDirectClient; import com.glxp.api.req.collect.RelCodeBatchRequest; import com.glxp.api.req.collect.RelCodeDetailRequest; +import com.glxp.api.req.inv.FilterInvProductRequest; +import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.collect.RelCodeBatchResponse; +import com.glxp.api.res.collect.RelCodeDetailByParentCodeResponse; +import com.glxp.api.res.inv.ThrInvResultResponse; import com.glxp.api.service.auth.CustomerService; +import com.glxp.api.service.basic.ProductInfoService; +import com.glxp.api.util.HttpClient; +import com.glxp.api.util.udi.FilterUdiUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -33,10 +48,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; @Service @@ -48,6 +60,8 @@ public class RelCodeBatchService extends ServiceImpl relCodeDetails = new ArrayList<>(); for(RelCodeDetailRequest request : detailList){ @@ -234,4 +250,100 @@ public class RelCodeBatchService extends ServiceImpl navList = this.list(new LambdaQueryWrapper() + .eq(RelCodeBatch::getParentCode, parentCode)); + if (CollUtil.isNotEmpty(navList)) return true; + + //3、查不到进行远程拉取更新 + return this.UpdateDetailByParentCode(parentCode); + + } + + /** + * 通过 parentCode 拉取spms同步库进行更新 + */ + public boolean UpdateDetailByParentCode(String parentCode) { + List list = this.detailByParentCode(parentCode); + if (CollUtil.isNotEmpty(list)) { + for (int i = 0; i < list.size(); i++) { + try { + RelCodeDetailByParentCodeResponse relCodeDetailByParentCodeResponse = list.get(i); + this.saveDetailByParentCode(relCodeDetailByParentCodeResponse); + List relCodeDetailSons = relCodeDetailByParentCodeResponse.getRelCodeDetailSons(); + if (CollUtil.isNotEmpty(relCodeDetailSons)) { + relCodeDetailSons.forEach( item ->{ + this.saveDetailByParentCode(item); + }); + } + }catch (Exception e){ + log.error("拉取SPMS同步库进行更新失败:[" + parentCode + "]" ); + log.error(e.getMessage(), e); + } + } + return true; + }else + return false; + } + + public void saveDetailByParentCode( RelCodeDetailByParentCodeResponse relCodeDetailByParentCodeResponse) { + String productCode = relCodeDetailByParentCodeResponse.getProductCode(); + String subTypeNo = relCodeDetailByParentCodeResponse.getSubTypeNo(); + String batchNo = relCodeDetailByParentCodeResponse.getBatchNo(); + String parentCode1 = relCodeDetailByParentCodeResponse.getParentCode(); + + //如果不存在就添加 + List navList = this.list(new LambdaQueryWrapper() + .eq(RelCodeBatch::getProductCode, productCode) + .eq(StrUtil.isNotBlank(subTypeNo), RelCodeBatch::getSubTypeNo, subTypeNo) + .eq(RelCodeBatch::getBatchNo, batchNo) + .eq(RelCodeBatch::getParentCode, parentCode1)); + + if (CollUtil.isEmpty(navList)) { + RelCodeBatch relCodeBatch = new RelCodeBatch(); + BeanUtils.copyProperties(relCodeDetailByParentCodeResponse, relCodeBatch); + relCodeBatch.setId(null); + relCodeBatch.setCreateTime(new Date()); + relCodeBatch.setUpdateTime(new Date()); + relCodeBatch.setUploadFlagUp(1); + relCodeBatch.setUploadFlagDown(0); + this.save(relCodeBatch); + + List detailList = relCodeDetailByParentCodeResponse.getRelCodeDetail(); + List relCodeDetails = new ArrayList<>(); + for (RelCodeDetail relCodeDetail : detailList) { + relCodeDetail.setId(null); + relCodeDetail.setBatchIdFk(relCodeBatch.getId()); + relCodeDetails.add(relCodeDetail); + } + relCodeDetailService.saveBatch(relCodeDetails); + } + } + + @Resource + SpsDirectClient spsDirectClient; + + /** + * 层级编码查询spms同步库 + */ + public List detailByParentCode(String parentCode) { + try { + return spsDirectClient.detailByParentCode(parentCode); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + + + } 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 d61cec085..0fb8d8523 100644 --- a/src/main/java/com/glxp/api/service/sync/HeartService.java +++ b/src/main/java/com/glxp/api/service/sync/HeartService.java @@ -1,6 +1,9 @@ package com.glxp.api.service.sync; import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.glxp.api.dao.collect.RelCodeBatchMapper; import com.glxp.api.dao.collect.RelCodeDetailMapper; import com.glxp.api.dao.dev.*; @@ -1200,10 +1203,7 @@ public class HeartService { if (needExec(info.getDrugDataTask())) { Map map = basicExportStatusTimeInfo(now, BasicExportStatusTimeEnum.DRUG_DATA_TASK); List relCodeBatches = relCodeBatchService.list(Wrappers.lambdaQuery(RelCodeBatch.class) - .le(!ge && (boolean) map.get("isNew"), RelCodeBatch::getUpdateTime, now) - .between(ge, RelCodeBatch::getUpdateTime, syncTime, now) - .between(!ge && !(boolean) map.get("isNew"), RelCodeBatch::getUpdateTime - , map.get("oldDate"), now) + .in(RelCodeBatch::getUploadFlagUp,0,2) ); if (CollectionUtil.isNotEmpty(relCodeBatches)) { dataResponse = new SpsSyncDrugDataTaskResponse(); @@ -1216,6 +1216,7 @@ public class HeartService { dataResponse.setRelCodeDetails(list); remark.append("药品关联信息任务:").append(relCodeBatches.size()).append("条\n"); + boolean update = relCodeBatchService.update(new LambdaUpdateWrapper().set(RelCodeBatch::getUploadFlagUp, 1).in(RelCodeBatch::getId, batchIds)); } } if (dataResponse != null) { From b3291be59c509741b7040506af5b2de526a1400a Mon Sep 17 00:00:00 2001 From: yewj Date: Thu, 17 Oct 2024 16:33:56 +0800 Subject: [PATCH 22/35] =?UTF-8?q?=E6=8B=86=E9=9B=B6=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=A4=A7=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/collect/IoCollectOrderCodeMan.java | 8 ++ .../collect/IoCollectOrderCodeManService.java | 106 +++++++++--------- .../collect/IoCollectOrderService.java | 25 +++-- .../api/service/inout/IoSplitCodeService.java | 16 ++- .../thrsys/SysWorkplacePutRelService.java | 12 +- .../collect/IoCollectOrderCodeManMapper.xml | 2 +- src/main/resources/schemas/schema_v2.4.sql | 5 + 7 files changed, 102 insertions(+), 72 deletions(-) diff --git a/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeMan.java b/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeMan.java index b951fd9ec..e769893e7 100644 --- a/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeMan.java +++ b/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeMan.java @@ -72,6 +72,11 @@ public class IoCollectOrderCodeMan implements Serializable { private Integer scanCount; + @TableField(value = "scanActCount") + @ApiModelProperty(value = "") + private Integer scanActCount; + + @TableField(value = "remark") @ApiModelProperty(value = "") private String remark; @@ -95,6 +100,9 @@ public class IoCollectOrderCodeMan implements Serializable { @TableField(exist = false) private Boolean removeFlag; + @TableField(exist = false) + private Boolean splitFlag; + private static final long serialVersionUID = 1L; } diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java index 44f8735f9..a18460bd5 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java @@ -15,6 +15,7 @@ import com.glxp.api.dao.collect.IoCollectOrderCodeManMapper; import com.glxp.api.entity.auth.InvWarehouseEntity; import com.glxp.api.entity.auth.SysWorkplace; import com.glxp.api.entity.basic.SysWorkplaceDocumentEntity; +import com.glxp.api.entity.basic.SysWorkplacePutRel; import com.glxp.api.entity.basic.UdiEntity; import com.glxp.api.entity.collect.IoCollectOrder; import com.glxp.api.entity.collect.IoCollectOrderBiz; @@ -37,6 +38,7 @@ import com.glxp.api.service.basic.UdiRelevanceService; import com.glxp.api.service.inout.IoSplitCodeService; import com.glxp.api.service.inv.AnncmntProductService; import com.glxp.api.service.thrsys.IThrBusTypeOriginService; +import com.glxp.api.service.thrsys.SysWorkplacePutRelService; import com.glxp.api.service.thrsys.ThrSystemService; import com.glxp.api.util.GennerOrderUtils; import com.glxp.api.util.IntUtil; @@ -111,16 +113,21 @@ public class IoCollectOrderCodeManService extends ServiceImpl collectOrderBizs = collectOrderBizService.listByBillNo(addTagCodeReqeust.getBillNo()); //2.校验是否处方单UDI码 if (IntUtil.value(sysWorkplaceDocumentEntity.getScanType()) == WorkOperType.TYPE_GEN_ORDER) { @@ -222,16 +231,20 @@ public class IoCollectOrderCodeManService extends ServiceImpl IntUtil.value(collectOrderBiz.getCount())) { int needCount = IntUtil.value(collectOrderBiz.getCount()) - IntUtil.value(collectOrderBiz.getScanActCount()); if (needCount > 0) { - if (vailInSplit(collectOrderBiz, collectOrder.getWorkPlaceCode(), needCount)) { + if (vailInSplit(collectOrderBiz, putWorkPlaceCode, needCount)) { throw new JsonException(502, collectOrderBiz.getCpmctymc() + "拆零数量还有剩余,是否继续添加?"); } } @@ -286,15 +290,11 @@ public class IoCollectOrderCodeManService extends ServiceImpl collectOrderBiz.getCount()) { int needCount = IntUtil.value(collectOrderBiz.getCount()) - IntUtil.value(collectOrderBiz.getScanActCount()); if (needCount > 0) { - if (vailInSplit(collectOrderBiz, collectOrder.getWorkPlaceCode(), needCount)) { + if (vailInSplit(collectOrderBiz, putWorkPlaceCode, needCount)) { throw new JsonException(502, collectOrderBiz.getCpmctymc() + "拆零数量还有剩余,是否继续扫码?"); } } @@ -336,9 +336,18 @@ public class IoCollectOrderCodeManService extends ServiceImpl IntUtil.value(collectOrderBiz.getCount())) { int needCount = IntUtil.value(collectOrderBiz.getCount()) - IntUtil.value(collectOrderBiz.getScanActCount()); if (needCount > 0) { - if (vailInSplit(collectOrderBiz, collectOrder.getWorkPlaceCode(), needCount)) { + if (vailInSplit(collectOrderBiz, putWorkPlaceCode, needCount)) { throw new JsonException(502, "当前拆零数量还有剩余,是否继续扫码?"); } } @@ -384,15 +385,11 @@ public class IoCollectOrderCodeManService extends ServiceImpl collectOrderBiz.getCount()) { int needCount = IntUtil.value(collectOrderBiz.getCount()) - IntUtil.value(collectOrderBiz.getScanActCount()); if (needCount > 0) { - if (vailInSplit(collectOrderBiz, collectOrder.getWorkPlaceCode(), needCount)) { + if (vailInSplit(collectOrderBiz, putWorkPlaceCode, needCount)) { throw new JsonException(502, collectOrderBiz.getCpmctymc() + "拆零数量还有剩余,是否继续添加?"); } } @@ -406,11 +403,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl pageInfoReturn = new PageInfo<>(ioCollectOrders); - BeanUtils.copyProperties(pageInfo,pageInfoReturn); + BeanUtils.copyProperties(pageInfo, pageInfoReturn); pageInfoReturn.setList(ioCollectOrders); return ResultVOUtils.success(pageInfoReturn); } - public void importPrescribe(List basicSkPrescribeEntities) { //下载处方 if (CollUtil.isEmpty(basicSkPrescribeEntities)) @@ -708,14 +708,23 @@ public class IoCollectOrderService extends ServiceImpl ioSplitCodeEntities = splitCodeMapper.selectList(new LambdaQueryWrapper() .eq(IoSplitCodeEntity::getCode, code) .eq(workPlaceCode != null, IoSplitCodeEntity::getWorkPlaceCode, workPlaceCode) @@ -252,6 +252,18 @@ public class IoSplitCodeService extends ServiceImpl 0) { + if (IntUtil.value(splitCodeEntity.getRemainCount()) > IntUtil.value(collectOrderCodeMan.getScanCount())) { + splitCodeEntity.setRemainCount(IntUtil.value(splitCodeEntity.getRemainCount()) - IntUtil.value(collectOrderCodeMan.getScanActCount())); + } else { + splitCodeEntity.setRemainCount(0); + } + collectOrderCodeMan.setSplitFlag(true); + splitCodeService.updateById(splitCodeEntity); + } + } } List removeIds = new ArrayList<>(); @@ -281,7 +293,7 @@ public class IoSplitCodeService extends ServiceImpl firstMatch1 = collectOrderCodeMEN.stream() .filter(item -> - item.getBizIdFk().equals(collectOrderBiz.getId())) + !IntUtil.value(item.getSplitFlag()) && item.getBizIdFk().equals(collectOrderBiz.getId())) .findFirst(); if (firstMatch1.isPresent()) { result = firstMatch1.get(); diff --git a/src/main/java/com/glxp/api/service/thrsys/SysWorkplacePutRelService.java b/src/main/java/com/glxp/api/service/thrsys/SysWorkplacePutRelService.java index 74ffe4dbc..ebac573a4 100644 --- a/src/main/java/com/glxp/api/service/thrsys/SysWorkplacePutRelService.java +++ b/src/main/java/com/glxp/api/service/thrsys/SysWorkplacePutRelService.java @@ -27,7 +27,7 @@ public class SysWorkplacePutRelService extends ServiceImpl sysWorkplacePutRelList = list(new LambdaQueryWrapper().eq(SysWorkplacePutRel::getCollectWorkCode, workPlaceCode).eq(SysWorkplacePutRel::getCollectBusType, busType)); + List sysWorkplacePutRelList = list(new LambdaQueryWrapper().eq(SysWorkplacePutRel::getCollectWorkCode, workPlaceCode).eq(busType != null, SysWorkplacePutRel::getCollectBusType, busType)); if (CollUtil.isNotEmpty(sysWorkplacePutRelList)) return sysWorkplacePutRelList.get(0); else @@ -46,8 +46,8 @@ public class SysWorkplacePutRelService extends ServiceImpl SELECT * FROM io_collect_order_code_man icocm - left join udi_wms_ct.io_collect_order bu on icocm.orderIdFk = bu.billNo + left join io_collect_order bu on icocm.orderIdFk = bu.billNo AND udiCode = #{udiCode} diff --git a/src/main/resources/schemas/schema_v2.4.sql b/src/main/resources/schemas/schema_v2.4.sql index e665bc460..81fc83666 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -4550,3 +4550,8 @@ CREATE TABLE IF NOT EXISTS `anncmnt_product` CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'productType', ' tinyint NULL DEFAULT NULL COMMENT ''单据类型; 1:器械单据 2:药品单据''', 1); + + +CALL Pro_Temp_ColumnWork('io_collect_order_code_man', 'scanActCount', + 'int NULL DEFAULT NULL COMMENT ''扫码实际数量''', + 1); \ No newline at end of file From 0c7008a8b7aa5a7a1c1e47e25504c54452fa5709 Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Thu, 17 Oct 2024 18:00:33 +0800 Subject: [PATCH 23/35] =?UTF-8?q?feat:=20=E8=8D=AF=E5=93=81=E5=85=B3?= =?UTF-8?q?=E8=81=94=E5=85=B3=E7=B3=BB=E6=98=AF=E5=90=A6=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inout/IoCodeTempController.java | 9 ++++++ .../api/entity/inout/IoCodeTempEntity.java | 9 ++++++ .../service/collect/RelCodeBatchService.java | 28 +++++++++++++++++++ src/main/resources/schemas/schema_v2.4.sql | 4 +++ 4 files changed, 50 insertions(+) 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 7611a0644..2efa17b33 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -1,5 +1,6 @@ package com.glxp.api.controller.inout; +import cn.hutool.core.thread.ThreadUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.glxp.api.annotation.CusRedissonAnnotation; @@ -1216,6 +1217,10 @@ public class IoCodeTempController extends BaseController { return ResultVOUtils.success(addCodeResult); } + + @Resource + RelCodeBatchService relCodeBatchService; + @Transactional(rollbackFor = Exception.class) public BaseResponse addDrugOrder(AddOrderRequest addOrderRequest, UdiEntity udiEntity, String code) { AddCodeResult addCodeResult = new AddCodeResult(); @@ -1487,6 +1492,10 @@ public class IoCodeTempController extends BaseController { codeEnttity.setProductType(2); codeEnttity.setCount(1); String unitFk = null; + // TODO: 2024/10/17 异步调用 查询是否存在药品关联信息 后将结果更新至 temp表 + ThreadUtil.execAsync(() -> { + relCodeBatchService.threadUpdateIoCodeTempEntity(codeEnttity); + }); if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) { unitFk = addOrderRequest.getFromCorp(); } else if (StrUtil.isNotEmpty(addOrderRequest.getSelectSupId())) { diff --git a/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java b/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java index 237cf3658..cf9cb7bdf 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java @@ -194,6 +194,15 @@ public class IoCodeTempEntity { @TableField(value = "fifoSplit") private Integer fifoSplit; + + /** + * 药品关联关系是否存在 0不存在 1存在 + */ + @TableField(value = "drugLink") + private Integer drugLink; + + + public int getMyCount() { if (count == null) return 0; diff --git a/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java b/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java index edc45091e..a870ee63c 100644 --- a/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java +++ b/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java @@ -12,10 +12,12 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.github.pagehelper.PageHelper; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.dao.inout.IoCodeTempDao; import com.glxp.api.entity.auth.AuthAdmin; import com.glxp.api.entity.basic.ProductInfoEntity; import com.glxp.api.entity.basic.UdiEntity; import com.glxp.api.entity.collect.RelCodeDetail; +import com.glxp.api.entity.inout.IoCodeTempEntity; import com.glxp.api.entity.thrsys.ThrSystemEntity; import com.glxp.api.exception.JsonException; import com.glxp.api.http.sync.SpsDirectClient; @@ -345,5 +347,31 @@ public class RelCodeBatchService extends ServiceImpl ioCodeTempEntities = ioCodeTempDao.selectList(new LambdaQueryWrapper().eq(IoCodeTempEntity::getCode, parentCode)); + if (CollUtil.isNotEmpty(ioCodeTempEntities)){ + if (this.batchExist(parentCode)){ + //打上匹配到了药品关联关系的标记 + for (int i = 0; i < ioCodeTempEntities.size(); i++) { + IoCodeTempEntity ioCodeTempEntity = ioCodeTempEntities.get(i); + ioCodeTempEntity.setDrugLink(1); + ioCodeTempDao.updateById(ioCodeTempEntity); + } + + }else { + //打上匹配不到了药品关联关系的标记 + for (int i = 0; i < ioCodeTempEntities.size(); i++) { + IoCodeTempEntity ioCodeTempEntity = ioCodeTempEntities.get(i); + ioCodeTempEntity.setDrugLink(0); + ioCodeTempDao.updateById(ioCodeTempEntity); + } + } + } + + } } diff --git a/src/main/resources/schemas/schema_v2.4.sql b/src/main/resources/schemas/schema_v2.4.sql index 81fc83666..1bf5c14d9 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -4554,4 +4554,8 @@ CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'productType', CALL Pro_Temp_ColumnWork('io_collect_order_code_man', 'scanActCount', 'int NULL DEFAULT NULL COMMENT ''扫码实际数量''', + 1); + +CALL Pro_Temp_ColumnWork('io_code_temp', 'drugLink', + ' tinyint NULL DEFAULT b''0''COMMENT ''药品关联关系是否存在 0不存在 1存在''', 1); \ No newline at end of file From 86f229fd692f515e44a2e066bb8148429687ca75 Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Thu, 17 Oct 2024 18:28:42 +0800 Subject: [PATCH 24/35] =?UTF-8?q?feat:=20=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/glxp/api/service/collect/down/ThrOrderDownload.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/glxp/api/service/collect/down/ThrOrderDownload.java b/src/main/java/com/glxp/api/service/collect/down/ThrOrderDownload.java index cb6d647a3..5c282a816 100644 --- a/src/main/java/com/glxp/api/service/collect/down/ThrOrderDownload.java +++ b/src/main/java/com/glxp/api/service/collect/down/ThrOrderDownload.java @@ -107,7 +107,7 @@ public class ThrOrderDownload implements IDownload { if (BusTypeConstant.QXCF001.getBusType().equals(collectOrderRequest.getBusType())){ collectOrderBiz.setRelId(entity.getRelId()); BasicProductsEntity basicProductsEntity = basicProductsDao.selectOne(new LambdaQueryWrapper().eq(BasicProductsEntity::getYbbm, entity.getYbbm()).last("limit 1")); - if (StrUtil.isEmpty(basicProductsEntity.getNameCode())) { + if (basicProductsEntity == null || StrUtil.isEmpty(basicProductsEntity.getNameCode())) { errorMsg.append(entity.getCpmctymc()).append("字典未对照").append(";"); } collectOrderBiz.setTagStatus(1); From 43c5b1923fb09a47aa94e4a4c27b3cbb0e980c7f Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Fri, 18 Oct 2024 09:33:53 +0800 Subject: [PATCH 25/35] =?UTF-8?q?feat:=20=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inout/IoCodeTempController.java | 10 +-- .../service/collect/RelCodeBatchService.java | 62 ++++++++++++++----- 2 files changed, 51 insertions(+), 21 deletions(-) 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 2efa17b33..bf0a4df7d 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -1492,10 +1492,6 @@ public class IoCodeTempController extends BaseController { codeEnttity.setProductType(2); codeEnttity.setCount(1); String unitFk = null; - // TODO: 2024/10/17 异步调用 查询是否存在药品关联信息 后将结果更新至 temp表 - ThreadUtil.execAsync(() -> { - relCodeBatchService.threadUpdateIoCodeTempEntity(codeEnttity); - }); if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) { unitFk = addOrderRequest.getFromCorp(); } else if (StrUtil.isNotEmpty(addOrderRequest.getSelectSupId())) { @@ -1665,6 +1661,8 @@ public class IoCodeTempController extends BaseController { return ResultVOUtils.error(500, errMsg); } else codeTempService.insert(codeEnttity); + // 查询是否存在药品关联信息 后将结果更新至 temp表 + relCodeBatchService.threadUpdateIoCodeTempEntity(code); // } else if (bussinessTypeEntity.getCheckWebNew() == 2 && bussinessTypeEntity.isCheckEnable()) { } else if (IntUtil.value(addOrderRequest.getOrderType()) == ConstantStatus.ORDER_TYPE_WAIT && bussinessTypeEntity.isCheckEnable()) { String errMsg = ioCheckInoutService.checkDrugNoPiCode(codeEnttity); @@ -1672,9 +1670,13 @@ public class IoCodeTempController extends BaseController { return ResultVOUtils.error(500, errMsg); } else codeTempService.insert(codeEnttity); + // 异步调用 查询是否存在药品关联信息 后将结果更新至 temp表 + relCodeBatchService.threadUpdateIoCodeTempEntity(code); } else { checkPrice(codeEnttity, bussinessTypeEntity, inBatch, codeEnttitys); codeTempService.insert(codeEnttity); + // 查询是否存在药品关联信息 后将结果更新至 temp表 + relCodeBatchService.threadUpdateIoCodeTempEntity(code); } } addCodeResult.setOrderId(orderId); diff --git a/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java b/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java index a870ee63c..641b1c370 100644 --- a/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java +++ b/src/main/java/com/glxp/api/service/collect/RelCodeBatchService.java @@ -3,6 +3,7 @@ package com.glxp.api.service.collect; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; +import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.XmlUtil; import com.alibaba.fastjson.JSONObject; @@ -350,28 +351,55 @@ public class RelCodeBatchService extends ServiceImpl ioCodeTempEntities = ioCodeTempDao.selectList(new LambdaQueryWrapper().eq(IoCodeTempEntity::getCode, parentCode)); + public void threadUpdateIoCodeTempEntity(String parentCode){ + List ioCodeTempEntities = ioCodeTempDao.selectList(new LambdaQueryWrapper().eq(IoCodeTempEntity::getCode, parentCode)); if (CollUtil.isNotEmpty(ioCodeTempEntities)){ - if (this.batchExist(parentCode)){ - //打上匹配到了药品关联关系的标记 - for (int i = 0; i < ioCodeTempEntities.size(); i++) { - IoCodeTempEntity ioCodeTempEntity = ioCodeTempEntities.get(i); - ioCodeTempEntity.setDrugLink(1); - ioCodeTempDao.updateById(ioCodeTempEntity); - } - }else { - //打上匹配不到了药品关联关系的标记 - for (int i = 0; i < ioCodeTempEntities.size(); i++) { - IoCodeTempEntity ioCodeTempEntity = ioCodeTempEntities.get(i); - ioCodeTempEntity.setDrugLink(0); - ioCodeTempDao.updateById(ioCodeTempEntity); - } + //1、排除掉层级是1的 + UdiEntity udi = FilterUdiUtils.getUdi(parentCode); + String udi1 = udi.getUdi(); + ProductInfoEntity byNameCode = productInfoService.findByNameCode(udi1); + List navList = this.list(new LambdaQueryWrapper() + .eq(RelCodeBatch::getParentCode, parentCode)); + + if ( (byNameCode != null && "1".equals(byNameCode.getPackLevel())) + || (CollUtil.isNotEmpty(navList)) + ){ + //打上匹配到了药品关联关系的标记 + for (int i = 0; i < ioCodeTempEntities.size(); i++) { + IoCodeTempEntity ioCodeTempEntity = ioCodeTempEntities.get(i); + ioCodeTempEntity.setDrugLink(1); + ioCodeTempDao.updateById(ioCodeTempEntity); + } + + }else { + ThreadUtil.execAsync(() -> { + asynThreadUpdateIoCodeTempEntity(parentCode,ioCodeTempEntities); + }); + } + } + +} + + + public void asynThreadUpdateIoCodeTempEntity(String parentCode,List ioCodeTempEntities){ + if (this.batchExist(parentCode)){ + //打上匹配到了药品关联关系的标记 + for (int i = 0; i < ioCodeTempEntities.size(); i++) { + IoCodeTempEntity ioCodeTempEntity = ioCodeTempEntities.get(i); + ioCodeTempEntity.setDrugLink(1); + ioCodeTempDao.updateById(ioCodeTempEntity); + } + }else { + //打上匹配不到了药品关联关系的标记 + for (int i = 0; i < ioCodeTempEntities.size(); i++) { + IoCodeTempEntity ioCodeTempEntity = ioCodeTempEntities.get(i); + ioCodeTempEntity.setDrugLink(0); + ioCodeTempDao.updateById(ioCodeTempEntity); } } + } } From 86ba1f0dfe10d29a1b33b753a86c48bbda9e98fb Mon Sep 17 00:00:00 2001 From: yewj Date: Fri, 18 Oct 2024 10:45:17 +0800 Subject: [PATCH 26/35] =?UTF-8?q?=E5=99=A8=E6=A2=B0=E6=89=AB=E7=A0=81?= =?UTF-8?q?=E6=8B=86=E9=9B=B6=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../collect/IoCollectOrderCodeManService.java | 2 +- .../api/service/inout/IoSplitCodeService.java | 43 ++++++++++--------- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java index a18460bd5..2d8cf8233 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java @@ -414,7 +414,6 @@ public class IoCollectOrderCodeManService extends ServiceImpl 0) { - if (IntUtil.value(splitCodeEntity.getRemainCount()) > IntUtil.value(collectOrderCodeMan.getScanCount())) { + if (IntUtil.value(splitCodeEntity.getRemainCount()) > IntUtil.value(collectOrderCodeMan.getScanActCount())) { splitCodeEntity.setRemainCount(IntUtil.value(splitCodeEntity.getRemainCount()) - IntUtil.value(collectOrderCodeMan.getScanActCount())); } else { splitCodeEntity.setRemainCount(0); @@ -299,25 +299,28 @@ public class IoSplitCodeService extends ServiceImpl Date: Fri, 18 Oct 2024 12:00:04 +0800 Subject: [PATCH 27/35] =?UTF-8?q?=E5=99=A8=E6=A2=B0=E6=89=AB=E7=A0=81?= =?UTF-8?q?=E6=8B=86=E9=9B=B6=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/service/inout/IoSplitCodeService.java | 54 +++++++++++-------- 1 file changed, 33 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java b/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java index 9cce2f502..2c4c8aca4 100644 --- a/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java +++ b/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java @@ -297,29 +297,41 @@ public class IoSplitCodeService extends ServiceImpl + IntUtil.value(item.getSplitFlag()) && item.getBizIdFk().equals(collectOrderBiz.getId())) + .findFirst(); + if (firstMatch1.isPresent()) { + result = firstMatch1.get(); + IoSplitCodeEntity splitCodeEntity = splitCodeService.findByCode(result.getUdiCode(), putWorkPlaceCode); + splitCodeEntity.setRemainCount(-unTagCount); + splitCodeService.updateById(splitCodeEntity); + } } } - if (result != null) { - IoSplitCodeEntity ioSplitCodeEntity = IoSplitCodeEntity.builder().code(result.getUdiCode()) - .errUdiCode(result.getUdiCode()) - .orderId(result.getOrderIdFk()) - .action(collectOrder.getBusType()) - .relId(result.getRelId()) - .nameCode(result.getNameCode()) - .batchNo(result.getBatchNo()) - .produceDate(result.getProductDate()) - .expireDate(result.getExpireDate()) - .serialNo(result.getSerialNo()) - .scanCount(result.getScanCount()) - .totalCount(result.getScanCount()) - .workPlaceCode(putWorkPlaceCode) - .status(2) - .fifoSplit(1) - .createTime(new Date()).updateTime(new Date()) - .remainCount(-unTagCount).build(); - this.decorateUnpackExpireTime(ioSplitCodeEntity); - splitCodeService.save(ioSplitCodeEntity); - } + } From d4e0b66ff4d0ddb71d71e83d00fb9d00ccb941c7 Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Fri, 18 Oct 2024 16:10:49 +0800 Subject: [PATCH 28/35] =?UTF-8?q?feat:=20=E8=8D=AF=E5=93=81=E5=85=B3?= =?UTF-8?q?=E8=81=94=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/collect/RelCodeBatchController.java | 13 +++++++++++++ .../com/glxp/api/res/inout/IoCodeTempResponse.java | 7 +++++++ 2 files changed, 20 insertions(+) diff --git a/src/main/java/com/glxp/api/controller/collect/RelCodeBatchController.java b/src/main/java/com/glxp/api/controller/collect/RelCodeBatchController.java index 953052696..6a02c4446 100644 --- a/src/main/java/com/glxp/api/controller/collect/RelCodeBatchController.java +++ b/src/main/java/com/glxp/api/controller/collect/RelCodeBatchController.java @@ -124,4 +124,17 @@ public class RelCodeBatchController extends BaseController { return ResultVOUtils.success(relCodeBatchService.batchExist(parentCode)); } + + /** + * 更新明细 + * @param parentCode + * @return + */ + @GetMapping("/udiwms/relCode/updateIoCodeTempEntity") + public BaseResponse threadUpdateIoCodeTempEntity(@RequestParam("parentCode") String parentCode) { + if (StrUtil.isBlank(parentCode)) return ResultVOUtils.error(500,"层级编码格式错误!"); + relCodeBatchService.threadUpdateIoCodeTempEntity(parentCode); + return ResultVOUtils.success(); + } + } diff --git a/src/main/java/com/glxp/api/res/inout/IoCodeTempResponse.java b/src/main/java/com/glxp/api/res/inout/IoCodeTempResponse.java index 585e947e4..a331eae4f 100644 --- a/src/main/java/com/glxp/api/res/inout/IoCodeTempResponse.java +++ b/src/main/java/com/glxp/api/res/inout/IoCodeTempResponse.java @@ -1,5 +1,6 @@ package com.glxp.api.res.inout; +import com.baomidou.mybatisplus.annotation.TableField; import lombok.Data; import java.util.Date; @@ -153,4 +154,10 @@ public class IoCodeTempResponse { private String prepnUnit; private String prepnSpec; + /** + * 药品关联关系是否存在 0不存在 1存在 + */ + @TableField(value = "drugLink") + private Integer drugLink; + } From 5f915dffe251694a202158e424439f2b159e77b5 Mon Sep 17 00:00:00 2001 From: yewj Date: Fri, 18 Oct 2024 17:01:48 +0800 Subject: [PATCH 29/35] =?UTF-8?q?=E5=B7=A5=E4=BD=8D=E4=B8=8A=E8=B4=A7?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/service/collect/IoCollectOrderService.java | 3 +++ .../com/glxp/api/service/inout/IoAddInoutService.java | 2 +- src/main/java/com/glxp/api/util/IntUtil.java | 10 ++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java index 4e27948ad..5635ae1a9 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java @@ -86,6 +86,8 @@ public class IoCollectOrderService extends ServiceImpl Date: Sat, 19 Oct 2024 16:23:05 +0800 Subject: [PATCH 30/35] =?UTF-8?q?=E5=B7=A5=E4=BD=8D=E4=B8=8A=E8=B4=A7?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/schemas/schema_v2.4.sql | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/resources/schemas/schema_v2.4.sql b/src/main/resources/schemas/schema_v2.4.sql index 1bf5c14d9..a21055e00 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -4558,4 +4558,6 @@ CALL Pro_Temp_ColumnWork('io_collect_order_code_man', 'scanActCount', CALL Pro_Temp_ColumnWork('io_code_temp', 'drugLink', ' tinyint NULL DEFAULT b''0''COMMENT ''药品关联关系是否存在 0不存在 1存在''', - 1); \ No newline at end of file + 1); + + From afed3289bd44f2ee7ac4c3a94c7aca5717c1b97a Mon Sep 17 00:00:00 2001 From: yewj Date: Sat, 19 Oct 2024 17:36:28 +0800 Subject: [PATCH 31/35] =?UTF-8?q?=E9=80=89=E6=8B=A9=E5=B7=B2=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E5=8D=95=E6=8D=AE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/controller/inout/IoCodeTempController.java | 14 ++++++++++---- src/main/resources/schemas/schema_v2.4.sql | 4 +++- 2 files changed, 13 insertions(+), 5 deletions(-) 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 bf0a4df7d..26a124235 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -2664,11 +2664,17 @@ public class IoCodeTempController extends BaseController { List codeList = new ArrayList<>(); collectOrderBizResponses.forEach(item -> { String code = item.getFinishUdiCode(); - Integer reCountObj = item.getScanCount(); - int reCount = reCountObj != null ? reCountObj : 0; // 如果reCountObj为null,则默认为0次迭代 - for (int i = 0; i < reCount; i++) { - codeList.add(code); + if (StrUtil.isNotBlank(code) && code.contains(";")) { + List partsList = Arrays.asList(code.split(";")); + codeList.addAll(partsList); + } else { + Integer reCountObj = item.getScanCount(); + int reCount = reCountObj != null ? reCountObj : 0; // 如果reCountObj为null,则默认为0次迭代 + for (int i = 0; i < reCount; i++) { + codeList.add(code); + } } + }); addOrderCodeRequest.setCodeList(codeList); addOrderCodeRequest.setCorpOrderId(orderFinishBillNo); diff --git a/src/main/resources/schemas/schema_v2.4.sql b/src/main/resources/schemas/schema_v2.4.sql index 1bf5c14d9..a21055e00 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -4558,4 +4558,6 @@ CALL Pro_Temp_ColumnWork('io_collect_order_code_man', 'scanActCount', CALL Pro_Temp_ColumnWork('io_code_temp', 'drugLink', ' tinyint NULL DEFAULT b''0''COMMENT ''药品关联关系是否存在 0不存在 1存在''', - 1); \ No newline at end of file + 1); + + From d23572b7cffddedffbc6f06d2b5eb073b8299f50 Mon Sep 17 00:00:00 2001 From: wangwei <1610949092@qq.com> Date: Mon, 21 Oct 2024 10:44:44 +0800 Subject: [PATCH 32/35] =?UTF-8?q?10/21=20=E5=90=8C=E6=AD=A5=E5=8D=95?= =?UTF-8?q?=E6=8D=AE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/collect/IoCollectOriginController.java | 2 +- .../service/collect/IoCollectOrderBackupService.java | 9 +++++++++ .../api/service/collect/IoCollectOrderService.java | 10 ++++++++-- .../com/glxp/api/service/inout/IoAddInoutService.java | 7 ++++++- .../java/com/glxp/api/service/sync/HeartService.java | 7 +++++-- 5 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectOriginController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectOriginController.java index 5fff486f0..1921a4106 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOriginController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOriginController.java @@ -109,7 +109,7 @@ public class IoCollectOriginController extends BaseController { return baseResponse; }else if (busType.contains("SC")) { FilterOrderRequest filterOrderRequest = new FilterOrderRequest(); - filterOrderRequest.setStatus(7); + filterOrderRequest.setStatus(10); filterOrderRequest.setAction(busType); filterOrderRequest.setProductType(null); filterOrderRequest.setLimit(collectOrderRequest.getLimit()); 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 caeee8dea..edb12a79a 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderBackupService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderBackupService.java @@ -19,6 +19,7 @@ import com.glxp.api.entity.inout.IoCodeTempEntity; import com.glxp.api.entity.inout.IoOrderEntity; import com.glxp.api.exception.JsonException; import com.glxp.api.http.ErpBasicClient; +import com.glxp.api.http.sync.SpGetHttpClient; import com.glxp.api.req.collect.CollectOrderBizRequest; import com.glxp.api.req.collect.CollectOrderRequest; import com.glxp.api.req.collect.PostCollectOrderRequest; @@ -82,6 +83,9 @@ public class IoCollectOrderBackupService extends ServiceImpl filterList(CollectOrderRequest collectOrderRequest) { if (collectOrderRequest == null) { @@ -206,7 +210,12 @@ public class IoCollectOrderBackupService extends ServiceImpl().eq(IoCollectOrder::getBillNo, billNo).last("limit 1")); } @@ -259,11 +262,11 @@ public class IoCollectOrderService extends ServiceImpl Date: Mon, 21 Oct 2024 14:10:17 +0800 Subject: [PATCH 33/35] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../collect/IoCollectCodeBackupController.java | 14 ++++++++------ .../api/res/collect/CollectOrderBizResponse.java | 3 +++ src/main/resources/application-dev.yml | 4 ++-- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectCodeBackupController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectCodeBackupController.java index 4b38d2a25..5dbecbe93 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectCodeBackupController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectCodeBackupController.java @@ -45,13 +45,13 @@ public class IoCollectCodeBackupController extends BaseController { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } List collectOrderCodeManResponses = ioCollectCodeBackService.filterList(IoCollectCodeRequest); - for (IoCollectCodeResponse ioCollectCodeResponse : collectOrderCodeManResponses){ + for (IoCollectCodeResponse ioCollectCodeResponse : collectOrderCodeManResponses) { if (StrUtil.isEmpty(ioCollectCodeResponse.getManufactory())) { ioCollectCodeResponse.setManufactory(ioCollectCodeResponse.getYlqxzcrbarmc()); } IoCollectOrder byBillNo = collectOrderService.getByBillNo(ioCollectCodeResponse.getBillNo()); ioCollectCodeResponse.setBillTime(byBillNo.getBillTime()); - if (byBillNo.getRemark() != null){ + if (byBillNo.getRemark() != null) { ioCollectCodeResponse.setRemark(byBillNo.getRemark()); } } @@ -65,14 +65,15 @@ public class IoCollectCodeBackupController extends BaseController { /** * 根据id删除追溯码表 + * * @param IoCollectCodeBackup * @return */ @PostMapping("/udiwms/basic/collect/ioCollectCodeBackup/deleteCollectCode") public BaseResponse deleteCollectCode(@RequestBody IoCollectCodeBackup IoCollectCodeBackup) { boolean b = ioCollectCodeBackService.removeById(IoCollectCodeBackup); - if (!b){ - return ResultVOUtils.error(500,"删除失败"); + if (!b) { + return ResultVOUtils.error(500, "删除失败"); } return ResultVOUtils.success("删除成功"); } @@ -80,6 +81,7 @@ public class IoCollectCodeBackupController extends BaseController { /** * 根据id删除追溯码表 + * * @param IoCollectCodeBackup * @param bindingResult * @return @@ -91,8 +93,8 @@ public class IoCollectCodeBackupController extends BaseController { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } boolean b = ioCollectCodeBackService.updateById(IoCollectCodeBackup); - if (!b){ - return ResultVOUtils.error(500,"更新失败"); + if (!b) { + return ResultVOUtils.error(500, "更新失败"); } return ResultVOUtils.success("更新成功"); } diff --git a/src/main/java/com/glxp/api/res/collect/CollectOrderBizResponse.java b/src/main/java/com/glxp/api/res/collect/CollectOrderBizResponse.java index 4221ce66c..f533c6b7d 100644 --- a/src/main/java/com/glxp/api/res/collect/CollectOrderBizResponse.java +++ b/src/main/java/com/glxp/api/res/collect/CollectOrderBizResponse.java @@ -6,6 +6,9 @@ import lombok.Data; import java.util.Date; +/** + * 业务详情 + */ @Data public class CollectOrderBizResponse { diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 550f24925..794856e96 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -4,9 +4,9 @@ server: spring: datasource: driver-class-name: com.p6spy.engine.spy.P6SpyDriver - jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_wms?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + jdbc-url: jdbc:p6spy:mysql://192.168.0.206:3306/udiwms81?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true username: root - password: 123456 + password: Glxp@6066 hikari: connection-timeout: 60000 maximum-pool-size: 20 From a17b725415bec0bab495d2ce067e62d551919fcf Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Mon, 21 Oct 2024 15:30:38 +0800 Subject: [PATCH 34/35] =?UTF-8?q?feat:=20=E6=8B=89=E5=8F=96=E5=A4=96?= =?UTF-8?q?=E7=BD=91=E5=8D=95=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inout/IoCodeTempController.java | 15 +++++ .../collect/IoCollectOrderService.java | 56 ++++++++++++++++++- .../collect/IoCollectOriginService.java | 1 + 3 files changed, 69 insertions(+), 3 deletions(-) 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 26a124235..2550dfc79 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -194,6 +194,21 @@ public class IoCodeTempController extends BaseController { response.setData(collectOrder); return response; } else { + BaseResponse baseResponse2 = collectOrderService.importSpmsUdi(collectOrderRequest); + if (ResultEnum.SUCCESS.getCode() == baseResponse2.getCode()) { + collectOrder = collectOrderService.unionSearch(null, null, code); + //=============================================// + if (collectOrder != null) { + collectOrder.setWorkPlaceCode(addEnterCodeRequest.getWorkPlaceCode()); + collectOrder.setBusType(addEnterCodeRequest.getBusType()); + IoCollectOrder ioCollectOrder = new IoCollectOrder(); + BeanUtils.copyProperties(collectOrder, ioCollectOrder); + collectOrderService.updateById(ioCollectOrder); + BaseResponse response = ResultVOUtils.error(601, code); + response.setData(collectOrder); + return response; + } + } BaseResponse response = ResultVOUtils.error(501, baseResponse.getMessage()); response.setData(code); return response; diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java index a66c11c40..01063a24c 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java @@ -22,6 +22,7 @@ import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantType; import com.glxp.api.dao.collect.IoCollectOrderMapper; import com.glxp.api.dao.inout.IoCodeTempDao; +import com.glxp.api.entity.auth.DeptEntity; import com.glxp.api.entity.auth.SysWorkplace; import com.glxp.api.entity.basic.*; import com.glxp.api.entity.collect.*; @@ -41,22 +42,24 @@ import com.glxp.api.req.basic.FilterUdiRelRequest; import com.glxp.api.req.collect.CollectOrderBizRequest; import com.glxp.api.req.collect.CollectOrderRequest; import com.glxp.api.req.collect.PostCollectOrderRequest; -import com.glxp.api.req.inout.DeleteTageCodeRequest; -import com.glxp.api.req.inout.FilterOrderRequest; -import com.glxp.api.req.inout.PostOrderRequest; +import com.glxp.api.req.inout.*; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.BasicSkPrescribeResponse; import com.glxp.api.res.basic.SysWorkplaceResponse; import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.collect.CollectOrderBizResponse; import com.glxp.api.res.collect.IoCollectOrderResponse; +import com.glxp.api.res.inout.IoOrderDetailResultResponse; import com.glxp.api.res.inout.IoOrderResponse; import com.glxp.api.res.inout.IoStatOrderResponse; +import com.glxp.api.res.sync.SpsSyncOrderResponse; import com.glxp.api.res.thrsys.ThrInvProductResponse; +import com.glxp.api.service.auth.DeptService; import com.glxp.api.service.auth.SysWorkplaceService; import com.glxp.api.service.basic.*; import com.glxp.api.service.inout.*; import com.glxp.api.service.inout.impl.IoCodeService; +import com.glxp.api.service.sync.HeartService; import com.glxp.api.service.thrsys.SysWorkplacePutRelService; import com.glxp.api.util.*; import com.glxp.api.util.udi.FilterUdiUtils; @@ -361,6 +364,53 @@ public class IoCollectOrderService extends ServiceImpl baseResponse = spGetHttp.getReviewOrder(reviewSpmsRequest, 1 + ""); + if (baseResponse.getCode() == 20000) { + SpsSyncOrderResponse spsSyncOrderResponse = baseResponse.getData(); + List orderEntities = spsSyncOrderResponse.getOrderEntities(); + if (CollUtil.isNotEmpty(orderEntities)) { + IoOrderEntity orderEntity; + orderEntity = orderEntities.get(0); + orderEntity.setUpdateTime(null); + orderEntity.setFromType(ConstantStatus.FROM_UDISP); + orderEntity.setReviewSp(true); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); + IoOrderEntity temp = orderService.findByBillNo(orderEntity.getBillNo()); + if (temp == null) { + orderEntity.setId(null); + orderService.insertOrder(orderEntity); + heartService.insetOrderDb(spsSyncOrderResponse, orderEntity); + orderEntity = orderService.findByBillNo(orderEntity.getBillNo()); + addInoutService.dealProcess(orderEntity); + orderEntity = orderService.findByBillNo(orderEntity.getBillNo()); + if (orderEntity.getStatus() != ConstantStatus.ORDER_STATS_ERROR && !ioCheckInoutService.checkManual(orderEntity.getBillNo())) { + ioCheckInoutService.check(orderEntity.getBillNo()); + } + } + orderEntity = orderService.findByBillNo(orderEntity.getBillNo()); + if (orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK_REW) { + return ResultVOUtils.error(500, "非待审核单据!"); + } + } + this.importUdi(collectOrderRequest); + } + return baseResponse; + + } + + public BaseResponse> selectImportUdi(FilterOrderRequest filterOrderRequest) { List ioCollectOrders = new ArrayList<>(); diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOriginService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOriginService.java index 337c51113..459f6dd82 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOriginService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOriginService.java @@ -19,6 +19,7 @@ import com.glxp.api.entity.collect.IoCollectOrder; import com.glxp.api.entity.collect.IoCollectOrderBiz; import com.glxp.api.entity.collect.IoCollectOrderBizOrigin; import com.glxp.api.entity.collect.IoCollectOrderOrigin; +import com.glxp.api.entity.inout.IoOrderEntity; import com.glxp.api.exception.JsonException; import com.glxp.api.http.ErpBasicClient; import com.glxp.api.req.basic.GetSickPrescribeRequest; From 7d4e190b05bea2653bbfed5b2a23e3d59174c2cb Mon Sep 17 00:00:00 2001 From: yewj Date: Mon, 21 Oct 2024 16:36:41 +0800 Subject: [PATCH 35/35] =?UTF-8?q?=E5=8D=95=E6=8D=AE=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/collect/IoCollectOrderBackupController.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderBackupController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderBackupController.java index d6625982f..b98cf3827 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderBackupController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderBackupController.java @@ -40,8 +40,8 @@ public class IoCollectOrderBackupController extends BaseController { private BasicCollectUserService basicCollectUserService; - @GetMapping("/udiwms/basic/collect/orderFinish/filter") - public BaseResponse filterOrder( CollectOrderRequest collectOrderRequest) { + @PostMapping("/udiwms/basic/collect/orderFinish/filter") + public BaseResponse filterOrder(@RequestBody CollectOrderRequest collectOrderRequest) { List workPlaceCodes = null; List page; @@ -97,7 +97,7 @@ public class IoCollectOrderBackupController extends BaseController { if (StrUtil.isEmpty(collectOrderRequest.getBillNo())) return ResultVOUtils.error(500, "单据号不能为空"); Boolean aBoolean = ioCollectOrderBackupService.orderUpload(collectOrderRequest.getBillNo()); - if (!aBoolean){ + if (!aBoolean) { return ResultVOUtils.error("上传失败"); } return ResultVOUtils.success();