Преглед изворни кода

项目送审时将项目对应的合同附件添加到咨询合同中

user5 пре 4 година
родитељ
комит
e15c2c91ea

+ 8 - 1
src/main/java/com/jeeplus/modules/projectAccessory/dao/ProjectTemplateDao.java

@@ -74,5 +74,12 @@ public interface ProjectTemplateDao extends CrudDao<ProjectTemplateInfo>,TreeDao
 
     List<ProjectTemplateInfo> getProjectTemplateList(ProjectAccessoryRelationInfo projectTemplateInfo);
 
+    /**
+     * 根据名称查询信息
+     * @param name
+     * @return
+     */
+    ProjectTemplateInfo getProjectTemplateInfoByName(String name);
+
 
-}
+}

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

@@ -186,6 +186,7 @@ public class RuralProjectRecords extends ActEntity<RuralProjectRecords> {
 	private String engineeringType;	//工程类型id
 	private String engineeringName;	//工程类型名称
 	private String submitMoney;		//送审金额
+	private String modifyFlag;		//修改判定参数
 
 
 	private List<String> civilProjectList = Lists.newArrayList();
@@ -1314,4 +1315,12 @@ public class RuralProjectRecords extends ActEntity<RuralProjectRecords> {
 	public void setLeaderId(String leaderId) {
 		this.leaderId = leaderId;
 	}
+
+	public String getModifyFlag() {
+		return modifyFlag;
+	}
+
+	public void setModifyFlag(String modifyFlag) {
+		this.modifyFlag = modifyFlag;
+	}
 }

+ 74 - 1
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordsService.java

@@ -40,6 +40,7 @@ import com.jeeplus.modules.serialnum.service.SerialNumTplService;
 import com.jeeplus.modules.sys.entity.MainDictDetail;
 import com.jeeplus.modules.sys.entity.Office;
 import com.jeeplus.modules.sys.entity.User;
+import com.jeeplus.modules.sys.entity.Workattachment;
 import com.jeeplus.modules.sys.service.OfficeService;
 import com.jeeplus.modules.sys.service.WorkattachmentService;
 import com.jeeplus.modules.sys.utils.DictUtils;
@@ -444,7 +445,78 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 		if (projectRecords.getProjectStatus()== ProjectStatusEnum.IN_APRL.getValue()&&(oldStatus==null|| ProjectStatusEnum.REJECTED.getValue()!=oldStatus)) {
 			this.startAudit(projectRecords,projectRecords.getProcessInstanceId());
 			//项目送审之后处理项目合同文件信息
-
+			//查询咨询合同附件类型id
+			ProjectTemplateInfo projectTemplateInfo = projectTemplateDao.getProjectTemplateInfoByName("咨询合同");
+			//删除该项目咨询合同类型中老合同对应的附件信息
+			WorkClientAttachment attchment = new WorkClientAttachment();
+			attchment.setAttachmentId(projectTemplateInfo.getId());
+			attchment.setProjectId(projectRecords.getId());
+			if(null != oldWorkContractInfo && null != oldWorkContractInfo.getWorkAttachments()){
+				for (WorkClientAttachment info:oldWorkContractInfo.getWorkAttachments()) {
+					attchment.setAttachmentName(info.getAttachmentName());
+					workattachmentService.deleteByAttachIdAndProject(attchment);
+				}
+			}
+			//将新合同对应的附件信息添加到咨询合同中
+			if(null != newWorkContractInfo && null != newWorkContractInfo.getWorkAttachments()){
+				WorkClientAttachment workattachment = new WorkClientAttachment();
+				for (WorkClientAttachment info:newWorkContractInfo.getWorkAttachments()) {
+					workattachment.setType(info.getType());
+					workattachment.setAttachmentName(info.getAttachmentName());
+					workattachment.setUrl(info.getUrl());
+					workattachment.setAttachmentUser(info.getAttachmentUser());
+					workattachment.setAttachmentFlag(info.getAttachmentFlag());
+					workattachment.setAttachmentId(projectTemplateInfo.getId());
+					workattachment.setProjectId(projectRecords.getId());
+					switch (uploadMode){
+						case "1":
+							workattachment.setUrl(workattachment.getUrl().replace(bosUrl,""));
+							break;
+						case "2":
+							workattachment.setUrl(workattachment.getUrl().replace(aliyunUrl,""));
+							break;
+					}
+					workattachment.preInsert();
+					workClientAttachmentDao.insert(workattachment);
+				}
+			}
+		}else if(StringUtils.isNotBlank(projectRecords.getModifyFlag()) && "1".equals(projectRecords.getModifyFlag())){
+			//项目送审之后处理项目合同文件信息
+			//查询咨询合同附件类型id
+			ProjectTemplateInfo projectTemplateInfo = projectTemplateDao.getProjectTemplateInfoByName("咨询合同");
+			//删除该项目咨询合同类型中老合同对应的附件信息
+			WorkClientAttachment attchment = new WorkClientAttachment();
+			attchment.setAttachmentId(projectTemplateInfo.getId());
+			attchment.setProjectId(projectRecords.getId());
+			if(null != oldWorkContractInfo && null != oldWorkContractInfo.getWorkAttachments()){
+				for (WorkClientAttachment info:oldWorkContractInfo.getWorkAttachments()) {
+					attchment.setAttachmentName(info.getAttachmentName());
+					workattachmentService.deleteByAttachIdAndProject(attchment);
+				}
+			}
+			//将新合同对应的附件信息添加到咨询合同中
+			if(null != newWorkContractInfo && null != newWorkContractInfo.getWorkAttachments()){
+				WorkClientAttachment workattachment = new WorkClientAttachment();
+				for (WorkClientAttachment info:newWorkContractInfo.getWorkAttachments()) {
+					workattachment.setType(info.getType());
+					workattachment.setAttachmentName(info.getAttachmentName());
+					workattachment.setUrl(info.getUrl());
+					workattachment.setAttachmentUser(info.getAttachmentUser());
+					workattachment.setAttachmentFlag(info.getAttachmentFlag());
+					workattachment.setAttachmentId(projectTemplateInfo.getId());
+					workattachment.setProjectId(projectRecords.getId());
+					switch (uploadMode){
+						case "1":
+							workattachment.setUrl(workattachment.getUrl().replace(bosUrl,""));
+							break;
+						case "2":
+							workattachment.setUrl(workattachment.getUrl().replace(aliyunUrl,""));
+							break;
+					}
+					workattachment.preInsert();
+					workClientAttachmentDao.insert(workattachment);
+				}
+			}
 		}
 		logger.info("保存项目耗时:{}ms;启动流程耗时:{}ms",t4-t1,System.currentTimeMillis()-t4);
 	}
