Prechádzať zdrojové kódy

Merge branch 'master' of http://192.168.2.4:3000/user5/simple_xg_total_process_master

guoxu 2 rokov pred
rodič
commit
088f4d7173

+ 11 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/dao/RuralProjectRecordsDao.java

@@ -396,4 +396,15 @@ public interface RuralProjectRecordsDao extends CrudDao<RuralProjectRecords> {
      * 修改项目表中的材料库状态信息
      */
     Integer modfiyProjectMaterialStorageStatus(RuralProjectRecords ruralProjectRecords);
+
+    /**
+     *截至至53天没有审核数据
+     */
+    List<RuralProjectRecords> findJudgeAdvanceWeekNotice();
+
+    /**
+     * 查询 登记人 责任人 张静
+     */
+    List<User> findProjectRegistrantResponsiblePersonList(String projectId);
+
 }

+ 51 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordsService.java

@@ -102,6 +102,7 @@ import java.net.URLEncoder;
 import java.nio.charset.Charset;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 
@@ -4785,5 +4786,55 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 		return c.getTime();
 	}
 
+	/**
+	 * 截至至53天没有审核数据
+	 */
+	public void getJudgeAdvanceWeekNotice() {
+		List<RuralProjectRecords> judgeAdvanceWeekNotice = dao.findJudgeAdvanceWeekNotice();
+		for (RuralProjectRecords info : judgeAdvanceWeekNotice) {
+			String notifyStr = null;
+			String titleStr = null;
+			//如果当前时间大于过期时间
+			//Date类的一个方法,如果info.getAdventDateDate()早于 new Date() 返回true,否则返回false
+			if (Integer.parseInt(info.getAdventDate()) > 60) {
+				notifyStr = "项目【" + info.getProjectName() + "】审核已超期";
+				titleStr = "项目【" + info.getProjectName() + "】审核已超期。超期时间:" + info.getAdventDate() + "。";
+			} else {
+				notifyStr = "项目【" + info.getProjectName() + "】即将审核超期";
+				titleStr = "项目【" + info.getProjectName() + "】即将审核超期。超期时间:" + info.getAdventDate();
+			}
+
+			//查询项目的登记人和责任人的id
+			List<User> projectLeaders = dao.findProjectRegistrantResponsiblePersonList(info.getId());
+			//List<User> projectLeaders = workProjectUserDao.queryProjectUsers(info.getId(), "1");
+			for (User user : projectLeaders) {
+				//根据标题查询通知信息中是否存在未读的信息,有则进行更新并对重复数量进行+1操作
+				WorkProjectNotify byTitleAndUnread = workProjectNotifyService.getByTitleAndUnread(titleStr, user.getId());
+
+				//计算两日期之间的天数
+				Integer interval = Integer.parseInt(info.getAdventDate()) - 60;
+				if (interval > 0) {
+					titleStr = titleStr + "已超期:" + interval + "天。请尽快审核";
+				}
+
+				if (null != byTitleAndUnread) {
+					byTitleAndUnread.setExigency("1");
+					workProjectNotifyService.updateOverDueInfo(byTitleAndUnread);
+				} else {
+					workProjectNotifyService
+							.save(UtilNotify.saveNotify(info.getId(),
+									user,
+									info.getCompany().getId(),
+									titleStr,
+									notifyStr,
+									"94",
+									"0",
+									"待通知",
+									""));
+				}
+			}
+		}
+	}
+
 
 }

+ 9 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectSignatureOldMessageDisposeController.java

@@ -519,4 +519,13 @@ public class RuralProjectSignatureOldMessageDisposeController extends BaseContro
         return data;
     }
 
+    @Autowired
+    com.jeeplus.modules.workcalendar.service.WorkCalendarTaskService workCalendarTaskService;
+    @RequestMapping(value = "/reportTestView")
+    @ResponseBody
+    @Transactional(readOnly = false)
+    public void reportTestView(){
+        workCalendarTaskService.getProjectReportedListByAdvent();
+    }
+
 }

