|
@@ -8,7 +8,9 @@ import com.jeeplus.common.config.Global;
|
|
import com.jeeplus.common.oss.OSSClientUtil;
|
|
import com.jeeplus.common.oss.OSSClientUtil;
|
|
import com.jeeplus.common.persistence.Page;
|
|
import com.jeeplus.common.persistence.Page;
|
|
import com.jeeplus.common.service.CrudService;
|
|
import com.jeeplus.common.service.CrudService;
|
|
-import com.jeeplus.common.utils.*;
|
|
|
|
|
|
+import com.jeeplus.common.utils.IdGen;
|
|
|
|
+import com.jeeplus.common.utils.MenuStatusEnum;
|
|
|
|
+import com.jeeplus.common.utils.StringUtils;
|
|
import com.jeeplus.modules.act.entity.Act;
|
|
import com.jeeplus.modules.act.entity.Act;
|
|
import com.jeeplus.modules.act.service.ActTaskService;
|
|
import com.jeeplus.modules.act.service.ActTaskService;
|
|
import com.jeeplus.modules.act.utils.ActUtils;
|
|
import com.jeeplus.modules.act.utils.ActUtils;
|
|
@@ -70,14 +72,15 @@ import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.web.multipart.commons.CommonsMultipartFile;
|
|
import org.springframework.web.multipart.commons.CommonsMultipartFile;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
-import java.awt.*;
|
|
|
|
-import java.io.*;
|
|
|
|
|
|
+import java.io.File;
|
|
|
|
+import java.io.FileInputStream;
|
|
|
|
+import java.io.IOException;
|
|
|
|
+import java.io.InputStream;
|
|
import java.lang.reflect.InvocationTargetException;
|
|
import java.lang.reflect.InvocationTargetException;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
import java.text.ParseException;
|
|
import java.text.ParseException;
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
-import java.util.List;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
* 合同管理Service
|
|
* 合同管理Service
|
|
@@ -266,6 +269,15 @@ public class WorkContractInfoService extends CrudService<WorkContractInfoDao, Wo
|
|
WorkContractInfo workContractInfo = super.get(id);
|
|
WorkContractInfo workContractInfo = super.get(id);
|
|
return workContractInfo;
|
|
return workContractInfo;
|
|
}
|
|
}
|
|
|
|
+ /**
|
|
|
|
+ * 仅查询合同信息
|
|
|
|
+ * @param id
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public WorkContractInfo getContractInfoByNum(WorkContractInfo contract) {
|
|
|
|
+ WorkContractInfo workContractInfo = dao.getContractInfoByNum(contract);
|
|
|
|
+ return workContractInfo;
|
|
|
|
+ }
|
|
public String getTotal(String id) {
|
|
public String getTotal(String id) {
|
|
WorkContractInfo workContractInfo = super.get(id);
|
|
WorkContractInfo workContractInfo = super.get(id);
|
|
String str = "";
|
|
String str = "";
|
|
@@ -567,9 +579,17 @@ public class WorkContractInfoService extends CrudService<WorkContractInfoDao, Wo
|
|
}
|
|
}
|
|
|
|
|
|
super.save(workContractInfo);
|
|
super.save(workContractInfo);
|
|
|
|
+ //根据合同编号删除所有合同联系人信息
|
|
|
|
+ workClientLinkmanDao.deleteContractLinkman(workContractInfo.getId());
|
|
|
|
+
|
|
List<WorkClientLinkman> linkmanList = workContractInfo.getWorkClientLinkmanList();
|
|
List<WorkClientLinkman> linkmanList = workContractInfo.getWorkClientLinkmanList();
|
|
|
|
+ //添加合同联系人信息
|
|
for (WorkClientLinkman clientLinkman : linkmanList) {
|
|
for (WorkClientLinkman clientLinkman : linkmanList) {
|
|
|
|
+ if(StringUtils.isBlank(clientLinkman.getName())){
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
clientLinkman.setContractNum(workContractInfo.getContractNum());
|
|
clientLinkman.setContractNum(workContractInfo.getContractNum());
|
|
|
|
+ clientLinkman.setContractId(workContractInfo.getId());
|
|
clientLinkman.preInsert();
|
|
clientLinkman.preInsert();
|
|
workClientLinkmanDao.insertLinkman(clientLinkman);
|
|
workClientLinkmanDao.insertLinkman(clientLinkman);
|
|
|
|
|
|
@@ -871,201 +891,9 @@ public class WorkContractInfoService extends CrudService<WorkContractInfoDao, Wo
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- //添加联系人集合
|
|
|
|
- List<WorkClientLinkman> linkmanList = workContractInfo.getWorkClientLinkmanList();
|
|
|
|
- for (WorkClientLinkman clientLinkman : linkmanList) {
|
|
|
|
- clientLinkman.setContractNum(workContractInfo.getContractNum());
|
|
|
|
- clientLinkman.preInsert();
|
|
|
|
- workClientLinkmanDao.insertLinkman(clientLinkman);
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-// System.out.println("===============================<<<<<<<<<<<<<<<<"+linkmanList);
|
|
|
|
- /*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("5");
|
|
workContractInfo.setContractState("5");
|
|
this.save(workContractInfo);
|
|
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");
|
|
|
|
return "";
|
|
return "";
|
|
}
|
|
}
|
|
|
|
|