Forráskód Böngészése

项目超期未上报、超期上报功能

user5 4 éve
szülő
commit
50d8b694e4

+ 7 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/dao/RuralProjectMessageDao.java

@@ -106,4 +106,11 @@ public interface RuralProjectMessageDao extends CrudDao<RuralProjectRecords> {
      * @return
      */
     Integer updateReported(RuralProjectRecords projectRecords);
+
+    /**
+     * 项目上报
+     * @param projectRecords
+     * @return
+     */
+    RuralProjectRecords getRecordsInfo(RuralProjectRecords projectRecords);
 }

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

@@ -8,6 +8,7 @@ import com.jeeplus.common.persistence.annotation.MyBatisDao;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecordReportInfo;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -77,4 +78,14 @@ public interface RuralProjectRecordsDao extends CrudDao<RuralProjectRecords> {
      * @return
      */
     List<RuralProjectRecords> getProjectReportedListByAdvent(RuralProjectRecords records);
+
+    /**
+     * 查询即将超期的项目数据信息
+     * @param records
+     * @return
+     */
+    List<RuralProjectRecords> getProjectNotReportList(RuralProjectRecords records);
+
+    //批量修改项目上报状态
+    void updateProjectReportedState(@Param("idList") List<String> idList);
 }

+ 9 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/RuralProjectRecords.java

@@ -177,6 +177,7 @@ public class RuralProjectRecords extends ActEntity<RuralProjectRecords> {
 	private Integer endingCount;   //结束数据
 	private String adventDate;   //超期时间
 	private String reportedType;   //超期状态(0:未超期;1:已超期)
+	private Date auditPassDate;   //报告审批日期
 	private List<WorkClientAttachment> workAttachments = Lists.newArrayList();
 
 	private List<ProjectReportData> projectReportData = Lists.newArrayList();
@@ -774,4 +775,12 @@ public class RuralProjectRecords extends ActEntity<RuralProjectRecords> {
 	public void setReportedType(String reportedType) {
 		this.reportedType = reportedType;
 	}
+
+	public Date getAuditPassDate() {
+		return auditPassDate;
+	}
+
+	public void setAuditPassDate(Date auditPassDate) {
+		this.auditPassDate = auditPassDate;
+	}
 }

+ 10 - 2
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageService.java

@@ -180,9 +180,13 @@ public class RuralProjectMessageService extends CrudService<RuralProjectMessageD
             records.setLeaderNameStr(Collections3.extractToString(users, "name", ","));
             records.setLeaderIds(Collections3.extractToString(users, "id", ","));
             //判定 如果项目上报信息超期 并且没有上报则江状态改为超期未上报
-            if(records.getReportedType().equals("1") && !records.getReportedState().equals("5")){
+            /*if(records.getReportedType().equals("1") && !records.getReportedState().equals("5") && !records.getReportedState().equals("7") && null != records.getAuditPassDate()){
                 records.setReportedState("6");
-            }
+            }else
+                //判定 如果项目上报信息超期 并且已经上报则将状态改为超期上报
+            if(records.getReportedType().equals("1") && records.getReportedState().equals("5") && null != records.getAuditPassDate()){
+                records.setReportedState("7");
+            }*/
         }
         page.setList(recordsList);
         return page;
@@ -1461,6 +1465,10 @@ public class RuralProjectMessageService extends CrudService<RuralProjectMessageD
      */
     @Transactional(readOnly = false)
     public Integer updateReported(RuralProjectRecords projectRecords){
+        RuralProjectRecords records = dao.getRecordsInfo(projectRecords);
+        if(records.getReportedType().equals("1") && records.getReportedState().equals("5") && null != records.getAuditPassDate()){
+            projectRecords.setReportedState("7");
+        }
         return dao.updateReported(projectRecords);
     }
 

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

@@ -3,6 +3,7 @@
  */
 package com.jeeplus.modules.ruralprojectrecords.service;
 
+import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.service.CrudService;
@@ -1336,5 +1337,14 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 			}
 
 		}
+		//获取项目数据
+		List<RuralProjectRecords> projectNotReportList = dao.getProjectNotReportList(projectRecords);
+		List<String> idList = Lists.newArrayList();
+		if(projectNotReportList.size()>0) {
+			for (RuralProjectRecords info : projectNotReportList){
+				idList.add(info.getId());
+			}
+			dao.updateProjectReportedState(idList);
+		}
 	}
 }

+ 38 - 2
src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectMessageDao.xml

@@ -220,7 +220,8 @@
         prr.file_num as recodeNum,
 		prr.process_instance_id as prrProcessInstanceId
 		,prr.id as prrId
