Browse Source

新增未知明细收入字段

sunhz 3 years ago
parent
commit
41066dff66

+ 2 - 0
blade-ops/blade-report/src/main/java/org/springblade/report/entity/ServiceProjectItem.java

@@ -142,6 +142,8 @@ public class ServiceProjectItem extends TenantEntity implements Serializable {
 
 	private BigDecimal superaddition;
 
+	private BigDecimal otheramt;
+
 	private Integer projectType;
     @TableField(exist = false)
 	private BigDecimal grossIncome;

+ 2 - 1
blade-ops/blade-report/src/main/java/org/springblade/report/mapper/ServiceProjectItemMapper.xml

@@ -39,7 +39,8 @@
     DATE_FORMAT(a.create_time,'%Y-%m-%d') as strCreateTime,
     a.update_user_name as updateUserName,
     DATE_FORMAT(a.update_time,'%Y-%m-%d') as strUpdateTime,
-    a.remarks as remarks
+    a.remarks as remarks,
+    a.otheramt as otheramt
     from
     (
 	SELECT

+ 2 - 0
blade-service-api/blade-project-api/src/main/java/org/springblade/project/entity/ServiceProjectItem.java

@@ -132,6 +132,8 @@ public class ServiceProjectItem extends TenantEntity implements Serializable {
 
 	private BigDecimal superaddition;
 
+	private BigDecimal otheramt;
+
 	private Integer projectType;
     @TableField(exist = false)
 	private BigDecimal grossIncome;

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

@@ -1,6 +1,7 @@
 package org.springblade.project.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.obs.services.internal.security.EcsSecurityUtils;
 import lombok.AllArgsConstructor;
@@ -19,8 +20,11 @@ import org.springblade.project.entity.ServiceProjectItem;
 import org.springblade.project.service.ServiceProjectFilesService;
 import org.springblade.project.service.ServiceProjectItemService;
 import org.springblade.project.service.ServiceProjectService;
+import org.springblade.project.utils.DateUtil;
 import org.springblade.system.entity.Dept;
+import org.springblade.system.entity.Tenant;
 import org.springblade.system.feign.ISysClient;
+import org.springblade.system.feign.ITenantClient;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -49,6 +53,8 @@ public class ProjectController {
 	private ServiceProjectFilesService serviceProjectFilesService;
     @Autowired
 	private IUserClient userClient;
+	@Autowired
+	private ITenantClient iTenantClient;
     @Autowired
 	private ICorpsDescClient corpsDescClient;//获取客户信息
 	@Autowired
@@ -183,6 +189,49 @@ public class ProjectController {
 		return R.success("删除成功");
 	}
 
+	@GetMapping("/countByDate")
+	public R countByDate(@RequestParam(name = "type") Integer type)
+	{
+		String beginTime;
+		String endTime;
+
+		if (type == 4) {
+			beginTime = DateUtil.beginYear();
+			endTime = DateUtil.endYear();
+		} else if (type == 3) {
+			beginTime = DateUtil.beginMonth();
+			endTime = DateUtil.endMonth();
+		} else if (type == 2) {
+			beginTime = DateUtil.beginWeek();
+			endTime = DateUtil.endWeek();
+		} else {
+			beginTime = DateUtil.beginDay();
+			endTime = DateUtil.endDay();
+		}
+
+		QueryWrapper<ServiceProjectItem> amountQueryWrapper = new QueryWrapper<>();
+		amountQueryWrapper.select("ifnull(sum(service_charge), 0) as income", "ifnull(sum(amount), 0) as amount")
+			.between("create_time", beginTime, endTime);
+		Map<String, Object> amountMap = serviceProjectItemService.getMap(amountQueryWrapper);
+
+		LambdaQueryWrapper<ServiceProjectItem> countLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		countLambdaQueryWrapper.between(ServiceProjectItem::getCreateTime, beginTime, endTime);
+		int allOrders = serviceProjectItemService.count(countLambdaQueryWrapper);
+
+		countLambdaQueryWrapper.eq(ServiceProjectItem::getStatus, 4);
+		int openOrders = serviceProjectItemService.count(countLambdaQueryWrapper);
+
+		Tenant tenant = iTenantClient.tenantMessage(SecureUtil.getTenantId());
+
+		return R.data(new HashMap<String, Object>() {{
+			this.put("tenantName", tenant.getTenantName());
+			this.put("income", amountMap.get("income"));
+			this.put("amount", amountMap.get("amount"));
+			this.put("allOrders", allOrders);
+			this.put("openOrders", openOrders);
+		}});
+	}
+
 	@GetMapping("findById")
 	public R<?> findById(@RequestParam(name = "id", required = true) Long id,
 						 @RequestParam(name = "itemStatus", required = true) String itemStatus)

+ 14 - 13
blade-service/blade-project/src/main/java/org/springblade/project/mapper/ServiceProjectItemMapper.xml

@@ -34,7 +34,8 @@
     a.create_time as createTime,
     a.update_user_name as updateUserName,
     a.update_time as updateTime,
-    a.remarks as remarks
+    a.remarks as remarks,
+    a.otheramt as otheramt
     from
     (
 	SELECT
@@ -81,18 +82,18 @@
 
     <select id="calculateServiceCharge" resultType="org.springblade.project.entity.ServiceProject">
         SELECT
-        sum( CASE MONTH ( b.pay_time ) WHEN '1' THEN b.service_charge ELSE 0 END ) AS Jan,
-        sum( CASE MONTH ( b.pay_time ) WHEN '2' THEN b.service_charge ELSE 0 END ) AS Feb,
-        sum( CASE MONTH ( b.pay_time ) WHEN '3' THEN b.service_charge ELSE 0 END ) AS Mar,
-        sum( CASE MONTH ( b.pay_time ) WHEN '4' THEN b.service_charge ELSE 0 END ) AS Apr,
-        sum( CASE MONTH ( b.pay_time ) WHEN '5' THEN b.service_charge ELSE 0 END ) AS May,
-        sum( CASE MONTH ( b.pay_time ) WHEN '6' THEN b.service_charge ELSE 0 END ) AS June,
-        sum( CASE MONTH ( b.pay_time ) WHEN '7' THEN b.service_charge ELSE 0 END ) AS July,
-        sum( CASE MONTH ( b.pay_time ) WHEN '8' THEN b.service_charge ELSE 0 END ) AS Aug,
-        sum( CASE MONTH ( b.pay_time ) WHEN '9' THEN b.service_charge ELSE 0 END ) AS Sept,
-        sum( CASE MONTH ( b.pay_time ) WHEN '10' THEN b.service_charge ELSE 0 END ) AS Oct,
-        sum( CASE MONTH ( b.pay_time ) WHEN '11' THEN b.service_charge ELSE 0 END ) AS Nov,
-        sum( CASE MONTH ( b.pay_time ) WHEN '12' THEN b.service_charge ELSE 0 END ) AS Dece
+        sum( CASE MONTH ( b.pay_time ) WHEN '1' THEN b.service_charge + b.otheramt ELSE 0 END ) AS Jan,
+        sum( CASE MONTH ( b.pay_time ) WHEN '2' THEN b.service_charge + b.otheramt ELSE 0 END ) AS Feb,
+        sum( CASE MONTH ( b.pay_time ) WHEN '3' THEN b.service_charge + b.otheramt ELSE 0 END ) AS Mar,
+        sum( CASE MONTH ( b.pay_time ) WHEN '4' THEN b.service_charge + b.otheramt ELSE 0 END ) AS Apr,
+        sum( CASE MONTH ( b.pay_time ) WHEN '5' THEN b.service_charge + b.otheramt ELSE 0 END ) AS May,
+        sum( CASE MONTH ( b.pay_time ) WHEN '6' THEN b.service_charge + b.otheramt ELSE 0 END ) AS June,
+        sum( CASE MONTH ( b.pay_time ) WHEN '7' THEN b.service_charge + b.otheramt ELSE 0 END ) AS July,
+        sum( CASE MONTH ( b.pay_time ) WHEN '8' THEN b.service_charge + b.otheramt ELSE 0 END ) AS Aug,
+        sum( CASE MONTH ( b.pay_time ) WHEN '9' THEN b.service_charge + b.otheramt ELSE 0 END ) AS Sept,
+        sum( CASE MONTH ( b.pay_time ) WHEN '10' THEN b.service_charge + b.otheramt ELSE 0 END ) AS Oct,
+        sum( CASE MONTH ( b.pay_time ) WHEN '11' THEN b.service_charge + b.otheramt ELSE 0 END ) AS Nov,
+        sum( CASE MONTH ( b.pay_time ) WHEN '12' THEN b.service_charge + b.otheramt ELSE 0 END ) AS Dece
         FROM
         service_project a ,service_project_item b
         WHERE b.p_id=a.id

+ 68 - 0
blade-service/blade-project/src/main/java/org/springblade/project/utils/DateUtil.java

@@ -0,0 +1,68 @@
+package org.springblade.project.utils;
+
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+/**
+ * 日期工具类
+ *
+ * @author sun
+ */
+public class DateUtil {
+
+	public static String dateTime(Date date) {
+		return new SimpleDateFormat("yyyy-MM-dd").format(date);
+	}
+
+	public static String beginDay() {
+		return dateTime(new Date()) + " 00:00:00";
+	}
+
+	public static String endDay() {
+		return dateTime(new Date()) + " 23:59:59";
+	}
+
+	public static String beginWeek() {
+		Calendar cale = Calendar.getInstance();
+		cale.add(Calendar.WEEK_OF_MONTH, 0);
+		cale.set(Calendar.DAY_OF_WEEK, 2);
+		return dateTime(cale.getTime()) + " 00:00:00";
+	}
+
+	public static String endWeek() {
+		Calendar cale = Calendar.getInstance();
+		cale.set(Calendar.DAY_OF_WEEK, cale.getActualMaximum(Calendar.DAY_OF_WEEK));
+		cale.add(Calendar.DAY_OF_WEEK, 1);
+		return dateTime(cale.getTime()) + " 23:59:59";
+	}
+
+	public static String beginMonth() {
+		Calendar cale = Calendar.getInstance();
+		cale.add(Calendar.MONTH, 0);
+		cale.set(Calendar.DAY_OF_MONTH, 1);
+		return dateTime(cale.getTime()) + " 00:00:00";
+	}
+
+	public static String endMonth() {
+		Calendar cale = Calendar.getInstance();
+		cale.add(Calendar.MONTH, 1);
+		cale.set(Calendar.DAY_OF_MONTH, 0);
+		return dateTime(cale.getTime()) + " 23:59:59";
+	}
+
+	public static String beginYear() {
+		Calendar cale = Calendar.getInstance();
+		cale.add(Calendar.YEAR, 0);
+		cale.set(Calendar.DAY_OF_YEAR, 1);
+		return dateTime(cale.getTime()) + " 00:00:00";
+	}
+
+	public static String endYear() {
+		Calendar cale = Calendar.getInstance();
+		cale.add(Calendar.YEAR, 1);
+		cale.set(Calendar.DAY_OF_YEAR, 0);
+		return dateTime(cale.getTime()) + " 23:59:59";
+	}
+
+}