赵芳群 2 anni fa
parent
commit
0b3e41d538

+ 43 - 1
src/main/java/com/jeeplus/modules/workcontractinfo/entity/WorkContractInfo.java

@@ -41,7 +41,7 @@ public class WorkContractInfo extends ActEntity<WorkContractInfo> {
     public static final String SERIAL_AUDIT = "105";
 	//其他
     public static final String SERIAL_ELST = "106";
-
+	private WorkContractInfo workContractInfo;
     /*新增属性*/
 	private WorkBidProject project;		// 投标项目
 	private String projectName;			// 项目名称
@@ -56,8 +56,12 @@ public class WorkContractInfo extends ActEntity<WorkContractInfo> {
 	private String times;  				//变更次数
 /*-----------------------------------------------------------------*/
 	private static final long serialVersionUID = 1L;
+	private String company;  //单位
 	private WorkClientInfo client;		// 客户ID(主委托方)
 	private String clientName;		// 主委托方名称
+	private String telephone;
+	private String uscCode;
+	private WorkClientInfo workClientInfo; //客户管理
 	private List<WorkClientInfo> workClientInfoList = Lists.newArrayList(); //委托方列表
 	private Date contractDate;			// 签订日期
 	private Date effectiveDate;			// 合同生效日期
@@ -162,8 +166,46 @@ public class WorkContractInfo extends ActEntity<WorkContractInfo> {
 	private String contractRecordState;   //归档状态
 	private String overDueStatus;   //归档状态
 
+	public String getTelephone() {
+		return telephone;
+	}
+
+	public String getUscCode() {
+		return uscCode;
+	}
+
+	public void setTelephone(String telephone) {
+		this.telephone = telephone;
+	}
+
+	public void setUscCode(String uscCode) {
+		this.uscCode = uscCode;
+	}
+
+	public WorkContractInfo getWorkContractInfo() {
+		return workContractInfo;
+	}
+
+	public void setWorkContractInfo(WorkContractInfo workContractInfo) {
+		this.workContractInfo = workContractInfo;
+	}
+
+	public String getCompany() {
+		return company;
+	}
+
+	public void setCompany(String company) {
+		this.company = company;
+	}
+
 	private boolean cancelDelFalg; //合同作废和删除判定
+	public WorkClientInfo getWorkClientInfo() {
+		return workClientInfo;
+	}
 
+	public void setWorkClientInfo(WorkClientInfo workClientInfo) {
+		this.workClientInfo = workClientInfo;
+	}
 	public String getBeginInvestmentAmount() {
 		return beginInvestmentAmount;
 	}

+ 174 - 169
src/main/java/com/jeeplus/modules/workcontractinfo/service/WorkContractInfoService.java

@@ -42,6 +42,7 @@ import com.jeeplus.modules.workactivitymenu.service.WorkActivityMenuService;
 import com.jeeplus.modules.workbidproject.dao.WorkBidProjectDao;
 import com.jeeplus.modules.workbidproject.entity.WorkBidProject;
 import com.jeeplus.modules.workclientinfo.dao.WorkClientAttachmentDao;
+import com.jeeplus.modules.workclientinfo.dao.WorkClientInfoDao;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientInfo;
 import com.jeeplus.modules.workclientinfo.service.WorkClientInfoService;
@@ -139,6 +140,8 @@ public class WorkContractInfoService extends CrudService<WorkContractInfoDao, Wo
 	@Autowired
 	private WorkClientInfoService workClientInfoService;
 	@Autowired
+	private WorkClientInfoDao workClientInfoDao;
+	@Autowired
 	private WorkContractListInfoDao workContractListInfoDao;
 	@Autowired
 	private WorkBidProjectDao workBidProjectDao;
@@ -818,7 +821,7 @@ public class WorkContractInfoService extends CrudService<WorkContractInfoDao, Wo
 	}
 
 	@Transactional(readOnly = false)
-	public synchronized String newSave(WorkContractInfo workContractInfo,Map<String, Object> variables, String contextPath,String urls) {
+	public synchronized String newSave( WorkClientInfo workClientInfo,WorkContractInfo workContractInfo,Map<String, Object> variables, String contextPath,String urls) {
 		long begin = System.currentTimeMillis();
 		String processInstanceId = workContractInfo.getProcessInstanceId();
 		String contractTypeCode = workContractInfo.getContractTypeDoc();
@@ -845,176 +848,178 @@ public class WorkContractInfoService extends CrudService<WorkContractInfoDao, Wo
 			}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);
+			System.out.println("=============================****************************************************");
+			workClientInfoDao.insert(workClientInfo);
+//			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");
+		workContractInfo.setContractState("5");
 		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());
-		workProjectNotify.setWapBeginDate(new Date());
-		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);
-			workActivityProcessService.insert(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");
+//		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());
+//		workProjectNotify.setWapBeginDate(new Date());
+//		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);
+//			workActivityProcessService.insert(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 "";
 	}
 