-		,if(date_add(prd.update_date,interval #{endingCount} day) >now(),"0","1") as reportedType
+		,prd.audit_pass_date as auditPassDate
+		,if(date_add(prd.audit_pass_date,interval #{endingCount} day) >now(),"0","1") as reportedType
 		FROM rural_project_records a
 		LEFT JOIN sys_area area ON area.id = a.area_id
 
@@ -971,7 +972,42 @@
 
 	<update id="updateReported">
 		UPDATE rural_project_records SET
-			reported_state = 5
+			reported_state = #{reportedState}
 		WHERE id = #{id}
 	</update>
+
+	<select id="getRecordsInfo" resultType="RuralProjectRecords">
+		SELECT
+		<include refid="projectRecordsColumns"/>
+		,
+		wci.name AS "workContractInfo.name",
+		wct.id AS "workContractInfo.client.id",
+		wct.name AS "workContractInfo.client.name",
+		o.top_company AS "office.name",
+		ifnull(prd.number ,"") as "projectReportNumber"
+		,ifnull(prd.status,0) as "projectReportStatus"
+		,ifnull(prd.name,"") as "projectReportName"
+		,ifnull(prr.status,0) as "projectReportRecordStatus",
+		prr.file_num as recodeNum,
+		prr.process_instance_id as prrProcessInstanceId
+		,prr.id as prrId
+		,prd.audit_pass_date as auditPassDate
+		,if(date_add(prd.audit_pass_date,interval #{endingCount} day) >now(),"0","1") as reportedType
+		FROM rural_project_records a
+		LEFT JOIN sys_area area ON area.id = a.area_id
+
+		<if test="leaderNameStr !=null and leaderNameStr !=''">
+			LEFT JOIN work_project_user w on a.id = w.project_id
+			LEFT JOIN sys_user su on w.user_id = su.id
+		</if>
+		LEFT JOIN work_project_user w1 on a.id = w1.project_id
+		LEFT JOIN work_contract_info wci on a.contract_id = wci.id
+		LEFT JOIN work_client_info wct on wci.client_id = wct.id
+		LEFT JOIN sys_office o ON o.id = a.office_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
+		<where>
+			a.id = #{id}
+		</where>
+	</select>
 </mapper>

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

@@ -921,4 +921,40 @@
 			and now() between date_add(prd.audit_pass_date,interval #{startCount} day) and date_add(prd.audit_pass_date,interval #{endingCount} day)
 		</where>
 	</select>
+
+	<select id="getProjectNotReportList" resultType="com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords" >
+		SELECT
+			<include refid="projectRecordsColumns"/>
+			,date_add(date_format(prd.audit_pass_date, '%Y-%m-%d'),interval #{endingCount} day) as 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 (a.reported_state!=5 or a.reported_state is null)
+			and prd.status = 5
+			and now() > date_add(prd.audit_pass_date,interval #{endingCount} day)
+			and prd.audit_pass_date is not null
+			and a.reported_state is null
+		</where>
+	</select>
+
+
+	<update id="updateProjectReportedState">
+		update rural_project_records set
+		reported_state = '6'
+		where id in
+		<foreach item="item" index="index" collection="idList"
+				 open="(" separator="," close=")">
+			#{item}
+		</foreach> ;
+	</update>
 </mapper>

+ 1 - 0
src/main/webapp/static/common/jeeplus.js

@@ -467,6 +467,7 @@ function getReportedState(id)
         case "4":result.label = "reject";result.status="驳回";break;
         case "5":result.label = "signed";result.status="已上报";result.action = false;break;
         case "6":result.label = "signed";result.status="超期未上报";result.action = false;break;
+        case "7":result.label = "signed";result.status="超期上报";result.action = false;break;
         default:
             result.label = "unknown";result.status="未知";break;
     }

+ 2 - 4
src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/ruralProjectMessageList.jsp

@@ -393,10 +393,8 @@
                         }
 						/*上报相关按钮*/
 						if(d.projectReportRecordStatus == 5 || d.projectReportStatus == 5){
-							if(d.reportedType == 0){
-								if(d.reportedState == 0){
-									xml+="<a href=\"${ctx}/ruralProject/ruralProjectMessage/updateReported?id=" + d.id + "\" style='background-color: #5FB878' onclick=\"return confirmx('确认要上报吗?', this.href)\" class=\"op-btn op-btn-delete\" ><i class=\"fa fa-plus\"></i> 上报</a>";
-								}
+							if(d.reportedState == 0 || d.reportedState == 6){
+								xml+="<a href=\"${ctx}/ruralProject/ruralProjectMessage/updateReported?id=" + d.id + "\" style='background-color: #5FB878' onclick=\"return confirmx('确认要上报吗?', this.href)\" class=\"op-btn op-btn-delete\" ><i class=\"fa fa-plus\"></i> 上报</a>";
 							}
 						}
 						if(d.deleteAdmin != undefined && d.deleteAdmin =="1")