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