|
|
@@ -64,6 +64,7 @@ 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;
|
|
|
+import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
@@ -112,6 +113,18 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
private final AgreementitemsServiceImpl agreementitemsService;//仓储费明细
|
|
|
private FinancingServiceImpl financingService;//融资
|
|
|
private IDictBizClient dictBizClient;//字典
|
|
|
+ private final RedisTemplate<String, Object> redisTemplate;
|
|
|
+
|
|
|
+ //客户
|
|
|
+// private final List<CorpsDesc> corpsDescList = castToList(redisTemplate.opsForValue().get("corps"), CorpsDesc.class);
|
|
|
+ //商品
|
|
|
+// private final List<GoodsDesc> goodsList = castToList(redisTemplate.opsForValue().get("goods"), GoodsDesc.class);
|
|
|
+ //仓库
|
|
|
+// private final List<StorageType> storageTypeList = castToList(redisTemplate.opsForValue().get("storageType"), StorageType.class);
|
|
|
+ //库区
|
|
|
+// private final List<StorageDesc> storageDescList = castToList(redisTemplate.opsForValue().get("storageDesc"), StorageDesc.class);
|
|
|
+ //用户
|
|
|
+// private final List<User> userList = castToList(redisTemplate.opsForValue().get("user"), User.class);
|
|
|
|
|
|
|
|
|
@Override
|
|
|
@@ -1040,24 +1053,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)
|
|
|
- .eq(Order::getOrderNo, submitDto.getOrderNo())
|
|
|
- .eq(Order::getBillType, OrderTypeEnum.WAREHOUSING.getType())
|
|
|
- .eq(Order::getTenantId, AuthUtil.getTenantId());
|
|
|
- Order RKOrder = baseMapper.selectOne(RKOrderLambdaQueryWrapper);
|
|
|
- if (RKOrder == null) {
|
|
|
- throw new SecurityException("更新入库数据失败");
|
|
|
- }
|
|
|
- //入库明细
|
|
|
- LambdaQueryWrapper<OrderItems> RKOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- RKOrderItemsLambdaQueryWrapper
|
|
|
- .eq(OrderItems::getIsDeleted, 0)
|
|
|
- .eq(OrderItems::getPid, RKOrder.getId())
|
|
|
- .eq(OrderItems::getTenantId, AuthUtil.getTenantId());
|
|
|
- List<OrderItems> RKOrderItemsList = orderItemsMapper.selectList(RKOrderItemsLambdaQueryWrapper);
|
|
|
//结余数量
|
|
|
BigDecimal balanceNumber = new BigDecimal(0);
|
|
|
//结余金额
|
|
|
@@ -1082,17 +1077,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
throw new Error("捆包号:" + orderItems.getBillNo() + "不允许重复");
|
|
|
}
|
|
|
orderItems.setBillType(OrderTypeEnum.WAREHOUSING.getType());
|
|
|
+ orderItems.setStockTime(submitDto.getStockTime());
|
|
|
} else if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(submitDto.getBillType())) {//出库添加逻辑
|
|
|
- //循环比对出库明细与入库明细捆包号是否相等,同事修改货物状态
|
|
|
- for (OrderItems items : RKOrderItemsList) {
|
|
|
- if (items.getBillNo().equals(orderItems.getBillNo())) {
|
|
|
- items.setIsIssue("4");
|
|
|
- orderItems.setIsIssue("4");
|
|
|
- orderItemsMapper.updateById(items);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
+ orderItems.setIsIssue("4");
|
|
|
orderItems.setBillType(OrderTypeEnum.OUT_WAREHOUSING.getType());
|
|
|
+ OrderItems items = new OrderItems();
|
|
|
+ items.setId(orderItems.getSrcItemId());
|
|
|
+ items.setIsIssue("4");
|
|
|
+ orderItemsMapper.updateById(items);
|
|
|
}
|
|
|
orderItems.setPid(submitDto.getId());
|
|
|
orderItems.setCreateTime(new Date());
|
|
|
@@ -1157,6 +1149,24 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
.eq(OrderItems::getBillType, OrderTypeEnum.WAREHOUSING.getType())
|
|
|
.eq(OrderItems::getIsDeleted, 0);
|
|
|
orderItemsBillNo = orderItemsMapper.selectList(orderItemsLambdaQueryWrapper);
|
|
|
+ if (ObjectUtils.isNotNull(orderItems.getId())) {
|
|
|
+ if (orderItemsBillNo.size() > 1) {
|
|
|
+ throw new Error("捆包号:" + orderItems.getBillNo() + "不允许重复");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (orderItemsBillNo.size() > 0) {
|
|
|
+ throw new Error("捆包号:" + orderItems.getBillNo() + "不允许重复");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(submitDto.getBillType())) {
|
|
|
+ if (ObjectUtils.isNull(orderItems.getId())) {
|
|
|
+ orderItems.setIsIssue("4");
|
|
|
+ orderItems.setBillType(OrderTypeEnum.OUT_WAREHOUSING.getType());
|
|
|
+ OrderItems items = new OrderItems();
|
|
|
+ items.setId(orderItems.getSrcItemId());
|
|
|
+ items.setIsIssue("4");
|
|
|
+ orderItemsMapper.updateById(items);
|
|
|
+ }
|
|
|
}
|
|
|
orderItems.setPid(submitDto.getId());
|
|
|
orderItems.setTenantId(AuthUtil.getTenantId());
|
|
|
@@ -1164,17 +1174,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
orderItems.setBalanceMoney(orderItems.getStorageAmount());//结余金额
|
|
|
//判断明细id是否为空 true新增 false修改
|
|
|
if (ObjectUtils.isNotNull(orderItems.getId())) {
|
|
|
- if (orderItemsBillNo.size() > 1) {
|
|
|
- throw new Error("捆包号:" + orderItems.getBillNo() + "不允许重复");
|
|
|
- }
|
|
|
orderItems.setUpdateTime(new Date());
|
|
|
orderItems.setUpdateUser(AuthUtil.getUserId());
|
|
|
orderItems.setUpdateUserName(AuthUtil.getUserName());
|
|
|
orderItemsMapper.updateById(orderItems);
|
|
|
} else {
|
|
|
- if (orderItemsBillNo.size() > 0) {
|
|
|
- throw new Error("捆包号:" + orderItems.getBillNo() + "不允许重复");
|
|
|
- }
|
|
|
orderItems.setCreateTime(new Date());
|
|
|
orderItems.setCreateUser(AuthUtil.getUserId());
|
|
|
orderItems.setCreateUserName(AuthUtil.getUserName());
|
|
|
@@ -1236,24 +1240,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)
|
|
|
- .eq(Order::getOrderNo, submitDto.getOrderNo())
|
|
|
- .eq(Order::getBillType, OrderTypeEnum.WAREHOUSING.getType())
|
|
|
- .eq(Order::getTenantId, AuthUtil.getTenantId());
|
|
|
- Order RKOrder = baseMapper.selectOne(RKOrderLambdaQueryWrapper);
|
|
|
- if (RKOrder == null) {
|
|
|
- throw new SecurityException("更新入库数据失败");
|
|
|
- }
|
|
|
- //入库明细
|
|
|
- LambdaQueryWrapper<OrderItems> RKOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- RKOrderItemsLambdaQueryWrapper
|
|
|
- .eq(OrderItems::getIsDeleted, 0)
|
|
|
- .eq(OrderItems::getPid, RKOrder.getId())
|
|
|
- .eq(OrderItems::getTenantId, AuthUtil.getTenantId());
|
|
|
- List<OrderItems> RKOrderItemsList = orderItemsMapper.selectList(RKOrderItemsLambdaQueryWrapper);
|
|
|
//结余数量
|
|
|
BigDecimal balanceNumber = new BigDecimal(0);
|
|
|
//结余金额
|
|
|
@@ -1279,34 +1265,32 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
.eq(OrderItems::getBillType, OrderTypeEnum.WAREHOUSING.getType())
|
|
|
.eq(OrderItems::getIsDeleted, 0);
|
|
|
orderItemsBillNo = orderItemsMapper.selectList(orderItemsLambdaQueryWrapper);
|
|
|
- if (orderItemsBillNo.size() > 1) {
|
|
|
- throw new Error("捆包号:" + orderItems.getBillNo() + "不允许重复");
|
|
|
+ if (ObjectUtils.isNotNull(orderItems.getId())) {
|
|
|
+ if (orderItemsBillNo.size() > 1) {
|
|
|
+ throw new Error("捆包号:" + orderItems.getBillNo() + "不允许重复");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (orderItemsBillNo.size() > 0) {
|
|
|
+ throw new Error("捆包号:" + orderItems.getBillNo() + "不允许重复");
|
|
|
+ }
|
|
|
}
|
|
|
orderItems.setBillType(OrderTypeEnum.WAREHOUSING.getType());
|
|
|
+ orderItems.setStockTime(submitDto.getStockTime());
|
|
|
} else if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(submitDto.getBillType())) {//出库 同时更新入库明细货物状态
|
|
|
- for (OrderItems items : RKOrderItemsList) {
|
|
|
- if (items.getBillNo().equals(orderItems.getBillNo())) {
|
|
|
- items.setIsIssue("4");
|
|
|
- orderItemsMapper.updateById(items);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
orderItems.setIsIssue("4");
|
|
|
orderItems.setBillType(OrderTypeEnum.OUT_WAREHOUSING.getType());
|
|
|
+ OrderItems items = new OrderItems();
|
|
|
+ items.setId(orderItems.getSrcItemId());
|
|
|
+ items.setIsIssue("4");
|
|
|
+ orderItemsMapper.updateById(items);
|
|
|
}
|
|
|
//判断明细id是否为空 true 新增 false修改
|
|
|
if (ObjectUtils.isNotNull(orderItems.getId())) {
|
|
|
- if (orderItemsBillNo.size() > 1) {
|
|
|
- throw new Error("捆包号:" + orderItems.getBillNo() + "不允许重复");
|
|
|
- }
|
|
|
orderItems.setUpdateTime(new Date());
|
|
|
orderItems.setUpdateUser(AuthUtil.getUserId());
|
|
|
orderItems.setUpdateUserName(AuthUtil.getUserName());
|
|
|
orderItemsMapper.updateById(orderItems);
|
|
|
} else {
|
|
|
- if (orderItemsBillNo.size() > 0) {
|
|
|
- throw new Error("捆包号:" + orderItems.getBillNo() + "不允许重复");
|
|
|
- }
|
|
|
orderItems.setCreateTime(new Date());
|
|
|
orderItems.setCreateUser(AuthUtil.getUserId());
|
|
|
orderItems.setCreateUserName(AuthUtil.getUserName());
|
|
|
@@ -1628,35 +1612,28 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
.eq(OrderItems::getTenantId, AuthUtil.getTenantId());
|
|
|
//出库明细
|
|
|
List<OrderItems> CkOrderItemsList = orderItemsMapper.selectList(CKOrderItemsLambdaQueryWrapper);
|
|
|
- int count = 0;
|
|
|
for (OrderItems orderItems : CkOrderItemsList) {
|
|
|
- for (OrderItems RKOrderItems : RKOrderItemsList) {
|
|
|
- //判断是否全部出库
|
|
|
- if (RKOrderItems.getIsIssue().equals("7")) {
|
|
|
- count++;
|
|
|
- }
|
|
|
- //判断出库与入库明细捆包号是否相等
|
|
|
- if (orderItems.getBillNo().equals(RKOrderItems.getBillNo())) {
|
|
|
- //判断该捆包号是否已出库
|
|
|
- if (orderItems.getIsIssue().equals("7")) {
|
|
|
- throw new SecurityException("捆包号:" + RKOrderItems.getBillNo() + "已出库");
|
|
|
- } else {
|
|
|
- //判断第几次出库审核
|
|
|
- if (0 == times) {//第一次审批
|
|
|
- RKOrderItems.setIsIssue("5");
|
|
|
- orderItems.setIsIssue("5");
|
|
|
- } else {//第二次审批
|
|
|
- RKOrderItems.setIsIssue("7");
|
|
|
- orderItems.setIsIssue("7");
|
|
|
- }
|
|
|
- }
|
|
|
- //修改入库明细
|
|
|
- orderItemsMapper.updateById(RKOrderItems);
|
|
|
- //修改出库明细
|
|
|
- orderItemsMapper.updateById(orderItems);
|
|
|
+ OrderItems RKOrderItems = new OrderItems();
|
|
|
+ RKOrderItems.setId(orderItems.getSrcItemId());
|
|
|
+ //判断该捆包号是否已出库
|
|
|
+ if (orderItems.getIsIssue().equals("7")) {
|
|
|
+ throw new SecurityException("捆包号:" + RKOrderItems.getBillNo() + "已出库");
|
|
|
+ } else {
|
|
|
+ //判断第几次出库审核
|
|
|
+ if (0 == times) {//第一次审批
|
|
|
+ RKOrderItems.setIsIssue("5");
|
|
|
+ orderItems.setIsIssue("5");
|
|
|
+ } else {//第二次审批
|
|
|
+ RKOrderItems.setIsIssue("7");
|
|
|
+ orderItems.setIsIssue("7");
|
|
|
}
|
|
|
+ //修改入库明细
|
|
|
+ orderItemsMapper.updateById(RKOrderItems);
|
|
|
+ //修改出库明细
|
|
|
+ orderItemsMapper.updateById(orderItems);
|
|
|
}
|
|
|
}
|
|
|
+ long count = RKOrderItemsList.stream().filter(R -> R.getIsIssue().equals("7")).count();
|
|
|
//判断入库明细是否已全部出库 true 修改入库主表总状态为已出库
|
|
|
if (count == RKOrderItemsList.size()) {
|
|
|
order.setSpecialCheckStatus(1);
|
|
|
@@ -1684,20 +1661,17 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
//盘点明细
|
|
|
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);
|
|
|
- break;
|
|
|
- }
|
|
|
+ //判断盘点与入库明细捆包号是否相等 true修改入库盘点量,结余量,结余金额
|
|
|
+ OrderItems RKOrderItems = new OrderItems();
|
|
|
+ RKOrderItems.setId(orderItems.getSrcItemId());
|
|
|
+ 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);
|
|
|
}
|
|
|
order.setStatus(3);
|
|
|
order.setOrderStatus("审批通过");
|
|
|
@@ -1744,26 +1718,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if (order == null) {
|
|
|
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("更新入库数据失败");
|
|
|
- }
|
|
|
- //入库明细
|
|
|
- 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);
|
|
|
-
|
|
|
//入库审批驳回
|
|
|
if (OrderTypeEnum.WAREHOUSING.getType().equals(order.getBillType())) {
|
|
|
if (order.getStatus() == 2) {
|
|
|
@@ -1779,7 +1733,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
LambdaQueryWrapper<OrderItems> CKOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
CKOrderItemsLambdaQueryWrapper
|
|
|
.eq(OrderItems::getIsDeleted, 0)
|
|
|
- .eq(OrderItems::getPid, RKOrder.getId())
|
|
|
+ .eq(OrderItems::getPid, order.getId())
|
|
|
.eq(OrderItems::getBillType, OrderTypeEnum.WAREHOUSING.getType())
|
|
|
.eq(OrderItems::getTenantId, AuthUtil.getTenantId());
|
|
|
List<OrderItems> CKOrderItemsList = orderItemsMapper.selectList(CKOrderItemsLambdaQueryWrapper);
|
|
|
@@ -1801,16 +1755,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
isIssue = 6;
|
|
|
}
|
|
|
for (OrderItems orderItems : CKOrderItemsList) {
|
|
|
- for (OrderItems RKOrderItems : RKOrderItemsList) {
|
|
|
- //判断出库与入库明细捆包号是否相等
|
|
|
- if (orderItems.getBillNo().equals(RKOrderItems.getBillNo())) {
|
|
|
- RKOrderItems.setIsIssue(isIssue + "");
|
|
|
- orderItems.setIsIssue(isIssue + "");
|
|
|
- orderItemsMapper.updateById(RKOrderItems);
|
|
|
- orderItemsMapper.updateById(orderItems);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
+ OrderItems RKOrderItems = new OrderItems();
|
|
|
+ RKOrderItems.setId(orderItems.getSrcItemId());
|
|
|
+ RKOrderItems.setIsIssue(isIssue + "");
|
|
|
+ orderItems.setIsIssue(isIssue + "");
|
|
|
+ orderItemsMapper.updateById(RKOrderItems);
|
|
|
+ orderItemsMapper.updateById(orderItems);
|
|
|
}
|
|
|
//盘点审批驳回
|
|
|
} else if (OrderTypeEnum.INVENTORY.getType().equals(order.getBillType())) {
|
|
|
@@ -1890,7 +1840,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
LambdaQueryWrapper<Order> RKOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
RKOrderLambdaQueryWrapper
|
|
|
.eq(Order::getIsDeleted, 0)
|
|
|
- .eq(Order::getOrderNo, order.getOrderNo())
|
|
|
+ .eq(Order::getSysNo, order.getOrderNo())
|
|
|
.eq(Order::getBillType, OrderTypeEnum.WAREHOUSING.getType())
|
|
|
.eq(Order::getTenantId, AuthUtil.getTenantId());
|
|
|
Order RKOrder = orderMapper.selectOne(RKOrderLambdaQueryWrapper);
|
|
|
@@ -1898,29 +1848,21 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
throw new SecurityException("更新入库数据失败");
|
|
|
}
|
|
|
RKOrder.setSpecialCheckStatus(1);
|
|
|
+ RKOrder.setConfirmStatus("1");
|
|
|
orderMapper.updateById(RKOrder);
|
|
|
-
|
|
|
- //获取入库明细
|
|
|
- QueryWrapper<OrderItems> RKqueryWrapper = new QueryWrapper<>();
|
|
|
- RKqueryWrapper.eq("pid", RKOrder.getId());
|
|
|
- RKqueryWrapper.eq("tenant_id", AuthUtil.getTenantId());
|
|
|
- RKqueryWrapper.eq("is_deleted", 0);
|
|
|
- List<OrderItems> RKderItemsList = orderItemsMapper.selectList(queryWrapper);
|
|
|
for (OrderItems orderItems : orderItemsList) {
|
|
|
- for (OrderItems RKorderItems : RKderItemsList) {
|
|
|
- //判断入库捆包号是否与出库捆包号相等 同时更细入库,出库扫描状态
|
|
|
- if (orderItems.getBillNo().equals(RKorderItems.getBillNo())) {
|
|
|
- orderItems.setUpdateTime(new Date());
|
|
|
- orderItems.setUpdateUser(AuthUtil.getUserId());
|
|
|
- RKorderItems.setScanningComparison("Y");
|
|
|
- orderItemsMapper.updateById(RKorderItems);
|
|
|
- orderItems.setUpdateTime(new Date());
|
|
|
- orderItems.setUpdateUser(AuthUtil.getUserId());
|
|
|
- orderItems.setScanningComparison("Y");
|
|
|
- orderItemsMapper.updateById(orderItems);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
+ OrderItems RKorderItems = new OrderItems();
|
|
|
+ RKorderItems.setId(orderItems.getSrcItemId());
|
|
|
+ orderItems.setUpdateTime(new Date());
|
|
|
+ orderItems.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ RKorderItems.setScanningComparison("Y");
|
|
|
+ RKorderItems.setIsIssue("7");
|
|
|
+ orderItemsMapper.updateById(RKorderItems);
|
|
|
+ orderItems.setUpdateTime(new Date());
|
|
|
+ orderItems.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ orderItems.setScanningComparison("Y");
|
|
|
+ orderItems.setIsIssue("7");
|
|
|
+ orderItemsMapper.updateById(orderItems);
|
|
|
}
|
|
|
} else if (OrderTypeEnum.WAREHOUSING.getType().equals(order.getBillType())) {//入库手动修改货物状态为在库
|
|
|
QueryWrapper<OrderItems> queryWrapper = new QueryWrapper<>();
|
|
|
@@ -2045,16 +1987,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
isIssue = 6;
|
|
|
}
|
|
|
for (OrderItems orderItems : orderItemsVOList) {
|
|
|
- for (OrderItems RKOrderItems : RKOrderItemsList) {
|
|
|
- //判断出库与入库明细捆包号是否相等
|
|
|
- if (orderItems.getBillNo().equals(RKOrderItems.getBillNo())) {
|
|
|
- RKOrderItems.setIsIssue(isIssue + "");
|
|
|
- orderItems.setIsIssue(isIssue + "");
|
|
|
- orderItemsMapper.updateById(RKOrderItems);
|
|
|
- orderItemsMapper.updateById(orderItems);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
+ OrderItems RKOrderItems = new OrderItems();
|
|
|
+ RKOrderItems.setId(orderItems.getSrcItemId());
|
|
|
+ RKOrderItems.setIsIssue(isIssue + "");
|
|
|
+ orderItems.setIsIssue(isIssue + "");
|
|
|
+ orderItemsMapper.updateById(RKOrderItems);
|
|
|
+ orderItemsMapper.updateById(orderItems);
|
|
|
}
|
|
|
//盘点审批撤销
|
|
|
} else if (OrderTypeEnum.INVENTORY.getType().equals(order.getBillType())) {
|
|
|
@@ -2065,18 +2003,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
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);
|
|
|
- break;
|
|
|
- } else {
|
|
|
- throw new SecurityException("库存为空,撤回失败");
|
|
|
- }
|
|
|
- }
|
|
|
+ OrderItems RKOrderItems = new OrderItems();
|
|
|
+ RKOrderItems.setId(orderItems.getSrcItemId());
|
|
|
+ if (orderItems.getBalanceNumber().compareTo(new BigDecimal("0")) > 0) {
|
|
|
+ //撤回
|
|
|
+ RKOrderItems.setBalanceNumber(orderItems.getBalanceNumber());
|
|
|
+ RKOrderItems.setBalanceMoney(orderItems.getBalanceMoney());
|
|
|
+ orderItemsMapper.updateById(orderItems);
|
|
|
+ } else {
|
|
|
+ throw new SecurityException("库存为空,撤回失败");
|
|
|
}
|
|
|
}
|
|
|
order.setStatus(0);
|
|
|
@@ -2112,43 +2047,21 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
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 = orderMapper.selectOne(RKOrderLambdaQueryWrapper);
|
|
|
- if (RKOrder == null) {
|
|
|
- throw new SecurityException("更新入库数据失败");
|
|
|
- }
|
|
|
- //入库明细
|
|
|
- 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);
|
|
|
-
|
|
|
//出库明细
|
|
|
LambdaQueryWrapper<OrderItems> CKOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
CKOrderItemsLambdaQueryWrapper
|
|
|
.eq(OrderItems::getIsDeleted, 0)
|
|
|
- .eq(OrderItems::getPid, RKOrder.getId())
|
|
|
+ .eq(OrderItems::getPid, order.getId())
|
|
|
.eq(OrderItems::getBillType, OrderTypeEnum.WAREHOUSING.getType())
|
|
|
.eq(OrderItems::getTenantId, AuthUtil.getTenantId());
|
|
|
List<OrderItems> CKOrderItemsList = orderItemsMapper.selectList(CKOrderItemsLambdaQueryWrapper);
|
|
|
for (OrderItems orderItems : CKOrderItemsList) {
|
|
|
- for (OrderItems Rk : RKOrderItemsList) {
|
|
|
- if (orderItems.getBillNo().equals(Rk.getBillNo())) {
|
|
|
- orderItems.setIsIssue(isIssue);
|
|
|
- Rk.setIsIssue(isIssue);
|
|
|
- orderItemsMapper.updateById(Rk);
|
|
|
- orderItemsMapper.updateById(orderItems);
|
|
|
- }
|
|
|
- }
|
|
|
+ OrderItems Rk = new OrderItems();
|
|
|
+ Rk.setId(orderItems.getSrcItemId());
|
|
|
+ orderItems.setIsIssue(isIssue);
|
|
|
+ Rk.setIsIssue(isIssue);
|
|
|
+ orderItemsMapper.updateById(Rk);
|
|
|
+ orderItemsMapper.updateById(orderItems);
|
|
|
}
|
|
|
}
|
|
|
order.setStatus(status);
|
|
|
@@ -2170,6 +2083,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
|
|
|
public IPage<Order> selectOrderList(Order order, Query query) {
|
|
|
+
|
|
|
QueryWrapper<Order> queryWrapper = new QueryWrapper<>();
|
|
|
queryWrapper.eq("is_deleted", 0)
|
|
|
.eq("tenant_id", AuthUtil.getTenantId())
|
|
|
@@ -2178,8 +2092,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
.eq(ObjectUtils.isNotNull(order.getBusinessType()), "business_type", order.getBusinessType());
|
|
|
if (ObjectUtils.isNotNull(order.getPurchaser())) {
|
|
|
//货权人
|
|
|
+// CorpsDesc corpsDesc = corpsDescList.stream().filter(corps -> corps.getCname().equals(order.getPurchaser())).findFirst().orElse(null);
|
|
|
R<CorpsDesc> corpsDesc = corpsDescClient.getCorpByName(order.getPurchaser(), AuthUtil.getTenantId());
|
|
|
- if (corpsDesc.isSuccess()) {
|
|
|
+ if (ObjectUtils.isNotNull(corpsDesc)) {
|
|
|
queryWrapper.eq(ObjectUtils.isNotNull(order.getPurchaserId()), "purchaser_id", corpsDesc.getData().getId());
|
|
|
}
|
|
|
} else {
|
|
|
@@ -2187,6 +2102,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
if (ObjectUtils.isNotNull(order.getStorageName())) {
|
|
|
//仓库
|
|
|
+// StorageType storageType = storageTypeList.stream().filter(storageTypes -> storageTypes.getCname().equals(order.getStorageName())).findFirst().orElse(null);
|
|
|
StorageType storageType = iStorageClient.storageTypeName(order.getStorageName());
|
|
|
if (ObjectUtils.isNotNull(storageType)) {
|
|
|
queryWrapper.eq("storage_id", storageType.getId());
|
|
|
@@ -2225,6 +2141,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
for (Order orders : orderList) {
|
|
|
if (ObjectUtils.isNotNull(orders.getStorageId())) {
|
|
|
//仓库
|
|
|
+// StorageType storageType = storageTypeList.stream().filter(storageTypes -> storageTypes.getId().equals(orders.getStorageId())).findFirst().orElse(null);
|
|
|
StorageType storageType = iStorageClient.getStorageType(orders.getStorageId());
|
|
|
if (ObjectUtils.isNotNull(storageType)) {
|
|
|
orders.setStorageName(storageType.getCname());
|
|
|
@@ -2232,21 +2149,25 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
//货权人
|
|
|
if (ObjectUtils.isNotNull(orders.getPurchaserId())) {
|
|
|
+// CorpsDesc corpsDesc = corpsDescList.stream().filter(corps -> corps.getId().equals(orders.getPurchaserId())).findFirst().orElse(null);
|
|
|
R<CorpsDesc> corpsDesc = corpsDescClient.getCorpMessage(orders.getPurchaserId());
|
|
|
- if (corpsDesc.isSuccess()) {
|
|
|
+ if (ObjectUtils.isNotNull(corpsDesc)) {
|
|
|
orders.setPurchaser(corpsDesc.getData().getCname());
|
|
|
}
|
|
|
}
|
|
|
//供应商
|
|
|
if (ObjectUtils.isNotNull(orders.getCorpId())) {
|
|
|
+// CorpsDesc corpsDesc = corpsDescList.stream().filter(corps -> corps.getId().equals(orders.getCorpId())).findFirst().orElse(null);
|
|
|
R<CorpsDesc> corpsDesc = corpsDescClient.getCorpMessage(orders.getCorpId());
|
|
|
- if (corpsDesc.isSuccess()) {
|
|
|
+ if (ObjectUtils.isNotNull(corpsDesc)) {
|
|
|
orders.setCorpName(corpsDesc.getData().getCname());
|
|
|
}
|
|
|
}
|
|
|
- R<User> userR = userClient.userInfoById(orders.getCreateUser());
|
|
|
- if (userR.isSuccess()) {
|
|
|
- orders.setSalesName(userR.getData().getName());
|
|
|
+ //操作人
|
|
|
+// User user = userList.stream().filter(u -> u.getId().equals(orders.getCreateUser())).findFirst().orElse(null);
|
|
|
+ R<User> user = userClient.userInfoById(orders.getCreateUser());
|
|
|
+ if (ObjectUtils.isNotNull(user)) {
|
|
|
+ orders.setSalesName(user.getData().getName());
|
|
|
}
|
|
|
}
|
|
|
return pages;
|
|
|
@@ -2304,6 +2225,64 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
return R.data("操作成功");
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * app扫码比对
|
|
|
+ *
|
|
|
+ * @param id
|
|
|
+ * @param map
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public R appScanningCodeComparison(Long id, List<Map<String, String>> map) {
|
|
|
+ for (Map<String, String> ma : map) {
|
|
|
+ OrderItems orderItems = orderItemsService.getById(Long.parseLong(String.valueOf(ma.get("itemId"))));
|
|
|
+ if (ObjectUtils.isNotNull(orderItems)) {
|
|
|
+ orderItems.setScanningComparison("Y");
|
|
|
+ orderItems.setUpdateTime(new Date());
|
|
|
+ orderItems.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ orderItemsService.updateById(orderItems);
|
|
|
+ return R.data(orderItems);
|
|
|
+ } else {
|
|
|
+ return R.fail("扫码比对失败!未在本单据中找到次码信息");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return R.success("操作成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * app扫码添加明细
|
|
|
+ *
|
|
|
+ * @param billNo
|
|
|
+ * @param id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public R scanningCodeAdd(String billNo, Long id) {
|
|
|
+ Order order = baseMapper.selectById(id);
|
|
|
+ LambdaQueryWrapper<Order> RKlambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ RKlambdaQueryWrapper.eq(Order::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Order::getIsDeleted, 0)
|
|
|
+ .eq(Order::getSysNo, order.getOrderNo())
|
|
|
+ .eq(Order::getBillType, billNo)
|
|
|
+ .eq(Order::getTradeType, "3");
|
|
|
+ Order RKOrder = baseMapper.selectOne(RKlambdaQueryWrapper);
|
|
|
+ LambdaQueryWrapper<OrderItems> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapper.eq(OrderItems::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(OrderItems::getIsDeleted, 0)
|
|
|
+ .eq(OrderItems::getPid, RKOrder.getId())
|
|
|
+ .eq(OrderItems::getIsIssue, "3")
|
|
|
+ .eq(OrderItems::getScanningComparison, "N")
|
|
|
+ .eq(OrderItems::getSubmitPay, 1);
|
|
|
+ List<OrderItems> orderItemsList = orderItemsService.list(lambdaQueryWrapper);
|
|
|
+ for (OrderItems orderItems : orderItemsList) {
|
|
|
+ if (orderItems.getBillNo().equals(billNo)) {
|
|
|
+ return R.data(orderItems);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return R.fail("该货物不在本单据中");
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 订单生成账单 并且推送财务消息
|
|
|
*
|
|
|
@@ -2470,76 +2449,73 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
Items items = new Items();
|
|
|
items.setItemType("仓储费");
|
|
|
|
|
|
- int date = 0;
|
|
|
//获取入库日期
|
|
|
- LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ LambdaQueryWrapper<OrderItems> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
orderLambdaQueryWrapper
|
|
|
- .eq(Order::getOrderNo, order.getOrderNo())
|
|
|
- .eq(Order::getBillType, OrderTypeEnum.WAREHOUSING.getType())
|
|
|
- .eq(Order::getTradeType, OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType())
|
|
|
- .eq(Order::getIsDeleted, 0)
|
|
|
- .eq(Order::getTenantId, AuthUtil.getTenantId());
|
|
|
- Order RKoOrder = baseMapper.selectOne(orderLambdaQueryWrapper);
|
|
|
- if (RKoOrder == null) {
|
|
|
- throw new SecurityException("未找到入库单据");
|
|
|
- }
|
|
|
- //获取存放天数
|
|
|
- if (ObjectUtils.isNotNull(order.getBusinesDate()) && ObjectUtils.isNotNull(RKoOrder.getBusinesDate())) {
|
|
|
- date = (int) ((order.getBusinesDate().getTime() - RKoOrder.getBusinesDate().getTime()) / (1000 * 3600 * 24));
|
|
|
- if (0 == date || date - 1 == 0) {
|
|
|
- date = 1;
|
|
|
- } else {
|
|
|
- date = date - 1;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //获取仓储费协议
|
|
|
- LambdaQueryWrapper<Agreement> agreementLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- agreementLambdaQueryWrapper
|
|
|
- .eq(Agreement::getCorpId, order.getPurchaserId())
|
|
|
- .eq(Agreement::getFeetypeId, "0")
|
|
|
- .eq(Agreement::getDelFlag, "0")
|
|
|
- .eq(Agreement::getStatus, "0")
|
|
|
- .eq(Agreement::getTenantId, AuthUtil.getTenantId());
|
|
|
- if (order.getOrderItemsList().size() > 0) {
|
|
|
- agreementLambdaQueryWrapper.apply("FIND_IN_SET(" + order.getOrderItemsList().get(0).getItemId() + ",goods_id)");
|
|
|
- }
|
|
|
- agreementLambdaQueryWrapper.apply("FIND_IN_SET(" + order.getStorageId() + ",warehouse_id)");
|
|
|
- Agreement agreement = agreementService.getOne(agreementLambdaQueryWrapper);
|
|
|
- if (agreement == null) {
|
|
|
- throw new SecurityException("未找到仓储费协议");
|
|
|
- }
|
|
|
- //获取实际收费天数 (存放天数减去免费天数)
|
|
|
- int days = date;
|
|
|
-
|
|
|
- //获取仓储费协议明细
|
|
|
- LambdaQueryWrapper<Agreementitems> agreementItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- agreementItemsLambdaQueryWrapper
|
|
|
- .eq(Agreementitems::getPid, agreement.getId())
|
|
|
- .orderByAsc(Agreementitems::getLineno)
|
|
|
- .eq(Agreementitems::getDelFlag, "0");
|
|
|
- List<Agreementitems> agreementItemsList = agreementitemsService.list(agreementItemsLambdaQueryWrapper);
|
|
|
- int count = 0;
|
|
|
+ .eq(OrderItems::getPid, pid)
|
|
|
+ .eq(OrderItems::getBillType, OrderTypeEnum.OUT_WAREHOUSING.getType())
|
|
|
+ .eq(OrderItems::getIsDeleted, 0)
|
|
|
+ .eq(OrderItems::getTenantId, AuthUtil.getTenantId());
|
|
|
+ List<OrderItems> orderItemsList = order.getOrderItemsList();
|
|
|
StringBuilder text = new StringBuilder();
|
|
|
- for (Agreementitems agreementitems : agreementItemsList) {
|
|
|
- if (count == 0 && days <= agreementitems.getEnDays()) {
|
|
|
- break;
|
|
|
- } else {
|
|
|
- //判断实际存放天数是否大于本条结束天数
|
|
|
- if (days >= agreementitems.getEnDays()) {
|
|
|
- //本条收费天数乘以单价 = 所需收费金额
|
|
|
- amount = amount.add((new BigDecimal((agreementitems.getEnDays() - agreementitems.getFromDays() + 1), MathContext.UNLIMITED)).multiply(agreementitems.getPrice(), MathContext.UNLIMITED).multiply(order.getStorageQuantity()));
|
|
|
- //业务天数减去本条结束天数所得天数为下一条要收费天数
|
|
|
- date = date - (agreementitems.getEnDays() - agreementitems.getFromDays() + 1);
|
|
|
- text.append(order.getStorageQuantity()).append("*").append(agreementitems.getPrice()).append("*").append(agreementitems.getEnDays() - agreementitems.getFromDays() + 1).append("+");
|
|
|
+ Long feeUnitId = 0l;
|
|
|
+ for (OrderItems orderItems : orderItemsList) {
|
|
|
+ int date = 0;
|
|
|
+ //获取存放天数
|
|
|
+ if (ObjectUtils.isNotNull(order.getBusinesDate()) && ObjectUtils.isNotNull(orderItems.getStockTime())) {
|
|
|
+ date = (int) ((order.getBusinesDate().getTime() - orderItems.getStockTime().getTime()) / (1000 * 3600 * 24));
|
|
|
+ if (0 == date || date - 1 == 0) {
|
|
|
+ date = 1;
|
|
|
} else {
|
|
|
- if (agreementitems.getPrice().compareTo(new BigDecimal(0)) > 0) {
|
|
|
- //业务天数乘以单价 = 剩余所需收费金额
|
|
|
- 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);
|
|
|
+ date = date - 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //获取仓储费协议
|
|
|
+ LambdaQueryWrapper<Agreement> agreementLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ agreementLambdaQueryWrapper
|
|
|
+ .eq(Agreement::getCorpId, order.getPurchaserId())
|
|
|
+ .eq(Agreement::getFeetypeId, "0")
|
|
|
+ .eq(Agreement::getDelFlag, "0")
|
|
|
+ .eq(Agreement::getStatus, "0")
|
|
|
+ .eq(Agreement::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .apply("FIND_IN_SET(" + orderItems.getItemId() + ",goods_id)")
|
|
|
+ .apply("FIND_IN_SET(" + order.getStorageId() + ",warehouse_id)");
|
|
|
+ Agreement agreement = agreementService.getOne(agreementLambdaQueryWrapper);
|
|
|
+ if (agreement == null) {
|
|
|
+ throw new SecurityException("未找到仓储费协议");
|
|
|
+ }
|
|
|
+ //获取实际收费天数 (存放天数减去免费天数)
|
|
|
+ int days = date;
|
|
|
+
|
|
|
+ //获取仓储费协议明细
|
|
|
+ LambdaQueryWrapper<Agreementitems> agreementItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ agreementItemsLambdaQueryWrapper
|
|
|
+ .eq(Agreementitems::getPid, agreement.getId())
|
|
|
+ .orderByAsc(Agreementitems::getLineno)
|
|
|
+ .eq(Agreementitems::getDelFlag, "0");
|
|
|
+ List<Agreementitems> agreementItemsList = agreementitemsService.list(agreementItemsLambdaQueryWrapper);
|
|
|
+ int count = 0;
|
|
|
+ for (Agreementitems agreementitems : agreementItemsList) {
|
|
|
+ feeUnitId = agreementitems.getFeeUnitId();
|
|
|
+ if (count == 0 && days <= agreementitems.getEnDays()) {
|
|
|
+ break;
|
|
|
+ } else {
|
|
|
+ //判断实际存放天数是否大于本条结束天数
|
|
|
+ if (days >= agreementitems.getEnDays()) {
|
|
|
+ //本条收费天数乘以单价 = 所需收费金额
|
|
|
+ amount = amount.add((new BigDecimal((agreementitems.getEnDays() - agreementitems.getFromDays() + 1), MathContext.UNLIMITED)).multiply(agreementitems.getPrice(), MathContext.UNLIMITED).multiply(order.getStorageQuantity()));
|
|
|
+ //业务天数减去本条结束天数所得天数为下一条要收费天数
|
|
|
+ date = date - (agreementitems.getEnDays() - agreementitems.getFromDays() + 1);
|
|
|
+ text.append(order.getStorageQuantity()).append("*").append(agreementitems.getPrice()).append("*").append(agreementitems.getEnDays() - agreementitems.getFromDays() + 1).append("+");
|
|
|
+ } else {
|
|
|
+ if (agreementitems.getPrice().compareTo(new BigDecimal(0)) > 0) {
|
|
|
+ //业务天数乘以单价 = 剩余所需收费金额
|
|
|
+ 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++;
|
|
|
}
|
|
|
- count++;
|
|
|
}
|
|
|
}
|
|
|
//账单数据
|
|
|
@@ -2585,7 +2561,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
orderFees.setAmount(amount);
|
|
|
orderFees.setCurrency("CNY");
|
|
|
orderFees.setExchangeRate(new BigDecimal("1"));
|
|
|
- orderFees.setUnit(ObjectUtils.isNull(agreementItemsList) ? "" : agreementItemsList.get(0).getFeeUnitId().toString());
|
|
|
+ orderFees.setUnit(feeUnitId + "");
|
|
|
orderFees.setFeesType(1);
|
|
|
orderFees.setRemarks(text.toString());
|
|
|
orderFees.setCreateTime(new Date());
|
|
|
@@ -2688,4 +2664,26 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 将Object转换成List类型
|
|
|
+ *
|
|
|
+ * @param obj Object对象
|
|
|
+ * @param clazz 数据类型
|
|
|
+ * @param <T> 泛型类型
|
|
|
+ * @return List类型
|
|
|
+ */
|
|
|
+ public static <T> List<T> castToList(Object obj, Class<T> clazz) {
|
|
|
+ List<T> resList = new ArrayList<>();
|
|
|
+ // 如果不是List<?>对象,是没有办法转换的
|
|
|
+ if (obj instanceof List<?>) {
|
|
|
+ for (Object o : (List<?>) obj) {
|
|
|
+ // 将对应的元素进行类型转换
|
|
|
+ resList.add(clazz.cast(o));
|
|
|
+ }
|
|
|
+ return resList;
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
}
|