Selaa lähdekoodia

1.用户王镇 首页查看不到数据
2.A类项目报告签发 总审审批页面需添加 项目组成员模块
3.合同流程修改,目前是部门主任审核,改为部门主任审核完陈总(总经理角色)审核

user5 3 vuotta sitten
vanhempi
commit
b44a4b6e62

+ 10 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/DownloadProjectRecords.java

@@ -105,6 +105,7 @@ public class DownloadProjectRecords extends ActEntity<DownloadProjectRecords> {
 	private List<String> typeList;
 	private String flagArchive;  //归档员判定
 	private String projectProperties;//投资性质
+	private String money; //收费金额
 
 	@NotNull(message = "委托方联系人不能为空")
 	private List<WorkClientLinkman> workClientLinkmanList;		// 委托方联系人
@@ -1814,4 +1815,13 @@ public class DownloadProjectRecords extends ActEntity<DownloadProjectRecords> {
 	public void setExeedRecordDay(String exeedRecordDay) {
 		this.exeedRecordDay = exeedRecordDay;
 	}
+
+	@ExcelField(title="咨询营业收入(万元)", align=2, sort=5)
+	public String getMoney() {
+		return money;
+	}
+
+	public void setMoney(String money) {
+		this.money = money;
+	}
 }

+ 10 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/DownloadProjectReporteds.java

@@ -245,6 +245,7 @@ public class DownloadProjectReporteds extends ActEntity<DownloadProjectReporteds
 	private String dataDeficiency;		//资料缺失
 	private String elseRecordDay;		//超期未归档天数
 	private String exeedRecordDay;		//超期归档天数
+	private String money; //收费金额
 
 
 
@@ -1814,4 +1815,13 @@ public class DownloadProjectReporteds extends ActEntity<DownloadProjectReporteds
 	public void setExeedRecordDay(String exeedRecordDay) {
 		this.exeedRecordDay = exeedRecordDay;
 	}
+
+	@ExcelField(title="咨询营业收入(万元)", align=2, sort=5)
+	public String getMoney() {
+		return money;
+	}
+
+	public void setMoney(String money) {
+		this.money = money;
+	}
 }

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

