纪新园 3 лет назад
Родитель
Сommit
5a747a2101
17 измененных файлов с 586 добавлено и 367 удалено
  1. 6 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/CheckDate.java
  2. 5 2
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/OrderFees.java
  3. 4 0
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/feign/IFinancingClient.java
  4. 1 1
      blade-service/blade-check/src/main/java/org/springblade/check/controller/AuditProecessController.java
  5. 1 0
      blade-service/blade-project/src/main/java/org/springblade/project/controller/ProjectController.java
  6. 1 1
      blade-service/blade-project/src/main/java/org/springblade/project/service/impl/ServiceProjectServiceImpl.java
  7. 357 274
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportOrderController.java
  8. 61 34
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  9. 1 0
      blade-service/blade-system/src/main/java/org/springblade/system/controller/DeptController.java
  10. 13 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/feign/FinancingClient.java
  11. 31 2
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/WoodHarvestingCloudController.java
  12. 2 2
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderItemsMapper.java
  13. 8 8
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderItemsMapper.xml
  14. 2 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderMapper.java
  15. 17 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderMapper.xml
  16. 9 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/IOrderService.java
  17. 67 43
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

+ 6 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/CheckDate.java

@@ -26,4 +26,10 @@ public class CheckDate implements Serializable {
 	 */
 	@ApiModelProperty(value = "报价审核数据量")
 	private int offerNumber;
+
+	/**
+	 * 融资审核数据量
+	 */
+	@ApiModelProperty(value = "融资审核数据量")
+	private int financingSum;
 }

+ 5 - 2
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/OrderFees.java

@@ -7,9 +7,7 @@ import com.trade.purchase.order.common.entity.OrderBase;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import org.springblade.core.mp.base.BaseEntity;
 
-import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
 
@@ -186,5 +184,10 @@ public class OrderFees extends OrderBase {
 	 */
 	@ApiModelProperty(value = "开票金额")
 	private BigDecimal invoiceAmount;
+	/**
+	 * 仓储费
+	 */
+	@ApiModelProperty(value = "仓储费")
+	private String storageFee;
 
 }

+ 4 - 0
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/feign/IFinancingClient.java

