Bladeren bron

发表管理、报销管理项目选择项变更

user5 4 jaren geleden
bovenliggende
commit
5d1cd2a201

+ 15 - 0
src/main/java/com/jeeplus/modules/projectrecord/dao/ProjectRecordsDao.java

@@ -31,9 +31,24 @@ public interface ProjectRecordsDao extends CrudDao<ProjectRecords> {
 
     ProjectRecords findUseableByProjectId(String projectId);
     List<ProjectRecords> findPageByRe(ProjectRecords records);
+    List<ProjectRecords> ruralFindPageByRe(ProjectRecords records);
     int queryCount(ProjectRecords records);
     int queryCountByStatus(ProjectRecords records);
 
     List<ProjectType> getProjectType(String projectTypeId);
 
+    /**
+     * 查询ruralProjectRecord数量
+     * @param records
+     * @return
+     */
+    Integer ruralQueryCount(ProjectRecords records);
+
+    /**
+     * 查询ruralProjectRecord详情
+     * @param records
+     * @return
+     */
+    List<ProjectRecords> ruralFindList(ProjectRecords records);
+
 }

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

@@ -121,6 +121,9 @@ public class ProjectRecordsService extends CrudService<ProjectRecordsDao, Projec
 	public ProjectRecords get(String id) {
 		return super.get(id);
 	}
+	public ProjectRecords getRuralProjectRecodes(String id) {
+		return dao.getRuralProjectRecodes(id);
+	}
 	public ProjectRecords getQueryProjectUsers(String id) {
 		ProjectRecords projectRecords = super.get(id);
 		List<User> users = workProjectUserDao.queryProjectUsers(projectRecords.getId(), "1");
@@ -187,6 +190,19 @@ public class ProjectRecordsService extends CrudService<ProjectRecordsDao, Projec
 		}
 		return projectRecords;
 	}
+
+	//开票用
+	public ProjectRecords getRuralInfo(String id) {
+		ProjectRecords projectRecords = dao.getRuralProjectRecodes(id);
+		if(projectRecords!=null){
+			String cid = projectRecords.getWorkContractInfo().getId();
+			WorkContractInfo workContractInfo = contractInfoService.get(cid);
+			WorkClientInfo workClientInfo = workClientInfoService.get(workContractInfo.getClient().getId());
+			workContractInfo.setClient(workClientInfo);
+			projectRecords.setWorkContractInfo(workContractInfo);
+		}
+		return projectRecords;
+	}
 	public List<ProjectRecords> findList(ProjectRecords projectRecords) {
 		return super.findList(projectRecords);
 	}
@@ -220,6 +236,40 @@ public class ProjectRecordsService extends CrudService<ProjectRecordsDao, Projec
 		page.setList(recordsList);
 		return page;
 	}