@@ -1842,7 +1842,7 @@ public class RuralProjectRecords extends ActEntity<RuralProjectRecords> {
 	public void setCompletionStatus(String completionStatus) {
 		this.completionStatus = completionStatus;
 	}
-
+	@ExcelField(title="咨询营业收入(万元)", align=2, sort=20)
 	public String getMoney() {
 		return money;
 	}

+ 18 - 0
src/main/java/com/jeeplus/modules/workcontractinfo/entity/WorkContractInfo.java

@@ -144,6 +144,8 @@ public class WorkContractInfo extends ActEntity<WorkContractInfo> {
 	private String fileNumTow;   //确认档案号
 	private Integer notifyFlag; //代办判定条件
 	private String notifyId; //代办判定条件
+	private Integer newContractNotifyFlagAudit; //新合同(审核)代办判定条件
+	private Integer newContractNotifyFlag; //新合同代办判定条件
 	private Integer recordNotifyFlag; //归档代办判定条件
 	private String recordNotifyId; //归档代办判定条件
 	private Integer borrowNotifyFlag; //借用代办判定条件
@@ -1127,4 +1129,20 @@ public class WorkContractInfo extends ActEntity<WorkContractInfo> {
 	public void setCreateUserOfficeName(String createUserOfficeName) {
 		this.createUserOfficeName = createUserOfficeName;
 	}
+
+	public Integer getNewContractNotifyFlagAudit() {
+		return newContractNotifyFlagAudit;
+	}
+
+	public void setNewContractNotifyFlagAudit(Integer newContractNotifyFlagAudit) {
+		this.newContractNotifyFlagAudit = newContractNotifyFlagAudit;
+	}
+
+	public Integer getNewContractNotifyFlag() {
+		return newContractNotifyFlag;
+	}
+
+	public void setNewContractNotifyFlag(Integer newContractNotifyFlag) {
+		this.newContractNotifyFlag = newContractNotifyFlag;
+	}
 }

+ 588 - 0
src/main/java/com/jeeplus/modules/workcontractinfo/service/WorkContractInfoService.java

@@ -797,6 +797,208 @@ public class WorkContractInfoService extends CrudService<WorkContractInfoDao, Wo
 		logger.info("合同送审任务结束,共耗时:[" + (end-begin) / 1000 + "]秒,流程启动时间:"+(s2-s1)+"ms");
 		return "";
 	}
+
+	@Transactional(readOnly = false)
+	public synchronized String newSave(WorkContractInfo workContractInfo,Map<String, Object> variables, String contextPath,String urls) {
+		long begin = System.currentTimeMillis();
+		String processInstanceId = workContractInfo.getProcessInstanceId();
+		String contractTypeCode = workContractInfo.getContractTypeDoc();
+		String contractType = "";
+		String contractTypeId = "";
+		List<MainDictDetail> list1 = DictUtils.getMainDictList("contract_info_type");
+		for(MainDictDetail mainDictDetail:list1){
+			if(mainDictDetail.getValue().equals(contractTypeCode)){
+				contractType = mainDictDetail.getLabel();
+				contractTypeId = mainDictDetail.getValue();
+			}
+		}
+		if (StringUtils.isBlank(workContractInfo.getContractNum())) {
+			//根据合同类型生成合同编号
+			String type = null;
+			if("100".equals(contractTypeId)){
+				type = WorkContractInfo.SERIAL_CONSULT;
+			}else if("101".equals(contractTypeId)){
+				type = WorkContractInfo.SERIAL_CHECK;
+			}else if("102".equals(contractTypeId)){
+				type = WorkContractInfo.SERIAL_AGENCY;
+			}else if("103".equals(contractTypeId)){
+				type = WorkContractInfo.SERIAL_AUDIT;
+			}else {
+				type = WorkContractInfo.SERIAL_ELST;
+			}
+			synchronized (SYN_BYTE){
+				workContractInfo.setContractNum(serialNumTplService.genSerialNum(UserUtils.get(workContractInfo.getCreateBy().getId()).getCompany(), type).replace("TYPE",contractType));
+			}
+
+
+			/*//生成合同编号
+			workContractInfo.setContractNum(serialNumTplService.genSerialNumNotNum(UserUtils.get(workContractInfo.getCreateBy().getId()).getCompany(), WorkContractInfo.SERIAL_CONSULT).replace("TYPE",contractType));
+			//根据当前合同编号查询对应最后一条合同编号
+			String contractLastNumStr = dao.getContractLastNum(workContractInfo.getContractNum());
+			if(StringUtils.isNotBlank(contractLastNumStr)) {
+				//获取最新的后缀编号
+				Integer num = Integer.parseInt(contractLastNumStr.substring(workContractInfo.getContractNum().length(), contractLastNumStr.length())) + 1;
+				//更新合同编号
+				workContractInfo.setContractNum(workContractInfo.getContractNum() + String.format("%04d", num));
+			}else {
+				//更新合同编号
+				workContractInfo.setContractNum(workContractInfo.getContractNum() + String.format("%04d", 1));
+			}*/
+			long end2 = System.currentTimeMillis();
+			logger.info("合同送审-项目编码设置任务结束,共耗时:[" + (end2-begin) / 1000 + "]秒");
+		}
+		long begin2 = System.currentTimeMillis();
+		if (StringUtils.isBlank(workContractInfo.getContractNumPath())) {
+			String num=workContractInfo.getContractNum();
+			long time = System.currentTimeMillis();
+			String picNamePhoto = time + ".png";
+			ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream();
+			WordToPic.TextToAliyunPic(num, 500, 80, 25,new Color(0,188,212), byteArrayOutputStream);
+
+			byte[] buf = byteArrayOutputStream.toByteArray();
+			ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(buf);
+			OSSClientUtil ossUtil = new OSSClientUtil();
+			ossUtil.uploadFile2OSS(byteArrayInputStream, Global.getContractNumPath(), picNamePhoto);
+			workContractInfo.setContractNumPath(Global.getAliyunUrl()+"/"+Global.getContractNumPath()+picNamePhoto);
+		}
+		workContractInfo.setContractState("2");
+		this.save(workContractInfo);
+		Office office = UserUtils.getUser().getOffice();
+		String title = "合同【"+workContractInfo.getName() +"】登记待审批";
+		String str = "合同【"+workContractInfo.getName() +"】登记待审批,合同编号:"+workContractInfo.getContractNum();
+		identityService.setAuthenticatedUserId(workContractInfo.getCreateBy().getId());
+		String businessKey = workContractInfo.getId().toString();
+		WorkActivityMenu workActivityMenu = workActivityMenuService.findByParentAndOffice("zth3125f1f194c82bdea93555c750905", office);
+		// 启动流程
+		String processType = workActivityMenu.getProcessType();
+		StringBuffer buffer = new StringBuffer();
+		Activity activity = new Activity();
+		WorkProjectNotify workProjectNotify = UtilNotify
+				.saveNotify(workContractInfo.getId(),
+						null,
+						workContractInfo.getCompanyId(),
+						title,
+						str,
+						"143",
+						"0",
+						"待审批",
+						""
+				);
+		List<User> users = new ArrayList<>();
+		String officeId = UserUtils.getSelectOffice().getId();
+		List<User>  bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,office.getId(),"2",workContractInfo.getCreateBy());
+//		List<User>  scyfglbzrs = UserUtils.getByRoleActivityEnname("scyfglbzr",1,office.getId(),"2",workContractInfo.getCreateBy());
+		//获取总经理人员信息
+		List<User>  zjls = UserUtils.getByRoleActivityEnname("zjl",3,office.getId(),"2",workContractInfo.getCreateBy());
+		long end3 = System.currentTimeMillis();
+		logger.info("合同送审-查找人员审核任务结束,共耗时:[" + (end3-begin2) / 1000 + "]秒");
+		long begin3 = System.currentTimeMillis();
+		if (StringUtils.isNotBlank(workActivityMenu.getId())) {
+			workProjectNotify.setNotifyRole("");
+			workActivityMenu = workActivityMenuService.get(workActivityMenu.getId());
+			List<Activity> activities = workActivityMenu.getActivities();
+			for (Activity a : activities) {
+				String encount = a.getEncount();
+				String enlist = a.getEnlist();
+				if (a.getRole() != null && StringUtils.isNotBlank(a.getRole().getEnname())) {
+					List enusers = UserUtils.getByRoleActivityEnnames(a.getRole().getEnname(), office.getId(), "2", workContractInfo.getCreateBy());
+					if (enusers.size() == 0) {
+						workContractInfo.setContractState("1");
+						this.save(workContractInfo);
+						return "流程审批人不能为空,角色部门负责人下无用户,请联系管理员!";
+					}
+					variables.put(enlist, enusers);
+					variables.put(encount, enusers.size());
+				}
+				if (a.getDelFlag().equals("0") && a.getCount() == 1) {
+					activity = a;
+				}
+			}
+			buffer.append(activity.getRole().getEnname());
+			if (activity != null && StringUtils.isNotBlank(activity.getId())) {
+				//角色审批
+				if (StringUtils.isNotBlank(activity.getRole().getEnname())) {
+					users = UserUtils.getByRoleActivityEnnames(activity.getRole().getEnname(), office.getId(), "2", workContractInfo.getCreateBy());
+				}
+				//人员审批
+				if (StringUtils.isNotBlank(activity.getUser().getId())) {
+					users.add(activity.getUser());
+				}
+			}
+			workProjectNotify.setId("");
+		} else {
+			processType = "newContractAudit";
+			if(bmzrs==null||bmzrs.size()==0){
+				workContractInfo.setContractState("1");
+				this.save(workContractInfo);
+				return "流程审批人不能为空,角色部门负责人下无用户,请联系管理员!";
+			}
+			if(zjls==null||zjls.size()==0){
+				workContractInfo.setContractState("1");
+				this.save(workContractInfo);
+				return "流程总经理审批人不能为空,总经理审批人下无用户,请联系管理员!";
+			}
+			variables.put("bmzrList", bmzrs);
+			variables.put("bmzrCount",bmzrs.size());
+			users.addAll(bmzrs);
+		}
+
+		for (User u : users) {
+			workProjectNotify.setUser(u);
+			workProjectNotify.setId("");
+			workProjectNotify.setNotifyRole("部门主任审批");
+			workProjectNotifyService
+					.save(workProjectNotify);
+			Map<String,Object> extras = new HashMap<>();
+			extras.put("type","7002");
+			extras.put("id",workProjectNotify.getId());
+			extras.put("procDefKey","143");
+			UserUtils.pushInfoToApp(title,str,extras,u.getId());
+			UserUtils.pushIm(u.getId(),str);
+		}
+		variables.put("type", processType);
+		variables.put("busId", businessKey);
+//		variables.put("count",users.size());
+//		variables.put("assigneeList",users);
+		variables.put("title", "合同名称:" + workContractInfo.getName());//设置标题;
+		long s1 = System.currentTimeMillis();
+		ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processType, businessKey, variables);
+		long s2 = System.currentTimeMillis();
+		workContractInfo.setProcessInstance(processInstance);
+		if (StringUtils.isNotBlank(processInstanceId)) {
+			workActivityProcessService.updateProcessInstanceId(processInstance.getId(),processInstanceId);
+			workActivityProcessService.deleteProcessInstanceId(processInstanceId);
+			workActivityProcessService.deleteProcessIdAuditUsers(processInstanceId);
+		}
+		// 更新流程实例ID
+		workContractInfo.setProcessInstanceId(processInstance.getId());
+		workContractInfoDao.updateProcessInstanceId(workContractInfo);
+		//通知添加流程实例ID
+		workProjectNotify.setProcessInstanceId(processInstance.getId());
+		workProjectNotifyService.save(workProjectNotify);
+
+		List<Activity> list = workActivityMenu.getActivities();
+		if (list != null && list.size() != 0) {
+			workActivityProcessService.saveList(list, processInstance.getId());
+		} else {
+			WorkActivityProcess workActivityProcess = new WorkActivityProcess();
+			workActivityProcess.setProcessKey("newContractAudit");
+			workActivityProcess.setCount(1);
+			workActivityProcess.setProcessInstanceId(processInstance.getId());
+			workActivityProcess.setIsApproval("0");
+			workActivityProcessService.save(workActivityProcess);
+			workActivityProcess.setCount(2);
+			workActivityProcess.setId("");
+			workActivityProcessService.save(workActivityProcess);
+			workActivityProcessService.insertAuditsByType(bmzrs,processInstance.getId(),1,1);
+			workActivityProcessService.insertAuditsByType(zjls,processInstance.getId(),2,0);
+//			workActivityProcessService.insertAuditsByType(fglds,processInstance.getId(),3,0);
+		}
+		long end = System.currentTimeMillis();
+		logger.info("合同送审任务结束,共耗时:[" + (end-begin) / 1000 + "]秒,流程启动时间:"+(s2-s1)+"ms");
+		return "";
+	}
+
 	/**
 	 * 合同变更启动流程
 	 * @param
@@ -1275,6 +1477,392 @@ public class WorkContractInfoService extends CrudService<WorkContractInfoDao, Wo
 		workContractInfoDao.update(workContractInfo);
 		return "保存审核意见成功!";
 	}
+
+	/**
+	 * 工单执行(完成任务)
+	 * @param workContractInfo
+	 * @param
+	 * @return
+	 */
+	@Transactional(readOnly = false)
+	public String newAuditSave(WorkContractInfo workContractInfo,String [] status,List<User> auditUsers){
+		//判断收费标准是否存在
+		if(null!= workContractInfo.getChargeCriterionList() && workContractInfo.getChargeCriterionList().size()>0){
+			String chargeCriterion = String.join(",", workContractInfo.getChargeCriterionList());
+			workContractInfo.setChargeCriterion(chargeCriterion);
+		}
+
+		//Office office = officeService.get(workContractInfo.getChargeCompany());
+		Office office = UserUtils.getUser().getOffice();
+		String str = "合同申请人:" + UserUtils.get(workContractInfo.getCreateBy().getId()).getName() + ",主委托方:" + workContractInfo.getClient().getName() + ",合同所属部门:"+office.getName();
+		String title = "合同名称:"+workContractInfo.getName();
+		// 对不同环节的业务逻辑进行操作
+		String taskDefKey = workContractInfo.getAct().getTaskDefKey();
+		if (!"modifyApply".equals(taskDefKey)) {
+			actTaskService.claim(workContractInfo.getAct().getTaskId(), UserUtils.getUser().getId());
+		}else {
+			workContractInfo.getAct().setFlag("yes");
+			updateWorkContractInfo(workContractInfo);
+		}
+		String comment = "";
+		if (workContractInfo.getContractState().equals("3")){
+			comment = ("yes".equals(workContractInfo.getAct().getFlag())?"[重新申请] ":"[已撤销] ");
+		}else {
+			if(StringUtils.isNotBlank(workContractInfo.getAct().getComment())){
+				comment = ("yes".equals(workContractInfo.getAct().getFlag())?"[同意] ":"[驳回] ")+workContractInfo.getAct().getComment();
+			}else{
+				comment = ("yes".equals(workContractInfo.getAct().getFlag())?"[同意] ":"[驳回] ");
+			}
+		}
+		//yes 的时候状态为审核通过 否则为未通过
+		workContractInfo.setContractState(("yes".equals(workContractInfo.getAct().getFlag())?"2":"4"));
+		//String buffer = UserUtils.getRoleActivityEnname(workContractInfo.getCompanyId(),workContractInfo.getCreateBy());
+		Map<String, Object> vars = Maps.newHashMap();
+		//业务逻辑对应的条件表达式
+		String exp = "";
+		String taskCount = "";
+		String notifyRole = "";
+		int key = 0;
+		String enname = "";
+		List<Activity> activitieList = activityService.getByProcessInstanceId(workContractInfo.getProcessInstanceId());
+		WorkActivityMenu workActivityMenu = new WorkActivityMenu();
+		if (activitieList != null && activitieList.size() != 0) {
+			Iterator<Activity> iterator = activitieList.iterator();
+			while (iterator.hasNext()){
+				Activity activityInfo = iterator.next();
+				if (!"newContractAudit".equals(activityInfo.getProcessKey())){
+					iterator.remove();
+				}
+			}
+			workActivityMenu.setProcessType(activitieList.get(0).getProcessKey());
+			workActivityMenu.setActivities(activitieList);
+		}
+		/*if (activitieList!=null && activitieList.size()!=0){
+			workActivityMenu.setProcessType(activitieList.get(0).getProcessKey());
+			workActivityMenu.setActivities(activitieList);
+		}*/
+
+		WorkActivityProcess workActivityProcess = new WorkActivityProcess();
+		WorkActivityProcess selectProcess = new WorkActivityProcess();
+		selectProcess.setProcessInstanceId(workContractInfo.getProcessInstanceId());
+		List<WorkActivityProcess> workActivityProcesses = workActivityProcessService.findList(selectProcess);
+		List<Activity> activities = workActivityMenu.getActivities();
+		if (StringUtils.isNotBlank(workActivityMenu.getProcessType()) && !workActivityMenu.getProcessType().equals("newContractAudit")) {
+			key = 1;
+			for (int i =0;i<workActivityProcesses.size();i++){
+				WorkActivityProcess activityProcess = workActivityProcesses.get(i);
+				if (taskDefKey.equals(activityProcess.getActivityTask()) && !taskDefKey.equals("modifyApply")) {
+					taskCount = activityProcess.getCount()+"";
+					workActivityProcess = activityProcess;
+					if (!workActivityProcess.getIsApproval().equals("0")) {
+						workActivityProcess.setId("");
+					}
+					exp = "pass";
+					if (!"yes".equals(workContractInfo.getAct().getFlag())) {
+						workContractInfo.setContractState("4");
+						workActivityProcess.setIsApproval("2");
+						String returnBack = "-1";
+						for (Activity activity : activities) {
+							if (activity.getCount() == activityProcess.getCount()) {
+								notifyRole = activity.getName();
+								returnBack = activity.getReturnBack();
+								break;
+							}
+						}
+						if (returnBack.equals("0")) {
+							workActivityProcess.setId("");
+						}
+
+					} else {
+						workActivityProcess.setIsApproval("1");
+					}
+				}else if(taskDefKey.equals("modifyApply")){
+					notifyRole = "调整申请";
+					taskCount = "0";
+					exp = "pass";
+					workActivityProcess.setId("");
+					workActivityProcess.setCount(0);
+					if (!"yes".equals(workContractInfo.getAct().getFlag())) {
+						workContractInfo.setContractState("3");
+						workActivityProcess.setIsApproval("2");
+					} else {
+						workActivityProcess.setIsApproval("1");
+					}
+					break;
+				}
+			}
+		}else {
+			workActivityMenu.setProcessType("newContractAudit");
+			for (int i =0;i<workActivityProcesses.size();i++) {
+				WorkActivityProcess activityProcess = workActivityProcesses.get(i);
+				String count = activityProcess.getCount() + "";
+				workActivityProcess = activityProcess;
+				if (!workActivityProcess.getIsApproval().equals("0")){
+					workActivityProcess.setId("");
+				}
+				// 审核环节
+				if ("bmzr".equals(taskDefKey) && count.contains("1")) {
+					taskCount = "1";
+					exp = "pass";
+					if ("yes".equals(workContractInfo.getAct().getFlag())) {
+						workActivityProcessService.insertAuditsByType(auditUsers,workContractInfo.getProcessInstanceId(),2,1);
+
+						notifyRole = "总经理审批";
+						workActivityProcess.setIsApproval("1");
+						enname = "zjl";
+						vars.put("zjlList", auditUsers);
+						vars.put("zjlCount",auditUsers.size());
+					} else {
+						notifyRole = "调整报告";
+						workActivityProcess.setIsApproval("2");
+					}
+				} else if ("zjl".equals(taskDefKey) && count.contains("2")) {
+					taskCount = "2";
+					exp = "pass";
+					if ("yes".equals(workContractInfo.getAct().getFlag())) {
+						notifyRole = "审批通过";
+						workActivityProcess.setIsApproval("1");
+					} else {
+						notifyRole = "调整合同信息";
+						workActivityProcess.setIsApproval("2");
+					}
+					break;
+				} else if ("modifyApply".equals(taskDefKey)&& count.contains("0")) {
+					notifyRole = "部门主任审批";
+					taskCount = "0";
+					exp = "pass";
+					workActivityProcess.setCount(0);
+					enname = "bmzr";
+					if (!"yes".equals(workContractInfo.getAct().getFlag())) {
+						workContractInfo.setContractState("3");
+					}
+					break;
+				}
+			}
+		}
+		//workActivityProcessService.updateProcess(workActivityProcess,workActivityMenu,key,taskCount,workContractInfo.getProcessInstanceId(),taskDefKey,"modifyApply",workContractInfo.getAct().getFlag(),comment, activities);
+		// 设置意见
+		workContractInfo.getAct().setComment(("yes".equals(workContractInfo.getAct().getFlag()) ? "[同意] " : "[驳回] ") + workContractInfo.getAct().getComment());
+		workContractInfo.preUpdate();
+		// 提交流程任务
+		vars.put(exp, "yes".equals(workContractInfo.getAct().getFlag())? true : false);
+		vars.put("passs", true);
+		workActivityProcessService.updateProcess(workActivityProcess,workActivityMenu,key,taskCount,workContractInfo.getProcessInstanceId(),taskDefKey,"modifyApply",workContractInfo.getAct().getFlag(),comment, activities);
+		// 提交流程任务
+		actTaskService.complete(workContractInfo.getAct().getTaskId(), workContractInfo.getAct().getProcInsId(), workContractInfo.getAct().getComment(), vars);
+		boolean state = actTaskService.isProcessEnd(workContractInfo.getAct().getProcInsId());
+		List<User> users = new ArrayList<>();
+		List<User> userList = new ArrayList<>();
+		List<User> zjlList = dao.getUserByRole("总经理");
+		if(!state) {
+			str = "合同编号:" + workContractInfo.getContractNum() + ",主委托方:" + workContractInfo.getClient().getName() + ",合同所属部门:"+office.getName();
+			title = "合同名称:"+workContractInfo.getName();
+			users.add(workContractInfo.getCreateBy());
+			if ("yes".equals(workContractInfo.getAct().getFlag())) {
+				String titleStr = "合同【"+workContractInfo.getName() +"】登记完成";
+				String content = "合同【"+workContractInfo.getName() +"】登记完成,合同编号:" + workContractInfo.getContractNum();
+
+				workContractInfo.setContractState("5");
+				WorkProjectNotify notify = new WorkProjectNotify();
+				notify.setNotifyId(workContractInfo.getId());
+				userList = workProjectNotifyService.readByNotifyId(notify);
+				workProjectNotifyService
+						.save(UtilNotify
+								.saveNotify(workContractInfo.getId(),
+										workContractInfo.getCreateBy(),
+										workContractInfo.getCompanyId(),
+										titleStr,
+										content,
+										"143",
+										"0",
+										"待通知",
+										notifyRole));
+				for (User user : zjlList) {
+					workProjectNotifyService
+							.save(UtilNotify
+									.saveNotify(workContractInfo.getId(),
+											user,
+											workContractInfo.getCompanyId(),
+											titleStr,
+											content,
+											"143",
+											"0",
+											"待通知",
+											notifyRole));
+				}
+
+			} else {
+				WorkProjectNotify notify = new WorkProjectNotify();
+				notify.setNotifyId(workContractInfo.getId());
+				userList = workProjectNotifyService.readByNotifyId(notify);
+				if (StringUtils.isNotBlank(workContractInfo.getContractState()) && !("3").equals(workContractInfo.getContractState())){
+					workContractInfo.setContractState("4");
+					workProjectNotifyService
+							.save(UtilNotify
+									.saveNotify(workContractInfo.getId(),
+											workContractInfo.getCreateBy(),
+											workContractInfo.getCompanyId(),
+											title,
+											str,
+											"143",
+											"0",
+											"待通知",
+											notifyRole));
+					for (User user : zjlList) {
+						workProjectNotifyService
+								.save(UtilNotify
+										.saveNotify(workContractInfo.getId(),
+												user,
+												workContractInfo.getCompanyId(),
+												title,
+												str,
+												"143",
+												"0",
+												"待通知",
+												notifyRole));
+					}
+				}
+			}
+			workActivityProcessService.deleteProcessIdAuditUsers(workContractInfo.getProcessInstanceId());
+		}else{
+			if (StringUtils.isNotBlank(workActivityMenu.getProcessType()) && !workActivityMenu.getProcessType().equals("newContractAudit")) {
+				WorkProjectNotify notify = new WorkProjectNotify();
+				notify.setNotifyId(workContractInfo.getId());
+				userList = workProjectNotifyService.readByNotifyId(notify);
+				//users.addAll(userList);
+				WorkProjectNotify workProjectNotify = UtilNotify
+						.saveNotify(workContractInfo.getId(),
+								new User(),
+								workContractInfo.getCompanyId(),
+								title,
+								str,
+								"143",
+								"0",
+								"待审批",
+								notifyRole);
+				List<WorkProjectNotify> workProjectNotifys = activityService.getByFlagAndTaskDefKeyList(
+						activities,
+						workProjectNotify,
+						taskDefKey,
+						workContractInfo.getAct().getFlag(),
+						taskCount,
+						workContractInfo.getCreateBy(),
+						workContractInfo.getChargeCompany(),
+						"2");
+				for (WorkProjectNotify workProjectNotify1:workProjectNotifys){
+					users.add(workProjectNotify1.getUser());
+					workProjectNotify1.setId("");
+					workProjectNotify1.setIsNewRecord(false);
+					workProjectNotifyService
+							.save(workProjectNotify1);
+					if (!"modifyApply".equals(taskDefKey)){
+						Map<String,Object> extras = new HashMap<>();
+						if ("gzr".equals(taskDefKey)){
+							extras.put("type","7001");
+						}else {
+							extras.put("type","7002");
+						}
+						extras.put("id",workProjectNotify.getId());
+						extras.put("procDefKey","143");
+						UserUtils.pushInfoToApp(title,str,extras,workProjectNotify1.getUser().getId());
+
+					}
+				}
+
+			} else {
+				if (!"yes".equals(workContractInfo.getAct().getFlag())) {//驳回待办展示
+					title = "合同【"+workContractInfo.getName() +"】登记被驳回";
+					str = "合同【"+workContractInfo.getName() +"】登记被驳回,请选择重新申请或作废";
+					WorkProjectNotify notify = new WorkProjectNotify();
+					notify.setNotifyId(workContractInfo.getId());
+					userList = workProjectNotifyService.readByNotifyId(notify);
+					//users.addAll(userList);
+					workProjectNotifyService
+							.save(UtilNotify
+									.saveNotify(workContractInfo.getId(),
+											workContractInfo.getCreateBy(),
+											workContractInfo.getCompanyId(),
+											title,
+											str,
+											"143",
+											"0",
+											"重新申请",
+											notifyRole));
+					users.add( workContractInfo.getCreateBy());
+				} else {
+					if (StringUtils.isNotBlank(enname)) {//驳回重新申请待办展示
+						title = "合同【"+workContractInfo.getName() +"】登记,待审批";
+						str = "合同【"+workContractInfo.getName() +"】登记,待审批";
+						WorkProjectNotify notify = new WorkProjectNotify();
+						notify.setNotifyId(workContractInfo.getId());
+						userList = workProjectNotifyService.readByNotifyId(notify);
+						//users.addAll(userList1);
+						WorkProjectNotify workProjectNotify = UtilNotify
+								.saveNotify(workContractInfo.getId(),
+										new User(),
+										workContractInfo.getCompanyId(),
+										title,
+										str,
+										"143",
+										"0",
+										"待审批",
+										notifyRole);
+						users.addAll(auditUsers);
+						for (User user1:auditUsers){
+							workProjectNotify.setUser(user1);
+							workProjectNotify.setId("");
+							workProjectNotify.setIsNewRecord(false);
+							workProjectNotifyService
+									.save(workProjectNotify);
+							if (!"modifyApply".equals(taskDefKey)){
+								Map<String,Object> extras = new HashMap<>();
+								if ("gzr".equals(taskDefKey)){
+									extras.put("type","7001");
+								}else {
+									extras.put("type","7002");
+								}
+								extras.put("id",workProjectNotify.getId());
+								extras.put("procDefKey","143");
+								UserUtils.pushInfoToApp(title,str,extras,user1.getId());
+
+							}
+						}
+					}else {
+						WorkProjectNotify notify = new WorkProjectNotify();
+						notify.setNotifyId(workContractInfo.getId());
+						userList = workProjectNotifyService.readByNotifyId(notify);
+						users.addAll(userList);
+						users.add(workContractInfo.getCreateBy());
+						workProjectNotifyService
+								.save(UtilNotify
+										.saveNotify(workContractInfo.getId(),
+												workContractInfo.getCreateBy(),
+												workContractInfo.getCompanyId(),
+												title,
+												str,
+												"143",
+												"0",
+												"重新申请",
+												notifyRole));
+					}
+				}
+			}
+		}
+		if (users!=null && users.size()!=0) {
+			for (User u : users) {
+				UserUtils.pushIm(u.getId(),str);
+			}
+		}
+		if (userList!=null && userList.size()!=0) {
+			for (User u : userList) {
+				UserUtils.pushMeIm(u.getId());
+			}
+		}
+		workContractInfoDao.update(workContractInfo);
+		return "保存审核意见成功!";
+	}
+
+
 	/**
 	 * 工单执行(完成任务)
 	 * @param workContractInfo

+ 232 - 0
src/main/java/com/jeeplus/modules/workcontractinfo/web/WorkContractInfoController.java

@@ -203,6 +203,10 @@ public class WorkContractInfoController extends BaseController {
         workProjectNotify.setType("93");
         //查询所有需要当前登录人进行处理的项目信息
         List<WorkProjectNotify> borrowNotifyList = workProjectNotifyService.findList(recordNotify);
+        //添加新合同信息
+        workProjectNotify.setType("143");
+        //查询所有需要当前登录人进行处理的项目信息
+        List<WorkProjectNotify> newContractNotifyList = workProjectNotifyService.findList(workProjectNotify);
 
         //查询合同借用信息状态
         if(list.size()>0){
@@ -244,6 +248,18 @@ public class WorkContractInfoController extends BaseController {
                         break;
                     }
                 }
+                for (WorkProjectNotify notify: newContractNotifyList) {
+                    if(notify.getNotifyId().equals(info.getId())){
+                        info.setNotifyId(notify.getId());
+                        if("重新申请".equals(notify.getRemarks()) && !"1".equals(notify.getStatus())){
+                            info.setNewContractNotifyFlag(1);
+                        }
+                        if("待审批".equals(notify.getRemarks()) && !"1".equals(notify.getStatus())){
+                            info.setNewContractNotifyFlagAudit(1);
+                        }
+                        break;
+                    }
+                }
                 for (WorkProjectNotify notify: recordNotifyList) {
                     if(notify.getNotifyId().equals(info.getContrractRecordId())){
                         info.setRecordNotifyId(notify.getId());
@@ -497,6 +513,44 @@ public class WorkContractInfoController extends BaseController {
         return "modules/workcontractinfo/" + view;
     }
 
+
+    /**
+     * 查看,增加,编辑合同管理表单页面
+     */
+    @RequiresPermissions(value = {"workcontractinfo:workContractInfo:view", "workcontractinfo:workContractInfo:add", "workcontractinfo:workContractInfo:edit"}, logical = Logical.OR)
+    @RequestMapping(value = "newForm")
+    public String newForm(WorkContractInfo workContractInfo, Model model) {
+        //getSort(workContractInfo);
+        String view = "workContractInfoFormAdd";
+        //驳回状态数据操作
+        if (StringUtils.isNotBlank(workContractInfo.getId())&&("4").equals(workContractInfo.getContractState())) {
+            ProcessInstance processInstance = actTaskService.getProcIns(workContractInfo.getProcessInstanceId());
+            if (processInstance != null) {
+                Task taskInfok = actTaskService.getCurrentTaskInfo(processInstance);
+                Act act = new Act();
+                act.setTaskId(taskInfok.getId());
+                act.setTaskName(taskInfok.getName());
+                act.setTaskDefKey(taskInfok.getTaskDefinitionKey());
+                act.setProcDefId(taskInfok.getProcessDefinitionId());
+                act.setProcInsId(taskInfok.getProcessInstanceId());
+                act.setTask(taskInfok);
+                workContractInfo.setAct(act);
+            }
+            view = "workContractInfoFormEdit";
+        }
+        if(StringUtils.isBlank(workContractInfo.getId())){
+            Office office = UserUtils.getSelectOffice();
+            workContractInfo.setChargeCompany(office.getId());
+            workContractInfo.setChargeCompanyName(office.getTopCompany());
+            workContractInfo.setRecordState("1");
+        }
+        if(StringUtils.isNotBlank(workContractInfo.getChargeCriterion())){
+            workContractInfo.setChargeCriterionList(Arrays.asList(workContractInfo.getChargeCriterion().split(",")));
+        }
+        model.addAttribute("workContractInfo", workContractInfo);
+        return "modules/workcontractinfo/newWorkContract/" + view;
+    }
+
     /**
      * admin修改合同管理表单页面
      */