@@ -19,6 +19,7 @@ public interface IFinancingClient {
 	String PASS_CHECK=API_PREFIX+"/FinancingPassCheck";
 	String PASS_CANCEL=API_PREFIX+"/FinancingPassCancel";
 	String UNDER_REVIEW=API_PREFIX+"/FinancingUnderReview";
+	String UNDER_COUNT=API_PREFIX+"/FinancingCount";
 
 	@PostMapping(PASS_CHECK)
 	R passCheck(@RequestParam("id") Long id);
@@ -29,4 +30,7 @@ public interface IFinancingClient {
 	@PostMapping(UNDER_REVIEW)
 	R underReview(@RequestParam("id") Long id);
 
+	@PostMapping(UNDER_COUNT)
+	int count();
+
 }

+ 1 - 1
blade-service/blade-check/src/main/java/org/springblade/check/controller/AuditProecessController.java

@@ -65,7 +65,7 @@ import java.util.List;
  */
 @RestController
 @AllArgsConstructor
-@RequestMapping("NotBlank")
+@RequestMapping("/auditproecess")
 @Api(value = "用户审批", tags = "审批流记录接口")
 public class AuditProecessController extends BladeController {
 

+ 1 - 0
blade-service/blade-project/src/main/java/org/springblade/project/controller/ProjectController.java

@@ -602,6 +602,7 @@ public class ProjectController {
 			itemLambdaQueryWrapper.eq(ServiceProjectItem::getTenantId, AuthUtil.getTenantId());
 			itemLambdaQueryWrapper.eq(ServiceProjectItem::getIsDeleted, 0);
 			itemLambdaQueryWrapper.eq(StringUtils.isNotBlank(userName), ServiceProjectItem::getUserName, userName);
+			itemLambdaQueryWrapper.eq(ServiceProjectItem::getBranch, "N");
 			itemLambdaQueryWrapper.groupBy(ServiceProjectItem::getUserName);
 			//分组不同的承做人
 			IPage<ServiceProjectItem> ipage = serviceProjectItemService.page(page, itemLambdaQueryWrapper);

+ 1 - 1
blade-service/blade-project/src/main/java/org/springblade/project/service/impl/ServiceProjectServiceImpl.java

@@ -245,7 +245,7 @@ public class ServiceProjectServiceImpl extends ServiceImpl<ServiceProjectMapper,
 		}
 		//检查明细总金额是否超过主表总金额
 		LambdaQueryWrapper<ServiceProjectItem> itemLambdaQueryWrapper = new LambdaQueryWrapper();
-		itemLambdaQueryWrapper.eq(ServiceProjectItem::getPId, serviceProject.getId());
+		itemLambdaQueryWrapper.eq(ServiceProjectItem::getPId, serviceProject.getId()).eq(ServiceProjectItem::getBranch,"N");
 		List<ServiceProjectItem> serviceProjectItems = serviceProjectItemMapper.selectList(itemLambdaQueryWrapper);
 		//检查金额是否超额
 		//checkMoney(serviceProject.getId(),serviceProjectItems);

Разница между файлами не показана из-за своего большого размера
+ 357 - 274
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportOrderController.java


+ 61 - 34
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -1488,33 +1488,61 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	@Override
 	public MonthSales monthSales(OrderVO order) {
 		MonthSales monthSales = new MonthSales();
-		if (StringUtils.isBlank(order.getTenantId())) {
-			order.setTenantId(SecureUtil.getTenantId());
-		}
-		order.setBillType("XS");
-		order.setOrderStartDate("2022-08-01");
-		order.setOrderEndDate("2022-08-31");
-		//获取已销售数量(审批通过的单据轮胎数量)
-		monthSales.setSoldQuantity(baseMapper.QuantitySales(order.getTenantId(), order.getTradeType(), order.getBillType(), OrderEnum.APPROVED.getStatus(), order.getOrderStartDate(), order.getOrderEndDate()));
-		//获取未销售数量(保存没提交审核的轮胎数)
-		monthSales.setUnsoldQuantity(baseMapper.QuantitySales(order.getTenantId(), order.getTradeType(), order.getBillType(), OrderEnum.PAUSE.getStatus(), order.getOrderStartDate(), order.getOrderEndDate()));
-		// 获取总金额
-		monthSales.setGrossAmount(baseMapper.monthSales(order.getTenantId(), order.getTradeType(), order.getBillType(), null, order.getOrderStartDate(), order.getOrderEndDate()));
-		// 获取达成金额
-		monthSales.setReachAmount(baseMapper.monthSales(order.getTenantId(), order.getTradeType(), order.getBillType(), OrderEnum.APPROVED.getStatus(), order.getOrderStartDate(), order.getOrderEndDate()));
-		// 获取未达成金额
-		monthSales.setNotReachAmount(baseMapper.monthSales(order.getTenantId(), order.getTradeType(), order.getBillType(), OrderEnum.PAUSE.getStatus(), order.getOrderStartDate(), order.getOrderEndDate()));
-		// 获取达成率
-		if (monthSales.getGrossAmount().compareTo(BigDecimal.ZERO) > 0) {//达成金额%总金额*100(保留两位并四舍五入)
-			monthSales.setYieldRate(monthSales.getReachAmount().divide(monthSales.getGrossAmount(), 5, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP));
+		if (AuthUtil.getTenantId().equals("673511")) {
+			//入库总单据
+			LambdaQueryWrapper<Order> RKSumLambdaQueryWrapper = new LambdaQueryWrapper<>();
+			RKSumLambdaQueryWrapper.eq(Order::getTenantId, AuthUtil.getTenantId())
+				.eq(Order::getIsDeleted, 0)
+				.eq(Order::getBillType, OrderTypeEnum.WAREHOUSING.getType())
+				.eq(Order::getTradeType, OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType());
+			int sum = baseMapper.selectCount(RKSumLambdaQueryWrapper);
+			//入库待审核
+			LambdaQueryWrapper<Order> RKlambdaQueryWrapper = new LambdaQueryWrapper<>();
+			RKlambdaQueryWrapper.eq(Order::getTenantId, AuthUtil.getTenantId())
+				.eq(Order::getIsDeleted, 0)
+				.eq(Order::getStatus, 3)
+				.eq(Order::getBillType, OrderTypeEnum.WAREHOUSING.getType())
+				.eq(Order::getTradeType, OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType());
+			int unrecognized = baseMapper.selectCount(RKlambdaQueryWrapper);
+			monthSales.setGrossAmount(BigDecimal.valueOf((int) sum));
+			monthSales.setSoldQuantity(BigDecimal.valueOf((int) (sum-unrecognized)));
+			monthSales.setReachAmount(BigDecimal.valueOf((int) (sum-unrecognized)));
+			monthSales.setUnsoldQuantity(BigDecimal.valueOf((int) unrecognized));
+			monthSales.setNotReachAmount(BigDecimal.valueOf((int) unrecognized));
+			if (monthSales.getGrossAmount().compareTo(BigDecimal.ZERO) > 0) {//达成金额%总金额*100(保留两位并四舍五入)
+				monthSales.setYieldRate(monthSales.getReachAmount().divide(monthSales.getGrossAmount(), 5, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP));
+			} else {
+				monthSales.setYieldRate(BigDecimal.ZERO);
+			}
 		} else {
-			monthSales.setYieldRate(BigDecimal.ZERO);
+			if (StringUtils.isBlank(order.getTenantId())) {
+				order.setTenantId(SecureUtil.getTenantId());
+			}
+			order.setBillType("XS");
+			order.setOrderStartDate("2022-08-01");
+			order.setOrderEndDate("2022-08-31");
+			//获取已销售数量(审批通过的单据轮胎数量)
+			monthSales.setSoldQuantity(baseMapper.QuantitySales(order.getTenantId(), order.getTradeType(), order.getBillType(), OrderEnum.APPROVED.getStatus(), order.getOrderStartDate(), order.getOrderEndDate()));
+			//获取未销售数量(保存没提交审核的轮胎数)
+			monthSales.setUnsoldQuantity(baseMapper.QuantitySales(order.getTenantId(), order.getTradeType(), order.getBillType(), OrderEnum.PAUSE.getStatus(), order.getOrderStartDate(), order.getOrderEndDate()));
+			// 获取总金额
+			monthSales.setGrossAmount(baseMapper.monthSales(order.getTenantId(), order.getTradeType(), order.getBillType(), null, order.getOrderStartDate(), order.getOrderEndDate()));
+			// 获取达成金额
+			monthSales.setReachAmount(baseMapper.monthSales(order.getTenantId(), order.getTradeType(), order.getBillType(), OrderEnum.APPROVED.getStatus(), order.getOrderStartDate(), order.getOrderEndDate()));
+			// 获取未达成金额
+			monthSales.setNotReachAmount(baseMapper.monthSales(order.getTenantId(), order.getTradeType(), order.getBillType(), OrderEnum.PAUSE.getStatus(), order.getOrderStartDate(), order.getOrderEndDate()));
+			// 获取达成率
+			if (monthSales.getGrossAmount().compareTo(BigDecimal.ZERO) > 0) {//达成金额%总金额*100(保留两位并四舍五入)
+				monthSales.setYieldRate(monthSales.getReachAmount().divide(monthSales.getGrossAmount(), 5, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP));
+			} else {
+				monthSales.setYieldRate(BigDecimal.ZERO);
+			}
 		}
 		return monthSales;
 	}
 
 	@Override
-	public OrderIncomeVo orderIncome(OrderVO order){
+	public OrderIncomeVo orderIncome(OrderVO order) {
 		OrderIncomeVo incomeVo = new OrderIncomeVo();
 		if (StringUtils.isBlank(order.getTenantId())) {
 			order.setTenantId(SecureUtil.getTenantId());
@@ -1523,13 +1551,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		//获得当前租户信息
 		Tenant tenant = iTenantClient.tenantMessage(order.getTenantId());
 		//判断贸易类型
-		if (ObjectUtil.isNotEmpty(tenant)){
+		if (ObjectUtil.isNotEmpty(tenant)) {
 			//根据公司类型判断贸易类型
-			if ("2".equals(tenant.getBillType())){
+			if ("2".equals(tenant.getBillType())) {
 				order.setTradeType("GN");
-			}else if ("3".equals(tenant.getBillType())){
+			} else if ("3".equals(tenant.getBillType())) {
 				order.setTradeType("JK");
-			}else if ("4".equals(tenant.getBillType())){
+			} else if ("4".equals(tenant.getBillType())) {
 				order.setTradeType("CK");
 			}
 			//获得租户名称
@@ -1537,11 +1565,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		}
 
 		//获得营业收入
-		incomeVo.setBusinessIncome(baseMapper.orderIncome(order.getTenantId(),order.getTradeType(), order.getOrderStartDate(), order.getOrderEndDate()));
+		incomeVo.setBusinessIncome(baseMapper.orderIncome(order.getTenantId(), order.getTradeType(), order.getOrderStartDate(), order.getOrderEndDate()));
 		//获得采购支出
-		incomeVo.setProcurementExpenditure(baseMapper.purchaseExpenditure(order.getTenantId(),order.getTradeType(), order.getOrderStartDate(), order.getOrderEndDate()));
+		incomeVo.setProcurementExpenditure(baseMapper.purchaseExpenditure(order.getTenantId(), order.getTradeType(), order.getOrderStartDate(), order.getOrderEndDate()));
 		//获得当前登录人待审核条数
-		incomeVo.setProecessCount(baseMapper.proecessCount(order.getTenantId(),AuthUtil.getUserId()));
+		incomeVo.setProecessCount(baseMapper.proecessCount(order.getTenantId(), AuthUtil.getUserId()));
 		return incomeVo;
 	}
 
@@ -1793,9 +1821,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		if (quantity.compareTo(BigDecimal.ZERO) > 0) {
 			price = amount.divide(quantity, 5, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP);
 		}
-		if (AuthUtil.getTenantId().equals("922648"))
-		{
-			if (CollectionUtils.isNotEmpty(orderItemsList)){
+		if (AuthUtil.getTenantId().equals("922648")) {
+			if (CollectionUtils.isNotEmpty(orderItemsList)) {
 				for (OrderItems orderItems : orderItemsList) {
 					Items items = new Items();
 					items.setSrcOrderno(order.getOrgOrderNo());
@@ -1815,19 +1842,19 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					items.setSrcFeesId(orderItems.getId());
 					//获取费用id
 					R<FeesDesc> fees = feesDescClient.getFeesByName("货款");
-					if (fees.isSuccess() && fees.getData() != null){
+					if (fees.isSuccess() && fees.getData() != null) {
 						items.setCostType(fees.getData().getId().toString());
 					}
 					//获取商品名称
 					//"goodName": "浩悦四代",
 					R<GoodsDescVO> goodsMessage = goodsDescClient.selectGoodsMessage(orderItems.getItemId());
-					if (goodsMessage.isSuccess() && goodsMessage.getData() != null){
+					if (goodsMessage.isSuccess() && goodsMessage.getData() != null) {
 						items.setGoodName(goodsMessage.getData().getCname());
 					}
 					itemsList.add(items);
 				}
 			}
-		}else {
+		} else {
 			Items items = new Items();
 			items.setSrcOrderno(order.getOrgOrderNo());
 			items.setItemType(itemType);

+ 1 - 0
blade-service/blade-system/src/main/java/org/springblade/system/controller/DeptController.java

@@ -103,6 +103,7 @@ public class DeptController extends BladeController {
 	})
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "懒加载列表", notes = "传入dept")
+	@PreAuth(AuthConstant.PERMIT_ALL)
 	public R<List<DeptVO>> lazyList(@ApiIgnore @RequestParam Map<String, Object> dept, Long parentId, BladeUser bladeUser) {
 		List<DeptVO> list = deptService.lazyList(bladeUser.getTenantId(), parentId, dept);
 		return R.data(DeptWrapper.build().listNodeLazyVO(list));

+ 13 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/feign/FinancingClient.java

@@ -1,10 +1,13 @@
 package com.trade.purchase.feign;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.trade.purchase.extra.feign.ILeadsClient;
 import com.trade.purchase.extra.service.ILeadsService;
+import com.trade.purchase.financing.entity.Financing;
 import com.trade.purchase.financing.service.IFinancingService;
 import com.trade.purchase.order.feign.IFinancingClient;
 import lombok.AllArgsConstructor;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tenant.annotation.NonDS;
 import org.springblade.core.tool.api.R;
 import org.springframework.web.bind.annotation.RestController;
@@ -36,4 +39,14 @@ public class FinancingClient implements IFinancingClient {
 		financingService.underReview(id);
 		return R.success("操作成功");
 	}
+
+	@Override
+	public int count() {
+		//融资待审核
+		LambdaQueryWrapper<Financing> financingLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		financingLambdaQueryWrapper.eq(Financing::getTenantId, AuthUtil.getTenantId())
+			.eq(Financing::getIsDeleted, 0)
+			.eq(Financing::getStatus, 3);
+		return financingService.count(financingLambdaQueryWrapper);
+	}
 }

+ 31 - 2
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/WoodHarvestingCloudController.java

@@ -186,7 +186,7 @@ public class WoodHarvestingCloudController {
 		if (itemId == null) {
 			return R.fail("缺少必要参数");
 		}
-		return R.data(orderItemsService.removeByItemId(itemId,type));
+		return R.data(orderItemsService.removeByItemId(itemId, type));
 	}
 
 	/**
@@ -390,7 +390,7 @@ public class WoodHarvestingCloudController {
 	@GetMapping("/scanningCodeAddPc")
 	@ApiOperationSupport(order = 7)
 	@ApiOperation(value = "Pc添加明细", notes = "billNo")
-	public R pcSubmit(@RequestParam(value = "purchaserId") Long purchaserId, @RequestParam(value = "storageId") Long storageId, Query query) {
+	public R pcSubmit(@RequestParam(value = "purchaserId") Long purchaserId, @RequestParam(value = "storageId") Long storageId, Query query, @RequestParam(value = "billNo") String billNo) {
 		if (ObjectUtils.isNull(purchaserId) || ObjectUtils.isNull(storageId)) {
 			return R.fail("缺少必要参数");
 		}
@@ -400,6 +400,7 @@ public class WoodHarvestingCloudController {
 			.eq(OrderItems::getPurchaserId, purchaserId)
 			.eq(OrderItems::getIsIssue, "3")
 			.eq(OrderItems::getScanningComparison, "N")
+			.like(ObjectUtils.isNotNull(billNo), OrderItems::getBillNo, billNo)
 			.eq(OrderItems::getWarehouseId, storageId);
 		IPage<OrderItems> pages = orderItemsService.page(Condition.getPage(query), lambdaQueryWrapper);
 		return R.data(pages);
@@ -431,11 +432,39 @@ public class WoodHarvestingCloudController {
 			mapCK = orderItemsService.appIndexStatistics("week", "CK");
 			LastMapCK = orderItemsService.appIndexStatistics("lastWeek", "CK");
 		}
+		LambdaQueryWrapper<OrderItems> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(OrderItems::getTenantId, AuthUtil.getTenantId())
+			.eq(OrderItems::getIsDeleted, 0)
+			.eq(OrderItems::getIsIssue, "3");
+		List<OrderItems> list = orderItemsService.list(lambdaQueryWrapper);
 		map.put("currentRK", mapRK);
 		map.put("currentCK", mapCK);
 		map.put("upperRK", LastMapRK);
 		map.put("upperCK", LastMapCK);
+		map.put("sum", list.stream().map(OrderItems::getStorageInQuantity).reduce(BigDecimal.ZERO, BigDecimal::add).intValue());
 		return R.data(map);
 	}
 
+	/**
+	 * 销售统计
+	 */
+	@GetMapping("/salesTrends")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "销售统计", notes = "year")
+	public R salesTrends(@RequestParam(value = "year") String year) {
+		List<Map<String, Object>> mapList = orderService.salesTrends(year);
+		List<Map<String, Object>> newMapList = new ArrayList<>();
+		for (Map<String, Object> map : mapList) {
+			Map<String, Object> newMap = new HashMap<>();
+			//获取商品编码,名称,规格编码,规格型号
+			R<GoodsDescVO> goodsMessage = goodsDescClient.selectGoodsMessage(Long.parseLong(String.valueOf(map.get("moon"))));
+			if (goodsMessage.isSuccess() && goodsMessage.getData() != null) {
+				newMap.put("moon", goodsMessage.getData().getCname());
+				newMap.put("money", map.get("money"));
+				newMapList.add(newMap);
+			}
+		}
+		return R.data(newMapList);
+	}
+
 }

+ 2 - 2
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderItemsMapper.java

@@ -10,7 +10,6 @@ import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
 import java.util.List;
-import java.util.Map;
 
 /**
  * 订单明细表 Mapper 接口
@@ -58,8 +57,9 @@ public interface OrderItemsMapper extends BaseMapper<OrderItems> {
 
 	/**
 	 * app首页统计
+	 *
 	 * @param type
 	 * @return
 	 */
-	BigDecimal appIndexStatistics(@Param("type")String type,@Param("billType")String billType);
+	BigDecimal appIndexStatistics(@Param("type") String type, @Param("billType") String billType);
 }

+ 8 - 8
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderItemsMapper.xml

@@ -138,22 +138,22 @@
     <select id="appIndexStatistics" resultType="java.math.BigDecimal">
             SELECT IFNULL(sum(storage_in_quantity),0) FROM business_order_items
             WHERE is_deleted = 0 and tenant_id = '673511'
-            <if test="billType == RK">
+            <if test="billType == 'RK'">
                 and is_Issue = '3'
             </if>
-            <if test="billType == CK">
+            <if test="billType == 'CK'">
                 and is_Issue = '7'
             </if>
-            <if test="type == lastMonth">
-                date_format(create_time,'%Y-%m')=date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),'%Y-%m')
+            <if test="type == 'lastMonth'">
+                and date_format(create_time,'%Y-%m')=date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),'%Y-%m')
             </if>
-            <if test="type == month">
-                date_format(create_time,'%Y-%m')=date_format(now(),'%Y-%m')
+            <if test="type == 'month'">
+                and date_format(create_time,'%Y-%m')=date_format(now(),'%Y-%m')
             </if>
-            <if test="type == week">
+            <if test="type == 'week'">
                 and YEARWEEK(date_format(create_time,'%Y-%m-%d')) = YEARWEEK(now());
             </if>
-            <if test="type == lastWeek">
+            <if test="type == 'lastWeek'">
                 and YEARWEEK(date_format(create_time,'%Y-%m-%d')) = YEARWEEK(now())-1;
             </if>
     </select>

+ 2 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderMapper.java

@@ -46,4 +46,6 @@ public interface OrderMapper extends BaseMapper<Order> {
 	 * @return
 	 */
 	List<Map<String, Object>> generalLedgerListByGoods(@Param("tenantId") String tenantId);
+
+    List<Map<String, Object>> salesTrends(@Param("tenantId") String tenantId,@Param("year") String year);
 }

+ 17 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderMapper.xml

@@ -481,4 +481,21 @@
           and boi.tenant_id = #{tenantId}
         GROUP BY boi.item_id
     </select>
+    <select id="salesTrends" resultType="java.util.Map">
+        SELECT boi.item_id             AS moon,
+               sum(boi.balance_number) AS money
+        FROM business_order_items boi
+                 JOIN business_order bo ON boi.pid = bo.id
+        where boi.is_deleted = 0
+          AND bo.is_deleted = 0
+          AND bo.status = 5
+          AND bo.bill_type = 'RK'
+          AND bo.trade_type = 'CMY'
+          and boi.is_Issue = '7'
+          and boi.tenant_id = #{tenantId}
+        <if test="year!=null and year != ''">
+            and DATE_FORMAT(boi.stock_time,'%Y') = #{year}
+        </if>
+        GROUP BY boi.item_id
+    </select>
 </mapper>

+ 9 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/IOrderService.java

@@ -15,7 +15,9 @@ import lombok.Synchronized;
 import org.apache.ibatis.annotations.Param;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.RequestParam;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -244,4 +246,11 @@ public interface IOrderService extends IService<Order> {
 	 * @return
 	 */
 	R scanningCodeAdd(String billNo, Long id);
+
+	/**
+	 *
+	 * @param year
+	 * @return
+	 */
+    List<Map<String, Object>> salesTrends(String year);
 }

+ 67 - 43
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

@@ -1057,6 +1057,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		baseMapper.insert(submitDto);
 		//结余数量
 		BigDecimal balanceNumber = new BigDecimal(0);
+		BigDecimal balanceMoney = new BigDecimal(0);
 		//明细品名集合
 		List<String> goodsName = new ArrayList<>();
 		//判断明细是否为空
@@ -1097,6 +1098,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				orderItems.setBalanceNumber(orderItems.getStorageInQuantity());
 				orderItemsMapper.insert(orderItems);
 				balanceNumber = balanceNumber.add(orderItems.getStorageInQuantity());
+				balanceMoney = balanceMoney.add(orderItems.getBalanceMoney());
 				goodsName.add(orderItems.getGoodsName());
 			}
 		}
@@ -1109,6 +1111,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		submitDto.setUpdateUser(AuthUtil.getUserId());
 		submitDto.setUpdateTime(new Date());
 		submitDto.setStorageQuantity(balanceNumber);//入库量
+		submitDto.setStorageAmount(balanceMoney);//入库量
 		submitDto.setSpecialRemarks(String.join(",", goodsName));//明细品名
 		baseMapper.updateById(submitDto);
 		return R.data(submitDto);
@@ -1129,6 +1132,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		submitDto.setTradeType(OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType());//类型
 		//结余数量
 		BigDecimal balanceNumber = new BigDecimal(0);
+		BigDecimal balanceMoney = new BigDecimal(0);
 		//明细品名集合
 		List<String> goodsName = new ArrayList<>();
 		//明细是否为空
@@ -1186,6 +1190,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					orderItemsMapper.insert(orderItems);
 				}
 				balanceNumber = balanceNumber.add(orderItems.getStorageInQuantity());
