单据异常处理

workplace
zane 10 months ago
parent 8e4ea95e41
commit 7ff581b4c1

@ -1,6 +1,8 @@
package com.glxp.api.controller.collect; package com.glxp.api.controller.collect;
import cn.hutool.core.util.StrUtil;
import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.req.collect.CollectOrderRequest; import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.service.collect.IoCollectOriginService; import com.glxp.api.service.collect.IoCollectOriginService;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
@ -24,4 +26,17 @@ public class IoCollectOriginController {
public BaseResponse downloadOrder(@RequestBody CollectOrderRequest collectOrderRequest) { public BaseResponse downloadOrder(@RequestBody CollectOrderRequest collectOrderRequest) {
return collectOriginService.downloadOrderV2(collectOrderRequest); return collectOriginService.downloadOrderV2(collectOrderRequest);
} }
/**
*
* @param collectOrderRequest
* @return
*/
@PostMapping("/udiwms/basic/collect/origin/order/errorHandle")
public BaseResponse errorHandle(@RequestBody CollectOrderRequest collectOrderRequest) {
collectOriginService.errorHandle(collectOrderRequest);
return ResultVOUtils.success();
}
} }

@ -23,4 +23,9 @@ public class GetSickPrescribeRequest extends ListPageRequest {
* *
*/ */
private Long workPlaceCode; private Long workPlaceCode;
/**
*
*/
private String fromType;
} }

