Merge remote-tracking branch 'origin/dev_fifo_z' into dev_fifo_z
commit
e6e0ece77a
@ -0,0 +1,33 @@
|
|||||||
|
package com.glxp.api.constant;
|
||||||
|
|
||||||
|
public enum BusTypeConstant {
|
||||||
|
YPCF002("药品处方单","YPCF002"),
|
||||||
|
CGJH001("采购计划","CGJH001"),
|
||||||
|
LYRK("领药入库","LYRK"),
|
||||||
|
GMRK("购买入库","GMRK"),
|
||||||
|
LYCK("领药出库","LYCK"),
|
||||||
|
;
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
private String busType;
|
||||||
|
BusTypeConstant(String name, String busType) {
|
||||||
|
this.name = name;
|
||||||
|
this.busType = busType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBusType() {
|
||||||
|
return busType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBusType(String busType) {
|
||||||
|
this.busType = busType;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
package com.glxp.api.res.inout;
|
||||||
|
|
||||||
|
import com.glxp.api.entity.collect.IoCollectOrder;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class VailTagResultResponse {
|
||||||
|
IoCollectOrder collectOrder;
|
||||||
|
private List<VailCodeResultResponse> vailCodeResultResponses;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,49 @@
|
|||||||
|
package com.glxp.api.service.collect;
|
||||||
|
|
||||||
|
import com.glxp.api.common.res.BaseResponse;
|
||||||
|
import com.glxp.api.common.util.ResultVOUtils;
|
||||||
|
import com.glxp.api.constant.BusTypeConstant;
|
||||||
|
import com.glxp.api.req.collect.CollectOrderRequest;
|
||||||
|
import com.glxp.api.service.collect.down.*;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下载工厂
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
public class DownloadFactory {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private YPCF002Download ypcf002Download;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ThrOrderDownload thrOrderDownload;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 第三方单据类型
|
||||||
|
*
|
||||||
|
* @param collectOrderRequest
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) {
|
||||||
|
String busType = collectOrderRequest.getBusType();
|
||||||
|
if (busType == null) {
|
||||||
|
return ResultVOUtils.error("下载失败,未配置业务类型");
|
||||||
|
}
|
||||||
|
if (busType.equals(BusTypeConstant.YPCF002.getBusType())) {
|
||||||
|
return ypcf002Download.downloadOrder(collectOrderRequest);
|
||||||
|
} else if (busType.equals(BusTypeConstant.CGJH001.getBusType())) {
|
||||||
|
return thrOrderDownload.downloadOrder(collectOrderRequest);
|
||||||
|
} else if (busType.equals(BusTypeConstant.LYRK.getBusType())) {
|
||||||
|
return thrOrderDownload.downloadOrder(collectOrderRequest);
|
||||||
|
} else if (busType.equals(BusTypeConstant.GMRK.getBusType())) {
|
||||||
|
return thrOrderDownload.downloadOrder(collectOrderRequest);
|
||||||
|
} else if (busType.equals(BusTypeConstant.LYCK.getBusType())) {
|
||||||
|
return thrOrderDownload.downloadOrder(collectOrderRequest);
|
||||||
|
}
|
||||||
|
return ResultVOUtils.error("下载失败,未配置业务类型");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
package com.glxp.api.service.collect.down;
|
||||||
|
|
||||||
|
import com.glxp.api.common.res.BaseResponse;
|
||||||
|
import com.glxp.api.req.collect.CollectOrderRequest;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下载接口
|
||||||
|
*/
|
||||||
|
public interface IDownload {
|
||||||
|
BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,149 @@
|
|||||||
|
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.setBusType(collectOrderRequest.getBusType());
|
||||||
|
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("下载失败");
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,40 @@
|
|||||||
|
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 org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class YPCF002Download implements IDownload{
|
||||||
|
@Resource
|
||||||
|
private ErpBasicClient erpBasicClient;
|
||||||
|
@Resource
|
||||||
|
private IoCollectOrderService collectOrderService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) {
|
||||||
|
GetSickPrescribeRequest getSickPrescribeRequest = new GetSickPrescribeRequest();
|
||||||
|
getSickPrescribeRequest.setPage(1);
|
||||||
|
getSickPrescribeRequest.setLimit(100);
|
||||||
|
getSickPrescribeRequest.setCode(collectOrderRequest.getBillNo());
|
||||||
|
getSickPrescribeRequest.setThirdSys("thirdId");
|
||||||
|
getSickPrescribeRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
|
||||||
|
getSickPrescribeRequest.setFromType(collectOrderRequest.getFromType());
|
||||||
|
BaseResponse<PageSimpleResponse<IoCollectOrder>> baseResponse = erpBasicClient.getPrescribeV2(getSickPrescribeRequest);
|
||||||
|
if (baseResponse.getCode() == 20000) {
|
||||||
|
List<IoCollectOrder> list = baseResponse.getData().getList();
|
||||||
|
collectOrderService.importPrescribe(list,collectOrderRequest.getBusType());
|
||||||
|
return ResultVOUtils.success("下载成功");
|
||||||
|
}
|
||||||
|
return ResultVOUtils.error("下载失败");
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue