瀏覽代碼

日报填写拍照照片选择控制
待审核企业微信消息推送
项目 部门相关修改
Bug修复(待审核统计)

yurk 2 年之前
父節點
當前提交
4cb00bd660

+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java

@@ -127,12 +127,13 @@ public class ProjectController {
                                    String providerNames,
                                    ProjectSeparate projectSeparate,
                                    Double outputValue,
+                                   Integer deptId,
                                    @RequestParam(defaultValue = "false") boolean onlyChangeParticipate
                                    ) {
         return projectService.editProject(id, name, code, userId, inchargerId, isPublic, planStartDate, planEndDate, level, contractAmount,
                 projectBaseCostData,
                  budget,customerId,chosenLeaders, associateDegrees, associateDegreeNames,
-                taskGpIncharge,auditUserIds, category, projectDesc,projectMainId, providerIds, providerNames, request,projectSeparate,outputValue,onlyChangeParticipate);
+                taskGpIncharge,auditUserIds, category, projectDesc,projectMainId, providerIds, providerNames, request,projectSeparate,outputValue,deptId,onlyChangeParticipate);
     }
 
     @RequestMapping("/adjustBase")

+ 14 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Project.java

@@ -21,7 +21,7 @@ import java.util.Map;
  * </p>
  *
  * @author Seyason
