|
|
|
|
@ -92,7 +92,8 @@ public class HlfyyyClient extends CommonHttpClient {
|
|
|
|
|
private final String[] buyType_3502 = {"7", "6", "5", "4", "1", "16", "12", "28", "35"};
|
|
|
|
|
private final String[] buyType_3505 = {"QXCF001", "YPCF002"};
|
|
|
|
|
private final String[] buyType_3506 = {"YPTH001"};
|
|
|
|
|
|
|
|
|
|
@Value("${DSF_XML_SQL_TYPE:Mysql}")
|
|
|
|
|
private String defXmlSqlType;
|
|
|
|
|
@Resource
|
|
|
|
|
private ThrSystemDetailService thrSystemDetailService;
|
|
|
|
|
@Resource
|
|
|
|
|
@ -227,12 +228,12 @@ public class HlfyyyClient extends CommonHttpClient {
|
|
|
|
|
@Override
|
|
|
|
|
public BaseResponse getUnit(UdiwmsUnitRequest udiwmsUnitRequest) {
|
|
|
|
|
udiwmsUnitRequest.setDatabaseProductName(getDataSourceType());
|
|
|
|
|
List<VA001> list = va001Service.filterList(udiwmsUnitRequest);
|
|
|
|
|
log.info("解析湖里妇幼返回往来单位,返回结果:{}", list);
|
|
|
|
|
PageInfo<VA001> pageInfo = new PageInfo<>(list);
|
|
|
|
|
IPage<VA001> iPage = va001Service.filterList(udiwmsUnitRequest);
|
|
|
|
|
log.info("解析湖里妇幼返回往来单位,返回结果:{}", iPage.getRecords());
|
|
|
|
|
PageInfo<VA001> pageInfo = new PageInfo<>(iPage.getRecords());
|
|
|
|
|
PageSimpleResponse<VA001> pageSimpleResponse = new PageSimpleResponse<>();
|
|
|
|
|
pageSimpleResponse.setTotal(pageInfo.getTotal());
|
|
|
|
|
pageSimpleResponse.setList(list);
|
|
|
|
|
pageSimpleResponse.setTotal(iPage.getTotal());
|
|
|
|
|
pageSimpleResponse.setList(iPage.getRecords());
|
|
|
|
|
return ResultVOUtils.success(pageSimpleResponse);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -1446,8 +1447,8 @@ public class HlfyyyClient extends CommonHttpClient {
|
|
|
|
|
return udiwmsPreInOrderRequest;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Value("${DBTYPE}")
|
|
|
|
|
private String DBTYPE;
|
|
|
|
|
// @Value("${DBTYPE}")
|
|
|
|
|
// private String DBTYPE;
|
|
|
|
|
/**
|
|
|
|
|
* ------------------------------------------现场管理医保相关接口方法--------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
@ -1460,37 +1461,13 @@ public class HlfyyyClient extends CommonHttpClient {
|
|
|
|
|
@Override
|
|
|
|
|
public BaseResponse getPrescribes(UdiwmsBasicSkPrescribeRequest udiwmsBasicSkPrescribeRequest) {
|
|
|
|
|
if (IntUtil.value(udiwmsBasicSkPrescribeRequest.getInOutType()) == 0) {
|
|
|
|
|
udiwmsBasicSkPrescribeRequest.setDatabaseProductName(DBTYPE);
|
|
|
|
|
udiwmsBasicSkPrescribeRequest.setDatabaseProductName(getDataSourceType());
|
|
|
|
|
IPage<VA010> iPage = va010Service.getList(new Page<VA010>(udiwmsBasicSkPrescribeRequest.getPage(), udiwmsBasicSkPrescribeRequest.getLimit()), udiwmsBasicSkPrescribeRequest);
|
|
|
|
|
// List<VA010> list = iPage.getRecords();
|
|
|
|
|
// PageInfo<VA010> pageInfo = new PageInfo<>(list);
|
|
|
|
|
// PageSimpleResponse<VA010> pageSimpleResponse = new PageSimpleResponse<>();
|
|
|
|
|
// pageSimpleResponse.setTotal(iPage.getTotal());
|
|
|
|
|
// pageSimpleResponse.setList(list);
|
|
|
|
|
|
|
|
|
|
return this.covertSellOrder(udiwmsBasicSkPrescribeRequest, iPage);
|
|
|
|
|
} else {
|
|
|
|
|
LambdaQueryWrapper<VInsurNationGoodsReturn> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
|
|
|
|
|
String startTime = udiwmsBasicSkPrescribeRequest.getStartTime();
|
|
|
|
|
String endTime = udiwmsBasicSkPrescribeRequest.getEndTime();
|
|
|
|
|
wrapper.ge(StrUtil.isNotEmpty(startTime), VInsurNationGoodsReturn::getSEL_RETN_TIME, startTime);
|
|
|
|
|
wrapper.le(StrUtil.isNotEmpty(endTime), VInsurNationGoodsReturn::getSEL_RETN_TIME, endTime);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String code = udiwmsBasicSkPrescribeRequest.getCode();
|
|
|
|
|
String fromCorpName = udiwmsBasicSkPrescribeRequest.getFromCorpName();
|
|
|
|
|
String key = udiwmsBasicSkPrescribeRequest.getKey();
|
|
|
|
|
wrapper.and(StrUtil.isNotEmpty(key), t -> t.like(VInsurNationGoodsReturn::getAPPLY_NO, key)
|
|
|
|
|
.or().like(VInsurNationGoodsReturn::getPSN_NAME, key)
|
|
|
|
|
.or().like(VInsurNationGoodsReturn::getPSN_NO, key)
|
|
|
|
|
);
|
|
|
|
|
wrapper.and(StrUtil.isNotEmpty(code), t -> t.eq(VInsurNationGoodsReturn::getAPPLY_NO, code));
|
|
|
|
|
wrapper.and(StrUtil.isNotEmpty(fromCorpName), t -> t.eq(VInsurNationGoodsReturn::getPSN_NAME, fromCorpName));
|
|
|
|
|
//拉取处方退货时,改成拉取v_ypzs_pres_info_return
|
|
|
|
|
IPage<VYpzsPresInfoReturn> page = vYpzsPresInfoReturnMapper.selectGroupedWithPagination(new Page<VYpzsPresInfoReturn>(udiwmsBasicSkPrescribeRequest.getPage(), udiwmsBasicSkPrescribeRequest.getLimit()),
|
|
|
|
|
udiwmsBasicSkPrescribeRequest);
|
|
|
|
|
return this.covertReturnOrder(udiwmsBasicSkPrescribeRequest, page);
|
|
|
|
|
udiwmsBasicSkPrescribeRequest.setDatabaseProductName(getDataSourceType());
|
|
|
|
|
IPage<VA011> iPage = va011Service.getList(new Page<VA011>(udiwmsBasicSkPrescribeRequest.getPage(), udiwmsBasicSkPrescribeRequest.getLimit()), udiwmsBasicSkPrescribeRequest);
|
|
|
|
|
return this.covertReturnOrder(udiwmsBasicSkPrescribeRequest, iPage);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
@ -1722,7 +1699,7 @@ public class HlfyyyClient extends CommonHttpClient {
|
|
|
|
|
*/
|
|
|
|
|
private BaseResponse covertSellOrder(UdiwmsBasicSkPrescribeRequest udiwmsBasicSkPrescribeRequest, IPage<VA010> iPage) {
|
|
|
|
|
List<VA010> headList = iPage.getRecords();
|
|
|
|
|
|
|
|
|
|
// log.info("udiwmsBasicSkPrescribeRequest=="+udiwmsBasicSkPrescribeRequest+"====="+headList);
|
|
|
|
|
if (CollUtil.isNotEmpty(headList)) {
|
|
|
|
|
List<String> codefks = headList.stream().map(VA010::getCode).collect(Collectors.toList());
|
|
|
|
|
LambdaQueryWrapper<VA010Mx> wrapper1 = new LambdaQueryWrapper<>();
|
|
|
|
|
@ -1754,7 +1731,7 @@ public class HlfyyyClient extends CommonHttpClient {
|
|
|
|
|
}
|
|
|
|
|
Date date = null;
|
|
|
|
|
try {
|
|
|
|
|
date = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").parse(item.getPrescribedate());
|
|
|
|
|
date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(item.getPrescribedate());
|
|
|
|
|
} catch (ParseException e) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
@ -1812,7 +1789,7 @@ public class HlfyyyClient extends CommonHttpClient {
|
|
|
|
|
pageSimpleResponse.setList(ioCollectOrders);
|
|
|
|
|
return ResultVOUtils.success(pageSimpleResponse);
|
|
|
|
|
} else {
|
|
|
|
|
return ResultVOUtils.error(500, "下载失败!");
|
|
|
|
|
return ResultVOUtils.error(500, "未查询到数据!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -1833,75 +1810,99 @@ public class HlfyyyClient extends CommonHttpClient {
|
|
|
|
|
return new ArrayList<>(summarizedMap.values());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private BaseResponse covertReturnOrder(UdiwmsBasicSkPrescribeRequest udiwmsBasicSkPrescribeRequest, IPage<VYpzsPresInfoReturn> page) {
|
|
|
|
|
List<VYpzsPresInfoReturn> presInfoEntities = page.getRecords();
|
|
|
|
|
List<VYpzsPresInfoReturn> vInsurNationGoodsReturns = new ArrayList<>();
|
|
|
|
|
if (CollUtil.isNotEmpty(presInfoEntities)) {
|
|
|
|
|
List<String> collect = presInfoEntities.stream().map(VYpzsPresInfoReturn::getAPPLY_NO).collect(Collectors.toList());
|
|
|
|
|
LambdaQueryWrapper<VYpzsPresInfoReturn> wrapper1 = new LambdaQueryWrapper<>();
|
|
|
|
|
wrapper1.in(VYpzsPresInfoReturn::getAPPLY_NO, collect);
|
|
|
|
|
vInsurNationGoodsReturns = vYpzsPresInfoReturnMapper.selectList(wrapper1);
|
|
|
|
|
}
|
|
|
|
|
// TODO: 2024/9/19 这边在转换的时候就不能用vInsurNationGoodsReturns
|
|
|
|
|
if (CollUtil.isNotEmpty(vInsurNationGoodsReturns)) {
|
|
|
|
|
Map<String, List<VYpzsPresInfoReturn>> groupedByPrescribeNumber = vInsurNationGoodsReturns.stream()
|
|
|
|
|
.collect(Collectors.groupingBy(VYpzsPresInfoReturn::getAPPLY_NO));
|
|
|
|
|
private BaseResponse covertReturnOrder(UdiwmsBasicSkPrescribeRequest udiwmsBasicSkPrescribeRequest, IPage<VA011> iPage) {
|
|
|
|
|
List<VA011> headList = iPage.getRecords();
|
|
|
|
|
// log.info("udiwmsBasicSkPrescribeRequest=="+udiwmsBasicSkPrescribeRequest+"====="+headList);
|
|
|
|
|
if (CollUtil.isNotEmpty(headList)) {
|
|
|
|
|
List<String> codefks = headList.stream().map(VA011::getCode).collect(Collectors.toList());
|
|
|
|
|
LambdaQueryWrapper<VA011Mx> wrapper1 = new LambdaQueryWrapper<>();
|
|
|
|
|
wrapper1.in(VA011Mx::getCodefk, codefks);
|
|
|
|
|
|
|
|
|
|
List<VA011Mx> va011MxList = va011MxMapper.selectList(wrapper1);
|
|
|
|
|
Map<String, List<VA011Mx>> detailsMap = new HashMap<>();
|
|
|
|
|
if (CollUtil.isNotEmpty(va011MxList)) {
|
|
|
|
|
detailsMap = va011MxList.stream()
|
|
|
|
|
.collect(Collectors.groupingBy(VA011Mx::getCodefk));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<IoCollectOrder> ioCollectOrders = new ArrayList<>();
|
|
|
|
|
groupedByPrescribeNumber.forEach((key, value) -> {
|
|
|
|
|
VYpzsPresInfoReturn presInfoEntity = value.get(0);
|
|
|
|
|
Map<String, List<VA011Mx>> finalDetailsMap = detailsMap;
|
|
|
|
|
headList.forEach(item -> {
|
|
|
|
|
|
|
|
|
|
StringBuilder errorMsg = new StringBuilder();
|
|
|
|
|
IoCollectOrder ioCollectOrder = new IoCollectOrder();
|
|
|
|
|
ioCollectOrder.setBillNo(presInfoEntity.getAPPLY_NO());
|
|
|
|
|
ioCollectOrder.setBillNo(item.getCode());
|
|
|
|
|
ioCollectOrder.setFromType("HIS系统");
|
|
|
|
|
ioCollectOrder.setFromCorp(presInfoEntity.getSICK_ID());
|
|
|
|
|
ioCollectOrder.setFromCorp(item.getDeptcode());
|
|
|
|
|
ioCollectOrder.setWorkPlaceCode(udiwmsBasicSkPrescribeRequest.getWorkPlaceCode());
|
|
|
|
|
ioCollectOrder.setFromCorpName(presInfoEntity.getSICK_NAME());
|
|
|
|
|
// Date date = DateUtil.parseDate(presInfoEntity.get());
|
|
|
|
|
ioCollectOrder.setBillTime(presInfoEntity.getKEEP_BOOK_TIME());
|
|
|
|
|
ioCollectOrder.setFromCorpName(item.getSickname());
|
|
|
|
|
ioCollectOrder.setShipperName(item.getDeptname());
|
|
|
|
|
if (item.getRemark().equals("门诊")) {
|
|
|
|
|
ioCollectOrder.setBusType("YPCF002");
|
|
|
|
|
} else {
|
|
|
|
|
ioCollectOrder.setBusType("YPCF003");
|
|
|
|
|
}
|
|
|
|
|
Date date = null;
|
|
|
|
|
try {
|
|
|
|
|
date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(item.getPrescribedate());
|
|
|
|
|
} catch (ParseException e) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
ioCollectOrder.setBillTime(date);
|
|
|
|
|
ioCollectOrder.setCreateTime(new Date());
|
|
|
|
|
ioCollectOrder.setCreateUser(udiwmsBasicSkPrescribeRequest.getCreateUser());
|
|
|
|
|
// ioCollectOrder.setBusType(udiwmsBasicSkPrescribeRequest.getBusType());
|
|
|
|
|
ioCollectOrder.setBackupOrderRemark1(item.getCode());
|
|
|
|
|
|
|
|
|
|
// ioCollectOrder.setBackupOrderRemark2(presInfoEntity.getSICK_ID());
|
|
|
|
|
// ioCollectOrder.setBackupOrderRemark3(presInfoEntity.getPSN_NAME());
|
|
|
|
|
// ioCollectOrder.setBackupOrderRemark4(presInfoEntity.getPSN_NO());
|
|
|
|
|
ioCollectOrder.setUpdateTime(new Date());
|
|
|
|
|
ioCollectOrder.setSplitStatus(0);
|
|
|
|
|
ioCollectOrder.setTagStatus(0);
|
|
|
|
|
List<VA011Mx> itemDetails = finalDetailsMap.get(item.getCode());
|
|
|
|
|
List<IoCollectOrderBiz> bizList = new ArrayList<>();
|
|
|
|
|
value.forEach(entity -> {
|
|
|
|
|
IoCollectOrderBiz collectOrderBiz = new IoCollectOrderBiz();
|
|
|
|
|
BasicUdirelEntity basicUdirelEntity = basicUdirelDao.selectOne(new LambdaQueryWrapper<BasicUdirelEntity>().eq(BasicUdirelEntity::getMainId, entity.getPHYSIC_CODE()));
|
|
|
|
|
if (basicUdirelEntity != null) {
|
|
|
|
|
collectOrderBiz.setRelId(basicUdirelEntity.getId());
|
|
|
|
|
} else {
|
|
|
|
|
errorMsg.append(entity.getPHYSIC_NAME()).append("字典未对照").append(";");
|
|
|
|
|
}
|
|
|
|
|
List<VYpzsPresInfoReturn> vYpzsPresInfoReturns = vYpzsPresInfoReturnMapper.selectList(new LambdaQueryWrapper<VYpzsPresInfoReturn>().eq(VYpzsPresInfoReturn::getAPPLY_NO, entity.getAPPLY_NO()).eq(VYpzsPresInfoReturn::getPHYSIC_CODE, entity.getPHYSIC_CODE()));
|
|
|
|
|
if (CollUtil.isNotEmpty(itemDetails)) {
|
|
|
|
|
itemDetails.forEach(entity -> {
|
|
|
|
|
IoCollectOrderBiz collectOrderBiz = new IoCollectOrderBiz();
|
|
|
|
|
List<BasicUdirelEntity> basicUdirelEntities = basicUdirelDao.selectList(new LambdaQueryWrapper<BasicUdirelEntity>().eq(BasicUdirelEntity::getMainId, entity.getItemcode()));
|
|
|
|
|
if (CollUtil.isNotEmpty(basicUdirelEntities)) {
|
|
|
|
|
BasicUdirelEntity basicUdirelEntity = basicUdirelEntities.get(0);
|
|
|
|
|
collectOrderBiz.setRelId(basicUdirelEntity.getId());
|
|
|
|
|
} else {
|
|
|
|
|
errorMsg.append(entity.getItemname()).append("字典未对照").append(";");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(vYpzsPresInfoReturns)) {
|
|
|
|
|
VYpzsPresInfoReturn vYpzsPresInfo = vYpzsPresInfoReturns.get(0);
|
|
|
|
|
collectOrderBiz.setGgxh(vYpzsPresInfo.getPHYSIC_SPEC());
|
|
|
|
|
collectOrderBiz.setMeasureUnit(vYpzsPresInfo.getPHYSIC_UNIT());
|
|
|
|
|
}
|
|
|
|
|
collectOrderBiz.setThrCode(entity.getPHYSIC_CODE());
|
|
|
|
|
collectOrderBiz.setCpmctymc(entity.getPHYSIC_NAME());
|
|
|
|
|
// collectOrderBiz.setBatchNo(entity.getBATCH_NUMBER());
|
|
|
|
|
collectOrderBiz.setOrderIdFk(ioCollectOrder.getBillNo());
|
|
|
|
|
collectOrderBiz.setYbbm(entity.getFEE_SEQUENCE_NO());
|
|
|
|
|
collectOrderBiz.setCount(entity.getQUANTITY());
|
|
|
|
|
collectOrderBiz.setTagStatus(1);
|
|
|
|
|
collectOrderBiz.setUnTagCount(0);
|
|
|
|
|
bizList.add(collectOrderBiz);
|
|
|
|
|
});
|
|
|
|
|
collectOrderBiz.setGgxh(entity.getBzgg());
|
|
|
|
|
collectOrderBiz.setMeasureUnit(entity.getMeasureunit());
|
|
|
|
|
collectOrderBiz.setCount(IntUtil.value(entity.getCount()));
|
|
|
|
|
collectOrderBiz.setThrCode(entity.getItemcode());
|
|
|
|
|
collectOrderBiz.setCpmctymc(entity.getItemname());
|
|
|
|
|
collectOrderBiz.setOrderIdFk(ioCollectOrder.getBillNo());
|
|
|
|
|
|
|
|
|
|
collectOrderBiz.setRemark1(entity.getRemark());
|
|
|
|
|
collectOrderBiz.setNameCode(entity.getItemcode());
|
|
|
|
|
collectOrderBiz.setTagStatus(1);
|
|
|
|
|
collectOrderBiz.setUnTagCount(0);
|
|
|
|
|
bizList.add(collectOrderBiz);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (StrUtil.isNotBlank(errorMsg)) {
|
|
|
|
|
ioCollectOrder.setErrorMsg(errorMsg.toString());
|
|
|
|
|
ioCollectOrder.setTagStatus(4);
|
|
|
|
|
}
|
|
|
|
|
ioCollectOrder.setBizList(bizList);
|
|
|
|
|
ioCollectOrder.setBizList(summarizeByCode(bizList));
|
|
|
|
|
ioCollectOrders.add(ioCollectOrder);
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
PageSimpleResponse<IoCollectOrder> pageSimpleResponse = new PageSimpleResponse<>();
|
|
|
|
|
pageSimpleResponse.setTotal(page.getTotal());
|
|
|
|
|
pageSimpleResponse.setTotal(iPage.getTotal());
|
|
|
|
|
pageSimpleResponse.setList(ioCollectOrders);
|
|
|
|
|
return ResultVOUtils.success(pageSimpleResponse);
|
|
|
|
|
} else {
|
|
|
|
|
return ResultVOUtils.error(500, "下载失败!");
|
|
|
|
|
return ResultVOUtils.error(500, "未查询到数据!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -2201,6 +2202,9 @@ public class HlfyyyClient extends CommonHttpClient {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
public String getDataSourceType(){
|
|
|
|
|
return defXmlSqlType;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|