Quellcode durchsuchen

Merge branch 'master' of http://47.100.37.243:10191/wutt/manHourHousekeeper

Guo1B0 vor 1 Jahr
Ursprung
Commit
9b7d3c0fc9

+ 7 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/Product.java

@@ -20,7 +20,7 @@ import org.springframework.format.annotation.DateTimeFormat;
  * </p>
  *
  * @author Seyason
- * @since 2024-03-08
+ * @since 2024-03-29
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -65,6 +65,12 @@ public class Product extends Model<Product> {
     @TableField("price")
     private BigDecimal price;
 
+    /**
+     * 库存数量
+     */
+    @TableField("inventory")
+    private Integer inventory;
+
     /**
      * 状态 0-下架 1-上架
      */

+ 2 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/resources/mapper/ProductMapper.xml

@@ -11,6 +11,7 @@
         <result column="type" property="type" />
         <result column="unit" property="unit" />
         <result column="price" property="price" />
+        <result column="inventory" property="inventory" />
         <result column="status" property="status" />
         <result column="incharger_id" property="inchargerId" />
         <result column="create_time" property="createTime" />
@@ -25,7 +26,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, company_id, product_name, product_code, type, unit, price, status, incharger_id, create_time, creator_id, plate1, plate2, plate3, plate4, plate5, descs
+        id, company_id, product_name, product_code, type, unit, price, inventory, status, incharger_id, create_time, creator_id, plate1, plate2, plate3, plate4, plate5, descs
     </sql>
 
 </mapper>

+ 79 - 75
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectApprovalController.java

@@ -156,83 +156,87 @@ public class ProjectApprovalController {
             }
             if(projectApprovalCheckList.size()>0){
                 projectApprovalCheckService.saveOrUpdateBatch(projectApprovalCheckList);
-                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
-                    //更新审核人 发送到企业微信完成审核动作
-                    String detail = wxCorpInfoService.getTemplateDetail(request, 0);
-                    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());
-                                    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?"":projectApproval.getInchargerName());
-                                    break;
-                                case "级别":
-                                    value.put("text",arr[projectApproval.getLevel()-1]);
-                                    break;
-                                case "合同金额":
-                                    value.put("text",projectApproval.getContractAmount());
-                                    break;
-                                case "计划开始日期":
-                                    value.put("text",df.format(projectApproval.getPlanStartDate()));
-                                    break;
-                                case "计划结束日期":
-                                    value.put("text",df.format(projectApproval.getPlanEndDate()));
-                                    break;
-                            }
-                            content.put("value",value);
-                            contents.add(content);
+            }
+        }
+        if(projectApproval.getStatus()!=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?"":projectApproval.getInchargerName());
+                                break;
+                            case "级别":
+                                value.put("text",arr[projectApproval.getLevel()-1]);
+                                break;
+                            case "合同金额":
+                                value.put("text",projectApproval.getContractAmount()==null?0: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;
                         }
-                        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);
-                        //发送到企业微信
-                        wxCorpInfoService.applyEvent(request,requestData);
-                    }else {
-                        throw  new Exception("企业暂未同步服务商审批模板,推送企业微信审批失败,请联系服务商!");
+                        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("企业暂未同步服务商审批模板,推送企业微信审批失败,请联系服务商!");
                 }
             }
         }

+ 137 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/WeiXinCorpController.java

@@ -2,6 +2,7 @@ package com.management.platform.controller;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.dingtalk.api.DefaultDingTalkClient;
 import com.dingtalk.api.DingTalkClient;
