diff --git a/src/main/java/com/glxp/api/constant/BusTypeConstant.java b/src/main/java/com/glxp/api/constant/BusTypeConstant.java new file mode 100644 index 000000000..a45e0f1e9 --- /dev/null +++ b/src/main/java/com/glxp/api/constant/BusTypeConstant.java @@ -0,0 +1,33 @@ +package com.glxp.api.constant; + +public enum BusTypeConstant { + YPCF002("药品处方单","YPCF002"), + CGJH001("采购计划","CGJH001"), + LYRK("领药入库","LYRK"), + GMRK("购买入库","GMRK"), + LYCK("领药出库","LYCK"), + ; + + private String name; + private String busType; + BusTypeConstant(String name, String busType) { + this.name = name; + this.busType = busType; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getBusType() { + return busType; + } + + public void setBusType(String busType) { + this.busType = busType; + } +} diff --git a/src/main/java/com/glxp/api/service/collect/DownloadFactory.java b/src/main/java/com/glxp/api/service/collect/DownloadFactory.java new file mode 100644 index 000000000..3b0060ad7 --- /dev/null +++ b/src/main/java/com/glxp/api/service/collect/DownloadFactory.java @@ -0,0 +1,51 @@ +package com.glxp.api.service.collect; + +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.constant.BusTypeConstant; +import com.glxp.api.req.collect.CollectOrderRequest; +import com.glxp.api.service.collect.down.*; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * 下载工厂 + */ +@Component +public class DownloadFactory { + + @Resource + private YPCF002Download ypcf002Download; + @Resource + private LYRKDownload lyrkDownload; + @Resource + private GMRKDownload gmrkDownload; + @Resource + private LYCKDownload lyckDownload; + + /** + * 第三方单据类型 + * @param collectOrderRequest + * @return + */ + public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest){ + String busType = collectOrderRequest.getBusType(); + if(busType == null){ + return ResultVOUtils.error("下载失败,未配置业务类型"); + } + if(busType.equals(BusTypeConstant.YPCF002.getBusType())){ + return ypcf002Download.downloadOrder(collectOrderRequest); + } else if(busType.equals(BusTypeConstant.CGJH001.getBusType())){ + return ResultVOUtils.error("下载失败,未配置业务类型"); + } else if(busType.equals(BusTypeConstant.LYRK.getBusType())){ + return lyrkDownload.downloadOrder(collectOrderRequest); + } else if(busType.equals(BusTypeConstant.GMRK.getBusType())){ + return gmrkDownload.downloadOrder(collectOrderRequest); + } else if(busType.equals(BusTypeConstant.LYCK.getBusType())){ + return lyckDownload.downloadOrder(collectOrderRequest); + } + return ResultVOUtils.error("下载失败,未配置业务类型"); + } + +} 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 7005874e7..7795b7c41 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOriginService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOriginService.java @@ -2,7 +2,6 @@ package com.glxp.api.service.collect; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.lang.Assert; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -17,7 +16,6 @@ import com.glxp.api.exception.JsonException; import com.glxp.api.http.ErpBasicClient; import com.glxp.api.req.basic.GetSickPrescribeRequest; import com.glxp.api.req.collect.CollectOrderRequest; -import com.glxp.api.req.inout.FilterOrderRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.BasicSkPrescribeResponse; import com.glxp.api.service.basic.*; @@ -47,6 +45,8 @@ public class IoCollectOriginService { IoCollectOrderService collectOrderService; @Resource IoCollectOrderBizService collectOrderBizService; + @Resource + private DownloadFactory downloadFactory; public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) { @@ -90,23 +90,7 @@ public class IoCollectOriginService { } public BaseResponse downloadOrderV2(CollectOrderRequest collectOrderRequest) { - //拉取药品处方 - if (collectOrderRequest.getBusType().equals("YPCF002")) { - GetSickPrescribeRequest getSickPrescribeRequest = new GetSickPrescribeRequest(); - getSickPrescribeRequest.setPage(1); - getSickPrescribeRequest.setLimit(100); - getSickPrescribeRequest.setCode(collectOrderRequest.getBillNo()); - getSickPrescribeRequest.setThirdSys("thirdId"); - getSickPrescribeRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode()); - getSickPrescribeRequest.setFromType(collectOrderRequest.getFromType()); - BaseResponse> baseResponse = erpBasicClient.getPrescribeV2(getSickPrescribeRequest); - if (baseResponse.getCode() == 20000) { - List list = baseResponse.getData().getList(); - collectOrderService.importPrescribe(list,collectOrderRequest.getBusType()); - return ResultVOUtils.success("下载成功"); - } - } - return ResultVOUtils.error("下载失败"); + return downloadFactory.downloadOrder(collectOrderRequest); } diff --git a/src/main/java/com/glxp/api/service/collect/down/GMRKDownload.java b/src/main/java/com/glxp/api/service/collect/down/GMRKDownload.java new file mode 100644 index 000000000..47f89c9bd --- /dev/null +++ b/src/main/java/com/glxp/api/service/collect/down/GMRKDownload.java @@ -0,0 +1,15 @@ +package com.glxp.api.service.collect.down; + +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.req.collect.CollectOrderRequest; +import org.springframework.stereotype.Service; + +@Service +public class GMRKDownload implements IDownload{ + + @Override + public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) { + return ResultVOUtils.error("下载失败"); + } +} diff --git a/src/main/java/com/glxp/api/service/collect/down/IDownload.java b/src/main/java/com/glxp/api/service/collect/down/IDownload.java new file mode 100644 index 000000000..0015890f6 --- /dev/null +++ b/src/main/java/com/glxp/api/service/collect/down/IDownload.java @@ -0,0 +1,12 @@ +package com.glxp.api.service.collect.down; + +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.req.collect.CollectOrderRequest; + +/** + * 下载接口 + */ +public interface IDownload { + BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest); + +} diff --git a/src/main/java/com/glxp/api/service/collect/down/LYCKDownload.java b/src/main/java/com/glxp/api/service/collect/down/LYCKDownload.java new file mode 100644 index 000000000..0634e6b1b --- /dev/null +++ b/src/main/java/com/glxp/api/service/collect/down/LYCKDownload.java @@ -0,0 +1,40 @@ +package com.glxp.api.service.collect.down; + +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.entity.collect.IoCollectOrder; +import com.glxp.api.http.ErpBasicClient; +import com.glxp.api.req.basic.GetSickPrescribeRequest; +import com.glxp.api.req.collect.CollectOrderRequest; +import com.glxp.api.res.PageSimpleResponse; +import com.glxp.api.service.collect.IoCollectOrderService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class LYCKDownload implements IDownload{ + @Resource + private ErpBasicClient erpBasicClient; + @Resource + private IoCollectOrderService collectOrderService; + + @Override + public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) { + GetSickPrescribeRequest getSickPrescribeRequest = new GetSickPrescribeRequest(); + getSickPrescribeRequest.setPage(1); + getSickPrescribeRequest.setLimit(100); + getSickPrescribeRequest.setCode(collectOrderRequest.getBillNo()); + getSickPrescribeRequest.setThirdSys("thirdId"); + getSickPrescribeRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode()); + getSickPrescribeRequest.setFromType(collectOrderRequest.getFromType()); + BaseResponse> baseResponse = erpBasicClient.getPrescribeV2(getSickPrescribeRequest); + if (baseResponse.getCode() == 20000) { + List list = baseResponse.getData().getList(); + collectOrderService.importPrescribe(list,collectOrderRequest.getBusType()); + return ResultVOUtils.success("下载成功"); + } + return ResultVOUtils.error("下载失败"); + } +} diff --git a/src/main/java/com/glxp/api/service/collect/down/LYRKDownload.java b/src/main/java/com/glxp/api/service/collect/down/LYRKDownload.java new file mode 100644 index 000000000..bdf5baff4 --- /dev/null +++ b/src/main/java/com/glxp/api/service/collect/down/LYRKDownload.java @@ -0,0 +1,15 @@ +package com.glxp.api.service.collect.down; + +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.req.collect.CollectOrderRequest; +import org.springframework.stereotype.Service; + +@Service +public class LYRKDownload implements IDownload { + + @Override + public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) { + return ResultVOUtils.error("下载失败"); + } +} diff --git a/src/main/java/com/glxp/api/service/collect/down/YPCF002Download.java b/src/main/java/com/glxp/api/service/collect/down/YPCF002Download.java new file mode 100644 index 000000000..3b5a078fb --- /dev/null +++ b/src/main/java/com/glxp/api/service/collect/down/YPCF002Download.java @@ -0,0 +1,40 @@ +package com.glxp.api.service.collect.down; + +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.entity.collect.IoCollectOrder; +import com.glxp.api.http.ErpBasicClient; +import com.glxp.api.req.basic.GetSickPrescribeRequest; +import com.glxp.api.req.collect.CollectOrderRequest; +import com.glxp.api.res.PageSimpleResponse; +import com.glxp.api.service.collect.IoCollectOrderService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class YPCF002Download implements IDownload{ + @Resource + private ErpBasicClient erpBasicClient; + @Resource + private IoCollectOrderService collectOrderService; + + @Override + public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) { + GetSickPrescribeRequest getSickPrescribeRequest = new GetSickPrescribeRequest(); + getSickPrescribeRequest.setPage(1); + getSickPrescribeRequest.setLimit(100); + getSickPrescribeRequest.setCode(collectOrderRequest.getBillNo()); + getSickPrescribeRequest.setThirdSys("thirdId"); + getSickPrescribeRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode()); + getSickPrescribeRequest.setFromType(collectOrderRequest.getFromType()); + BaseResponse> baseResponse = erpBasicClient.getPrescribeV2(getSickPrescribeRequest); + if (baseResponse.getCode() == 20000) { + List list = baseResponse.getData().getList(); + collectOrderService.importPrescribe(list,collectOrderRequest.getBusType()); + return ResultVOUtils.success("下载成功"); + } + return ResultVOUtils.error("下载失败"); + } +}