+				balanceMoney = balanceMoney.add(orderItems.getBalanceMoney());
 				goodsName.add(orderItems.getGoodsName());
 			}
 		}
@@ -1198,6 +1203,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		submitDto.setUpdateUser(AuthUtil.getUserId());
 		submitDto.setUpdateTime(new Date());
 		submitDto.setStorageQuantity(balanceNumber);//入库量
+		submitDto.setStorageAmount(balanceMoney);//入库量
 		submitDto.setSpecialRemarks(String.join(",", goodsName));//明细品名
 		baseMapper.updateById(submitDto);
 		return R.data(submitDto);
@@ -1241,6 +1247,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		}
 		//结余数量
 		BigDecimal balanceNumber = new BigDecimal(0);
+		BigDecimal balanceMoney = new BigDecimal(0);
 		//明细品名集合
 		List<String> goodsName = new ArrayList<>();
 
@@ -1296,6 +1303,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					orderItemsMapper.insert(orderItems);
 				}
 				balanceNumber = balanceNumber.add(orderItems.getStorageInQuantity());
+				balanceMoney = balanceMoney.add(orderItems.getBalanceMoney());
 				goodsName.add(orderItems.getGoodsName());
 			}
 		}
@@ -1308,6 +1316,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		submitDto.setUpdateUser(AuthUtil.getUserId());
 		submitDto.setUpdateTime(new Date());
 		submitDto.setStorageQuantity(balanceNumber);//入库量