@@ -170,6 +171,26 @@ public class WeiXinCorpController {
     private ContactSyncLogMapper contactSyncLogMapper;
     @Resource
     private DepartmentWxMapper departmentWxMapper;
+    @Resource
+    private ProjectApprovalMapper projectApprovalMapper;
+    @Resource
+    private ProjectApprovalAuditorService projectApprovalAuditorService;
+    @Resource
+    private ProjectApprovalBasecostService projectApprovalBasecostService;
+    @Resource
+    private ProjectApprovalCheckService projectApprovalCheckService;
+    @Resource
+    private ProjectService projectService;
+    @Resource
+    private ProjectBasecostService projectBasecostService;
+    @Resource
+    private ProjectAuditorService projectAuditorService;
+    @Resource
+    private ParticipationService participationService;
+    @Resource
+    private ProjectApprovalLogService projectApprovalLogService;
+    @Resource
+    private ParticipationApprovalService participationApprovalService;
 
     public static String SUITE_ACCESS_TOKEN = null;
     public static long suiteTokenExpireTime = 0L;
@@ -565,6 +586,104 @@ public class WeiXinCorpController {
                     }
                 } else if ("enter_agent".equals(event)) {
 
+                }else if("sys_approval_change".equals(event)){
+                    //审批动作事件,发生在该企业已经开通应用的情况下。
+                    System.out.println("审批动作事件");
+                    org.json.JSONObject approvalInfo = jsonObject.getJSONObject("ApprovalInfo");
+                    String spNo = approvalInfo.getString("SpNo");
+                    ProjectApproval projectApproval = projectApprovalMapper.selectOne(new LambdaQueryWrapper<ProjectApproval>().eq(ProjectApproval::getWxCorpSpNo, spNo));
+                    if(projectApproval!=null){
+                        List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, projectApproval.getCompanyId()));
+                        int status = approvalInfo.getInt("SpStatus");
+                        ProjectApproval pa=new ProjectApproval();
+                        pa.setId(projectApproval.getId());
+                        switch (status){
+                            case 1://审批中 无需修改
+                                break;
+                            case 2://已通过
+                                pa.setStatus(1);
+                                projectApprovalMapper.updateById(pa);
+                                //创建项目数据
+                                //立项审核通过后创建项目数据
+                                Project project=new Project();
+                                BeanUtils.copyProperties(projectApproval,project);
+                                project.setId(null);
+                                project.setCreateDate(LocalDate.now());
+                                List<ProjectApprovalBasecost> projectApprovalBasecostList = projectApprovalBasecostService.list(new LambdaQueryWrapper<ProjectApprovalBasecost>().eq(ProjectApprovalBasecost::getProjectApprovalId, projectApproval.getId()));
+                                List<ParticipationApproval> participationApprovalList = participationApprovalService.list(new LambdaQueryWrapper<ParticipationApproval>().eq(ParticipationApproval::getProjectApprovalId, projectApproval.getId()));
+                                List<ProjectApprovalAuditor> projectApprovalAuditorList = projectApprovalAuditorService.list(new LambdaQueryWrapper<ProjectApprovalAuditor>().eq(ProjectApprovalAuditor::getProjectApprovalId, projectApproval.getId()));
+                                projectService.save(project);
+                                List<ProjectBasecost> projectBasecostList=new ArrayList<>();
+                                List<Participation> participationList=new ArrayList<>();
+                                List<ProjectAuditor> projectAuditorList=new ArrayList<>();
+                                projectApprovalBasecostList.forEach(p->{
+                                    ProjectBasecost projectBasecost=new ProjectBasecost();
+                                    BeanUtils.copyProperties(p,projectBasecost);
+                                    projectBasecost.setId(null);
+                                    projectBasecost.setProjectId(project.getId());
+                                    projectBasecostList.add(projectBasecost);
+                                });
+                                participationApprovalList.forEach(p->{
+                                    Participation participation=new Participation();
+                                    BeanUtils.copyProperties(p,participation);
+                                    participation.setId(null);
+                                    participation.setProjectId(project.getId());
+                                    participationList.add(participation);
+                                });
+                                projectApprovalAuditorList.forEach(p->{
+                                    ProjectAuditor projectAuditor=new ProjectAuditor();
+                                    BeanUtils.copyProperties(p,projectAuditor);
+                                    projectAuditor.setId(null);
+                                    projectAuditor.setProjectId(project.getId());
+                                    projectAuditorList.add(projectAuditor);
+                                });
+                                projectBasecostService.saveBatch(projectBasecostList);
+                                participationService.saveBatch(participationList);
+                                projectAuditorService.saveBatch(projectAuditorList);
+                                break;
+                            case 3://已驳回
+                                pa.setStatus(2);
+                                projectApprovalMapper.updateById(pa);
+                                break;
+                            case 4://已撤销 删除立项数据
+                                projectApprovalMapper.deleteById(projectApproval.getId());
+                                projectApprovalBasecostService.remove(new LambdaQueryWrapper<ProjectApprovalBasecost>().eq(ProjectApprovalBasecost::getProjectApprovalId,projectApproval.getId()));
+                                projectApprovalAuditorService.remove(new LambdaQueryWrapper<ProjectApprovalAuditor>().eq(ProjectApprovalAuditor::getProjectApprovalId,projectApproval.getId()));
+                                projectApprovalCheckService.remove(new LambdaQueryWrapper<ProjectApprovalCheck>().eq(ProjectApprovalCheck::getProjectApprovalId,projectApproval.getId()).eq(ProjectApprovalCheck::getStatus,0));
+                                return "success";
+                        }
+                        org.json.JSONArray spRecord = approvalInfo.getJSONArray("SpRecord");
+                        //获取到审批节点 生成审核记录
+                        List<ProjectApprovalLog> projectApprovalLogList=new ArrayList<>();
+                        for (int i = 0; i < spRecord.length(); i++) {
+                            org.json.JSONObject object = spRecord.getJSONObject(i);
+                            org.json.JSONArray details = object.getJSONArray("Details");
+                            for (int i1 = 0; i1 < details.length(); i1++) {
+                                org.json.JSONObject detail = details.getJSONObject(i1);
+                                org.json.JSONObject approvor = detail.getJSONObject("Approvor");
+                                //分支审批人审批状态:1-审批中;2-已同意;3-已驳回;4-已转审
+                                int spStatus = detail.getInt("SpStatus");
+                                String userId = approvor.getString("UserId");
+                                Optional<User> first = userList.stream().filter(f -> f.getCorpwxUserid().equals(userId)).findFirst();
+                                if(first.isPresent()){
+                                    //新增操作记录数据
+                                    ProjectApprovalLog projectApprovalLog=new ProjectApprovalLog();
+                                    projectApprovalLog.setCreateTime(LocalDateTime.now());
+                                    projectApprovalLog.setProjectApprovalId(projectApproval.getId());
+                                    projectApprovalLog.setUserName(first.get().getName());
+                                    projectApprovalLog.setType(spStatus);
+                                    projectApprovalLogList.add(projectApprovalLog);
+                                }
+                            }
+                        }
+                        List<Integer> typeList=new ArrayList<>();
+                        typeList.add(2);
+                        typeList.add(3);
+                        typeList.add(4);
+                        projectApprovalLogService.remove(new LambdaQueryWrapper<ProjectApprovalLog>()
+                                .eq(ProjectApprovalLog::getProjectApprovalId,projectApproval.getId()).in(ProjectApprovalLog::getType,typeList));
+                        projectApprovalLogService.saveBatch(projectApprovalLogList);
+                    }
                 }
             }
         } catch (Exception e) {
@@ -3839,4 +3958,22 @@ public class WeiXinCorpController {
         wxCorpInfoService.sendWXCorpTemplateCardMsg(wxCorpInfo, corpwxOpenId, data);
         return new HttpRespMsg();
     }
+
+    /**
+     * 复制模板到指定企业
+     */
+    @RequestMapping("/copyTemplateToCorp")
+    public HttpRespMsg copyTemplateToCorp(Integer companyId){
+        HttpRespMsg msg=new HttpRespMsg();
+        WxCorpInfo wxCorpInfo = wxCorpInfoService.getOne(new LambdaQueryWrapper<WxCorpInfo>().eq(WxCorpInfo::getCompanyId, companyId));
+        if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+            try {
+                wxCorpInfoService.copyTemplate(companyId,0);
+            } catch (Exception e) {
+                msg.setError("复制模板到企业失败");
+                e.printStackTrace();
+            }
+        }
+        return msg;
+    }
 }