@ -164,6 +164,11 @@ public class IoCollectOrderResponse {
*/ */
private String uploadError; private String uploadError;
/**
*
*/
private String errorMsg;
public String getFromName() { public String getFromName() {
if (StrUtil.isNotEmpty(fromCorpName)) if (StrUtil.isNotEmpty(fromCorpName))

@ -450,6 +450,7 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
* @param ioCollectOrderList * @param ioCollectOrderList
* @param addr * @param addr
*/ */
@Transactional(rollbackFor = Exception.class)
public void importPrescribe(List<IoCollectOrder> ioCollectOrderList,String addr) { public void importPrescribe(List<IoCollectOrder> ioCollectOrderList,String addr) {
//下载处方 //下载处方
if (CollUtil.isNotEmpty(ioCollectOrderList)){ if (CollUtil.isNotEmpty(ioCollectOrderList)){
@ -500,6 +501,7 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
List<IoCollectOrderBiz> bizList = collectOrder.getBizList(); List<IoCollectOrderBiz> bizList = collectOrder.getBizList();
if (CollUtil.isNotEmpty(bizList)){ if (CollUtil.isNotEmpty(bizList)){
for(IoCollectOrderBiz collectOrderBiz : bizList){ for(IoCollectOrderBiz collectOrderBiz : bizList){
if(collectOrderBiz.getRelId() != null){
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByRelId(collectOrderBiz.getRelId() + ""); UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByRelId(collectOrderBiz.getRelId() + "");
if (udiRelevanceResponse != null) { if (udiRelevanceResponse != null) {
collectOrderBiz.setYbbm(udiRelevanceResponse.getYbbm()); collectOrderBiz.setYbbm(udiRelevanceResponse.getYbbm());
@ -511,6 +513,7 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
} }
} }
} }
}
collectOrderBizService.saveBatch(bizList); collectOrderBizService.saveBatch(bizList);
} }
if (IntUtil.value(sysWorkplaceDocumentEntity.getAutoTag()) == 1 && IntUtil.value(collectOrder.getTagStatus()) == 1) { if (IntUtil.value(sysWorkplaceDocumentEntity.getAutoTag()) == 1 && IntUtil.value(collectOrder.getTagStatus()) == 1) {

@ -2,7 +2,9 @@ package com.glxp.api.service.collect;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.IdUtil; 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.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.res.BaseResponse;
@ -10,6 +12,8 @@ import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.entity.basic.BasicSkPrescribeEntity; import com.glxp.api.entity.basic.BasicSkPrescribeEntity;
import com.glxp.api.entity.basic.BasicSkPrescribeItemEntity; import com.glxp.api.entity.basic.BasicSkPrescribeItemEntity;
import com.glxp.api.entity.collect.IoCollectOrder; import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.entity.collect.IoCollectOrderBiz;
import com.glxp.api.exception.JsonException;
import com.glxp.api.http.ErpBasicClient; import com.glxp.api.http.ErpBasicClient;
import com.glxp.api.req.basic.GetSickPrescribeRequest; import com.glxp.api.req.basic.GetSickPrescribeRequest;
import com.glxp.api.req.collect.CollectOrderRequest; import com.glxp.api.req.collect.CollectOrderRequest;
@ -18,6 +22,7 @@ import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.BasicSkPrescribeResponse; import com.glxp.api.res.basic.BasicSkPrescribeResponse;
import com.glxp.api.service.basic.*; import com.glxp.api.service.basic.*;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -40,6 +45,8 @@ public class IoCollectOriginService {
@Resource @Resource
IoCollectOrderService collectOrderService; IoCollectOrderService collectOrderService;
@Resource
IoCollectOrderBizService collectOrderBizService;
public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) { public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) {
@ -91,6 +98,7 @@ public class IoCollectOriginService {
getSickPrescribeRequest.setCode(collectOrderRequest.getBillNo()); getSickPrescribeRequest.setCode(collectOrderRequest.getBillNo());
getSickPrescribeRequest.setThirdSys("thirdId"); getSickPrescribeRequest.setThirdSys("thirdId");
getSickPrescribeRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode()); getSickPrescribeRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
getSickPrescribeRequest.setFromType(collectOrderRequest.getFromType());
BaseResponse<PageSimpleResponse<IoCollectOrder>> baseResponse = erpBasicClient.getPrescribeV2(getSickPrescribeRequest); BaseResponse<PageSimpleResponse<IoCollectOrder>> baseResponse = erpBasicClient.getPrescribeV2(getSickPrescribeRequest);
if (baseResponse.getCode() == 20000) { if (baseResponse.getCode() == 20000) {
List<IoCollectOrder> list = baseResponse.getData().getList(); List<IoCollectOrder> list = baseResponse.getData().getList();
@ -101,4 +109,34 @@ public class IoCollectOriginService {
return ResultVOUtils.error("下载失败"); return ResultVOUtils.error("下载失败");
} }
/**
*
* @param collectOrderRequest
*/
@Transactional(rollbackFor = Exception.class)
public void errorHandle(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, "单据类型不能为空");
}
if(collectOrderRequest.getWorkPlaceCode() == null){
throw new JsonException(500, "工位号不能为空");
}
//删除异常单据
collectOrderBizService.remove(new LambdaQueryWrapper<IoCollectOrderBiz>()
.eq(IoCollectOrderBiz::getOrderIdFk,collectOrderRequest.getBillNo()));
collectOrderService.remove(new LambdaQueryWrapper<IoCollectOrder>()
.eq(IoCollectOrder::getBillNo,collectOrderRequest.getBillNo())
.eq(IoCollectOrder::getTagStatus,4));
//重新拉取
this.downloadOrderV2(collectOrderRequest);
}
} }

@ -30,6 +30,7 @@
ico.orderTime, ico.orderTime,
ico.uploadStatus, ico.uploadStatus,
ico.uploadError, ico.uploadError,
ico.errorMsg,
row_number() over ( order by case when ico.orderTime is null then ico.createTime else ico.orderTime end desc ) as orderSequence row_number() over ( order by case when ico.orderTime is null then ico.createTime else ico.orderTime end desc ) as orderSequence
FROM io_collect_order ico FROM io_collect_order ico
left join sys_workplace_document on ico.busType = sys_workplace_document.documentTypeCode left join sys_workplace_document on ico.busType = sys_workplace_document.documentTypeCode

Loading…
Cancel
Save