@@ -985,6 +1039,127 @@ public class WorkContractInfoController extends BaseController {
         return "redirect:" + Global.getAdminPath() + "/workcontractinfo/workContractInfo/?repage";
     }
 
+    /**
+     * 保存合同管理
+     * 启动流程信息
+     */
+//	@RequiresPermissions(value={"workcontractinfo:workContractInfo:add","workcontractinfo:workContractInfo:edit"},logical=Logical.OR)
+    @RequestMapping(value = "newSave")
+    public String newSave(WorkContractInfo workContractInfo, Model model,
+                       RedirectAttributes redirectAttributes) throws Exception {
+        if (!beanValidator(model, workContractInfo)) {
+            return form(workContractInfo, model);
+        }
+        String url = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort();
+        String contextPath = request.getContextPath();
+        try {
+            //判断是否有总合同
+            if(!Strings.isNullOrEmpty(workContractInfo.getTotalContractId()) && !"0".equals(workContractInfo.getTotalContractId())){
+                workContractInfo.setIsTotalName("子合同");
+                workContractInfo.setIsTotal(null);
+            }else{
+                workContractInfo.setIsTotalName("总合同");
+                workContractInfo.setIsTotal("1");
+                workContractInfo.setTotalContractId("0");
+                //workContractInfo.setCommonFlag(IdGen.uuid());
+            }
+            if (!workContractInfo.getIsNewRecord()) {
+                List<WorkClientAttachment> list = workContractInfo.getWorkAttachments();
+                List<WorkClientAttachment> list1 = new ArrayList<>();
+                List<WorkClientAttachment> list2 = new ArrayList<>();
+                for (WorkClientAttachment workClientAttachment:list){
+                    if (StringUtils.isNotBlank(workClientAttachment.getAttachmentFlag()) && workClientAttachment.getAttachmentFlag().equals("44")){
+                        list1.add(workClientAttachment);
+                    }else {
+                        list2.add(workClientAttachment);
+                    }
+                }
+                workContractInfo.setWorkAttachments(list1);
+                WorkContractInfo t = workContractInfoService.get(workContractInfo.getId());//从数据库取出记录的值
+//                status =2,审核中。status=5,审核已通过
+                if (t.getContractState().equals("2")) {
+                    addMessage(redirectAttributes, "审核中的合同不能修改");
+                    return "redirect:" + Global.getAdminPath() + "/workcontractinfo/workContractInfo/?repage";
+                }
+                if (t.getContractState().equals("5")) {
+                    addMessage(redirectAttributes, "已通过合同不能修改");
+                    return "redirect:" + Global.getAdminPath() + "/workcontractinfo/workContractInfo/?repage";
+                }
+                //将编辑表单中的非NULL值覆盖数据库记录中的值
+                MyBeanUtils.copyBeanNotNull2Bean(workContractInfo, t);
+                t.setContractState("1");
+                t.setRecordState("1");
+                t.setSignatureStatus("1");
+                workContractInfoService.save(t);
+                workContractInfoService.updateWorkContractInfo(workContractInfo);
+
+//                合同评价信息,
+//                WorkContractReview workContractReview = workContractInfo.getWorkContractReview();
+//                workContractReview.setWorkAttachments(list2);
+//                workContractReview.setContractName(workContractInfo.getName());
+//                workContractReviewService.save(workContractReview);
+                Map<String, Object> variables = new HashMap<String, Object>();
+                t.setContractState("2");
+                String str=workContractInfoService.newSave(t, variables,contextPath,url);//保存
+                if (StringUtils.isNotBlank(str)){
+                    addMessage(redirectAttributes, "合同申请提交失败:"+str);
+                }else {
+                    addMessage(redirectAttributes, "修改保存合同管理成功");
+                }
+
+            } else {//新增表单保存
+                //第一次创建都只能给部门负责人审核
+                String comId = UserUtils.getUser().getComId();
+                String name = UserUtils.getUser().getName();
+
+                workContractInfo.setCreateName(name);
+                workContractInfo.setCreateCompany(comId);
+                workContractInfo.setCompanyId(comId);
+                workContractInfo.setOfficeId(UserUtils.getSelectOffice().getId());
+                List<WorkClientAttachment> list = workContractInfo.getWorkAttachments();
+                List<WorkClientAttachment> list1 = new ArrayList<>();
+                List<WorkClientAttachment> list2 = new ArrayList<>();
+                for (WorkClientAttachment workClientAttachment:list){
+                    if (StringUtils.isNotBlank(workClientAttachment.getAttachmentFlag()) && workClientAttachment.getAttachmentFlag().equals("44")){
+                        //  flag = 44 代表合同附件 ,
+                        list1.add(workClientAttachment);
+                    }else {
+                        list2.add(workClientAttachment);
+                    }
+                }
+                workContractInfo.setWorkAttachments(list1);
+                workContractInfo.setContractState("1");
+                workContractInfo.setRecordState("1");
+                workContractInfo.setSignatureStatus("1");
+                workContractInfoService.save(workContractInfo);//暂存
+                workContractInfoService.updateWorkContractInfo(workContractInfo);
+
+                /* 合同评价信息
+                WorkContractReview workContractReview = workContractInfo.getWorkContractReview();
+                String id = workContractInfo.getId();
+                workContractReview.setContractId(id);
+                workContractReview.setWorkAttachments(list2);
+                workContractReview.setContractName(workContractInfo.getName());
+                workContractReviewService.save(workContractReview);*/
+
+                workContractInfo.setContractState("2");
+                Map<String, Object> variables = new HashMap<String, Object>();
+               String str= workContractInfoService.newSave(workContractInfo, variables,contextPath,url);//保存
+                if (StringUtils.isNotBlank(str)){
+                    addMessage(redirectAttributes, "合同申请提交失败:"+str);
+                }else {
+                    addMessage(redirectAttributes, "保存合同管理成功");
+                }
+            }
+        }catch (Exception e){
+            addMessage(redirectAttributes, "保存合同管理失败");
+
+            logger.error("Exception e:"+e);
+            e.printStackTrace();
+        }
+        return "redirect:" + Global.getAdminPath() + "/workcontractinfo/workContractInfo/?repage";
+    }
+
    /* public WorkContractInfo getSort(WorkContractInfo workContractInfo){
         if (StringUtils.isNotBlank(workContractInfo.getTotalContractId()) && 30 == workContractInfo.getSort()){
             // 获取排序号,最末节点排序号+30
@@ -1641,6 +1816,63 @@ public class WorkContractInfoController extends BaseController {
         }
 
     }
+
+    /**
+     * 工单执行(完成任务)
+     *
+     * @param workContractInfo
+     * @param model
+     * @return
+     */
+    @RequestMapping(value = "newSaveAudit")
+    public String newSaveAudit(WorkContractInfo workContractInfo, Model model,
+                            @RequestParam(value = "upload_files", required = false) MultipartFile[] upload_files,
+                            RedirectAttributes redirectAttributes) {
+        String taskDefKey = workContractInfo.getAct().getTaskDefKey();
+        //当状态为未通过时,重新修改数据
+        if ("modifyApply".equals(taskDefKey)) {
+            workContractInfo.getAct().setComment("重新申请");
+            List<WorkClientAttachment> workClientAttachments = workClientInfoService.uploadFile(request, upload_files, workContractInfo.getId(), "44");
+            List<WorkClientAttachment> workClientAttachmentList = workContractInfo.getWorkAttachments();
+            workClientAttachments.addAll(workClientAttachmentList);
+            workContractInfo.setWorkAttachments(workClientAttachments);
+        }
+        try{
+            // 对不同环节的业务逻辑进行操作
+            List<User> users = null;
+            if ("bmzr".equals(taskDefKey)){
+                users = UserUtils.getByProssType(workContractInfo.getProcessInstanceId(),2);
+                if (users==null )
+                    users = UserUtils.getByRoleActivityEnname("zjl",3,workContractInfo.getChargeCompany(),"2",workContractInfo.getCreateBy());
+            }else  if ("zjl".equals(taskDefKey)){
+                users = UserUtils.getByProssType(workContractInfo.getProcessInstanceId(),3);
+                /*if (users==null )
+                    users = UserUtils.getByRoleActivityEnname("zjl",3,workContractInfo.getOfficeId(),"2",workContractInfo.getCreateBy());*/
+            }else if ("modifyApply".equals(taskDefKey)){
+                users = UserUtils.getByProssType(workContractInfo.getProcessInstanceId(),1);
+            }
+//            String flag = workContractInfo.getAct().getFlag();
+//            if ("yes".equals(flag) && (users==null || users.size()==0)){
+//                addMessage(redirectAttributes, "审批失败,审批人为空,请联系管理员!");
+//            }else {
+            String str = workContractInfoService.newAuditSave(workContractInfo, VarStr.CONTRACT_STATUS,users);
+            addMessage(redirectAttributes, str);
+//            }
+        }catch (Exception e){
+            logger.error("Exception e:"+e);
+            addMessage(redirectAttributes, "审批失败");
+        }
+        if (StringUtils.isNotBlank(workContractInfo.getHome()) && "home".equals(workContractInfo.getHome())){
+            return "redirect:" + Global.getAdminPath() + "/home/?repage";
+        }else if (StringUtils.isNotBlank(workContractInfo.getHome()) && "notifyList".equals(workContractInfo.getHome())){
+            return "redirect:" + Global.getAdminPath() + "/workprojectnotify/workProjectNotify/list/?repage";
+        }else {
+            return "redirect:" + Global.getAdminPath() + "/workcontractinfo/workContractInfo/list/?repage";
+        }
+
+    }
+
+
     /**
      * 工单执行(完成任务)
      *

+ 29 - 0
src/main/java/com/jeeplus/modules/workprojectnotify/web/WorkProjectNotifyController.java

@@ -1245,6 +1245,35 @@ public class WorkProjectNotifyController extends BaseController {
 						}*/
 						return "modules/workcontractinfo/workContractInfoFormEdit";
 					}