+ 6 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/ProjectApproval.java

@@ -241,6 +241,12 @@ public class ProjectApproval extends Model<ProjectApproval> {
     @TableField("output_value")
     private Double outputValue;
 
+    /**
+     * 企微审批编号
+     */
+    @TableField("wx_corp_sp_no")
+    private String wxCorpSpNo;
+
     @TableField(exist = false)
     private List<ProjectApprovalBasecost> projectApprovalBasecostList;
 

+ 3 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/WxCorpInfoService.java

@@ -77,9 +77,9 @@ public interface WxCorpInfoService extends IService<WxCorpInfo> {
 
     HttpRespMsg batchTransferLicense(HttpServletRequest request,String handoverId, String takeoverId) throws Exception;
 
-    public void copyTemplate(HttpServletRequest request,Integer templateType) throws Exception;
+    public void copyTemplate(Integer companyId,Integer templateType) throws Exception;
 
-    public String getTemplateDetail(HttpServletRequest request,Integer templateType) throws Exception;
+    public String getTemplateDetail(Integer companyId) throws Exception;
 
-    public void applyEvent(HttpServletRequest request,JSONObject data) throws Exception;
+    public String applyEvent(HttpServletRequest request,JSONObject data) throws Exception;
 }

+ 2 - 20
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectApprovalServiceImpl.java

@@ -151,26 +151,8 @@ public class ProjectApprovalServiceImpl extends ServiceImpl<ProjectApprovalMappe
             if(optional.isPresent()){
                 r.setInchargerName(optional.get().getName());
             }
-//            Integer canCheck=0;
-            List<ProjectApprovalCheck> checkList = approvalCheckList.stream().filter(a -> a.getProjectApprovalId().equals(r.getId())).collect(Collectors.toList());
-            Optional<ProjectApprovalCheck> first = checkList.stream().filter(c -> c.getUserId().equals(user.getId())&&c.getStatus()==0).findFirst();
-//            if(first.isPresent()){
-//                //针对当前登录人员 作为审核人检查是否有审核权限
-//                boolean anyMatch = checkList.stream().anyMatch(c -> c.getSeq() < first.get().getSeq() && c.getStatus() == 0);
-//                if(!anyMatch){
-//                    canCheck=1;
-//                }
-//            }
-            //有权限可编辑
-//            if(hasAllPriviledge||hasCheckPriviledge){
-//                canCheck=1;
-//            }
-//            //全部审核通过的情况不可编辑
-//            boolean b = checkList.stream().allMatch(c -> c.getStatus().equals(1));
-//            if(b){
-//                canCheck=0;
-//            }
-//            r.setCanChecked(canCheck);
+//            List<ProjectApprovalCheck> checkList = approvalCheckList.stream().filter(a -> a.getProjectApprovalId().equals(r.getId())).collect(Collectors.toList());
+//            Optional<ProjectApprovalCheck> first = checkList.stream().filter(c -> c.getUserId().equals(user.getId())&&c.getStatus()==0).findFirst();
         });
         result.put("records",records);
         result.put("total",iPage.getTotal());

