Explorar o código

Merge remote-tracking branch 'origin/master'

Enford %!s(int64=5) %!d(string=hai) anos
pai
achega
76fca13596

+ 9 - 0
src/main/java/com/jeeplus/modules/projectplanweekly/entity/ProjectPlanWeekly.java

@@ -33,6 +33,15 @@ public class ProjectPlanWeekly extends DataEntity<ProjectPlanWeekly> {
     }
 
     private ProjectRecords projectRecords;
+    private Office company;
+
+    public Office getCompany() {
+        return company;
+    }
+
+    public void setCompany(Office company) {
+        this.company = company;
+    }
 
     public ProjectRecords getProjectRecords() {
         return projectRecords;

+ 12 - 0
src/main/java/com/jeeplus/modules/projectplanweekly/service/ProjectPlanWeeklyService.java

@@ -2,8 +2,11 @@ package com.jeeplus.modules.projectplanweekly.service;
 
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.service.CrudService;
+import com.jeeplus.common.utils.MenuStatusEnum;
+import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.modules.projectplanweekly.dao.ProjectPlanWeeklyDao;
 import com.jeeplus.modules.projectplanweekly.entity.ProjectPlanWeekly;
+import com.jeeplus.modules.sys.utils.UserUtils;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -53,6 +56,14 @@ public class ProjectPlanWeeklyService extends CrudService<ProjectPlanWeeklyDao,
      * @return
      */
     public Page<ProjectPlanWeekly> findPageWeekly(Page<ProjectPlanWeekly> page, ProjectPlanWeekly entity) {
+        //设置数据权限
+        if(!UserUtils.getUser().isAdmin()) {
+            String dataScopeSql = dataScopeFilterOR(entity.getCurrentUser(), "o", "u", "s", MenuStatusEnum.WORK_REGULARAPPLY.getValue());
+            entity.getSqlMap().put("dsf", dataScopeSql);
+        }
+        if (StringUtils.isBlank(entity.getWeeklyStatus())){
+            entity.setWeeklyStatus("0");
+        }
         entity.setPage(page);
         List<ProjectPlanWeekly> weekly = projectPlanWeeklyDao.findWeekly(entity);
         page.setList(weekly);
@@ -62,6 +73,7 @@ public class ProjectPlanWeeklyService extends CrudService<ProjectPlanWeeklyDao,
 
     //计算当前日期所在的星期一或者星期日
     public Map<String,Date> getMondayAndSunday(Date nowDate){
+
         //获取当前日期
         Date time = new Date(nowDate.getYear(),nowDate.getMonth(),nowDate.getDate());
         //设置时间格式

+ 19 - 0
src/main/java/com/jeeplus/modules/projectrecord/entity/ProjectPlanInfo.java

@@ -2,6 +2,7 @@ package com.jeeplus.modules.projectrecord.entity;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.jeeplus.common.persistence.DataEntity;
+import com.jeeplus.modules.sys.entity.Office;
 
 import java.util.Date;
 
@@ -11,11 +12,29 @@ import java.util.Date;
  * @version 2020-05-13
  */
 public class ProjectPlanInfo extends DataEntity<ProjectPlanInfo> {
+    private Office company;
+    private Office office;
     private String beginDate;  //开始时间
     private String endDate;   //结束时间
     private String projectId;  //项目id
     private String planUser;		// 上传人
 
+    public Office getCompany() {
+        return company;
+    }
+
+    public void setCompany(Office company) {
+        this.company = company;
+    }
+
+    public Office getOffice() {
+        return office;
+    }
+
+    public void setOffice(Office office) {
+        this.office = office;
+    }
+
     public String getPlanUser() {
         return planUser;
     }

+ 2 - 0
src/main/java/com/jeeplus/modules/projectrecord/service/ProjectRecordsService.java

@@ -1116,6 +1116,8 @@ public class ProjectRecordsService extends CrudService<ProjectRecordsDao, Projec
 		if (projectRecords.getProjectPlanList()!=null && !projectRecords.getProjectPlanList().isEmpty()) {
 			//保存计划信息
 			for (ProjectPlanInfo projectPlanInfo : projectRecords.getProjectPlanList()) {
+				projectPlanInfo.setOffice(projectRecords.getOffice());
+				projectPlanInfo.setCompany(projectRecords.getCompany());
 				if (ProjectPlanInfo.DEL_FLAG_NORMAL.equals(projectPlanInfo.getDelFlag())) {
 					projectPlanInfo.setProjectId(projectRecords.getId());
 					projectPlanInfo.setPlanUser(UserUtils.getUser().getId());

+ 80 - 12
src/main/resources/mappings/modules/projectplanweekly/ProjectPlanWeeklyDao.xml

@@ -1,7 +1,27 @@
 <?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="com.jeeplus.modules.projectplanweekly.dao.ProjectPlanWeeklyDao">
-    
+
+	<sql id="projectPlanWeeklyAndPlanColumns">
+		ppw.id AS "id",
+		ppw.create_by AS "createBy.id",
+		ppw.create_date AS "createDate",
+		ppw.update_by AS "updateBy.id",
+		ppw.update_date AS "updateDate",
+		ppw.remarks AS "remarks",
+		ppw.del_flag AS "delFlag",
+		ppw.begin_date AS "beginDate",
+		ppw.end_date AS "endDate",
+		ppw.project_id AS "projectId",
+		ppw.weekly_status AS "weeklyStatus",
+		ppw.remarks_status AS "remarksStatus",
+		ppw.remarks_reason AS "remarksReason",
+		ppw.projectId AS "projectRecords.id",
+		ppw.project_name AS "projectRecords.projectName",
+	  	ppw.company_id as "company.id",
+	  	ppw.office_id as "office.id"
+	</sql>
+
 	<sql id="projectPlanWeeklyColumns">
 		a.id AS "id",
 		a.create_by AS "createBy.id",
@@ -17,7 +37,9 @@
 		a.remarks_status AS "remarksStatus",
 		a.remarks_reason AS "remarksReason",
 		a.project_id AS "projectRecords.id",
-		r.project_name AS "projectRecords.projectName"
+		r.project_name AS "projectRecords.projectName",
+	  	a.company_id as company.id,
+	  	a.office_id as office.id
 	</sql>
 
 	<sql id="projectPlan">
@@ -36,6 +58,8 @@
 		i.remarks_reason AS "remarksReason",
 		i.project_id AS "projectRecords.id",
 		r.project_name AS "projectRecords.projectName"
+	  	i.company_id as company.id,
+	  	i.office_id as office.id
 	</sql>
 
 	<select id="get" resultType="com.jeeplus.modules.projectplanweekly.entity.ProjectPlanWeekly" >
@@ -189,16 +213,60 @@
 
 	<select id="findWeekly" resultType="com.jeeplus.modules.projectplanweekly.entity.ProjectPlanWeekly">
 		select
-			<include refid="projectPlanWeeklyColumns"/>
-		  from
-			project_plan_weekly a
-			left join project_records r on  a.project_id = r.id
-		  union all
-		  select
-			<include refid="projectPlan"/>
-		  from
-			project_plan_info i
-			left join project_records r on  i.project_id = r.id
+			a.id AS "id",
+			a.create_by AS "createBy.id",
+			a.create_date AS "createDate",
+			a.update_by AS "updateBy.id",
+			a.update_date AS "updateDate",
+			a.remarks AS "remarks",
+			a.del_flag AS "delFlag",
+			a.begin_date AS "beginDate",
+			a.end_date AS "endDate",
+			a.project_id AS "projectId",
+			a.weekly_status AS "weeklyStatus",
+			a.remarks_status AS "remarksStatus",
+			a.remarks_reason AS "remarksReason",
+			a.projectId AS "projectRecords.id",
+			a.project_name AS "projectRecords.projectName",
+			a.company_id as "company.id",
+			a.office_id as "office.id"
+		from(
+			select
+				p.id ,p.create_by ,p.create_date ,p.update_by ,p.update_date ,p.remarks ,p.del_flag ,p.begin_date,p.end_date,p.project_id,p.weekly_status,p.remarks_status,p.remarks_reason,p.project_id as projectId,r.project_name,p.company_id,p.office_id
+			  from
+				project_plan_weekly p
+		left join project_records r on  p.project_id = r.id
+			  union all
+			  select
+				i.id ,i.create_by ,i.create_date ,i.update_by ,i.update_date ,i.remarks ,i.del_flag ,i.begin_date,i.end_date,i.project_id,i.weekly_status,i.remarks_status,i.remarks_reason,i.project_id as projectId,r.project_name,i.company_id,i.office_id
+			  from
+				project_plan_info i
+		left join project_records r on  i.project_id = r.id
+		) as a
+		left join project_records r on  a.project_id = r.id
+		left join work_project_user wpu on wpu.project_id = r.id
+		<where>
+
+			<if test="weeklyStatus !=null and weeklyStatus == '0'">
+				AND a.weekly_status = #{weeklyStatus}
+				and a.end_date 	&lt;= #{endDate}
+			</if>
+			<if test="weeklyStatus !=null and weeklyStatus == '1'">
+				AND a.weekly_status = #{weeklyStatus}
+				and a.begin_date >= #{beginDate} and a.begin_date 	&lt;= #{endDate}
+				and a.end_date >= #{endDate}
+			</if>
+			(wpu.user_id = #{currentUser.id} ${sqlMap.dsf}) and
+			r.status = 5 and r.del_flag=0
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.weekly_status asc,a.begin_date asc,a.end_date asc
+			</otherwise>
+		</choose>
 	</select>
 
 

+ 9 - 3
src/main/resources/mappings/modules/projectrecord/ProjectPlanDao.xml

@@ -12,7 +12,9 @@
 	  a.remarks as remarks,
 	  a.begin_date as beginDate,
 	  a.end_date as endDate,
-	  a.project_id as  projectId
+	  a.project_id as  projectId,
+	  a.company_id as companyId,
+	  a.office_id as officeId
 	</sql>
 	
     
@@ -52,7 +54,9 @@
 			remarks,
 			begin_date,
 			end_date,
-			project_id
+			project_id,
+			company_id,
+			office_id
 		) VALUES (
 			#{id},
 			#{createBy.id},
@@ -63,7 +67,9 @@
 			#{remarks},
 			#{beginDate},
 			#{endDate},
-			#{projectId}
+			#{projectId},
+			#{company.id},
+			#{office.id}
 		)
 	</insert>