Browse Source

2024年10月8日14:37:27

纪新园 1 year ago
parent
commit
1b99c58090

+ 111 - 32
blade-service/blade-los/src/main/java/org/springblade/los/finance/stl/service/impl/FinStlBillsServiceImpl.java

@@ -21,7 +21,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
@@ -74,7 +73,6 @@ import org.springblade.los.finance.vouchers.entity.FinVouchers;
 import org.springblade.los.finance.vouchers.entity.FinVouchersItems;
 import org.springblade.los.finance.vouchers.mapper.FinVouchersMapper;
 import org.springblade.los.finance.vouchers.service.IFinVouchersItemsService;
-import org.springblade.los.trade.entity.Agent;
 import org.springblade.los.trade.mapper.AgentMapper;
 import org.springblade.system.entity.Dept;
 import org.springblade.system.feign.ISysClient;
@@ -443,7 +441,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			finStlBillsItemsService.saveOrUpdateBatch(finStlBills.getFinStlBillsItemsList());
 			feeCenterService.saveOrUpdateBatch(feeCenterList);
 			finAccBillsService.saveOrUpdateBatch(finAccBillsList);
-			updateBillsStatus(finStlBills.getFinStlBillsItemsList(), 1);
+			updateBillsStatus(finStlBills.getFinStlBillsItemsList(), 1,null);
 		} else {
 			throw new RuntimeException("请选择明细");
 		}
@@ -453,23 +451,32 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 		return R.data(detail);
 	}
 
-	private void updateBillsStatus(List<FinStlBillsItems> finStlBillsItemsList, int count) {
+	private void updateBillsStatus(List<FinStlBillsItems> finStlBillsItemsList, int count, List<FeeCenter> feeCenters) {
 		String billNoHYD = finStlBillsItemsList.stream()
 			.filter(e -> ("SE".equals(e.getBusinessType()) || "SI".equals(e.getBusinessType()))
-				&& "D".equals(e.getDc())).map(FinStlBillsItems::getBillNo)
+				&& "D".equals(e.getDc())).map(FinStlBillsItems::getMblno)
 			.distinct().collect(Collectors.joining(","));
 		if (ObjectUtils.isNotNull(billNoHYD)) {
 			List<Bills> billsList = billsMapper.selectList(new LambdaQueryWrapper<Bills>()
 				.eq(Bills::getTenantId, AuthUtil.getTenantId())
 				.eq(Bills::getIsDeleted, 0)
-				.apply("find_in_set(business_type,'" + billNoHYD + "')"));
+				.apply("find_in_set(mblno,'" + billNoHYD + "')"));
 			for (Bills item : billsList) {
 				if (1 == count) {
 					item.setCheckDrStatus(9);
 					item.setCheckDrStatusDescr("已对账");
-				} else if (2 == count) {
-					item.setStlDrStatus(9);
-					item.setStlDrStatusDescr("结清");
+				} else if (2 == count || 3 == count) {
+					if (!feeCenters.isEmpty()) {
+						long status = feeCenters.stream().filter(e -> e.getPid().equals(item.getId()) &&
+							0 == e.getStlStatus() && "D".equals(e.getDc())).count();
+						if (status == 0) {
+							item.setStlDrStatus(9);
+							item.setStlDrStatusDescr("结清");
+						} else {
+							item.setStlDrStatus(0);
+							item.setStlDrStatusDescr("未结");
+						}
+					}
 				}
 				billsMapper.updateById(item);
 			}
@@ -482,14 +489,23 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			List<Bills> billsList = billsMapper.selectList(new LambdaQueryWrapper<Bills>()
 				.eq(Bills::getTenantId, AuthUtil.getTenantId())
 				.eq(Bills::getIsDeleted, 0)
-				.apply("find_in_set(business_type,'" + billNoHYC + "')"));
+				.apply("find_in_set(mblno,'" + billNoHYC + "')"));
 			for (Bills item : billsList) {
 				if (1 == count) {
-					item.setCheckDrStatus(9);
-					item.setCheckDrStatusDescr("已对账");
-				} else if (2 == count) {
-					item.setStlDrStatus(9);
-					item.setStlDrStatusDescr("结清");
+					item.setCheckCrStatus(9);
+					item.setCheckCrStatusDescr("已对账");
+				} else if (2 == count || 3 == count) {
+					if (!feeCenters.isEmpty()) {
+						long status = feeCenters.stream().filter(e -> e.getPid().equals(item.getId()) &&
+							0 == e.getStlStatus() && "C".equals(e.getDc())).count();
+						if (status == 0) {
+							item.setStlCrStatus(9);
+							item.setStlCrStatusDescr("结清");
+						} else {
+							item.setStlCrStatus(0);
+							item.setStlCrStatusDescr("未结");
+						}
+					}
 				}
 				billsMapper.updateById(item);
 			}