@@ -816,6 +888,7 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
             this.saveProjectUsers(projectRecords.getId(), leaders, true);
 		}else {
 			projectRecords.getAct().setFlag("yes");
+			projectRecords.setModifyFlag("1");
 			saveProject(projectRecords, ProjectStatusEnum.IN_APRL);
 		}
 

+ 9 - 1
src/main/java/com/jeeplus/modules/sys/dao/WorkattachmentDao.java

@@ -6,6 +6,7 @@ package com.jeeplus.modules.sys.dao;
 import com.jeeplus.common.persistence.CrudDao;
 import com.jeeplus.common.persistence.annotation.MyBatisDao;
 import com.jeeplus.modules.sys.entity.Workattachment;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -62,4 +63,11 @@ public interface WorkattachmentDao extends CrudDao<Workattachment> {
      * @return
      */
     Integer updateByRemarks(Workattachment workattachment);
-}
+
+
+    /**
+     * 删除信息
+     * @param workattachment
+     */
+    void deleteByAttachIdAndProject(WorkClientAttachment workattachment);
+}

+ 10 - 0
src/main/java/com/jeeplus/modules/sys/service/WorkattachmentService.java

@@ -604,4 +604,14 @@ public class WorkattachmentService extends CrudService<WorkattachmentDao, Workat
 			}
 		}
 	}
+
+
+	/**
+	 * 删除对应数据信息
+	 * @param workattachment
+	 */
+	@Transactional(readOnly = false)
+	public void deleteByAttachIdAndProject(WorkClientAttachment workattachment) {
+		dao.deleteByAttachIdAndProject(workattachment);
+	}
 }