+				} else if (workProjectNotify.getType().equals("143")) {    //合同管理new
+					WorkContractInfo workContractInfo = workContractInfoService.get(workProjectNotify.getNotifyId());
+					if(StringUtils.isNotBlank(workContractInfo.getChargeCriterion())){
+						workContractInfo.setChargeCriterionList(Arrays.asList(workContractInfo.getChargeCriterion().split(",")));
+					}
+					if(StringUtils.isNotBlank(workProjectNotify.getHome())){
+						workContractInfo.setHome(workProjectNotify.getHome());
+					}else{
+						workContractInfo.setHome("home");
+					}
+					workContractInfo.setAct(getByAct(workContractInfo.getProcessInstanceId()));
+					model.addAttribute("workContractInfo", workContractInfo);
+					if (workProjectNotify.getRemarks().contains("待通知") || "view".equals(workProjectNotify.getView())) {
+						return "modules/workcontractinfo/workContractInfoLookForm";
+					}else if (workProjectNotify.getRemarks().contains("待审批") && !"1".equals(workProjectNotify.getStatus())) {
+						model.addAttribute("identification", "workContractInfo");
+						model.addAttribute("identificationName","合同审核意见");
+						if (workContractInfo.getAct() != null) {
+							if ("gzr".equals(workContractInfo.getAct().getTaskDefKey())) {
+								return "modules/workcontractinfo/workContractgzAudit";
+							}
+						}
+						return "modules/workcontractinfo/newWorkContract/workContractAudit";
+					} else if (workProjectNotify.getRemarks().contains("重新申请") && !"1".equals(workProjectNotify.getStatus())) {
+                    	/*if(("3").equals(workContractInfo.getAlterState())){
+							return "redirect:"+Global.getAdminPath()+"/workcontractinfo/workContractInfo?id="+workContractInfo.getAlterBeforeId();
+						}*/
+						return "modules/workcontractinfo/newWorkContract/workContractInfoFormEdit";
+					}
 				} else if (workProjectNotify.getType().equals("18")) {
 					Company company = companyService.get(workProjectNotify.getNotifyId());
 					company.setHome("home");

+ 9 - 0
src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectMessageAllDao.xml

@@ -676,6 +676,7 @@ END) as projectScale*/
 		SELECT
 		<include refid="recordDownloadSql"/>
 		,ifnull(prr.status,0) as "projectReportRecordStatus"