@@ -502,14 +518,23 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			List<AeaBills> billsList = aeaBillsMapper.selectList(new LambdaQueryWrapper<AeaBills>()
 				.eq(AeaBills::getTenantId, AuthUtil.getTenantId())
 				.eq(AeaBills::getIsDeleted, 0)
-				.apply("find_in_set(business_type,'" + billNoKYD + "')"));
+				.apply("find_in_set(mblno,'" + billNoKYD + "')"));
 			for (AeaBills item : billsList) {
 				if (1 == count) {
 					item.setCheckDrStatus(9);
 					item.setCheckDrStatusDescr("已对账");
-				} else if (2 == count) {
-					item.setStlDrStatus(9);
-					item.setStlDrStatusDescr("结清");
+				} else if (2 == count || 3 == count) {
+					if (!feeCenters.isEmpty()) {
+						long status = feeCenters.stream().filter(e -> e.getPid().equals(item.getId()) &&
+							0 == e.getStlStatus() && "D".equals(e.getDc())).count();
+						if (status == 0) {
+							item.setStlDrStatus(9);
+							item.setStlDrStatusDescr("结清");
+						} else {
+							item.setStlDrStatus(0);
+							item.setStlDrStatusDescr("未结");
+						}
+					}
 				}
 				aeaBillsMapper.updateById(item);
 			}
@@ -522,14 +547,23 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			List<AeaBills> billsList = aeaBillsMapper.selectList(new LambdaQueryWrapper<AeaBills>()
 				.eq(AeaBills::getTenantId, AuthUtil.getTenantId())
 				.eq(AeaBills::getIsDeleted, 0)
-				.apply("find_in_set(business_type,'" + billNoKYC + "')"));
+				.apply("find_in_set(mblno,'" + billNoKYC + "')"));
 			for (AeaBills item : billsList) {
 				if (1 == count) {
 					item.setCheckCrStatus(9);
 					item.setCheckCrStatusDescr("已对账");
-				} else if (2 == count) {
-					item.setStlCrStatus(9);
-					item.setStlCrStatusDescr("结清");
+				} else if (2 == count || 3 == count) {
+					if (!feeCenters.isEmpty()) {
+						long status = feeCenters.stream().filter(e -> e.getPid().equals(item.getId()) &&
+							0 == e.getStlStatus() && "C".equals(e.getDc())).count();
+						if (status == 0) {
+							item.setStlCrStatus(9);
+							item.setStlCrStatusDescr("结清");
+						} else {
+							item.setStlCrStatus(0);
+							item.setStlCrStatusDescr("未结");
+						}
+					}
 				}
 				aeaBillsMapper.updateById(item);
 			}
@@ -543,14 +577,23 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			List<CustomsDeclaration> billsList = customsDeclarationMapper.selectList(new LambdaQueryWrapper<CustomsDeclaration>()
 				.eq(CustomsDeclaration::getTenantId, AuthUtil.getTenantId())
 				.eq(CustomsDeclaration::getIsDeleted, 0)
-				.apply("find_in_set(business_type,'" + billNoBGD + "')"));
+				.apply("find_in_set(mblno,'" + billNoBGD + "')"));
 			for (CustomsDeclaration item : billsList) {
 				if (1 == count) {
 					item.setCheckDrStatus(9);
 					item.setCheckDrStatusDescr("已对账");
-				} else if (2 == count) {
-					item.setStlDrStatus(9);
-					item.setStlDrStatusDescr("结清");
+				} else if (2 == count || 3 == count) {
+					if (!feeCenters.isEmpty()) {
+						long status = feeCenters.stream().filter(e -> e.getPid().equals(item.getId()) &&
+							0 == e.getStlStatus() && "D".equals(e.getDc())).count();
+						if (status == 0) {
+							item.setStlDrStatus(9);
+							item.setStlDrStatusDescr("结清");
+						} else {
+							item.setStlDrStatus(0);
+							item.setStlDrStatusDescr("未结");
+						}
+					}
 				}
 				customsDeclarationMapper.updateById(item);
 			}
