|
|
@ -65,16 +65,17 @@ public class DownloadFactory {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
@Resource
|
|
|
|
private ErpBasicClient erpBasicClient;
|
|
|
|
private ErpBasicClient erpBasicClient;
|
|
|
|
@Resource
|
|
|
|
@Resource
|
|
|
|
private ThrBusTypeOriginServiceImpl thrBusTypeOriginService;
|
|
|
|
private ThrBusTypeOriginServiceImpl thrBusTypeOriginService;
|
|
|
|
|
|
|
|
|
|
|
|
public BaseResponse downloadErpOrder(CollectOrderRequest collectOrderRequest, String busType) {
|
|
|
|
public BaseResponse downloadErpOrder(CollectOrderRequest collectOrderRequest, String busType) {
|
|
|
|
|
|
|
|
|
|
|
|
int page = 1;
|
|
|
|
int page = 1;
|
|
|
|
int limit = 100;
|
|
|
|
int limit = 100;
|
|
|
|
|
|
|
|
int maxPages = 1000; // 设置最大页数限制,防止死循环
|
|
|
|
|
|
|
|
StringBuilder errorMsgAll = new StringBuilder();
|
|
|
|
|
|
|
|
|
|
|
|
GetSickPrescribeRequest getSickPrescribeRequest = new GetSickPrescribeRequest();
|
|
|
|
GetSickPrescribeRequest getSickPrescribeRequest = new GetSickPrescribeRequest();
|
|
|
|
getSickPrescribeRequest.setLimit(limit);
|
|
|
|
getSickPrescribeRequest.setLimit(limit);
|
|
|
|
getSickPrescribeRequest.setCode(collectOrderRequest.getBillNo());
|
|
|
|
getSickPrescribeRequest.setCode(collectOrderRequest.getBillNo());
|
|
|
@ -85,9 +86,8 @@ public class DownloadFactory {
|
|
|
|
getSickPrescribeRequest.setEndTime(collectOrderRequest.getEndTime());
|
|
|
|
getSickPrescribeRequest.setEndTime(collectOrderRequest.getEndTime());
|
|
|
|
getSickPrescribeRequest.setKey(collectOrderRequest.getKeyWords());
|
|
|
|
getSickPrescribeRequest.setKey(collectOrderRequest.getKeyWords());
|
|
|
|
getSickPrescribeRequest.setBusType(collectOrderRequest.getBusType());
|
|
|
|
getSickPrescribeRequest.setBusType(collectOrderRequest.getBusType());
|
|
|
|
BaseResponse resp;
|
|
|
|
|
|
|
|
while (true) {
|
|
|
|
while (page <= maxPages) {
|
|
|
|
List<IoCollectOrder> list;
|
|
|
|
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
getSickPrescribeRequest.setPage(page);
|
|
|
|
getSickPrescribeRequest.setPage(page);
|
|
|
|
BaseResponse<PageSimpleResponse<IoCollectOrder>> baseResponse = new BaseResponse<>();
|
|
|
|
BaseResponse<PageSimpleResponse<IoCollectOrder>> baseResponse = new BaseResponse<>();
|
|
|
@ -97,32 +97,46 @@ public class DownloadFactory {
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
baseResponse = erpBasicClient.getPrescribeV2(getSickPrescribeRequest);
|
|
|
|
baseResponse = erpBasicClient.getPrescribeV2(getSickPrescribeRequest);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (baseResponse.getCode() == 20000) {
|
|
|
|
|
|
|
|
list = baseResponse.getData().getList();
|
|
|
|
if (baseResponse.getCode() != 20000) {
|
|
|
|
if (list == null) {
|
|
|
|
|
|
|
|
return ResultVOUtils.error(500, "未查到此业务单据");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
resp = importThrOrder(list, collectOrderRequest);
|
|
|
|
|
|
|
|
if ((list.size() >= limit && !baseResponse.getData().getTotal().equals(-666)) || IntUtil.value(baseResponse.getData().getTotal()) == -555) {
|
|
|
|
|
|
|
|
page++;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
return baseResponse;
|
|
|
|
return baseResponse;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
|
|
log.error(ExceptionUtils.getStackTrace(e));
|
|
|
|
|
|
|
|
return ResultVOUtils.error(500, e.getMessage());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<IoCollectOrder> list = baseResponse.getData().getList();
|
|
|
|
|
|
|
|
if (list == null || list.isEmpty()) {
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BaseResponse resp = importThrOrder(list, collectOrderRequest);
|
|
|
|
|
|
|
|
if (resp != null && resp.getMessage() != null) {
|
|
|
|
|
|
|
|
errorMsgAll.append(resp.getMessage());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 判断是否还有下一页
|
|
|
|
|
|
|
|
Integer total = baseResponse.getData().getTotal();
|
|
|
|
|
|
|
|
if (total == null || total <= 0 || total.equals(-666) || total.equals(-555)) {
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 如果当前页数据量小于每页限制,说明已经是最后一页
|
|
|
|
|
|
|
|
if (list.size() < limit) {
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
page++;
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
|
|
log.error("下载订单异常: {}", ExceptionUtils.getStackTrace(e));
|
|
|
|
|
|
|
|
return ResultVOUtils.error(500, "下载订单异常: " + e.getMessage());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (page > maxPages) {
|
|
|
|
|
|
|
|
log.warn("达到最大页数限制: {}", maxPages);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return ResultVOUtils.success(resp.getMessage(),"下载成功");
|
|
|
|
return ResultVOUtils.success(errorMsgAll.toString(), "下载成功");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public BaseResponse downloadErpThrOrder(CollectOrderRequest collectOrderRequest) {
|
|
|
|
public BaseResponse downloadErpThrOrder(CollectOrderRequest collectOrderRequest) {
|
|
|
|
int page = 1;
|
|
|
|
int page = 1;
|
|
|
|
int limit = 100;
|
|
|
|
int limit = 100;
|
|
|
@ -138,14 +152,15 @@ public class DownloadFactory {
|
|
|
|
BaseResponse resp;
|
|
|
|
BaseResponse resp;
|
|
|
|
while (true) {
|
|
|
|
while (true) {
|
|
|
|
filterThrOrderRequest.setPage(page);
|
|
|
|
filterThrOrderRequest.setPage(page);
|
|
|
|
BaseResponse<PageSimpleResponse<IoCollectOrder>> baseResponse = erpBasicClient.getThrOrders(filterThrOrderRequest);
|
|
|
|
BaseResponse<PageSimpleResponse<IoCollectOrder>> baseResponse = erpBasicClient
|
|
|
|
|
|
|
|
.getThrOrders(filterThrOrderRequest);
|
|
|
|
if (baseResponse.getCode() == 20000) {
|
|
|
|
if (baseResponse.getCode() == 20000) {
|
|
|
|
List<IoCollectOrder> list = baseResponse.getData().getList();
|
|
|
|
List<IoCollectOrder> list = baseResponse.getData().getList();
|
|
|
|
if (list == null) {
|
|
|
|
if (list == null) {
|
|
|
|
return ResultVOUtils.error(500, "未查到此业务单据");
|
|
|
|
return ResultVOUtils.error(500, "未查到此业务单据");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
resp = importThrOrder(list, collectOrderRequest);
|
|
|
|
resp = importThrOrder(list, collectOrderRequest);
|
|
|
|
if ((list.size() >= limit && !baseResponse.getData().getTotal().equals(-666)) || IntUtil.value(baseResponse.getData().getTotal()) == -555) {
|
|
|
|
if ((list.size() >= limit && !baseResponse.getData().getTotal().equals(-666))) {
|
|
|
|
page++;
|
|
|
|
page++;
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
break;
|
|
|
|
break;
|
|
|
@ -154,10 +169,9 @@ public class DownloadFactory {
|
|
|
|
return baseResponse;
|
|
|
|
return baseResponse;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return ResultVOUtils.success(resp.getMessage(),"下载成功");
|
|
|
|
return ResultVOUtils.success(resp.getMessage(), "下载成功");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
@Resource
|
|
|
|
UdiRelevanceDao udiRelevanceDao;
|
|
|
|
UdiRelevanceDao udiRelevanceDao;
|
|
|
|
@Resource
|
|
|
|
@Resource
|
|
|
@ -165,7 +179,6 @@ public class DownloadFactory {
|
|
|
|
@Resource
|
|
|
|
@Resource
|
|
|
|
private IoCollectOrderService collectOrderService;
|
|
|
|
private IoCollectOrderService collectOrderService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 下载至单据
|
|
|
|
* 下载至单据
|
|
|
|
*
|
|
|
|
*
|
|
|
@ -176,86 +189,93 @@ public class DownloadFactory {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
|
|
|
|
|
|
|
|
StringBuilder errorMsgAll = new StringBuilder();
|
|
|
|
StringBuilder errorMsgAll = new StringBuilder();
|
|
|
|
List<IoCollectOrder> ioCollectOrderList = new ArrayList<>();
|
|
|
|
List<IoCollectOrder> ioCollectOrderList = new ArrayList<>();
|
|
|
|
if (CollUtil.isNotEmpty(thrOrderEntities)) {
|
|
|
|
if (CollUtil.isNotEmpty(thrOrderEntities)) {
|
|
|
|
for (IoCollectOrder thrOrder : thrOrderEntities) {
|
|
|
|
for (IoCollectOrder thrOrder : thrOrderEntities) {
|
|
|
|
IoCollectOrder ioCollectOrder = new IoCollectOrder();
|
|
|
|
IoCollectOrder ioCollectOrder = new IoCollectOrder();
|
|
|
|
BeanUtil.copyProperties(thrOrder, ioCollectOrder);
|
|
|
|
BeanUtil.copyProperties(thrOrder, ioCollectOrder);
|
|
|
|
StringBuilder errorMsg = new StringBuilder();
|
|
|
|
StringBuilder errorMsg = new StringBuilder();
|
|
|
|
ioCollectOrder.setFromType("HIS系统");
|
|
|
|
ioCollectOrder.setFromType("HIS系统");
|
|
|
|
ioCollectOrder.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
|
|
|
|
ioCollectOrder.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
|
|
|
|
ioCollectOrder.setCreateTime(new Date());
|
|
|
|
ioCollectOrder.setCreateTime(new Date());
|
|
|
|
ioCollectOrder.setCreateUser(collectOrderRequest.getCreateUser());
|
|
|
|
ioCollectOrder.setCreateUser(collectOrderRequest.getCreateUser());
|
|
|
|
ioCollectOrder.setBackupOrderRemark1(null);
|
|
|
|
ioCollectOrder.setBackupOrderRemark1(null);
|
|
|
|
ioCollectOrder.setUpdateTime(new Date());
|
|
|
|
ioCollectOrder.setUpdateTime(new Date());
|
|
|
|
ioCollectOrder.setSplitStatus(0);
|
|
|
|
ioCollectOrder.setSplitStatus(0);
|
|
|
|
ioCollectOrder.setTagStatus(0);
|
|
|
|
ioCollectOrder.setTagStatus(0);
|
|
|
|
ioCollectOrder.setBackupOrderRemark1(thrOrder.getBackupOrderRemark1());
|
|
|
|
ioCollectOrder.setBackupOrderRemark1(thrOrder.getBackupOrderRemark1());
|
|
|
|
|
|
|
|
|
|
|
|
List<IoCollectOrderBiz> bizList = new ArrayList<>();
|
|
|
|
List<IoCollectOrderBiz> bizList = new ArrayList<>();
|
|
|
|
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);
|
|
|
|
|
|
|
|
|
|
|
|
if (BusTypeConstant.QXCF001.getBusType().equals(collectOrderRequest.getBusType())) {
|
|
|
|
if (BusTypeConstant.QXCF001.getBusType().equals(collectOrderRequest.getBusType())) {
|
|
|
|
collectOrderBiz.setRelId(entity.getRelId());
|
|
|
|
collectOrderBiz.setRelId(entity.getRelId());
|
|
|
|
if (StrUtil.isNotEmpty(entity.getCheckCode())) {
|
|
|
|
if (StrUtil.isNotEmpty(entity.getCheckCode())) {
|
|
|
|
// 1. 先查询完全匹配的情况
|
|
|
|
// 1. 先查询完全匹配的情况
|
|
|
|
LambdaQueryWrapper<BasicProductsEntity> exactMatchWrapper = new LambdaQueryWrapper<>();
|
|
|
|
LambdaQueryWrapper<BasicProductsEntity> exactMatchWrapper = new LambdaQueryWrapper<>();
|
|
|
|
exactMatchWrapper.eq(BasicProductsEntity::getYbbm, entity.getCheckCode());
|
|
|
|
exactMatchWrapper.eq(BasicProductsEntity::getYbbm, entity.getCheckCode());
|
|
|
|
List<BasicProductsEntity> exactMatches = basicProductsDao.selectList(exactMatchWrapper);
|
|
|
|
List<BasicProductsEntity> exactMatches = basicProductsDao.selectList(exactMatchWrapper);
|
|
|
|
if (exactMatches.isEmpty()) {
|
|
|
|
if (exactMatches.isEmpty()) {
|
|
|
|
// 2. 如果没有完全匹配,则查询前20位匹配的情况
|
|
|
|
// 2. 如果没有完全匹配,则查询前20位匹配的情况
|
|
|
|
LambdaQueryWrapper<BasicProductsEntity> prefixMatchWrapper = new LambdaQueryWrapper<>();
|
|
|
|
LambdaQueryWrapper<BasicProductsEntity> prefixMatchWrapper = new LambdaQueryWrapper<>();
|
|
|
|
prefixMatchWrapper.apply("LEFT(ybbm, 20) = LEFT({0}, 20)", entity.getCheckCode());
|
|
|
|
prefixMatchWrapper.apply("LEFT(ybbm, 20) = LEFT({0}, 20)", entity.getCheckCode());
|
|
|
|
exactMatches = basicProductsDao.selectList(prefixMatchWrapper);
|
|
|
|
exactMatches = basicProductsDao.selectList(prefixMatchWrapper);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (exactMatches.isEmpty()) {
|
|
|
|
if (exactMatches.isEmpty()) {
|
|
|
|
errorMsg.append(entity.getCpmctymc()).append("字典未对照").append(";");
|
|
|
|
errorMsg.append(entity.getCpmctymc()).append("字典未对照").append(";");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
BasicProductsEntity basicProductsEntity = basicProductsDao.selectOne(new LambdaQueryWrapper<BasicProductsEntity>().eq(BasicProductsEntity::getYbbm, entity.getYbbm()).last("limit 1"));
|
|
|
|
BasicProductsEntity basicProductsEntity = basicProductsDao
|
|
|
|
if (basicProductsEntity == null || StrUtil.isEmpty(basicProductsEntity.getNameCode())) {
|
|
|
|
.selectOne(new LambdaQueryWrapper<BasicProductsEntity>()
|
|
|
|
errorMsg.append(entity.getCpmctymc()).append("字典未对照").append(";");
|
|
|
|
.eq(BasicProductsEntity::getYbbm, entity.getYbbm()).last("limit 1"));
|
|
|
|
|
|
|
|
if (basicProductsEntity == null || StrUtil.isEmpty(basicProductsEntity.getNameCode())) {
|
|
|
|
|
|
|
|
errorMsg.append(entity.getCpmctymc()).append("字典未对照").append(";");
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
collectOrderBiz.setTagStatus(1);
|
|
|
|
collectOrderBiz.setTagStatus(1);
|
|
|
|
collectOrderBiz.setUnTagCount(0);
|
|
|
|
collectOrderBiz.setUnTagCount(0);
|
|
|
|
bizList.add(collectOrderBiz);
|
|
|
|
bizList.add(collectOrderBiz);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
UdiRelevanceEntity basicUdirelEntity = udiRelevanceDao.selectOne(new LambdaQueryWrapper<UdiRelevanceEntity>().eq(UdiRelevanceEntity::getMainId, entity.getThrCode()).last("limit 1"));
|
|
|
|
UdiRelevanceEntity basicUdirelEntity = udiRelevanceDao
|
|
|
|
if (basicUdirelEntity != null) {
|
|
|
|
.selectOne(new LambdaQueryWrapper<UdiRelevanceEntity>()
|
|
|
|
collectOrderBiz.setRelId(basicUdirelEntity.getId());
|
|
|
|
.eq(UdiRelevanceEntity::getMainId, entity.getThrCode()).last("limit 1"));
|
|
|
|
BasicProductsEntity basicProductsEntity = basicProductsDao.selectOne(new LambdaQueryWrapper<BasicProductsEntity>().eq(BasicProductsEntity::getUuid, basicUdirelEntity.getUuid()).eq(BasicProductsEntity::getPackLevel, "1").last("limit 1"));
|
|
|
|
if (basicUdirelEntity != null) {
|
|
|
|
if (basicProductsEntity == null || StrUtil.isEmpty(basicProductsEntity.getNameCode())) {
|
|
|
|
collectOrderBiz.setRelId(basicUdirelEntity.getId());
|
|
|
|
errorMsg.append(entity.getCpmctymc()).append("字典未对照").append(";");
|
|
|
|
BasicProductsEntity basicProductsEntity = basicProductsDao
|
|
|
|
|
|
|
|
.selectOne(new LambdaQueryWrapper<BasicProductsEntity>()
|
|
|
|
|
|
|
|
.eq(BasicProductsEntity::getUuid, basicUdirelEntity.getUuid())
|
|
|
|
|
|
|
|
.eq(BasicProductsEntity::getPackLevel, "1").last("limit 1"));
|
|
|
|
|
|
|
|
if (basicProductsEntity == null || StrUtil.isEmpty(basicProductsEntity.getNameCode())) {
|
|
|
|
|
|
|
|
errorMsg.append(entity.getCpmctymc()).append("字典未对照").append(";");
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
collectOrderBiz.setMeasureUnit(basicProductsEntity.getXjdw());
|
|
|
|
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
collectOrderBiz.setMeasureUnit(basicProductsEntity.getXjdw());
|
|
|
|
errorMsg.append(entity.getCpmctymc()).append("字典未对照").append(";");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
collectOrderBiz.setTagStatus(1);
|
|
|
|
errorMsg.append(entity.getCpmctymc()).append("字典未对照").append(";");
|
|
|
|
collectOrderBiz.setUnTagCount(0);
|
|
|
|
|
|
|
|
bizList.add(collectOrderBiz);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
collectOrderBiz.setTagStatus(1);
|
|
|
|
|
|
|
|
collectOrderBiz.setUnTagCount(0);
|
|
|
|
|
|
|
|
bizList.add(collectOrderBiz);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (StrUtil.isNotBlank(errorMsg)) {
|
|
|
|
if (StrUtil.isNotBlank(errorMsg)) {
|
|
|
|
ioCollectOrder.setTagStatus(4);
|
|
|
|
ioCollectOrder.setTagStatus(4);
|
|
|
|
errorMsgAll.append(errorMsg);
|
|
|
|
errorMsgAll.append(errorMsg);
|
|
|
|
} else
|
|
|
|
} else
|
|
|
|
ioCollectOrder.setTagStatus(2);
|
|
|
|
ioCollectOrder.setTagStatus(2);
|
|
|
|
ioCollectOrder.setErrorMsg(errorMsg.toString());
|
|
|
|
ioCollectOrder.setErrorMsg(errorMsg.toString());
|
|
|
|
ioCollectOrder.setBizList(bizList);
|
|
|
|
ioCollectOrder.setBizList(bizList);
|
|
|
|
ioCollectOrderList.add(ioCollectOrder);
|
|
|
|
ioCollectOrderList.add(ioCollectOrder);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
collectOrderService.importPrescribe(ioCollectOrderList, collectOrderRequest);
|
|
|
|
|
|
|
|
return ResultVOUtils.success(errorMsgAll.toString(), "下载成功");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
collectOrderService.importPrescribe(ioCollectOrderList, collectOrderRequest);
|
|
|
|
} catch (Exception e) {
|
|
|
|
return ResultVOUtils.success(errorMsgAll.toString(),"下载成功");
|
|
|
|
log.error("12312" + e.getMessage());
|
|
|
|
}
|
|
|
|
|
|
|
|
}catch (Exception e){
|
|
|
|
|
|
|
|
log.error("12312"+e.getMessage());
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return ResultVOUtils.error("下载失败");
|
|
|
|
return ResultVOUtils.error("下载失败");
|
|
|
|
|
|
|
|
|
|
|
|