feat: 器械处方

dev_no_inv
chenhc 9 months ago
parent f43ff8d1f4
commit dbe6477e09

@ -2,6 +2,7 @@ package com.glxp.api.constant;
public enum BusTypeConstant { public enum BusTypeConstant {
YPCF002("药品处方单","YPCF002"), YPCF002("药品处方单","YPCF002"),
QXCF001("器械处方单","QXCF001"),
CGJH001("采购计划","CGJH001"), CGJH001("采购计划","CGJH001"),
LYRK("领药入库","LYRK"), LYRK("领药入库","LYRK"),
GMRK("购买入库","GMRK"), GMRK("购买入库","GMRK"),

@ -90,6 +90,23 @@ public class IoCollectOriginController extends BaseController {
BaseResponse<PageSimpleResponse<IoCollectOrder>> baseResponse = erpBasicClient.getPrescribeV2(getSickPrescribeRequest); BaseResponse<PageSimpleResponse<IoCollectOrder>> baseResponse = erpBasicClient.getPrescribeV2(getSickPrescribeRequest);
return baseResponse; return baseResponse;
}else if (busType.equals(BusTypeConstant.QXCF001.getBusType())) {
GetSickPrescribeRequest getSickPrescribeRequest = new GetSickPrescribeRequest();
getSickPrescribeRequest.setLimit(collectOrderRequest.getLimit());
getSickPrescribeRequest.setCode(collectOrderRequest.getBillNo());
getSickPrescribeRequest.setThirdSys("thirdId");
getSickPrescribeRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
getSickPrescribeRequest.setFromType(collectOrderRequest.getFromType());
getSickPrescribeRequest.setStartTime(collectOrderRequest.getStartTime());
getSickPrescribeRequest.setEndTime(collectOrderRequest.getEndTime());
getSickPrescribeRequest.setKey(collectOrderRequest.getKeyWords());
getSickPrescribeRequest.setPage(collectOrderRequest.getPage());
getSickPrescribeRequest.setFromCorpName(collectOrderRequest.getFromCorpName());
getSickPrescribeRequest.setShipperName(collectOrderRequest.getShipperName());
getSickPrescribeRequest.setBusType(collectOrderRequest.getBusType());
BaseResponse<PageSimpleResponse<IoCollectOrder>> baseResponse = erpBasicClient.getPrescribeQx(getSickPrescribeRequest);
return baseResponse;
} else { } else {
FilterThrOrderRequest filterThrOrderRequest = new FilterThrOrderRequest(); FilterThrOrderRequest filterThrOrderRequest = new FilterThrOrderRequest();
filterThrOrderRequest.setLimit(collectOrderRequest.getLimit()); filterThrOrderRequest.setLimit(collectOrderRequest.getLimit());

@ -156,8 +156,15 @@ public class IoCodeTempController extends BaseController {
return ResultVOUtils.error(500, "单据号不能为空!"); return ResultVOUtils.error(500, "单据号不能为空!");
} }
String code = addEnterCodeRequest.getCode(); String code = addEnterCodeRequest.getCode();
IoCollectOrderResponse collectOrder = collectOrderService.unionSearch(addEnterCodeRequest.getWorkPlaceCode(), addEnterCodeRequest.getBusType(), code); IoCollectOrderResponse collectOrder = collectOrderService.unionSearch(null, addEnterCodeRequest.getBusType(), code);
if (collectOrder == null) { if (collectOrder == null) {
//查询原始单据查到为异常提示
IoCollectOrderOrigin ioCollectOrigin = collectOriginService.getOrderByCode(code);
if (ioCollectOrigin != null){
BaseResponse response = ResultVOUtils.error(501, "单据已下载,转化异常");
response.setData(code);
return response;
}
//=============================================// //=============================================//
//本地数据库 无此单据时 触发 用billNo 到 处方下载方法 进行下载 //本地数据库 无此单据时 触发 用billNo 到 处方下载方法 进行下载
CollectOrderRequest collectOrderRequest = new CollectOrderRequest(); CollectOrderRequest collectOrderRequest = new CollectOrderRequest();
@ -169,13 +176,6 @@ public class IoCodeTempController extends BaseController {
collectOrder = collectOrderService.unionSearch(null, null, code); collectOrder = collectOrderService.unionSearch(null, null, code);
//=============================================// //=============================================//
if (collectOrder == null) { if (collectOrder == null) {
//查询原始单据查到为异常提示
IoCollectOrderOrigin ioCollectOrigin = collectOriginService.getOrderByCode(code);
if (ioCollectOrigin != null){
BaseResponse response = ResultVOUtils.error(501, "单据已下载,转化异常");
response.setData(code);
return response;
}
BaseResponse response = ResultVOUtils.error(501, "查无此单据号,先选择要处理的单据"); BaseResponse response = ResultVOUtils.error(501, "查无此单据号,先选择要处理的单据");
response.setData(code); response.setData(code);
return response; return response;

File diff suppressed because one or more lines are too long

@ -17,6 +17,8 @@ public class DownloadFactory {
@Resource @Resource
private YPCF002Download ypcf002Download; private YPCF002Download ypcf002Download;
@Resource
private QXCF001Download qxcf001Download;
@Resource @Resource
private ThrOrderDownload thrOrderDownload; private ThrOrderDownload thrOrderDownload;
@ -34,6 +36,8 @@ public class DownloadFactory {
} }
if (busType.equals(BusTypeConstant.YPCF002.getBusType())) { if (busType.equals(BusTypeConstant.YPCF002.getBusType())) {
return ypcf002Download.downloadOrder(collectOrderRequest); return ypcf002Download.downloadOrder(collectOrderRequest);
}else if (busType.equals(BusTypeConstant.QXCF001.getBusType())) {
return qxcf001Download.downloadOrder(collectOrderRequest);
} else { } else {
return thrOrderDownload.downloadOrder(collectOrderRequest); return thrOrderDownload.downloadOrder(collectOrderRequest);
} }

@ -0,0 +1,57 @@
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 com.glxp.api.util.IntUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class QXCF001Download implements IDownload {
@Resource
private ErpBasicClient erpBasicClient;
@Resource
ThrOrderDownload thrOrderDownload;
@Override
public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) {
int page = 1;
int limit = 100;
GetSickPrescribeRequest getSickPrescribeRequest = new GetSickPrescribeRequest();
getSickPrescribeRequest.setLimit(limit);
getSickPrescribeRequest.setCode(collectOrderRequest.getBillNo());
getSickPrescribeRequest.setThirdSys("thirdId");
getSickPrescribeRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
getSickPrescribeRequest.setFromType(collectOrderRequest.getFromType());
getSickPrescribeRequest.setStartTime(collectOrderRequest.getStartTime());
getSickPrescribeRequest.setEndTime(collectOrderRequest.getEndTime());
getSickPrescribeRequest.setKey(collectOrderRequest.getKeyWords());
while (true) {
getSickPrescribeRequest.setPage(page);
BaseResponse<PageSimpleResponse<IoCollectOrder>> baseResponse = erpBasicClient.getPrescribeQx(getSickPrescribeRequest);
// TODO: 2024/9/11 添加一张中间表io_collect_order_origin原始表做为转换
if (baseResponse.getCode() == 20000) {
List<IoCollectOrder> list = baseResponse.getData().getList();
thrOrderDownload.importThrOrder(list, collectOrderRequest);
if ((list.size() >= limit && !baseResponse.getData().getTotal().equals(-666)) || IntUtil.value(baseResponse.getData().getTotal()) == -555) {
page++;
} else {
break;
}
} else {
return ResultVOUtils.error(500, "下载第三方系统产品信息异常");
}
}
return ResultVOUtils.success("下载成功");
}
}

@ -102,11 +102,11 @@ public class ThrOrderDownload implements IDownload {
for (IoCollectOrderBiz entity : thrOrder.getBizList()) { for (IoCollectOrderBiz entity : thrOrder.getBizList()) {
IoCollectOrderBiz collectOrderBiz = new IoCollectOrderBiz(); IoCollectOrderBiz collectOrderBiz = new IoCollectOrderBiz();
BeanUtil.copyProperties(entity, collectOrderBiz); BeanUtil.copyProperties(entity, collectOrderBiz);
UdiRelevanceEntity basicUdirelEntity = udiRelevanceDao.selectOne(new LambdaQueryWrapper<UdiRelevanceEntity>().eq(UdiRelevanceEntity::getMainId, entity.getThrCode())); UdiRelevanceEntity basicUdirelEntity = udiRelevanceDao.selectOne(new LambdaQueryWrapper<UdiRelevanceEntity>().eq(UdiRelevanceEntity::getMainId, entity.getThrCode()).last("limit 1"));
if (basicUdirelEntity != null) { if (basicUdirelEntity != null) {
collectOrderBiz.setRelId(basicUdirelEntity.getId()); collectOrderBiz.setRelId(basicUdirelEntity.getId());
BasicProductsEntity basicProductsEntity = basicProductsDao.selectOne(new LambdaQueryWrapper<BasicProductsEntity>().eq(BasicProductsEntity::getUuid, basicUdirelEntity.getUuid()).last("limit 1")); BasicProductsEntity basicProductsEntity = basicProductsDao.selectOne(new LambdaQueryWrapper<BasicProductsEntity>().eq(BasicProductsEntity::getUuid, basicUdirelEntity.getUuid()).last("limit 1"));
if (StrUtil.isEmpty(basicProductsEntity.getNameCode())) { if (basicProductsEntity == null || StrUtil.isEmpty(basicProductsEntity.getNameCode())) {
errorMsg.append(entity.getCpmctymc()).append("字典未对照").append(";"); errorMsg.append(entity.getCpmctymc()).append("字典未对照").append(";");
} }
} else { } else {

Loading…
Cancel
Save