+		submitDto.setStorageAmount(balanceMoney);//入库量
 		submitDto.setSpecialRemarks(String.join(",", goodsName));//明细品名
 		baseMapper.updateById(submitDto);
 		return R.data(submitDto);
@@ -1342,7 +1351,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		List<OrderItems> orderItems = orderItemsMapper.selectList(orderItemsLambdaQueryWrapper);
 
 		//生成账单数据
-		order.setOrderNo(salesOrder.getOrderNo());
+		order.setOrderNo(salesOrder.getSysNo());
 		order.setBusinesDate(salesOrder.getBusinesDate());
 		order.setCorpId(salesOrder.getCorpId());
 		order.setBelongToCorpId(salesOrder.getBelongToCorpId());
@@ -1350,7 +1359,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		order.setThisUsedProfit(salesOrder.getThisUsedProfit());
 		order.setPurchaserId(salesOrder.getPurchaserId());
 		order.setStorageId(salesOrder.getStorageId());
-		order.setOrgOrderNo(salesOrder.getOrgOrderNo());
+		order.setOrgOrderNo(salesOrder.getSysNo());
 		order.setStorageQuantity(salesOrder.getStorageQuantity());
 		order.setBillNo(salesOrder.getBillNo());
 		order.setId(salesOrder.getId());