+ 23 - 0
src/main/java/com/jeeplus/modules/statement/dao/StatementCompanyComprehensiveDao.java

@@ -5,6 +5,7 @@ import com.jeeplus.common.persistence.DataEntity;
 import com.jeeplus.common.persistence.annotation.MyBatisDao;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
 import com.jeeplus.modules.statement.entity.ReportDataEntity;
+import com.jeeplus.modules.statement.entity.StatementAuditDataInfo;
 import com.jeeplus.modules.statement.entity.StatementCompanyComprehensiveInfo;
 import com.jeeplus.modules.statement.entity.StatementDataInfo;
 import com.jeeplus.modules.sys.entity.Office;
@@ -663,4 +664,26 @@ public interface StatementCompanyComprehensiveDao  extends CrudDao<StatementComp
      */
     String selectSevenOfficeId();
 
+
+    /**
+     * 部门级查询当月未审核数据
+     */
+    List<ReportDataEntity> getOfficeNotReviewedThisMonth(@Param("beginDate")String beginDate,@Param("endDate")String endDate);
+    /**
+     * 当月清除
+     */
+    void deleteOfficeStatementAuditDataInfo(StatementAuditDataInfo statementAuditDataInfoList);
+
+    /**
+     * 部门级超期、未超期数据存储
+     */
+    void insertOfficeStatementAuditDataInfo(@Param("dataList")List<StatementAuditDataInfo> statementAuditDataInfoList);
+
+    /**
+     * 删除部门级数据信息
+     * @param info
+     * @return
+     */
+    Integer deleteOfficeAuditComprehensive(StatementAuditDataInfo info);
+
 }

+ 151 - 0
src/main/java/com/jeeplus/modules/statement/entity/StatementAuditDataInfo.java