@@ -564,14 +607,23 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			List<CustomsDeclaration> billsList = customsDeclarationMapper.selectList(new LambdaQueryWrapper<CustomsDeclaration>()
 				.eq(CustomsDeclaration::getTenantId, AuthUtil.getTenantId())
 				.eq(CustomsDeclaration::getIsDeleted, 0)
-				.apply("find_in_set(business_type,'" + billNoBGC + "')"));
+				.apply("find_in_set(mblno,'" + billNoBGC + "')"));
 			for (CustomsDeclaration item : billsList) {
 				if (1 == count) {
 					item.setCheckCrStatus(9);
 					item.setCheckCrStatusDescr("已对账");
-				} else if (2 == count) {
-					item.setStlCrStatus(9);
-					item.setStlCrStatusDescr("结清");
+				} else if (2 == count || 3 == count) {
+					if (!feeCenters.isEmpty()) {
+						long status = feeCenters.stream().filter(e -> e.getPid().equals(item.getId()) &&
+							0 == e.getStlStatus() && "C".equals(e.getDc())).count();
+						if (status == 0) {
+							item.setStlCrStatus(9);
+							item.setStlCrStatusDescr("结清");
+						} else {
+							item.setStlCrStatus(0);
+							item.setStlCrStatusDescr("未结");
+						}
+					}
 				}
 				customsDeclarationMapper.updateById(item);
 			}
@@ -1055,7 +1107,20 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			finAccBillsService.saveOrUpdateBatch(finAccBillsList);
 			detail.setStatus(3);
 			detail.setIsCleared(1);
-			updateBillsStatus(finStlBills.getFinStlBillsItemsList(), 2);
+			if (!feeCenterList.isEmpty()) {
+				List<Long> pids = feeCenterList.stream().map(FeeCenter::getPid).distinct().collect(Collectors.toList());
+				if (!pids.isEmpty()) {
+					List<FeeCenter> feeCenters = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+						.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+						.eq(FeeCenter::getIsDeleted, 0)
+						.in(FeeCenter::getPid, pids));
+					for (FeeCenter item : feeCenters) {
+                        feeCenterList.stream().filter(e -> e.getId().equals(item.getId())).findFirst()
+							.ifPresent(feeCenter -> item.setStlStatus(feeCenter.getStlStatus()));
+                    }
+					updateBillsStatus(finStlBills.getFinStlBillsItemsList(), 2, feeCenters);
+				}
+			}
 		} else {
 			throw new RuntimeException("请选择明细");
 		}
@@ -1356,6 +1421,20 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			finAccBillsService.saveOrUpdateBatch(finAccBillsList);
 			detail.setStatus(0);
 			detail.setIsCleared(0);
+			if (!feeCenterList.isEmpty()) {
+				List<Long> pids = feeCenterList.stream().map(FeeCenter::getPid).distinct().collect(Collectors.toList());
+				if (!pids.isEmpty()) {
+					List<FeeCenter> feeCenters = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+						.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+						.eq(FeeCenter::getIsDeleted, 0)
+						.in(FeeCenter::getPid, pids));
+					for (FeeCenter item : feeCenters) {
+                        feeCenterList.stream().filter(e -> e.getId().equals(item.getId())).findFirst()
+							.ifPresent(feeCenter -> item.setStlStatus(feeCenter.getStlStatus()));
+                    }
+					updateBillsStatus(finStlBills.getFinStlBillsItemsList(), 3, feeCenters);
+				}
+			}
 		} else {
 			throw new RuntimeException("请选择明细");
 		}

+ 25 - 0
blade-service/blade-los/src/main/java/org/springblade/los/trade/service/impl/DispatchVehiclesServiceImpl.java

@@ -273,6 +273,26 @@ public class DispatchVehiclesServiceImpl extends ServiceImpl<DispatchVehiclesMap
 		dispatchVehicles.setUpdateUserName(AuthUtil.getUserName());
 		dispatchVehicles.setDispatchVehiclesDate(new Date());
 		baseMapper.updateById(dispatchVehicles);
+		List<DispatchVehicles> dispatchVehiclesList = baseMapper.selectList(new LambdaQueryWrapper<DispatchVehicles>()
+			.eq(DispatchVehicles::getPid, dispatchVehicles.getPid())
+			.eq(DispatchVehicles::getTenantId, AuthUtil.getTenantId())
+			.eq(DispatchVehicles::getIsDeleted, 0)
+			.eq(DispatchVehicles::getWhetherReturn, "0"));
+		boolean status = false;
+		if (!dispatchVehiclesList.isEmpty()) {
+			long count = dispatchVehiclesList.stream().map(DispatchVehicles::getId)
+				.filter(id -> id.equals(dispatchVehicles.getId())).count();
+			if (count == 0) {
+				status = true;
+			}
+		}
+		if (status) {
+			Bills bills = billsMapper.selectById(dispatchVehicles.getPid());
+			if (bills != null) {
+				bills.setBillingStatus(1);
+				billsMapper.updateById(bills);
+			}
+		}
 		return R.data(dispatchVehicles);
 	}
 
