ioioio 3 lat temu
rodzic
commit
cf2a7371a8

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

@@ -0,0 +1,176 @@
+package org.springblade.report.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springblade.core.tenant.mp.TenantEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+/**
+ * 服务明细
+ *
+ * @author castiel
+ * @email sunlightcs@gmail.com
+ * @date 2021-10-26 13:50:49
+ */
+@Data
+@TableName("service_project_item")
+public class ServiceProjectItem extends TenantEntity implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	//
+	@TableId
+	private Long id;
+	//主表主键
+	private Long pId;
+	//排序
+	private Integer sort;
+	//费用id
+	private Long goodsId;
+	//备注
+	private String feeRemarks;
+	//计费单位
+	private String unit;
+	//数量
+	private BigDecimal quantity;
+	//单价
+	private BigDecimal price;
+	//金额
+	private BigDecimal amount;
+	//频率
+	private String frequency;
+	//提醒日
+	private Date reminderDay;
+	//税率
+	private BigDecimal taxRate;
+	//核销金额
+	private BigDecimal settlmentAmount;
+	//任务部门
+	private Long deptid;
+	//承做人
+	private Long userid;
+	//开始时间
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date beginTime;
+	//结束时间
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date endTime;
+	//实际完成时间
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date actualDate;
+	//账户名称
+	private String accountName;
+	//开户银行
+	private String accountBank;
+	//银行账号
+	private String accountNo;
+	//备注
+	private String remarks;
+	//版本
+	private String version;
+	//租户id
+	private String tenantId;
+	//创建人
+	private Long createUser;
+	//创建部门
+	private Long createDept;
+	//创建时间
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date createTime;
+	//修改人
+	private Long updateUser;
+	//修改时间
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date updateTime;
+	//状态
+	private Integer status;
+	//是否已删除
+	@TableLogic
+	private Integer isDeleted;
+
+
+
+	private String createUserName;
+	private String updateUserName;
+	private String pName;
+
+	@TableField(exist = false)
+	private String strStatus;
+
+
+	private String userName;
+
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date payTime;
+
+	@TableField(exist = false)
+	private String cornName;
+
+	@TableField(exist = false)
+	private String deptName;
+
+	private BigDecimal serviceCharge;
+
+	private BigDecimal matMoney;
+
+	private BigDecimal costReturn;
+
+	private BigDecimal superaddition;
+
+	private Integer projectType;
+    @TableField(exist = false)
+	private BigDecimal grossIncome;
+
+	@TableField(exist = false)
+	private Long cornId;
+
+
+	@TableField(exist = false)
+	private BigDecimal Jan;
+	@TableField(exist = false)
+	private BigDecimal Feb;
+	@TableField(exist = false)
+	private BigDecimal Mar;
+	@TableField(exist = false)
+	private BigDecimal Apr;
+	@TableField(exist = false)
+	private BigDecimal May;
+	@TableField(exist = false)
+	private BigDecimal June;
+	@TableField(exist = false)
+	private BigDecimal July;
+	@TableField(exist = false)
+	private BigDecimal Aug;
+	@TableField(exist = false)
+	private BigDecimal Sept;
+	@TableField(exist = false)
+	private BigDecimal Oct;
+	@TableField(exist = false)
+	private BigDecimal Nov;
+	@TableField(exist = false)
+	private BigDecimal Dece;
+
+	@TableField(exist = false)
+	private Integer countCorp;
+	@TableField(exist = false)
+	private BigDecimal total;
+
+	@TableField(exist = false)
+	private String strProjectType;
+
+
+}

+ 26 - 0
blade-ops/blade-report/src/main/java/org/springblade/report/mapper/ServiceProjectItemMapper.java

@@ -0,0 +1,26 @@
+package org.springblade.report.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.report.entity.ServiceProjectItem;
+
+
+import java.util.List;
+
+/**
+ * 服务明细
+ *
+ * @author castiel
+ * @email sunlightcs@gmail.com
+ * @date 2021-10-26 13:50:49
+ */
+@Mapper
+public interface ServiceProjectItemMapper extends BaseMapper<ServiceProjectItem> {
+
+	List<ServiceProjectItem>  statisticalAnalysis(@Param("tenantId") String tenantId, @Param("userName") String userName, @Param("projectType") String projectType, @Param("deptid") String deptid, @Param("pname") String pname, @Param("status") String status, @Param("cornId") String cornId, @Param("payStartTime") String payStartTime, @Param("payEndTime") String payEndTime);
+
+
+
+}

+ 88 - 0
blade-ops/blade-report/src/main/java/org/springblade/report/mapper/ServiceProjectItemMapper.xml

