|
|
@@ -15,6 +15,7 @@ import com.trade.purchase.agreement.entity.Agreementitems;
|
|
|
import com.trade.purchase.agreement.service.impl.AgreementServiceImpl;
|
|
|
import com.trade.purchase.agreement.service.impl.AgreementitemsServiceImpl;
|
|
|
import com.trade.purchase.excel.CMYWarehousingExcel;
|
|
|
+import com.trade.purchase.excel.GeneralLedgerExcel;
|
|
|
import com.trade.purchase.excel.PurchaseOrderExcel;
|
|
|
import com.trade.purchase.exception.OrderException;
|
|
|
import com.trade.purchase.financing.service.impl.FinancingServiceImpl;
|
|
|
@@ -44,7 +45,6 @@ import org.springblade.client.feign.*;
|
|
|
import org.springblade.client.vo.GoodsDescVO;
|
|
|
import org.springblade.common.utils.BarCodeTest;
|
|
|
import org.springblade.common.utils.QRCodeTest;
|
|
|
-import org.springblade.core.mp.support.Query;
|
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
|
import org.springblade.core.secure.utils.SecureUtil;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
@@ -966,128 +966,34 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<Order> warehousing(List<CMYWarehousingExcel> excelList) {
|
|
|
- List<Order> orderList = new ArrayList<>();
|
|
|
- Order order = new Order();
|
|
|
- //获取系统编号
|
|
|
- R billNo = serialClient.getBillNo(OrderTypeEnum.WAREHOUSING.getType(), OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType(), OrderTypeEnum.PURCHASE.getType());
|
|
|
- if (!billNo.isSuccess()) {
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- throw new Error("生成系统编号失败");
|
|
|
- }
|
|
|
- order.setSysNo(billNo.getData().toString());//入库单号
|
|
|
- order.setBillType(OrderTypeEnum.WAREHOUSING.getType());//业务类型
|
|
|
- order.setTradeType(OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType());//类型
|
|
|
- boolean storageName = excelList.stream().allMatch(list -> list.getStorageName().equals(excelList.get(0).getStorageName()));
|
|
|
- if (storageName) {
|
|
|
- //仓库
|
|
|
- StorageType storageType = iStorageClient.storageTypeName(excelList.get(0).getStorageName());
|
|
|
- if (ObjectUtils.isNotNull(storageType)) {
|
|
|
- order.setStorageId(storageType.getId());
|
|
|
- }
|
|
|
- } else {
|
|
|
- throw new Error("导入数据存在多个仓库,不允许导入");
|
|
|
- }
|
|
|
- boolean purchaser = excelList.stream().allMatch(list -> list.getStorageName().equals(excelList.get(0).getStorageName()));
|
|
|
- if (purchaser) {
|
|
|
- R<CorpsDesc> corpsDesc = corpsDescClient.getCorpByName(excelList.get(0).getStorageName(), AuthUtil.getTenantId());
|
|
|
- if (corpsDesc.isSuccess()) {
|
|
|
- order.setPurchaser(excelList.get(0).getPurchaserName());//货权人
|
|
|
- order.setPurchaserId(corpsDesc.getData().getId());
|
|
|
- }
|
|
|
- } else {
|
|
|
- throw new Error("导入数据存在多个货权人,不允许导入");
|
|
|
- }
|
|
|
- boolean businesDate = excelList.stream().allMatch(list -> list.getStorageName().equals(excelList.get(0).getStorageName()));
|
|
|
- if (businesDate) {
|
|
|
- //入库时间
|
|
|
- if (ObjectUtils.isNotNull(excelList.get(0).getBusinesDate())) {
|
|
|
- order.setStockTime(excelList.get(0).getBusinesDate());
|
|
|
- } else {
|
|
|
- order.setStockTime(new Date());
|
|
|
- }
|
|
|
- } else {
|
|
|
- throw new Error("导入数据存在多个入库时间,不允许导入");
|
|
|
- }
|
|
|
+ public List<CMYWarehousingExcel> warehousing(List<CMYWarehousingExcel> excelList) {
|
|
|
|
|
|
- boolean corpName = excelList.stream().allMatch(list -> list.getStorageName().equals(excelList.get(0).getCorpName()));
|
|
|
- if (corpName) {
|
|
|
- //供应商
|
|
|
- CorpsDesc corpsDesc = corpsDescClient.getCorpsDesc(excelList.get(0).getCorpName(), OrderTypeEnum.SUPPLIER.getType());
|
|
|
- if (ObjectUtils.isNotNull(corpsDesc)) {
|
|
|
- order.setCorpId(corpsDesc.getId());
|
|
|
- }
|
|
|
- } else {
|
|
|
- throw new Error("导入数据存在多个供应商,不允许导入");
|
|
|
- }
|
|
|
- boolean vehicleShipNumber = excelList.stream().allMatch(list -> list.getStorageName().equals(excelList.get(0).getVehicleShipNumber()));
|
|
|
- if (vehicleShipNumber) {
|
|
|
- order.setVehicleShipNumber(excelList.get(0).getVehicleShipNumber());//车船号
|
|
|
- } else {
|
|
|
- throw new Error("导入数据存在多个车船号,不允许导入");
|
|
|
- }
|
|
|
- boolean businessType = excelList.stream().allMatch(list -> list.getStorageName().equals(excelList.get(0).getBillType()));
|
|
|
- if (businessType) {
|
|
|
- order.setBusinessType(excelList.get(0).getBillType());//业务类型
|
|
|
- } else {
|
|
|
- throw new Error("导入数据存在多个业务类型,不允许导入");
|
|
|
- }
|
|
|
- order.setCreateUser(AuthUtil.getUserId());
|
|
|
- order.setCreateTime(new Date());
|
|
|
- order.setTenantId(AuthUtil.getTenantId());
|
|
|
- order.setBillNo(excelList.stream().map(CMYWarehousingExcel::getPackingNo).collect(Collectors.toList()).toString());
|
|
|
- baseMapper.insert(order);
|
|
|
- BigDecimal balanceNumber = new BigDecimal(0);
|
|
|
- BigDecimal balanceMoney = new BigDecimal(0);
|
|
|
for (CMYWarehousingExcel cMYWarehousingExcel : excelList) {
|
|
|
+
|
|
|
OrderItems orderItems = new OrderItems();
|
|
|
- orderItems.setPid(order.getId());
|
|
|
|
|
|
orderItems.setContainerNo(cMYWarehousingExcel.getContainerNo());//箱号
|
|
|
- //库区
|
|
|
- StorageDesc storageDesc = iStorageClient.getName(cMYWarehousingExcel.getReservoirAreaName());
|
|
|
- if (ObjectUtils.isNotNull(storageDesc)) {
|
|
|
- orderItems.setStorageId(storageDesc.getId());
|
|
|
+ if (ObjectUtils.isNotNull(cMYWarehousingExcel.getReservoirAreaName())) {
|
|
|
+ //库区
|
|
|
+ StorageDesc storageDesc = iStorageClient.getName(cMYWarehousingExcel.getReservoirAreaName());
|
|
|
+ if (ObjectUtils.isNotNull(storageDesc)) {
|
|
|
+ cMYWarehousingExcel.setStorageId(storageDesc.getId());
|
|
|
+ } else {
|
|
|
+ throw new Error(cMYWarehousingExcel.getReservoirAreaName() + "库区不存在,请先维护信息在导入");
|
|
|
+ }
|
|
|
}
|
|
|
- //品名
|
|
|
- GoodsDesc goodsDesc = goodsDescClient.getGoodsDescByCname(cMYWarehousingExcel.getGoodsName());
|
|
|
- if (ObjectUtils.isNotNull(goodsDesc)) {
|
|
|
- orderItems.setItemId(goodsDesc.getId());
|
|
|
- } else {
|
|
|
- throw new Error(cMYWarehousingExcel.getGoodsName() + "品名不存在,请先维护信息在导入");
|
|
|
+ if (ObjectUtils.isNotNull(cMYWarehousingExcel.getGoodsName())) {
|
|
|
+ //品名
|
|
|
+ GoodsDesc goodsDesc = goodsDescClient.getGoodsDescByCname(cMYWarehousingExcel.getGoodsName());
|
|
|
+ if (ObjectUtils.isNotNull(goodsDesc)) {
|
|
|
+ cMYWarehousingExcel.setItemId(goodsDesc.getId());
|
|
|
+ } else {
|
|
|
+ throw new Error(cMYWarehousingExcel.getGoodsName() + "品名不存在,请先维护信息在导入");
|
|
|
+ }
|
|
|
}
|
|
|
- orderItems.setRemarks(cMYWarehousingExcel.getOrderRemark());//备注
|
|
|
- orderItems.setProcurementMethod(cMYWarehousingExcel.getProcurementMethod());//结算方式
|
|
|
- orderItems.setPaymentType(cMYWarehousingExcel.getPaymentType());//付款方式
|
|
|
- orderItems.setGrade(cMYWarehousingExcel.getGrade());//等级
|
|
|
- orderItems.setItemType(cMYWarehousingExcel.getItemType());//品牌
|
|
|
- orderItems.setItemProp(cMYWarehousingExcel.getItemProp());//产地
|
|
|
- orderItems.setLength(cMYWarehousingExcel.getLength());//长度(m)
|
|
|
- orderItems.setWidth(cMYWarehousingExcel.getWidth());//宽度(mm)
|
|
|
- orderItems.setWidthItem(cMYWarehousingExcel.getWidthItem());//宽度明细
|
|
|
- orderItems.setThickness(cMYWarehousingExcel.getThickness());//厚度(mm)
|
|
|
- orderItems.setSliceNumber(cMYWarehousingExcel.getSliceNumber());//片数
|
|
|
- orderItems.setBillNo(cMYWarehousingExcel.getPackingNo());//捆包号
|
|
|
- orderItems.setStorageInQuantity(cMYWarehousingExcel.getStorageQuantity());//入库量
|
|
|
- orderItems.setStorageAmount(cMYWarehousingExcel.getStorageAmount());//入库总金额(元)
|
|
|
- orderItems.setPrice(cMYWarehousingExcel.getPrice());//入库单价
|
|
|
- orderItems.setBalanceNumber(cMYWarehousingExcel.getStorageQuantity());//结余量
|
|
|
- orderItems.setBalanceMoney(cMYWarehousingExcel.getStorageAmount());//结余金额
|
|
|
-
|
|
|
- orderItems.setCreateTime(new Date());
|
|
|
- orderItems.setCreateUser(AuthUtil.getUserId());
|
|
|
- orderItems.setCreateUserName(AuthUtil.getUserName());
|
|
|
- orderItems.setTenantId(AuthUtil.getTenantId());
|
|
|
- orderItemsMapper.insert(orderItems);
|
|
|
- balanceNumber = balanceNumber.add(cMYWarehousingExcel.getStorageQuantity());
|
|
|
- balanceMoney = balanceMoney.add(cMYWarehousingExcel.getStorageAmount());
|
|
|
- }
|
|
|
- order.setStorageQuantity(balanceNumber);//入库量
|
|
|
- order.setStorageAmount(balanceMoney);//入库金额
|
|
|
- order.setUpdateUser(AuthUtil.getUserId());
|
|
|
- order.setUpdateTime(new Date());
|
|
|
- baseMapper.updateById(order);
|
|
|
- return orderList;
|
|
|
+
|
|
|
+ }
|
|
|
+ return excelList;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -1118,6 +1024,25 @@ 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);
|
|
|
BigDecimal balanceMoney = new BigDecimal(0);
|
|
|
if (ObjectUtils.isNotNull(orderItemsList)) {
|
|
|
@@ -1128,22 +1053,29 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
.eq(OrderItems::getGoodType, 0)
|
|
|
.eq(OrderItems::getBillNo, orderItems.getBillNo())
|
|
|
.eq(OrderItems::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(OrderItems::getBillType, OrderTypeEnum.WAREHOUSING.getType())
|
|
|
.eq(OrderItems::getIsDeleted, 0);
|
|
|
List<OrderItems> orderItemsBillNo = orderItemsMapper.selectList(orderItemsLambdaQueryWrapper);
|
|
|
if (ObjectUtils.isNotNull(orderItemsBillNo)) {
|
|
|
throw new Error("捆包号:" + orderItems.getBillNo() + "不允许重复");
|
|
|
}
|
|
|
+ } else if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(submitDto.getBillType())) {
|
|
|
+ for (OrderItems items : RKOrderItemsList) {
|
|
|
+ if (items.getBillNo().equals(orderItems.getBillNo())) {
|
|
|
+ items.setIsIssue("2");
|
|
|
+ orderItemsMapper.updateById(items);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
+ orderItems.setBillType(OrderTypeEnum.WAREHOUSING.getType());
|
|
|
orderItems.setPid(submitDto.getId());
|
|
|
orderItems.setCreateTime(new Date());
|
|
|
orderItems.setCreateUser(AuthUtil.getUserId());
|
|
|
orderItems.setCreateUserName(AuthUtil.getUserName());
|
|
|
orderItems.setTenantId(AuthUtil.getTenantId());
|
|
|
- orderItems.setBalanceNumber(orderItems.getStorageAmount());//结余量
|
|
|
- orderItems.setBalanceMoney(orderItems.getPurchaseQuantity());//结余金额
|
|
|
+ orderItems.setBalanceMoney(orderItems.getStorageAmount());
|
|
|
+ orderItems.setBalanceNumber(orderItems.getStorageInQuantity());
|
|
|
orderItemsMapper.insert(orderItems);
|
|
|
- orderItems.setStorageQuantity(ObjectUtils.isNull(orderItems.getStorageQuantity()) ? new BigDecimal(0) : orderItems.getStorageQuantity());
|
|
|
- orderItems.setStorageAmount(ObjectUtils.isNull(orderItems.getStorageAmount()) ? new BigDecimal(0) : orderItems.getStorageAmount());
|
|
|
balanceNumber = balanceNumber.add(orderItems.getStorageInQuantity());
|
|
|
balanceMoney = balanceMoney.add(orderItems.getStorageAmount());
|
|
|
}
|
|
|
@@ -1182,13 +1114,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
.eq(OrderItems::getGoodType, 0)
|
|
|
.eq(OrderItems::getBillNo, orderItems.getBillNo())
|
|
|
.eq(OrderItems::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(OrderItems::getBillType, OrderTypeEnum.WAREHOUSING.getType())
|
|
|
.eq(OrderItems::getIsDeleted, 0);
|
|
|
orderItemsBillNo = orderItemsMapper.selectList(orderItemsLambdaQueryWrapper);
|
|
|
}
|
|
|
orderItems.setPid(submitDto.getId());
|
|
|
orderItems.setTenantId(AuthUtil.getTenantId());
|
|
|
- orderItems.setBalanceNumber(orderItems.getStorageAmount());//结余量
|
|
|
- orderItems.setBalanceMoney(orderItems.getPurchaseQuantity());//结余金额
|
|
|
+ orderItems.setBalanceNumber(orderItems.getPurchaseQuantity());//结余量
|
|
|
+ orderItems.setBalanceMoney(orderItems.getStorageAmount());//结余金额
|
|
|
if (ObjectUtils.isNotNull(orderItems.getId())) {
|
|
|
if (orderItemsBillNo.size() > 1) {
|
|
|
throw new Error("捆包号:" + orderItems.getBillNo() + "不允许重复");
|
|
|
@@ -1206,8 +1139,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
orderItems.setCreateUserName(AuthUtil.getUserName());
|
|
|
orderItemsMapper.insert(orderItems);
|
|
|
}
|
|
|
- orderItems.setStorageQuantity(ObjectUtils.isNull(orderItems.getStorageQuantity()) ? new BigDecimal(0) : orderItems.getStorageQuantity());
|
|
|
- orderItems.setStorageAmount(ObjectUtils.isNull(orderItems.getStorageAmount()) ? new BigDecimal(0) : orderItems.getStorageAmount());
|
|
|
balanceNumber = balanceNumber.add(orderItems.getStorageInQuantity());
|
|
|
balanceMoney = balanceMoney.add(orderItems.getStorageAmount());
|
|
|
}
|
|
|
@@ -1258,6 +1189,25 @@ 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);
|
|
|
BigDecimal balanceMoney = new BigDecimal(0);
|
|
|
if (ObjectUtils.isNotNull(orderItemsList)) {
|
|
|
@@ -1269,16 +1219,25 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
.eq(OrderItems::getGoodType, 0)
|
|
|
.eq(OrderItems::getBillNo, orderItems.getBillNo())
|
|
|
.eq(OrderItems::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(OrderItems::getBillType, OrderTypeEnum.WAREHOUSING.getType())
|
|
|
.eq(OrderItems::getIsDeleted, 0);
|
|
|
orderItemsBillNo = orderItemsMapper.selectList(orderItemsLambdaQueryWrapper);
|
|
|
if (orderItemsBillNo.size() > 1) {
|
|
|
throw new Error("捆包号:" + orderItems.getBillNo() + "不允许重复");
|
|
|
}
|
|
|
+ orderItems.setBillType(OrderTypeEnum.WAREHOUSING.getType());
|
|
|
+ } else if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(submitDto.getBillType())) {
|
|
|
+ for (OrderItems items : RKOrderItemsList) {
|
|
|
+ if (items.getBillNo().equals(orderItems.getBillNo())) {
|
|
|
+ items.setIsIssue("2");
|
|
|
+ orderItemsMapper.updateById(items);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
orderItems.setPid(submitDto.getId());
|
|
|
orderItems.setTenantId(AuthUtil.getTenantId());
|
|
|
- orderItems.setBalanceNumber(orderItems.getStorageAmount());//结余量
|
|
|
- orderItems.setBalanceMoney(orderItems.getPurchaseQuantity());//结余金额
|
|
|
+ orderItems.setBalanceNumber(orderItems.getPurchaseQuantity());//结余量
|
|
|
+ orderItems.setBalanceMoney(orderItems.getStorageAmount());//结余金额
|
|
|
if (ObjectUtils.isNotNull(orderItems.getId())) {
|
|
|
if (orderItemsBillNo.size() > 1) {
|
|
|
throw new Error("捆包号:" + orderItems.getBillNo() + "不允许重复");
|
|
|
@@ -1296,8 +1255,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
orderItems.setCreateUserName(AuthUtil.getUserName());
|
|
|
orderItemsMapper.insert(orderItems);
|
|
|
}
|
|
|
- orderItems.setStorageQuantity(ObjectUtils.isNull(orderItems.getStorageQuantity()) ? new BigDecimal(0) : orderItems.getStorageQuantity());
|
|
|
- orderItems.setStorageAmount(ObjectUtils.isNull(orderItems.getStorageAmount()) ? new BigDecimal(0) : orderItems.getStorageAmount());
|
|
|
balanceNumber = balanceNumber.add(orderItems.getStorageInQuantity());
|
|
|
balanceMoney = balanceMoney.add(orderItems.getStorageAmount());
|
|
|
}
|
|
|
@@ -1391,6 +1348,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
.eq(OrderItems::getIsDeleted, 0);
|
|
|
List<OrderItems> orderItems = orderItemsMapper.selectList(orderItemsLambdaQueryWrapper);
|
|
|
if (CollectionUtils.isNotEmpty(orderItems)) {
|
|
|
+ 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));
|
|
|
//生成一维码图片
|
|
|
@@ -1458,7 +1416,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
order.setThisUsedProfit(salesOrder.getThisUsedProfit());
|
|
|
order.setPurchaserId(salesOrder.getPurchaserId());
|
|
|
order.setStorageId(salesOrder.getStorageId());
|
|
|
- order.setOrgOrderNo(order.getOrgOrderNo());
|
|
|
+ order.setOrgOrderNo(salesOrder.getOrgOrderNo());
|
|
|
order.setOrderRemark(salesOrder.getOrderRemark());
|
|
|
order.setStorageQuantity(salesOrder.getStorageQuantity());
|
|
|
order.setBillNo(salesOrder.getBillNo());
|
|
|
@@ -1506,8 +1464,43 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
//出库时修改是否出库
|
|
|
if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(order.getBillType())) {
|
|
|
- order.setSpecialCheckStatus(1);
|
|
|
- RKOrder.setSpecialCheckStatus(1);
|
|
|
+ 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::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("3")) {
|
|
|
+ throw new SecurityException("捆包号:" + RKOrderItems.getBillNo() + "已出库");
|
|
|
+ } else {
|
|
|
+ RKOrderItems.setIsIssue("1");
|
|
|
+ orderItems.setIsIssue("1");
|
|
|
+ }
|
|
|
+ orderItemsMapper.updateById(RKOrderItems);
|
|
|
+ orderItemsMapper.updateById(orderItems);
|
|
|
+ }
|
|
|
+ if (RKOrderItems.getIsIssue().equals("3")) {
|
|
|
+ count++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ 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<>();
|
|
|
@@ -1531,6 +1524,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
RKOrderItems.setInventory(orderItems.getInventory());
|
|
|
RKOrderItems.setBalanceNumber(orderItems.getBalanceNumber());
|
|
|
RKOrderItems.setBalanceMoney(orderItems.getBalanceMoney());
|
|
|
+ RKOrderItems.setSurplusLoss(orderItems.getSurplusLoss());
|
|
|
+ if (RKOrderItems.getIsIssue().equals("3")) {
|
|
|
+ throw new SecurityException("捆包号:" + RKOrderItems.getBillNo() + "已出库");
|
|
|
+ }
|
|
|
orderItemsMapper.updateById(RKOrderItems);
|
|
|
}
|
|
|
}
|
|
|
@@ -1576,14 +1573,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
/**
|
|
|
* 库存总账
|
|
|
*
|
|
|
- * @param query
|
|
|
+ * @param page
|
|
|
* @param order
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<Map<String, Object>> generalLedgerList(Query query, OrderTotalDTO order) {
|
|
|
- List<Map<String, Object>> mapList = baseMapper.generalLedgerList(query, order);
|
|
|
- return mapList;
|
|
|
+ public IPage<GeneralLedgerExcel> generalLedgerList(IPage<GeneralLedgerExcel> page, OrderTotalDTO order) {
|
|
|
+ return page.setRecords(baseMapper.generalLedgerList(page, order));
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -1597,6 +1593,74 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 入出库确认
|
|
|
+ *
|
|
|
+ * @param id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Order updateOutInStatus(Long id) {
|
|
|
+ Order order = orderMapper.selectById(id);
|
|
|
+ if (ObjectUtils.isNotNull(order)) {
|
|
|
+ if ("CK".equals(order.getBillType())) {
|
|
|
+ QueryWrapper<OrderItems> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("pid", order.getId());
|
|
|
+ queryWrapper.eq("tenant_id", AuthUtil.getTenantId());
|
|
|
+ queryWrapper.eq("is_deleted", 0);
|
|
|
+ List<OrderItems> orderItemsList = orderItemsMapper.selectList(queryWrapper);
|
|
|
+ for (OrderItems orderItems : orderItemsList) {
|
|
|
+ orderItems.setScanningComparison("Y");
|
|
|
+ orderItems.setUpdateTime(new Date());
|
|
|
+ orderItems.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ orderItemsMapper.updateById(orderItems);
|
|
|
+ }
|
|
|
+ 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("更新入库数据失败");
|
|
|
+ }
|
|
|
+ RKOrder.setSpecialCheckStatus(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 : RKderItemsList) {
|
|
|
+ orderItems.setIsIssue("3");
|
|
|
+ orderItems.setUpdateTime(new Date());
|
|
|
+ orderItems.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ orderItemsMapper.updateById(orderItems);
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if ("RK".equals(order.getBillType())) {
|
|
|
+ QueryWrapper<OrderItems> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("pid", order.getId());
|
|
|
+ queryWrapper.eq("tenant_id", AuthUtil.getTenantId());
|
|
|
+ queryWrapper.eq("is_deleted", 0);
|
|
|
+ List<OrderItems> orderItemsList = orderItemsMapper.selectList(queryWrapper);
|
|
|
+ for (OrderItems orderItems : orderItemsList) {
|
|
|
+ orderItems.setIsIssue("1");
|
|
|
+ orderItems.setUpdateTime(new Date());
|
|
|
+ orderItems.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ orderItemsMapper.updateById(orderItems);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ order.setConfirmStatus("1");
|
|
|
+ order.setUpdateTime(new Date());
|
|
|
+ order.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ orderMapper.updateById(order);
|
|
|
+ }
|
|
|
+ return order;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 订单生成账单 并且推送财务消息
|
|
|
*
|
|
|
* @param order 订单信息
|
|
|
@@ -1619,9 +1683,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
order.setCorpName(corpMessage.getData().getCname());
|
|
|
}
|
|
|
}
|
|
|
- BigDecimal amount = BigDecimal.ZERO;//对账金额 销售订单生成的金额 销售金额-本次使用返利金额+费用明细
|
|
|
- BigDecimal quantity = BigDecimal.ZERO;//对账数量 数量为 就是轮胎条数的和
|
|
|
- BigDecimal price = BigDecimal.ZERO;//对账单价
|
|
|
ApplyDTO applyDTO = new ApplyDTO();
|
|
|
applyDTO.setBillType(billType);
|
|
|
applyDTO.setTradeType(order.getTradeType());
|
|
|
@@ -1635,6 +1696,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
|
|
|
//判断是否未仓储费
|
|
|
if (!OrderTypeEnum.STORAGE_FEE.getType().equals(itemType)) {
|
|
|
+
|
|
|
+ BigDecimal amount = BigDecimal.ZERO;//对账金额 销售订单生成的金额 销售金额-本次使用返利金额+费用明细
|
|
|
+ BigDecimal quantity = BigDecimal.ZERO;//对账数量 数量为 就是轮胎条数的和
|
|
|
+ BigDecimal price = BigDecimal.ZERO;//对账单价
|
|
|
+
|
|
|
//获取订单明细信息
|
|
|
LambdaQueryWrapper<OrderItems> orderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
orderItemsLambdaQueryWrapper.eq(OrderItems::getIsDeleted, 0);
|
|
|
@@ -1683,6 +1749,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
items.setRemarks(order.getOrderRemark());
|
|
|
items.setSrcBillNo(order.getBillNo());
|
|
|
items.setStatusJT(1);
|
|
|
+ items.setBillNo(order.getBillNo());
|
|
|
//获取费用id
|
|
|
R<FeesDesc> fees = feesDescClient.getFeesByName("货款");
|
|
|
if (fees.isSuccess() && fees.getData() != null) {
|
|
|
@@ -1733,6 +1800,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
+ BigDecimal amount = BigDecimal.ZERO;//对账金额 销售订单生成的金额 销售金额-本次使用返利金额+费用明细
|
|
|
List<Items> itemsList = new ArrayList<>();
|
|
|
Items items = new Items();
|
|
|
items.setItemType("仓储费");
|
|
|
@@ -1766,8 +1834,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
.eq(Agreement::getCorpId, order.getPurchaserId())
|
|
|
.eq(Agreement::getFeetypeId, "0")
|
|
|
.eq(Agreement::getDelFlag, "0")
|
|
|
- .eq(Agreement::getTenantId, AuthUtil.getTenantId())
|
|
|
- .apply("FIND_IN_SET(" + order.getStorageId() + ",warehouse_id)");
|
|
|
+ .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("未找到仓储费协议");
|
|
|
@@ -1805,10 +1877,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
count++;
|
|
|
}
|
|
|
}
|
|
|
- quantity = RKoOrder.getStorageQuantity();
|
|
|
//账单数据
|
|
|
+ items.setPrice(amount);
|
|
|
items.setAmount(amount);
|
|
|
- items.setQuantity(quantity);
|
|
|
+ items.setQuantity(new BigDecimal("1"));
|
|
|
items.setSrcOrderno(order.getOrgOrderNo());
|
|
|
items.setCorpId(order.getPurchaserId());
|
|
|
items.setSrcParentId(order.getId());
|
|
|
@@ -1821,6 +1893,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
items.setRemarks(order.getOrderRemark());
|
|
|
items.setSrcBillNo(order.getBillNo());
|
|
|
items.setStatusJT(1);
|
|
|
+ items.setBillNo(order.getBillNo());
|
|
|
//获取费用id
|
|
|
R<FeesDesc> fees = feesDescClient.getFeesByName("仓储费");
|
|
|
if (fees.isSuccess() && fees.getData() != null) {
|