@@ -287,6 +307,11 @@ public class DispatchVehiclesServiceImpl extends ServiceImpl<DispatchVehiclesMap
 		dispatchVehicles.setUpdateUserName(AuthUtil.getUserName());
 		dispatchVehicles.setDispatchVehiclesDate(new Date());
 		baseMapper.updateById(dispatchVehicles);
+		Bills bills = billsMapper.selectById(dispatchVehicles.getPid());
+		if (bills != null) {
+			bills.setBillingStatus(0);
+			billsMapper.updateById(bills);
+		}
 		return R.data(dispatchVehicles);
 	}
 

+ 4 - 5
blade-service/blade-los/src/main/java/org/springblade/los/trade/service/impl/InOutStorageServiceImpl.java

@@ -253,7 +253,7 @@ public class InOutStorageServiceImpl extends ServiceImpl<InOutStorageMapper, InO
 			inStorage.setOutWeight(inStorage.getOutWeight().add(inOutStorage.getOutWeight()));
 			inStorage.setSurplusQuantity(quantity.subtract(inOutStorage.getOutQuantity()));
 			inStorage.setSurplusWeight(grossWeight.subtract(inOutStorage.getOutWeight()));
-			inStorage.setSurplusGoodsAmount(inStorage.getSurplusWeight().multiply(inOutStorage.getPrice()));
+			inStorage.setSurplusGoodsAmount(inStorage.getSurplusGoodsAmount().subtract(inStorage.getSurplusWeight().multiply(inOutStorage.getPrice())));
 			inStorage.setUpdateTime(new Date());
 			inStorage.setUpdateUser(AuthUtil.getUserId());
 			inStorage.setUpdateUserName(AuthUtil.getUserName());
@@ -350,8 +350,8 @@ public class InOutStorageServiceImpl extends ServiceImpl<InOutStorageMapper, InO
 				feeCenterC.setLineNo(1L);
 				feeCenterC.setBillNo(bills.getBillNo());
 				feeCenterC.setBillDate(bills.getBillDate());
-				feeCenterC.setCorpId(bills.getCorpId());
-				feeCenterC.setCorpCnName(bills.getCorpCnName());
+				/*feeCenterC.setCorpId(bills.getCorpId());
+				feeCenterC.setCorpCnName(bills.getCorpCnName());*/
 				feeCenterC.setBillCorpId(bills.getCorpId());
 				feeCenterC.setBillCorpCnName(bills.getCorpCnName());
 				feeCenterC.setMblno(bills.getMblno());
@@ -659,7 +659,7 @@ public class InOutStorageServiceImpl extends ServiceImpl<InOutStorageMapper, InO
 			inStorage.setOutWeight(inStorage.getOutWeight().subtract(inOutStorage.getOutWeight()));
 			inStorage.setSurplusQuantity(quantity.add(inOutStorage.getOutQuantity()));
 			inStorage.setSurplusWeight(grossWeight.add(inOutStorage.getOutWeight()));
-			inStorage.setSurplusGoodsAmount(inStorage.getSurplusWeight().multiply(inOutStorage.getPrice()));
+			inStorage.setSurplusGoodsAmount(inStorage.getSurplusGoodsAmount().add(inStorage.getSurplusWeight().multiply(inOutStorage.getPrice())));
 			inStorage.setUpdateTime(new Date());
 			inStorage.setUpdateUser(AuthUtil.getUserId());
 			inStorage.setUpdateUserName(AuthUtil.getUserName());
@@ -667,7 +667,6 @@ public class InOutStorageServiceImpl extends ServiceImpl<InOutStorageMapper, InO
 			FeeCenter feeCenter = feeCenterMapper.selectOne(new LambdaQueryWrapper<FeeCenter>()
 				.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
 				.eq(FeeCenter::getIsDeleted, 0)
-				.eq(FeeCenter::getDc, "D")
 				.eq(FeeCenter::getFeeCode, "CCF")
 				.eq(FeeCenter::getPid, inOutStorage.getPid())
 				.eq(FeeCenter::getSrcItemId, inOutStorage.getId()));