+ 23 - 5
src/main/java/com/jeeplus/modules/workcontractinfo/web/WorkContractInfoController.java

@@ -30,6 +30,7 @@ import com.jeeplus.modules.contractclient.entity.WorkContractClient;
 import com.jeeplus.modules.contractclient.service.WorkContractClientService;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectReportInfo;
+import com.jeeplus.modules.sys.entity.Area;
 import com.jeeplus.modules.sys.entity.Office;
 import com.jeeplus.modules.sys.entity.Role;
 import com.jeeplus.modules.sys.entity.User;
@@ -522,7 +523,8 @@ public class WorkContractInfoController extends BaseController {
      */
     @RequiresPermissions(value = {"workcontractinfo:workContractInfo:view", "workcontractinfo:workContractInfo:add", "workcontractinfo:workContractInfo:edit"}, logical = Logical.OR)
     @RequestMapping(value = "newForm")
-    public String newForm(WorkContractInfo workContractInfo, Model model) {
+    public String newForm(WorkContractInfo workContractInfo, Model model,WorkClientInfo workClientInfo,HttpServletRequest request) {
+
         //getSort(workContractInfo);
         String view = "workContractInfoFormAdd";
         //驳回状态数据操作
@@ -550,6 +552,17 @@ public class WorkContractInfoController extends BaseController {
         if(StringUtils.isNotBlank(workContractInfo.getChargeCriterion())){
             workContractInfo.setChargeCriterionList(Arrays.asList(workContractInfo.getChargeCriterion().split(",")));
         }
+//        workClientInfo.setName(request.getParameter("name"));//客户名称
+//        workClientInfo.setUscCode(request.getParameter("uscCode"));//统一社会信用代码
+//        workClientInfo.setJobTypeStr(request.getParameter("JobTypeStr"));//代表方
+//        workClientInfo.setTelephone(request.getParameter("telephone"));
+//        workClientInfo.setLinkname(request.getParameter("linkname"));//联系人姓名
+//        workClientInfo.setPosition(request.getParameter("position"));//职务
+//        workClientInfo.setQq(request.getParameter("qq"));//QQ
+//        workClientInfo.setLinkPhone(request.getParameter("linkPhone"));//联系人电话
+//        workClientInfo.setLinkMobile(request.getParameter("linkMobile"));//手机
+//        workClientInfo.setEmail(request.getParameter("email"));
+//        workClientInfoService.save(workClientInfo);//保存客户信息
         model.addAttribute("workContractInfo", workContractInfo);
         return "modules/workcontractinfo/newWorkContract/" + view;
     }
@@ -1049,7 +1062,7 @@ public class WorkContractInfoController extends BaseController {
 //	@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 {
+                       RedirectAttributes redirectAttributes,WorkClientInfo workClientInfo) throws Exception {
         if (!beanValidator(model, workContractInfo)) {
             return form(workContractInfo, model);
         }
@@ -1103,7 +1116,7 @@ public class WorkContractInfoController extends BaseController {
 //                workContractReviewService.save(workContractReview);
                 Map<String, Object> variables = new HashMap<String, Object>();
                 t.setContractState("2");
-                String str=workContractInfoService.newSave(t, variables,contextPath,url);//保存
+                String str=workContractInfoService.newSave(workClientInfo,t, variables,contextPath,url);//保存
                 if (StringUtils.isNotBlank(str)){
                     addMessage(redirectAttributes, "合同申请提交失败:"+str);
                 }else {
@@ -1134,7 +1147,12 @@ public class WorkContractInfoController extends BaseController {
                 workContractInfo.setContractState("1");
                 workContractInfo.setRecordState("1");
                 workContractInfo.setSignatureStatus("1");
-                workContractInfoService.save(workContractInfo);//暂存
+                Area area = new Area();
+                area.setId("9AF3266E03384019BFE935DD9F35332F");
+                area.setName("南京");
+                workClientInfo.setArea(area);
+                workClientInfoService.save(workClientInfo);
+                workContractInfoService.save(workContractInfo);//提交
                 workContractInfoService.updateWorkContractInfo(workContractInfo);
 
                 /* 合同评价信息
@@ -1147,7 +1165,7 @@ public class WorkContractInfoController extends BaseController {
 
                 workContractInfo.setContractState("2");
                 Map<String, Object> variables = new HashMap<String, Object>();
-               String str= workContractInfoService.newSave(workContractInfo, variables,contextPath,url);//保存
+               String str= workContractInfoService.newSave(workClientInfo,workContractInfo, variables,contextPath,url);//保存
                 if (StringUtils.isNotBlank(str)){
                     addMessage(redirectAttributes, "合同申请提交失败:"+str);
                 }else {

+ 4 - 4
src/main/resources/jeeplus.properties

@@ -7,10 +7,10 @@ jdbc.type=mysql
 jdbc.driver=com.mysql.jdbc.Driver
 db.name=ruihuaoa-activity-data
 #jdbc.url=jdbc:mysql://192.168.2.4:3306/simple_xg_total_process?useUnicode=true&characterEncoding=utf-8
-jdbc.url=jdbc:mysql://127.0.0.1:3306/yida_ccpm?useUnicode=true&characterEncoding=utf-8
+jdbc.url=jdbc:mysql://127.0.0.1:3306/new_ccpm_1?useUnicode=true&characterEncoding=utf-8
 jdbc.username=root
-#jdbc.password=123456
-jdbc.password=root
+jdbc.password=123456
+#jdbc.password=root
 
 #pool settings
 jdbc.pool.init=20
@@ -37,7 +37,7 @@ redis.host=127.0.0.1
 #redis.port=6380
 redis.port=6379
 redis.timeout = 2000
-redis.password = 123456
+#redis.password = 123456
 
 #============================#
 #===== System settings ======#

+ 235 - 0
src/main/webapp/webpage/modules/workcontractinfo/newWorkContract/workContractInfoFormAdd.jsp

@@ -417,6 +417,18 @@
                 });
             }
         }
+		function addRow(list, idx, tpl, row){
+			var idx1 = $("#workClientBankList tr").length;
+			if(list == '#workClientBankList'){
+				bornTemplete(list, idx, tpl, row, idx1);
+			}
+			var idx2 = $("#workClientLinkmanList tr").length;
+			if(list == '#workClientLinkmanList'){
+				bornTemplete(list, idx, tpl, row, idx2);
+			}
+		}
+
+
         function formSubmit2($document,inputForm,index){
             var validateForm = $($document.getElementById(inputForm)).validate({
                 submitHandler: function(form){
@@ -643,8 +655,61 @@
 <%--					</ul>--%>
 <%--				</div>--%>
 				<div class="tab-content">
+					<div id="tab-12" class="tab-pane active">
+						<div class="form-group layui-row first lw9">
+							<div class="form-group-label"><h2>客户基础信息</h2>
+								<div class="layui-item layui-col-sm6 lw7" id="">
+									<br>
+									<label class="layui-form-label"><span class="require-item">*</span>客户名称:&nbsp;&nbsp;</label>
+									<div class="layui-input-block">
+										<form:input path="workClientInfo.name" placeholder="请输入客户名称" htmlEscape="false" id=""  class="form-control required layui-input"/>
+										<span id="ph" style="color:#cc5965"></span>
+									</div>
+									<div id="fuzzyQuerySelect"
+										 style="z-index:1;display:none;background-color:white; position: absolute; width:333px;left:120px; border: 1px solid gray;">
+									</div>
+								</div>
+
+								<div class="layui-item layui-col-sm6 lw7">
+									<br>
+									<label class="layui-form-label"><span class="require-item">*</span>公司电话:</label>
+									<div class="layui-input-block">
+										<form:input path="telephone" placeholder="请输入公司电话" htmlEscape="false" id="telephone" class="form-control required layui-input"/>
+
+									</div>
+								</div>
+								<div class="layui-item layui-col-sm6 lw7">
+									<label class="layui-form-label double-line"><span class="require-item">*</span>拥有统一社会信用代码:</label>
+									<div class="layui-input-block">&nbsp;&nbsp;
+										<form:radiobutton id="hasUscc" class="" name="hasUscc" path="" lay-filter="hasUscc" value="1" label="是" checked="true" />
+										<form:radiobutton id="hasUscc" class="" name="hasUscc" path="" lay-filter="hasUscc" value="2" label="否" />
+									</div>
+								</div>
+								<div class="layui-item layui-col-sm6 lw7 companyType_uscCode">
+									<br>
+									<label class="layui-form-label double-line"><span class="require-item">*</span>统一社会信用代码:</label>
+									<div class="layui-input-block">
+										<form:input path="uscCode" placeholder="请输入统一社会信用代码" htmlEscape="false" id="uscCode"   class="form-control required isUscCode layui-input"/>
+										<input type="hidden" id="oldUscCode" value=""/>
+										<span id="uscPh" style="color:#cc5965"></span>
+									</div>
+								</div>
+<%--								<div class="layui-item layui-col-sm6 lw7 companyType_uscCode">--%>
+<%--									<br>--%>
+<%--									<label class="layui-form-label double-line"><span class="require-item">*</span>统一社会信用代码:</label>--%>
+<%--									<div>--%>
+<%--										<form:input path="" name="uscCode" placeholder="统一社会信用代码" htmlEscape="false" id="uscCode" class="form-control required layui-input"/>--%>
+<%--										<input type="hidden" id="oldUscCode" value="${workClientInfo.uscCode}"/>--%>
+<%--										<span id="uscPh" style="color:#cc5965"></span>--%>
+<%--									</div>--%>
+<%--								</div><br>--%>
+							</div>
+						</div>
+					</div>
+
 					<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"><span class="require-item">*</span>合同来源:</label>
@@ -688,6 +753,7 @@
 									<input placeholder="请输入合同终止日期" style="background-color: #fff" class="laydate-icondate form-control layui-input layer-date laydate-icon" readonly="readonly" id="closingDate" name="closingDate" value="<fmt:formatDate value="${workContractInfo.closingDate}" pattern="yyyy-MM-dd"/>">
 								</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 readOnlyFFF">
@@ -703,6 +769,12 @@
 									<input type="radio" title="金额合同" lay-filter="jine" name="contractInformation" checked id="jine" value="0" <c:if test="${workContractInfo.contractInformation=='0'}">checked</c:if>>
 									<input type="radio" title="费率合同" lay-filter="jine" name="contractInformation" id="jine1" value="1" <c:if test="${workContractInfo.contractInformation=='1'}">checked</c:if>>
 								</div>
+								<br>
+								<label class="layui-form-label double-line"><span class="require-item">*</span>单位:</label>
+								<div class="layui-input-block">
+									<input type="radio" name="company" value="0" title="东兴"<c:if test="${workContractInfo.company=='0'}">checked</c:if>>
+									<input type="radio" name="company" value="1" title="赣能"<c:if test="${workContractInfo.company=='1'}">checked</c:if> >
+								</div>
 							</div>
 							<div class="layui-item layui-col-sm6">
 								<label class="layui-form-label double-line"><span class="require-item">*</span>合同金额 (元)<br/>预计金额:</label>
@@ -711,11 +783,18 @@
 								</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">
+									<form:input path="contractNum" placeholder="请输入合同编号" htmlEscape="false" class="form-control layui-input"/>
+								</div>
+							</div>
+							<div class="layui-item layui-col-sm6">
 								<label class="layui-form-label">对方合同编号:</label>
 								<div class="layui-input-block">
 									<form:input path="anotherContractNum" placeholder="请输入对方合同编号" htmlEscape="false" class="form-control layui-input"/>
 								</div>
 							</div>
+
 							<div class="layui-item layui-col-sm12" id="chargeCriterionList" >
 								<label class="layui-form-label">收费标准:</label>
 								<div class="layui-input-block">
@@ -838,6 +917,135 @@
 							</div>
 						</div>--%>
 						<div class="form-group layui-row">
+							<div class="form-group-label"><h2>联系人信息</h2></div>
+							<div class="layui-item nav-btns">
+								<a class="nav-btn nav-btn-add"
+								   onclick="addRow('#workClientLinkmanList', workClientLinkmanRowIdx, workClientLinkmanTpl);workClientLinkmanRowIdx = workClientLinkmanRowIdx + 1;"
+								   title="新增"><i class="fa fa-plus"></i> 新增</a>
+							</div>
+							<div class="layui-item layui-col-xs12 form-table-container">
+								<table id="contentTable" class="table table-bordered table-condensed can-edit">
+									<thead>
+									<tr>
+										<th class="hide"></th>
+										<th width="100px"><font color="red">*</font>联系人姓名</th>
+										<th width="100px">部门</th>
+										<th width="100px">职务</th>
+										<th width="100px">QQ</th>
+										<th width="100px">联系方式1</th>
+										<th width="100px">联系方式2</th>
+										<th width="150px">E-mail</th>
+										<th width="100px">操作</th>
+									</tr>
+									</thead>
+									<tbody id="workClientLinkmanList">
+										<%--<c:forEach items="${workClientInfo.workClientLinkmanList}" var="workClientLinkman" varStatus="status">
+                                            <tr>
+                                                   <td class="hide">
+                                                       <input id="workClientLinkmanList${status.index + 1}_id"
+                                                              name="workClientLinkmanList[${status.index + 1}].id" type="hidden"
+                                                              value="${workClientLinkman.id}"/>
+                                                       <input id="workClientLinkmanList${status.index + 1}_delFlag"
+                                                              name="workClientLinkmanList[${status.index + 1}].delFlag" type="hidden"
+                                                              value="0" readonly/>
+                                                   </td>
+                                                   <td><input id="workClientLinkmanList${status.index + 1}_name"
+                                                              name="workClientLinkmanList[${status.index + 1}].name" type="text"
+                                                              value="${workClientLinkman.name}" readonly class="form-control required"/></td>
+                                                   <td><input id="workClientLinkmanList${status.index + 1}_office"
+                                                              name="workClientLinkmanList[${status.index + 1}].office" type="text"
+                                                              value="${workClientLinkman.office}" readonly class="form-control "/></td>
+                                                   <td><input  id="workClientLinkmanList${status.index + 1}_position"
+                                                              name="workClientLinkmanList[${status.index + 1}].position" type="text"
+                                                              value="${workClientLinkman.position}" readonly class="form-control "/></td>
+                                                   <td><input id="workClientLinkmanList${status.index + 1}_qq"
+                                                              name="workClientLinkmanList[${status.index + 1}].qq"
+                                                              type="text" value="${workClientLinkman.qq}" readonly class="form-control digits"/>
+                                                   </td>
+                                                   <td><input  id="workClientLinkmanList${status.index + 1}_linkMobile"
+                                                              name="workClientLinkmanList[${status.index + 1}].linkMobile" type="text"
+                                                              value="${workClientLinkman.linkMobile}" readonly class="form-control isPhone"/></td>
+                                                   <td><input placeholder="请输入联系方式2" id="workClientLinkmanList${status.index + 1}_linkPhone"
+                                                              name="workClientLinkmanList[${status.index + 1}].linkPhone" type="text"
+                                                              value="${workClientLinkman.linkPhone}" readonly class="form-control isTel"/></td>
+                                                   <td><input  id="workClientLinkmanList{{idx}}_email"
+                                                              name="workClientLinkmanList[${status.index + 1}].email" type="text"
+                                                              value="${workClientLinkman.email}"
+                                                              class="form-control email" readonly/></td>
+                                                   <td class="text-center op-td">
+                                                    <span class="op-btn op-btn-delete"
+                                                          onclick="delRow(this, '#workClientLinkmanList${status.index + 1}')"
+                                                          title="删除"><i
+                                                            class="glyphicon glyphicon-remove"></i>&nbsp;删除</span>
+                                                   </td>
+                                            </tr>
+                                        </c:forEach>--%>
+									</tbody>
+								</table>
+								<script type="text/template" id="workClientLinkmanTpl">//<!--
+            <tr id="workClientLinkmanList{{idx}}">
+                <td class="hide">
+                    <input id="workClientLinkmanList{{idx}}_id" name="workClientLinkmanList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
+                    <input id="workClientLinkmanList{{idx}}_delFlag" name="workClientLinkmanList[{{idx}}].delFlag" type="hidden" value="0"/>
+                </td>
+
+                <td>
+                    <input  placeholder="请输入联系人姓名" id="workClientLinkmanList{{idx}}_name" name="workClientLinkmanList[{{idx}}].name" type="text" value="{{row.name}}"    class="form-control required"/>
+                </td>
+                <td>
+                    <input placeholder="请输入部门" id="workClientLinkmanList{{idx}}_office" name="workClientLinkmanList[{{idx}}].office" type="text" value="{{row.office}}"    class="form-control "/>
+                </td>
+                <td>
+                    <input placeholder="请输入职务" id="workClientLinkmanList{{idx}}_position" name="workClientLinkmanList[{{idx}}].position" type="text" value="{{row.position}}"    class="form-control "/>
+                </td>
+
+
+                <td>
+                    <input placeholder="请输入QQ" id="workClientLinkmanList{{idx}}_qq" name="workClientLinkmanList[{{idx}}].qq" type="text" value="{{row.qq}}"    class="form-control digits"/>
+                </td>
+
+
+                <td>
+                    <input placeholder="请输入联系方式1" id="workClientLinkmanList{{idx}}_linkPhone" name="workClientLinkmanList[{{idx}}].linkPhone" type="text" value="{{row.linkPhone}}"    class="form-control isTel"/>
+                </td>
+
+
+                <td>
+                    <input placeholder="请输入联系方式2" id="workClientLinkmanList{{idx}}_linkMobile" name="workClientLinkmanList[{{idx}}].linkMobile" type="text" value="{{row.linkMobile}}"    class="form-control isPhone"/>
+                </td>
+
+
+                <td>
+                    <input placeholder="请输入E-mail" id="workClientLinkmanList{{idx}}_email" name="workClientLinkmanList[{{idx}}].email" type="text" value="{{row.email}}"    class="form-control email"/>
+                </td>
+
+                <td class="text-center op-td" >
+                    {{#delBtn}}<span class="op-btn op-btn-delete" onclick="delRow(this, '#workClientLinkmanList{{idx}}')" title="删除"><i class="glyphicon glyphicon-remove"></i>&nbsp;删除</span>{{/delBtn}}
+                </td>
+            </tr>//-->
+								</script>
+								<script type="text/javascript">
+									var workClientLinkmanRowIdx = 0,
+											workClientLinkmanTpl = $("#workClientLinkmanTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, "");
+									var workClientBankRowIdx = 0,
+											workClientBankTpl = $("#workClientBankTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, "");
+									$(document).ready(function () {
+										var data = ${fns:toJson(workClientInfo.workClientLinkmanList)};
+										for (var i = 0; i < data.length; i++) {
+											addRow('#workClientLinkmanList', workClientLinkmanRowIdx, workClientLinkmanTpl, data[i]);
+											workClientLinkmanRowIdx = workClientLinkmanRowIdx + 1;
+										}
+										var dataBank = ${fns:toJson(workClientInfo.workClientBankList)};
+										for (var i = 0; i < dataBank.length; i++) {
+											addRow('#workClientBankList', workClientBankRowIdx, workClientBankTpl, dataBank[i]);
+											workClientBankRowIdx = workClientBankRowIdx + 1;
+										}
+									});
+
+								</script>
+							</div>
+						</div>
+						<div class="form-group layui-row">
 							<div class="form-group-label"><h2>合同附件信息</h2></div>
 							<div class="layui-item nav-btns">
 								<a id="attachment_btn" class="nav-btn nav-btn-add" title="添加附件"><i class="fa fa-plus"></i>&nbsp;添加附件</a>
@@ -1072,6 +1280,33 @@
 				}
 			})
 		});
+		layui.use(['form', 'layer'], function () {
+			var form = layui.form;
+			//单选监听器
+			layui.form.on('radio(hasUscc)', function(data){
+				var span=data.value;
+				if("2"==span){
+					$(".companyType_uscCode").hide();
+					/*$('input[name="uscCode"]').attr("class","form-control");*/
+					$('input[name="uscCode"]').val("");
+				}else {
+					$(".companyType_uscCode").show();
+					/*$('input[name="uscCode"]').attr("class","form-control required isUscCode layui-input");*/
+				}
+			});
+
+		});
+		function disUscc(hasUscc) {
+			if("2"==hasUscc){
+				$(".companyType_uscCode").hide();
+				/*$('input[name="uscCode"]').attr("class","form-control");*/
+				$('input[name="uscCode"]').val("");
+			}else {
+				$(".companyType_uscCode").show();
+				/*$('input[name="uscCode"]').attr("class","form-control required isUscCode layui-input");*/
+			}
+		}
+
 	</script>
 	<script type="text/javascript">
 		var workClientInfoListRowIdx = 0,

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

@@ -93,7 +93,7 @@
                 maxmin: false, //开启最大化最小化按钮
                 skin:"three-btns",
                 content: url ,
-                btn: ['送审','暂存','关闭'],
+                btn: ['提交','暂存','关闭'],
                 btn1: function(index, layero){
                     var body = top.layer.getChildFrame('body', index);
                     var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
@@ -145,7 +145,7 @@
                 maxmin: false, //开启最大化最小化按钮
                 skin:"three-btns",
                 content: url ,
-                btn: ['送审','关闭'],
+                btn: ['提交','关闭'],
                 btn1: function(index, layero){
                     var body = top.layer.getChildFrame('body', index);
                     var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
@@ -218,7 +218,7 @@
                 maxmin: false, //开启最大化最小化按钮
                 content: url ,
                 skin:"three-btns",
-                btn: ['送审','暂存','关闭'],
+                btn: ['提交','暂存','关闭'],
                 btn1: function(index, layero){
                     var body = top.layer.getChildFrame('body', index);
                     var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
@@ -273,7 +273,7 @@
                 maxmin: true, //开启最大化最小化按钮
                 skin:"two-btns",
                 content: url,
-                btn: ['送审', /*'撤回',*/ '关闭'],
+                btn: ['提交', /*'撤回',*/ '关闭'],
                 btn1: function (index, layero) {
                     var body = top.layer.getChildFrame('body', index);
                     var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();