+
+	/**
+	 * 查询ruralProjectRecord信息
+	 * @param page 分页对象
+	 * @param projectRecords
+	 * @return
+	 */
+	public Page<ProjectRecords> ruralFindPage(Page<ProjectRecords> page, ProjectRecords projectRecords) {
+		//设置数据权限
+		if(!UserUtils.getUser().isAdmin()) {
+			String dataScopeSql = dataScopeFilterOR(projectRecords.getCurrentUser(), "o", "u", "s", MenuStatusEnum.OVERALL_WORK_RECORDS.getValue());
+			if(StringUtils.isBlank(dataScopeSql)){
+				dataScopeSql = dataScopeFilterOR(projectRecords.getCurrentUser(), "o", "u", "s", MenuStatusEnum.OVERALL_COST_WORK_RECORDS.getValue());
+			}
+			projectRecords.getSqlMap().put("dsf", dataScopeSql);
+		}
+		//查询数据条数
+		int count = dao.ruralQueryCount(projectRecords);
+		page.setCount(count);
+		page.setCountFlag(false);
+		projectRecords.setPage(page);
+		List<ProjectRecords> recordsList = dao.ruralFindList(projectRecords);
+		//查询负责人信息
+		for (ProjectRecords records : recordsList) {
+			this.queryContractInfos(records);
+			List<User> users = workProjectUserDao.queryProjectUsers(records.getId(), "1");
+			records.setProjectLeaders(users);
+			records.setLeaderNameStr(Collections3.extractToString(users, "name", ","));
+			records.setLeaderIds(Collections3.extractToString(users, "id", ","));
+		}
+		page.setList(recordsList);
+		return page;
+	}
+
 	public Page<ProjectRecords> findPageByStatus(Page<ProjectRecords> page, ProjectRecords projectRecords) {
 		//设置数据权限
 		if(!UserUtils.getUser().isAdmin()) {
@@ -264,6 +314,13 @@ public class ProjectRecordsService extends CrudService<ProjectRecordsDao, Projec
 		page.setList(recordsList);
 		return page;
 	}
+	public Page<ProjectRecords> ruralFindPageByRe(Page<ProjectRecords> page, ProjectRecords projectRecords,String userId) {
+		projectRecords.setPage(page);
+		projectRecords.setUserId(userId);
+		List<ProjectRecords> recordsList = dao.ruralFindPageByRe(projectRecords);
+		page.setList(recordsList);
+		return page;
+	}
 	@Transactional(readOnly = false)
 	public void saveProject(ProjectRecords projectRecords,ProjectStatusEnum projectStatus) throws Exception {
 		long t1 = System.currentTimeMillis();

+ 1 - 1
src/main/java/com/jeeplus/modules/workinvoice/service/WorkInvoiceService.java

@@ -109,7 +109,7 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 		}
 		if(workInvoice!=null){
 			if(workInvoice.getProject()!=null){
-				ProjectRecords project = projectRecordsService.getInfo(workInvoice.getProject().getId());
+				ProjectRecords project = projectRecordsService.getRuralInfo(workInvoice.getProject().getId());
 				workInvoice.setProject(project);
 			}
 			if(StringUtils.isNotBlank(workInvoice.getId())){

+ 3 - 3
src/main/java/com/jeeplus/modules/workinvoice/web/WorkInvoiceController.java

@@ -266,7 +266,7 @@ public class WorkInvoiceController extends BaseController {
 //		try {
 			Map<String, Object> variables = Maps.newHashMap();
 			WorkClientInfo workClientInfo =workClientInfoService.get(workInvoice.getClient().getId());
-			ProjectRecords workProject =projectRecordsService.get(workInvoice.getProject().getId());
+			ProjectRecords workProject =projectRecordsService.getRuralProjectRecodes(workInvoice.getProject().getId());
 			workInvoice.setClient(workClientInfo);
 			workInvoice.setProject(workProject);
 			workInvoice.setCompanyId(UserUtils.getSelectCompany().getId());
@@ -455,7 +455,7 @@ public class WorkInvoiceController extends BaseController {
 		project.setCompany(UserUtils.getSelectCompany());
 		project.setProjectStatus(ProjectStatusEnum.SIGNED.getValue());//已签状态
 		project.setLeaderNameStr(UserUtils.getUser().getName());
-		Page<ProjectRecords> page = projectRecordsService.findPage(new Page<ProjectRecords>(request, response), project);
+		Page<ProjectRecords> page = projectRecordsService.ruralFindPage(new Page<ProjectRecords>(request, response), project);
 		try {
 			fieldLabels = URLDecoder.decode(fieldLabels, "UTF-8");
 			fieldKeys = URLDecoder.decode(fieldKeys, "UTF-8");
@@ -609,7 +609,7 @@ public class WorkInvoiceController extends BaseController {
 	public String getPNumber() {
 		HashMap<Object, Object> map = Maps.newHashMap();
 		String obj = request.getParameter("obj");
-		ProjectRecords projectRecords = projectRecordsService.getInfo(obj);
+		ProjectRecords projectRecords = projectRecordsService.getRuralInfo(obj);
 		map.put("pNumber",projectRecords.getProjectId());//项目编号
 		map.put("cName",projectRecords.getWorkContractInfo().getClient().getName());//委托方
 		map.put("cInfoName",projectRecords.getWorkContractInfo().getName());//合同名称

+ 1 - 1
src/main/java/com/jeeplus/modules/workinvoicealter/service/WorkInvoiceAlterService.java

@@ -123,7 +123,7 @@ public class WorkInvoiceAlterService extends CrudService<WorkInvoiceAlterDao, Wo
 				workInvoice.setAct(getByAct(workInvoice.getProcessInstanceId()));
 			}
 			if(workInvoice.getProject()!=null){
-				ProjectRecords project = projectRecordsService.getInfo(workInvoice.getProject().getId());
+				ProjectRecords project = projectRecordsService.getRuralInfo(workInvoice.getProject().getId());
 				workInvoice.setProject(project);
 			}
 			if(StringUtils.isNotBlank(workInvoice.getId())){

+ 1 - 1
src/main/java/com/jeeplus/modules/workinvoicealter/web/WorkInvoiceAlterController.java

@@ -233,7 +233,7 @@ public class WorkInvoiceAlterController extends BaseController {
 		try {
 			Map<String, Object> variables = Maps.newHashMap();
 			WorkClientInfo workClientInfo =workClientInfoService.get(workInvoice.getClient().getId());
-			ProjectRecords workProject =projectRecordsService.get(workInvoice.getProject().getId());
+			ProjectRecords workProject =projectRecordsService.getRuralProjectRecodes(workInvoice.getProject().getId());
 			workInvoice.setClient(workClientInfo);
 			workInvoice.setProject(workProject);
 			workInvoice.setCompanyId(UserUtils.getSelectCompany().getId());

+ 1 - 1
src/main/java/com/jeeplus/modules/workreimbursement/web/WorkReimbursementController.java

@@ -726,7 +726,7 @@ public class WorkReimbursementController extends BaseController {
 	@RequestMapping(value = "selectReproject")
 	public String selectReproject(String userId,ProjectRecords projectId, String url, String fieldLabels, String fieldKeys, String searchLabel, String searchKey, HttpServletRequest request, HttpServletResponse response, Model model) {
 		projectId.setCompany(UserUtils.getSelectCompany());
-		Page<ProjectRecords> page = projectRecordsService.findPageByRe(new Page<ProjectRecords>(request, response), projectId,userId);
+		Page<ProjectRecords> page = projectRecordsService.ruralFindPageByRe(new Page<ProjectRecords>(request, response), projectId,userId);
 		try {
 			searchLabel = URLDecoder.decode(searchLabel, "UTF-8");
 			fieldLabels = URLDecoder.decode(fieldLabels, "UTF-8");

+ 199 - 0
src/main/resources/mappings/modules/projectrecord/ProjectRecordsDao.xml

@@ -651,8 +651,207 @@
 		</choose>
 	</select>
 
+	<select id="ruralFindPageByRe" resultType="ProjectRecords" >
+		SELECT
+		<include refid="projectRecordsColumns"/>
+		,
+		wci.name AS "workContractInfo.name",
+		wci.contract_num AS "workContractInfo.contractNum",
+		wct.id AS "workContractInfo.client.id",
+		wct.name AS "workContractInfo.client.name",
+		o.name AS "office.name"
+		FROM rural_project_records a
+		<include refid="projectRecordsJoins"/>
+		LEFT JOIN work_project_user w on a.id = w.project_id
+		LEFT JOIN sys_user su on w.user_id = su.id
+		LEFT JOIN sys_user u on a.create_by = u.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 s ON s.id = a.company_id
+		LEFT JOIN sys_office o ON o.id = a.office_id
+		where a.status='5'  and a.del_flag='0' and w.user_id=#{userId} and w.del_flag='0'
+		and wci.del_flag='0' and (wci.completion_status!='5' or wci.completion_status is null)
+		GROUP BY a.id
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+
 	<select id="getProjectType" resultType="com.jeeplus.modules.projectType.entity.ProjectType">
 		select type_id as typeId,type_name as typeName from project_type where parent_id = #{projectTypeId}
 	</select>
 
+
+	<select id="ruralFindList" resultType="ProjectRecords" >
+		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",
+		dsu.name as "projectRegistrant"
+		FROM rural_project_records a
+		<include refid="projectRecordsJoins"/>
+
+
+		LEFT JOIN work_project_user w on a.id = w.project_id
+		LEFT JOIN sys_user su on w.user_id = su.id
+		LEFT JOIN sys_user dsu on a.create_by = dsu.id
+		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
+		<where>
+			<if test="projectId != null and projectId != ''">
+				AND a.project_id like concat('%',#{projectId},'%')
+			</if>
+			<if test="projectName != null and projectName != ''">
+				AND a.project_name like concat(concat('%',#{projectName}),'%')
+			</if>
+			<if test="scaleType != null and scaleType != ''">
+				AND a.scale_type = #{scaleType}
+			</if>
+			<if test="scaleUnit != null and scaleUnit != ''">
+				AND a.scale_unit = #{scaleUnit}
+			</if>
+			<if test="scaleQuantity != null and scaleQuantity != ''">
+				AND a.scale_quantity = #{scaleQuantity}
+			</if>
+			<if test="projectSite != null and projectSite != ''">
+				AND a.project_site LIKE concat('%',#{projectSite},'%')
+			</if>
+			<if test="remarks != null and remarks != ''">
+				AND a.remarks LIKE concat('%',#{remarks},'%')
+			</if>
+			<if test="projectDesc != null and projectDesc != ''">
+				AND a.project_desc LIKE concat('%',#{projectDesc},'%')
+			</if>
+			<if test="area != null and area.id != null and area.id != ''">
+				AND a.area_id = #{area.id}
+			</if>
+			<if test="workContractInfo !=null and workContractInfo.name !=null and workContractInfo.name !=''">
+				AND wci.name like concat(concat('%',#{workContractInfo.name}),'%')
+			</if>
+			<if test="workContractInfo !=null and workContractInfo.contractNum !=null and workContractInfo.contractNum !=''">
+				AND wci.contract_num like concat(concat('%',#{workContractInfo.contractNum}),'%')
+			</if>
+			<if test="workContractInfo !=null and workContractInfo.contractPrice !=null and workContractInfo.contractPrice !=''">
+				AND wci.contract_price = #{workContractInfo.contractPrice}
+			</if>
+			<if test="workContractInfo !=null and workContractInfo.contractType !=null and workContractInfo.contractType !=''">
+				AND wci.contract_type = #{workContractInfo.contractType}
+			</if>
+			<if test="workContractInfo!=null and workContractInfo.client !=null and workContractInfo.client.name !=null and workContractInfo.client.name !=''">
+				AND wct.name like concat(concat('%',#{workContractInfo.client.name}),'%')
+			</if>
+			<if test="leaderNameStr !=null and leaderNameStr !=''">
+				AND su.name like concat(concat('%',#{leaderNameStr}),'%') AND w.is_master = '1' AND w.del_flag='0'
+			</if>
+			<if test="projectStatus !=null">
+				AND a.status = #{projectStatus}
+			</if>
+			<if test="beginDate !=null">
+				AND a.create_date >= #{beginDate}
+			</if>
+			<if test="endDate !=null">
+				AND a.create_date &lt; #{endDate}
+			</if>
+			AND  a.status != 7 AND a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="sqlMap.dsf !=null and sqlMap.dsf!=''">
+				AND ((w1.user_id = #{currentUser.id} AND w1.del_flag='0' AND a.company_id = #{currentUser.company.id} )${sqlMap.dsf} )
+			</if>
+		</where>
+		GROUP BY a.id
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+
+	<select id="ruralQueryCount" resultType="int" >
+		SELECT count(DISTINCT a.id)
+		FROM rural_project_records a
+		<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
+		<if test="workContractInfo !=null">
+			LEFT JOIN work_contract_info wci on a.contract_id = wci.id
+		</if>
+		<if test="workContractInfo!=null and workContractInfo.client !=null and workContractInfo.client.name !=null and workContractInfo.client.name !=''">
+			LEFT JOIN work_client_info wct on wci.client_id = wct.id
+		</if>
+		<where>
+			<if test="projectId != null and projectId != ''">
+				AND a.project_id like concat('%',#{projectId},'%')
+			</if>
+			<if test="projectName != null and projectName != ''">
+				AND a.project_name like concat(concat('%',#{projectName}),'%')
+			</if>
+			<if test="scaleType != null and scaleType != ''">
+				AND a.scale_type = #{scaleType}
+			</if>
+			<if test="scaleUnit != null and scaleUnit != ''">
+				AND a.scale_unit = #{scaleUnit}
+			</if>
+			<if test="scaleQuantity != null and scaleQuantity != ''">
+				AND a.scale_quantity = #{scaleQuantity}
+			</if>
+			<if test="projectSite != null and projectSite != ''">
+				AND a.project_site LIKE concat('%',#{projectSite},'%')
+			</if>
+			<if test="remarks != null and remarks != ''">
+				AND a.remarks LIKE concat('%',#{remarks},'%')
+			</if>
+			<if test="projectDesc != null and projectDesc != ''">
+				AND a.project_desc LIKE concat('%',#{projectDesc},'%')
+			</if>
+			<if test="area != null and area.id != null and area.id != ''">
+				AND a.area_id = #{area.id}
+			</if>
+			<if test="workContractInfo !=null and workContractInfo.name !=null and workContractInfo.name !=''">
+				AND wci.name like concat(concat('%',#{workContractInfo.name}),'%')
+			</if>
+			<if test="workContractInfo !=null and workContractInfo.contractNum !=null and workContractInfo.contractNum !=''">
+				AND wci.contract_num like concat(concat('%',#{workContractInfo.contractNum}),'%')
+			</if>
+			<if test="workContractInfo !=null and workContractInfo.contractPrice !=null and workContractInfo.contractPrice !=''">
+				AND wci.contract_price = #{workContractInfo.contractPrice}
+			</if>
+			<if test="workContractInfo !=null and workContractInfo.contractType !=null and workContractInfo.contractType !=''">
+				AND wci.contract_type = #{workContractInfo.contractType}
+			</if>
+			<if test="workContractInfo!=null and workContractInfo.client !=null and workContractInfo.client.name !=null and workContractInfo.client.name !=''">
+				AND wct.name like concat(concat('%',#{workContractInfo.client.name}),'%')
+			</if>
+			<if test="leaderNameStr !=null and leaderNameStr !=''">
+				AND su.name like concat(concat('%',#{leaderNameStr}),'%') AND w.is_master = '1' AND w.del_flag='0'
+			</if>
+			<if test="projectStatus !=null">
+				AND a.status = #{projectStatus}
+			</if>
+			<if test="beginDate !=null">
+				AND a.create_date >= #{beginDate}
+			</if>
+			<if test="endDate !=null">
+				AND a.create_date &lt; #{endDate}
+			</if>
+			AND  a.status != 7 AND a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="sqlMap.dsf !=null and sqlMap.dsf!=''">
+				AND ((w1.user_id = #{currentUser.id} AND w1.del_flag='0' AND a.company_id = #{currentUser.company.id})${sqlMap.dsf} )
+			</if>
+		</where>
+	</select>
+
 </mapper>

+ 2 - 2
src/main/resources/mappings/modules/workinvoice/WorkInvoiceDao.xml

@@ -57,7 +57,7 @@
 	<sql id="workInvoiceJoins">
 		LEFT JOIN sys_user u ON u.id = a.drawer_id
 		LEFT JOIN work_client_info w ON  w.id = a.client_id
-	  	LEFT JOIN project_records p ON  p.id = a.project_id
+	  	LEFT JOIN rural_project_records p ON  p.id = a.project_id
 	  	left JOIN work_contract_info ci on ci.id = p.contract_id
 	  	JOIN sys_office o ON o.id = a.office_id
 		JOIN sys_office s ON s.id = a.company_id
@@ -177,7 +177,7 @@
 			LEFT JOIN work_client_info w ON  w.id = a.client_id
 		</if>
 		<if test="project != null">
-			LEFT JOIN project_records p ON  p.id = a.project_id
+			LEFT JOIN rural_project_records p ON  p.id = a.project_id
 		</if>
 		<if test="office != null and office.name != null and office.name != ''">
 			LEFT join sys_office so on so.id = a.office_id

+ 1 - 1
src/main/resources/mappings/modules/workinvoicealter/WorkInvoiceAlterDao.xml

@@ -58,7 +58,7 @@
 	<sql id="workInvoiceJoins">
 		LEFT JOIN sys_user u ON u.id = a.drawer_id
 		LEFT JOIN work_client_info w ON  w.id = a.client_id
-	  	LEFT JOIN project_records p ON  p.id = a.project_id
+	  	LEFT JOIN rural_project_records p ON  p.id = a.project_id
 	  	left JOIN work_contract_info ci on ci.id = p.contract_id
 	  	JOIN sys_office o ON o.id = a.office_id
 		JOIN sys_office s ON s.id = a.company_id

+ 1 - 1
src/main/resources/mappings/modules/workreimbursement/WorkReimbursementDao.xml

@@ -39,7 +39,7 @@
 	</sql>
 	
 	<sql id="workReimbursementJoins">
-        LEFT JOIN project_records p on p.id = a.project_id
+        LEFT JOIN rural_project_records p on p.id = a.project_id
 	</sql>