- * @since 2022-07-18
+ * @since 2022-08-08
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -49,7 +49,7 @@ public class Project extends Model<Project> {
     private Integer companyId;
 
     /**
-     * 项目编
+     * 项目编
      */
     @TableField("project_code")
     private String projectCode;
@@ -84,13 +84,13 @@ public class Project extends Model<Project> {
     private Integer progress;
 
     /**
-     * 0-全部,1-正常,2-紧急,3-重要,4-重要且紧急
+     * 0-全部,1-正常,2-紧急,3-重要,4-重要且紧急 5-低风险 6-中风险 7-高风险
      */
     @TableField("level")
     private Integer level;
 
     /**
-     * 0-全部,1-进行中,2-已完成,3-已撤销
+     * 0-全部,1-进行中,2-已完成,3-已撤销 4-暂停
      */
     @TableField("status")
     private Integer status;
@@ -210,7 +210,7 @@ public class Project extends Model<Project> {
     private String customerName;
 
     /**
-     * 是否是公共项目
+     * 是否是公共项目 0-否  1-是
      */
     @TableField("is_public")
     private Integer isPublic;
@@ -294,12 +294,21 @@ public class Project extends Model<Project> {
     @TableField("output_value")
     private Double outputValue;
 
+    /**
+     * 部门Id
+     */
+    @TableField("dept_id")
+    private Integer deptId;
+
     @TableField(exist = false)
     ProjectSeparate projectSeparate;
 
     @TableField(exist = false)
     List<ProjectBasecost> projectBasecostList;
 
+    @TableField(exist = false)
+    private String departmentName;
+
     @Override
     protected Serializable pkVal() {
         return this.id;

+ 14 - 8
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TimeType.java

@@ -1,23 +1,23 @@
 package com.management.platform.entity;
 
-import java.math.BigDecimal;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
-import java.util.List;
-
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
 /**
  * <p>
  * 
  * </p>
  *
  * @author Seyason
- * @since 2022-08-07
+ * @since 2022-08-08
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -303,7 +303,7 @@ public class TimeType extends Model<TimeType> {
     private Integer needEvaluate;
 
     /**
-     * 0-未开启 1-开启
+     * 产值  0-未开启 1-开启
      */
     @TableField("output_value_status")
     private Integer outputValueStatus;
@@ -320,6 +320,12 @@ public class TimeType extends Model<TimeType> {
     @TableField("include_weekends")
     private Integer includeWeekends;
 
+    /**
+     * 从相册选择图片 0-未开启 1-开启
+     */
+    @TableField("chose_from_album")
+    private Integer choseFromAlbum;
+
     @TableField(exist = false)
     private List<User> userList;
     

+ 2 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectMapper.java

@@ -97,9 +97,9 @@ public interface ProjectMapper extends BaseMapper<Project> {
 
     long findCountWithUser(String userId, Integer companyId, String startDate, String endDate, Integer projectId, Integer start,Integer size,Integer departmentId,List<Integer> deptIds);
 
-    List<Map<String, Object>> getWaitingReviewList(Integer companyId, String userId,Integer start,Integer size,String startDate,String endDate,Integer departmentId);
+    List<Map<String, Object>> getWaitingReviewList(Integer stateKey,Integer companyId, String userId,Integer start,Integer size,String startDate,String endDate,Integer departmentId);
 
-    long findCount(Integer companyId, String userId, Integer start, Integer size,String startDate,String endDate,Integer departmentId);
+    long findCount(Integer stateKey,Integer companyId, String userId, Integer start, Integer size,String startDate,String endDate,Integer departmentId);
 
     @Update("update project set status=4 where id=#{id}")
     void suspendProject(Integer id);

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectService.java

@@ -43,7 +43,7 @@ public interface ProjectService extends IService<Project> {
                             String providerIds,
                             String providerNames,
                             HttpServletRequest request,
-                            ProjectSeparate projectSeparate,Double outputValue,boolean onlyChangeParticipate);
+                            ProjectSeparate projectSeparate,Double outputValue,Integer deptId,boolean onlyChangeParticipate);
 
     HttpRespMsg deleteProject(Integer id, Integer force);
 

+ 32 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -201,6 +201,19 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全部项目");
             //判断用户的角色,如果是管理员和负责人,查看全部的。如果是普通员工,只能是看到参与的项目
             QueryWrapper<Project> queryWrapper = null;
+            List<Department> allDepartmentList=departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id",companyId));
+            List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("manager_id", user.getId()).eq("company_id", companyId));
+            List<DepartmentOtherManager> departmentOtherManagerList = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("other_manager_id", user.getId()));
+            List<Integer> deptIds=new ArrayList<>();
+            List<Integer> theCollect = departmentList.stream().distinct().map(dm -> dm.getDepartmentId()).collect(Collectors.toList());
+            List<Integer> otherCollect = departmentOtherManagerList.stream().distinct().map(dom -> dom.getDepartmentId()).collect(Collectors.toList());
+            theCollect.addAll(otherCollect);
+            for (Integer integer : theCollect) {
+                List<Integer> branchDepartment = getBranchDepartment(integer, allDepartmentList);
+                deptIds.addAll(branchDepartment);
+            }
+            //本人所在部门
+            deptIds.add(user.getDepartmentId());
             if (functionList.size() == 0) {
                 //普通员工
                 List<Participation> pList = participationMapper.selectList(new QueryWrapper<Participation>().eq("user_id", user.getId()));
@@ -212,7 +225,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 }
                 final List<Integer> ids = projectIds;
                 queryWrapper = new QueryWrapper<Project>();
-                queryWrapper.and(wrapper->wrapper.in("id", ids).or().eq("creator_id", user.getId()).or().eq("is_public", 1).eq("company_id", companyId));
+                if(deptIds.isEmpty()||deptIds.size()==0){
+                    deptIds.add(-1);
+                }
+                queryWrapper.and(wrapper->wrapper.in("id",ids).or().in("dept_id",deptIds).or().eq("creator_id", user.getId()).or().eq("is_public", 1).eq("company_id", companyId));
             } else {
                 queryWrapper = new QueryWrapper<Project>().eq("company_id", companyId);
             }
@@ -279,6 +295,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     }
                 }
                 BeanUtils.copyProperties(project, projectVO);
+                Optional<Department> optional = allDepartmentList.stream().filter(ad -> ad.getDepartmentId().equals(projectVO.getDeptId())).findFirst();
+                if(optional.isPresent()){
+                    projectVO.setDepartmentName(optional.get().getDepartmentName());
+                }
                 projectVO.setParticipator(participationMapper.getParticipator(projectVO.getId()));
                 Optional<User> first = userList.stream().filter(u -> u.getId().equals(project.getInchargerId())).findFirst();
                 if (first.isPresent()) {
@@ -370,7 +390,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                                    String providerIds,
                                    String providerNames,
                                    HttpServletRequest request,
-                                   ProjectSeparate projectSeparate,Double outputValue,boolean onlyChangeParticipate) {
+                                   ProjectSeparate projectSeparate,Double outputValue,Integer deptId,boolean onlyChangeParticipate) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         User user = userMapper.selectById(request.getHeader("Token"));
         Integer companyId = user.getCompanyId();
@@ -427,6 +447,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             .setProjectMainId(projectMainId)
                             .setTaskGpIncharge(taskGpIncharge)
                             .setProviderIds(providerIds)
+                            .setDeptId(deptId)
                             .setProviderNames(providerNames);
                     if(timeType.getOutputValueStatus()==1){
                         project.setOutputValue(outputValue==null?0.00:outputValue);
@@ -509,6 +530,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         .setProjectMainId(projectMainId)
                         .setTaskGpIncharge(taskGpIncharge)
                         .setProviderIds(providerIds)
+                        .setDeptId(deptId)
                         .setProviderNames(providerNames);
                 if(timeType.getOutputValueStatus()==1){
                     p.setOutputValue(outputValue==null?0.00:outputValue);
@@ -1175,14 +1197,19 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
 
     @Override
     public HttpRespMsg detail(Integer id, HttpServletRequest request) {
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
         Project project = projectMapper.selectById(id);
+        List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
         if (project.getInchargerId() != null) {
             User incharger = userMapper.selectById(project.getInchargerId());
             if (incharger != null) {
                 project.setInchargerName(incharger.getName());
             }
         }
-
+        Optional<Department> first = departmentList.stream().filter(dt -> dt.getDepartmentId().equals(project.getDeptId())).findFirst();
+        if(first.isPresent()){
+            project.setDepartmentName(first.get().getDepartmentName());
+        }
         //项目参与人
         List<Map<String, Object>> participator = participationMapper.getParticipator(id);
         project.setParticipationList(participator);
@@ -4584,8 +4611,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             size=null;
             start=null;
         }
-        List<Map<String,Object>>  list=projectMapper.getWaitingReviewList(user.getCompanyId(),userId,start,size,startDate,endDate,departmentId);
-        long total=projectMapper.findCount(user.getCompanyId(),userId,null,null,startDate,endDate,departmentId);
+        List<Map<String,Object>>  list=projectMapper.getWaitingReviewList(stateKey,user.getCompanyId(),userId,start,size,startDate,endDate,departmentId);
+        long total=projectMapper.findCount(stateKey,user.getCompanyId(),userId,null,null,startDate,endDate,departmentId);
         HashMap map=new HashMap();
         map.put("total",total);
         map.put("result",list);

+ 22 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/TimingTask.java

@@ -208,6 +208,28 @@ public class TimingTask {
 //                }
             }
         }
+        List<WxCorpInfo> wxCorpInfoList = wxCorpInfoService.list(new QueryWrapper<WxCorpInfo>());
+        for (WxCorpInfo wxCorpInfo : wxCorpInfoList) {
+            if (wxCorpInfo!=null) {
+            List<Map<String, Object>> result = reportMapper.getWaitingApproveCnt(wxCorpInfo.getCompanyId());
+            for (Map<String, Object> map : result) {
+                if(map.get("corpwxUserid")!=null){
+                    String corpwxUserid = (String) map.get("corpwxUserid");
+                    //推送到企业微信
+                    JSONObject json=new JSONObject();
+                    JSONArray dataJson=new JSONArray();
+                    JSONObject jsonObj=new JSONObject();
+                    jsonObj.put("key", "待审核数量");
+                    jsonObj.put("value",StringUtils.isEmpty(map.get("num"))?"":map.get("num"));
+                    dataJson.add(jsonObj);
+                    json.put("template_id","tty9TkCAAAuPvPjabDdQXGocnG0K24EQ");
+                    json.put("url","https://open.weixin.qq.com/connect/oauth2/authorize?appid=ww4e237fd6abb635af&redirect_uri=http://mobworktime.ttkuaiban.com/api/corpWXAuth&response_type=code&scope=snsapi_base&state=0#wechat_redirect");
+                    json.put("content_item",dataJson);
+                    wxCorpInfoService.sendWXCorpTemplateMsg(wxCorpInfo, corpwxUserid, json);
+                    }
+                }
+            }
+        }
     }
 
     //每周日晚上11点 企业微信同步一次本月的考勤打卡记录

文件差異過大導致無法顯示
+ 20 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml


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

@@ -606,7 +606,7 @@
         select IFNULL(sum(overtime_hours),0) from report where creator_id=#{userId}
     </select>
     <select id="getWaitingApproveCnt" resultType="java.util.HashMap">
-        select count(1) as num, user.dingding_userid as auditorDDId from report
+        select count(1) as num, user.dingding_userid as auditorDDId ,user.corpwx_userid as corpwxUserid from report
          left join user on user.id = project_auditor_id
          where state = 0 and project_audit_state = 0 and is_dept_audit = 0
         and report.company_id = #{companyId}

文件差異過大導致無法顯示
+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TimeTypeMapper.xml