浏览代码

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

山水共长天一色 3 年之前
父节点
当前提交
00802d49df

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

@@ -48,8 +48,8 @@ public class ProjectController {
      * 获取项目列表
      */
     @RequestMapping("/getProjectList")
-    public HttpRespMsg getProjectList() {
-        return projectService.getProjectList(request);
+    public HttpRespMsg getProjectList(@RequestParam(required = false, defaultValue = "0") Integer forReport) {
+        return projectService.getProjectList(forReport, request);
     }
 
     /**

+ 39 - 31
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java

@@ -826,42 +826,50 @@ public class ReportController {
         }
 
         if (!createDate[0].contains("@")) {
-            //不是批量,可能是按周填报
-            //校验当前填报的日报是否已经存在同日期的
-            LocalDate startDate = reportList.stream().map(Report::getCreateDate).min(new Comparator<LocalDate>() {
-                @Override
-                public int compare(LocalDate o1, LocalDate o2) {
-                    return o1.compareTo(o2);
-                }
-            }).get();
-            LocalDate endDate = reportList.stream().map(Report::getCreateDate).max(new Comparator<LocalDate>() {
-                @Override
-                public int compare(LocalDate o1, LocalDate o2) {
-                    return o1.compareTo(o2);
-                }
-            }).get();
-
-            List<Report> oldReportList = reportService.list(new QueryWrapper<Report>().between("create_date", startDate, endDate).eq("creator_id", token));
-            DateTimeFormatter mdFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-            if (oldReportList.size() > 0) {
-                StringBuilder sb = new StringBuilder();
-                List<LocalDate> collect = oldReportList.stream().map(Report::getCreateDate).collect(Collectors.toList());
-                for (Report report : reportList) {
-                    if (report.getId() == null) {
-                        if (collect.stream().anyMatch(oldDate->oldDate.isEqual(report.getCreateDate()))) {
-                            sb.append(mdFormatter.format(report.getCreateDate())).append(",");
+            //不是批量,可能是按周填报。
+            boolean isWeeklyFill = true;
+            if (reportList.stream().anyMatch(r->r.getId() != null)) {
+                //按周填报的都是没有id的,如果有id则说明不是按周填报
+                isWeeklyFill = false;
+            }
+            if (isWeeklyFill) {
+                //校验当前填报的日报是否已经存在同日期的
+                LocalDate startDate = reportList.stream().map(Report::getCreateDate).min(new Comparator<LocalDate>() {
+                    @Override
+                    public int compare(LocalDate o1, LocalDate o2) {
+                        return o1.compareTo(o2);
+                    }
+                }).get();
+                LocalDate endDate = reportList.stream().map(Report::getCreateDate).max(new Comparator<LocalDate>() {
+                    @Override
+                    public int compare(LocalDate o1, LocalDate o2) {
+                        return o1.compareTo(o2);
+                    }
+                }).get();
+
+                List<Report> oldReportList = reportService.list(new QueryWrapper<Report>().between("create_date", startDate, endDate).eq("creator_id", token));
+                DateTimeFormatter mdFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+                if (oldReportList.size() > 0) {
+                    StringBuilder sb = new StringBuilder();
+                    List<LocalDate> collect = oldReportList.stream().map(Report::getCreateDate).collect(Collectors.toList());
+                    for (Report report : reportList) {
+                        if (report.getId() == null) {
+                            if (collect.stream().anyMatch(oldDate->oldDate.isEqual(report.getCreateDate()))) {
+                                sb.append(mdFormatter.format(report.getCreateDate())).append(",");
+                            }
                         }
                     }
-                }
 
-                String s = sb.toString();
-                if (s.length() > 0) {
-                    s = s.substring(0, s.length() -1);
-                    HttpRespMsg msg = new HttpRespMsg();
-                    msg.setError("已存在填写日报: " + s+", 请先删除后再填报。");
-                    return msg;
+                    String s = sb.toString();
+                    if (s.length() > 0) {
+                        s = s.substring(0, s.length() -1);
+                        HttpRespMsg msg = new HttpRespMsg();
+                        msg.setError("已存在填写日报: " + s+", 请先删除后再填报。");
+                        return msg;
+                    }
                 }
             }
+
         }
 
         return reportService.editReport(reportList, createDate.length > 0 ? createDate[0] : null, targetUserList, hourCost, user.getCompanyId());

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

@@ -22,6 +22,8 @@ import java.util.Map;
 public interface ProjectMapper extends BaseMapper<Project> {
     List<Map<String, Object>> getParticipatedProject(@Param("userId") String userId, @Param("companyId") Integer companyId);
 
+    List<Map<String, Object>> getOnlyJoinProjects(@Param("userId") String userId, @Param("companyId") Integer companyId);
+
     List<Map<String, Object>> getTimeCost(@Param("companyId") Integer companyId, @Param("startDate") String startDate, @Param("endDate") String endDate,
         @Param("projectId") Integer projectId, @Param("userId") String userId);
 

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

@@ -17,7 +17,7 @@ import java.time.LocalDate;
  * @since 2020-01-03
  */
 public interface ProjectService extends IService<Project> {
-    HttpRespMsg getProjectList(HttpServletRequest request);
+    HttpRespMsg getProjectList(Integer forReport, HttpServletRequest request);
 
     HttpRespMsg getProjectPage(Integer pageIndex, Integer pageSize, String keyword, Integer searchField,
                                Integer status, Integer category, HttpServletRequest request);

+ 1 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DingDingServiceImpl.java

@@ -1442,7 +1442,7 @@ public class DingDingServiceImpl implements DingDingService {
             resultMap.put("total", 1);
         }
 
-        System.out.println("请求的userIds: "+userIds);
+        System.out.println("请求的size="+userList.size());
         System.out.println("长度=="+userIds.length());
         List<LeaveQuotaNum> quotaNumList = new ArrayList<>();
         for (User user : userList) {
@@ -1500,7 +1500,6 @@ public class DingDingServiceImpl implements DingDingService {
                         //计算剩余
                         quotaNum.leftInDays = df.format((quota_num_per_day - used_num_per_day)*1.0/100);
                     }
-                    quotaNumList.add(quotaNum);
                 }
             }
 

+ 16 - 6
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -125,16 +125,26 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     private String path;
     //获取项目列表
     @Override
-    public HttpRespMsg getProjectList(HttpServletRequest request) {
+    public HttpRespMsg getProjectList(Integer forReport, HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         try {
             User user = userMapper.selectById(request.getHeader("Token"));
-            if (!sysFunctionService.hasPriviledge(user.getRoleId(), "查看全部项目")) {
-                //普通员工只能看本人相关的项目列表
-                httpRespMsg.data = projectMapper.getParticipatedProject(user.getId(), user.getCompanyId());
+            if (forReport == 1) {
+                if (!sysFunctionService.hasPriviledge(user.getRoleId(), "可填报全部项目")) {
+                    //只能看本人参与的项目
+                    httpRespMsg.data = projectMapper.getOnlyJoinProjects(user.getId(), user.getCompanyId());
+                } else {
+                    //有权限的填报全部的
+                    httpRespMsg.data = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", user.getCompanyId()));
+                }
             } else {
-                //有权限的看全部的
-                httpRespMsg.data = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", user.getCompanyId()));
+                if (!sysFunctionService.hasPriviledge(user.getRoleId(), "查看全部项目")) {
+                    //只能看本人相关的项目
+                    httpRespMsg.data = projectMapper.getParticipatedProject(user.getId(), user.getCompanyId());
+                } else {
+                    //有权限的看全部的
+                    httpRespMsg.data = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", user.getCompanyId()));
+                }
             }
         } catch (NullPointerException e) {
             httpRespMsg.setError("验证失败");

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

@@ -325,7 +325,7 @@ public class TimingTask {
                         jsonObj.put("value", StringUtils.isEmpty(t.getAlertMsg())?"":t.getAlertMsg());
                         dataJson.add(jsonObj);
                         json.put("template_id","tty9TkCAAAYoevY-40ciWD5lDncDfR5w");
-                        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("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(cpList.get(0), corpUid, json);
                     } else if (u.get("wxOpenid") != null) {

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

@@ -91,7 +91,17 @@
         or (is_public = 1 and company_id = #{companyId})
         ORDER BY id DESC
     </select>
-
+    <select id="getOnlyJoinProjects" resultType="java.util.Map">
+        SELECT id, project_name AS projectName, status, task_gp_incharge as taskGpIncharge, project_desc as projectDesc
+        FROM project
+        WHERE id IN (
+            SELECT project_id
+            FROM participation
+            WHERE user_id = #{userId}
+        )
+        or (is_public = 1 and company_id = #{companyId})
+        ORDER BY id DESC
+    </select>
     <!--获取查询者所在公司每个项目的工时成本-->
     <select id="getTimeCost" resultType="java.util.Map">
         SELECT a.id, a.project_code as projectCode, a.project_name AS project, SUM(b.working_time) AS cost, SUM(b.cost) AS costMoney,a.category_name as categoryName

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/centerManage/centerManage.vue

@@ -34,7 +34,7 @@
             </div>
         </el-dialog>
         <!-- 导入结果说明 -->
-        <el-dialog title="分摊比例导入结果" v-if="showImportResult" :visible.sync="showImportResult" customClass="customWidth" width="500px">
+        <el-dialog title="导入结果" v-if="showImportResult" :visible.sync="showImportResult" customClass="customWidth" width="500px">
             <div>
                 <span>{{importResultMsg}}</span>
                 

+ 14 - 3
fhKeeper/formulahousekeeper/timesheet/src/views/project/list.vue

@@ -94,8 +94,8 @@
                              <span v-if="user.company.packageProject==0" >{{scope.row.projectName}}</span>
                          </div>
                          <div slot="reference" class="kans">
-                            <el-link type="primary" v-if="user.company.packageProject==1" :underline="false" :href="'#/projectInside/'+scope.row.id">{{scope.row.projectName}}</el-link>
-                            <span v-if="user.company.packageProject==0" >{{scope.row.projectName}}</span>
+                            <el-link type="primary" v-if="user.company.packageProject==1" :underline="false" :href="'#/projectInside/'+scope.row.id">{{scope.row.projectName.substring(0,15)}}...</el-link>
+                            <span v-if="user.company.packageProject==0" >{{scope.row.projectName.substring(0,15)}}...</span>
                          </div>
                      </el-popover>
                      <div v-else>
@@ -135,7 +135,18 @@
                 </template>
             </el-table-column>
             <!-- 客户管理 -->
-            <el-table-column prop="customerName" label="客户"  v-if="user.company.packageCustomer == 1">
+            <el-table-column prop="customerName" label="客户" width="190"   v-if="user.company.packageCustomer == 1">
+            <template slot-scope="scope">
+                <el-popover placement="top" width="250" trigger="hover" v-if="scope.row.projectName.length > 12">
+                    <div slot="reference" class="kans">
+                        <span >{{scope.row.customerName.substring(0,12)}}...</span>
+                    </div>
+                    <span >{{scope.row.customerName}}</span>
+                </el-popover>
+                <div v-else>
+                    <span >{{scope.row.customerName}}</span>
+                </div>
+            </template>
             </el-table-column>
             <el-table-column prop="status" label="状态" width="100" >
                 <template slot-scope="scope">

+ 2 - 2
fhKeeper/formulahousekeeper/timesheet_h5/src/views/edit/index.vue

@@ -97,7 +97,7 @@
                     ></van-field>
                     <van-field name="taskFinish" label="是否已完成" v-if="item.taskId != null">
                         <template #input>
-                            <van-checkbox v-model="item.taskFinish" shape="square">已完成</van-checkbox>
+                            <van-checkbox :disabled="!canEdit" v-model="item.taskFinish" shape="square">已完成</van-checkbox>
                         </template>
                         
                     </van-field>
@@ -228,7 +228,7 @@
                     
                     <div class="overtime" >
                         <div class="overTimeClas">
-                            <van-checkbox :disabled="!canEdit" v-model="item.isOvertime" style="width: 4.3rem;">加班</van-checkbox>
+                            <van-checkbox :disabled="!canEdit" v-model="item.isOvertime" style="width: 4.3rem;">加班</van-checkbox>
                             <van-field v-model="item.overtimeHours" type="number" :disabled="!canEdit || item.isOvertime==null||item.isOvertime==0"
                             placeholder="请输入加班时长" style="width: 5rem"></van-field>
                             <span :class="canEdit ? 'overListTime' : 'overListTime hoveOver'">小时</span>