Kaynağa Gözat

2024年8月21日17:34:32

纪新园 1 yıl önce
ebeveyn
işleme
7389541db0

+ 2 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/trade/entity/AgentView.java

@@ -63,6 +63,8 @@ public class AgentView implements Serializable {
 	 */
 	@ApiModelProperty(value = "合同日期")
 	private Date contractDate;
+	@TableField(exist = false)
+	private List<String> contractDateList;
 	/**
 	 * 业务日期
 	 */

+ 7 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java

@@ -1039,6 +1039,13 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			}
 			businessBillNoService.deteleBillNo(item);
 		}
+		List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+			.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+			.eq(FeeCenter::getIsDeleted, 0)
+			.in(FeeCenter::getPid, ids));
+		if (!feeCenterList.isEmpty()) {
+			throw new RuntimeException("存在费用明细,删除失败");
+		}
 		baseMapper.deleteBatchIds(ids);
 	}
 

+ 3 - 2
blade-service/blade-los/src/main/java/org/springblade/los/statisticAnalysis/controller/IndexStatisticsController.java

@@ -54,8 +54,9 @@ public class IndexStatisticsController {
 	@GetMapping("/completionRate")
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "完成率")
-	public R<Map<String, Object>> completionRate(@RequestParam("dateStart")String dateStart, @RequestParam("dateEnd")String dateEnd) {
-		return statisticAnalysisService.completionRate(dateStart, dateEnd);
+	public R<Map<String, Object>> completionRate(@RequestParam("dateStart")String dateStart, @RequestParam("dateEnd")String dateEnd,
+												 @RequestParam("type")String type) {
+		return statisticAnalysisService.completionRate(dateStart, dateEnd,type);
 	}
 
 	/**

+ 1 - 1
blade-service/blade-los/src/main/java/org/springblade/los/statisticAnalysis/service/IStatisticAnalysisService.java

@@ -51,7 +51,7 @@ public interface IStatisticAnalysisService {
 
 	R<Map<String, Object>> approvalData(String dateStart, String dateEnd);
 
-	R<Map<String, Object>> completionRate(String dateStart, String dateEnd);
+	R<Map<String, Object>> completionRate(String dateStart, String dateEnd,String type);
 
 	R<List<Map<String, Object>>> trend(String date, String type);
 

+ 100 - 69
blade-service/blade-los/src/main/java/org/springblade/los/statisticAnalysis/service/impl/StatisticAnalysisServiceImpl.java

@@ -598,79 +598,110 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 	}
 
 	@Override
-	public R<Map<String, Object>> completionRate(String dateStart, String dateEnd) {
+	public R<Map<String, Object>> completionRate(String dateStart, String dateEnd,String type ) {
 		long sum;
 		long refurbishment;
 		long complete;
-		LambdaQueryWrapper<Bills> lambdaQueryWrapperSE = new LambdaQueryWrapper<>();
-		lambdaQueryWrapperSE.eq(Bills::getTenantId, AuthUtil.getTenantId())
-			.eq(Bills::getIsDeleted, 0)
-			.ge(Bills::getBillDate, dateStart)
-			.le(Bills::getBillDate, dateEnd);
-		if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
-			lambdaQueryWrapperSE.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
-		}
-		if (!AuthUtil.getUserRole().contains("admin")) {
-			lambdaQueryWrapperSE.eq(Bills::getBranchId, deptUtils.getDeptPid());
-		}
-		lambdaQueryWrapperSE.eq(Bills::getBusinessType, "SE");
-		List<Bills> HYCKList = billsMapper.selectList(lambdaQueryWrapperSE);
-		LambdaQueryWrapper<Bills> lambdaQueryWrapperSI = new LambdaQueryWrapper<>();
-		lambdaQueryWrapperSI.eq(Bills::getTenantId, AuthUtil.getTenantId())
-			.eq(Bills::getIsDeleted, 0)
-			.ge(Bills::getBillDate, dateStart)
-			.le(Bills::getBillDate, dateEnd);
-		if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
-			lambdaQueryWrapperSI.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
-		}
-		if (!AuthUtil.getUserRole().contains("admin")) {
-			lambdaQueryWrapperSI.eq(Bills::getBranchId, deptUtils.getDeptPid());
-		}
-		lambdaQueryWrapperSI.eq(Bills::getBusinessType, "SI");
-		List<Bills> HYJKList = billsMapper.selectList(lambdaQueryWrapperSI);
-		LambdaQueryWrapper<AeaBills> aeaBillsLambdaQueryWrapperAE = new LambdaQueryWrapper<>();
-		aeaBillsLambdaQueryWrapperAE.eq(AeaBills::getTenantId, AuthUtil.getTenantId())
-			.eq(AeaBills::getIsDeleted, 0)
-			.ge(AeaBills::getBillDate, dateStart)
-			.le(AeaBills::getBillDate, dateEnd);
-		if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
-			aeaBillsLambdaQueryWrapperAE.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
-		}
-		if (!AuthUtil.getUserRole().contains("admin")) {
-			aeaBillsLambdaQueryWrapperAE.eq(AeaBills::getBranchId, deptUtils.getDeptPid());
-		}
-		aeaBillsLambdaQueryWrapperAE.eq(AeaBills::getBusinessType, "AE");
-		List<AeaBills> KYCKList = aeaBillsMapper.selectList(aeaBillsLambdaQueryWrapperAE);
-		LambdaQueryWrapper<AeaBills> aeaBillsLambdaQueryWrapperAI = new LambdaQueryWrapper<>();
-		aeaBillsLambdaQueryWrapperAI.eq(AeaBills::getTenantId, AuthUtil.getTenantId())
-			.eq(AeaBills::getIsDeleted, 0)
-			.ge(AeaBills::getBillDate, dateStart)
-			.le(AeaBills::getBillDate, dateEnd);
-		if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
-			aeaBillsLambdaQueryWrapperAI.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
-		}
-		if (!AuthUtil.getUserRole().contains("admin")) {
-			aeaBillsLambdaQueryWrapperAI.eq(AeaBills::getBranchId, deptUtils.getDeptPid());
-		}
-		aeaBillsLambdaQueryWrapperAI.eq(AeaBills::getBusinessType, "AI");
-		List<AeaBills> KYJKList = aeaBillsMapper.selectList(aeaBillsLambdaQueryWrapperAI);
 		Map<String, Object> map = new HashMap<>();
-		sum = HYCKList.size() + HYJKList.size() + KYCKList.size() + KYJKList.size();
-		refurbishment = HYCKList.stream().filter(e -> e.getBillStatus() == 1).count() +
-			HYJKList.stream().filter(e -> e.getBillStatus() == 1).count() +
-			KYCKList.stream().filter(e -> e.getBillStatus() == 1).count() +
-			KYJKList.stream().filter(e -> e.getBillStatus() == 1).count();
-		complete = HYCKList.stream().filter(e -> e.getStatus() == 3).count() +
-			HYJKList.stream().filter(e -> e.getStatus() == 3).count() +
-			KYCKList.stream().filter(e -> e.getStatus() == 3).count() +
-			KYJKList.stream().filter(e -> e.getStatus() == 3).count();
-		map.put("sum", sum);
-		map.put("refurbishment", refurbishment);
-		map.put("complete", complete);
-		if (sum == 0) {
-			map.put("rate", 0);
-		} else {
-			map.put("rate", new BigDecimal(complete).divide(new BigDecimal(sum), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP).multiply(new BigDecimal("100")));
+		if ("1".equals(type)){
+			LambdaQueryWrapper<Bills> lambdaQueryWrapperSE = new LambdaQueryWrapper<>();
+			lambdaQueryWrapperSE.eq(Bills::getTenantId, AuthUtil.getTenantId())
+				.eq(Bills::getIsDeleted, 0)
+				.ge(Bills::getBillDate, dateStart)
+				.le(Bills::getBillDate, dateEnd);
+			if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
+				lambdaQueryWrapperSE.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
+			}
+			if (!AuthUtil.getUserRole().contains("admin")) {
+				lambdaQueryWrapperSE.eq(Bills::getBranchId, deptUtils.getDeptPid());
+			}
+			lambdaQueryWrapperSE.eq(Bills::getBusinessType, "SE");
+			List<Bills> HYCKList = billsMapper.selectList(lambdaQueryWrapperSE);
+			LambdaQueryWrapper<Bills> lambdaQueryWrapperSI = new LambdaQueryWrapper<>();
+			lambdaQueryWrapperSI.eq(Bills::getTenantId, AuthUtil.getTenantId())
+				.eq(Bills::getIsDeleted, 0)
+				.ge(Bills::getBillDate, dateStart)
+				.le(Bills::getBillDate, dateEnd);
+			if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
+				lambdaQueryWrapperSI.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
+			}
+			if (!AuthUtil.getUserRole().contains("admin")) {
+				lambdaQueryWrapperSI.eq(Bills::getBranchId, deptUtils.getDeptPid());
+			}
+			lambdaQueryWrapperSI.eq(Bills::getBusinessType, "SI");
+			List<Bills> HYJKList = billsMapper.selectList(lambdaQueryWrapperSI);
+			sum = HYCKList.size() + HYJKList.size();
+			refurbishment = HYCKList.stream().filter(e -> e.getBillStatus() == 1).count() +
+				HYJKList.stream().filter(e -> e.getBillStatus() == 1).count();
+			complete = HYCKList.stream().filter(e -> e.getStatus() == 3).count() +
+				HYJKList.stream().filter(e -> e.getStatus() == 3).count();
+			map.put("sum", sum);
+			map.put("refurbishment", refurbishment);
+			map.put("complete", complete);
+			if (sum == 0) {
+				map.put("rate", 0);
+			} else {
+				map.put("rate", new BigDecimal(complete).divide(new BigDecimal(sum), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP).multiply(new BigDecimal("100")));
+			}
+		}else if ("2".equals(type)){
+			LambdaQueryWrapper<AeaBills> aeaBillsLambdaQueryWrapperAE = new LambdaQueryWrapper<>();
+			aeaBillsLambdaQueryWrapperAE.eq(AeaBills::getTenantId, AuthUtil.getTenantId())
+				.eq(AeaBills::getIsDeleted, 0)
+				.ge(AeaBills::getBillDate, dateStart)
+				.le(AeaBills::getBillDate, dateEnd);
+			if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
+				aeaBillsLambdaQueryWrapperAE.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
+			}
+			if (!AuthUtil.getUserRole().contains("admin")) {
+				aeaBillsLambdaQueryWrapperAE.eq(AeaBills::getBranchId, deptUtils.getDeptPid());
+			}
+			aeaBillsLambdaQueryWrapperAE.eq(AeaBills::getBusinessType, "AE");
+			List<AeaBills> KYCKList = aeaBillsMapper.selectList(aeaBillsLambdaQueryWrapperAE);
+			LambdaQueryWrapper<AeaBills> aeaBillsLambdaQueryWrapperAI = new LambdaQueryWrapper<>();
+			aeaBillsLambdaQueryWrapperAI.eq(AeaBills::getTenantId, AuthUtil.getTenantId())
+				.eq(AeaBills::getIsDeleted, 0)
+				.ge(AeaBills::getBillDate, dateStart)
+				.le(AeaBills::getBillDate, dateEnd);
+			if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
+				aeaBillsLambdaQueryWrapperAI.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
+			}
+			if (!AuthUtil.getUserRole().contains("admin")) {
+				aeaBillsLambdaQueryWrapperAI.eq(AeaBills::getBranchId, deptUtils.getDeptPid());
+			}
+			aeaBillsLambdaQueryWrapperAI.eq(AeaBills::getBusinessType, "AI");
+			List<AeaBills> KYJKList = aeaBillsMapper.selectList(aeaBillsLambdaQueryWrapperAI);
+			sum = KYCKList.size() + KYJKList.size();
+			refurbishment = KYCKList.stream().filter(e -> e.getBillStatus() == 1).count() +
+				KYJKList.stream().filter(e -> e.getBillStatus() == 1).count();
+			complete = KYCKList.stream().filter(e -> e.getStatus() == 3).count() +
+				KYJKList.stream().filter(e -> e.getStatus() == 3).count();
+			map.put("sum", sum);
+			map.put("refurbishment", refurbishment);
+			map.put("complete", complete);
+			if (sum == 0) {
+				map.put("rate", 0);
+			} else {
+				map.put("rate", new BigDecimal(complete).divide(new BigDecimal(sum), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP).multiply(new BigDecimal("100")));
+			}
+		}else if ("3".equals(type)){
+			LambdaQueryWrapper<Agent> agentLambdaQueryWrapper = new LambdaQueryWrapper<>();
+			agentLambdaQueryWrapper.eq(Agent::getTenantId, AuthUtil.getTenantId())
+				.eq(Agent::getIsDeleted, 0)
+				.ge(Agent::getContractDate, dateStart)
+				.le(Agent::getContractDate, dateEnd);
+			agentLambdaQueryWrapper.eq(Agent::getBusinessType, "MYDL");
+			List<Agent> agentList = agentMapper.selectList(agentLambdaQueryWrapper);
+			sum = agentList.size();
+			refurbishment = agentList.stream().filter(e -> !e.getBusinessStatus().equals("审核通过")).count();
+			complete = agentList.stream().filter(e -> e.getBusinessStatus().equals("审核通过")).count();
+			map.put("sum", sum);
+			map.put("refurbishment", refurbishment);
+			map.put("complete", complete);
+			if (sum == 0) {
+				map.put("rate", 0);
+			} else {
+				map.put("rate", new BigDecimal(complete).divide(new BigDecimal(sum), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP).multiply(new BigDecimal("100")));
+			}
 		}
 		return R.data(map);
 	}

+ 4 - 0
blade-service/blade-los/src/main/java/org/springblade/los/trade/controller/AgentViewController.java

@@ -99,6 +99,10 @@ public class AgentViewController extends BladeController {
 			.eq(ObjectUtils.isNotNull(agentView.getBusinessType()), AgentView::getBusinessType, agentView.getBusinessType())
 			.like(ObjectUtils.isNotNull(agentView.getBoxNo()), AgentView::getBoxNo, agentView.getBoxNo())
 			.like(ObjectUtils.isNotNull(agentView.getInvoiceNo()), AgentView::getInvoiceNo, agentView.getInvoiceNo());
+		if (ObjectUtils.isNotNull(agentView.getContractDateList()) && !agentView.getContractDateList().isEmpty()) {
+			lambdaQueryWrapper.gt(AgentView::getContractDate, agentView.getContractDateList().get(0));
+			lambdaQueryWrapper.lt(AgentView::getContractDate, agentView.getContractDateList().get(1));
+		}
 		if (ObjectUtils.isNotNull(agentView.getEtdList()) && !agentView.getEtdList().isEmpty()) {
 			lambdaQueryWrapper.gt(AgentView::getEtd, agentView.getEtdList().get(0));
 			lambdaQueryWrapper.lt(AgentView::getEtd, agentView.getEtdList().get(1));

+ 3 - 0
blade-service/blade-los/src/main/java/org/springblade/los/trade/service/impl/AgentServiceImpl.java

@@ -2932,6 +2932,9 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 	@Transactional(rollbackFor = Exception.class)
 	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R generate(List<FeeCenter> feeCenterList) {
+		if (feeCenterList.isEmpty()) {
+			throw new RuntimeException("请选择数据");
+		}
 		Long deptId = 0L;
 		String deptName = "";
 		//获取部门ids对应中文名

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

@@ -395,8 +395,8 @@ public class InOutStorageServiceImpl extends ServiceImpl<InOutStorageMapper, InO
 		outStorage.setSurplusGoodsAmount(inOutStorage.getSurplusWeight().multiply(inOutStorage.getPrice()));
 		outStorage.setConfirmDispatchVehicles("0");
 		baseMapper.insert(outStorage);
-		if (new BigDecimal("0.00").compareTo(outStorage.getSurplusQuantity()) == 0 &&
-			new BigDecimal("0.00").compareTo(outStorage.getSurplusWeight()) == 0) {
+		if (new BigDecimal("0.00").compareTo(inOutStorage.getSurplusQuantity()) == 0 &&
+			new BigDecimal("0.00").compareTo(inOutStorage.getSurplusWeight()) == 0) {
 			throw new RuntimeException("库存余额为零,生成失败");
 		}
 		baseMapper.updateById(inOutStorage);

+ 4 - 2
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/statistics/service/impl/StatisticsServiceImpl.java

@@ -860,7 +860,8 @@ public class StatisticsServiceImpl implements IStatisticsService {
 						item.setReturnQuantity(item.getReturnQuantity().add(new BigDecimal("0").subtract(returnsNumber)));
 						item.setSalesAmount(subTotalMoney.subtract(returnsAmount));
 						item.setSalesQuantity(goodsNum.subtract(returnsNumber));
-						BigDecimal costprie = pjOrderItemsList.stream().filter(e -> finalOrdersSalerS.contains(e.getPid()))
+						BigDecimal costprie = pjOrderItemsList.stream().filter(e -> finalOrdersSalerS.contains(e.getPid())
+							&& new BigDecimal("0").compareTo(e.getReturnsNumber()) == 0)
 							.map(PjOrderItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
 						List<PjOrderItems> orderItemsList = pjOrderItemsList.stream().filter(e -> finalOrdersSalerS.contains(e.getPid()) &&
 								(ObjectUtils.isNotNull(e.getReturnsNumber()) && new BigDecimal("0").compareTo(e.getReturnsNumber()) != 0))
@@ -1019,7 +1020,8 @@ public class StatisticsServiceImpl implements IStatisticsService {
 						item.setReturnQuantity(item.getReturnQuantity().add(new BigDecimal("0").subtract(returnsNumber)));
 						item.setSalesAmount(subTotalMoney.subtract(returnsAmount));
 						item.setSalesQuantity(goodsNum.subtract(returnsNumber));
-						BigDecimal costprie = pjOrderItemsList.stream().filter(e -> finalOrdersSalerS.contains(e.getPid()))
+						BigDecimal costprie = pjOrderItemsList.stream().filter(e -> finalOrdersSalerS.contains(e.getPid()) &&
+							new BigDecimal("0").compareTo(e.getReturnsNumber()) == 0)
 							.map(PjOrderItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
 						List<PjOrderItems> orderItemsList = pjOrderItemsList.stream().filter(e -> finalOrdersSalerS.contains(e.getPid()) &&
 								(ObjectUtils.isNotNull(e.getReturnsNumber()) && new BigDecimal("0").compareTo(e.getReturnsNumber()) != 0))