+		,prd.ZiXunShouRu as "money"
 		FROM rural_project_records a
 		<include refid="recordDownloadLeftSql"/>
 		<where>
@@ -708,6 +709,7 @@ END) as projectScale*/
 		<include refid="recordDownloadSql"/>
 		,ifnull(prr.status,0) as "projectReportRecordStatus"
 		,prr.record_date as  "recordStartAuditDate"
+		,prd.ZiXunShouRu as "money"
 		FROM rural_project_records a
 		<include refid="recordDownloadLeftSql"/>
 		<where>
@@ -742,6 +744,7 @@ END) as projectScale*/
 		<include refid="recordDownloadSql"/>
 		,"6" as  "projectReportRecordStatus"
 		,prr.record_date as  "recordStartAuditDate"
+		,prd.ZiXunShouRu as "money"
 		<choose>
 			<when test="emergencyProject != null and emergencyProject != '' and emergencyProject == 1">
 				/*B类紧急*/
@@ -782,6 +785,7 @@ END) as projectScale*/
 		<include refid="recordDownloadSql"/>
 		,"7" as  "projectReportRecordStatus"
 		,prr.record_date as  "recordStartAuditDate"
+		,prd.ZiXunShouRu as "money"
 		<choose>
 			<when test="emergencyProject != null and emergencyProject != '' and emergencyProject == 1">
 				/*B类紧急*/
