|
|
@ -7,9 +7,9 @@ import cn.hutool.core.util.IdUtil;
|
|
|
|
import cn.hutool.core.util.ReflectUtil;
|
|
|
|
import cn.hutool.core.util.ReflectUtil;
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
|
import com.alibaba.fastjson2.JSON;
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
import com.alibaba.fastjson2.TypeReference;
|
|
|
|
import com.alibaba.fastjson.TypeReference;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
@ -66,6 +66,8 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
|
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
|
import java.util.*;
|
|
|
|
import java.util.*;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
|
@ -195,12 +197,13 @@ public class CtqyyClient extends CommonHttpClient {
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 器械从三方拉取
|
|
|
|
* 器械从三方拉取
|
|
|
|
* 药品从视图拉取
|
|
|
|
* 药品从视图拉取
|
|
|
|
|
|
|
|
*
|
|
|
|
* @param udiwmsProductRequest
|
|
|
|
* @param udiwmsProductRequest
|
|
|
|
* @return
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public BaseResponse getProducts(UdiwmsProductRequest udiwmsProductRequest) {
|
|
|
|
public BaseResponse getProducts(UdiwmsProductRequest udiwmsProductRequest) {
|
|
|
|
if(udiwmsProductRequest.getProductType().equals(Constants.PRODUCT_TYPE_DEVICE)){
|
|
|
|
if (udiwmsProductRequest.getProductType().equals(Constants.PRODUCT_TYPE_DEVICE)) {
|
|
|
|
CtqyyRequest ctqyyRequest = new CtqyyRequest();
|
|
|
|
CtqyyRequest ctqyyRequest = new CtqyyRequest();
|
|
|
|
ctqyyRequest.setMsgHeader(getMsgHeader("getMaterialDict"));
|
|
|
|
ctqyyRequest.setMsgHeader(getMsgHeader("getMaterialDict"));
|
|
|
|
ctqyyRequest.setMsgBody(JSONUtil.toJsonStr(udiwmsProductRequest));
|
|
|
|
ctqyyRequest.setMsgBody(JSONUtil.toJsonStr(udiwmsProductRequest));
|
|
|
@ -221,6 +224,7 @@ public class CtqyyClient extends CommonHttpClient {
|
|
|
|
} else if (StrUtil.isNotEmpty(productsResponse.getModel_number()) && StrUtil.isBlank(productsResponse.getStandard())) {
|
|
|
|
} else if (StrUtil.isNotEmpty(productsResponse.getModel_number()) && StrUtil.isBlank(productsResponse.getStandard())) {
|
|
|
|
productsResponse.setStandard(productsResponse.getModel_number());
|
|
|
|
productsResponse.setStandard(productsResponse.getModel_number());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
productsResponse.setProductType(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
map.put("list", JSON.toJSON(zzzyyProductsResponse));
|
|
|
|
map.put("list", JSON.toJSON(zzzyyProductsResponse));
|
|
|
|
baseResponse.setData("");
|
|
|
|
baseResponse.setData("");
|
|
|
@ -231,16 +235,16 @@ public class CtqyyClient extends CommonHttpClient {
|
|
|
|
log.error("异常信息:{}", e);
|
|
|
|
log.error("异常信息:{}", e);
|
|
|
|
return ResultVOUtils.error(500, "网络错误,或远程服务器异常无法返回正确结果(" + response + ")");
|
|
|
|
return ResultVOUtils.error(500, "网络错误,或远程服务器异常无法返回正确结果(" + response + ")");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}else if(udiwmsProductRequest.getProductType().equals(Constants.PRODUCT_TYPE_DRUG)){
|
|
|
|
} else if (udiwmsProductRequest.getProductType().equals(Constants.PRODUCT_TYPE_DRUG)) {
|
|
|
|
LambdaQueryWrapper<PhysicDictEntity> wrapper = new LambdaQueryWrapper();
|
|
|
|
LambdaQueryWrapper<PhysicDictEntity> wrapper = new LambdaQueryWrapper();
|
|
|
|
//补充其他查询条件
|
|
|
|
//补充其他查询条件
|
|
|
|
wrapper.eq(StrUtil.isNotBlank(udiwmsProductRequest.getCode()),PhysicDictEntity::getPhysicCode,udiwmsProductRequest.getCode());
|
|
|
|
wrapper.eq(StrUtil.isNotBlank(udiwmsProductRequest.getCode()), PhysicDictEntity::getPhysicCode, udiwmsProductRequest.getCode());
|
|
|
|
wrapper.eq(StrUtil.isNotBlank(udiwmsProductRequest.getName()),PhysicDictEntity::getPhysicName,udiwmsProductRequest.getName());
|
|
|
|
wrapper.eq(StrUtil.isNotBlank(udiwmsProductRequest.getName()), PhysicDictEntity::getPhysicName, udiwmsProductRequest.getName());
|
|
|
|
wrapper.eq(StrUtil.isNotBlank(udiwmsProductRequest.getRegisterNo()),PhysicDictEntity::getPhysicNo,udiwmsProductRequest.getRegisterNo());
|
|
|
|
wrapper.eq(StrUtil.isNotBlank(udiwmsProductRequest.getRegisterNo()), PhysicDictEntity::getPhysicNo, udiwmsProductRequest.getRegisterNo());
|
|
|
|
IPage<PhysicDictEntity> page = physicDictMapper.selectPage(new Page<PhysicDictEntity>(udiwmsProductRequest.getPage(),udiwmsProductRequest.getLimit()),wrapper);
|
|
|
|
IPage<PhysicDictEntity> page = physicDictMapper.selectPage(new Page<PhysicDictEntity>(udiwmsProductRequest.getPage(), udiwmsProductRequest.getLimit()), wrapper);
|
|
|
|
List<PhysicDictEntity> physicDictEntities = page.getRecords();
|
|
|
|
List<PhysicDictEntity> physicDictEntities = page.getRecords();
|
|
|
|
List<ThrProductsEntity> thrProductsEntityList = null;
|
|
|
|
List<ThrProductsEntity> thrProductsEntityList = null;
|
|
|
|
if(CollUtil.isNotEmpty(physicDictEntities)){
|
|
|
|
if (CollUtil.isNotEmpty(physicDictEntities)) {
|
|
|
|
//数据处理以thr_products 返回
|
|
|
|
//数据处理以thr_products 返回
|
|
|
|
thrProductsEntityList = physicDictEntities.stream().map(dict -> {
|
|
|
|
thrProductsEntityList = physicDictEntities.stream().map(dict -> {
|
|
|
|
ThrProductsEntity products = new ThrProductsEntity();
|
|
|
|
ThrProductsEntity products = new ThrProductsEntity();
|
|
|
@ -249,6 +253,7 @@ public class CtqyyClient extends CommonHttpClient {
|
|
|
|
products.setMeasname(dict.getPhysicUnit());
|
|
|
|
products.setMeasname(dict.getPhysicUnit());
|
|
|
|
products.setSpec(dict.getPhysicSpec());
|
|
|
|
products.setSpec(dict.getPhysicSpec());
|
|
|
|
products.setRegisterNo(dict.getPhysicNo());
|
|
|
|
products.setRegisterNo(dict.getPhysicNo());
|
|
|
|
|
|
|
|
products.setProductType(2);
|
|
|
|
return products;
|
|
|
|
return products;
|
|
|
|
}).collect(Collectors.toList());
|
|
|
|
}).collect(Collectors.toList());
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -258,7 +263,7 @@ public class CtqyyClient extends CommonHttpClient {
|
|
|
|
return ResultVOUtils.success(pageSimpleResponse);
|
|
|
|
return ResultVOUtils.success(pageSimpleResponse);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
log.error("解析长泰区医院医疗类型,返回结果:{}", udiwmsProductRequest.getProductType());
|
|
|
|
log.error("解析长泰区医院医疗类型,返回结果:{}", udiwmsProductRequest.getProductType());
|
|
|
|
return ResultVOUtils.error(500,"医疗类型不正确,medicalType:"+udiwmsProductRequest.getProductType());
|
|
|
|
return ResultVOUtils.error(500, "医疗类型不正确,medicalType:" + udiwmsProductRequest.getProductType());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
@ -1350,39 +1355,73 @@ public class CtqyyClient extends CommonHttpClient {
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 处方拉取视图
|
|
|
|
* 处方拉取视图
|
|
|
|
|
|
|
|
*
|
|
|
|
* @param udiwmsBasicSkPrescribeRequest
|
|
|
|
* @param udiwmsBasicSkPrescribeRequest
|
|
|
|
* @return
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public BaseResponse getPrescribes(UdiwmsBasicSkPrescribeRequest udiwmsBasicSkPrescribeRequest) {
|
|
|
|
public BaseResponse getPrescribes(UdiwmsBasicSkPrescribeRequest udiwmsBasicSkPrescribeRequest) {
|
|
|
|
LambdaQueryWrapper<PresInfoEntity> wrapper = new LambdaQueryWrapper();
|
|
|
|
LambdaQueryWrapper<PresInfoEntity> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
|
|
|
String code = udiwmsBasicSkPrescribeRequest.getCode();
|
|
|
|
|
|
|
|
if (StrUtil.isNotEmpty(code)) {
|
|
|
|
|
|
|
|
wrapper.or(
|
|
|
|
|
|
|
|
innerWrapper -> {
|
|
|
|
|
|
|
|
innerWrapper.eq(PresInfoEntity::getStooutNo, code);
|
|
|
|
|
|
|
|
innerWrapper.eq(PresInfoEntity::getPrescribeNumber, code);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
}
|
|
|
|
//补充其他查询条件
|
|
|
|
//补充其他查询条件
|
|
|
|
IPage<PresInfoEntity> page = presInfoMapper.selectPage(new Page<PresInfoEntity>(udiwmsBasicSkPrescribeRequest.getPage(),udiwmsBasicSkPrescribeRequest.getLimit()),wrapper);
|
|
|
|
IPage<PresInfoEntity> page = presInfoMapper
|
|
|
|
|
|
|
|
.selectPage(new Page<PresInfoEntity>(udiwmsBasicSkPrescribeRequest.getPage(), udiwmsBasicSkPrescribeRequest.getLimit()), wrapper);
|
|
|
|
List<PresInfoEntity> presInfoEntities = page.getRecords();
|
|
|
|
List<PresInfoEntity> presInfoEntities = page.getRecords();
|
|
|
|
List<BasicSkPrescribeResponse> basicSkPrescribeResponses = null;
|
|
|
|
if (CollUtil.isNotEmpty(presInfoEntities)) {
|
|
|
|
if(CollUtil.isNotEmpty(presInfoEntities)){
|
|
|
|
|
|
|
|
//数据处理以basic_sk_prescribe,basic_sk_prescribe_item 主子返回
|
|
|
|
//数据处理以basic_sk_prescribe,basic_sk_prescribe_item 主子返回
|
|
|
|
basicSkPrescribeResponses = presInfoEntities.stream().map(pres -> {
|
|
|
|
Map<String, List<PresInfoEntity>> groupedByPrescribeNumber = presInfoEntities.stream()
|
|
|
|
|
|
|
|
.collect(Collectors.groupingBy(PresInfoEntity::getPrescribeNumber));
|
|
|
|
|
|
|
|
List<BasicSkPrescribeResponse> basicSkPrescribeResponses = new ArrayList<>();
|
|
|
|
|
|
|
|
List<BasicSkPrescribeResponse> finalBasicSkPrescribeResponses = basicSkPrescribeResponses;
|
|
|
|
|
|
|
|
groupedByPrescribeNumber.forEach((key, value) -> {
|
|
|
|
|
|
|
|
PresInfoEntity presInfoEntity = value.get(0);
|
|
|
|
BasicSkPrescribeResponse basicSkPrescribeResponse = new BasicSkPrescribeResponse();
|
|
|
|
BasicSkPrescribeResponse basicSkPrescribeResponse = new BasicSkPrescribeResponse();
|
|
|
|
|
|
|
|
basicSkPrescribeResponse.setSickCode(presInfoEntity.getSickId());
|
|
|
|
|
|
|
|
basicSkPrescribeResponse.setCode(presInfoEntity.getPrescribeNumber());
|
|
|
|
|
|
|
|
basicSkPrescribeResponse.setStooutNo(presInfoEntity.getStooutNo());
|
|
|
|
|
|
|
|
basicSkPrescribeResponse.setAddr("YPCF002");
|
|
|
|
|
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
|
|
LocalDateTime dateTime = LocalDateTime.parse(presInfoEntity.getLayPhysicTime(), formatter);
|
|
|
|
|
|
|
|
basicSkPrescribeResponse.setPrescribeDate(dateTime);
|
|
|
|
|
|
|
|
finalBasicSkPrescribeResponses.add(basicSkPrescribeResponse);
|
|
|
|
List<BasicSkPrescribeItemEntity> itemList = new ArrayList<>();
|
|
|
|
List<BasicSkPrescribeItemEntity> itemList = new ArrayList<>();
|
|
|
|
BasicSkPrescribeItemEntity item = new BasicSkPrescribeItemEntity();
|
|
|
|
value.forEach(entity ->
|
|
|
|
//TODO 封装数据
|
|
|
|
{
|
|
|
|
|
|
|
|
BasicSkPrescribeItemEntity basicSkPrescribeItemEntity = new BasicSkPrescribeItemEntity();
|
|
|
|
|
|
|
|
basicSkPrescribeItemEntity.setItemCode(entity.getPhysicCode());
|
|
|
|
|
|
|
|
BasicUdirelEntity basicUdirelEntity = basicUdirelDao.selectOne(new LambdaQueryWrapper<BasicUdirelEntity>().eq(BasicUdirelEntity::getMainId, entity.getPhysicCode()));
|
|
|
|
|
|
|
|
if (basicUdirelEntity != null) {
|
|
|
|
|
|
|
|
basicSkPrescribeItemEntity.setRelId(basicUdirelEntity.getId());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
basicSkPrescribeItemEntity.setItemName(entity.getPhysicName());
|
|
|
|
|
|
|
|
basicSkPrescribeItemEntity.setGgxh(entity.getPackSpec());
|
|
|
|
|
|
|
|
basicSkPrescribeItemEntity.setMeasureCount(entity.getLayPhysicQuantity());
|
|
|
|
|
|
|
|
basicSkPrescribeItemEntity.setMeasureUnit(entity.getPhysicUnit());
|
|
|
|
|
|
|
|
itemList.add(basicSkPrescribeItemEntity);
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
PageSimpleResponse<BasicSkPrescribeResponse> pageSimpleResponse = new PageSimpleResponse<>();
|
|
|
|
|
|
|
|
pageSimpleResponse.setTotal(page.getTotal());
|
|
|
|
|
|
|
|
pageSimpleResponse.setList(basicSkPrescribeResponses);
|
|
|
|
|
|
|
|
return ResultVOUtils.success(pageSimpleResponse);
|
|
|
|
|
|
|
|
} else
|
|
|
|
|
|
|
|
return ResultVOUtils.error(500, "下载失败!");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
itemList.add(item);
|
|
|
|
|
|
|
|
basicSkPrescribeResponse.setItemList(itemList);
|
|
|
|
|
|
|
|
return basicSkPrescribeResponse;
|
|
|
|
|
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
PageSimpleResponse<BasicSkPrescribeResponse> pageSimpleResponse = new PageSimpleResponse<>();
|
|
|
|
|
|
|
|
pageSimpleResponse.setTotal(page.getTotal());
|
|
|
|
|
|
|
|
pageSimpleResponse.setList(basicSkPrescribeResponses);
|
|
|
|
|
|
|
|
return ResultVOUtils.success(pageSimpleResponse);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 采购计划拉取视图
|
|
|
|
* 采购计划拉取视图
|
|
|
|
|
|
|
|
*
|
|
|
|
* @param udiwmsThrOrderRequest
|
|
|
|
* @param udiwmsThrOrderRequest
|
|
|
|
* @return
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
*/
|
|
|
@ -1390,12 +1429,12 @@ public class CtqyyClient extends CommonHttpClient {
|
|
|
|
public BaseResponse getThrOrders(UdiwmsThrOrderRequest udiwmsThrOrderRequest) {
|
|
|
|
public BaseResponse getThrOrders(UdiwmsThrOrderRequest udiwmsThrOrderRequest) {
|
|
|
|
LambdaQueryWrapper<PlanInfoEntity> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
LambdaQueryWrapper<PlanInfoEntity> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
//补充其他查询条件
|
|
|
|
//补充其他查询条件
|
|
|
|
IPage<PlanInfoEntity> page = planInfoMapper.selectPage(new Page<PlanInfoEntity>(udiwmsThrOrderRequest.getPage(),udiwmsThrOrderRequest.getLimit()),wrapper);
|
|
|
|
IPage<PlanInfoEntity> page = planInfoMapper.selectPage(new Page<PlanInfoEntity>(udiwmsThrOrderRequest.getPage(), udiwmsThrOrderRequest.getLimit()), wrapper);
|
|
|
|
List<PlanInfoEntity> planInfoEntities = page.getRecords();
|
|
|
|
List<PlanInfoEntity> planInfoEntities = page.getRecords();
|
|
|
|
List<ThrOrderResponse> thrOrderResponses = null;
|
|
|
|
List<ThrOrderResponse> thrOrderResponses = null;
|
|
|
|
if(CollUtil.isNotEmpty(planInfoEntities)){
|
|
|
|
if (CollUtil.isNotEmpty(planInfoEntities)) {
|
|
|
|
//数据处理以thr_order,thr_order_detail 主子返回
|
|
|
|
//数据处理以thr_order,thr_order_detail 主子返回
|
|
|
|
thrOrderResponses = planInfoEntities.stream().map(plan->{
|
|
|
|
thrOrderResponses = planInfoEntities.stream().map(plan -> {
|
|
|
|
ThrOrderResponse thrOrderResponse = new ThrOrderResponse();
|
|
|
|
ThrOrderResponse thrOrderResponse = new ThrOrderResponse();
|
|
|
|
List<ThrOrderDetailEntity> detailList = new ArrayList<>();
|
|
|
|
List<ThrOrderDetailEntity> detailList = new ArrayList<>();
|
|
|
|
ThrOrderDetailEntity detail = new ThrOrderDetailEntity();
|
|
|
|
ThrOrderDetailEntity detail = new ThrOrderDetailEntity();
|
|
|
|