扫码上货问题,拉单优化

dev_2.5_inv
yewj 6 months ago
parent 816a071c79
commit 423debcf86

@ -206,18 +206,18 @@ public class IoCodeTempController extends BaseController {
return ResultVOUtils.error(500, "该单据已处理完成,请勿重复处理!"); return ResultVOUtils.error(500, "该单据已处理完成,请勿重复处理!");
} }
//取药确认 // //取药确认
if (addEnterCodeRequest.getSelectType() != null) { // if (addEnterCodeRequest.getSelectType() != null) {
List<SysOrderLed> orderLeds = sysOrderLedService.list(new LambdaQueryWrapper<SysOrderLed>().isNull(SysOrderLed::getOrderId) // List<SysOrderLed> orderLeds = sysOrderLedService.list(new LambdaQueryWrapper<SysOrderLed>().isNull(SysOrderLed::getOrderId)
.or() // .or()
.eq(SysOrderLed::getOrderId, "") // .eq(SysOrderLed::getOrderId, "")
.orderByAsc(SysOrderLed::getLedNum)); // .orderByAsc(SysOrderLed::getLedNum));
//如果为null 当前灯组已满 //如果为null 当前灯组已满
//todo 暂时没有灯组不判断了 //todo 暂时没有灯组不判断了
// if (orderLeds == null || orderLeds.size() == 0) { // if (orderLeds == null || orderLeds.size() == 0) {
// return ResultVOUtils.error(500, "灯组已满!"); // return ResultVOUtils.error(500, "灯组已满!");
// } // }
} // }
IoCollectOrderResponse collectOrder = collectOrderService.unionSearch(null, addEnterCodeRequest.getBusType(), code); IoCollectOrderResponse collectOrder = collectOrderService.unionSearch(null, addEnterCodeRequest.getBusType(), code);
@ -1772,7 +1772,9 @@ public class IoCodeTempController extends BaseController {
} }
} }
addCodeResult.setOrderId(orderId); addCodeResult.setOrderId(orderId);
transInoutService.genOrderDetailCode(orderEntity, genDetaiEntity); List<IoCodeTempEntity> genDetaiEntitys = new ArrayList<>();
genDetaiEntitys.add(genDetaiEntity);
addCoodeService.genOrderDetailCodeBatch(orderEntity, genDetaiEntitys);
return ResultVOUtils.success(addCodeResult); return ResultVOUtils.success(addCodeResult);
} }