+ 8 - 12
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/WxCorpInfoServiceImpl.java

@@ -2354,9 +2354,8 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
      *
      * */
     @Override
-    public void copyTemplate(HttpServletRequest request,Integer templateType) throws Exception {
-        User user = userMapper.selectById(request.getHeader("token"));
-        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
+    public void copyTemplate(Integer companyId,Integer templateType) throws Exception {
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id",companyId));
         String url=COPY_TEMPLATE.replace("ACCESS_TOKEN",getCorpAccessToken(wxCorpInfo));
         HttpHeaders headers = new HttpHeaders();
         RestTemplate restTemplate = new RestTemplate();
@@ -2383,14 +2382,9 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
      * 获取企业审批模板详情
      * */
     @Override
-    public String getTemplateDetail(HttpServletRequest request,Integer templateType) throws Exception {
-        User user = userMapper.selectById(request.getHeader("token"));
-        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
+    public String getTemplateDetail(Integer companyId) throws Exception {
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id",companyId));
         WxCorpTemplate template = wxCorpTemplateService.getById(wxCorpInfo.getCompanyId());
-        if(template==null){
-            copyTemplate(request,templateType);
-            template = wxCorpTemplateService.getById(wxCorpInfo.getCompanyId());
-        }
         String url=GET_TEMPLATE_DETAIL.replace("ACCESS_TOKEN",getCorpAccessToken(wxCorpInfo));
         HttpHeaders headers = new HttpHeaders();
         RestTemplate restTemplate = new RestTemplate();
@@ -2412,7 +2406,7 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
      * 提交审批到企业微信
      * */
     @Override
-    public void applyEvent(HttpServletRequest request,JSONObject data) throws Exception {
+    public String applyEvent(HttpServletRequest request,JSONObject data) throws Exception {
         User user = userMapper.selectById(request.getHeader("token"));
         WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
         String url=APPLY_EVENT.replace("ACCESS_TOKEN",getCorpAccessToken(wxCorpInfo));
@@ -2425,7 +2419,9 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
         ResponseEntity<String> ResponseEntity = restTemplate.postForEntity(url, entity, String.class);
         if (ResponseEntity.getStatusCode() == HttpStatus.OK) {
             String resp = ResponseEntity.getBody();
-            System.out.println(resp);
+            JSONObject object = JSONObject.parseObject(resp);
+            return object.getString("sp_no");
         }
+        return "";
     }
 }

+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectApprovalMapper.xml

@@ -38,11 +38,12 @@
         <result column="current_stage_id" property="currentStageId" />
         <result column="current_stage_name" property="currentStageName" />
         <result column="output_value" property="outputValue" />
+        <result column="wx_corp_sp_no" property="wxCorpSpNo" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, project_name, company_id, project_code, incharger_id, plan_start_date, plan_end_date, progress, level, status, finish_date, creator_id, creator_name, create_date, contract_amount, budget, base_man, base_outsourcing, base_risk1, base_risk2, base_fee, fee_man, customer_id, customer_name, is_public, associate_degrees, associate_degree_names, task_gp_incharge, category, category_name, project_desc, current_stage_id, current_stage_name, output_value
+        id, project_name, company_id, project_code, incharger_id, plan_start_date, plan_end_date, progress, level, status, finish_date, creator_id, creator_name, create_date, contract_amount, budget, base_man, base_outsourcing, base_risk1, base_risk2, base_fee, fee_man, customer_id, customer_name, is_public, associate_degrees, associate_degree_names, task_gp_incharge, category, category_name, project_desc, current_stage_id, current_stage_name, output_value, wx_corp_sp_no
     </sql>
 
 </mapper>

+ 6 - 2
fhKeeper/formulahousekeeper/timesheet/src/views/projectApproval/projectApproval.vue

@@ -226,7 +226,7 @@
                                     </el-tabs>
                                 </div>
                                 <el-divider></el-divider>
-                                <template>
+                                <!-- <template>
                                     <div><span>{{'审核人'}}</span></div>
                                     <div>
                                         <div v-for="(item, index) in pointList" :key="index" >
@@ -242,7 +242,7 @@
                                         <span>{{item.status==0?'待审核':item.status==1?"已审核":"已驳回"}}</span>
                                         </div>
                                     </div>
-                            </template>
+                                </template> -->
                             </el-form>  
                         </div>
                         <div slot="footer" class="dialog-footer;">
@@ -532,6 +532,9 @@ methods: {
                 if(this.addForm.category != null) {
                     targetData.category=this.addForm.category
                 }
+                if(this.addForm.status != null) {
+                    targetData.status=this.addForm.status
+                }
                 //审核人
                 if (this.pointList) {
                     targetData.projectApprovalCheckList=this.pointList
@@ -703,6 +706,7 @@ methods: {
                 projectDesc: item.projectDesc,
                 creatorId: item.creatorId,
                 outputValue: item.outputValue,
+                status: item.status,
             }
             this.participator=theData.participationApprovalList
             this.changeParticipator();