Преглед на файлове

造价类项目批量导入功能

徐滕 преди 2 месеца
родител
ревизия
61def314b5

+ 30 - 21
src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/ImportBRuralProjectRecords.java

@@ -39,6 +39,7 @@ public class ImportBRuralProjectRecords extends ActEntity<ImportBRuralProjectRec
 	private String projectSite;		//建设地点
 	private String leaderName;		//项目责任人	必填
 	private String projectMasterName;		//项目负责人
+	private String belongingDepartmentName;		//项目责任人	必填
 	private String engineeringName;	//工程类型名称
 	private String engineeringType;	//工程类型
 	private String whetherReportNumber;	//是否生成报告
@@ -47,43 +48,47 @@ public class ImportBRuralProjectRecords extends ActEntity<ImportBRuralProjectRec
 	private Date beginDate;			//项目开始日期	同步到项目计划,“收集及熟悉资料”开始和结算时间
 	private Date endDate;			//项目结束日期	同步到项目计划,“出具报告”开始和结算时间
 	private String attachmentProjectSort;   //项目类别	必填
-	private String clientNumber;	//客户编号	无合同项目必填,有合同项目不读取
+	private String clientName;	//委托方客户名称	无合同项目必填,有合同项目不读取
+
 
-	@ExcelField(title="是否有合同", align=2, sort=1)
 	public String getWhetherContract() {
 		return whetherContract;
 	}
-	@ExcelField(title="合同编号", align=2, sort=2)
+	@ExcelField(title="合同编号", align=2, sort=1)
 	public String getContractNumber() {
 		return contractNumber;
 	}
-	@ExcelField(title="项目名称", align=2, sort=3)
+	@ExcelField(title="项目名称", align=2, sort=2)
 	public String getProjectName() {
 		return projectName;
 	}
-	@ExcelField(title="项目所在地", align=2, sort=4)
+	@ExcelField(title="项目所在地", align=2, sort=3)
 	public String getAreaName() {
 		return areaName;
 	}
 
-	@ExcelField(title="投资性质", align=2, sort=5)
+	@ExcelField(title="投资性质", align=2, sort=4)
 	public String getProjectProperties() {
 		return projectProperties;
 	}
 
-	@ExcelField(title="建设地点", align=2, sort=6)
+	@ExcelField(title="建设地点", align=2, sort=5)
 	public String getProjectSite() {
 		return projectSite;
 	}
-	@ExcelField(title="项目责任人", align=2, sort=7)
+	@ExcelField(title="项目责任人", align=2, sort=6)
 	public String getLeaderName() {
 		return leaderName;
 	}
-	@ExcelField(title="项目负责人", align=2, sort=8)
+	@ExcelField(title="项目负责人", align=2, sort=7)
 	public String 	getProjectMasterName() {
 		return projectMasterName;
 	}
-	@ExcelField(title="工程类型名称", align=2, sort=9)
+	@ExcelField(title="项目归属部门", align=2, sort=8)
+	public String getBelongingDepartmentName() {
+		return belongingDepartmentName;
+	}
+	@ExcelField(title="工程类型", align=2, sort=9)
 	public String getEngineeringName() {
 		return engineeringName;
 	}
@@ -91,8 +96,10 @@ public class ImportBRuralProjectRecords extends ActEntity<ImportBRuralProjectRec
 	public String getWhetherReportNumber() {
 		return whetherReportNumber;
 	}