@@ -0,0 +1,151 @@
+package com.jeeplus.modules.statement.entity;
+
+import com.jeeplus.common.persistence.DataEntity;
+
+public class StatementAuditDataInfo extends DataEntity<StatementAuditDataInfo> {
+
+    private String year;            //年份
+    private String gradeType;       //级别类型(1:公司;2:部门)
+    private String type;            //类型(1:项目;4:合同)
+    private String bigDateType;     //状态1(0:年;1:季度;2:月份)
+    private String smallDateType;   //状态2(针对状态1进行精确所在指定季度或者月份)
+    private String statementDate;   //报表时间
+    private String officeName;      //部门名称
+    private String officeId;        //部门id
+    private String field1;          //可变字段1(项目:电子归档(超期未归档);合同:纸质归档(超期未归档))
+    private String field2;          //可变字段2(项目:电子归档(超期归档);合同:纸质归档(超期归档))
+    private String field3;          //可变字段3(项目:上报(超期未上报))
+    private String field4;          //可变字段4(项目:纸质归档(A类纸质归档))
+    private String field5;          //可变字段5(项目:纸质归档(B类批量归档))
+    private String field6;          //可变字段6(项目:未质量符合)
+    private String userId;          //用户id
+    private String officeParentIds; //部门parentIds
+
+    public String getYear() {
+        return year;
+    }
+
+    public void setYear(String year) {
+        this.year = year;
+    }
+
+    public String getGradeType() {
+        return gradeType;
+    }
+
+    public void setGradeType(String gradeType) {
+        this.gradeType = gradeType;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getBigDateType() {
+        return bigDateType;
+    }
+
+    public void setBigDateType(String bigDateType) {
+        this.bigDateType = bigDateType;
+    }
+
+    public String getSmallDateType() {
+        return smallDateType;
+    }
+
+    public void setSmallDateType(String smallDateType) {
+        this.smallDateType = smallDateType;
+    }
+
+    public String getStatementDate() {
+        return statementDate;
+    }
+
+    public void setStatementDate(String statementDate) {
+        this.statementDate = statementDate;
+    }
+
+    public String getOfficeName() {
+        return officeName;
+    }
+
+    public void setOfficeName(String officeName) {
+        this.officeName = officeName;
+    }
+
+    public String getOfficeId() {
+        return officeId;
+    }
+
+    public void setOfficeId(String officeId) {
+        this.officeId = officeId;
+    }
+
+    public String getField1() {
+        return field1;
+    }
+
+    public void setField1(String field1) {
+        this.field1 = field1;
+    }
+
+    public String getField2() {
+        return field2;
+    }
+
+    public void setField2(String field2) {
+        this.field2 = field2;
+    }
+
+    public String getField3() {
+        return field3;
+    }
+
+    public void setField3(String field3) {
+        this.field3 = field3;
+    }
+
+    public String getField4() {
+        return field4;
+    }
+
+    public void setField4(String field4) {
+        this.field4 = field4;
+    }
+
+    public String getField5() {
+        return field5;
+    }
+
+    public void setField5(String field5) {
+        this.field5 = field5;
+    }
+
+    public String getField6() {
+        return field6;
+    }
+
+    public void setField6(String field6) {
+        this.field6 = field6;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getOfficeParentIds() {
+        return officeParentIds;
+    }
+
+    public void setOfficeParentIds(String officeParentIds) {
+        this.officeParentIds = officeParentIds;
+    }
+}

+ 5 - 2
src/main/java/com/jeeplus/modules/workcalendar/service/WorkCalendarTaskService.java

@@ -116,15 +116,18 @@ public class WorkCalendarTaskService  {
     @Scheduled(cron= "0 10 0 * * ?")
     @Transactional(readOnly = false)
     public void getProjectReportedListByAdvent() {
-        logger.info("-----------项目超期未上报定时任务开始------------------");
+        /*logger.info("-----------项目超期未上报定时任务开始------------------");
         projectRecordsService.saveProjectReportedListByAdvent();
         logger.info("------------项目超期未上报定时任务结束------------------");
         logger.info("-----------项目超期未归档定时任务开始(电子归档)------------------");
         projectRecordsService.saveProjectRecordListByAdvent();
-        logger.info("------------项目超期未归档定时任务结束(电子归档)------------------");
+        logger.info("------------项目超期未归档定时任务结束(电子归档)------------------");*/
         /*logger.info("-----------合同超期未归档定时任务开始------------------");
         workContractRecordService.saveContractRecordListByAdvent();
         logger.info("------------合同超期未归档定时任务结束------------------");*/
+        logger.info("------------项目超期未审核定时任务开始--------------------");
+        projectRecordsService.getJudgeAdvanceWeekNotice();
+        logger.info("------------项目超期未审核定时任务结束--------------------");
     }
 
     /**

+ 60 - 0
src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectRecordsDao.xml

@@ -3857,6 +3857,66 @@
 			and now() > date_add(prd.audit_pass_date,interval #{startCount} day)
 		</where>
 	</select>
+    <select id="findJudgeAdvanceWeekNotice"
+            resultType="com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords">
+		SELECT <include refid="projectRecordsColumns"/>,
+		datediff( now(), prd.create_date) "adventDate",a.project_type as "projectType"
+		FROM rural_project_records a
+		left join work_contract_info wci on a.contract_id = wci.id
+		left join project_report_data prd on prd.project_id = a.id
+		left join rural_project_report_record prr on prr.report_id = prd.id
+		left join sys_user u on u.id = a.create_by
+		left join sys_office o on o.id = a.office_id
+		LEFT JOIN sys_area area ON area.id = a.area_id
+		LEFT JOIN work_project_user w1 on a.id = w1.project_id
+		left join sys_user su on su.id = w1.user_id
+		left join sys_office so on so.id = su.office_id
+		WHERE
+		a.del_flag = 0
+		AND ( prd.STATUS IS NULL OR prd.STATUS = '' )
+		AND a.emergency_project = 1
+		AND ( a.reported_state = 6 OR a.reported_state IS NULL )
+		AND datediff( now(), prd.create_date )> 53
+	</select>
+	<select id="findProjectRegistrantResponsiblePersonList" resultType="com.jeeplus.modules.sys.entity.User">
+		SELECT
+	z.id,
+	z.NAME,
+	z.photo
+FROM
+	(
+	SELECT
+		a.id,
+		a.NAME,
+		a.photo
+	FROM
+		sys_user a
+		LEFT JOIN rural_project_records b ON a.id = b.create_by
+	WHERE
+		b.id = #{projectId}
+	UNION ALL
+	SELECT
+		a.id,
+		a.NAME,
+		a.photo
+	FROM
+		sys_user a
+		LEFT JOIN rural_project_records b ON a.id = b.project_master_id
+	WHERE
+		b.id = #{projectId}
+	UNION ALL
+	SELECT
+		a.id,
+		a.NAME,
+		a.photo
+	FROM
+		sys_user a
+	WHERE
+		a.id = '40453222a5d14dba8429ef8fdee68f0f'
+	) z
+GROUP BY
+	z.id
+	</select>
 
 	<update id="modfiyProjectMaterialStorageStatus">
 		update rural_project_records

+ 85 - 0
src/main/resources/mappings/modules/statement/StatementCompanyComprehensiveDao.xml

@@ -1373,4 +1373,89 @@
 	<select id="selectSevenOfficeId" resultType="string">
 		select GROUP_CONCAT(office_id) from statement_office_info
 	</select>
+
+	<insert id="insertOfficeStatementAuditDataInfo">
+		INSERT INTO statement_audit_office_data_info
+		(
+		create_date
+		,year
+		,grade_type
+		,type,big_date_type,small_date_type,statement_date
+		,user_id
+		,office_id
+		,office_parent_ids
+		,field1
+		,field2
+		,field3
+		,field4
+		,field5
+		,field6)
+		VALUES
+		<foreach collection="dataList" item="data" separator=",">
+		(now(),#{data.year},#{data.gradeType},#{data.type},#{data.bigDateType},#{data.smallDateType}
+		,#{data.statementDate},#{data.userId},#{data.officeId}
+			,#{data.officeParentIds}
+			,#{data.field1}
+			,#{data.field2}
+			,#{data.field3}
+			,#{data.field4}
+			,#{data.field5}
+			,#{data.field6}
+			)
+		</foreach>
+	</insert>
+
+	<delete id="deleteOfficeStatementAuditDataInfo">
+		delete from statement_audit_office_data_info
+		<where>
+			type = #{type}
+			and year = #{year}
+			and big_date_type = #{bigDateType}
+			and small_date_type = #{smallDateType}
+			and office_id = #{officeId}
+			and user_id = #{userId}
+
+			<if test="field1 != null and field1 != ''">
+				and field1 = #{field1}
+			</if>
+
+			<if test="field2 != null and field2 != ''">
+				and field2 = #{field2}
+			</if>
+
+			<if test="field3 != null and field3 != ''">
+				and field3 = #{field3}
+			</if>
+
+			<if test="field4 != null and field4 != ''">
+				and field4 = #{field4}
+			</if>
+			<if test="field5 != null and field5 != ''">
+				and field5 = #{field5}
+			</if>
+			<if test="field6 != null and field6 != ''">
+				and field6 = #{field6}
+			</if>
+		</where>
+	</delete>
+	<delete id="deleteOfficeAuditComprehensive">
+
+	</delete>
+
+	<select id="getOfficeNotReviewedThisMonth"
+			resultType="com.jeeplus.modules.statement.entity.ReportDataEntity">
+		select a.id as "fieldId",a.create_by as "userId",a.office_id as "officeId",so.parent_ids as "officeParentIds"
+		from rural_project_records a
+		left join project_report_data prd on a.id = prd.project_id
+		left join project_material_defect_record pmdrd on prd.id = pmdrd.report_id
+		left join rural_project_records_reported rprr on prd.id = rprr.id
+		left join sys_office so on so.id = a.office_id
+		where
+		a.del_flag=0
+		and a.status = 5
+		AND ( prd.STATUS IS NULL OR prd.STATUS = '' )
+		AND a.emergency_project = 1
+		AND ( a.reported_state = 6 OR a.reported_state IS NULL )
+		and prd.create_date>=#{beginDate} and prd.create_date &lt;=#{endDate}
+	</select>
 </mapper>