|
|
@@ -105,6 +105,7 @@ public class CenterOrderPlanServiceImpl extends ServiceImpl<CenterOrderPlanMappe
|
|
|
.eq(StringUtils.hasText(centerOrderPlanVo.getStatus()), CenterOrderPlan::getStatus, centerOrderPlanVo.getStatus())
|
|
|
.like(StringUtils.hasText(centerOrderPlanVo.getStorageName()), CenterOrderPlan::getStorageName, centerOrderPlanVo.getStorageName())
|
|
|
.like(StringUtils.hasText(centerOrderPlanVo.getCustomerName()), CenterOrderPlan::getCustomerName, centerOrderPlanVo.getCustomerName())
|
|
|
+ .like(StringUtils.hasText(centerOrderPlanVo.getShortcutJoin()), CenterOrderPlan::getShortcutJoin, centerOrderPlanVo.getShortcutJoin())
|
|
|
.like(StringUtils.hasText(centerOrderPlanVo.getOrdNo()), CenterOrderPlan::getOrdNo, centerOrderPlanVo.getOrdNo());
|
|
|
if (!CollectionUtils.isEmpty(centerOrderPlanVo.getBusinesDateList())) {
|
|
|
// 业务日期
|
|
|
@@ -410,8 +411,9 @@ public class CenterOrderPlanServiceImpl extends ServiceImpl<CenterOrderPlanMappe
|
|
|
return R.fail("未找到商品数据,请核实后重试");
|
|
|
}
|
|
|
StringBuilder text = new StringBuilder();
|
|
|
- int itemNum = 1;
|
|
|
+ int itemNum = 0;
|
|
|
for (ShipItemImportXSCodeExcel excelItem : excelList) {
|
|
|
+ itemNum++;
|
|
|
boolean add = true;
|
|
|
if (!StringUtils.hasText(excelItem.getCode())) {
|
|
|
text.append("第").append(itemNum).append("行,编码为空").append("\n");
|
|
|
@@ -456,6 +458,63 @@ public class CenterOrderPlanServiceImpl extends ServiceImpl<CenterOrderPlanMappe
|
|
|
return baseMapper.exportPlanInData(centerOrderPlanVo);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public R<String> revokePlanIn(Long id) {
|
|
|
+ CenterOrderPlan centerOrderPlan = baseMapper.selectById(id);
|
|
|
+ if (!CommonEnum.ONE.info.equals(centerOrderPlan.getStatus())) {
|
|
|
+ return R.fail("非提交状态,不能撤销");
|
|
|
+ }
|
|
|
+ BladeUser bladeUser = AuthUtil.getUser();
|
|
|
+ List<CenterOrderPlanItem> centerOrderPlanItemList = centerOrderPlanItemService.list(new LambdaQueryWrapper<CenterOrderPlanItem>()
|
|
|
+ .eq(CenterOrderPlanItem::getTenantId, bladeUser.getTenantId()).eq(CenterOrderPlanItem::getIsDeleted, NumberEnum.Zero.number)
|
|
|
+ .eq(CenterOrderPlanItem::getPid, id));
|
|
|
+ if (CollectionUtils.isEmpty(centerOrderPlanItemList)) {
|
|
|
+ return R.fail("未找到入库明细数据,请刷新后重试");
|
|
|
+ }
|
|
|
+ List<CenterStockDesc> centerStockDescList = centerStockDescService.list(new LambdaQueryWrapper<CenterStockDesc>()
|
|
|
+ .eq(CenterStockDesc::getTenantId, bladeUser.getTenantId()).eq(CenterStockDesc::getIsDeleted, NumberEnum.Zero.number)
|
|
|
+ .eq(CenterStockDesc::getPlanId, id));
|
|
|
+ if (CollectionUtils.isEmpty(centerStockDescList)) {
|
|
|
+ return R.fail("未找到库存数据,请刷新后重试");
|
|
|
+ }
|
|
|
+ if (centerOrderPlanItemList.size() != centerStockDescList.size()) {
|
|
|
+ return R.fail("入库明细数量与库存数量不一致,请刷新后重试");
|
|
|
+ }
|
|
|
+ List<Long> stockIds = new ArrayList<>();
|
|
|
+ for (CenterOrderPlanItem centerOrderPlanItem : centerOrderPlanItemList) {
|
|
|
+ CenterStockDesc centerStockDesc = centerStockDescList.stream().filter(item -> item.getGoodsId().equals(centerOrderPlanItem.getGoodsId())
|
|
|
+ && item.getDot().equals(centerOrderPlanItem.getDot()) && item.getRegionId().equals(centerOrderPlanItem.getRegionId())).findFirst().orElse(null);
|
|
|
+ if (centerStockDesc == null) {
|
|
|
+ return R.fail("未找到库存数据,请刷新后重试");
|
|
|
+ }
|
|
|
+ if (centerStockDesc.getBalanceQuantity().compareTo(centerOrderPlanItem.getGoodsNum()) != 0) {
|
|
|
+ return R.fail("商品:" + centerOrderPlanItem.getGoodsName() + "库存数量不一致,请检查是否已经出库");
|
|
|
+ }
|
|
|
+ stockIds.add(centerStockDesc.getId());
|
|
|
+ }
|
|
|
+ CenterOrderPlan updatePlan = new CenterOrderPlan();
|
|
|
+ updatePlan.setId(id);
|
|
|
+ updatePlan.setStatus(CommonEnum.ZERO.info);
|
|
|
+ updatePlan.setUpdateTime(new Date());
|
|
|
+ updatePlan.setUpdateUser(bladeUser.getUserId());
|
|
|
+ updatePlan.setVersion(centerOrderPlan.getVersion() + 1);
|
|
|
+ int updateCount = baseMapper.updateById(updatePlan);
|
|
|
+ if (updateCount <= 0) {
|
|
|
+ return R.fail("撤销失败,请退出重试");
|
|
|
+ }
|
|
|
+ CenterStockDesc desc = new CenterStockDesc();
|
|
|
+ desc.setUpdateTime(new Date());
|
|
|
+ desc.setUpdateUser(bladeUser.getUserId());
|
|
|
+ desc.setIsDeleted(1);
|
|
|
+ boolean updateStatus = centerStockDescService.update(desc, new LambdaQueryWrapper<CenterStockDesc>().in(CenterStockDesc::getId, stockIds).eq(CenterStockDesc::getTenantId, bladeUser.getTenantId()));
|
|
|
+ R<String> r = new R<>();
|
|
|
+ r.setData(String.valueOf(id));
|
|
|
+ r.setSuccess(updateStatus);
|
|
|
+ r.setMsg(updateStatus ? "撤销成功" : "撤销失败");
|
|
|
+ return r;
|
|
|
+ }
|
|
|
+
|
|
|
private R<CenterOrderPlan> insertOrUpdatePlan (CenterOrderPlanVo centerOrderPlanVo, BladeUser bladeUser,
|
|
|
List<CenterOrderPlanItem> centerOrderPlanItemList) {
|
|
|
CenterOrderPlan insertCenterOrderPlan = new CenterOrderPlan();
|
|
|
@@ -463,6 +522,7 @@ public class CenterOrderPlanServiceImpl extends ServiceImpl<CenterOrderPlanMappe
|
|
|
insertCenterOrderPlan.setNumberRows(centerOrderPlanItemList.size());
|
|
|
if (!CollectionUtils.isEmpty(centerOrderPlanItemList)) {
|
|
|
insertCenterOrderPlan.setGoodsTotalNum(centerOrderPlanItemList.stream().filter(item -> !NumberEnum.ONE.number.equals(item.getIsDeleted())).map(CenterOrderPlanItem::getGoodsNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ insertCenterOrderPlan.setShortcutJoin(centerOrderPlanItemList.stream().filter(item -> !NumberEnum.ONE.number.equals(item.getIsDeleted())).map(CenterOrderPlanItem::getGoodsName).filter(Objects::nonNull).collect(Collectors.joining(",")));
|
|
|
}
|
|
|
if (Objects.isNull(centerOrderPlanVo.getId())) {
|
|
|
R<Dept> dept = sysClient.getDept(Long.valueOf(bladeUser.getDeptId()));
|