拉取单据

workplace
zane 10 months ago
parent 2efc35861a
commit a168f03590

@ -19,13 +19,7 @@ public class DownloadFactory {
private YPCF002Download ypcf002Download;
@Resource
private CGJH001Download cgjh001Download;
@Resource
private LYRKDownload lyrkDownload;
@Resource
private GMRKDownload gmrkDownload;
@Resource
private LYCKDownload lyckDownload;
private ThrOrderDownload thrOrderDownload;
/**
*
@ -40,13 +34,13 @@ public class DownloadFactory {
if(busType.equals(BusTypeConstant.YPCF002.getBusType())){
return ypcf002Download.downloadOrder(collectOrderRequest);
} else if(busType.equals(BusTypeConstant.CGJH001.getBusType())){
return cgjh001Download.downloadOrder(collectOrderRequest);
return thrOrderDownload.downloadOrder(collectOrderRequest);
} else if(busType.equals(BusTypeConstant.LYRK.getBusType())){
return lyrkDownload.downloadOrder(collectOrderRequest);
return thrOrderDownload.downloadOrder(collectOrderRequest);
} else if(busType.equals(BusTypeConstant.GMRK.getBusType())){
return gmrkDownload.downloadOrder(collectOrderRequest);
return thrOrderDownload.downloadOrder(collectOrderRequest);
} else if(busType.equals(BusTypeConstant.LYCK.getBusType())){
return lyckDownload.downloadOrder(collectOrderRequest);
return thrOrderDownload.downloadOrder(collectOrderRequest);
}
return ResultVOUtils.error("下载失败,未配置业务类型");
}

@ -92,6 +92,7 @@ public class IoCollectOriginService {
}
public BaseResponse downloadOrderV2(CollectOrderRequest collectOrderRequest) {
//条件
return downloadFactory.downloadOrder(collectOrderRequest);
}

@ -1,41 +0,0 @@
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.http.ErpBasicClient;
import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.req.thrsys.FilterThrOrderRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.thrsys.ThrOrderResponse;
import com.glxp.api.service.collect.IoCollectOrderService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class CGJH001Download implements IDownload{
@Resource
private ErpBasicClient erpBasicClient;
@Resource
private IoCollectOrderService collectOrderService;
@Override
public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) {
FilterThrOrderRequest filterThrOrderRequest = new FilterThrOrderRequest();
filterThrOrderRequest.setPage(1);
filterThrOrderRequest.setLimit(100);
filterThrOrderRequest.setBillNo(collectOrderRequest.getBillNo());
filterThrOrderRequest.setThirdSys("thirdId");
filterThrOrderRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
filterThrOrderRequest.setFromType(collectOrderRequest.getFromType());
BaseResponse<PageSimpleResponse<ThrOrderResponse>> baseResponse = erpBasicClient.getThrOrders(filterThrOrderRequest);
if (baseResponse.getCode() == 20000) {
List<ThrOrderResponse> list = baseResponse.getData().getList();
// collectOrderService.importPrescribe(list,collectOrderRequest.getBusType());
return ResultVOUtils.success("下载成功");
}
return ResultVOUtils.error("下载失败");
}
}

@ -1,39 +0,0 @@
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.http.ErpBasicClient;
import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.req.thrsys.FilterThrOrderRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.thrsys.ThrOrderResponse;
import com.glxp.api.service.collect.IoCollectOrderService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class GMRKDownload implements IDownload{
@Resource
private ErpBasicClient erpBasicClient;
@Resource
private IoCollectOrderService collectOrderService;
@Override
public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) {
FilterThrOrderRequest filterThrOrderRequest = new FilterThrOrderRequest();
filterThrOrderRequest.setPage(1);
filterThrOrderRequest.setLimit(100);
filterThrOrderRequest.setBillNo(collectOrderRequest.getBillNo());
filterThrOrderRequest.setThirdSys("thirdId");
filterThrOrderRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
filterThrOrderRequest.setFromType(collectOrderRequest.getFromType());
BaseResponse<PageSimpleResponse<ThrOrderResponse>> baseResponse = erpBasicClient.getThrOrders(filterThrOrderRequest);
if (baseResponse.getCode() == 20000) {
List<ThrOrderResponse> list = baseResponse.getData().getList();
// collectOrderService.importPrescribe(list,collectOrderRequest.getBusType());
return ResultVOUtils.success("下载成功");
}
return ResultVOUtils.error("下载失败");
}
}

@ -1,42 +0,0 @@
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.req.thrsys.FilterThrOrderRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.thrsys.ThrOrderResponse;
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) {
FilterThrOrderRequest filterThrOrderRequest = new FilterThrOrderRequest();
filterThrOrderRequest.setPage(1);
filterThrOrderRequest.setLimit(100);
filterThrOrderRequest.setBillNo(collectOrderRequest.getBillNo());
filterThrOrderRequest.setThirdSys("thirdId");
filterThrOrderRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
filterThrOrderRequest.setFromType(collectOrderRequest.getFromType());
BaseResponse<PageSimpleResponse<ThrOrderResponse>> baseResponse = erpBasicClient.getThrOrders(filterThrOrderRequest);
if (baseResponse.getCode() == 20000) {
List<ThrOrderResponse> list = baseResponse.getData().getList();
// collectOrderService.importPrescribe(list,collectOrderRequest.getBusType());
return ResultVOUtils.success("下载成功");
}
return ResultVOUtils.error("下载失败");
}
}

@ -1,39 +0,0 @@
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.http.ErpBasicClient;
import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.req.thrsys.FilterThrOrderRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.thrsys.ThrOrderResponse;
import com.glxp.api.service.collect.IoCollectOrderService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class LYRKDownload implements IDownload {
@Resource
private ErpBasicClient erpBasicClient;
@Resource
private IoCollectOrderService collectOrderService;
@Override
public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) {
FilterThrOrderRequest filterThrOrderRequest = new FilterThrOrderRequest();
filterThrOrderRequest.setPage(1);
filterThrOrderRequest.setLimit(100);
filterThrOrderRequest.setBillNo(collectOrderRequest.getBillNo());
filterThrOrderRequest.setThirdSys("thirdId");
filterThrOrderRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
filterThrOrderRequest.setFromType(collectOrderRequest.getFromType());
BaseResponse<PageSimpleResponse<ThrOrderResponse>> baseResponse = erpBasicClient.getThrOrders(filterThrOrderRequest);
if (baseResponse.getCode() == 20000) {
List<ThrOrderResponse> list = baseResponse.getData().getList();
// collectOrderService.importPrescribe(list,collectOrderRequest.getBusType());
return ResultVOUtils.success("下载成功");
}
return ResultVOUtils.error("下载失败");
}
}

@ -0,0 +1,147 @@
package com.glxp.api.service.collect.down;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.dao.thrsys.ThrOrderDao;
import com.glxp.api.dao.thrsys.ThrOrderDetailDao;
import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.entity.collect.IoCollectOrderBiz;
import com.glxp.api.entity.thrsys.ThrOrderDetailEntity;
import com.glxp.api.entity.thrsys.ThrOrderEntity;
import com.glxp.api.http.ErpBasicClient;
import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.req.thrsys.FilterThrOrderRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.thrsys.ThrOrderResponse;
import com.glxp.api.service.collect.IoCollectOrderService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* CGJH001
* LYRK GMRK LYCK
*/
@Service
public class ThrOrderDownload implements IDownload{
@Resource
private ErpBasicClient erpBasicClient;
@Resource
private IoCollectOrderService collectOrderService;
@Resource
private ThrOrderDao thrOrderDao;
@Resource
private ThrOrderDetailDao thrOrderDetailDao;
@Override
public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) {
LambdaQueryWrapper<ThrOrderEntity> w = new LambdaQueryWrapper<>();
w.eq(StrUtil.isNotBlank(collectOrderRequest.getBillNo()),ThrOrderEntity::getBillNo,collectOrderRequest.getBillNo());
List<ThrOrderEntity> thrOrderEntities = thrOrderDao.selectList(w);
if(CollUtil.isNotEmpty(thrOrderEntities)){
return this.importThrOrder(thrOrderEntities,collectOrderRequest);
}else{
//三方拉取
FilterThrOrderRequest filterThrOrderRequest = new FilterThrOrderRequest();
filterThrOrderRequest.setPage(1);
filterThrOrderRequest.setLimit(100);
filterThrOrderRequest.setBillNo(collectOrderRequest.getBillNo());
filterThrOrderRequest.setThirdSys("thirdId");
filterThrOrderRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
filterThrOrderRequest.setFromType(collectOrderRequest.getFromType());
BaseResponse<PageSimpleResponse<ThrOrderResponse>> baseResponse = erpBasicClient.getThrOrders(filterThrOrderRequest);
if (baseResponse.getCode() == 20000) {
List<ThrOrderResponse> list = baseResponse.getData().getList();
if(CollUtil.isNotEmpty(list)){
list.forEach(item -> {
ThrOrderEntity thrOrderEntity = new ThrOrderEntity();
BeanUtil.copyProperties(item, thrOrderEntity);
thrOrderEntity.setCreateTime(new Date());
thrOrderEntity.setUpdateTime(new Date());
List<ThrOrderDetailEntity> detailList = item.getDetailList();
if (CollUtil.isNotEmpty(detailList)) {
thrOrderDetailDao.delete(new LambdaQueryWrapper<ThrOrderDetailEntity>().eq(ThrOrderDetailEntity::getOrderIdFk, item.getBillNo()));
for (ThrOrderDetailEntity detail : detailList) {
detail.setCreateTime(thrOrderEntity.getCreateTime());
detail.setUpdateTime(thrOrderEntity.getUpdateTime());
thrOrderDetailDao.insert(detail);
}
}
thrOrderDao.insertOrUpdate(thrOrderEntity);
});
//再次获取
thrOrderEntities = thrOrderDao.selectList(w);
return this.importThrOrder(thrOrderEntities,collectOrderRequest);
}
}
}
return ResultVOUtils.error("下载失败");
}
/**
*
* @param thrOrderEntities
* @param collectOrderRequest
*/
private BaseResponse importThrOrder(List<ThrOrderEntity> thrOrderEntities,CollectOrderRequest collectOrderRequest){
List<IoCollectOrder> ioCollectOrderList = new ArrayList<>();
if(CollUtil.isNotEmpty(thrOrderEntities)){
for(ThrOrderEntity thrOrder: thrOrderEntities){
IoCollectOrder ioCollectOrder = new IoCollectOrder();
StringBuilder errorMsg = new StringBuilder();
ioCollectOrder.setBillNo(thrOrder.getBillNo());
ioCollectOrder.setFromType("HIS系统");
ioCollectOrder.setFromCorp(null);
ioCollectOrder.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
ioCollectOrder.setFromCorpName("");
ioCollectOrder.setBillTime(DateUtil.parseTime(thrOrder.getBilldate()));
ioCollectOrder.setCreateTime(new Date());
ioCollectOrder.setCreateUser(collectOrderRequest.getCreateUser());
ioCollectOrder.setBackupOrderRemark1(null);
ioCollectOrder.setUpdateTime(new Date());
ioCollectOrder.setSplitStatus(0);
ioCollectOrder.setTagStatus(0);
List<ThrOrderDetailEntity> thrOrderDetailEntities = thrOrderDetailDao.selectList(new LambdaQueryWrapper<ThrOrderDetailEntity>().eq(ThrOrderDetailEntity::getOrderIdFk,thrOrder.getBillNo()));
List<IoCollectOrderBiz> bizList = new ArrayList<>();
for(ThrOrderDetailEntity entity : thrOrderDetailEntities){
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(";");
// }
collectOrderBiz.setThrCode(null);
collectOrderBiz.setCpmctymc(null);
collectOrderBiz.setGgxh(null);
collectOrderBiz.setBatchNo(entity.getBatchNo());
collectOrderBiz.setOrderIdFk(ioCollectOrder.getBillNo());
collectOrderBiz.setCount(entity.getCount());
collectOrderBiz.setMeasureUnit(null);
collectOrderBiz.setTagStatus(1);
collectOrderBiz.setUnTagCount(0);
bizList.add(collectOrderBiz);
}
if (StrUtil.isNotBlank(errorMsg)) {
ioCollectOrder.setErrorMsg(errorMsg.toString());
ioCollectOrder.setTagStatus(4);
}
ioCollectOrder.setBizList(bizList);
ioCollectOrderList.add(ioCollectOrder);
}
collectOrderService.importPrescribe(ioCollectOrderList,collectOrderRequest.getBusType());
return ResultVOUtils.success("下载成功");
}
return ResultVOUtils.error("下载失败");
}
}
Loading…
Cancel
Save