@@ -1465,7 +1474,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				receivableLambdaQueryWrapper.eq(OrderFees::getPid, order.getId());
 				receivableLambdaQueryWrapper.eq(OrderFees::getFeesType, 2);
 				List<OrderFees> receivableOrderFeesList = orderFeesService.list(receivableLambdaQueryWrapper);
-				auditProecessDTO.setPayAmount(receivableOrderFeesList.stream().map(OrderFees::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
+				if (ObjectUtils.isNotNull(receivableOrderFeesList)){
+					auditProecessDTO.setPayAmount(receivableOrderFeesList.stream().map(OrderFees::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
+				}else{
+					auditProecessDTO.setPayAmount(new BigDecimal(0));
+				}
 				//应收
 				LambdaQueryWrapper<OrderFees> payLambdaQueryWrapper = new LambdaQueryWrapper<>();
 				payLambdaQueryWrapper.eq(OrderFees::getIsDeleted, 0);
@@ -1473,7 +1486,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				payLambdaQueryWrapper.eq(OrderFees::getPid, order.getId());
 				payLambdaQueryWrapper.eq(OrderFees::getFeesType, 1);
 				List<OrderFees> payOrderFeesList = orderFeesService.list(payLambdaQueryWrapper);
-				auditProecessDTO.setReceivableAmount(payOrderFeesList.stream().map(OrderFees::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
+				if (ObjectUtils.isNotNull(receivableOrderFeesList)){
+					auditProecessDTO.setReceivableAmount(payOrderFeesList.stream().map(OrderFees::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
+				}else{
+					auditProecessDTO.setReceivableAmount(new BigDecimal(0));
+				}
 			}
 			//审批数据
 			auditProecessDTO.setOrderQuantity(salesOrder.getStorageQuantity());
@@ -1847,11 +1864,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			if (orderFees.getSettlmentAmount().compareTo(new BigDecimal(0)) > 0) {
 				throw new SecurityException("账务已结算,撤回失败");
 			}
-			orderFees.setIsCheck(0);
-			orderFees.setSubmitPay(0);
-			orderFees.setSettlmentAmount(new BigDecimal("0"));
-			orderFeesService.updateById(orderFees);
-			financeClient.deleteBySrcFeesId(orderFees.getId());
+			if ("1".equals(orderFees.getStorageFee())) {
+				orderFeesService.removeById(orderFees.getId());
+			} else {
+				orderFees.setIsCheck(0);
+				orderFees.setSubmitPay(0);
+				orderFees.setSettlmentAmount(new BigDecimal("0"));
+				orderFeesService.updateById(orderFees);
+				financeClient.deleteBySrcFeesId(orderFees.getId());
+			}
 		}
 
 		//获取入库
@@ -1897,14 +1918,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			order.setConfirmStatus("0");
 			//出库审批撤销
 		} else if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(order.getBillType())) {
-			//入库明细
-			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);
 			int isIssue = 4;
 			//判断第几次出库审核
 			if (8 == order.getStatus()) {
@@ -2211,7 +2224,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		List<Financing> stillList = financingService.list(stillLambdaQueryWrapper);
 		BigDecimal still = stillList.stream().map(Financing::getFinancingAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
 
-		BigDecimal financing = still.subtract(borrow, MathContext.UNLIMITED);
+		BigDecimal financing = borrow.subtract(still, MathContext.UNLIMITED);
 
 		//获取该客户还在库的货物金额
 		LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -2301,6 +2314,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	/**
+	 * @param year
+	 * @return
+	 */
+	@Override
+	public List<Map<String, Object>> salesTrends(String year) {
+		return baseMapper.salesTrends(AuthUtil.getTenantId(),year);
+	}
+
+	/**
 	 * 订单生成账单 并且推送财务消息
 	 *
 	 * @param order    订单信息
@@ -2514,14 +2536,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 						//判断实际存放天数是否大于本条结束天数
 						if (days >= agreementitems.getEnDays()) {
 							//本条收费天数乘以单价 = 所需收费金额
-							amount = amount.add((new BigDecimal((agreementitems.getEnDays() - agreementitems.getFromDays() + 1), MathContext.UNLIMITED)).multiply(agreementitems.getPrice(), MathContext.UNLIMITED).multiply(order.getStorageQuantity()));
+							amount = amount.add((new BigDecimal((agreementitems.getEnDays() - agreementitems.getFromDays() + 1), MathContext.UNLIMITED)).multiply(agreementitems.getPrice(), MathContext.UNLIMITED).multiply(orderItems.getStorageInQuantity()));
 							//业务天数减去本条结束天数所得天数为下一条要收费天数
 							date = date - (agreementitems.getEnDays() - agreementitems.getFromDays() + 1);
-							text.append(order.getStorageQuantity()).append("*").append(agreementitems.getPrice()).append("*").append(agreementitems.getEnDays() - agreementitems.getFromDays() + 1).append("+");
+							text.append(orderItems.getStorageInQuantity()).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()));
+								amount = amount.add((new BigDecimal(date + 2)).multiply(agreementitems.getPrice(), MathContext.UNLIMITED).multiply(orderItems.getStorageInQuantity()));
 								text.append(order.getStorageQuantity()).append("*").append(agreementitems.getPrice()).append("*").append(date + 2);
 							}
 						}
@@ -2547,12 +2569,35 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			items.setSrcBillNo(order.getBillNo());
 			items.setStatusJT(1);
 			items.setBillNo(order.getBillNo());
+
 			//获取费用id
 			R<FeesDesc> fees = feesDescClient.getFeesByName("仓储费");
 			if (fees.isSuccess() && fees.getData() != null) {
 				items.setCostType(fees.getData().getId().toString());
-				items.setSrcFeesId(fees.getData().getId());
 			}
+			//将仓储费添加到费用明细中
+			OrderFees orderFees = new OrderFees();
+			orderFees.setPid(pid);
+			orderFees.setItemId(fees.getData().getId());
+			orderFees.setCorpId(order.getPurchaserId());
+			orderFees.setQuantity(new BigDecimal("1"));
+			orderFees.setPrice(amount);
+			orderFees.setAmount(amount);
+			orderFees.setCurrency("CNY");
+			orderFees.setExchangeRate(new BigDecimal("1"));
+			orderFees.setUnit(feeUnitId + "");
+			orderFees.setFeesType(1);
+			orderFees.setRemarks(text.toString());
+			orderFees.setCreateTime(new Date());
+			orderFees.setCreateUser(AuthUtil.getUserId());
+			orderFees.setCreateUserName(AuthUtil.getUserName());
+			orderFees.setTenantId(AuthUtil.getTenantId());
+			orderFees.setIsCheck(1);
+			orderFees.setSubmitPay(1);
+			orderFees.setStorageFee("1");
+			orderFeesService.save(orderFees);
+
+			items.setSrcFeesId(orderFees.getId());
 			itemsList.add(items);
 			applyDTO.setItemsList(itemsList);
 			if (CollectionUtils.isNotEmpty(itemsList)) {
@@ -2562,27 +2607,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					throw new RuntimeException(paymentApply.getMsg());
 				}
 
-				//将仓储费添加到费用明细中
-				OrderFees orderFees = new OrderFees();
-				orderFees.setPid(pid);
-				orderFees.setItemId(fees.getData().getId());
-				orderFees.setCorpId(order.getPurchaserId());
-				orderFees.setQuantity(new BigDecimal("1"));
-				orderFees.setPrice(amount);
-				orderFees.setAmount(amount);
-				orderFees.setCurrency("CNY");
-				orderFees.setExchangeRate(new BigDecimal("1"));
-				orderFees.setUnit(feeUnitId + "");
-				orderFees.setFeesType(1);
-				orderFees.setRemarks(text.toString());
-				orderFees.setCreateTime(new Date());
-				orderFees.setCreateUser(AuthUtil.getUserId());
-				orderFees.setCreateUserName(AuthUtil.getUserName());
-				orderFees.setTenantId(AuthUtil.getTenantId());
-				orderFees.setIsCheck(1);
-				orderFees.setSubmitPay(1);
-				orderFeesService.save(orderFees);
-
 				//给角色为财务的人发送消息
 				R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "财务");
 				if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {

Некоторые файлы не были показаны из-за большого количества измененных файлов