فهرست منبع

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

seyason 1 سال پیش
والد
کامیت
7c5ecf83ad
16فایلهای تغییر یافته به همراه275 افزوده شده و 39 حذف شده
  1. 4 4
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/ClueController.java
  2. 5 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/UploadFile.java
  3. 2 1
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/mapper/ClueMapper.java
  4. 0 1
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/BusinessOpportunityServiceImpl.java
  5. 28 21
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/ClueServiceImpl.java
  6. 57 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/HolidaySettingController.java
  7. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java
  8. 5 4
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TimeTypeController.java
  9. 57 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/HolidaySetting.java
  10. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/HolidaySettingMapper.java
  11. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/HolidaySettingService.java
  12. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ReportService.java
  13. 20 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/HolidaySettingServiceImpl.java
  14. 43 4
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  15. 19 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/HolidaySettingMapper.xml
  16. 1 2
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml

+ 4 - 4
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/ClueController.java

@@ -72,10 +72,10 @@ public class ClueController {
     }
 
     //下载
-    @RequestMapping("downFile")
-    public Object downFile(UploadFile file, HttpServletRequest request, HttpServletResponse response) throws Exception {
-        return clueService.downFile(file, request, response);
-    }
+//    @RequestMapping("downFile")
+//    public Object downFile(UploadFile file, HttpServletRequest request, HttpServletResponse response) throws Exception {
+//        return clueService.downFile(file, request, response);
+//    }
 
     //删除
     @RequestMapping("deleteFile")

+ 5 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/UploadFile.java

@@ -35,6 +35,11 @@ public class UploadFile extends Model<UploadFile> {
      */
     @TableField("name")
     private String name;
+    /**
+     * 文件大小
+     */
+    @TableField("size")
+    private String size;
     @TableField(exist = false)
     private String userName;
 

+ 2 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/mapper/ClueMapper.java

@@ -31,7 +31,8 @@ public interface ClueMapper extends BaseMapper<Clue> {
             "(select `name` from sys_dict where code = 'ClueSources' and id =  clue_source_id) clueSourceValue," +
             "(select `name` from sys_dict where code = 'CustomIndustry' and id =  customer_industry_id) customerIndustryValue," +
             "(select `name` from sys_dict where code = 'CustomLevel' and id =  customer_level_id) customerLevelValue ," +
-            "(select `name` from user where id = incharger_id ) inchargerName" +
+            "(select `name` from user where id = incharger_id ) inchargerName," +
+            "(select `name` from user where id = create_id ) createName" +
             " from clue where id = #{id}")
     Clue selectById2Info(@Param("id") Integer id);
 }

+ 0 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/BusinessOpportunityServiceImpl.java

