fix: 修复原始单据

dev_no_inv
chenhc 10 months ago
parent 609e7b9e84
commit a7b3ffced2

@ -1,6 +1,7 @@
package com.glxp.api.controller.basic;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
@ -13,13 +14,16 @@ import com.glxp.api.controller.BaseController;
import com.glxp.api.entity.basic.BasicSkPrescribeEntity;
import com.glxp.api.entity.basic.BasicSkPrescribeItemEntity;
import com.glxp.api.entity.basic.BasicSkSickerEntity;
import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.req.basic.*;
import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.BasicSkPrescribeResponse;
import com.glxp.api.res.basic.BasicSkSickerResponse;
import com.glxp.api.service.BasicSkPrescribeItemService;
import com.glxp.api.service.basic.BasicSkPrescribeService;
import com.glxp.api.service.basic.BasicSkSickerService;
import com.glxp.api.service.collect.IoCollectOriginService;
import com.glxp.api.vo.basic.BasicSkPrescribeDetailVo;
import org.apache.poi.ss.formula.functions.Offset;
import org.springframework.validation.BindingResult;
@ -27,6 +31,7 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import com.glxp.api.service.collect.DownloadFactory;
import javax.annotation.Resource;
import java.util.List;
@ -45,6 +50,10 @@ public class BasicSkPrescribeController extends BaseController {
@Resource
BasicSkPrescribeItemService basicSkPrescribeItemService;
@Resource
DownloadFactory downloadFactory;
@Resource
IoCollectOriginService collectOriginService;
@GetMapping("/udiwms/basic/sk/prescribe/filter")
public BaseResponse filterSicker(BasicSkPrescribeRequest basicSkPrescribeRequest) {
@ -106,10 +115,28 @@ public class BasicSkPrescribeController extends BaseController {
*
* @return
*/
@GetMapping("/udiwms/basic/sk/prescribe/save")
@PostMapping("/udiwms/basic/sk/prescribe/save")
public BaseResponse sickerPrescribeSave(@RequestBody SickerPrescribeSaveRequest sickerPrescribeSaveRequest) {
List<BasicSkPrescribeEntity> list = sickerPrescribeSaveRequest.getList();
basicSkPrescribeService.saveOrUpdateBatch(list);
Integer stauts = sickerPrescribeSaveRequest.getStauts();
if (stauts == 1){
List<IoCollectOrder> list = sickerPrescribeSaveRequest.getList();
if (CollUtil.isNotEmpty(list)){
CollectOrderRequest collectOrderRequest = new CollectOrderRequest();
for (IoCollectOrder ioCollectOrder : list) {
collectOrderRequest.setBillNo(ioCollectOrder.getBillNo());
collectOrderRequest.setBusType(ioCollectOrder.getBusType());
return downloadFactory.downloadOrder(collectOrderRequest);
}
}
}else if (stauts == 2){
CollectOrderRequest collectOrderRequest = new CollectOrderRequest();
collectOrderRequest.setStartTime(sickerPrescribeSaveRequest.getStartTime());
collectOrderRequest.setEndTime(sickerPrescribeSaveRequest.getEndTime());
collectOrderRequest.setBusType(sickerPrescribeSaveRequest.getBusType());
collectOrderRequest.setBillNo(sickerPrescribeSaveRequest.getBillNo());
return collectOriginService.downloadOrderV2(collectOrderRequest);
}
return ResultVOUtils.success();
}

@ -53,6 +53,8 @@ public class IoCollectOrderController extends BaseController {
@Resource
IoCollectOrderOriginService collectOrderOriginService;
@Resource
IoCollectOrderBizOriginService collectOrderBizOriginService;
@Resource
IoCollectOrderBizService collectOrderBizService;
@ -238,6 +240,17 @@ public class IoCollectOrderController extends BaseController {
return ResultVOUtils.success();
}
@PostMapping("/udiwms/basic/collect/order/deleteOriginOrder")
public BaseResponse deleteOrderOrigin(@RequestBody DeleteRequest deleteRequest) {
String billNo = deleteRequest.getBillNo();
if (StrUtil.isBlank(billNo)) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
collectOrderOriginService.remove(new LambdaQueryWrapper<IoCollectOrderOrigin>().eq(IoCollectOrderOrigin::getBillNo, billNo));
collectOrderBizOriginService.remove(new LambdaQueryWrapper<IoCollectOrderBizOrigin>().eq(IoCollectOrderBizOrigin::getOrderIdFk, billNo));
return ResultVOUtils.success();
}
/**
*
*

@ -9,10 +9,12 @@ import com.glxp.api.controller.BaseController;
import com.glxp.api.dao.basic.SysWorkplaceDocumentDao;
import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.entity.collect.IoCollectOrderOrigin;
import com.glxp.api.http.ErpBasicClient;
import com.glxp.api.req.basic.BasicCollectUserRequest;
import com.glxp.api.req.basic.WorkBindBusTypeRequest;
import com.glxp.api.req.collect.CollectOrderBizRequest;
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.basic.SysWorkplaceDocumentResponse;
import com.glxp.api.res.basic.UserWorkResponse;
@ -24,6 +26,7 @@ import com.glxp.api.service.collect.DownloadFactory;
import com.glxp.api.service.collect.IoCollectOrderBizOriginService;
import com.glxp.api.service.collect.IoCollectOrderOriginService;
import com.glxp.api.service.collect.IoCollectOriginService;
import com.glxp.api.util.IntUtil;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -55,13 +58,30 @@ public class IoCollectOriginController extends BaseController {
SysWorkplaceDocumentDao sysWorkplaceDocumentDao;
@Resource
SysWorkplaceDocumentService sysWorkplaceDocumentService;
@Resource
private ErpBasicClient erpBasicClient;
@PostMapping("/udiwms/basic/collect/origin/order/download")
public BaseResponse downloadOrder(@RequestBody CollectOrderRequest collectOrderRequest) {
return collectOriginService.downloadOrderV2(collectOrderRequest);
}
@PostMapping("/udiwms/basic/collect/origin/order/getThrOrderPage")
public BaseResponse getThrOrders(@RequestBody CollectOrderRequest collectOrderRequest) {
FilterThrOrderRequest filterThrOrderRequest = new FilterThrOrderRequest();
filterThrOrderRequest.setLimit(collectOrderRequest.getLimit());
filterThrOrderRequest.setBillNo(collectOrderRequest.getBillNo());
filterThrOrderRequest.setThirdSys("thirdId");
filterThrOrderRequest.setBusType(collectOrderRequest.getBusType());
filterThrOrderRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
filterThrOrderRequest.setFromType(collectOrderRequest.getFromType());
filterThrOrderRequest.setStartTime(collectOrderRequest.getStartTime());
filterThrOrderRequest.setEndTime(collectOrderRequest.getEndTime());
filterThrOrderRequest.setPage(collectOrderRequest.getPage());
BaseResponse<PageSimpleResponse<IoCollectOrder>> baseResponse = erpBasicClient.getThrOrders(filterThrOrderRequest);
return baseResponse;
}
/**
*
@ -71,8 +91,18 @@ public class IoCollectOriginController extends BaseController {
*/
@PostMapping("/udiwms/basic/collect/origin/order/errorHandle")
public BaseResponse errorHandle(@RequestBody CollectOrderRequest collectOrderRequest) {
collectOriginService.errorHandle(collectOrderRequest);
return ResultVOUtils.success();
return collectOriginService.errorHandle(collectOrderRequest);
}
/**
* -
*
* @param collectOrderRequest
* @return
*/
@PostMapping("/udiwms/basic/collect/origin/order/errorHandleSubmit")
public BaseResponse errorHandleSubmit(@RequestBody CollectOrderRequest collectOrderRequest) {
return collectOriginService.errorHandleSubmit(collectOrderRequest);
}
@GetMapping("/udiwms/basic/collect/origin/order/filter")

@ -1,6 +1,7 @@
package com.glxp.api.req.basic;
import com.glxp.api.entity.basic.BasicSkPrescribeEntity;
import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.res.basic.BasicSkSickerResponse;
import lombok.Data;
@ -10,6 +11,15 @@ import java.util.List;
@Data
public class SickerPrescribeSaveRequest {
private Integer stauts;
private String billNo;
private String busType;
private String endTime;
private String startTime;
@NotNull(message = "处方列表不可以为空!")
private List<BasicSkPrescribeEntity> list;
private List<IoCollectOrder> list;
}

@ -521,6 +521,10 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
List<IoCollectOrderBiz> bizList = collectOrder.getBizList();
if (CollUtil.isNotEmpty(bizList)) {
//先清空 原来的biz
String billNo = collectOrder.getBillNo();
collectOrderBizOriginService.remove(new LambdaUpdateWrapper<IoCollectOrderBizOrigin>().eq(IoCollectOrderBizOrigin::getOrderIdFk,billNo));
for (IoCollectOrderBiz collectOrderBiz : bizList) {
if (collectOrderBiz.getRelId() != null) {
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByRelId(collectOrderBiz.getRelId() + "");

@ -7,14 +7,17 @@ import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.dao.basic.BasicProductsDao;
import com.glxp.api.dao.basic.SysWorkplaceDocumentDao;
import com.glxp.api.entity.basic.BasicSkPrescribeEntity;
import com.glxp.api.entity.basic.BasicSkPrescribeItemEntity;
import com.glxp.api.entity.basic.SysWorkplaceDocumentEntity;
import com.glxp.api.dao.basic.UdiRelevanceDao;
import com.glxp.api.entity.basic.*;
import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.entity.collect.IoCollectOrderBiz;
import com.glxp.api.entity.collect.IoCollectOrderBizOrigin;
import com.glxp.api.entity.collect.IoCollectOrderOrigin;
import com.glxp.api.exception.JsonException;
import com.glxp.api.http.ErpBasicClient;
import com.glxp.api.req.basic.GetSickPrescribeRequest;
@ -25,12 +28,14 @@ import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.BasicSkPrescribeResponse;
import com.glxp.api.res.basic.SysWorkplaceDocumentResponse;
import com.glxp.api.service.basic.*;
import com.glxp.api.util.BeanCopyUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@ -57,6 +62,14 @@ public class IoCollectOriginService {
private SysWorkplaceDocumentDao sysWorkplaceDocumentDao;
@Resource
private SysWorkplaceDocumentService sysWorkplaceDocumentService;
@Resource
private IoCollectOrderOriginService collectOrderOriginService;
@Resource
private IoCollectOrderBizOriginService collectOrderBizOriginService;
@Resource
private UdiRelevanceDao udiRelevanceDao;
@Resource
private BasicProductsDao basicProductsDao;
public BaseResponse downloadOrderV2(CollectOrderRequest collectOrderRequest) {
//条件
@ -86,7 +99,7 @@ public class IoCollectOriginService {
* @param collectOrderRequest
*/
@Transactional(rollbackFor = Exception.class)
public void errorHandle(CollectOrderRequest collectOrderRequest) {
public BaseResponse errorHandle(CollectOrderRequest collectOrderRequest) {
if (StrUtil.isBlank(collectOrderRequest.getBillNo())) {
throw new JsonException(500, "单据号不能为空");
}
@ -103,7 +116,78 @@ public class IoCollectOriginService {
.eq(IoCollectOrder::getBillNo, collectOrderRequest.getBillNo())
.eq(IoCollectOrder::getTagStatus, 4));
//重新拉取
this.downloadOrderV2(collectOrderRequest);
return this.downloadOrderV2(collectOrderRequest);
}
}
@Transactional(rollbackFor = Exception.class)
public BaseResponse errorHandleSubmit(CollectOrderRequest collectOrderRequest) {
if (StrUtil.isBlank(collectOrderRequest.getBillNo())) {
throw new JsonException(500, "单据号不能为空");
}
if (collectOrderRequest.getTagStatus() != 4) {
throw new JsonException(500, "非异常单据,无需处理");
}
if (StrUtil.isBlank(collectOrderRequest.getBusType())) {
throw new JsonException(500, "单据类型不能为空");
}
String billNo = collectOrderRequest.getBillNo();
List<IoCollectOrderOrigin> thrOrderEntities = collectOrderOriginService.list(new LambdaUpdateWrapper<IoCollectOrderOrigin>().eq(IoCollectOrderOrigin::getBillNo, billNo));
List<IoCollectOrder> ioCollectOrderList = new ArrayList<>();
if (CollUtil.isNotEmpty(thrOrderEntities)) {
for (IoCollectOrderOrigin thrOrder : thrOrderEntities) {
IoCollectOrder ioCollectOrder = new IoCollectOrder();
BeanUtil.copyProperties(thrOrder, ioCollectOrder);
StringBuilder errorMsg = new StringBuilder();
List<IoCollectOrderBiz> bizList = new ArrayList<>();
List<IoCollectOrderBizOrigin> list = collectOrderBizOriginService.list(new LambdaUpdateWrapper<IoCollectOrderBizOrigin>().eq(IoCollectOrderBizOrigin::getOrderIdFk, thrOrder.getBillNo()));
for (IoCollectOrderBizOrigin entity : list) {
IoCollectOrderBiz collectOrderBiz = new IoCollectOrderBiz();
BeanUtil.copyProperties(entity, collectOrderBiz);
UdiRelevanceEntity basicUdirelEntity = udiRelevanceDao.selectOne(new LambdaQueryWrapper<UdiRelevanceEntity>().eq(UdiRelevanceEntity::getMainId, entity.getThrCode()));
if (basicUdirelEntity != null) {
collectOrderBiz.setRelId(basicUdirelEntity.getId());
BasicProductsEntity basicProductsEntity = basicProductsDao.selectOne(new LambdaQueryWrapper<BasicProductsEntity>().eq(BasicProductsEntity::getUuid, basicUdirelEntity.getUuid()).last("limit 1"));
if (StrUtil.isEmpty(basicProductsEntity.getNameCode())) {
errorMsg.append(entity.getCpmctymc()).append("字典未对照").append(";");
}
} else {
errorMsg.append(entity.getCpmctymc()).append("字典未对照").append(";");
}
collectOrderBiz.setTagStatus(1);
collectOrderBiz.setUnTagCount(0);
bizList.add(collectOrderBiz);
}
if (StrUtil.isNotBlank(errorMsg)) {
thrOrder.setTagStatus(4);
thrOrder.setErrorMsg(errorMsg.toString());
collectOrderOriginService.updateById(thrOrder);
List<IoCollectOrderBizOrigin> ioCollectOrderBizOrigins = BeanCopyUtils.copyList(bizList, IoCollectOrderBizOrigin.class);
collectOrderBizOriginService.updateBatchById(ioCollectOrderBizOrigins);
}else {
thrOrder.setTagStatus(0);
collectOrderOriginService.updateById(thrOrder);
List<IoCollectOrderBizOrigin> ioCollectOrderBizOrigins = BeanCopyUtils.copyList(bizList, IoCollectOrderBizOrigin.class);
collectOrderBizOriginService.updateBatchById(ioCollectOrderBizOrigins);
collectOrderBizService.saveBatch(bizList);
ioCollectOrder.setFromType("HIS系统");
ioCollectOrder.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
ioCollectOrder.setCreateTime(new Date());
ioCollectOrder.setCreateUser(collectOrderRequest.getCreateUser());
ioCollectOrder.setBackupOrderRemark1(null);
ioCollectOrder.setUpdateTime(new Date());
ioCollectOrder.setSplitStatus(0);
ioCollectOrder.setTagStatus(0);
collectOrderService.save(ioCollectOrder);
}
}
}
return ResultVOUtils.success("提交成功");
}
}
Loading…
Cancel
Save