@@ -839,6 +843,7 @@ END) as projectScale*/
 		SELECT
 		<include refid="recordDownloadSql"/>
 		,ifnull(rprr.report_status,0) as "projectReportRecordStatus"
+		,prd.ZiXunShouRu as "money"
 		FROM rural_project_records a
 		<include refid="recordDownloadLeftSql"/>
 		<where>
@@ -873,6 +878,7 @@ END) as projectScale*/
 		,(select create_date from work_activity_process wap where wap.process_instance_id = rprr.process_instance_id
 		order by create_date
 		limit 1) as "recordStartAuditDate"
+		,prd.ZiXunShouRu as "money"
 		FROM rural_project_records a
 		<include refid="recordDownloadLeftSql"/>
 		<where>
@@ -922,6 +928,7 @@ END) as projectScale*/
 				,timestampdiff(day,prdt.audit_pass_date,now()) as "elseRecordDay"
 			</otherwise>
 		</choose>
+		,prd.ZiXunShouRu as "money"
 		FROM rural_project_records a
 		<include refid="recordDownloadLeftSql"/>
 		<where>
@@ -968,6 +975,7 @@ END) as projectScale*/
 				limit 1)) as "exeedRecordDay"
 			</otherwise>
 		</choose>
+		,prd.ZiXunShouRu as "money"
 		FROM rural_project_records a
 		<include refid="recordDownloadLeftSql"/>
 		<where>
@@ -1019,6 +1027,7 @@ END) as projectScale*/
 				limit 1)) as "exeedRecordDay"
 			</otherwise>
 		</choose>
+		,prd.ZiXunShouRu as "money"
 		FROM rural_project_records a
 		<include refid="recordDownloadLeftSql"/>
 		<where>

+ 428 - 0
src/main/webapp/webpage/modules/workcontractinfo/newWorkContract/workContractAudit.jsp

