|
|
@@ -26,7 +26,6 @@ import com.trade.purchase.order.dto.OrderSubmitDto;
|
|
|
import com.trade.purchase.order.entity.*;
|
|
|
import com.trade.purchase.order.enums.OrderStatusEnum;
|
|
|
import com.trade.purchase.order.enums.OrderTypeEnum;
|
|
|
-import com.trade.purchase.order.mapper.OrderFeesMapper;
|
|
|
import com.trade.purchase.order.mapper.OrderItemsMapper;
|
|
|
import com.trade.purchase.order.mapper.OrderMapper;
|
|
|
import com.trade.purchase.order.service.IOrderFreightService;
|
|
|
@@ -1036,7 +1035,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
submitDto.setTenantId(AuthUtil.getTenantId());
|
|
|
submitDto.setBusinesDate(submitDto.getStockTime());
|
|
|
baseMapper.insert(submitDto);
|
|
|
-
|
|
|
LambdaQueryWrapper<Order> RKOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
RKOrderLambdaQueryWrapper
|
|
|
.eq(Order::getIsDeleted, 0)
|
|
|
@@ -1054,9 +1052,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
.eq(OrderItems::getPid, RKOrder.getId())
|
|
|
.eq(OrderItems::getTenantId, AuthUtil.getTenantId());
|
|
|
List<OrderItems> RKOrderItemsList = orderItemsMapper.selectList(RKOrderItemsLambdaQueryWrapper);
|
|
|
-
|
|
|
BigDecimal balanceNumber = new BigDecimal(0);
|
|
|
BigDecimal balanceMoney = new BigDecimal(0);
|
|
|
+ List<String> goodsName = new ArrayList<>();
|
|
|
if (ObjectUtils.isNotNull(orderItemsList)) {
|
|
|
for (OrderItems orderItems : orderItemsList) {
|
|
|
if (OrderTypeEnum.WAREHOUSING.getType().equals(submitDto.getBillType())) {
|
|
|
@@ -1090,8 +1088,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
orderItemsMapper.insert(orderItems);
|
|
|
balanceNumber = balanceNumber.add(orderItems.getStorageInQuantity());
|
|
|
balanceMoney = balanceMoney.add(orderItems.getStorageAmount());
|
|
|
+ goodsName.add(orderItems.getCname());
|
|
|
}
|
|
|
}
|
|
|
+ //明细品名去重
|
|
|
+ goodsName = goodsName.stream().distinct().collect(Collectors.toList());
|
|
|
// 保存费用信息
|
|
|
saveFees(submitDto.getOrderFeesList(), submitDto.getDelFeesIds(), submitDto.getId());
|
|
|
// 保存文件信息
|
|
|
@@ -1100,6 +1101,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
submitDto.setUpdateTime(new Date());
|
|
|
submitDto.setStorageQuantity(balanceNumber);//入库量
|
|
|
submitDto.setStorageAmount(balanceMoney);//入库金额
|
|
|
+ submitDto.setSpecialRemarks(goodsName.toString());//明细品名
|
|
|
baseMapper.updateById(submitDto);
|
|
|
return R.data(submitDto);
|
|
|
}
|
|
|
@@ -1117,6 +1119,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
submitDto.setTradeType(OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType());//类型
|
|
|
BigDecimal balanceNumber = new BigDecimal(0);
|
|
|
BigDecimal balanceMoney = new BigDecimal(0);
|
|
|
+ List<String> goodsName = new ArrayList<>();
|
|
|
if (ObjectUtils.isNotNull(orderItemsList)) {
|
|
|
for (OrderItems orderItems : orderItemsList) {
|
|
|
List<OrderItems> orderItemsBillNo = new ArrayList<>();
|
|
|
@@ -1153,8 +1156,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
balanceNumber = balanceNumber.add(orderItems.getStorageInQuantity());
|
|
|
balanceMoney = balanceMoney.add(orderItems.getStorageAmount());
|
|
|
+ goodsName.add(orderItems.getCname());
|
|
|
}
|
|
|
}
|
|
|
+ //明细品名去重
|
|
|
+ goodsName = goodsName.stream().distinct().collect(Collectors.toList());
|
|
|
// 保存费用信息
|
|
|
saveFees(submitDto.getOrderFeesList(), submitDto.getDelFeesIds(), submitDto.getId());
|
|
|
// 保存文件信息
|
|
|
@@ -1163,6 +1169,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
submitDto.setUpdateTime(new Date());
|
|
|
submitDto.setStorageQuantity(balanceNumber);//入库量
|
|
|
submitDto.setStorageAmount(balanceMoney);//入库金额
|
|
|
+ submitDto.setSpecialRemarks(goodsName.toString());//明细品名
|
|
|
baseMapper.updateById(submitDto);
|
|
|
return R.data(submitDto);
|
|
|
}
|
|
|
@@ -1201,7 +1208,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
submitDto.setCreateTime(new Date());
|
|
|
baseMapper.insert(submitDto);
|
|
|
}
|
|
|
-
|
|
|
LambdaQueryWrapper<Order> RKOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
RKOrderLambdaQueryWrapper
|
|
|
.eq(Order::getIsDeleted, 0)
|
|
|
@@ -1219,9 +1225,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
.eq(OrderItems::getPid, RKOrder.getId())
|
|
|
.eq(OrderItems::getTenantId, AuthUtil.getTenantId());
|
|
|
List<OrderItems> RKOrderItemsList = orderItemsMapper.selectList(RKOrderItemsLambdaQueryWrapper);
|
|
|
-
|
|
|
BigDecimal balanceNumber = new BigDecimal(0);
|
|
|
BigDecimal balanceMoney = new BigDecimal(0);
|
|
|
+ List<String> goodsName = new ArrayList<>();
|
|
|
if (ObjectUtils.isNotNull(orderItemsList)) {
|
|
|
for (OrderItems orderItems : orderItemsList) {
|
|
|
List<OrderItems> orderItemsBillNo = new ArrayList<>();
|
|
|
@@ -1268,10 +1274,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
orderItems.setCreateUserName(AuthUtil.getUserName());
|
|
|
orderItemsMapper.insert(orderItems);
|
|
|
}
|
|
|
- balanceNumber = balanceNumber.add(orderItems.getStorageInQuantity());
|
|
|
- balanceMoney = balanceMoney.add(orderItems.getStorageAmount());
|
|
|
+ goodsName.add(orderItems.getCname());
|
|
|
}
|
|
|
}
|
|
|
+ //明细品名去重
|
|
|
+ goodsName = goodsName.stream().distinct().collect(Collectors.toList());
|
|
|
// 保存费用信息
|
|
|
saveFees(submitDto.getOrderFeesList(), submitDto.getDelFeesIds(), submitDto.getId());
|
|
|
// 保存文件信息
|
|
|
@@ -1280,6 +1287,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
submitDto.setUpdateTime(new Date());
|
|
|
submitDto.setStorageQuantity(balanceNumber);//入库量
|
|
|
submitDto.setStorageAmount(balanceMoney);//入库金额
|
|
|
+ submitDto.setSpecialRemarks(goodsName.toString());//明细品名
|
|
|
baseMapper.updateById(submitDto);
|
|
|
return R.data(submitDto);
|
|
|
}
|
|
|
@@ -1294,22 +1302,93 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
|
|
|
public void checkWarehousing(OrderSubmitDto order) {
|
|
|
Order salesOrder = baseMapper.selectById(order.getId());
|
|
|
- if (order.getCheckFlag() != 3 && salesOrder.getStatus() != 0) {
|
|
|
- throw new SecurityException("订单已开启审核,请勿重复提交");
|
|
|
- }
|
|
|
+ //审批数据
|
|
|
+ AuditProecessDTO auditProecessDTO = new AuditProecessDTO();
|
|
|
+ //获取审批级次
|
|
|
+ List<AuditPathsLevels> auditPathsLevels;
|
|
|
// 判断是否有审批流,如果审批流已开启就进入审批流,否则直接走申请通过
|
|
|
Integer checkFlag = order.getCheckFlag();
|
|
|
AuditPathsActs pathsActs;
|
|
|
if (checkFlag == null) {
|
|
|
throw new SecurityException("请核失败:未配置请核标识");
|
|
|
}
|
|
|
- // 判断是入库审批 还是 出库审批
|
|
|
- if (checkFlag == 1) {
|
|
|
- pathsActs = iCheckClient.getActsByActId(101, "status");
|
|
|
- } else if (checkFlag == 2) {
|
|
|
- pathsActs = iCheckClient.getActsByActId(102, "status");
|
|
|
- } else if (checkFlag == 3) {
|
|
|
+ //生成账单数据
|
|
|
+ order.setOrderNo(salesOrder.getOrderNo());
|
|
|
+ order.setBusinesDate(salesOrder.getBusinesDate());
|
|
|
+ order.setCorpId(salesOrder.getCorpId());
|
|
|
+ order.setBelongToCorpId(salesOrder.getBelongToCorpId());
|
|
|
+ order.setTradeType(salesOrder.getTradeType());
|
|
|
+ order.setThisUsedProfit(salesOrder.getThisUsedProfit());
|
|
|
+ order.setPurchaserId(salesOrder.getPurchaserId());
|
|
|
+ order.setStorageId(salesOrder.getStorageId());
|
|
|
+ order.setOrgOrderNo(salesOrder.getOrgOrderNo());
|
|
|
+ order.setStorageQuantity(salesOrder.getStorageQuantity());
|
|
|
+ order.setBillNo(salesOrder.getBillNo());
|
|
|
+ order.setId(salesOrder.getId());
|
|
|
+
|
|
|
+ //盘点审批流程
|
|
|
+ if (OrderTypeEnum.INVENTORY.getType().equals(salesOrder.getBillType()) && checkFlag == 3) {
|
|
|
+ if (order.getCheckFlag() == 3 && salesOrder.getStatus() != 0) {
|
|
|
+ throw new SecurityException("订单已开启审核,请勿重复提交");
|
|
|
+ }
|
|
|
+ //是否开启流程
|
|
|
pathsActs = iCheckClient.getActsByActId(103, "status");
|
|
|
+ //获取审批信息
|
|
|
+ auditPathsLevels = iCheckClient.listLevelsByActId(103, "status");
|
|
|
+
|
|
|
+ auditProecessDTO.setProcessType("盘点审批");
|
|
|
+
|
|
|
+ salesOrder.setStatus(1);
|
|
|
+
|
|
|
+ /* 出库 第一次 审批流程 */
|
|
|
+ } else if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(salesOrder.getBillType()) && checkFlag == 2 && order.getStatus() == 0) {
|
|
|
+ if (order.getCheckFlag() == 2 && salesOrder.getStatus() != 0) {
|
|
|
+ throw new SecurityException("订单已开启审核,请勿重复提交");
|
|
|
+ }
|
|
|
+ //是否开启流程
|
|
|
+ pathsActs = iCheckClient.getActsByActId(102, "status");
|
|
|
+ //获取审批信息
|
|
|
+ auditPathsLevels = iCheckClient.listLevelsByActId(102, "status");
|
|
|
+
|
|
|
+ auditProecessDTO.setProcessType("出库单据审批");
|
|
|
+
|
|
|
+ salesOrder.setStatus(6);
|
|
|
+
|
|
|
+ /* 出库 第二次 审批流程 */
|
|
|
+ } else if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(salesOrder.getBillType()) && checkFlag == 2 && order.getStatus() == 2) {
|
|
|
+ if (order.getCheckFlag() == 2 && salesOrder.getStatus() > 2) {
|
|
|
+ throw new SecurityException("订单已开启审核,请勿重复提交");
|
|
|
+ }
|
|
|
+ //是否开启流程
|
|
|
+ pathsActs = iCheckClient.getActsByActId(102, "status");
|
|
|
+ //获取审批信息
|
|
|
+ auditPathsLevels = iCheckClient.listLevelsByActId(102, "status");
|
|
|
+
|
|
|
+ auditProecessDTO.setProcessType("出库财务审批");
|
|
|
+ auditProecessDTO.setTimes(1);
|
|
|
+
|
|
|
+ salesOrder.setStatus(3);
|
|
|
+
|
|
|
+ //出库生成账单
|
|
|
+ this.paymentApply(order, "收费", "出库");
|
|
|
+ //出库生成仓储费
|
|
|
+ this.paymentApply(order, "收费", OrderTypeEnum.STORAGE_FEE.getType());
|
|
|
+ /* 入库审批流程 */
|
|
|
+ } else if (OrderTypeEnum.WAREHOUSING.getType().equals(salesOrder.getBillType()) && checkFlag == 1) {
|
|
|
+ if (order.getCheckFlag() == 1 && salesOrder.getStatus() != 0) {
|
|
|
+ throw new SecurityException("订单已开启审核,请勿重复提交");
|
|
|
+ }
|
|
|
+ //是否开启流程
|
|
|
+ pathsActs = iCheckClient.getActsByActId(101, "status");
|
|
|
+ //获取审批信息
|
|
|
+ auditPathsLevels = iCheckClient.listLevelsByActId(101, "status");
|
|
|
+
|
|
|
+ auditProecessDTO.setProcessType("入库审批");
|
|
|
+
|
|
|
+ salesOrder.setStatus(3);
|
|
|
+
|
|
|
+ //入库生成账单
|
|
|
+ this.paymentApply(order, "申请", "入库");
|
|
|
} else {
|
|
|
throw new SecurityException("请核失败:请核标识设置不正确");
|
|
|
}
|
|
|
@@ -1318,26 +1397,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if (pathsActs == null || pathsActs.getIsEnable() == 2) {
|
|
|
throw new SecurityException("当前租户未查询到审批流配置");
|
|
|
} else {
|
|
|
- salesOrder.setStatus(1);
|
|
|
+
|
|
|
salesOrder.setOrderStatus(OrderStatusEnum.SUBMIT.getStatus() + "");
|
|
|
salesOrder.setCheckDate(new Date());
|
|
|
baseMapper.updateById(salesOrder);
|
|
|
|
|
|
- //获取审批级次
|
|
|
- List<AuditPathsLevels> auditPathsLevels;
|
|
|
- if (checkFlag == 1) {
|
|
|
- auditPathsLevels = iCheckClient.listLevelsByActId(101, "status");
|
|
|
- } else if (checkFlag == 3) {
|
|
|
- auditPathsLevels = iCheckClient.listLevelsByActId(103, "status");
|
|
|
- } else {
|
|
|
- auditPathsLevels = iCheckClient.listLevelsByActId(102, "status");
|
|
|
- }
|
|
|
if (CollectionUtils.isEmpty(auditPathsLevels)) {
|
|
|
throw new SecurityException("开启审批失败:未查询到审批信息");
|
|
|
}
|
|
|
|
|
|
- AuditProecessDTO auditProecessDTO = new AuditProecessDTO();
|
|
|
-
|
|
|
// 绑定审核类型
|
|
|
auditProecessDTO.setCheckType(order.getCheckType());
|
|
|
// 追加跳转路由url
|
|
|
@@ -1346,13 +1414,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
auditProecessDTO.setPageLabel(order.getPageLabel());
|
|
|
//增加审批类型
|
|
|
|
|
|
- if (checkFlag == 1) {
|
|
|
- auditProecessDTO.setProcessType("入库审批");
|
|
|
- } else if (checkFlag == 2) {
|
|
|
- auditProecessDTO.setProcessType("出库审批");
|
|
|
- } else {
|
|
|
- auditProecessDTO.setProcessType("盘点审批");
|
|
|
- }
|
|
|
LambdaQueryWrapper<OrderItems> orderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
orderItemsLambdaQueryWrapper
|
|
|
.eq(OrderItems::getGoodType, 0)
|
|
|
@@ -1374,59 +1435,66 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
order.setOrderItemsList(orderItems);
|
|
|
auditProecessDTO.setOrderQuantity(orderItems.stream().map(OrderItems::getOrderQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
auditProecessDTO.setAmount(orderItems.stream().map(OrderItems::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- //生成一维码图片
|
|
|
- for (OrderItems item : orderItems) {
|
|
|
- try {
|
|
|
- File packageFile = new File("/home/minio/file/673511-bladex/upload");
|
|
|
-
|
|
|
- if (!packageFile.getParentFile().exists()) {
|
|
|
- boolean a = packageFile.mkdirs();
|
|
|
- if (a) {
|
|
|
- System.out.println("文件夹创建成功");
|
|
|
- } else {
|
|
|
- System.out.println("文件夹创建失败");
|
|
|
+ //判断是否是入库,入库需要生成条形码,二维码
|
|
|
+ if (OrderTypeEnum.WAREHOUSING.getType().equals(salesOrder.getBillType())) {
|
|
|
+ //生成条形码,二维码图片
|
|
|
+ for (OrderItems item : orderItems) {
|
|
|
+ try {
|
|
|
+ //创建文件夹
|
|
|
+ File packageFile = new File("/home/minio/file/673511-bladex/upload");
|
|
|
+ //文件夹是否创建成功
|
|
|
+ if (!packageFile.getParentFile().exists()) {
|
|
|
+ boolean a = packageFile.mkdirs();
|
|
|
+ if (a) {
|
|
|
+ System.out.println("文件夹创建成功");
|
|
|
+ } else {
|
|
|
+ System.out.println("文件夹创建失败");
|
|
|
+ }
|
|
|
}
|
|
|
+ //创建条形码图片
|
|
|
+ File oneFile = new File(packageFile, item.getBillNo() + "捆包号.png");
|
|
|
+ oneFile.createNewFile();
|
|
|
+ //创建二维码图片
|
|
|
+ File qRCodeFile = new File(packageFile, item.getBillNo() + "货物明细.png");
|
|
|
+ qRCodeFile.createNewFile();
|
|
|
+ //生成条形码
|
|
|
+ String oneCode = BarCodeTest.generateCode(oneFile, item.getBillNo(), 500, 250);
|
|
|
+ //替换地址
|
|
|
+ oneCode = oneCode.replace("/home/minio", "http://121.37.83.47");
|
|
|
+ item.setOneCode(oneCode);
|
|
|
+ //获取品名
|
|
|
+ R<GoodsDescVO> goodsMessage = goodsDescClient.selectGoodsMessage(item.getItemId());
|
|
|
+ //二维码数据
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put("purchaser", salesOrder.getPurchaser());
|
|
|
+ map.put("billNo", item.getBillNo());
|
|
|
+ map.put("stockTime", salesOrder.getStockTime());
|
|
|
+ map.put("storageName", salesOrder.getStorageName());
|
|
|
+ if (goodsMessage.isSuccess() && goodsMessage.getData() != null) {
|
|
|
+ map.put("goodsName", goodsMessage.getData().getCname());
|
|
|
+ }
|
|
|
+ map.put("balanceNumber", item.getBalanceNumber());
|
|
|
+ map.put("length", item.getLength());
|
|
|
+ map.put("thickness", item.getThickness());
|
|
|
+ map.put("remarks", item.getRemarks());
|
|
|
+ map.put("itemId", item.getId());
|
|
|
+ map.put("orderId", item.getPid());
|
|
|
+ //生成二维码
|
|
|
+ String qRCode = QRCodeTest.generateQRCode(qRCodeFile, JSONObject.toJSONString(map));
|
|
|
+ //替换地址
|
|
|
+ qRCode = qRCode.replace("/home/minio", "http://121.37.83.47");
|
|
|
+ item.setQrCode(qRCode);
|
|
|
+ orderItemsMapper.updateById(item);
|
|
|
+ } catch (IOException e) {
|
|
|
+ throw new SecurityException("生成码失败");
|
|
|
}
|
|
|
-
|
|
|
- File oneFile = new File(packageFile, item.getBillNo() + "捆包号.png");
|
|
|
- oneFile.createNewFile();
|
|
|
-
|
|
|
- File qRCodeFile = new File(packageFile, item.getBillNo() + "货物明细.png");
|
|
|
- qRCodeFile.createNewFile();
|
|
|
-
|
|
|
- String oneCode = BarCodeTest.generateCode(oneFile, item.getBillNo(), 500, 250);
|
|
|
- oneCode = oneCode.replace("/home/minio", "http://121.37.83.47");
|
|
|
- System.out.println(oneCode);
|
|
|
- item.setOneCode(oneCode);
|
|
|
- R<GoodsDescVO> goodsMessage = goodsDescClient.selectGoodsMessage(item.getItemId());
|
|
|
- Map<String, Object> map = new HashMap<>();
|
|
|
- map.put("purchaser", salesOrder.getPurchaser());
|
|
|
- map.put("billNo", item.getBillNo());
|
|
|
- map.put("stockTime", salesOrder.getStockTime());
|
|
|
- map.put("storageName", salesOrder.getStorageName());
|
|
|
- if (goodsMessage.isSuccess() && goodsMessage.getData() != null) {
|
|
|
- map.put("goodsName", goodsMessage.getData().getCname());
|
|
|
- }
|
|
|
- map.put("balanceNumber", item.getBalanceNumber());
|
|
|
- map.put("length", item.getLength());
|
|
|
- map.put("thickness", item.getThickness());
|
|
|
- map.put("remarks", item.getRemarks());
|
|
|
- map.put("itemId", item.getId());
|
|
|
- map.put("orderId", item.getPid());
|
|
|
- String qRCode = QRCodeTest.generateQRCode(qRCodeFile, JSONObject.toJSONString(map));
|
|
|
- qRCode = qRCode.replace("/home/minio", "http://121.37.83.47");
|
|
|
- System.out.println(qRCode);
|
|
|
- item.setQrCode(qRCode);
|
|
|
- orderItemsMapper.updateById(item);
|
|
|
- } catch (IOException e) {
|
|
|
- throw new SecurityException("生成码失败");
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
} else {
|
|
|
auditProecessDTO.setOrderQuantity(BigDecimal.ZERO);
|
|
|
auditProecessDTO.setAmount(BigDecimal.ZERO);
|
|
|
}
|
|
|
+ //入库,出库审批数据应收应付金额
|
|
|
if (OrderTypeEnum.WAREHOUSING.getType().equals(order.getCheckType()) || OrderTypeEnum.OUT_WAREHOUSING.getType().equals(order.getCheckType())) {
|
|
|
//获取订单收款信息
|
|
|
//应付
|
|
|
@@ -1446,7 +1514,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
List<OrderFees> payOrderFeesList = orderFeesService.list(payLambdaQueryWrapper);
|
|
|
auditProecessDTO.setReceivableAmount(payOrderFeesList.stream().map(OrderFees::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
}
|
|
|
-
|
|
|
+ //审批数据
|
|
|
auditProecessDTO.setOrderQuantity(salesOrder.getStorageQuantity());
|
|
|
auditProecessDTO.setAmount(salesOrder.getStorageAmount());
|
|
|
auditProecessDTO.setOrderRemark(salesOrder.getOrderRemark());
|
|
|
@@ -1466,146 +1534,125 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if (!financeProcess.isSuccess()) {
|
|
|
throw new SecurityException("操作失败,请联系管理员");
|
|
|
}
|
|
|
- order.setOrderNo(salesOrder.getOrderNo());
|
|
|
- order.setBusinesDate(salesOrder.getBusinesDate());
|
|
|
- order.setCorpId(salesOrder.getCorpId());
|
|
|
- order.setBelongToCorpId(salesOrder.getBelongToCorpId());
|
|
|
- order.setTradeType(salesOrder.getTradeType());
|
|
|
- order.setThisUsedProfit(salesOrder.getThisUsedProfit());
|
|
|
- order.setPurchaserId(salesOrder.getPurchaserId());
|
|
|
- order.setStorageId(salesOrder.getStorageId());
|
|
|
- order.setOrgOrderNo(salesOrder.getOrgOrderNo());
|
|
|
- order.setStorageQuantity(salesOrder.getStorageQuantity());
|
|
|
- order.setBillNo(salesOrder.getBillNo());
|
|
|
- order.setId(salesOrder.getId());
|
|
|
- //出库生成仓储费
|
|
|
- if ("CK".equals(salesOrder.getBillType())) {
|
|
|
- this.paymentApply(order, "收费", "出库");
|
|
|
- this.paymentApply(order, "收费", OrderTypeEnum.STORAGE_FEE.getType());
|
|
|
- } else if ("RK".equals(salesOrder.getBillType())) {
|
|
|
- this.paymentApply(order, "申请", "入库");
|
|
|
- }
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public R passCheck(Long id) {
|
|
|
- // ===========================start 审核通过修改入出库单信息==========================
|
|
|
- LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- orderLambdaQueryWrapper
|
|
|
- .eq(Order::getId, id)
|
|
|
- .eq(Order::getTenantId, AuthUtil.getTenantId());
|
|
|
- Order order = baseMapper.selectOne(orderLambdaQueryWrapper);
|
|
|
+ public R passCheck(Long id, int times) {
|
|
|
+ // ===========================start 审核通过修改入出库,盘点单信息==========================
|
|
|
+ Order order = baseMapper.selectById(id);
|
|
|
if (order == null) {
|
|
|
throw new SecurityException("审批通过失败");
|
|
|
}
|
|
|
- if (order.getStatus() == 3) {
|
|
|
- throw new SecurityException("订单已审批通过请勿重复审批");
|
|
|
+ //获取入库数据
|
|
|
+ LambdaQueryWrapper<Order> RKOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ RKOrderLambdaQueryWrapper
|
|
|
+ .eq(Order::getIsDeleted, 0)
|
|
|
+ .eq(Order::getOrderNo, order.getOrderNo())
|
|
|
+ .eq(Order::getBillType, OrderTypeEnum.WAREHOUSING.getType())
|
|
|
+ .eq(Order::getTenantId, AuthUtil.getTenantId());
|
|
|
+ Order RKOrder = baseMapper.selectOne(RKOrderLambdaQueryWrapper);
|
|
|
+ if (RKOrder == null) {
|
|
|
+ throw new SecurityException("更新入库数据失败");
|
|
|
}
|
|
|
- order.setStatus(3);
|
|
|
- order.setConfirmStatus("1");
|
|
|
- order.setOrderStatus("审批通过");
|
|
|
+ //入库明细
|
|
|
+ LambdaQueryWrapper<OrderItems> RKOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ RKOrderItemsLambdaQueryWrapper
|
|
|
+ .eq(OrderItems::getIsDeleted, 0)
|
|
|
+ .eq(OrderItems::getPid, RKOrder.getId())
|
|
|
+ .eq(OrderItems::getBillType, OrderTypeEnum.WAREHOUSING.getType())
|
|
|
+ .eq(OrderItems::getTenantId, AuthUtil.getTenantId());
|
|
|
+ List<OrderItems> RKOrderItemsList = orderItemsMapper.selectList(RKOrderItemsLambdaQueryWrapper);
|
|
|
|
|
|
- // ===========================end 审核通过修改入出库订单信息==========================
|
|
|
- /**===========================End 审核通过生成账单 发送消息=============================*/
|
|
|
- if (OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType().equals(order.getTradeType())) {
|
|
|
- LambdaQueryWrapper<Order> RKOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- RKOrderLambdaQueryWrapper
|
|
|
- .eq(Order::getIsDeleted, 0)
|
|
|
- .eq(Order::getOrderNo, order.getOrderNo())
|
|
|
- .eq(Order::getBillType, OrderTypeEnum.WAREHOUSING.getType())
|
|
|
- .eq(Order::getTenantId, AuthUtil.getTenantId());
|
|
|
- Order RKOrder = baseMapper.selectOne(RKOrderLambdaQueryWrapper);
|
|
|
- if (RKOrder == null) {
|
|
|
- throw new SecurityException("更新入库数据失败");
|
|
|
+ //入库审批通过
|
|
|
+ if (OrderTypeEnum.WAREHOUSING.getType().equals(order.getBillType())) {
|
|
|
+ if (order.getStatus() == 5) {
|
|
|
+ throw new SecurityException("订单已审批通过请勿重复审批");
|
|
|
}
|
|
|
- //出库时修改是否出库
|
|
|
- if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(order.getBillType())) {
|
|
|
- LambdaQueryWrapper<OrderItems> PDOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- PDOrderItemsLambdaQueryWrapper
|
|
|
- .eq(OrderItems::getIsDeleted, 0)
|
|
|
- .eq(OrderItems::getPid, order.getId())
|
|
|
- .eq(OrderItems::getTenantId, AuthUtil.getTenantId());
|
|
|
- //出库明细
|
|
|
- List<OrderItems> CkOrderItemsList = orderItemsMapper.selectList(PDOrderItemsLambdaQueryWrapper);
|
|
|
- //入库明细
|
|
|
- LambdaQueryWrapper<OrderItems> RKOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- RKOrderItemsLambdaQueryWrapper
|
|
|
- .eq(OrderItems::getIsDeleted, 0)
|
|
|
- .eq(OrderItems::getPid, RKOrder.getId())
|
|
|
- .eq(OrderItems::getBillType, OrderTypeEnum.WAREHOUSING.getType())
|
|
|
- .eq(OrderItems::getTenantId, AuthUtil.getTenantId());
|
|
|
- List<OrderItems> RKOrderItemsList = orderItemsMapper.selectList(RKOrderItemsLambdaQueryWrapper);
|
|
|
- int count = 0;
|
|
|
- for (OrderItems orderItems : CkOrderItemsList) {
|
|
|
- for (OrderItems RKOrderItems : RKOrderItemsList) {
|
|
|
- //判断盘点与入库明细捆包号是否相等 true修改入库盘点量,结余量,结余金额
|
|
|
- if (orderItems.getBillNo().equals(RKOrderItems.getBillNo())) {
|
|
|
- if (RKOrderItems.getIsIssue().equals("4")) {
|
|
|
- throw new SecurityException("捆包号:" + RKOrderItems.getBillNo() + "已出库");
|
|
|
- } else {
|
|
|
- RKOrderItems.setIsIssue("3");
|
|
|
- orderItems.setIsIssue("3");
|
|
|
+ //修改明细状态
|
|
|
+ orderItemsMapper.updateByPId(id, "3");
|
|
|
+ order.setStatus(5);
|
|
|
+ order.setConfirmStatus("1");
|
|
|
+ order.setOrderStatus("审批通过");
|
|
|
+ //出库审批通过
|
|
|
+ } else if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(order.getBillType())) {
|
|
|
+ LambdaQueryWrapper<OrderItems> PDOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ PDOrderItemsLambdaQueryWrapper
|
|
|
+ .eq(OrderItems::getIsDeleted, 0)
|
|
|
+ .eq(OrderItems::getPid, order.getId())
|
|
|
+ .eq(OrderItems::getTenantId, AuthUtil.getTenantId());
|
|
|
+ //出库明细
|
|
|
+ List<OrderItems> CkOrderItemsList = orderItemsMapper.selectList(PDOrderItemsLambdaQueryWrapper);
|
|
|
+ int count = 0;
|
|
|
+ for (OrderItems orderItems : CkOrderItemsList) {
|
|
|
+ for (OrderItems RKOrderItems : RKOrderItemsList) {
|
|
|
+ //判断出库与入库明细捆包号是否相等
|
|
|
+ if (orderItems.getBillNo().equals(RKOrderItems.getBillNo())) {
|
|
|
+ //判断该捆包号是否已出库
|
|
|
+ if (RKOrderItems.getIsIssue().equals("6")) {
|
|
|
+ throw new SecurityException("捆包号:" + RKOrderItems.getBillNo() + "已出库");
|
|
|
+ } else {
|
|
|
+ //判断第几次出库审核
|
|
|
+ if (0 == times) {//第一次审批
|
|
|
+ RKOrderItems.setIsIssue("4");
|
|
|
+ orderItems.setIsIssue("4");
|
|
|
+ } else {//第二次审批
|
|
|
+ RKOrderItems.setIsIssue("6");
|
|
|
+ orderItems.setIsIssue("6");
|
|
|
}
|
|
|
- orderItemsMapper.updateById(RKOrderItems);
|
|
|
- orderItemsMapper.updateById(orderItems);
|
|
|
- }
|
|
|
- if (RKOrderItems.getIsIssue().equals("3")) {
|
|
|
- count++;
|
|
|
}
|
|
|
+ //修改入库明细
|
|
|
+ orderItemsMapper.updateById(RKOrderItems);
|
|
|
+ //修改出库明细
|
|
|
+ orderItemsMapper.updateById(orderItems);
|
|
|
+ }
|
|
|
+ //判断是否全部出库
|
|
|
+ if (RKOrderItems.getIsIssue().equals("6")) {
|
|
|
+ count++;
|
|
|
}
|
|
|
}
|
|
|
- if (count == RKOrderItemsList.size()) {
|
|
|
- order.setSpecialCheckStatus(1);
|
|
|
- RKOrder.setSpecialCheckStatus(1);
|
|
|
- }
|
|
|
+ }
|
|
|
+ if (count == RKOrderItemsList.size()) {
|
|
|
+ order.setSpecialCheckStatus(1);
|
|
|
+ RKOrder.setSpecialCheckStatus(1);
|
|
|
+ //修改入库状态
|
|
|
baseMapper.updateById(RKOrder);
|
|
|
- } else if (OrderTypeEnum.INVENTORY.getType().equals(order.getBillType())) {
|
|
|
- LambdaQueryWrapper<OrderItems> PDOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- PDOrderItemsLambdaQueryWrapper
|
|
|
- .eq(OrderItems::getIsDeleted, 0)
|
|
|
- .eq(OrderItems::getPid, order.getId())
|
|
|
- .eq(OrderItems::getTenantId, AuthUtil.getTenantId());
|
|
|
- //盘点明细
|
|
|
- List<OrderItems> PDOrderItemsList = orderItemsMapper.selectList(PDOrderItemsLambdaQueryWrapper);
|
|
|
- //入库明细
|
|
|
- LambdaQueryWrapper<OrderItems> RKOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- RKOrderItemsLambdaQueryWrapper
|
|
|
- .eq(OrderItems::getIsDeleted, 0)
|
|
|
- .eq(OrderItems::getPid, RKOrder.getId())
|
|
|
- .eq(OrderItems::getBillType, OrderTypeEnum.WAREHOUSING.getType())
|
|
|
- .eq(OrderItems::getTenantId, AuthUtil.getTenantId());
|
|
|
- List<OrderItems> RKOrderItemsList = orderItemsMapper.selectList(RKOrderItemsLambdaQueryWrapper);
|
|
|
- for (OrderItems orderItems : PDOrderItemsList) {
|
|
|
- for (OrderItems RKOrderItems : RKOrderItemsList) {
|
|
|
- //判断盘点与入库明细捆包号是否相等 true修改入库盘点量,结余量,结余金额
|
|
|
- if (orderItems.getBillNo().equals(RKOrderItems.getBillNo())) {
|
|
|
- RKOrderItems.setInventory(orderItems.getInventory());
|
|
|
- RKOrderItems.setBalanceNumber(orderItems.getInventory());
|
|
|
- RKOrderItems.setBalanceMoney(orderItems.getBalanceMoney());
|
|
|
- RKOrderItems.setSurplusLoss(orderItems.getSurplusLoss());
|
|
|
- if (RKOrderItems.getIsIssue().equals("4")) {
|
|
|
- throw new SecurityException("捆包号:" + RKOrderItems.getBillNo() + "已出库");
|
|
|
- }
|
|
|
- orderItemsMapper.updateById(RKOrderItems);
|
|
|
+ }
|
|
|
+ //判断第几次出库审核
|
|
|
+ if (0 == times) {//第一次审批
|
|
|
+ order.setStatus(8);
|
|
|
+ order.setOrderStatus("单据审批通过");
|
|
|
+ } else {//第二次次审批
|
|
|
+ order.setStatus(5);
|
|
|
+ order.setConfirmStatus("1");
|
|
|
+ order.setOrderStatus("财务审批通过");
|
|
|
+ }
|
|
|
+ //盘点审批通过
|
|
|
+ } else if (OrderTypeEnum.INVENTORY.getType().equals(order.getBillType())) {
|
|
|
+ LambdaQueryWrapper<OrderItems> PDOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ PDOrderItemsLambdaQueryWrapper
|
|
|
+ .eq(OrderItems::getIsDeleted, 0)
|
|
|
+ .eq(OrderItems::getPid, order.getId())
|
|
|
+ .eq(OrderItems::getTenantId, AuthUtil.getTenantId());
|
|
|
+ //盘点明细
|
|
|
+ List<OrderItems> PDOrderItemsList = orderItemsMapper.selectList(PDOrderItemsLambdaQueryWrapper);
|
|
|
+ for (OrderItems orderItems : PDOrderItemsList) {
|
|
|
+ for (OrderItems RKOrderItems : RKOrderItemsList) {
|
|
|
+ //判断盘点与入库明细捆包号是否相等 true修改入库盘点量,结余量,结余金额
|
|
|
+ if (orderItems.getBillNo().equals(RKOrderItems.getBillNo())) {
|
|
|
+ RKOrderItems.setInventory(orderItems.getInventory());
|
|
|
+ RKOrderItems.setBalanceNumber(orderItems.getInventory());
|
|
|
+ RKOrderItems.setBalanceMoney(orderItems.getBalanceMoney());
|
|
|
+ RKOrderItems.setSurplusLoss(orderItems.getSurplusLoss());
|
|
|
+ if (RKOrderItems.getIsIssue().equals("6")) {
|
|
|
+ throw new SecurityException("捆包号:" + RKOrderItems.getBillNo() + "已出库");
|
|
|
}
|
|
|
+ orderItemsMapper.updateById(RKOrderItems);
|
|
|
}
|
|
|
}
|
|
|
- } else if (OrderTypeEnum.WAREHOUSING.getType().equals(order.getBillType())) {
|
|
|
- //入库明细
|
|
|
- LambdaQueryWrapper<OrderItems> RKOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- RKOrderItemsLambdaQueryWrapper
|
|
|
- .eq(OrderItems::getIsDeleted, 0)
|
|
|
- .eq(OrderItems::getPid, order.getId())
|
|
|
- .eq(OrderItems::getBillType, OrderTypeEnum.WAREHOUSING.getType())
|
|
|
- .eq(OrderItems::getTenantId, AuthUtil.getTenantId());
|
|
|
- List<OrderItems> RKOrderItemsList = orderItemsMapper.selectList(RKOrderItemsLambdaQueryWrapper);
|
|
|
- for (OrderItems RKOrderItems : RKOrderItemsList) {
|
|
|
- RKOrderItems.setIsIssue("1");
|
|
|
- orderItemsMapper.updateById(RKOrderItems);
|
|
|
- }
|
|
|
}
|
|
|
+ order.setStatus(3);
|
|
|
+ order.setOrderStatus("审批通过");
|
|
|
}
|
|
|
financeClient.updateByOrderId(order.getId());
|
|
|
baseMapper.updateById(order);
|
|
|
@@ -1613,30 +1660,73 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public R underReview(Long id) {
|
|
|
+ public R underReview(Long id, int times) {
|
|
|
Order order = baseMapper.selectById(id);
|
|
|
if (order == null) {
|
|
|
throw new SecurityException("审批失败");
|
|
|
}
|
|
|
- order.setStatus(2);
|
|
|
+ //入库审批中
|
|
|
+ if (OrderTypeEnum.WAREHOUSING.getType().equals(order.getBillType())) {
|
|
|
+ order.setStatus(4);
|
|
|
+ //出库审批中
|
|
|
+ } else if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(order.getBillType())) {
|
|
|
+ //判断第几次出库审核
|
|
|
+ if (0 == times) {
|
|
|
+ order.setStatus(7);
|
|
|
+ } else {
|
|
|
+ order.setStatus(4);
|
|
|
+ }
|
|
|
+ //盘点审批中
|
|
|
+ } else if (OrderTypeEnum.INVENTORY.getType().equals(order.getBillType())) {
|
|
|
+ order.setStatus(2);
|
|
|
+ }else{
|
|
|
+ throw new SecurityException("审批失败");
|
|
|
+ }
|
|
|
order.setOrderStatus("审批中");
|
|
|
baseMapper.updateById(order);
|
|
|
return R.success("操作成功");
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public R passCancel(Long id) {
|
|
|
- LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- orderLambdaQueryWrapper
|
|
|
- .eq(Order::getId, id)
|
|
|
- .eq(Order::getTenantId, AuthUtil.getTenantId());
|
|
|
- Order order = baseMapper.selectOne(orderLambdaQueryWrapper);
|
|
|
+ public R passCancel(Long id, int times) {
|
|
|
+ Order order = baseMapper.selectById(id);
|
|
|
if (order == null) {
|
|
|
throw new SecurityException("未找到单据");
|
|
|
}
|
|
|
- if (order.getStatus() == 0) {
|
|
|
- throw new SecurityException("订单已驳回或未提交审批,请勿重复操作");
|
|
|
+ //入库审批中
|
|
|
+ if (OrderTypeEnum.WAREHOUSING.getType().equals(order.getBillType())) {
|
|
|
+ if (order.getStatus() == 2) {
|
|
|
+ throw new SecurityException("订单已驳回或未提交审批,请勿重复操作");
|
|
|
+ }
|
|
|
+ order.setStatus(2);
|
|
|
+ order.setOrderStatus("已确认");
|
|
|
+ //出库审批中
|
|
|
+ } else if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(order.getBillType())) {
|
|
|
+ //判断第几次出库审核
|
|
|
+ if (0 == times) {
|
|
|
+ if (order.getStatus() == 0) {
|
|
|
+ throw new SecurityException("订单已驳回或未提交审批,请勿重复操作");
|
|
|
+ }
|
|
|
+ order.setStatus(0);
|
|
|
+ order.setOrderStatus("录入");
|
|
|
+ } else {
|
|
|
+ if (order.getStatus() == 2) {
|
|
|
+ throw new SecurityException("订单已驳回或未提交审批,请勿重复操作");
|
|
|
+ }
|
|
|
+ order.setStatus(2);
|
|
|
+ order.setOrderStatus("已确认");
|
|
|
+ }
|
|
|
+ //盘点审批中
|
|
|
+ } else if (OrderTypeEnum.INVENTORY.getType().equals(order.getBillType())) {
|
|
|
+ if (order.getStatus() == 0) {
|
|
|
+ throw new SecurityException("订单已驳回或未提交审批,请勿重复操作");
|
|
|
+ }
|
|
|
+ order.setStatus(0);
|
|
|
+ order.setOrderStatus("录入");
|
|
|
+ }else{
|
|
|
+ throw new SecurityException("审批失败");
|
|
|
}
|
|
|
+
|
|
|
//删除账单单据
|
|
|
LambdaQueryWrapper<OrderFees> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
lambdaQueryWrapper.eq(OrderFees::getTenantId, AuthUtil.getTenantId())
|
|
|
@@ -1653,9 +1743,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
financeClient.deleteBySrcFeesId(orderFees.getId());
|
|
|
orderFeesService.updateById(orderFees);
|
|
|
}
|
|
|
-
|
|
|
- order.setStatus(0);
|
|
|
- order.setOrderStatus("录入");
|
|
|
baseMapper.updateById(order);
|
|
|
return R.success("操作成功");
|
|
|
}
|
|
|
@@ -1738,7 +1825,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
queryWrapper.eq("is_deleted", 0);
|
|
|
List<OrderItems> orderItemsList = orderItemsMapper.selectList(queryWrapper);
|
|
|
for (OrderItems orderItems : orderItemsList) {
|
|
|
- orderItems.setIsIssue("1");
|
|
|
+ orderItems.setIsIssue("2");
|
|
|
orderItems.setUpdateTime(new Date());
|
|
|
orderItems.setUpdateUser(AuthUtil.getUserId());
|
|
|
orderItemsMapper.updateById(orderItems);
|
|
|
@@ -1932,9 +2019,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
//获取订单收款信息
|
|
|
QueryWrapper<OrderFees> orderFeesQueryWrapper = new QueryWrapper<>();
|
|
|
orderFeesQueryWrapper.eq("is_deleted", 0)
|
|
|
- .eq("pid", pid)
|
|
|
- .eq("is_check", 0)
|
|
|
- .eq("submit_pay", 0);
|
|
|
+ .eq("pid", pid)
|
|
|
+ .eq("is_check", 0)
|
|
|
+ .eq("submit_pay", 0);
|
|
|
/*if ("入库".equals(itemType)) {
|
|
|
orderFeesLambdaQueryWrapper.eq(OrderFees::getFeesType, 2);
|
|
|
} else {
|