@ -65,16 +65,17 @@ public class DownloadFactory {
} }
} }
@Resource @Resource
private ErpBasicClient erpBasicClient; private ErpBasicClient erpBasicClient;
@Resource @Resource
private ThrBusTypeOriginServiceImpl thrBusTypeOriginService; private ThrBusTypeOriginServiceImpl thrBusTypeOriginService;
public BaseResponse downloadErpOrder(CollectOrderRequest collectOrderRequest, String busType) { public BaseResponse downloadErpOrder(CollectOrderRequest collectOrderRequest, String busType) {
int page = 1; int page = 1;
int limit = 100; int limit = 100;
int maxPages = 1000; // 设置最大页数限制,防止死循环
StringBuilder errorMsgAll = new StringBuilder();
GetSickPrescribeRequest getSickPrescribeRequest = new GetSickPrescribeRequest(); GetSickPrescribeRequest getSickPrescribeRequest = new GetSickPrescribeRequest();
getSickPrescribeRequest.setLimit(limit); getSickPrescribeRequest.setLimit(limit);
getSickPrescribeRequest.setCode(collectOrderRequest.getBillNo()); getSickPrescribeRequest.setCode(collectOrderRequest.getBillNo());
@ -85,9 +86,8 @@ public class DownloadFactory {
getSickPrescribeRequest.setEndTime(collectOrderRequest.getEndTime()); getSickPrescribeRequest.setEndTime(collectOrderRequest.getEndTime());
getSickPrescribeRequest.setKey(collectOrderRequest.getKeyWords()); getSickPrescribeRequest.setKey(collectOrderRequest.getKeyWords());
getSickPrescribeRequest.setBusType(collectOrderRequest.getBusType()); getSickPrescribeRequest.setBusType(collectOrderRequest.getBusType());
BaseResponse resp;
while (true) { while (page <= maxPages) {
List<IoCollectOrder> list;
try { try {
getSickPrescribeRequest.setPage(page); getSickPrescribeRequest.setPage(page);
BaseResponse<PageSimpleResponse<IoCollectOrder>> baseResponse = new BaseResponse<>(); BaseResponse<PageSimpleResponse<IoCollectOrder>> baseResponse = new BaseResponse<>();
@ -97,31 +97,45 @@ public class DownloadFactory {
} else { } else {
baseResponse = erpBasicClient.getPrescribeV2(getSickPrescribeRequest); baseResponse = erpBasicClient.getPrescribeV2(getSickPrescribeRequest);
} }
if (baseResponse.getCode() == 20000) {
list = baseResponse.getData().getList(); if (baseResponse.getCode() != 20000) {
if (list == null) { return baseResponse;
return ResultVOUtils.error(500, "未查到此业务单据");
} }
resp = importThrOrder(list, collectOrderRequest);
if ((list.size() >= limit && !baseResponse.getData().getTotal().equals(-666)) || IntUtil.value(baseResponse.getData().getTotal()) == -555) { List<IoCollectOrder> list = baseResponse.getData().getList();
page++; if (list == null || list.isEmpty()) {
} else {
break; break;
} }
} else {
return baseResponse; BaseResponse resp = importThrOrder(list, collectOrderRequest);
if (resp != null && resp.getMessage() != null) {
errorMsgAll.append(resp.getMessage());
} }
} catch (Exception e) {
log.error(ExceptionUtils.getStackTrace(e));
return ResultVOUtils.error(500, e.getMessage());
// 判断是否还有下一页
Integer total = baseResponse.getData().getTotal();
if (total == null || total <= 0 || total.equals(-666) || total.equals(-555)) {
break;
} }
// 如果当前页数据量小于每页限制,说明已经是最后一页
if (list.size() < limit) {
break;
} }
page++;
} catch (Exception e) {
log.error("下载订单异常: {}", ExceptionUtils.getStackTrace(e));
return ResultVOUtils.error(500, "下载订单异常: " + e.getMessage());
}
}
return ResultVOUtils.success(resp.getMessage(),"下载成功"); if (page > maxPages) {
log.warn("达到最大页数限制: {}", maxPages);
} }
return ResultVOUtils.success(errorMsgAll.toString(), "下载成功");
}
public BaseResponse downloadErpThrOrder(CollectOrderRequest collectOrderRequest) { public BaseResponse downloadErpThrOrder(CollectOrderRequest collectOrderRequest) {
int page = 1; int page = 1;
@ -138,14 +152,15 @@ public class DownloadFactory {
BaseResponse resp; BaseResponse resp;
while (true) { while (true) {
filterThrOrderRequest.setPage(page); filterThrOrderRequest.setPage(page);
BaseResponse<PageSimpleResponse<IoCollectOrder>> baseResponse = erpBasicClient.getThrOrders(filterThrOrderRequest); BaseResponse<PageSimpleResponse<IoCollectOrder>> baseResponse = erpBasicClient
.getThrOrders(filterThrOrderRequest);
if (baseResponse.getCode() == 20000) { if (baseResponse.getCode() == 20000) {
List<IoCollectOrder> list = baseResponse.getData().getList(); List<IoCollectOrder> list = baseResponse.getData().getList();
if (list == null) { if (list == null) {
return ResultVOUtils.error(500, "未查到此业务单据"); return ResultVOUtils.error(500, "未查到此业务单据");
} }
resp = importThrOrder(list, collectOrderRequest); resp = importThrOrder(list, collectOrderRequest);
if ((list.size() >= limit && !baseResponse.getData().getTotal().equals(-666)) || IntUtil.value(baseResponse.getData().getTotal()) == -555) { if ((list.size() >= limit && !baseResponse.getData().getTotal().equals(-666))) {
page++; page++;
} else { } else {
break; break;
@ -157,7 +172,6 @@ public class DownloadFactory {
return ResultVOUtils.success(resp.getMessage(), "下载成功"); return ResultVOUtils.success(resp.getMessage(), "下载成功");
} }
@Resource @Resource
UdiRelevanceDao udiRelevanceDao; UdiRelevanceDao udiRelevanceDao;
@Resource @Resource
@ -165,7 +179,6 @@ public class DownloadFactory {
@Resource @Resource
private IoCollectOrderService collectOrderService; private IoCollectOrderService collectOrderService;
/** /**
* *
* *
@ -214,7 +227,9 @@ public class DownloadFactory {
errorMsg.append(entity.getCpmctymc()).append("字典未对照").append(";"); errorMsg.append(entity.getCpmctymc()).append("字典未对照").append(";");
} }
} else { } else {
BasicProductsEntity basicProductsEntity = basicProductsDao.selectOne(new LambdaQueryWrapper<BasicProductsEntity>().eq(BasicProductsEntity::getYbbm, entity.getYbbm()).last("limit 1")); BasicProductsEntity basicProductsEntity = basicProductsDao
.selectOne(new LambdaQueryWrapper<BasicProductsEntity>()
.eq(BasicProductsEntity::getYbbm, entity.getYbbm()).last("limit 1"));
if (basicProductsEntity == null || StrUtil.isEmpty(basicProductsEntity.getNameCode())) { if (basicProductsEntity == null || StrUtil.isEmpty(basicProductsEntity.getNameCode())) {
errorMsg.append(entity.getCpmctymc()).append("字典未对照").append(";"); errorMsg.append(entity.getCpmctymc()).append("字典未对照").append(";");
} }
@ -224,10 +239,15 @@ public class DownloadFactory {
bizList.add(collectOrderBiz); bizList.add(collectOrderBiz);
} else { } else {
UdiRelevanceEntity basicUdirelEntity = udiRelevanceDao.selectOne(new LambdaQueryWrapper<UdiRelevanceEntity>().eq(UdiRelevanceEntity::getMainId, entity.getThrCode()).last("limit 1")); UdiRelevanceEntity basicUdirelEntity = udiRelevanceDao
.selectOne(new LambdaQueryWrapper<UdiRelevanceEntity>()
.eq(UdiRelevanceEntity::getMainId, entity.getThrCode()).last("limit 1"));
if (basicUdirelEntity != null) { if (basicUdirelEntity != null) {
collectOrderBiz.setRelId(basicUdirelEntity.getId()); collectOrderBiz.setRelId(basicUdirelEntity.getId());
BasicProductsEntity basicProductsEntity = basicProductsDao.selectOne(new LambdaQueryWrapper<BasicProductsEntity>().eq(BasicProductsEntity::getUuid, basicUdirelEntity.getUuid()).eq(BasicProductsEntity::getPackLevel, "1").last("limit 1")); BasicProductsEntity basicProductsEntity = basicProductsDao
.selectOne(new LambdaQueryWrapper<BasicProductsEntity>()
.eq(BasicProductsEntity::getUuid, basicUdirelEntity.getUuid())
.eq(BasicProductsEntity::getPackLevel, "1").last("limit 1"));
if (basicProductsEntity == null || StrUtil.isEmpty(basicProductsEntity.getNameCode())) { if (basicProductsEntity == null || StrUtil.isEmpty(basicProductsEntity.getNameCode())) {
errorMsg.append(entity.getCpmctymc()).append("字典未对照").append(";"); errorMsg.append(entity.getCpmctymc()).append("字典未对照").append(";");
} else { } else {

@ -536,7 +536,7 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
* *
* @param ioCollectOrderList * @param ioCollectOrderList
*/ */
@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED) // @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
public void importPrescribe(List<IoCollectOrder> ioCollectOrderList, CollectOrderRequest collectOrderRequest) { public void importPrescribe(List<IoCollectOrder> ioCollectOrderList, CollectOrderRequest collectOrderRequest) {
String addr = collectOrderRequest.getBusType(); String addr = collectOrderRequest.getBusType();
if (CollUtil.isNotEmpty(ioCollectOrderList)) { if (CollUtil.isNotEmpty(ioCollectOrderList)) {
@ -544,8 +544,6 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
//是否自动转成待处理单据 //是否自动转成待处理单据
IoCollectSet collectSet = collectSetService.getSet(); IoCollectSet collectSet = collectSetService.getSet();
List<IoCollectOrder> allotCollects = new ArrayList<>();
List<IoCollectOrderBiz> allotCollectBizs = new ArrayList<>();
for (IoCollectOrder collectOrder : ioCollectOrderList) { for (IoCollectOrder collectOrder : ioCollectOrderList) {
IoCollectOrderOrigin ioCollectOrderOrigin = new IoCollectOrderOrigin(); IoCollectOrderOrigin ioCollectOrderOrigin = new IoCollectOrderOrigin();
if (collectOrderMapper.exists(new LambdaQueryWrapper<IoCollectOrder>().eq(IoCollectOrder::getBillNo, collectOrder.getBillNo()))) { if (collectOrderMapper.exists(new LambdaQueryWrapper<IoCollectOrder>().eq(IoCollectOrder::getBillNo, collectOrder.getBillNo()))) {
@ -590,9 +588,6 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
collectOrderMapper.insert(collectOrder); collectOrderMapper.insert(collectOrder);
collectOrderBizService.saveBatch(bizList); collectOrderBizService.saveBatch(bizList);
} }
// saveBatch(allotCollects);
// allotCollects.add(collectOrder);
// allotCollectBizs.addAll(bizList);
} }
} }

Loading…
Cancel
Save