@@ -0,0 +1,428 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>合同管理审批</title>
+	<meta name="decorator" content="default"/>
+    <script type="text/javascript" src="${ctxStatic}/layui/layui.js"></script>
+    <link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/css/layui.css"/>
+	<script type="text/javascript">
+        var validateForm;
+        function doSubmit(obj){
+            // 回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+            if(validateForm.form()){
+                var ss= document.getElementById("iframe").contentWindow.document.getElementById("opinion").value
+                $("#opinion").val(ss);
+                if(obj == 1) {
+                    $("#flag").val("yes");
+                }else {
+                    $("#flag").val("no");
+                }
+                $("#inputForm").submit();
+                return true;
+            }
+
+            return false;
+        }
+        $(document).ready(function() {
+            validateForm = $("#inputForm").validate({
+                submitHandler: function(form){
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function(error, element) {
+                    $("#messageBox").text("输入有误,请先更正。");
+                    if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });
+            if("${workContractInfo.contractInformation}" == "1"){
+                $("#contractPrice").parent().parent().hide();
+                $("#contractPrice").removeClass("judgment")
+                $("#chargeCriterionList").find("label").eq(0).html("<span class=\"require-item\">*</span>收费标准:")
+                $("#describeContentDiv").find("label").eq(0).html("<span class=\"require-item\">*</span>描述内容:")
+                $("#otherDetails").attr("class","form-control layui-input judgment")
+                $("#describeContent").attr("class","form-control judgment")
+            }else{
+                $("#contractPrice").parent().parent().show();
+                $("#contractPrice").attr("class","form-control judgment number layui-input")
+                $("#chargeCriterionList").find("label").eq(0).html("收费标准:")
+                $("#describeContentDiv").find("label").eq(0).html("描述内容:")
+                $("#otherDetails").attr("class","form-control layui-input")
+                $("#describeContent").attr("class","form-control")
+            }
+        });
+	</script>
+</head>
+<body>
+<div class="single-form">
+	<div class="container">
+
+			<form:form id="inputForm" modelAttribute="workContractInfo" enctype="multipart/form-data" action="${ctx}/workcontractinfo/workContractInfo/newSaveAudit" method="post" class="form-horizontal layui-form">
+				<form:hidden path="id"/>
+			    <form:hidden path="home"/>
+				<form:hidden path="act.taskId"/>
+				<form:hidden path="act.taskName"/>
+				<form:hidden path="act.taskDefKey"/>
+				<form:hidden path="act.procInsId"/>
+				<form:hidden path="act.procDefId"/>
+				<form:hidden id="flag" path="act.flag"/>
+                <input type="hidden" id="opinion" name="act.comment" value="" maxlength="250">
+				<c:set var="status" value="${workContractInfo.act.status}" />
+				<div class="tabs-container" style="margin-top: 20px;">
+					<div class="tab-content">
+						<div id="tab-11" class="tab-pane active">
+							<div class="form-group layui-row first lw9">
+								<div class="form-group-label"><h2>项目合同信息</h2></div>
+
+                                <div class="layui-item layui-col-sm6">
+                                    <label class="layui-form-label ">客户名称:</label>
+                                    <div class="layui-input-block">
+                                        <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${workContractInfo.client.name}"/>
+                                    </div>
+                                </div>
+                                <div class="layui-item layui-col-sm6">
+                                    <label class="layui-form-label ">合同名称:</label>
+                                    <div class="layui-input-block">
+                                        <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${workContractInfo.name}"/>
+                                    </div>
+                                </div>
+
+                                <div class="layui-item layui-col-sm6">
+                                    <label class="layui-form-label "><span class="require-item">*</span>签订日期:</label>
+                                    <div class="layui-input-block">
+                                        <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="<fmt:formatDate value="${workContractInfo.contractDate}" pattern="yyyy年MM月dd日"/>"/>
+                                    </div>
+                                </div>
+                                <div class="layui-item layui-col-sm6">
+                                    <label class="layui-form-label ">合同生效日期:</label>
+                                    <div class="layui-input-block">
+                                        <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="<fmt:formatDate value="${workContractInfo.effectiveDate}" pattern="yyyy年MM月dd日" type="date" dateStyle="full"/>"/>
+                                    </div>
+                                </div>
+                                <div class="layui-item layui-col-sm6">
+                                    <label class="layui-form-label ">合同终止日期:</label>
+                                    <div class="layui-input-block">
+                                        <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="<fmt:formatDate value="${workContractInfo.closingDate}" pattern="yyyy年MM月dd日" type="date" dateStyle="full"/>"/>
+                                    </div>
+                                </div>
+                                <div class="layui-item layui-col-sm6">
+                                    <label class="layui-form-label ">合同类型:</label>
+                                    <div class="layui-input-block">
+                                        <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${fns:getMainDictLabel(workContractInfo.contractTypeDoc, 'contract_info_type', '')}"/>
+                                    </div>
+                                </div>
+                                <div class="layui-item layui-col-sm6">
+                                    <label class="layui-form-label double-line"><span class="require-item">*</span>合同金额类别:</label>
+                                    <div class="layui-input-block">
+                                        <input type="radio" title="金额合同" lay-filter="jine" name="contractInformation" disabled id="jine" value="0" <c:if test="${workContractInfo.contractInformation=='0'}">checked</c:if>>
+                                        <input type="radio" title="费率合同" lay-filter="jine" name="contractInformation" disabled id="jine1" value="1" <c:if test="${workContractInfo.contractInformation=='1'}">checked</c:if>>
+                                    </div>
+                                </div>
+                                <div class="layui-item layui-col-sm6">
+                                    <label class="layui-form-label double-line">合同金额(元)预计金额:</label>
+                                    <div class="layui-input-block">
+                                        <input htmlEscape="false" id="contractPrice" readonly="true" class="form-control layui-input" value="<fmt:formatNumber value="${workContractInfo.contractPrice}" pattern="#,#00.00"/>"/>
+                                    </div>
+<%--                                    <shiro:hasPermission name="workcontractinfo:workContractInfo:contractPrice">--%>
+<%--                                        <c:if test="${fns:getUser().office.id eq workContractInfo.officeId && workContractInfo.contractState < 10}">--%>
+<%--                                            <a onclick="openDialogre('修改合同金额', '${ctx}/workcontractinfo/workContractInfo/formContractPrice?id=${workContractInfo.id}','50%','300px',false,'inputForm')", class="nav-btn nav-btn-add" style="margin-right: 0px;top:0px;right:16px;position: absolute;height:40px;line-height: 40px;"><i class="fa fa-edit"></i> 修改</a>--%>
+<%--                                        </c:if>--%>
+<%--                                    </shiro:hasPermission>--%>
+                                </div>
+                                <div class="layui-item layui-col-sm6">
+                                    <label class="layui-form-label ">对方合同编号:</label>
+                                    <div class="layui-input-block">
+                                        <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${workContractInfo.anotherContractNum}"/>
+                                    </div>
+                                </div>
+                                <div class="layui-item layui-col-sm12" id="chargeCriterionList" >
+                                    <label class="layui-form-label">收费标准</label>
+                                    <div class="layui-input-block">
+                                        <form:checkboxes path="chargeCriterionList" disabled="true" lay-filter="chargeCriterionList" lay-skin="primary" itemLabel="label" itemValue="label" htmlEscape="false" items="${fns:getMainDictList('charge_criterion')}" />
+                                    </div>
+                                </div>
+                                <div class="layui-item layui-col-sm12">
+                                    <label class="layui-form-label "><!--其他详情:--></label>
+                                    <div class="layui-input-block">
+                                        <form:input path="otherDetails" id="otherDetails"  readonly="true" htmlEscape="false" class="form-control layui-input"/>
+                                    </div>
+                                </div>
+                                <div class="layui-item layui-col-sm12 with-textarea" id="describeContentDiv">
+                                    <label class="layui-form-label ">描述内容:</label>
+                                    <div class="layui-input-block">
+                                        <form:textarea placeholder="请输入描述内容" path="describeContent" readonly="true" htmlEscape="false" rows="4" maxlength="500"   class="form-control "/>
+                                    </div>
+                                </div>
+                                <%--<div class="layui-item layui-col-sm6">
+                                    <label class="layui-form-label ">创建时间:</label>
+                                    <div class="layui-input-block">
+                                        <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="<fmt:formatDate value="${workContractInfo.createDate}" pattern="yyyy年MM月dd日" type="date" dateStyle="full"/>"/>
+                                    </div>
+                                </div>--%>
+                                <div class="layui-item layui-col-sm12 with-textarea">
+                                    <label class="layui-form-label">合同特别条款:</label>
+                                    <div class="layui-input-block">
+                                        <textarea htmlEscape="false" rows="4" readonly="true" maxlength="1000" class="form-control" >${workContractInfo.contractSpecial}</textarea>
+                                    </div>
+                                </div>
+                                <div class="layui-item layui-col-sm12 with-textarea">
+                                    <label class="layui-form-label">备注:</label>
+                                    <div class="layui-input-block">
+                                        <textarea htmlEscape="false" rows="4" readonly="true" maxlength="1000" class="form-control" >${workContractInfo.remarks}</textarea>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="form-group layui-row">
+                                <div class="form-group-label"><h2>合同附件表</h2></div>
+                                <div class="layui-item layui-col-xs12 form-table-container" >
+                                    <table id="contentTable" class="table table-bordered table-condensed no-bottom-margin details">
+                                        <thead>
+                                        <tr>
+
+                                            <th>文件</th>
+                                            <th>上传人</th>
+                                            <th>上传时间</th>
+                                            <th width="180px">操作</th>
+                                        </tr>
+                                        </thead>
+                                        <tbody>
+                                        <c:choose>
+                                            <c:when test="${not empty workContractInfo.workAttachments}">
+                                                <c:forEach items="${workContractInfo.workAttachments}" var="workClientAttachment" varStatus="status">
+                                                    <tr>
+                                                            <%--<td>${status.index + 1}</td>--%>
+                                                                <c:choose>
+                                                                    <c:when test="${workContractInfo.uploadMode == 2}">
+                                                                        <c:choose>
+                                                                            <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+                                                                                <td><img src="${workClientAttachment.temporaryUrl}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.temporaryUrl}','90%','90%')" alt="${workClientAttachment.attachmentName}">
+                                                                            </c:when>
+                                                                            <c:otherwise>
+                                                                                <c:choose>
+                                                                                    <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+                                                                                        <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',1)">${workClientAttachment.attachmentName}</a></td>
+                                                                                    </c:when>
+                                                                                    <c:otherwise>
+                                                                                        <c:choose>
+                                                                                            <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'rar')
+                                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'zip')
+                                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jar')
+                                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'7z')}">
+                                                                                                <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',3)">${workClientAttachment.attachmentName}</a></td>
+                                                                                            </c:when>
+                                                                                            <c:otherwise>
+                                                                                                <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',2)">${workClientAttachment.attachmentName}</a></td>
+                                                                                            </c:otherwise>
+                                                                                        </c:choose>
+                                                                                    </c:otherwise>
+                                                                                </c:choose>
+                                                                            </c:otherwise>
+                                                                        </c:choose>
+                                                                    </c:when>
+                                                                    <c:otherwise>
+                                                                        <c:choose>
+                                                                            <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+                                                                                <td><img src="${workClientAttachment.url}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.url}','90%','90%')" alt="${workClientAttachment.attachmentName}">
+                                                                            </c:when>
+                                                                            <c:otherwise>
+                                                                                <c:choose>
+                                                                                    <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+                                                                                        <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',1)">${workClientAttachment.attachmentName}</a></td>
+                                                                                    </c:when>
+                                                                                    <c:otherwise>
+                                                                                        <c:choose>
+                                                                                            <c:when test="${workReimbursement.uploadMode == 2}">
+                                                                                                <c:choose>
+                                                                                                    <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
+                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+                                                                                                        <td><img src="${workClientAttachment.temporaryUrl}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.temporaryUrl}','90%','90%')" alt="${workClientAttachment.attachmentName}">
+                                                                                                    </c:when>
+                                                                                                    <c:otherwise>
+                                                                                                        <c:choose>
+                                                                                                            <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+                                                                                                                <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',1)">${workClientAttachment.attachmentName}</a></td>
+                                                                                                            </c:when>
+                                                                                                            <c:otherwise>
+                                                                                                                <c:choose>
+                                                                                                                    <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'rar')
+                                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'zip')
+                                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jar')
+                                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'7z')}">
+                                                                                                                        <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',3)">${workClientAttachment.attachmentName}</a></td>
+                                                                                                                    </c:when>
+                                                                                                                    <c:otherwise>
+                                                                                                                        <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',2)">${workClientAttachment.attachmentName}</a></td>
+                                                                                                                    </c:otherwise>
+                                                                                                                </c:choose>
+                                                                                                            </c:otherwise>
+                                                                                                        </c:choose>
+                                                                                                    </c:otherwise>
+                                                                                                </c:choose>
+                                                                                            </c:when>
+                                                                                            <c:otherwise>
+                                                                                                <c:choose>
+                                                                                                    <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+                                                   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+                                                   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+                                                   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
+                                                   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+                                                                                                        <td><img src="${workClientAttachment.url}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.url}','90%','90%')" alt="${workClientAttachment.attachmentName}">
+                                                                                                    </c:when>
+                                                                                                    <c:otherwise>
+                                                                                                        <c:choose>
+                                                                                                            <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+                                                                                                                <td><a href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',1)">${workClientAttachment.attachmentName}</a></td>
+                                                                                                            </c:when>
+                                                                                                            <c:otherwise>
+                                                                                                                <c:choose>
+                                                                                                                    <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'rar')
+                                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'zip')
+                                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jar')
+                                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'7z')}">
+                                                                                                                        <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',3)">${workClientAttachment.attachmentName}</a></td>
+                                                                                                                    </c:when>
+                                                                                                                    <c:otherwise>
+                                                                                                                        <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',2)">${workClientAttachment.attachmentName}</a></td>
+                                                                                                                    </c:otherwise>
+                                                                                                                </c:choose>
+                                                                                                            </c:otherwise>
+                                                                                                        </c:choose>
+                                                                                                    </c:otherwise>
+                                                                                                </c:choose>
+                                                                                            </c:otherwise>
+                                                                                        </c:choose>
+                                                                                    </c:otherwise>
+                                                                                </c:choose>
+                                                                            </c:otherwise>
+                                                                        </c:choose>
+                                                                    </c:otherwise>
+                                                                </c:choose>
+                                                        <td>${workClientAttachment.createBy.name}</td>
+                                                        <td><fmt:formatDate value="${workClientAttachment.createDate}" pattern="yyyy-MM-dd"/></td>
+                                                        <td  class="op-td">
+                                                                <%--附件下载删除--%>
+                                                            <c:choose>
+                                                                <c:when test="${workContractInfo.uploadMode == 2}">
+                                                                    <c:choose>
+                                                                        <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+                                                                            <a href="${workClientAttachment.temporaryUrl}" target="_blank" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+                                                                        </c:when>
+                                                                        <c:otherwise>
+                                                                            <a href="${workClientAttachment.temporaryUrl}" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+                                                                        </c:otherwise>
+                                                                    </c:choose>
+                                                                </c:when>
+                                                                <c:otherwise>
+                                                                    <a href="javascript:location.href='${ctx}/workfullmanage/workFullManage/downLoadAttach?file='+encodeURIComponent('${workClientAttachment.url}');" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+                                                                </c:otherwise>
+                                                            </c:choose>
+                                                            <c:if test="${workClientAttachment.collectFlag != 1}">
+                                                                <a href="javascript:void(0)" onclick="collectingAccessory(this,'${ctx}/projectAccessory/projectAccessory/saveCollectAccessory','${workClientAttachment.url}','${workClientAttachment.createBy.id}','${workClientAttachment.fileSize}')" class="op-btn op-btn-delete"  style="background-color: #FFB800"><i class="layui-icon layui-icon-rate"></i>&nbsp;收藏</a>
+                                                            </c:if>
+                                                        </td>
+                                                    </tr>
+                                                </c:forEach>
+                                            </c:when>
+                                            <c:otherwise>
+                                                <tr>
+                                                    <td colspan="4" align="center">暂无数据</td>
+                                                </tr>
+                                            </c:otherwise>
+                                        </c:choose>
+                                        </tbody>
+                                    </table>
+                                </div>
+                            </div>
+                        </div>
+
+
+                    </div>
+                </div>
+<%--                <div class="form-group layui-row">--%>
+<%--                    <div class="form-group-label"><h2>审批意见</h2></div>--%>
+<%--                    <div class="layui-item layui-col-sm8 lw6 with-textarea">--%>
+<%--                        <div class="layui-input-block" style="margin-left:10px;position: relative">--%>
+<%--                            <form:textarea placeholder="请输入意见:" path="act.comment" id="opinion" class="form-control" rows="4" cssStyle="height: 200px;" maxlength="127" />--%>
+<%--                            <a id="clearOpinon" class="layui-btn" style="position: absolute;bottom: 10px;right: 20px;">清空</a>--%>
+<%--                            <input type="file" name="upload_files" style="display: none;">--%>
+<%--                        </div>--%>
+<%--                    </div>--%>
+<%--                    <div class="layui-item layui-col-sm4 lw6 with-textarea">--%>
+<%--                        <div class="layui-input-block" style="margin-left:10px;">--%>
+<%--                            <div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinion" name="sh" value="同意" title="同意" style="cursor:pointer" class="apen"/></div>--%>
+<%--                            <div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinion" name="sh" value="不同意" title="不同意" style="cursor:pointer" class="apen"/></div>--%>
+<%--                            <div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinion" name="sh" value="请领导审核" title="请领导审核" style="cursor:pointer" class="apen"/></div>--%>
+<%--                            <div style="padding: 5px 0px;">--%>
+<%--                                <form:select path="act.comment" id="auditOpinion" lay-filter="opinion" lay-verify="opinion" class="form-control simple-select">--%>
+<%--                                    <form:option value=""/>--%>
+<%--                                    <form:options items="${fns:getMainDictListOnProjectAdvent('audit_opinion_template')}" itemLabel="label" itemValue="label" htmlEscape="false"/>--%>
+<%--                                </form:select>--%>
+<%--                            </div>--%>
+<%--                        </div>--%>
+<%--                    </div>--%>
+<%--                </div>--%>
+
+            </form:form>
+        <div class="form-group-label">
+            <div style="float: right"> <a href="javascript:void(0)" style='background-color: #FFB800' onclick="openDialogre('个人模板列表', '${ctx}/auditTemplate/auditTemplate/templateList?identification=${identification}&name=${identificationName}','80%', '70%','','关闭')" class="nav-btn layui-btn layui-btn-sm" ><i class="fa fa-file-excel-o"></i> 审核意见模板列表</a></div>
+            <h2>审批意见</h2>
+        </div>
+        <iframe id="iframe" src="${ctx}/auditTemplate/auditTemplate/iframeView?identification=${identification}" name="listresult" frameborder="0" align="left" width="100%" height="300" scrolling="value"></iframe>
+        <div class="form-group layui-row">
+            <div class="form-group-label"><h2>审批流程</h2></div>
+            <div class="layui-item layui-col-xs12 form-table-container" >
+                <act:flowChart procInsId="${workContractInfo.act.procInsId}"/>
+                <act:histoicFlow procInsId="${workContractInfo.act.procInsId}"/>
+            </div>
+        </div>
+    </div>
+    <script>
+        layui.use('form', function () {
+            var form = layui.form;
+            form.render();
+        });
+        function f1(row) {
+            // window.parent.document.getElementById('opinion').value = row;
+            $("#opinion").val(row)
+        }
+        function openDialogre(title,url,width,height,target,buttons) {
+            if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+                width = 'auto';
+                height = 'auto';
+            } else {//如果是PC端,根据用户设置的width和height显示。
+            }
+            var split = buttons.split(",");
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                skin: 'three-btns',
+                content: url,
+                btn: split,
+                btn1: function(index, layero){
+                    top.layer.close(index)
+                    document.getElementById('iframe').contentWindow.location.reload();
+                }
+            });
+        }
+    </script>
+</div>
+</body>
+</html>

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 1085 - 0
src/main/webapp/webpage/modules/workcontractinfo/newWorkContract/workContractInfoFormAdd.jsp


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 1263 - 0
src/main/webapp/webpage/modules/workcontractinfo/newWorkContract/workContractInfoFormEdit.jsp