+ 10 - 0
src/main/resources/mappings/modules/projectAccessory/ProjectTemplateDao.xml

@@ -301,4 +301,14 @@
 			</otherwise>
 		</choose>
 	</select>
+
+	<select id="getProjectTemplateInfoByName" resultType="com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo">
+		SELECT
+		<include refid="workReviewStandardColumns"/>
+		from project_template_structure_info a
+		<where>
+			a.del_flag = 0
+			and a.attach_name = #{name}
+		</where>
+	</select>
 </mapper>

+ 25 - 18
src/main/resources/mappings/modules/sys/WorkattachmentDao.xml

@@ -1,7 +1,7 @@
 <?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.sys.dao.WorkattachmentDao">
-    
+
 	<sql id="workattachmentColumns">
 		a.id AS "id",
 		a.create_by AS "createBy.id",
@@ -20,13 +20,13 @@
 		a.div_id_type AS "divIdType",
 		createBy.name AS "createBy.name"
 	</sql>
-	
+
 	<sql id="workattachmentJoins">
 		 LEFT JOIN sys_user createBy on createBy.id = a.create_by
 	</sql>
 
 	<select id="get" resultType="Workattachment" >
-		SELECT 
+		SELECT
 			<include refid="workattachmentColumns"/>
 		FROM work_attachment a
 		<include refid="workattachmentJoins"/>
@@ -137,7 +137,7 @@
 				AND a.attachment_id = #{attachmentId}
 			</if>
 	</select>
-	
+
 	<select id="getByAttachmentIdAndCompanyIdAndFlag" resultType="Workattachment">
 		SELECT <include refid="workattachmentColumns"/>
 		FROM work_attachment a
@@ -153,9 +153,9 @@
 				AND a.attachment_flag = #{attachmentFlag}
 			</if>
 	</select>
-	
+
 	<select id="findList" resultType="Workattachment" >
-		SELECT 
+		SELECT
 			<include refid="workattachmentColumns"/>
 		FROM work_attachment a
 		<include refid="workattachmentJoins"/>
@@ -201,15 +201,15 @@
 			</otherwise>
 		</choose>
 	</select>
-	
+
 	<select id="findAllList" resultType="Workattachment" >
-		SELECT 
+		SELECT
 			<include refid="workattachmentColumns"/>
 		FROM work_attachment a
 		<include refid="workattachmentJoins"/>
 		<where>
 			a.del_flag = #{DEL_FLAG_NORMAL}
-		</where>		
+		</where>
 		<choose>
 			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
 				ORDER BY ${page.orderBy}
@@ -249,7 +249,7 @@
 		</if>
 		</where>
 	</select>
-	
+
 	<insert id="insert">
 		INSERT INTO work_attachment(
 			id,
@@ -285,9 +285,9 @@
 			#{divIdType}
 		)
 	</insert>
-	
+
 	<update id="update">
-		UPDATE work_attachment SET 	
+		UPDATE work_attachment SET
 			update_by = #{updateBy.id},
 			update_date = #{updateDate},
 			remarks = #{remarks},
@@ -306,7 +306,7 @@
 		   remarks = #{remarks}
 		WHERE id = #{id}
 	</update>
-	
+
 	<!--物理删除-->
 	<update id="delete">
 		DELETE FROM work_attachment
@@ -321,12 +321,12 @@
 
 	<!--逻辑删除-->
 	<update id="deleteByLogic">
-		UPDATE work_attachment SET 
+		UPDATE work_attachment SET
 			del_flag = #{DEL_FLAG_DELETE}
 		WHERE id = #{id}
 	</update>
-	
-	
+
+
 	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
 	<select id="findUniqueByProperty" resultType="Workattachment" statementType="STATEMENT">
 		select * FROM work_attachment  where ${propertyName} = '${value}'
@@ -341,5 +341,12 @@
 		DELETE FROM work_attachment
 		WHERE attachment_id = #{attachmentId}
 	</delete>
-	
-</mapper>
+
+	<delete id="deleteByAttachIdAndProject">
+		DELETE FROM work_attachment
+		WHERE attachment_id = #{attachmentId}
+		and attachment_name = #{attachmentName}
+		and project_id = #{projectId}
+	</delete>
+
+</mapper>