@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.report.mapper.ServiceProjectItemMapper">
+
+    <select id="statisticalAnalysis" resultType="org.springblade.report.entity.ServiceProjectItem">
+    select
+    (CASE a.itemStatus
+    WHEN  0 THEN '录入'
+    WHEN  1 THEN '请核'
+    WHEN  2 THEN '审核中'
+    WHEN  3 THEN '审核通过'
+    WHEN  4 THEN '正在结算'
+    WHEN  5 THEN '结算完成'
+    WHEN  6 THEN ''
+    WHEN  7 THEN '追加'
+    WHEN  8 THEN '退费'
+    ELSE 'null' END) as strStatus,
+    (CASE a.project_type
+        WHEN  0 THEN '普通'
+        WHEN  1 THEN '追加代垫费'
+        WHEN  2 THEN '退费'
+        ELSE 'null' END) as strProjectType,
+    b.cname as cornName ,
+    a.p_name as pName,
+    ((a.service_charge+ a.mat_money )-a.cost_return) as grossIncome,
+    a.service_charge as serviceCharge,
+    a.mat_money as matMoney,
+    a.amount as amount,
+    a.user_name as userName,
+    c.dept_name  as deptName,
+    a.ACCOUNT_NAME as accountName,
+    a.pay_time as payTime,
+    a.frequency as frequency,
+    a.reminder_day as reminderDay,
+    a.begin_time as beginTime,
+    a.actual_date as actualDate,
+    a.create_user_name as createUserName,
+    a.create_time as createTime,
+    a.update_user_name as updateUserName,
+    a.update_time as updateTime,
+    a.remarks as remarks
+    from
+    (
+	SELECT
+	a.corp_id,
+	b.`status` as itemStatus,
+	b.project_type as projectType,
+	b.*
+    FROM
+	service_project a,
+	service_project_item b
+    WHERE
+		  a.id=b.p_id
+	AND b.tenant_id = #{tenantId}
+	and b.is_deleted = 0
+    AND b.STATUS IN ( '0', '1', '2', '3', '4', '5', '6' )
+        <if test='userName != null and userName!= ""'>
+            AND b.user_name = #{userName}
+        </if>
+        <if test='projectType != null and projectType!= ""'>
+            AND b.project_type = #{projectType}
+        </if>
+        <if test='deptid != null and deptid!= ""'>
+            AND b.deptid = #{deptid}
+        </if>
+        <if test='pname != null and pname!= ""'>
+            AND b.p_name = #{pname}
+        </if>
+        <if test='status != null and status!= ""'>
+            AND b.status = #{status}
+        </if>
+        <if test='cornId != null and cornId!= ""'>
+            AND a.corn_id = #{cornId}
+        </if>
+
+        <if test='payStartTime != null and payEndTime!= null'>
+            and b.pay_time between #{payStartTime} and #{payEndTime}
+        </if>
+
+	) a
+	LEFT JOIN basic_corps_desc b on a.corp_id=b.id
+	left JOIN blade_dept c on a.deptid =c.id
+	order by  a.update_time desc
+    </select>
+
+
+
+</mapper>

+ 23 - 0
blade-ops/blade-report/src/main/java/org/springblade/report/service/ServiceProjectItemService.java

@@ -0,0 +1,23 @@
+package org.springblade.report.service;
+
+
+
+
+
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.report.entity.ServiceProjectItem;
+
+import java.util.List;
+
+/**
+ * 服务明细
+ *
+ * @author castiel
+ * @email sunlightcs@gmail.com
+ * @date 2021-10-26 13:50:49
+ */
+public interface ServiceProjectItemService extends BaseService<ServiceProjectItem>
+{
+
+	List<ServiceProjectItem>  statisticalAnalysis( String tenantId, String userName, String projectType,String deptid, String pname, String status, String cornId,String payStartTime, String payEndTime);
+}

+ 24 - 0
blade-ops/blade-report/src/main/java/org/springblade/report/service/impl/ServiceProjectItemServiceImpl.java

@@ -0,0 +1,24 @@
+package org.springblade.report.service.impl;
+
+import lombok.AllArgsConstructor;
+import org.springblade.core.mp.base.BaseServiceImpl;
+
+import org.springblade.report.entity.ServiceProjectItem;
+import org.springblade.report.mapper.ServiceProjectItemMapper;
+import org.springblade.report.service.ServiceProjectItemService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+@Service
+@AllArgsConstructor
+public class ServiceProjectItemServiceImpl extends BaseServiceImpl<ServiceProjectItemMapper, ServiceProjectItem> implements ServiceProjectItemService {
+
+	private final ServiceProjectItemMapper serviceProjectItemMapper;
+
+	@Override
+	public List<ServiceProjectItem> statisticalAnalysis(String tenantId, String userName, String projectType,String deptid, String pname, String status, String cornId,String payStartTime, String payEndTime) {
+		return serviceProjectItemMapper.statisticalAnalysis(tenantId,userName,projectType,deptid,pname,status,cornId,payStartTime,payEndTime);
+	}
+}

+ 39 - 0
blade-ops/blade-report/src/main/java/org/springblade/report/ureport/ProjectBean.java

@@ -0,0 +1,39 @@
+package org.springblade.report.ureport;
+
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import lombok.AllArgsConstructor;
+import org.springblade.core.secure.utils.AuthUtil;
+
+import org.springblade.core.tool.utils.SpringUtil;
+import org.springblade.report.entity.ServiceProjectItem;
+import org.springblade.report.service.ServiceProjectItemService;
+import org.springblade.report.service.impl.OrderServiceImpl;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+@Component
+
+public class ProjectBean
+{
+
+	public List<ServiceProjectItem> loadReportData(String dsName, String datasetName, Map<String, Object> parameters) {
+
+		ServiceProjectItemService serviceProjectItemService = SpringUtil.getBean(ServiceProjectItemService.class);
+		String userName =(String) parameters.get("userName");
+		String projectType =(String) parameters.get("projectType");
+		String deptid =(String) parameters.get("deptid");
+		String pname =(String) parameters.get("pname");
+		String status =(String) parameters.get("status");
+		String cornId =(String) parameters.get("cornId");
+		String payStartTime =(String) parameters.get("payStartTime");
+		String payEndTime =(String) parameters.get("payEndTime");
+		String tenantId =(String) parameters.get("tenantId");
+
+		List<ServiceProjectItem> serviceProjectItems = serviceProjectItemService.statisticalAnalysis("096359",userName,projectType,deptid,pname,status,cornId,payStartTime,payEndTime);
+		return serviceProjectItems;
+	}
+
+
+}