|
|
@@ -57,6 +57,8 @@ import org.springblade.mocha.feign.IPriceBankClient;
|
|
|
import org.springblade.stock.entity.StockGoods;
|
|
|
import org.springblade.stock.feign.IStockGoodsClient;
|
|
|
import org.springblade.stock.vo.StockGoodsVO;
|
|
|
+import org.springblade.system.entity.DictBiz;
|
|
|
+import org.springblade.system.feign.IDictBizClient;
|
|
|
import org.springblade.system.feign.ISysClient;
|
|
|
import org.springblade.system.user.entity.User;
|
|
|
import org.springblade.system.user.feign.IUserClient;
|
|
|
@@ -107,6 +109,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
private final AgreementServiceImpl agreementService;//仓储费
|
|
|
private final AgreementitemsServiceImpl agreementitemsService;//仓储费明细
|
|
|
private FinancingServiceImpl financingService;//融资
|
|
|
+ private IDictBizClient dictBizClient;//字典
|
|
|
|
|
|
|
|
|
@Override
|
|
|
@@ -991,6 +994,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
throw new Error(cMYWarehousingExcel.getGoodsName() + "品名不存在,请先维护信息在导入");
|
|
|
}
|
|
|
}
|
|
|
+ if (ObjectUtils.isNotNull(cMYWarehousingExcel.getUnit())) {
|
|
|
+ //计价单位
|
|
|
+ R<String> value = dictBizClient.getOneByValue("unit", cMYWarehousingExcel.getUnit(), AuthUtil.getTenantId());
|
|
|
+ if (value.isSuccess()) {
|
|
|
+ cMYWarehousingExcel.setUnit(value.getData());
|
|
|
+ } else {
|
|
|
+ cMYWarehousingExcel.setUnit("");
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
return excelList;
|
|
|
@@ -1120,7 +1132,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
orderItems.setPid(submitDto.getId());
|
|
|
orderItems.setTenantId(AuthUtil.getTenantId());
|
|
|
- orderItems.setBalanceNumber(orderItems.getPurchaseQuantity());//结余量
|
|
|
+ orderItems.setBalanceNumber(orderItems.getStorageInQuantity());//结余量
|
|
|
orderItems.setBalanceMoney(orderItems.getStorageAmount());//结余金额
|
|
|
if (ObjectUtils.isNotNull(orderItems.getId())) {
|
|
|
if (orderItemsBillNo.size() > 1) {
|
|
|
@@ -1233,10 +1245,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
orderItemsMapper.updateById(items);
|
|
|
}
|
|
|
}
|
|
|
+ orderItems.setIsIssue("2");
|
|
|
}
|
|
|
orderItems.setPid(submitDto.getId());
|
|
|
orderItems.setTenantId(AuthUtil.getTenantId());
|
|
|
- orderItems.setBalanceNumber(orderItems.getPurchaseQuantity());//结余量
|
|
|
+ orderItems.setBalanceNumber(orderItems.getStorageInQuantity());//结余量
|
|
|
orderItems.setBalanceMoney(orderItems.getStorageAmount());//结余金额
|
|
|
if (ObjectUtils.isNotNull(orderItems.getId())) {
|
|
|
if (orderItemsBillNo.size() > 1) {
|
|
|
@@ -1389,6 +1402,20 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
auditProecessDTO.setOrderQuantity(BigDecimal.ZERO);
|
|
|
auditProecessDTO.setAmount(BigDecimal.ZERO);
|
|
|
}
|
|
|
+
|
|
|
+ //获取订单收款信息
|
|
|
+ LambdaQueryWrapper<OrderFees> orderFeesLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ orderFeesLambdaQueryWrapper.eq(OrderFees::getIsDeleted, 0);
|
|
|
+ orderFeesLambdaQueryWrapper.eq(OrderFees::getPid, order.getId());
|
|
|
+ //应付
|
|
|
+ orderFeesLambdaQueryWrapper.eq(OrderFees::getFeesType, 2);
|
|
|
+ List<OrderFees> receivableOrderFeesList = orderFeesService.list(orderFeesLambdaQueryWrapper);
|
|
|
+ auditProecessDTO.setReceivableAmount(receivableOrderFeesList.stream().map(OrderFees::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ //应收
|
|
|
+ orderFeesLambdaQueryWrapper.eq(OrderFees::getFeesType, 1);
|
|
|
+ List<OrderFees> payOrderFeesList = orderFeesService.list(orderFeesLambdaQueryWrapper);
|
|
|
+ auditProecessDTO.setPayAmount(payOrderFeesList.stream().map(OrderFees::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+
|
|
|
auditProecessDTO.setOrderQuantity(salesOrder.getStorageQuantity());
|
|
|
auditProecessDTO.setAmount(salesOrder.getStorageAmount());
|
|
|
auditProecessDTO.setOrderRemark(salesOrder.getOrderRemark());
|
|
|
@@ -1446,7 +1473,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
throw new SecurityException("订单已审批通过请勿重复审批");
|
|
|
}
|
|
|
order.setStatus(3);
|
|
|
-// order.setConfirmStatus("1");
|
|
|
+ order.setConfirmStatus("1");
|
|
|
order.setOrderStatus("审批通过");
|
|
|
|
|
|
// ===========================end 审核通过修改入出库订单信息==========================
|
|
|
@@ -1476,6 +1503,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
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;
|
|
|
@@ -1486,8 +1514,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if (RKOrderItems.getIsIssue().equals("3")) {
|
|
|
throw new SecurityException("捆包号:" + RKOrderItems.getBillNo() + "已出库");
|
|
|
} else {
|
|
|
- RKOrderItems.setIsIssue("1");
|
|
|
- orderItems.setIsIssue("1");
|
|
|
+ RKOrderItems.setIsIssue("3");
|
|
|
+ orderItems.setIsIssue("3");
|
|
|
}
|
|
|
orderItemsMapper.updateById(RKOrderItems);
|
|
|
orderItemsMapper.updateById(orderItems);
|
|
|
@@ -1515,6 +1543,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
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) {
|
|
|
@@ -1522,7 +1551,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
//判断盘点与入库明细捆包号是否相等 true修改入库盘点量,结余量,结余金额
|
|
|
if (orderItems.getBillNo().equals(RKOrderItems.getBillNo())) {
|
|
|
RKOrderItems.setInventory(orderItems.getInventory());
|
|
|
- RKOrderItems.setBalanceNumber(orderItems.getBalanceNumber());
|
|
|
+ RKOrderItems.setBalanceNumber(orderItems.getInventory());
|
|
|
RKOrderItems.setBalanceMoney(orderItems.getBalanceMoney());
|
|
|
RKOrderItems.setSurplusLoss(orderItems.getSurplusLoss());
|
|
|
if (RKOrderItems.getIsIssue().equals("3")) {
|
|
|
@@ -1532,6 +1561,19 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ } 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);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
financeClient.updateByOrderId(order.getId());
|
|
|
@@ -1661,6 +1703,108 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 入出库盘点撤销请核
|
|
|
+ *
|
|
|
+ * @param submitDto
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public OrderSubmitDto revokeWarehousing(OrderSubmitDto submitDto) {
|
|
|
+ Order order = orderMapper.selectById(submitDto.getId());
|
|
|
+ if (ObjectUtils.isNotNull(order)) {
|
|
|
+ List<OrderItemsVO> orderItemsVOList = submitDto.getItemsVOList();
|
|
|
+
|
|
|
+ //入库撤销
|
|
|
+ if (OrderTypeEnum.WAREHOUSING.getType().equals(order.getBillType())) {
|
|
|
+ for (OrderItems orderItems : orderItemsVOList) {
|
|
|
+ if (orderItems.getIsIssue().equals("2")) {
|
|
|
+ throw new SecurityException("捆包号:" + orderItems.getBillNo() + "已生成出库单,撤回失败");
|
|
|
+ }
|
|
|
+ //撤回入库状态
|
|
|
+ orderItems.setIsIssue("0");
|
|
|
+ //置空条形码,二维码 并删除服务器文件
|
|
|
+ try {
|
|
|
+ File oneFile = new File(orderItems.getOneCode());
|
|
|
+ File QrFile = new File(orderItems.getQrCode());
|
|
|
+
|
|
|
+ if (oneFile.delete()) {
|
|
|
+ orderItems.setOneCode(null);
|
|
|
+ }
|
|
|
+ if (QrFile.delete()) {
|
|
|
+ orderItems.setQrCode(null);
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new SecurityException("删除文件失败");
|
|
|
+ }
|
|
|
+ orderItemsMapper.updateById(orderItems);
|
|
|
+ }
|
|
|
+ order.setStatus(0);
|
|
|
+ order.setConfirmStatus("0");
|
|
|
+ order.setUpdateTime(new Date());
|
|
|
+ order.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ order.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ baseMapper.updateById(order);
|
|
|
+
|
|
|
+ } else if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(order.getBillType())) {//出库撤销
|
|
|
+ QueryWrapper<OrderItems> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("pid", order.getId());
|
|
|
+ queryWrapper.eq("tenant_id", AuthUtil.getTenantId());
|
|
|
+ queryWrapper.eq("bill_Type", OrderTypeEnum.WAREHOUSING.getType());
|
|
|
+ queryWrapper.eq("is_deleted", 0);
|
|
|
+ List<OrderItems> RkOrderItemsList = orderItemsMapper.selectList(queryWrapper);
|
|
|
+ for (OrderItems orderItems : orderItemsVOList) {
|
|
|
+ for (OrderItems RkOrderItems : RkOrderItemsList) {
|
|
|
+ if (orderItems.getBillNo().equals(RkOrderItems.getBillNo())) {
|
|
|
+ //撤回状态
|
|
|
+ orderItems.setIsIssue("2");
|
|
|
+ RkOrderItems.setIsIssue("2");
|
|
|
+ orderItemsMapper.updateById(orderItems);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ order.setStatus(0);
|
|
|
+ order.setConfirmStatus("0");
|
|
|
+ order.setUpdateTime(new Date());
|
|
|
+ order.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ order.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ baseMapper.updateById(order);
|
|
|
+ } else if (OrderTypeEnum.INVENTORY.getType().equals(order.getBillType())) {//盘点撤销
|
|
|
+ QueryWrapper<OrderItems> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("pid", order.getId());
|
|
|
+ queryWrapper.eq("tenant_id", AuthUtil.getTenantId());
|
|
|
+ queryWrapper.eq("bill_Type", OrderTypeEnum.WAREHOUSING.getType());
|
|
|
+ queryWrapper.eq("is_deleted", 0);
|
|
|
+ List<OrderItems> RkOrderItemsList = orderItemsMapper.selectList(queryWrapper);
|
|
|
+ for (OrderItems orderItems : orderItemsVOList) {
|
|
|
+ for (OrderItems Rk : RkOrderItemsList) {
|
|
|
+ if (orderItems.getBillNo().equals(Rk.getBillNo())) {
|
|
|
+ if (orderItems.getBalanceNumber().compareTo(new BigDecimal("0")) > 0) {
|
|
|
+ //撤回
|
|
|
+ Rk.setBalanceNumber(Rk.getBalanceNumber());
|
|
|
+ Rk.setBalanceMoney(Rk.getBalanceMoney());
|
|
|
+ orderItemsMapper.updateById(orderItems);
|
|
|
+ } else {
|
|
|
+ throw new SecurityException("库存为空,撤回失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ order.setStatus(0);
|
|
|
+ order.setUpdateTime(new Date());
|
|
|
+ order.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ order.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ baseMapper.updateById(order);
|
|
|
+ } else {
|
|
|
+ throw new SecurityException("撤销失败,单据类型不存在");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ throw new SecurityException("撤销失败,未找到单据信息");
|
|
|
+ }
|
|
|
+ return submitDto;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 订单生成账单 并且推送财务消息
|
|
|
*
|
|
|
* @param order 订单信息
|
|
|
@@ -1683,19 +1827,18 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
order.setCorpName(corpMessage.getData().getCname());
|
|
|
}
|
|
|
}
|
|
|
- ApplyDTO applyDTO = new ApplyDTO();
|
|
|
- applyDTO.setBillType(billType);
|
|
|
- applyDTO.setTradeType(order.getTradeType());
|
|
|
- applyDTO.setDc("D");
|
|
|
- applyDTO.setBelongCompany(order.getBelongToCorpName());
|
|
|
- applyDTO.setUrl(order.getUrl());
|
|
|
- applyDTO.setPageStatus(order.getPageStatus());
|
|
|
- applyDTO.setPageLabel(order.getPageLabel());
|
|
|
- applyDTO.setCheckType(order.getCheckType());
|
|
|
- applyDTO.setAccDate(order.getBusinesDate());
|
|
|
-
|
|
|
//判断是否未仓储费
|
|
|
if (!OrderTypeEnum.STORAGE_FEE.getType().equals(itemType)) {
|
|
|
+ ApplyDTO applyDTO = new ApplyDTO();
|
|
|
+ applyDTO.setBillType(billType);
|
|
|
+ applyDTO.setTradeType(order.getTradeType());
|
|
|
+ applyDTO.setDc("D");
|
|
|
+ applyDTO.setBelongCompany(order.getBelongToCorpName());
|
|
|
+ applyDTO.setUrl(order.getUrl());
|
|
|
+ applyDTO.setPageStatus(order.getPageStatus());
|
|
|
+ applyDTO.setPageLabel(order.getPageLabel());
|
|
|
+ applyDTO.setCheckType(order.getCheckType());
|
|
|
+ applyDTO.setAccDate(order.getBusinesDate());
|
|
|
|
|
|
BigDecimal amount = BigDecimal.ZERO;//对账金额 销售订单生成的金额 销售金额-本次使用返利金额+费用明细
|
|
|
BigDecimal quantity = BigDecimal.ZERO;//对账数量 数量为 就是轮胎条数的和
|
|
|
@@ -1800,6 +1943,17 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
+ ApplyDTO applyDTO = new ApplyDTO();
|
|
|
+ applyDTO.setBillType(billType);
|
|
|
+ applyDTO.setTradeType(order.getTradeType());
|
|
|
+ applyDTO.setDc("D");
|
|
|
+ applyDTO.setBelongCompany(order.getBelongToCorpName());
|
|
|
+ applyDTO.setUrl(order.getUrl());
|
|
|
+ applyDTO.setPageStatus(order.getPageStatus());
|
|
|
+ applyDTO.setPageLabel(order.getPageLabel());
|
|
|
+ applyDTO.setCheckType(order.getCheckType());
|
|
|
+ applyDTO.setAccDate(order.getBusinesDate());
|
|
|
+
|
|
|
BigDecimal amount = BigDecimal.ZERO;//对账金额 销售订单生成的金额 销售金额-本次使用返利金额+费用明细
|
|
|
List<Items> itemsList = new ArrayList<>();
|
|
|
Items items = new Items();
|
|
|
@@ -1870,8 +2024,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
} else {
|
|
|
if (agreementitems.getPrice().compareTo(new BigDecimal(0)) > 0) {
|
|
|
//业务天数乘以单价 = 剩余所需收费金额
|
|
|
- amount = amount.add((new BigDecimal(date + 1)).multiply(agreementitems.getPrice(), MathContext.UNLIMITED).multiply(order.getStorageQuantity()));
|
|
|
- text.append(order.getStorageQuantity()).append("*").append(agreementitems.getPrice()).append("*").append(date + 1);
|
|
|
+ amount = amount.add((new BigDecimal(date + 2)).multiply(agreementitems.getPrice(), MathContext.UNLIMITED).multiply(order.getStorageQuantity()));
|
|
|
+ text.append(order.getStorageQuantity()).append("*").append(agreementitems.getPrice()).append("*").append(date + 2);
|
|
|
}
|
|
|
}
|
|
|
count++;
|