@@ -338,7 +338,6 @@ public class BusinessOpportunityServiceImpl extends ServiceImpl<BusinessOpportun
     @Override
     public Object reFileName(UploadFile uploadFile, HttpServletRequest request) {
         return uploadFileMapper.update(null, new UpdateWrapper<UploadFile>().eq("id", uploadFile.getId()).set("name", uploadFile.getName()));
-
     }
 
     private BusinessOpportunity setNull(BusinessOpportunity bo) {

+ 28 - 21
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/ClueServiceImpl.java

@@ -218,12 +218,12 @@ public class ClueServiceImpl extends ServiceImpl<ClueMapper, Clue> implements Cl
         String inchargerId = clue.getInchargerId();
         ActionLog clueLog = new ActionLog();
         clueLog.setUserId(user.getId());
-        clueLog.setItemId(clue.getId());
         clueLog.setCreatTime(new Date());
         clueLog.setCode("clue");
 
         List<Clue> clues = clueMapper.selectList(new QueryWrapper<Clue>().in("id", ids));
         for (Clue clue1 : clues) {
+            clueLog.setItemId(clue1.getId());
             if (clue1.getInchargerId() == null) {
                 //认领
                 clueLog.setName("认领了线索");
@@ -305,9 +305,13 @@ public class ClueServiceImpl extends ServiceImpl<ClueMapper, Clue> implements Cl
                 String purFName = UUID.randomUUID().toString().replaceAll("-", "");
                 realName = purFName + suffix;
 
-
-                uf.setPath(filePath + realName);
+                long size = file.getSize();
+                String s = "MB";
+                double  l = size / 1024.00 / 1024.00;
+                System.out.println(size);
+                uf.setPath("/file/" + realName);
                 uf.setCode("clue");
+                uf.setSize(l+s);
                 uf.setItemId(clue.getId());
                 uf.setRealName(realName);
                 uf.setCreateTime(new Date());
@@ -367,25 +371,28 @@ public class ClueServiceImpl extends ServiceImpl<ClueMapper, Clue> implements Cl
     @Override
     public Object downFile(UploadFile file, HttpServletRequest request, HttpServletResponse response) {
         HttpRespMsg msg = new HttpRespMsg();
-        try {
-            ServletOutputStream os = response.getOutputStream();
+//        try {
+//            ServletOutputStream os = response.getOutputStream();
             UploadFile uploadFile = uploadFileMapper.selectById(file.getId());
-            if (uploadFile == null ){
-                msg.setError("文件未找到");
-                return msg;
-            }
-
-            File uploadFile1 = new File(uploadFile.getPath());
-            response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(uploadFile.getName(), "UTF-8"));
-            response.setContentType("application/octet-stream");
-            // 读取文件的字节流
-            os.write(FileUtil.readFileByBytes(uploadFile1));
-            os.flush();
-
-        } catch (IOException e) {
-            msg.setError(MessageUtils.message("file.error"));
-            e.printStackTrace();
-        }
+        String path1 = uploadFile.getPath();
+        path1 = path1.substring(2);
+        msg.setData(path1);
+//            if (uploadFile == null ){
+//                msg.setError("文件未找到");
+//                return msg;
+//            }
+//
+//            File uploadFile1 = new File(uploadFile.getPath());
+//            response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(uploadFile.getName(), "UTF-8"));
+//            response.setContentType("application/octet-stream");
+//            // 读取文件的字节流
+//            os.write(FileUtil.readFileByBytes(uploadFile1));
+//            os.flush();
+//
+//        } catch (IOException e) {
+//            msg.setError(MessageUtils.message("file.error"));
+//            e.printStackTrace();
+//        }
         return msg;
     }
 

+ 57 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/HolidaySettingController.java

@@ -0,0 +1,57 @@
+package com.management.platform.controller;
+
+
+import com.management.platform.entity.HolidaySetting;
+import com.management.platform.mapper.UserMapper;
+import com.management.platform.service.HolidaySettingService;
+import com.management.platform.util.HttpRespMsg;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-04-09
+ */
+@RestController
+@RequestMapping("/holiday-setting")
+public class HolidaySettingController {
+
+    @Resource
+    private HolidaySettingService holidaySettingService;
+    @Resource
+    private UserMapper userMapper;
+    @Resource
+    private HttpServletRequest request;
+
+    @RequestMapping("/holidaySetting")
+    public HttpRespMsg holidaySetting(String date,String userIds,String deptIds){
+        HttpRespMsg msg=new HttpRespMsg();
+        DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        HolidaySetting holidaySetting=new HolidaySetting();
+        holidaySetting.setCompanyId(companyId);
+        holidaySetting.setHolidayDate(LocalDate.parse(date,df));
+        holidaySetting.setTargetUsers(userIds);
+        holidaySetting.setTargetDepts(deptIds);
+        if(!holidaySettingService.saveOrUpdate(holidaySetting)){
+            msg.setError("验证失败");
+        }
+        return msg;
+    }
+
+}
+

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

@@ -210,7 +210,7 @@ public class ReportController {
      * date 日期 格式yyyy-mm-dd
      */
     @RequestMapping("/getReportFillStatus")
-    public HttpRespMsg getReportFillStatus(String startDate, String endDate, String userId) {
+    public HttpRespMsg getReportFillStatus(String startDate, String endDate, String userId)throws Exception {
         return reportService.getReportFillStatus(startDate, endDate, userId, request);
     }
 

+ 5 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TimeTypeController.java

@@ -1,14 +1,14 @@
 package com.management.platform.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.management.platform.entity.TimeAutoExclude;
-import com.management.platform.entity.TimeType;
-import com.management.platform.entity.User;
-import com.management.platform.entity.WxCorpInfo;
+import com.management.platform.entity.*;
 import com.management.platform.mapper.TimeAutoExcludeMapper;
 import com.management.platform.mapper.UserMapper;
 import com.management.platform.mapper.WxCorpInfoMapper;
+import com.management.platform.service.DepartmentService;
+import com.management.platform.service.HolidaySettingService;
 import com.management.platform.service.TimeTypeService;
 import com.management.platform.service.UserService;
 import com.management.platform.util.HttpRespMsg;
@@ -20,6 +20,7 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.annotation.Resource;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>

+ 57 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/HolidaySetting.java

@@ -0,0 +1,57 @@
+package com.management.platform.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.time.LocalDate;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-04-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class HolidaySetting extends Model<HolidaySetting> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 节假日集合
+     */
+    @TableField("holiday_date")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate holidayDate;
+
+    @TableField("target_users")
+    private String targetUsers;
+
+    @TableField("target_depts")
+    private String targetDepts;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/HolidaySettingMapper.java

@@ -0,0 +1,16 @@
+package com.management.platform.mapper;
+
+import com.management.platform.entity.HolidaySetting;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-04-09
+ */
+public interface HolidaySettingMapper extends BaseMapper<HolidaySetting> {
+
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/HolidaySettingService.java

@@ -0,0 +1,16 @@
+package com.management.platform.service;
+
+import com.management.platform.entity.HolidaySetting;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-04-09
+ */
+public interface HolidaySettingService extends IService<HolidaySetting> {
+
+}

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

@@ -56,7 +56,7 @@ public interface ReportService extends IService<Report> {
 
     HttpRespMsg cancelReport(String userId, String reportIds, HttpServletRequest request);
 
-    HttpRespMsg getReportFillStatus(String startDate, String endDate, String userId, HttpServletRequest request);
+    HttpRespMsg getReportFillStatus(String startDate, String endDate, String userId, HttpServletRequest request)throws Exception;
 
     HttpRespMsg listByStateProfession(Integer state, Integer departmentId, Integer projectId, String date, HttpServletRequest request);
 

+ 20 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/HolidaySettingServiceImpl.java

@@ -0,0 +1,20 @@
+package com.management.platform.service.impl;
+
+import com.management.platform.entity.HolidaySetting;
+import com.management.platform.mapper.HolidaySettingMapper;
+import com.management.platform.service.HolidaySettingService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-04-09
+ */
+@Service
+public class HolidaySettingServiceImpl extends ServiceImpl<HolidaySettingMapper, HolidaySetting> implements HolidaySettingService {
+
+}

+ 43 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -13,6 +13,7 @@ import com.management.platform.service.*;
 import com.management.platform.util.*;
 import com.management.platform.webservice.po.*;
 import com.management.platform.webservice.po.SapPeriod;
+import lombok.SneakyThrows;
 import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage;
 import me.chanjar.weixin.mp.api.WxMpService;
 import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;
@@ -4126,11 +4127,49 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         return msg;
     }
 
+    @SneakyThrows
     @Override
-    public HttpRespMsg getReportFillStatus(String startDate, String endDate, String userId, HttpServletRequest request) {
+    public HttpRespMsg getReportFillStatus(String startDate, String endDate, String userId, HttpServletRequest request)throws Exception {
         HttpRespMsg msg = new HttpRespMsg();
-        msg.data = reportMapper.getReportFillStatus(startDate, endDate, userId);
-
+        User user = userMapper.selectById(request.getHeader("token"));
+        DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, user.getCompanyId()));
+        List<UserCustom> userCustomList = userCustomMapper.selectList(new LambdaQueryWrapper<UserCustom>().eq(UserCustom::getCompanyId, user.getCompanyId()));
+        List<UserFvTime> userFvTimeList = userFvTimeMapper.selectList(new LambdaQueryWrapper<UserFvTime>().between(UserFvTime::getWorkDate, startDate, endDate));
+        List<Map<String, Object>> reportFillStatus = reportMapper.getReportFillStatus(startDate, endDate, userId);
+        //针对景昱 5978 校验填报工时是否超过考勤
+        if(user.getCompanyId().equals(5978)){
+            for (Map<String, Object> map : reportFillStatus) {
+                map.put("exceedCardTime",0);
+                Optional<UserFvTime> first = userFvTimeList.stream().filter(u -> u.getWorkDate().isEqual(LocalDate.parse(String.valueOf(map.get("createDate")), df)) && u.getUserId().equals(userId)).findFirst();
+                if(first.isPresent()){
+                    if(first.get().getWorkHours()!=null){
+                        map.put("cardTime",first.get().getWorkHours());
+                        Optional<User> optional = userList.stream().filter(u -> u.getId().equals(userId)).findFirst();
+                        User targetUser = optional.get();
+                        List<String> customList = userCustomList.stream().map(UserCustom::getName).collect(Collectors.toList());
+                        if(customList.size()>0&&customList.contains("是否有加班费")){
+                            int index = customList.indexOf("是否有加班费");
+                            targetUser.getPlate1();
+                            String getter="getPlate"+(index+1);
+                            Class<User> aClass = User.class;
+                            Method method = aClass.getMethod(getter);
+                            String invoke = (String) method.invoke(targetUser);
+                            if(invoke.equals("有加班费")){
+                                if(!(Double.valueOf(String.valueOf(map.get("workingTime"))).equals(Double.valueOf(first.get().getWorkHours())))){
+                                    map.put("exceedCardTime",1);
+                                }
+                            }else if(invoke.equals("无加班费")){
+                                if((Double.valueOf(String.valueOf(map.get("workingTime")))<first.get().getWorkHours())){
+                                    map.put("exceedCardTime",1);
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        msg.data =reportFillStatus;
         return msg;
     }
 
@@ -4420,7 +4459,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                             Method method = aClass.getMethod(getter);
                             String invoke = (String) method.invoke(targetUser);
                             if(invoke.equals("有加班费")){
-                                if(!(Double.valueOf(String.valueOf(data.get("workingTime"))).equals(first.get().getWorkHours()))){
+                                if(!(Double.valueOf(String.valueOf(data.get("workingTime"))).equals(Double.valueOf(first.get().getWorkHours())))){
                                     map.put("exceedCardTime",1);
                                 }
                             }else if(invoke.equals("无加班费")){

+ 19 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/HolidaySettingMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.management.platform.mapper.HolidaySettingMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.HolidaySetting">
+        <id column="id" property="id" />
+        <result column="company_id" property="companyId" />
+        <result column="holiday_date" property="holidayDate" />
+        <result column="target_users" property="targetUsers" />
+        <result column="target_depts" property="targetDepts" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, company_id, holiday_date, target_users, target_depts
+    </sql>
+
+</mapper>

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

@@ -853,9 +853,8 @@
         group by p.id,u.id,tg.id
     </select>
     <select id="getReportFillStatus" resultType="java.util.Map">
-        SELECT DATE_FORMAT(r.create_date,'%Y-%m-%d') AS createDate, IF (MAX(r.state) = 1, MIN(r.state), MAX(r.state)) AS state,IF(ufv.work_hours &lt; r.working_time,1,0) AS exceedCardTime
+        SELECT DATE_FORMAT(r.create_date,'%Y-%m-%d') AS createDate, IF (MAX(r.state) = 1, MIN(r.state), MAX(r.state)) AS state,sum(r.working_time) as workingTime
         FROM report r
-        LEFT JOIN user_fv_time ufv ON ufv.work_date=r.create_date AND ufv.user_id=r.creator_id
         WHERE r.create_date BETWEEN #{startDate} AND #{endDate} AND r.creator_id = #{userId} GROUP BY r.create_date
     </select>
     <select id="getUserDailyWorkTime" resultType="java.util.Map">