扫码上货问题,拉单优化

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

@ -65,16 +65,17 @@ public class DownloadFactory {
}
}
@Resource
private ErpBasicClient erpBasicClient;
@Resource
private ThrBusTypeOriginServiceImpl thrBusTypeOriginService;
public BaseResponse downloadErpOrder(CollectOrderRequest collectOrderRequest, String busType) {
int page = 1;
int limit = 100;
int maxPages = 1000; // 设置最大页数限制,防止死循环
StringBuilder errorMsgAll = new StringBuilder();
GetSickPrescribeRequest getSickPrescribeRequest = new GetSickPrescribeRequest();
getSickPrescribeRequest.setLimit(limit);
getSickPrescribeRequest.setCode(collectOrderRequest.getBillNo());
@ -85,9 +86,8 @@ public class DownloadFactory {
getSickPrescribeRequest.setEndTime(collectOrderRequest.getEndTime());
getSickPrescribeRequest.setKey(collectOrderRequest.getKeyWords());
getSickPrescribeRequest.setBusType(collectOrderRequest.getBusType());
BaseResponse resp;
while (true) {
List<IoCollectOrder> list;
while (page <= maxPages) {
try {
getSickPrescribeRequest.setPage(page);
BaseResponse<PageSimpleResponse<IoCollectOrder>> baseResponse = new BaseResponse<>();
@ -97,31 +97,45 @@ public class DownloadFactory {
} else {
baseResponse = erpBasicClient.getPrescribeV2(getSickPrescribeRequest);
}
if (baseResponse.getCode() == 20000) {
list = baseResponse.getData().getList();
if (list == null) {
return ResultVOUtils.error(500, "未查到此业务单据");
if (baseResponse.getCode() != 20000) {
return baseResponse;
}
resp = importThrOrder(list, collectOrderRequest);
if ((list.size() >= limit && !baseResponse.getData().getTotal().equals(-666)) || IntUtil.value(baseResponse.getData().getTotal()) == -555) {
page++;
} else {
List<IoCollectOrder> list = baseResponse.getData().getList();
if (list == null || list.isEmpty()) {
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) {
int page = 1;
@ -138,14 +152,15 @@ public class DownloadFactory {
BaseResponse resp;
while (true) {
filterThrOrderRequest.setPage(page);
BaseResponse<PageSimpleResponse<IoCollectOrder>> baseResponse = erpBasicClient.getThrOrders(filterThrOrderRequest);
BaseResponse<PageSimpleResponse<IoCollectOrder>> baseResponse = erpBasicClient
.getThrOrders(filterThrOrderRequest);
if (baseResponse.getCode() == 20000) {
List<IoCollectOrder> list = baseResponse.getData().getList();
if (list == null) {
return ResultVOUtils.error(500, "未查到此业务单据");
}
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++;
} else {
break;
@ -157,7 +172,6 @@ public class DownloadFactory {
return ResultVOUtils.success(resp.getMessage(), "下载成功");
}
@Resource
UdiRelevanceDao udiRelevanceDao;
@Resource
@ -165,7 +179,6 @@ public class DownloadFactory {
@Resource
private IoCollectOrderService collectOrderService;
/**
*
*
@ -214,7 +227,9 @@ public class DownloadFactory {
errorMsg.append(entity.getCpmctymc()).append("字典未对照").append(";");
}
} 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())) {
errorMsg.append(entity.getCpmctymc()).append("字典未对照").append(";");
}
@ -224,10 +239,15 @@ public class DownloadFactory {
bizList.add(collectOrderBiz);
} 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) {
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())) {
errorMsg.append(entity.getCpmctymc()).append("字典未对照").append(";");
} else {

@ -536,7 +536,7 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
*
* @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) {
String addr = collectOrderRequest.getBusType();
if (CollUtil.isNotEmpty(ioCollectOrderList)) {
@ -544,8 +544,6 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
//是否自动转成待处理单据
IoCollectSet collectSet = collectSetService.getSet();
List<IoCollectOrder> allotCollects = new ArrayList<>();
List<IoCollectOrderBiz> allotCollectBizs = new ArrayList<>();
for (IoCollectOrder collectOrder : ioCollectOrderList) {
IoCollectOrderOrigin ioCollectOrderOrigin = new IoCollectOrderOrigin();
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);
collectOrderBizService.saveBatch(bizList);
}
// saveBatch(allotCollects);
// allotCollects.add(collectOrder);
// allotCollectBizs.addAll(bizList);
}
}

Loading…
Cancel
Save