|
@@ -5,14 +5,18 @@ import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.google.gson.JsonObject;
|
|
import com.google.gson.JsonObject;
|
|
|
import com.management.platform.entity.*;
|
|
import com.management.platform.entity.*;
|
|
|
|
|
+import com.management.platform.mapper.InformationMapper;
|
|
|
|
|
+import com.management.platform.mapper.ProjectLevelMapper;
|
|
|
import com.management.platform.mapper.ProjectMapper;
|
|
import com.management.platform.mapper.ProjectMapper;
|
|
|
import com.management.platform.mapper.UserMapper;
|
|
import com.management.platform.mapper.UserMapper;
|
|
|
import com.management.platform.service.*;
|
|
import com.management.platform.service.*;
|
|
|
import com.management.platform.service.impl.WxCorpInfoServiceImpl;
|
|
import com.management.platform.service.impl.WxCorpInfoServiceImpl;
|
|
|
import com.management.platform.util.HttpRespMsg;
|
|
import com.management.platform.util.HttpRespMsg;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.StringUtils;
|
|
import org.springframework.util.StringUtils;
|
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
@@ -66,6 +70,10 @@ public class ProjectApprovalController {
|
|
|
private WxCorpInfoService wxCorpInfoService;
|
|
private WxCorpInfoService wxCorpInfoService;
|
|
|
@Resource
|
|
@Resource
|
|
|
private WxCorpTemplateService wxCorpTemplateService;
|
|
private WxCorpTemplateService wxCorpTemplateService;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private ProjectLevelMapper projectLevelMapper;
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private InformationMapper informationMapper;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 分页获取项目列表
|
|
* 分页获取项目列表
|
|
@@ -82,9 +90,10 @@ public class ProjectApprovalController {
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public HttpRespMsg editProjectApproval(@RequestBody ProjectApproval projectApproval) throws Exception {
|
|
public HttpRespMsg editProjectApproval(@RequestBody ProjectApproval projectApproval) throws Exception {
|
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
|
- String[] arr=new String[]{"正常","紧急","重要","重要且紧急","低风险","中风险","高风险"};
|
|
|
|
|
|
|
+// String[] arr=new String[]{"正常","紧急","重要","重要且紧急","低风险","中风险","高风险"};
|
|
|
User user = userMapper.selectById(request.getHeader("token"));
|
|
User user = userMapper.selectById(request.getHeader("token"));
|
|
|
Integer companyId = user.getCompanyId();
|
|
Integer companyId = user.getCompanyId();
|
|
|
|
|
+ List<ProjectLevel> levelList = projectLevelMapper.selectList(new QueryWrapper<ProjectLevel>().eq("company_id", companyId));
|
|
|
WxCorpInfo wxCorpInfo = wxCorpInfoService.getOne(new LambdaQueryWrapper<WxCorpInfo>().eq(WxCorpInfo::getCompanyId, companyId));
|
|
WxCorpInfo wxCorpInfo = wxCorpInfoService.getOne(new LambdaQueryWrapper<WxCorpInfo>().eq(WxCorpInfo::getCompanyId, companyId));
|
|
|
List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, companyId));
|
|
List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, companyId));
|
|
|
List<ProjectCategory> categoryList = projectCategoryService.list(new LambdaQueryWrapper<ProjectCategory>().eq(ProjectCategory::getCompanyId, companyId));
|
|
List<ProjectCategory> categoryList = projectCategoryService.list(new LambdaQueryWrapper<ProjectCategory>().eq(ProjectCategory::getCompanyId, companyId));
|
|
@@ -198,84 +207,107 @@ public class ProjectApprovalController {
|
|
|
}
|
|
}
|
|
|
if(projectApproval.getStatus()!=1){
|
|
if(projectApproval.getStatus()!=1){
|
|
|
if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
|
|
if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
|
|
|
- //更新审核人 发送到企业微信完成审核动作
|
|
|
|
|
- String detail = wxCorpInfoService.getTemplateDetail(companyId);
|
|
|
|
|
- if(detail!=null&&!StringUtils.isEmpty(detail)){
|
|
|
|
|
- DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
|
|
- JSONObject resultOb = JSONObject.parseObject(detail);
|
|
|
|
|
- JSONObject template_content = resultOb.getJSONObject("template_content");
|
|
|
|
|
- JSONArray controls = template_content.getJSONArray("controls");
|
|
|
|
|
- Map<String,Object> templateMap=new HashMap<>();
|
|
|
|
|
- WxCorpTemplate template = wxCorpTemplateService.getById(companyId);
|
|
|
|
|
- JSONObject requestData=new JSONObject();
|
|
|
|
|
- requestData.put("template_id",template.getTemplateId());
|
|
|
|
|
- requestData.put("creator_userid",user.getCorpwxUserid());
|
|
|
|
|
- //审核模式 0-通过接口指定审批人、抄送人(此时approver、notifyer等参数可用);1-使用此模板在管理后台设置的审批流程(需要保证审批流程中没有“申请人自选”节点),支持条件审批
|
|
|
|
|
- requestData.put("use_template_approver",1);
|
|
|
|
|
- JSONObject apply_data=new JSONObject();
|
|
|
|
|
- JSONArray contents=new JSONArray();
|
|
|
|
|
- for (int i = 0; i < controls.size(); i++) {
|
|
|
|
|
- JSONObject item = controls.getJSONObject(i);
|
|
|
|
|
- JSONObject property = item.getJSONObject("property");
|
|
|
|
|
- //控件id指定到指定控件
|
|
|
|
|
- String templateId = property.getString("id");
|
|
|
|
|
- //控件名称 这里为了统一工时管家格式 限制企业需要用到我们提供的名称(项目编号 项目名称 项目分类 项目类型 项目经理 级别 合同金额 计划开始日期 计划结束日期)
|
|
|
|
|
- JSONArray titleArray = property.getJSONArray("title");
|
|
|
|
|
- //控件类型 在这里统一用Text Text-文本;Textarea-多行文本;Number-数字;Money-金额;Date-日期/日期+时间;Selector-单选/多选;Contact-成员/部门;Tips-说明文字;File-附件;Table-明细;Attendance-假勤控件;Vacation-请假控件;Location-位置;RelatedApproval-关联审批单;Formula-公式;DateRange-时长;BankAccount-收款账户
|
|
|
|
|
- String control = property.getString("control");
|
|
|
|
|
- //是否必填
|
|
|
|
|
- String require = property.getString("require");
|
|
|
|
|
- //是否打印
|
|
|
|
|
- String un_print = property.getString("un_print");
|
|
|
|
|
- JSONObject content=new JSONObject();
|
|
|
|
|
- content.put("control",control);
|
|
|
|
|
- content.put("id",templateId);
|
|
|
|
|
- JSONObject value=new JSONObject();
|
|
|
|
|
- JSONObject titleOb = titleArray.getJSONObject(0);
|
|
|
|
|
- switch (titleOb.getString("text")){
|
|
|
|
|
- case "项目编号":
|
|
|
|
|
- value.put("text",projectApproval.getProjectCode()==null?"":projectApproval.getProjectCode());
|
|
|
|
|
- break;
|
|
|
|
|
- case "项目名称":
|
|
|
|
|
- value.put("text",projectApproval.getProjectName());
|
|
|
|
|
- break;
|
|
|
|
|
- case "项目分类":
|
|
|
|
|
- value.put("text",projectApproval.getCategoryName()==null?"":projectApproval.getCategoryName());
|
|
|
|
|
- break;
|
|
|
|
|
- case "项目类型":
|
|
|
|
|
- value.put("text",projectApproval.getIsPublic()==0?"正式项目":"非项目");
|
|
|
|
|
- break;
|
|
|
|
|
- case "项目经理":
|
|
|
|
|
- value.put("text",projectApproval.getInchargerName()==null?"":("$userName="+projectApproval.getInchargerName()+"$"));
|
|
|
|
|
- break;
|
|
|
|
|
- case "级别":
|
|
|
|
|
- value.put("text",arr[projectApproval.getLevel()-1]);
|
|
|
|
|
- break;
|
|
|
|
|
- case "合同金额":
|
|
|
|
|
- value.put("text",projectApproval.getContractAmount()==null?String.valueOf(0):String.valueOf(projectApproval.getContractAmount()));
|
|
|
|
|
- break;
|
|
|
|
|
- case "计划开始日期":
|
|
|
|
|
- value.put("text",projectApproval.getPlanStartDate()==null?"":df.format(projectApproval.getPlanStartDate()));
|
|
|
|
|
- break;
|
|
|
|
|
- case "计划结束日期":
|
|
|
|
|
- value.put("text",projectApproval.getPlanEndDate()==null?"":df.format(projectApproval.getPlanEndDate()));
|
|
|
|
|
- break;
|
|
|
|
|
|
|
+ //发送企业微信通知消息
|
|
|
|
|
+ if (projectApproval.getProjectApprovalCheckList().size() > 0) {
|
|
|
|
|
+ //取第一个审核人,发送消息通知
|
|
|
|
|
+ String checkerId = projectApproval.getProjectApprovalCheckList().get(0).getUserId();
|
|
|
|
|
+ User checker = userMapper.selectById(checkerId);
|
|
|
|
|
+ if (checker != null) {
|
|
|
|
|
+ StringBuilder sb=new StringBuilder();
|
|
|
|
|
+ sb.append("立项审批,项目["+projectApproval.getProjectName()+"]待您审核");
|
|
|
|
|
+ String corpwxUserid = checker.getCorpwxUserid();
|
|
|
|
|
+ if (corpwxUserid != null) {
|
|
|
|
|
+ wxCorpInfoService.sendWXCorpMsg(wxCorpInfo, corpwxUserid,sb.toString(), "projectApproval", WxCorpInfoServiceImpl.TEXT_CARD_MSG_PROJECT_CREATE);
|
|
|
}
|
|
}
|
|
|
- content.put("value",value);
|
|
|
|
|
- contents.add(content);
|
|
|
|
|
|
|
+ //系统消息
|
|
|
|
|
+ Information information=new Information();
|
|
|
|
|
+ information.setType(12);
|
|
|
|
|
+ information.setUserId(checkerId);
|
|
|
|
|
+ information.setTime(LocalDateTime.now());
|
|
|
|
|
+ information.setContent("projectApproval");
|
|
|
|
|
+ information.setMsg("立项审批,项目["+projectApproval.getProjectName()+"]待您审核");
|
|
|
|
|
+ informationMapper.insert(information);
|
|
|
}
|
|
}
|
|
|
- apply_data.put("contents",contents);
|
|
|
|
|
- requestData.put("apply_data",apply_data);
|
|
|
|
|
- requestData.put("approver",new JSONArray());
|
|
|
|
|
- requestData.put("summary_list",new JSONArray());
|
|
|
|
|
- System.out.println("===============>发送到企业微信的数据"+requestData);
|
|
|
|
|
- //发送到企业微信
|
|
|
|
|
- String sp_no = wxCorpInfoService.applyEvent(request, requestData);
|
|
|
|
|
- projectApproval.setWxCorpSpNo(sp_no);
|
|
|
|
|
- projectApprovalService.updateById(projectApproval);
|
|
|
|
|
- }else {
|
|
|
|
|
- throw new Exception("企业暂未同步服务商审批模板,推送企业微信审批失败,请联系服务商!");
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ //更新审核人 发送到企业微信完成审核动作
|
|
|
|
|
+// String detail = wxCorpInfoService.getTemplateDetail(companyId);
|
|
|
|
|
+// if(detail!=null&&!StringUtils.isEmpty(detail)){
|
|
|
|
|
+// DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
|
|
+// JSONObject resultOb = JSONObject.parseObject(detail);
|
|
|
|
|
+// JSONObject template_content = resultOb.getJSONObject("template_content");
|
|
|
|
|
+// JSONArray controls = template_content.getJSONArray("controls");
|
|
|
|
|
+// Map<String,Object> templateMap=new HashMap<>();
|
|
|
|
|
+// WxCorpTemplate template = wxCorpTemplateService.getById(companyId);
|
|
|
|
|
+// JSONObject requestData=new JSONObject();
|
|
|
|
|
+// requestData.put("template_id",template.getTemplateId());
|
|
|
|
|
+// requestData.put("creator_userid",user.getCorpwxUserid());
|
|
|
|
|
+// //审核模式 0-通过接口指定审批人、抄送人(此时approver、notifyer等参数可用);1-使用此模板在管理后台设置的审批流程(需要保证审批流程中没有“申请人自选”节点),支持条件审批
|
|
|
|
|
+// requestData.put("use_template_approver",1);
|
|
|
|
|
+// JSONObject apply_data=new JSONObject();
|
|
|
|
|
+// JSONArray contents=new JSONArray();
|
|
|
|
|
+// for (int i = 0; i < controls.size(); i++) {
|
|
|
|
|
+// JSONObject item = controls.getJSONObject(i);
|
|
|
|
|
+// JSONObject property = item.getJSONObject("property");
|
|
|
|
|
+// //控件id指定到指定控件
|
|
|
|
|
+// String templateId = property.getString("id");
|
|
|
|
|
+// //控件名称 这里为了统一工时管家格式 限制企业需要用到我们提供的名称(项目编号 项目名称 项目分类 项目类型 项目经理 级别 合同金额 计划开始日期 计划结束日期)
|
|
|
|
|
+// JSONArray titleArray = property.getJSONArray("title");
|
|
|
|
|
+// //控件类型 在这里统一用Text Text-文本;Textarea-多行文本;Number-数字;Money-金额;Date-日期/日期+时间;Selector-单选/多选;Contact-成员/部门;Tips-说明文字;File-附件;Table-明细;Attendance-假勤控件;Vacation-请假控件;Location-位置;RelatedApproval-关联审批单;Formula-公式;DateRange-时长;BankAccount-收款账户
|
|
|
|
|
+// String control = property.getString("control");
|
|
|
|
|
+// //是否必填
|
|
|
|
|
+// String require = property.getString("require");
|
|
|
|
|
+// //是否打印
|
|
|
|
|
+// String un_print = property.getString("un_print");
|
|
|
|
|
+// JSONObject content=new JSONObject();
|
|
|
|
|
+// content.put("control",control);
|
|
|
|
|
+// content.put("id",templateId);
|
|
|
|
|
+// JSONObject value=new JSONObject();
|
|
|
|
|
+// JSONObject titleOb = titleArray.getJSONObject(0);
|
|
|
|
|
+// switch (titleOb.getString("text")){
|
|
|
|
|
+// case "项目编号":
|
|
|
|
|
+// value.put("text",projectApproval.getProjectCode()==null?"":projectApproval.getProjectCode());
|
|
|
|
|
+// break;
|
|
|
|
|
+// case "项目名称":
|
|
|
|
|
+// value.put("text",projectApproval.getProjectName());
|
|
|
|
|
+// break;
|
|
|
|
|
+// case "项目分类":
|
|
|
|
|
+// value.put("text",projectApproval.getCategoryName()==null?"":projectApproval.getCategoryName());
|
|
|
|
|
+// break;
|
|
|
|
|
+// case "项目类型":
|
|
|
|
|
+// value.put("text",projectApproval.getIsPublic()==0?"正式项目":"非项目");
|
|
|
|
|
+// break;
|
|
|
|
|
+// case "项目经理":
|
|
|
|
|
+// value.put("text",projectApproval.getInchargerName()==null?"":("$userName="+projectApproval.getInchargerName()+"$"));
|
|
|
|
|
+// break;
|
|
|
|
|
+// case "级别":
|
|
|
|
|
+// value.put("text",levelList.stream().filter(p->p.getId().equals(projectApproval.getLevel())).findFirst().get().getProjectLevelName());
|
|
|
|
|
+// break;
|
|
|
|
|
+// case "合同金额":
|
|
|
|
|
+// value.put("text",projectApproval.getContractAmount()==null?String.valueOf(0):String.valueOf(projectApproval.getContractAmount()));
|
|
|
|
|
+// break;
|
|
|
|
|
+// case "计划开始日期":
|
|
|
|
|
+// value.put("text",projectApproval.getPlanStartDate()==null?"":df.format(projectApproval.getPlanStartDate()));
|
|
|
|
|
+// break;
|
|
|
|
|
+// case "计划结束日期":
|
|
|
|
|
+// value.put("text",projectApproval.getPlanEndDate()==null?"":df.format(projectApproval.getPlanEndDate()));
|
|
|
|
|
+// break;
|
|
|
|
|
+// }
|
|
|
|
|
+// content.put("value",value);
|
|
|
|
|
+// contents.add(content);
|
|
|
|
|
+// }
|
|
|
|
|
+// apply_data.put("contents",contents);
|
|
|
|
|
+// requestData.put("apply_data",apply_data);
|
|
|
|
|
+// requestData.put("approver",new JSONArray());
|
|
|
|
|
+// requestData.put("summary_list",new JSONArray());
|
|
|
|
|
+// System.out.println("===============>发送到企业微信的数据"+requestData);
|
|
|
|
|
+// //发送到企业微信
|
|
|
|
|
+// String sp_no = wxCorpInfoService.applyEvent(request, requestData);
|
|
|
|
|
+// projectApproval.setWxCorpSpNo(sp_no);
|
|
|
|
|
+// projectApprovalService.updateById(projectApproval);
|
|
|
|
|
+// }else {
|
|
|
|
|
+// throw new Exception("企业暂未同步服务商审批模板,推送企业微信审批失败,请联系服务商!");
|
|
|
|
|
+// }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
return msg;
|
|
return msg;
|
|
@@ -285,9 +317,10 @@ public class ProjectApprovalController {
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public HttpRespMsg tempSave(@RequestBody ProjectApproval projectApproval) throws Exception{
|
|
public HttpRespMsg tempSave(@RequestBody ProjectApproval projectApproval) throws Exception{
|
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
|
- String[] arr=new String[]{"正常","紧急","重要","重要且紧急","低风险","中风险","高风险"};
|
|
|
|
|
|
|
+// String[] arr=new String[]{"正常","紧急","重要","重要且紧急","低风险","中风险","高风险"};
|
|
|
User user = userMapper.selectById(request.getHeader("token"));
|
|
User user = userMapper.selectById(request.getHeader("token"));
|
|
|
Integer companyId = user.getCompanyId();
|
|
Integer companyId = user.getCompanyId();
|
|
|
|
|
+
|
|
|
WxCorpInfo wxCorpInfo = wxCorpInfoService.getOne(new LambdaQueryWrapper<WxCorpInfo>().eq(WxCorpInfo::getCompanyId, companyId));
|
|
WxCorpInfo wxCorpInfo = wxCorpInfoService.getOne(new LambdaQueryWrapper<WxCorpInfo>().eq(WxCorpInfo::getCompanyId, companyId));
|
|
|
List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, companyId));
|
|
List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, companyId));
|
|
|
List<ProjectCategory> categoryList = projectCategoryService.list(new LambdaQueryWrapper<ProjectCategory>().eq(ProjectCategory::getCompanyId, companyId));
|
|
List<ProjectCategory> categoryList = projectCategoryService.list(new LambdaQueryWrapper<ProjectCategory>().eq(ProjectCategory::getCompanyId, companyId));
|
|
@@ -401,82 +434,26 @@ public class ProjectApprovalController {
|
|
|
if(projectApproval.getStatus()==-1){
|
|
if(projectApproval.getStatus()==-1){
|
|
|
if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
|
|
if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
|
|
|
//更新审核人 发送到企业微信完成审核动作
|
|
//更新审核人 发送到企业微信完成审核动作
|
|
|
- String detail = wxCorpInfoService.getTemplateDetail(companyId);
|
|
|
|
|
- if(detail!=null&&!StringUtils.isEmpty(detail)){
|
|
|
|
|
- DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
|
|
- JSONObject resultOb = JSONObject.parseObject(detail);
|
|
|
|
|
- JSONObject template_content = resultOb.getJSONObject("template_content");
|
|
|
|
|
- JSONArray controls = template_content.getJSONArray("controls");
|
|
|
|
|
- Map<String,Object> templateMap=new HashMap<>();
|
|
|
|
|
- WxCorpTemplate template = wxCorpTemplateService.getById(companyId);
|
|
|
|
|
- JSONObject requestData=new JSONObject();
|
|
|
|
|
- requestData.put("template_id",template.getTemplateId());
|
|
|
|
|
- requestData.put("creator_userid",user.getCorpwxUserid());
|
|
|
|
|
- //审核模式 0-通过接口指定审批人、抄送人(此时approver、notifyer等参数可用);1-使用此模板在管理后台设置的审批流程(需要保证审批流程中没有“申请人自选”节点),支持条件审批
|
|
|
|
|
- requestData.put("use_template_approver",1);
|
|
|
|
|
- JSONObject apply_data=new JSONObject();
|
|
|
|
|
- JSONArray contents=new JSONArray();
|
|
|
|
|
- for (int i = 0; i < controls.size(); i++) {
|
|
|
|
|
- JSONObject item = controls.getJSONObject(i);
|
|
|
|
|
- JSONObject property = item.getJSONObject("property");
|
|
|
|
|
- //控件id指定到指定控件
|
|
|
|
|
- String templateId = property.getString("id");
|
|
|
|
|
- //控件名称 这里为了统一工时管家格式 限制企业需要用到我们提供的名称(项目编号 项目名称 项目分类 项目类型 项目经理 级别 合同金额 计划开始日期 计划结束日期)
|
|
|
|
|
- JSONArray titleArray = property.getJSONArray("title");
|
|
|
|
|
- //控件类型 在这里统一用Text Text-文本;Textarea-多行文本;Number-数字;Money-金额;Date-日期/日期+时间;Selector-单选/多选;Contact-成员/部门;Tips-说明文字;File-附件;Table-明细;Attendance-假勤控件;Vacation-请假控件;Location-位置;RelatedApproval-关联审批单;Formula-公式;DateRange-时长;BankAccount-收款账户
|
|
|
|
|
- String control = property.getString("control");
|
|
|
|
|
- //是否必填
|
|
|
|
|
- String require = property.getString("require");
|
|
|
|
|
- //是否打印
|
|
|
|
|
- String un_print = property.getString("un_print");
|
|
|
|
|
- JSONObject content=new JSONObject();
|
|
|
|
|
- content.put("control",control);
|
|
|
|
|
- content.put("id",templateId);
|
|
|
|
|
- JSONObject value=new JSONObject();
|
|
|
|
|
- JSONObject titleOb = titleArray.getJSONObject(0);
|
|
|
|
|
- switch (titleOb.getString("text")){
|
|
|
|
|
- case "项目编号":
|
|
|
|
|
- value.put("text",projectApproval.getProjectCode()==null?"":projectApproval.getProjectCode());
|
|
|
|
|
- break;
|
|
|
|
|
- case "项目名称":
|
|
|
|
|
- value.put("text",projectApproval.getProjectName());
|
|
|
|
|
- break;
|
|
|
|
|
- case "项目分类":
|
|
|
|
|
- value.put("text",projectApproval.getCategoryName()==null?"":projectApproval.getCategoryName());
|
|
|
|
|
- break;
|
|
|
|
|
- case "项目类型":
|
|
|
|
|
- value.put("text",projectApproval.getIsPublic()==0?"正式项目":"非项目");
|
|
|
|
|
- break;
|
|
|
|
|
- case "项目经理":
|
|
|
|
|
- value.put("text",projectApproval.getInchargerName()==null?"":("$userName="+projectApproval.getInchargerName()+"$"));
|
|
|
|
|
- break;
|
|
|
|
|
- case "级别":
|
|
|
|
|
- value.put("text",arr[projectApproval.getLevel()-1]);
|
|
|
|
|
- break;
|
|
|
|
|
- case "合同金额":
|
|
|
|
|
- value.put("text",projectApproval.getContractAmount()==null?String.valueOf(0):String.valueOf(projectApproval.getContractAmount()));
|
|
|
|
|
- break;
|
|
|
|
|
- case "计划开始日期":
|
|
|
|
|
- value.put("text",projectApproval.getPlanStartDate()==null?"":df.format(projectApproval.getPlanStartDate()));
|
|
|
|
|
- break;
|
|
|
|
|
- case "计划结束日期":
|
|
|
|
|
- value.put("text",projectApproval.getPlanEndDate()==null?"":df.format(projectApproval.getPlanEndDate()));
|
|
|
|
|
- break;
|
|
|
|
|
|
|
+ if (projectApproval.getProjectApprovalCheckList().size() > 0) {
|
|
|
|
|
+ //取第一个审核人,发送消息通知
|
|
|
|
|
+ String checkerId = projectApproval.getProjectApprovalCheckList().get(0).getUserId();
|
|
|
|
|
+ User checker = userMapper.selectById(checkerId);
|
|
|
|
|
+ if (checker != null) {
|
|
|
|
|
+ StringBuilder sb=new StringBuilder();
|
|
|
|
|
+ sb.append("立项审批,项目["+projectApproval.getProjectName()+"]待您审核");
|
|
|
|
|
+ String corpwxUserid = checker.getCorpwxUserid();
|
|
|
|
|
+ if (corpwxUserid != null) {
|
|
|
|
|
+ wxCorpInfoService.sendWXCorpMsg(wxCorpInfo, corpwxUserid,sb.toString(), "projectApproval", WxCorpInfoServiceImpl.TEXT_CARD_MSG_PROJECT_CREATE);
|
|
|
}
|
|
}
|
|
|
- content.put("value",value);
|
|
|
|
|
- contents.add(content);
|
|
|
|
|
|
|
+ //系统消息
|
|
|
|
|
+ Information information=new Information();
|
|
|
|
|
+ information.setType(12);
|
|
|
|
|
+ information.setUserId(checkerId);
|
|
|
|
|
+ information.setTime(LocalDateTime.now());
|
|
|
|
|
+ information.setContent("projectApproval");
|
|
|
|
|
+ information.setMsg("立项审批,项目["+projectApproval.getProjectName()+"]待您审核");
|
|
|
|
|
+ informationMapper.insert(information);
|
|
|
}
|
|
}
|
|
|
- apply_data.put("contents",contents);
|
|
|
|
|
- requestData.put("apply_data",apply_data);
|
|
|
|
|
- requestData.put("approver",new JSONArray());
|
|
|
|
|
- requestData.put("summary_list",new JSONArray());
|
|
|
|
|
- System.out.println("===============>发送到企业微信的数据"+requestData);
|
|
|
|
|
- //发送到企业微信
|
|
|
|
|
- String sp_no = wxCorpInfoService.applyEvent(request, requestData);
|
|
|
|
|
- projectApproval.setWxCorpSpNo(sp_no);
|
|
|
|
|
- projectApprovalService.updateById(projectApproval);
|
|
|
|
|
- }else {
|
|
|
|
|
- throw new Exception("企业暂未同步服务商审批模板,推送企业微信审批失败,请联系服务商!");
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|