+ 22 - 6
src/main/webapp/webpage/modules/workcontractinfo/workContractInfoList.jsp

@@ -624,7 +624,7 @@
 					<%--此处按钮样式包括 nav-btn-add nav-btn-refresh nav-btn-import nav-btn-export nav-btn-query nav-btn-reset--%>
 					<div class="layui-btn-group">
 						<shiro:hasPermission name="workcontractinfo:workContractInfo:add">
-							<button class="layui-btn layui-btn-sm layui-bg-blue" title="合同登记" onclick="openDialogre('合同登记','${ctx}/workcontractinfo/workContractInfo/form','95%','95%')">添加</button>
+							<button class="layui-btn layui-btn-sm layui-bg-blue" title="合同登记" onclick="openDialogre('合同登记','${ctx}/workcontractinfo/workContractInfo/newForm','95%','95%')">添加</button>
 						</shiro:hasPermission>
 						<shiro:hasPermission name="workcontractinfo:workContractInfo:import">
 							<table:importExcel url="${ctx}/workcontractinfo/workContractInfo/import"></table:importExcel><!-- 导入按钮 -->
@@ -736,6 +736,10 @@
 						{
 							xml+="<a href=\"#\" onclick=\"notifyDialogre('合同登记审批', '${ctx}/workprojectnotify/workProjectNotify/form?id=" + d.notifyId +"&home=invoice','95%', '95%')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 审批</a>";
 						}
+						if(d.newContractNotifyFlagAudit != undefined && d.newContractNotifyFlagAudit !=null && "" != d.newContractNotifyFlagAudit && d.newContractNotifyFlagAudit == 1)
+						{
+							xml+="<a href=\"#\" onclick=\"notifyDialogre('合同登记审批', '${ctx}/workprojectnotify/workProjectNotify/form?id=" + d.notifyId +"&home=invoice','95%', '95%')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 审批</a>";
+						}
 						if(d.recordNotifyFlag != undefined && d.recordNotifyFlag !=null && "" != d.recordNotifyFlag && d.recordNotifyFlag == 1)
 						{
 							xml+="<a href=\"#\" onclick=\"notifyDialogre('合同归档审批', '${ctx}/workprojectnotify/workProjectNotify/form?id=" + d.recordNotifyId +"&home=invoice','95%', '95%')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 审批</a>";
@@ -763,16 +767,25 @@
                         }*/
 							if(d.canedit != undefined && d.canedit =="1")
 							{
-								xml +="<a href=\"javascript:void(0)\" onclick=\"contractOpenDialogre('修改合同管理', '${ctx}/workcontractinfo/workContractInfo/form?id=" + d.id + "&contractState="+d.status+"','95%','95%')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 修改合同</a>";
+								xml +="<a href=\"javascript:void(0)\" onclick=\"contractOpenDialogre('修改合同管理', '${ctx}/workcontractinfo/workContractInfo/newForm?id=" + d.id + "&contractState="+d.status+"','95%','95%')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 修改合同</a>";
 							}
-							if(d.canedits != undefined && d.canedits =="1")
+							if(d.canedits != undefined && d.canedits =="1")//撤回修改、驳回修改
 							{
-								xml +="<a href=\"javascript:void(0)\" onclick=\"contractOpenDialogres('修改合同管理', '${ctx}/workcontractinfo/workContractInfo/form?id=" + d.id + "&contractState="+d.status+"','95%','95%')\" class=\"layui-btn layui-btn-xs  layui-bg-green\" > 修改合同</a>";
+								if(d.contractState == 4){
+									if(null != d.newContractNotifyFlag && undefined != d.newContractNotifyFlag && '' != d.newContractNotifyFlag && 1 == d.newContractNotifyFlag){
+										xml +="<a href=\"javascript:void(0)\" onclick=\"contractOpenDialogres('修改合同管理', '${ctx}/workcontractinfo/workContractInfo/newForm?id=" + d.id + "&contractState="+d.status+"','95%','95%')\" class=\"layui-btn layui-btn-xs  layui-bg-green\" > 修改合同</a>";
+									}else{
+										xml +="<a href=\"javascript:void(0)\" onclick=\"contractOpenDialogres('修改合同管理', '${ctx}/workcontractinfo/workContractInfo/form?id=" + d.id + "&contractState="+d.status+"','95%','95%')\" class=\"layui-btn layui-btn-xs  layui-bg-green\" > 修改合同</a>";
+									}
+								}else{
+									xml +="<a href=\"javascript:void(0)\" onclick=\"contractOpenDialogres('修改合同管理', '${ctx}/workcontractinfo/workContractInfo/newForm?id=" + d.id + "&contractState="+d.status+"','95%','95%')\" class=\"layui-btn layui-btn-xs  layui-bg-green\" > 修改合同</a>";
+								}
+
 							}
-							if(d.candelete != undefined && d.candelete =="1")
+							/*if(d.candelete != undefined && d.candelete =="1")
 							{
 								xml += "<a href=\"${ctx}/workcontractinfo/workContractInfo/delete?id=" + d.id + "&contractState="+d.status+"\" onclick=\"return confirmx('确认要作废该合同信息吗?', this.href)\" class=\"layui-btn layui-btn-xs layui-bg-red\" > 合同作废</a>";
-							}
+							}*/
 							if(d.cancancel != undefined && d.cancancel =="1")
 							{
 								xml += "<a href=\"${ctx}/workcontractinfo/workContractInfo/revoke?id="+ d.id +"&contractState="+d.status+"&processInstanceId="+ d.processInstanceId +"\" onclick=\"return confirmx('确认要撤回该合同管理吗?', this.href)\" class=\"layui-btn layui-btn-xs layui-bg-red\" > 撤回合同</a>";
@@ -868,11 +881,14 @@
                     ,"borrowId":"${workContractInfo.borrowId}"
                     ,"flagAdmin":"${workContractInfo.flagAdmin}"
 					,"notifyFlag":"${workContractInfo.notifyFlag}"
+					,"newContractNotifyFlagAudit":"${workContractInfo.newContractNotifyFlagAudit}"
+					,"newContractNotifyFlag":"${workContractInfo.newContractNotifyFlag}"
 					,"notifyId":"${workContractInfo.notifyId}"
 					,"recordNotifyFlag":"${workContractInfo.recordNotifyFlag}"
 					,"recordNotifyId":"${workContractInfo.recordNotifyId}"
 					,"borrowNotifyFlag":"${workContractInfo.borrowNotifyFlag}"
 					,"borrowNotifyId":"${workContractInfo.borrowNotifyId}"
+					,"contractState":"${workContractInfo.contractState}"
                     <%--<c:if test="${workContractInfo.contractState == 5 && fns:getUser().id == workContractInfo.createBy.id && workContractInfo.signatureStatus == 1   }">,"signature":"1"</c:if>/*签章*/--%>
                     <%--<c:if test="${workContractInfo.contractState == 5 && fns:getUser().id == workContractInfo.createBy.id}">,"canalter":"1"</c:if>/*变更*/--%>
 					<%--<c:if test="${workContractInfo.contractState == 5 && fns:getUser().id == workContractInfo.createBy.id}">,"caninvalid":"1"</c:if>/*作废*/--%>