diff --git a/src/main/java/com/glxp/api/constant/ThirdSysConstant.java b/src/main/java/com/glxp/api/constant/ThirdSysConstant.java index 6ceffd16c..c9b9055cb 100644 --- a/src/main/java/com/glxp/api/constant/ThirdSysConstant.java +++ b/src/main/java/com/glxp/api/constant/ThirdSysConstant.java @@ -57,5 +57,5 @@ public interface ThirdSysConstant { String INV_PH_ORDER_QUERY_URL = "invPhOrderUrl"; String INV_GH_ORDER_QUERY_URL = "invGhOrderUrl"; - + String SF_PROJECT_DICT_URL = "sfProjectDictUrl"; } diff --git a/src/main/java/com/glxp/api/controller/basic/BasicDestinyRelController.java b/src/main/java/com/glxp/api/controller/basic/BasicDestinyRelController.java index 8509302e9..c0fe0823f 100644 --- a/src/main/java/com/glxp/api/controller/basic/BasicDestinyRelController.java +++ b/src/main/java/com/glxp/api/controller/basic/BasicDestinyRelController.java @@ -69,10 +69,10 @@ public class BasicDestinyRelController { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } List basicSkProjectResponses = basicSkProjectService.filterList(basicSkProjectRequest); - if (CollectionUtil.isNotEmpty(basicSkProjectResponses)){ + if (CollectionUtil.isNotEmpty(basicSkProjectResponses)) { List pId = basicSkProjectResponses.stream().map(BasicSkProjectResponse::getId).collect(Collectors.toList()); - Map priceMap = basicDestinyRelService.sumPriceByRedIds(pId); - basicSkProjectResponses.forEach( x -> { + Map priceMap = basicDestinyRelService.sumPriceByRedIds(pId); + basicSkProjectResponses.forEach(x -> { BigDecimal price = priceMap.get(x.getId()); x.setPrice(String.valueOf(price)); }); @@ -305,7 +305,7 @@ public class BasicDestinyRelController { public BaseResponse submitSkSkProject(@RequestBody BasicSkProjectEntity basicSkProjectEntity) { Long id = basicSkProjectEntity.getId(); - if (id == null){ + if (id == null) { return ResultVOUtils.error(999, "提交失败,id不可以为空!"); } Boolean falgf = basicSkProjectService.generateProduct(id); diff --git a/src/main/java/com/glxp/api/req/basic/DlThirdDestinyRequest.java b/src/main/java/com/glxp/api/req/basic/DlThirdDestinyRequest.java index 5537095d3..0bf4b3481 100644 --- a/src/main/java/com/glxp/api/req/basic/DlThirdDestinyRequest.java +++ b/src/main/java/com/glxp/api/req/basic/DlThirdDestinyRequest.java @@ -1,9 +1,15 @@ package com.glxp.api.req.basic; import com.glxp.api.util.page.ListPageRequest; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; +@Builder @Data +@AllArgsConstructor +@NoArgsConstructor public class DlThirdDestinyRequest extends ListPageRequest { diff --git a/src/main/java/com/glxp/api/service/basic/BasicSkPrescribeService.java b/src/main/java/com/glxp/api/service/basic/BasicSkPrescribeService.java index 26f6b86ec..4c32e78ed 100644 --- a/src/main/java/com/glxp/api/service/basic/BasicSkPrescribeService.java +++ b/src/main/java/com/glxp/api/service/basic/BasicSkPrescribeService.java @@ -1,36 +1,28 @@ package com.glxp.api.service.basic; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; -import com.glxp.api.dao.basic.BasicSkProjectMapper; -import com.glxp.api.entity.basic.*; +import com.glxp.api.dao.basic.BasicSkPrescribeMapper; +import com.glxp.api.entity.basic.BasicSkPrescribeDiEntity; +import com.glxp.api.entity.basic.BasicSkPrescribeEntity; +import com.glxp.api.entity.basic.BasicSkPrescribeItemEntity; +import com.glxp.api.entity.basic.UdiRelevanceEntity; import com.glxp.api.entity.thrsys.ThrProductsEntity; import com.glxp.api.http.ErpBasicClient; import com.glxp.api.req.basic.BasicSkPrescribeRequest; -import com.glxp.api.req.basic.BasicSkProjectRequest; import com.glxp.api.req.basic.GetSickPrescribeRequest; -import com.glxp.api.req.basic.GetSickRequest; -import com.glxp.api.req.thrsys.FilterThrProductsRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.BasicSkPrescribeResponse; -import com.glxp.api.res.basic.BasicSkProjectResponse; -import com.glxp.api.res.basic.BasicSkSickerResponse; -import com.glxp.api.res.basic.UdiRelevanceResponse; -import com.glxp.api.res.thrsys.ThrProductsResponse; import com.glxp.api.service.BasicSkPrescribeDiService; import com.glxp.api.service.thrsys.ThrProductsService; import com.glxp.api.util.IntUtil; -import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.glxp.api.dao.basic.BasicSkPrescribeMapper; import javax.annotation.Resource; import java.time.LocalDateTime; diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicDestinyRelService.java b/src/main/java/com/glxp/api/service/basic/impl/BasicDestinyRelService.java index 8e8be4445..5f780d652 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/BasicDestinyRelService.java +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicDestinyRelService.java @@ -4,7 +4,9 @@ package com.glxp.api.service.basic.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.glxp.api.common.res.BaseResponse; @@ -14,17 +16,14 @@ import com.glxp.api.dao.basic.BasicSkProjectMapper; import com.glxp.api.dao.basic.UdiRelevanceDao; import com.glxp.api.entity.basic.BasicSkProjectDetailEntity; import com.glxp.api.entity.basic.BasicSkProjectEntity; -import com.glxp.api.entity.basic.BasicSkSickerEntity; import com.glxp.api.entity.basic.UdiRlSupEntity; import com.glxp.api.http.ErpBasicClient; import com.glxp.api.req.basic.BasicDestinyRelRequest; import com.glxp.api.req.basic.DlThirdDestinyRequest; import com.glxp.api.req.basic.FilterUdiRelRequest; -import com.glxp.api.req.basic.GetSickRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.BasicSkProjectDetailResponse; import com.glxp.api.res.basic.BasicSkProjectResponse; -import com.glxp.api.res.basic.BasicSkSickerResponse; import com.glxp.api.res.basic.UdiRelevanceResponse; import org.springframework.stereotype.Service; @@ -42,6 +41,8 @@ public class BasicDestinyRelService extends ServiceImpl> baseResponse = erpBasicClient.getBasicProject(request); if (baseResponse.getCode() == 20000) { List list = baseResponse.getData().getList(); - List basicSkProjectEntities = new ArrayList<>(); if (CollUtil.isNotEmpty(list)) { - list.forEach(item -> { //todo 数据转换 + list.forEach(item -> { BasicSkProjectEntity basicSkProjectEntity = new BasicSkProjectEntity(); BeanUtil.copyProperties(item, basicSkProjectEntity); - List basicSkProjectDetailResponses = item.getBasicSkProjectDetailResponses(); - if (CollUtil.isNotEmpty(basicSkProjectDetailResponses)) { - list.forEach(detailItem -> - { - //todo 数据转换 - BasicSkProjectDetailEntity basicSkProjectDetailEntity = new BasicSkProjectDetailEntity(); - BeanUtil.copyProperties(detailItem, basicSkProjectDetailEntity); - - } - ); + basicSkProjectEntity.setType(2); + Boolean b = basicSkProjectMapper.exists(new LambdaQueryWrapper().eq(BasicSkProjectEntity::getCode, basicSkProjectEntity.getCode())); + if (b) { + basicSkProjectMapper.update(basicSkProjectEntity, new LambdaUpdateWrapper().eq(BasicSkProjectEntity::getCode, basicSkProjectEntity.getCode())); + } else { + basicSkProjectEntity.setId(IdUtil.getSnowflakeNextId()); + basicSkProjectMapper.insert(basicSkProjectEntity); } }); } if (list.size() >= limit && !baseResponse.getData().getTotal().equals(-666)) { -// basicDestinyRelMapper.replaceBatchs(basicSkProjectEntities); page++; } else { break; diff --git a/src/main/java/com/glxp/api/task/SyncThirdSysTask.java b/src/main/java/com/glxp/api/task/SyncThirdSysTask.java index 44635bf01..c8b15271e 100644 --- a/src/main/java/com/glxp/api/task/SyncThirdSysTask.java +++ b/src/main/java/com/glxp/api/task/SyncThirdSysTask.java @@ -12,10 +12,12 @@ import com.glxp.api.dao.thrsys.ThrSystemDetailDao; import com.glxp.api.entity.inv.InvPlaceOrderEntity; import com.glxp.api.entity.system.ScheduledEntity; import com.glxp.api.entity.thrsys.ThrSystemDetailEntity; +import com.glxp.api.req.basic.DlThirdDestinyRequest; import com.glxp.api.req.basic.GetSickRequest; import com.glxp.api.req.system.ScheduledRequest; import com.glxp.api.res.thrsys.ThirdSysInterfaceExecuteVo; import com.glxp.api.service.basic.BasicSkSickerService; +import com.glxp.api.service.basic.impl.BasicDestinyRelService; import com.glxp.api.service.inout.IoOrderService; import com.glxp.api.service.thrsys.*; import com.glxp.api.util.RedisUtil; @@ -153,6 +155,11 @@ public class SyncThirdSysTask implements SchedulingConfigurer { //下载出入库明细高耗 downloadInvGhOrder(thrSystemDetailEntity); break; + + case ThirdSysConstant.SF_PROJECT_DICT_URL: + //下载收费项目字典 + + break; default: //其他接口暂不处理 break; @@ -410,6 +417,29 @@ public class SyncThirdSysTask implements SchedulingConfigurer { } } + @Resource + BasicDestinyRelService basicDestinyRelService; + + /** + * 下载收费项目字典 + */ + private void downloadSfProject(ThrSystemDetailEntity thrSystemDetailEntity) { + //校验任务并更新redis数据执行标识 + if (verifyTask(thrSystemDetailEntity)) { + getExecutor().submit(() -> { + log.info("开始下载收费项目字典"); + try { + basicDestinyRelService.dlThirdDestiny(new DlThirdDestinyRequest()); + } catch (Exception e) { + log.error("开始下载患者信息", ExceptionUtils.getStackTrace(e)); + } finally { + updateTask(getTaskKey(thrSystemDetailEntity)); + } + log.info("下载收费项目字典结束"); + }); + } + } + /** * 更新任务状态为已完成 diff --git a/src/main/resources/schemas/schema_v2.4.sql b/src/main/resources/schemas/schema_v2.4.sql index a0521c99e..5fc034bca 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -2045,3 +2045,15 @@ CALL Pro_Temp_ColumnWork('pur_plan_detail', 'destinyId', CALL Pro_Temp_ColumnWork('pur_receive_detail', 'destinyId', ' varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT''术式模板id''', 1); + + + +INSERT IGNORE INTO`thr_system_detail`(`id`, `name`, `key`, `value`, `enabled`, `guideUrl`, `remark`, `thirdSysFk`, `itrCache`, `fromType`, `time`, `dlLastTime`) VALUES (100, '项目字典下载', 'sfProjectDictUrl', NULL, 1, '1', NULL, 'thirdId', 1, 3, 1440, NULL); + +INSERT IGNORE INTO`thr_system_detail`(`id`, `name`, `key`, `value`, `enabled`, `guideUrl`, `remark`, `thirdSysFk`, `itrCache`, `fromType`, `time`, `dlLastTime`) VALUES (101, '项目字典下载', 'sfProjectDictUrl', NULL, 1, '1', NULL, 'thirdId1', 1, 3, 1440, NULL); + +INSERT IGNORE INTO`thr_system_detail`(`id`, `name`, `key`, `value`, `enabled`, `guideUrl`, `remark`, `thirdSysFk`, `itrCache`, `fromType`, `time`, `dlLastTime`) VALUES (102, '项目字典下载', 'sfProjectDictUrl', NULL, 1, '1', NULL, 'thirdId2', 1, 3, 1440, NULL); + +INSERT IGNORE INTO`thr_system_detail`(`id`, `name`, `key`, `value`, `enabled`, `guideUrl`, `remark`, `thirdSysFk`, `itrCache`, `fromType`, `time`, `dlLastTime`) VALUES (103, '项目字典下载', 'sfProjectDictUrl', NULL, 1, '1', NULL, 'thirdId3', 1, 3, 1440, NULL); + +INSERT IGNORE INTO`thr_system_detail`(`id`, `name`, `key`, `value`, `enabled`, `guideUrl`, `remark`, `thirdSysFk`, `itrCache`, `fromType`, `time`, `dlLastTime`) VALUES (104, '项目字典下载', 'sfProjectDictUrl', NULL, 1, '1', NULL, 'thirdId4', 1, 3, 1440, NULL);