-	public BigDecimal getSubmitScale() {
-		return submitScale;
+
+	@ExcelField(title="送审规模(万元)", align=2, sort=11)
+	public String getSubmitScaleStr() {
+		return submitScaleStr;
 	}
 	@ExcelField(title="项目开始日期", align=2, sort=12)
 	public Date getBeginDate() {
@@ -106,17 +113,15 @@ public class ImportBRuralProjectRecords extends ActEntity<ImportBRuralProjectRec
 	public String getAttachmentProjectSort() {
 		return attachmentProjectSort;
 	}
-	@ExcelField(title="客户编号", align=2, sort=15)
-	public String getClientNumber() {
-		return clientNumber;
+	@ExcelField(title="委托方客户名称", align=2, sort=15)
+	public String getClientName() {
+		return clientName;
 	}
 
-	@ExcelField(title="送审规模", align=2, sort=11)
-	public String getSubmitScaleStr() {
-		return submitScaleStr;
+	public BigDecimal getSubmitScale() {
+		return submitScale;
 	}
 
-
 	public void setSubmitScaleStr(String submitScaleStr) {
 		this.submitScaleStr = submitScaleStr;
 	}
@@ -154,6 +159,10 @@ public class ImportBRuralProjectRecords extends ActEntity<ImportBRuralProjectRec
 		this.projectMasterName = projectMasterName;
 	}
 
+	public void setBelongingDepartmentName(String belongingDepartmentName) {
+		this.belongingDepartmentName = belongingDepartmentName;
+	}
+
 	public void setEngineeringName(String engineeringName) {
 		this.engineeringName = engineeringName;
 	}
@@ -178,8 +187,8 @@ public class ImportBRuralProjectRecords extends ActEntity<ImportBRuralProjectRec
 		this.attachmentProjectSort = attachmentProjectSort;
 	}
 
-	public void setClientNumber(String clientNumber) {
-		this.clientNumber = clientNumber;
+	public void setClientName(String clientName) {
+		this.clientName = clientName;
 	}
 
 	public String getEngineeringType() {

+ 152 - 52
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordsService.java

@@ -3906,10 +3906,11 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 		Iterator<ImportBRuralProjectRecords> iterator = list.iterator();
 		while(iterator.hasNext()){
 			ImportBRuralProjectRecords info = iterator.next();
-			if(StringUtils.isBlank(info.getWhetherContract())
-					&& StringUtils.isBlank(info.getProjectName())
+			if(StringUtils.isBlank(info.getProjectName())
 					&& StringUtils.isBlank(info.getAreaName())
-					&& StringUtils.isBlank(info.getLeaderName())
+					&& StringUtils.isBlank(info.getProjectProperties())
+					&& StringUtils.isBlank(info.getProjectMasterName())
+					&& StringUtils.isBlank(info.getBelongingDepartmentName())
 					&& StringUtils.isBlank(info.getEngineeringName())
 					&& StringUtils.isBlank(info.getWhetherReportNumber())
 					&& StringUtils.isBlank(info.getSubmitScaleStr())
@@ -3934,15 +3935,22 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 			}
 		}
 
+		Office findByBelongingDepartmentOffice = new Office();
+		findByBelongingDepartmentOffice.setParentIds(UserUtils.getSelectCompany().getId());
+		findByBelongingDepartmentOffice.setType("2");
+		List<Office> byBelongingDepartmentList = officeService.findByBelongingDepartment(findByBelongingDepartmentOffice);
+
+
 		List<RuralProjectRecords> projectRecordsList = Lists.newArrayList();
 		for (ImportBRuralProjectRecords importBRuralProjectRecords : list){
 			try{
 				RuralProjectRecords projectRecords = new RuralProjectRecords();
 				//判定必填项是否填完
-				if(StringUtils.isBlank(importBRuralProjectRecords.getWhetherContract())
-						|| StringUtils.isBlank(importBRuralProjectRecords.getProjectName())
+				if(StringUtils.isBlank(importBRuralProjectRecords.getProjectName())
 						|| StringUtils.isBlank(importBRuralProjectRecords.getAreaName())
-						|| StringUtils.isBlank(importBRuralProjectRecords.getLeaderName())
+						|| StringUtils.isBlank(importBRuralProjectRecords.getProjectProperties())
+						|| StringUtils.isBlank(importBRuralProjectRecords.getProjectMasterName())
+						|| StringUtils.isBlank(importBRuralProjectRecords.getBelongingDepartmentName())
 						|| StringUtils.isBlank(importBRuralProjectRecords.getEngineeringName())
 						|| StringUtils.isBlank(importBRuralProjectRecords.getWhetherReportNumber())
 						|| StringUtils.isBlank(importBRuralProjectRecords.getSubmitScaleStr())
@@ -4013,6 +4021,22 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 					projectRecords.setCity(city.getName());
 					projectRecords.setCounty(district.getName());
 					projectRecords.setArea(district);
+				}else if(2 == areaNameList.size()){
+					//根据名称查询省级单位信息
+					Area province = areaService.getByNameAndParentId(areaNameList.get(0),"1");
+					if(null == province ){
+						return "项目所在地填写错误,查询不到省级信息";
+					}
+					//根据名称查询市级单位信息
+					Area city = areaService.getByNameAndParentId(areaNameList.get(1),province.getId());
+					if(null == city){
+						return "项目所在地填写错误,查询不到市级信息";
+					}
+					projectRecords.setProvince(province.getName());
+					projectRecords.setCity(city.getName());
+					projectRecords.setArea(city);
+				}else if(1 == areaNameList.size()){
+					return "项目所在地填写错误,至少选择市级信息";
 				}else{
 					return "项目所在地填写错误";
 				}
@@ -4045,6 +4069,16 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 				}else{
 					projectRecords.setReportedState(null);
 				}
+				//判断项目归属部门
+				if("其他".equals(importBRuralProjectRecords.getBelongingDepartmentName())){
+					projectRecords.setBelongingDepartment(importBRuralProjectRecords.getBelongingDepartmentName());
+				}else{
+					for (Office office : byBelongingDepartmentList) {
+						if(office.getName().equals(importBRuralProjectRecords.getBelongingDepartmentName())){
+							projectRecords.setBelongingDepartment(office.getId());
+						}
+					}
+				}
 
 				//判断工程类型
 				List<ProjectEngineeringInfo> engineeringInfos=engineeringService.findList(new ProjectEngineeringInfo());  //这能有数据?
@@ -4066,11 +4100,30 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 				Office company= new Office();
 				Office office =  new Office();
 
-				if("是".equals(importBRuralProjectRecords.getWhetherContract())){
-					//判断当是否有合同为是时,合同编号是否为空
-					if(StringUtils.isBlank(importBRuralProjectRecords.getContractNumber())){
-						return "是否有合同选择是的情况下合同编号为空";
+				//判断当是否有合同为是时,合同编号是否为空
+				if(StringUtils.isBlank(importBRuralProjectRecords.getContractNumber())){
+					//判断当是否有合同为否时,客户编号是否为空
+					if(StringUtils.isBlank(importBRuralProjectRecords.getClientName())){
+						return "未填写合同编号的情况下委托方客户名称不可为空";
 					}
+					//根据客户编号查询客户信息
+					WorkClientInfo workClientInfo = workClientInfoService.getByName(importBRuralProjectRecords.getClientName());
+					if(null == workClientInfo){
+						return "委托方客户名称:"+ importBRuralProjectRecords.getClientName() + "  不存在或已删除";
+					}
+					List<WorkClientLinkman> linkmanList = workClientInfoService.queryLinkManByClientId(workClientInfo.getId());
+					WorkClientLinkman linkman = linkmanList.get(0);
+					linkman.setClientId(workClientInfo);
+					List<WorkClientLinkman> clientLinkmanList = Lists.newArrayList();
+					clientLinkmanList.add(linkman);
+					projectRecords.setWorkClientLinkmanList(clientLinkmanList);
+					WorkContractInfo workContractInfo = new WorkContractInfo();
+					workContractInfo.setId("");
+					projectRecords.setWorkContractInfo(workContractInfo);
+					//无合同
+					company.setId(UserUtils.getUser().getCompany().getId());
+					office.setId(UserUtils.getUser().getOffice().getId());
+				}else{
 					//根据合同编号查询合同信息
 					//判断当前的合同是否被作废或者删除
 					WorkContractInfo workContractInfo = contractInfoService.getByContractNum(importBRuralProjectRecords.getContractNumber());
@@ -4091,31 +4144,8 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 							projectRecords.setWorkClientLinkmanList(clientLinkmanList);
 						}
 					}
-				}else if("否".equals(importBRuralProjectRecords.getWhetherContract())){
-					//判断当是否有合同为否时,客户编号是否为空
-					if(StringUtils.isBlank(importBRuralProjectRecords.getClientNumber())){
-						return "是否有合同选择否的情况下客户编号为空";
-					}
-					//根据客户编号查询客户信息
-					WorkClientInfo workClientInfo = workClientInfoService.getByName(importBRuralProjectRecords.getClientNumber());
-					if(null == workClientInfo){
-						return "客户编号:"+ importBRuralProjectRecords.getClientNumber() + "  不存在或已删除";
-					}
-					List<WorkClientLinkman> linkmanList = workClientInfoService.queryLinkManByClientId(workClientInfo.getId());
-					WorkClientLinkman linkman = linkmanList.get(0);
-					linkman.setClientId(workClientInfo);
-					List<WorkClientLinkman> clientLinkmanList = Lists.newArrayList();
-					clientLinkmanList.add(linkman);
-					projectRecords.setWorkClientLinkmanList(clientLinkmanList);
-					WorkContractInfo workContractInfo = new WorkContractInfo();
-					workContractInfo.setId("");
-					projectRecords.setWorkContractInfo(workContractInfo);
-					//无合同
-					company.setId(UserUtils.getUser().getCompany().getId());
-					office.setId(UserUtils.getUser().getOffice().getId());
-				}else{
-					return "是否有合同栏填写不正确";
 				}
+
 				projectRecords.setCompany(company);
 				projectRecords.setOffice(office);
 
@@ -4125,22 +4155,34 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 				BigDecimal twoHundred = new BigDecimal("200");
 				BigDecimal fiveHundred = new BigDecimal("500");
 				if (submitScale.compareTo(fiveHundred) >=0 ){
-					return "送审规模达到A级项目标准,无法进行导入";
-				}
-				if(submitScale.compareTo(twoHundred) >=0 && ("101".equals(projectRecords.getProjectProperties()) || "5".equals(projectRecords.getProjectProperties()))){
-					return "送审规模达到A级项目标准,无法进行导入";
+					return "项目名称:" + importBRuralProjectRecords.getProjectName() + " 的送审规模达到A级项目标准,无法进行导入";
 				}
+				//101 是 政府财政投资 ,5 是 部队投资。两者超过200w 都定为A类项目
+				/*if(submitScale.compareTo(twoHundred) >=0 && ("101".equals(projectRecords.getProjectProperties()) || "5".equals(projectRecords.getProjectProperties()))){
+					return "项目名称:" + importBRuralProjectRecords.getProjectName() + " 的送审规模达到A级项目标准,无法进行导入";
+				}*/
 				//添加送审规模
 				projectRecords.setSubmitScale(submitScale);
 
-				//处理项目责任人
-				User userLeader = UserUtils.getByUserName(importBRuralProjectRecords.getLeaderName());  //根据姓名转换为ID
-				if(null == userLeader){
-					return "无法查询到项目责任人";
+				if(StringUtils.isBlank(importBRuralProjectRecords.getLeaderName())){
+					//处理项目责任人
+					User userLeader = UserUtils.getUser();  //根据姓名转换为ID
+					if(null == userLeader){
+						return "无法查询到项目责任人";
+					}
+					List<User> userLeaderList = Lists.newArrayList();
+					userLeaderList.add(userLeader);
+					projectRecords.setProjectLeaders(userLeaderList);
+				}else{
+					//处理项目责任人
+					User userLeader = UserUtils.getByUserName(importBRuralProjectRecords.getLeaderName());  //根据姓名转换为ID
+					if(null == userLeader){
+						return "无法查询到项目责任人";
+					}
+					List<User> userLeaderList = Lists.newArrayList();
+					userLeaderList.add(userLeader);
+					projectRecords.setProjectLeaders(userLeaderList);
 				}
-				List<User> userLeaderList = Lists.newArrayList();
-				userLeaderList.add(userLeader);
-				projectRecords.setProjectLeaders(userLeaderList);
 
 
 				//判断项目负责人
@@ -4169,19 +4211,77 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 				//添加项目编号
 				synchronized (SYN_BYTE) {
 					if (StringUtils.isBlank(projectRecords.getProjectId())) {
-						if ("1".equals(projectRecords.getProjectType())) {
-							if(projectRecords.getAttachmentProjectSort().equals("6")){
+						if ("1".equals(projectRecords.getProjectType())) {	//工程咨询
+							if ("6".equals(projectRecords.getAttachmentProjectSort())) {
+								//工程造价鉴定 需要纸质归档
+								assert createBy != null;
+								projectRecords.setPaperFilingStatus("");
 								projectRecords.setProjectId(serialNumTplService.genSerialNum(createBy.getCompany(), RuralProjectRecords.PROJECT_COST_APPRAISAL));
-							}else if(projectRecords.getAttachmentProjectSort().equals("7")){
+							} else if ("7".equals(projectRecords.getAttachmentProjectSort())) {
+								assert createBy != null;
+								projectRecords.setPaperFilingStatus("10");
 								projectRecords.setProjectId(serialNumTplService.genSerialNum(createBy.getCompany(), RuralProjectRecords.ECONOMIC_EVALUATION));
-							}else{
+							} else if ("10".equals(projectRecords.getAttachmentProjectSort())) {	//工程咨询 配合类
+								assert createBy != null;
+								projectRecords.setPaperFilingStatus("10");
+								projectRecords.setProjectId(serialNumTplService.genSerialNum(createBy.getCompany(), RuralProjectRecords.COORDINATE_BIZCODE));
+							} else {
+								assert createBy != null;
+								projectRecords.setPaperFilingStatus("10");
 								projectRecords.setProjectId(serialNumTplService.genSerialNum(createBy.getCompany(), RuralProjectRecords.SERIAL_BIZCODE));
 							}
-						} else if ("2".equals(projectRecords.getProjectType())) {
-							projectRecords.setProjectId(serialNumTplService.genSerialNum(createBy.getCompany(), RuralProjectRecords.SERIAL_COST_BIZCODE));
+						} else if ("2".equals(projectRecords.getProjectType())) {	//造价审核
+							//预算审核、结算审核、分包审核 需要纸质归档
+							if ("2".equals(projectRecords.getAttachmentProjectSort()) || "4".equals(projectRecords.getAttachmentProjectSort()) || "7".equals(projectRecords.getAttachmentProjectSort()) || "20".equals(projectRecords.getAttachmentProjectSort()) || "10".equals(projectRecords.getAttachmentProjectSort()) || "11".equals(projectRecords.getAttachmentProjectSort())) {
+								assert createBy != null;
+								projectRecords.setPaperFilingStatus("");
+								projectRecords.setProjectId(serialNumTplService.genSerialNum(createBy.getCompany(), RuralProjectRecords.SERIAL_COST_BIZCODE));
+							}else{
+								assert createBy != null;
+								projectRecords.setPaperFilingStatus("10");
+								projectRecords.setProjectId(serialNumTplService.genSerialNum(createBy.getCompany(), RuralProjectRecords.SERIAL_COST_BIZCODE));
+							}
+						}
+					} else{
+
+						if ("1".equals(projectRecords.getProjectType())) {	//工程咨询
+							if ("6".equals(projectRecords.getAttachmentProjectSort())) {
+								//工程造价鉴定 需要纸质归档
+								projectRecords.setPaperFilingStatus(null);
+							} else if ("7".equals(projectRecords.getAttachmentProjectSort())) {
+								projectRecords.setPaperFilingStatus("10");
+							} else if ("10".equals(projectRecords.getAttachmentProjectSort())) {	//工程咨询 配合类
+								projectRecords.setPaperFilingStatus("10");
+							} else {
+								projectRecords.setPaperFilingStatus("10");
+							}
+						} else if ("2".equals(projectRecords.getProjectType())) {	//造价审核
+							//预算审核、结算审核、分包审核 需要纸质归档
+							if ("2".equals(projectRecords.getAttachmentProjectSort()) || "4".equals(projectRecords.getAttachmentProjectSort()) || "7".equals(projectRecords.getAttachmentProjectSort()) || "20".equals(projectRecords.getAttachmentProjectSort()) || "10".equals(projectRecords.getAttachmentProjectSort()) || "11".equals(projectRecords.getAttachmentProjectSort()) || "12".equals(projectRecords.getAttachmentProjectSort())) {
+								projectRecords.setPaperFilingStatus(null);
+							}else{
+								projectRecords.setPaperFilingStatus("10");
+							}
 						}
 					}
 				}
+				//判断项目类型并判断项目类别
+				switch (projectRecords.getProjectType()){
+					case "1":
+						if("8".equals(projectRecords.getAttachmentProjectSort())){
+							projectRecords.setReportedState("10");
+						}else{
+							projectRecords.setReportedState(null);
+						}
+						break;
+					case "2":
+						if("5".equals(projectRecords.getAttachmentProjectSort()) || "6".equals(projectRecords.getAttachmentProjectSort()) || "8".equals(projectRecords.getAttachmentProjectSort()) || "20".equals(projectRecords.getAttachmentProjectSort()) || "10".equals(projectRecords.getAttachmentProjectSort())){
+							projectRecords.setReportedState("10");
+						}else{
+							projectRecords.setReportedState(null);
+						}
+						break;
+				}
 				//判断是否需要生成报告号
 				if("是".equals(importBRuralProjectRecords.getWhetherReportNumber())){
 
@@ -6152,7 +6252,7 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 
 	/**
 	 * 获取苏州分公司下的所有项目信息
-	 * @param id
+	 * @param officeId
 	 * @return
 	 */
     public List<RuralProjectRecords> getListByOffice(String officeId) {

+ 6 - 3
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralCostProjectRecordsController.java

@@ -228,7 +228,10 @@ public class RuralCostProjectRecordsController extends BaseController {
 	public String form(RuralProjectRecords projectRecords, Model model) {
 		if (projectRecords!=null&&StringUtils.isNotBlank(projectRecords.getId())) {
 			projectRecords = projectRecordsService.get(projectRecords.getId());
-
+			if (null != projectRecords.getCreateBy() && StringUtils.isNotBlank(projectRecords.getCreateBy().getId())) {
+				User user = UserUtils.get(projectRecords.getCreateBy().getId());
+				projectRecords.setCreateBy(user);
+			}
 			//根据归属部门Id查询归属部门名称显示
 			String belongingDepartmentName = projectRecordsService.getBelongingDepartmentNameByBelongingDepartment(projectRecords.getBelongingDepartment());
 			model.addAttribute("belongingDepartmentName",belongingDepartmentName);
@@ -812,9 +815,9 @@ public class RuralCostProjectRecordsController extends BaseController {
 	public String importFileTemplateB(HttpServletResponse response, HttpServletRequest request) {
 		try {
 			ThisLocalityDownloadUtil download = new ThisLocalityDownloadUtil();
-			download.download("审核类项目批量导入模板.xlsx",request,response);
+			download.download("造价B类项目批量导入模板.xlsx",request,response);
 		} catch (Exception e) {
-			logger.error("审核类项目批量导入模板下载失败!",e);
+			logger.error("造价B类项目批量导入模板!",e);
 		}
 		return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralCostProjectRecords/?repage";
 	}

+ 8 - 0
src/main/java/com/jeeplus/modules/sys/web/LoginController.java

@@ -512,6 +512,14 @@ public class LoginController extends BaseController{
 	 */
 	@RequestMapping(value = "${adminPath}/home")
 	public String home(String type, HttpServletRequest request, HttpServletResponse response, Model model) throws Exception {
+
+		// 获取并设置从重定向传递过来的消息
+		String message = (String) model.asMap().get("message");
+
+		// 将消息添加到模型中,以便在页面上显示
+		if (message != null) {
+			model.addAttribute("message", message);
+		}
 		long s1 = System.currentTimeMillis();
 		User user = UserUtils.getUser();
 		OaNotify oaNotify = new OaNotify();

+ 39 - 0
src/main/java/com/jeeplus/modules/sys/web/RegisterController.java

@@ -473,6 +473,45 @@ public class RegisterController extends BaseController {
 			return "false";
 		}
 	}
+
+
+
+	/**
+	 * web端ajax验证密码是否正确
+	 */
+	@ResponseBody
+	@RequestMapping(value = "changePasswordValidatePassword")
+	public String changePasswordValidatePassword(HttpServletRequest request,
+								   String password, String loginName) {
+//		User user1 = new User();
+//		user1.setName(loginName);
+//		List<User> list = userDao.getByName(user1);
+//		if(list != null && list.size()>1){
+//			return "cf";
+//		}
+		User user = UserUtils.getByLoginName(loginName);
+		if (user ==null || org.apache.commons.lang3.StringUtils.isBlank(user.getId())){
+			return "false";
+		}
+		//从redis中获取当前用户登陆失败的次数
+		String key = "loginFailNum:"+user.getLoginName();
+		String loginFailNum = JedisUtils.getResource().get(key);
+		if (StringUtils.isNotBlank(loginFailNum)){
+			int num = Integer.parseInt(loginFailNum);
+			if (num >= 10){
+				return "false1";
+			}
+		}
+		//password = SystemService.encrypeString(password);
+		//判断 当前登陆人登陆密码和数据库的是否一样或者 登陆密码是否为字典表中通用登陆密码
+		if (SystemService.validatePassword(password, user.getPassword())) {
+			return "true";
+		} else {
+			return "false";
+		}
+	}
+
+
 	/**
 	 * web端ajax验证密码是否正确
 	 */

+ 21 - 25
src/main/java/com/jeeplus/modules/sys/web/UserController.java

@@ -848,45 +848,41 @@ public class UserController extends BaseController {
      */
     @RequiresPermissions("user")
     @RequestMapping(value = "modifyPwd")
-    public String modifyPwd(String oldPassword, String newPassword, Model model,HttpServletRequest request) {
+    public String modifyPwd(String oldPassword, String newPassword, Model model, HttpServletRequest request, RedirectAttributes redirectAttributes) {
         User user = UserUtils.getUser();
         String home = request.getParameter("home");
-        if (StringUtils.isNotBlank(oldPassword) && StringUtils.isNotBlank(newPassword)){
-            if(Global.isDemoMode()){
-                model.addAttribute("message", "演示模式,不允许操作!");
-                return "modules/sys/userInfo";
+
+        if (StringUtils.isNotBlank(oldPassword) && StringUtils.isNotBlank(newPassword)) {
+            if (Global.isDemoMode()) {
+                redirectAttributes.addFlashAttribute("message", "演示模式,不允许操作!");
+                return "redirect:/sys/userInfo"; // 使用重定向传递消息
             }
+
             oldPassword = SystemService.encrypeString(oldPassword);
-            if (SystemService.validatePassword(oldPassword, user.getPassword())){
+            if (SystemService.validatePassword(oldPassword, user.getPassword())) {
                 newPassword = SystemService.encrypeString(newPassword);
-
-                NewPassword psd = new NewPassword().newpassword(newPassword);
                 systemService.updatePasswordById(user.getId(), user.getLoginName(), newPassword);
-                model.addAttribute("message", "修改密码成功,请重新登录");
-            }else{
-                model.addAttribute("message", "修改密码失败,旧密码错误");
+                redirectAttributes.addFlashAttribute("message", "修改密码成功,请重新登录");
+            } else {
+                redirectAttributes.addFlashAttribute("message", "修改密码失败,旧密码错误");
             }
-            if("home".equals(request.getParameter("home"))){
-//                model.addAttribute("message", "修改密码成功,请重新登录");
-//                SecurityUtils.getSubject().logout();
-
-                Subject subject = SecurityUtils.getSubject();
-                SystemAuthorizingRealm.Principal principal = (SystemAuthorizingRealm.Principal) subject.getPrincipal();
-                PrincipalCollection principalCollection = subject.getPrincipals();
-                principal.setFirstFlag(false);
-                String realmName = principalCollection.getRealmNames().iterator().next();
-                PrincipalCollection newPrincipalCollection =
-                        new SimplePrincipalCollection(principal, realmName);
-                subject.runAs(newPrincipalCollection);
-                return  "redirect:/a/home";
+
+            if ("home".equals(request.getParameter("home"))) {
+                // 重定向到首页,同时携带消息
+                redirectAttributes.addFlashAttribute("message", "修改密码成功,请重新登录");
+                return "redirect:/a/home"; // 重定向到首页
             }
-            return "modules/sys/userInfo";
+
+            return "redirect:/sys/userInfo"; // 如果没有跳转到首页,则返回用户信息页面
         }
+
+        // 如果没有提交密码,返回修改密码页面
         user.setHome(request.getParameter("home"));
         model.addAttribute("user", user);
         model.addAttribute("home", home);
         return "modules/sys/userModifyPwd";
     }
+
     /**
      * 更换手机号
      */

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

@@ -462,7 +462,7 @@
 		/*,ifnull(pfp.status,0) as "filingProjectStatus"*/
 		,(case when a.paper_filing_status = '10' then 10 when a.paper_filing_status = '6' then '6' when a.paper_filing_status = '7' then '7' else ifnull(pfp.status,0) end) as "filingProjectStatus"
 		,pfp.audit_pass_date as "filingBatchAuditPassDate"
-		,prd.audit_pass_date as "prdAuditDate"
+		,prd.first_audit_date as "prdAuditDate"
 		,cb.case_process_id as "caseProcessId"
 		,cb.case_type as "caseType"
 		,cb.case_create_by as "caseCreateBy"

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

@@ -2264,8 +2264,8 @@
 	<select id="getProjectReportedListByAdvent" 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
-			,date_add(date_format(prd.audit_pass_date, '%Y-%m-%d'),interval #{endingCount} day) as adventDateDate
+			,date_add(date_format(prd.first_audit_date, '%Y-%m-%d'),interval #{endingCount} day) as adventDate
+			,date_add(date_format(prd.first_audit_date, '%Y-%m-%d'),interval #{endingCount} day) as adventDateDate
 			,a.project_type as "projectType"
 			FROM rural_project_records a
 			left join work_contract_info wci on a.contract_id = wci.id
@@ -2687,8 +2687,8 @@
 	<select id="getProjectRecordListByAdventExamine" 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
-		,date_add(date_format(prd.audit_pass_date, '%Y-%m-%d'),interval #{endingCount} day) as adventDateDate
+		,date_add(date_format(prd.first_audit_date, '%Y-%m-%d'),interval #{endingCount} day) as adventDate
+		,date_add(date_format(prd.first_audit_date, '%Y-%m-%d'),interval #{endingCount} day) as adventDateDate
 		,a.project_type as "projectType"
 		FROM rural_project_records a
 		left join work_contract_info wci on a.contract_id = wci.id
@@ -4989,8 +4989,8 @@
 	<select id="getBatchArchiveProjectReportedList" 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
-		,date_add(date_format(prd.audit_pass_date, '%Y-%m-%d'),interval #{endingCount} day) as adventDateDate
+		,date_add(date_format(prd.first_audit_date, '%Y-%m-%d'),interval #{endingCount} day) as adventDate
+		,date_add(date_format(prd.first_audit_date, '%Y-%m-%d'),interval #{endingCount} day) as adventDateDate
 		,ifnull(pfp.status,0) as "batchArchiveStatus"
 		FROM rural_project_records a
 		LEFT JOIN project_flingbatch_relation pfp on pfp.project_id=a.id and pfp.del_flag = 0

BIN
src/main/webapp/dot/审核类项目批量导入模板.xlsx


BIN
src/main/webapp/dot/造价B类项目批量导入模板.xlsx


+ 5 - 3
src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/all/ruralProjectMessageAllList.jsp

@@ -1099,9 +1099,11 @@
 
 
 						<button class="layui-btn layui-btn-sm" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"> 刷新</button>
-						<div class=" layui-btn-sm" style="float: right;width: 300px">
-							<span style="color: #999999">咨询营业收入:${moneyAll}(万元)</span>
-						</div>
+						<shiro:hasPermission name="ruralProject:ruralCostProjectMessage:leader">
+							<div class=" layui-btn-sm" style="float: right;width: 300px">
+								<span style="color: #999999">咨询营业收入:${moneyAll}(万元)</span>
+							</div>
+						</shiro:hasPermission>
 					</div>
 					<shiro:hasPermission name="ruralProject:ruralCostProjectMessage:reportSwitch">
 						<div style="float: right;margin-right: 30px;">

+ 1 - 0
src/main/webapp/webpage/modules/sys/sysIndex.jsp

@@ -180,6 +180,7 @@
                         },
                         submitHandler: function(form){
                             loading('正在提交,请稍等...');
+                            console.log(123213123)
                             form.submit();
 
                         },

+ 5 - 2
src/main/webapp/webpage/modules/sys/userModifyPwd.jsp

@@ -59,7 +59,7 @@
                 var password = $.md5(($("#oldPassword").val()));
                 $.ajax({
                     type: "post",
-                    url: "${ctx}/sys/register/validatePassword",
+                    url: "${ctx}/sys/register/changePasswordValidatePassword",
                     data: {'loginName':'${user.loginName}','password':password},
                     dataType:"text",
                     success: function(data) {
@@ -92,7 +92,10 @@
 	<form:form id="inputForm" modelAttribute="user" action="${ctx}/sys/user/modifyPwd"  method="post" class="form-horizontal form-group">
 		<form:hidden path="id"/>
 		<form:hidden path="home"/>
-		<sys:message hideType="1" content="${message}"/>
+		<!-- 显示后端返回的 message -->
+		<div th:if="${message}">
+			<span th:text="${message}"></span>
+		</div>
 		<div class="container1">
 			<c:if test="${ not empty home}">
 				<div  style="margin-top: 10px">

+ 10 - 3
src/main/webapp/webpage/modules/workcontractinfo/workContractInfoAllList.jsp

@@ -856,7 +856,7 @@
 								xml +="<a href=\"${ctx}/workcontractrecord/workContractRecord/delete?id=" + d.contrractRecordId + "\" onclick=\"return confirmx('确认要删除该合同归档申请吗?', this.href)\"   class=\"op-btn op-btn-delete\"><i class=\"fa fa-trash\"></i> 删除</a>";*/
 						}
                         //合同借用
-                        else if(d.contrractRecordStatus =="5"){
+                        else if(d.contrractRecordStatus =="5" && d.leader != undefined && d.leader == "1"){
 							if((d.borrowStatus != undefined && d.borrowStatus == "0")|| d.borrowStatus == "4" || (d.giveStatus != undefined && d.giveStatus == "5"))
 							{
 								xml += "<a href=\"javascript:void(0)\" onclick=\"contractOpenDialogres('借用申请', '${ctx}/workContractBorrow/workContractBorrow/form?id="+ d.id +"&tabId=4&pageFlag=contractAll','95%','95%')\" style='background-color: #1E9FFF' class=\"layui-btn layui-btn-xs layui-bg-orange\" > 借用</a>";
@@ -875,8 +875,11 @@
 							if(d.giveBorrow != undefined && d.giveBorrow == "1"){
 								xml +="<a href=\"${ctx}/workContractBorrow/workContractBorrow/updateGiveDate?id=" + d.borrowId + "&home=contractAll&pageFlag=contractAll\" onclick=\"return confirmx('确认归还该合同信息吗?', this.href)\"   class=\"layui-btn layui-btn-xs layui-bg-orange\"> 归还合同</a>";
 							}
-							//统计按钮
-							xml += "<a href=\"javascript:void(0)\" onclick=\"openDialogView('开票数据统计', '${ctx}/workcontractinfo/workContractInfo/getWorkContractStatisticDetailList?id="+ d.id +"','95%','95%')\" style='background-color: #1E9FFF' class=\"layui-btn layui-btn-xs\" > 统计</a>";
+
+							if(d.leader != undefined && d.leader == "1"){
+								//统计按钮
+								xml += "<a href=\"javascript:void(0)\" onclick=\"openDialogView('开票数据统计', '${ctx}/workcontractinfo/workContractInfo/getWorkContractStatisticDetailList?id="+ d.id +"','95%','95%')\" style='background-color: #1E9FFF' class=\"layui-btn layui-btn-xs\" > 统计</a>";
+							}
 						}
                         xml+="</div>"
                         return xml;
@@ -962,6 +965,10 @@
 						</c:choose>
 					</shiro:hasPermission>
 					<shiro:hasPermission name="workcontractrecord:workContractRecord:revert">,"giveBorrow":	<c:choose><c:when test="${workContractInfo.borrowStatus == '5' && workContractInfo.giveStatus != '5'}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose></shiro:hasPermission>
+					<shiro:hasPermission name="workcontractinfo:workContractInfo:leader">,
+					"leader":"1"
+					</shiro:hasPermission>
+
                 }
                 </c:forEach>
                 </c:if>