|
|
|
package com.glxp.api.service.collect;
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
import cn.hutool.core.util.IdUtil;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
import com.glxp.api.common.res.BaseResponse;
|
|
|
|
import com.glxp.api.common.util.ResultVOUtils;
|
|
|
|
import com.glxp.api.entity.basic.BasicSkPrescribeDiEntity;
|
|
|
|
import com.glxp.api.entity.basic.BasicSkPrescribeEntity;
|
|
|
|
import com.glxp.api.entity.basic.BasicSkPrescribeItemEntity;
|
|
|
|
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.res.basic.BasicSkPrescribeResponse;
|
|
|
|
import com.glxp.api.service.basic.BasicSkPrescirbeDetailService;
|
|
|
|
import com.glxp.api.service.basic.BasicSkPrescribeService;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 原始单据下载
|
|
|
|
*/
|
|
|
|
@Service
|
|
|
|
public class IoCollectOriginService {
|
|
|
|
@Resource
|
|
|
|
private ErpBasicClient erpBasicClient;
|
|
|
|
@Resource
|
|
|
|
BasicSkPrescribeService basicSkPrescribeService;
|
|
|
|
@Resource
|
|
|
|
BasicSkPrescirbeDetailService basicSkPrescirbeDetailService;
|
|
|
|
@Resource
|
|
|
|
IoCollectOrderService collectOrderService;
|
|
|
|
|
|
|
|
public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) {
|
|
|
|
|
|
|
|
//拉取药品处方
|
|
|
|
if (collectOrderRequest.getBusType().equals("YPCF002")) {
|
|
|
|
GetSickPrescribeRequest getSickPrescribeRequest = new GetSickPrescribeRequest();
|
|
|
|
getSickPrescribeRequest.setPage(1);
|
|
|
|
getSickPrescribeRequest.setLimit(100);
|
|
|
|
getSickPrescribeRequest.setCode(collectOrderRequest.getBillNo());
|
|
|
|
getSickPrescribeRequest.setThirdSys("thirdId");
|
|
|
|
BaseResponse<PageSimpleResponse<BasicSkPrescribeResponse>> baseResponse = erpBasicClient.getPrescribe(getSickPrescribeRequest);
|
|
|
|
|
|
|
|
if (baseResponse.getCode() == 20000) {
|
|
|
|
List<BasicSkPrescribeResponse> list = baseResponse.getData().getList();
|
|
|
|
List<BasicSkPrescribeEntity> basicSkPrescribeEntities = new ArrayList<>();
|
|
|
|
list.forEach(item -> {
|
|
|
|
BasicSkPrescribeEntity basicSkPrescribeEntity = new BasicSkPrescribeEntity();
|
|
|
|
BeanUtil.copyProperties(item, basicSkPrescribeEntity);
|
|
|
|
basicSkPrescribeEntity.setSickerCode(item.getSickCode());
|
|
|
|
basicSkPrescribeEntity.setUpdateTime(LocalDateTime.now());
|
|
|
|
List<BasicSkPrescribeItemEntity> skPrescribeItemEntities = item.getItemList();
|
|
|
|
if (CollUtil.isNotEmpty(skPrescribeItemEntities)) {
|
|
|
|
basicSkPrescirbeDetailService.remove(new QueryWrapper<BasicSkPrescribeItemEntity>().eq("prescribeCode", item.getCode()));
|
|
|
|
for (BasicSkPrescribeItemEntity skPrescribeItemEntity : skPrescribeItemEntities) {
|
|
|
|
skPrescribeItemEntity.setPrescribeCode(item.getCode());
|
|
|
|
skPrescribeItemEntity.setSickerCode(item.getSickCode());
|
|
|
|
skPrescribeItemEntity.setAdNum(basicSkPrescribeEntity.getAdNum());
|
|
|
|
skPrescribeItemEntity.setId(IdUtil.getSnowflakeNextId());
|
|
|
|
basicSkPrescirbeDetailService.save(skPrescribeItemEntity);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
basicSkPrescribeEntities.add(basicSkPrescribeEntity);
|
|
|
|
basicSkPrescribeService.saveOrUpdate(basicSkPrescribeEntity);
|
|
|
|
});
|
|
|
|
collectOrderService.importPrescribe(basicSkPrescribeEntities);
|
|
|
|
return ResultVOUtils.success("下载成功");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return ResultVOUtils.error("下载失败");
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|