Переглянути джерело

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

seyason 9 місяців тому
батько
коміт
96287fd7dd
26 змінених файлів з 633 додано та 73 видалено
  1. 21 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/DeviceController.java
  2. 21 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/DeviceCostController.java
  3. 21 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/DeviceLogController.java
  4. 4 4
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java
  5. 22 8
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java
  6. 100 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Device.java
  7. 57 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/DeviceCost.java
  8. 87 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/DeviceLog.java
  9. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/DeviceCostMapper.java
  10. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/DeviceLogMapper.java
  11. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/DeviceMapper.java
  12. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/DeviceCostService.java
  13. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/DeviceLogService.java
  14. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/DeviceService.java
  15. 2 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectService.java
  16. 20 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DeviceCostServiceImpl.java
  17. 20 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DeviceLogServiceImpl.java
  18. 20 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DeviceServiceImpl.java
  19. 11 5
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  20. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  21. 18 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/DeviceCostMapper.xml
  22. 22 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/DeviceLogMapper.xml
  23. 27 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/DeviceMapper.xml
  24. 50 14
      fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue
  25. 12 38
      fhKeeper/formulahousekeeper/timesheet_h5/src/views/edit/index.vue
  26. 1 1
      fhKeeper/formulahousekeeper/timesheet_h5/src/views/login/index.vue

+ 21 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/DeviceController.java

@@ -0,0 +1,21 @@
+package com.management.platform.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-10-08
+ */
+@RestController
+@RequestMapping("/device")
+public class DeviceController {
+
+}
+

+ 21 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/DeviceCostController.java

@@ -0,0 +1,21 @@
+package com.management.platform.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-10-08
+ */
+@RestController
+@RequestMapping("/device-cost")
+public class DeviceCostController {
+
+}
+

+ 21 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/DeviceLogController.java

@@ -0,0 +1,21 @@
+package com.management.platform.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-10-08
+ */
+@RestController
+@RequestMapping("/device-log")
+public class DeviceLogController {
+
+}
+

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

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

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

@@ -922,12 +922,21 @@ public class ReportController {
                     }
 
                     List<LocalDate> workDaysListInRange = WorkDayCalculateUtils.getWorkDaysListInRange(startDate, endDate, comTimeType.getIncludeWeekends());
-                    if (workDaysListInRange.size() == 0) {
-                        HttpRespMsg msg = new HttpRespMsg();
-                        //msg.setError("工作日天数为0,无法提交。(批量填报会自动跳过节假日,请尝试填写日报或者重新选择日期范围)");
-                        msg.setError(MessageUtils.message("profession.SubmitErrorByDay"));
-                        return msg;
+                    if (targetUids==null || targetUids.length == 0) {
+                        if (workDaysListInRange.size() == 0) {//批量填报要按照工作日来计算
+                            HttpRespMsg msg = new HttpRespMsg();
+                            //msg.setError("工作日天数为0,无法提交。(批量填报会自动跳过节假日,请尝试填写日报或者重新选择日期范围)");
+                            msg.setError(MessageUtils.message("profession.SubmitErrorByDay"));
+                            return msg;
+                        }
+                    } else {
+                        //代填的情况,如果是指定日期,直接使用该日期
+                        if (startDate.equals(endDate)) {
+                            workDaysListInRange = new ArrayList<>();
+                            workDaysListInRange.add(LocalDate.parse(startDate, DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+                        }
                     }
+
                     //获取当前填报人所在部门的自定义审核流程
                     for (LocalDate localStartDate : workDaysListInRange) {
                         if (targetUserList == null) {
@@ -1785,9 +1794,9 @@ public class ReportController {
         }
 
 
-        if (createDate[0].contains("@") && targetUserList == null) {
+        if (createDate[0].contains("@")) {
             //个人批量填报,判断是否需要考勤校验
-            if (comTimeType.getSyncCorpwxTime() == 1) {
+            if (comTimeType.getSyncCorpwxTime() == 1 && targetUids == null) {
                 String[] dateArr = createDate[0].split("@");
                 List<UserCorpwxTime> cardTimeList = userCorpwxTimeMapper.selectList(new QueryWrapper<UserCorpwxTime>().eq("corpwx_userid", user.getCorpwxUserid()).between("create_date", dateArr[0], dateArr[1]));
                 if (company.getId() == 3918 || company.getId() == 4281) {
@@ -2431,7 +2440,12 @@ public class ReportController {
                             }
                         }
                     }
-                    msg.data = WorkDayCalculateUtils.getWorkDaysCountInRange(startDate, endDate, timeType.getIncludeWeekends());
+                    if (startDate.equals(endDate)) {
+                        //指定某一天,就不用计算是否是非工作日了
+                        msg.data = 1;
+                    } else {
+                        msg.data = WorkDayCalculateUtils.getWorkDaysCountInRange(startDate, endDate, timeType.getIncludeWeekends());
+                    }
                 }
             }
         }

+ 100 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Device.java

@@ -0,0 +1,100 @@
+package com.management.platform.entity;
+
+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-10-08
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class Device extends Model<Device> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键
+     */
+    @TableId("id")
+    private Integer id;
+
+    /**
+     * 设备编号
+     */
+    @TableField("device_code")
+    private String deviceCode;
+
+    /**
+     * 设备名称
+     */
+    @TableField("device_name")
+    private String deviceName;
+
+    /**
+     * 设备型号
+     */
+    @TableField("device_model")
+    private String deviceModel;
+
+    /**
+     * 制造商
+     */
+    @TableField("manufacturer")
+    private String manufacturer;
+
+    /**
+     * 购置日期
+     */
+    @TableField("purchase_date")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate purchaseDate;
+
+    /**
+     * 维保日期
+     */
+    @TableField(" maintenance_date")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate maintenanceDate;
+
+    /**
+     * 公司id
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 使用状态 0 未使用 ,1 使用中
+     */
+    @TableField("usage_status")
+    private Boolean usageStatus;
+
+    /**
+     * 使用人id
+     */
+    @TableField("usage_user_id")
+    private String usageUserId;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

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

@@ -0,0 +1,57 @@
+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 lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-10-08
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class DeviceCost extends Model<DeviceCost> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键id
+     */
+    @TableId("id")
+    private Integer id;
+
+    /**
+     * 设备id
+     */
+    @TableField("device_id")
+    private Integer deviceId;
+
+    /**
+     * 月成本
+     */
+    @TableField("month_cost")
+    private BigDecimal monthCost;
+
+    /**
+     * 年月
+     */
+    @TableField("ymonth")
+    private String ymonth;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 87 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/DeviceLog.java

@@ -0,0 +1,87 @@
+package com.management.platform.entity;
+
+import java.math.BigDecimal;
+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-10-08
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class DeviceLog extends Model<DeviceLog> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键
+     */
+    @TableId("id")
+    private Integer id;
+
+    /**
+     * 设备id
+     */
+    @TableField("device_id")
+    private Integer deviceId;
+
+    /**
+     * 项目id
+     */
+    @TableField("project_id")
+    private Integer projectId;
+
+    /**
+     * 开始使用时间
+     */
+    @TableField("start_time")
+    private String startTime;
+
+    /**
+     * 结束使用时间
+     */
+    @TableField("end_time")
+    private String endTime;
+
+    /**
+     * 使用日期
+     */
+    @TableField("create_date")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate createDate;
+
+    /**
+     * 使用者id
+     */
+    @TableField("usage_user_id")
+    private String usageUserId;
+
+    /**
+     * 使用成本
+     */
+    @TableField("usage_cost")
+    private BigDecimal usageCost;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

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

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

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

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

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

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

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

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

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

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

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

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

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

@@ -22,7 +22,7 @@ import java.time.LocalDate;
  * @since 2020-01-03
  */
 public interface ProjectService extends IService<Project> {
-    HttpRespMsg getProjectList(Integer forReport, HttpServletRequest request);
+    HttpRespMsg getProjectList(Integer forReport, String userId, HttpServletRequest request);
 
     HttpRespMsg getProjectPage(Integer pageIndex, Integer pageSize, String keyword, Integer searchField,
                                Integer status, Integer category, Integer projectId,Integer projectMainId,Integer deptId, String sortProp, Integer sortOrder,String inchagerId,String participation,String startDate,String endDate, HttpServletRequest request);
@@ -246,7 +246,7 @@ public interface ProjectService extends IService<Project> {
 
     HttpRespMsg timeCostAndExpenseByProject(HttpServletRequest request, String startDate, String endDate, Integer projectId);
 
-    HttpRespMsg nearProject(HttpServletRequest request);
+    HttpRespMsg nearProject(HttpServletRequest request, String userId);
 
     HttpRespMsg getFTEData(Integer pageIndex, Integer pageSize,String monthStart,String monthEnd, String area,String userId,String sortProp, Integer sortOrder,Integer departmentId,HttpServletRequest request);
 

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

@@ -0,0 +1,20 @@
+package com.management.platform.service.impl;
+
+import com.management.platform.entity.DeviceCost;
+import com.management.platform.mapper.DeviceCostMapper;
+import com.management.platform.service.DeviceCostService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-10-08
+ */
+@Service
+public class DeviceCostServiceImpl extends ServiceImpl<DeviceCostMapper, DeviceCost> implements DeviceCostService {
+
+}

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

@@ -0,0 +1,20 @@
+package com.management.platform.service.impl;
+
+import com.management.platform.entity.DeviceLog;
+import com.management.platform.mapper.DeviceLogMapper;
+import com.management.platform.service.DeviceLogService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-10-08
+ */
+@Service
+public class DeviceLogServiceImpl extends ServiceImpl<DeviceLogMapper, DeviceLog> implements DeviceLogService {
+
+}

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

@@ -0,0 +1,20 @@
+package com.management.platform.service.impl;
+
+import com.management.platform.entity.Device;
+import com.management.platform.mapper.DeviceMapper;
+import com.management.platform.service.DeviceService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-10-08
+ */
+@Service
+public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> implements DeviceService {
+
+}

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

@@ -682,10 +682,14 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
 
     //获取项目列表
     @Override
-    public HttpRespMsg getProjectList(Integer forReport, HttpServletRequest request) {
+    public HttpRespMsg getProjectList(Integer forReport, String userId, HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         try {
-            User user = userMapper.selectById(request.getHeader("Token"));
+            System.out.println("userId===="+userId);
+            if (userId == null) {
+                userId = request.getHeader("Token");
+            }
+            User user = userMapper.selectById(userId);
             if (forReport == 1) {
                 if (!sysFunctionService.hasPriviledge(user.getRoleId(), "可填报全部项目")) {
                     //只能看本人参与的项目
@@ -12592,10 +12596,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
      * @return
      */
     @Override
-    public HttpRespMsg nearProject(HttpServletRequest request) {
+    public HttpRespMsg nearProject(HttpServletRequest request, String userId) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
-        User user = userMapper.selectById(request.getHeader("token"));
-        List<Project> projects = projectMapper.selectNearProject(user.getId());
+        if (userId == null) {
+            userId = request.getHeader("token");
+        }
+        List<Project> projects = projectMapper.selectNearProject(userId);
         httpRespMsg.data = projects;
         return httpRespMsg;
     }

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

@@ -4744,7 +4744,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         for (UserMonthWork userMonthWork : userMonthWorks) {
             List<Map<String, Object>> worktimeList = userMonthWork.worktimeList;
             //获取到该员工请假的数据
-            List<UserCorpwxTime> curUserCorpTime = userCorpwxTimeList.stream().filter(s->s.getCorpwxUserid().equals(userMonthWork.corpwxUserId)).collect(Collectors.toList());
+            List<UserCorpwxTime> curUserCorpTime = userCorpwxTimeList.stream().filter(s->s.getCorpwxUserid() != null && s.getCorpwxUserid().equals(userMonthWork.corpwxUserId)).collect(Collectors.toList());
 //            for (Map<String, Object> corpWx : userCorpwxTimeMapList) {
 //                if (((String)corpWx.get("corpwx_userid")).equals(userMonthWork.corpwxUserId)) {
 //                    curUserCorpTime.add(corpWx);

+ 18 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/DeviceCostMapper.xml

@@ -0,0 +1,18 @@
+<?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.DeviceCostMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.DeviceCost">
+        <id column="id" property="id" />
+        <result column="device_id" property="deviceId" />
+        <result column="month_cost" property="monthCost" />
+        <result column="ymonth" property="ymonth" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, device_id, month_cost, ymonth
+    </sql>
+
+</mapper>

+ 22 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/DeviceLogMapper.xml

@@ -0,0 +1,22 @@
+<?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.DeviceLogMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.DeviceLog">
+        <id column="id" property="id" />
+        <result column="device_id" property="deviceId" />
+        <result column="project_id" property="projectId" />
+        <result column="start_time" property="startTime" />
+        <result column="end_time" property="endTime" />
+        <result column="create_date" property="createDate" />
+        <result column="usage_user_id" property="usageUserId" />
+        <result column="usage_cost" property="usageCost" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, device_id, project_id, start_time, end_time, create_date, usage_user_id, usage_cost
+    </sql>
+
+</mapper>

+ 27 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/DeviceMapper.xml

@@ -0,0 +1,27 @@
+<?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.DeviceMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.Device">
+        <id column="id" property="id" />
+        <result column="device_code" property="deviceCode" />
+        <result column="device_name" property="deviceName" />
+        <result column="device_model" property="deviceModel" />
+        <result column="manufacturer" property="manufacturer" />
+        <result column="purchase_date" property="purchaseDate" />
+        <result column="
+maintenance_date" property="
+maintenanceDate" />
+        <result column="company_id" property="companyId" />
+        <result column="usage_status" property="usageStatus" />
+        <result column="usage_user_id" property="usageUserId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, device_code, device_name, device_model, manufacturer, purchase_date, 
+maintenance_date, company_id, usage_status, usage_user_id
+    </sql>
+
+</mapper>

+ 50 - 14
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

@@ -2228,6 +2228,7 @@
         },
         data() {
             return {
+                subFillProjectList:[],
                 curAuditNode: 1,
                 refreshingTime: false,
                 substitudeStep: 1,
@@ -2991,19 +2992,20 @@
                     );
                 }).catch(() => {this.startDeleting = false});
             },
-            getRecentlyProject() {
-                this.http.post('/project/nearProject',{},res => {
+            getRecentlyProject(userId) {
+                this.http.post('/project/nearProject',{userId: userId},res => {
                     if(res.code == 'ok'){
+                        var bottomList = userId == null?this.fillProjectList:this.subFillProjectList;
                         let topObj = {
                             label: this.$t('zuiJinXuanZeXiangMu'),
                             peojectList: res.data 
                         }
                         let botomObj = {
                             label: this.$t('other.allProject'),
-                            peojectList: this.fillProjectList
+                            peojectList: bottomList
                         }
                         //最近项目如果在fillProjectList中不存在,需要移除
-                        topObj.peojectList = topObj.peojectList.filter(top=>this.fillProjectList.find(fp=>fp.id==top.id) != null);
+                        topObj.peojectList = topObj.peojectList.filter(top=>bottomList.find(fp=>fp.id==top.id) != null);
                         this.integrationProjectList = [topObj, botomObj]
                     }else {
                         this.$message({
@@ -4519,15 +4521,13 @@
             chooseParticip() {
                 var chosenList = this.$refs.chooseMembTree.getCheckedNodes();
                 this.chosenMembList = chosenList.filter(item=>item.isUser == 1);
-                //针对专业版,只能选择一个人进行代填,防止任务有问题
-                if (this.user.company.packageProject == 1) {
-                    if (this.chosenMembList.length > 1) {
-                        this.$message({
-                            message: this.$t('meiCiJinZhiChiDaiTianYiGeRen'),
-                            type: "error",
-                        });
-                        return;
-                    }
+                //只能选择一个人进行代填,防止任务有问题
+                if (this.chosenMembList.length > 1) {
+                    this.$message({
+                        message: this.$t('meiCiJinZhiChiDaiTianYiGeRen'),
+                        type: "error",
+                    });
+                    return;
                 }
                 this.chooseParticipVisible = false;
                 this.workForm.userNames = '';
@@ -4548,7 +4548,10 @@
                         this.workForm.userNames = this.workForm.userNames.split(',')
                     }
                 }
-                
+                //加载该人员的可填报项目
+                if (this.workForm.userId.length > 0) {
+                    this.getSubUsersFillProjectList(this.workForm.userId[0]);
+                }
             },
 
             notifySel(sel){
@@ -6077,6 +6080,33 @@
                     });
                 });
             },
+            getSubUsersFillProjectList(userId) {
+                this.http.post( this.port.project.list, {
+                    forReport: 1,
+                    userId: userId
+                },res => {
+                    if (res.code == "ok") {
+                        for(var i in res.data) {
+                            if(res.data[i].projectCode == null || res.data[i].projectCode == 'null') {
+                                res.data[i].projectCode = ''
+                            }
+                        }
+                        this.subFillProjectList = res.data;
+                        this.getRecentlyProject(userId) 
+                    } else {
+                        this.$message({
+                            message: res.msg,
+                            type: "error"
+                        });
+                    }
+                },
+                error => {
+                    this.$message({
+                        message: error,
+                        type: "error"
+                    });
+                });
+            },
             // 获取填报日报的项目下拉列表
             getFillProjectList() {
                 this.http.post( this.port.project.list, {
@@ -6104,6 +6134,10 @@
                     });
                 });
             },
+            //自己填写日报时,刷新到自己的可填报日报列表
+            refreshToMyReportProjectList() {
+                this.getRecentlyProject();
+            },
             getBasecostItemList() {
                 this.http.post('/project-basecost-setting/getReportBasecostList', {
                     companyId: this.user.companyId
@@ -6396,6 +6430,8 @@
                 }
                 if (this.isSubstitude) {
                     this.getSubstitudeUserDeptList();
+                } else {
+                    this.refreshToMyReportProjectList();
                 }
                 if(i == -1 || this.isSubstitude) {
                     this.isDisable = false;

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

@@ -20,7 +20,7 @@
                     </van-field>
                     <template #right-icon>
                         <!--先开放几家,试一下-->
-                        <span style="color:#20a0ff;" @click="getAIReport()" v-if="!hasWrittenReport && (user.companyId==10||user.companyId==7||user.companyId==7030)">智能填报</span>
+                        <span style="color:#20a0ff;" @click="getAIReport()" v-if="!substitute && !hasWrittenReport && (user.companyId==10||user.companyId==7||user.companyId==7030)">智能填报</span>
                     </template>
                 </van-cell>
                 
@@ -806,8 +806,8 @@ export default {
                 }).catch(err => { })
         },
 
-        getRecentlyProject() {
-            this.$axios.post('/project/nearProject', {})
+        getRecentlyProject(userId) {
+            this.$axios.post('/project/nearProject', {userId: userId})
                 .then(res => {
                     if (res.code == 'ok') {
                         this.integrationProjectList = res.data;
@@ -901,12 +901,12 @@ export default {
             if(!this.substitute) {
                 this.form.domains[this.auditor.index][this.auditor.auditorIndex] = this.auditor.item
             }
+            this.auditorShow = false
             if(this.substitute) {
                 const { id, name } = this.auditor.item
                 this.fillingAgent = { id, name }
+                this.getProject(this.fillingAgent.id);
             }
-            this.auditorShow = false
-            console.log('searchAuditor');
         },
         getAllUsersList() {
             this.$axios.post('/user/getSimpleActiveUserList', {})
@@ -958,8 +958,8 @@ export default {
             this.$forceUpdate();
         },
         // 获取项目
-        getPeoject() {
-            this.$axios.post("/project/getProjectList", { forReport: 1 })
+        getProject(userId) {
+            this.$axios.post("/project/getProjectList", { forReport: 1, userId: userId})
                 .then(res => {
                     if (res.code == "ok") {
                         for (var i in res.data) {
@@ -971,7 +971,7 @@ export default {
                         this.project = res.data;
                         this.projectss = this.projectss.filter(p => p.status == 1 || p.status == 4);
                         this.proads = res.data
-                        this.getRecentlyProject()
+                        this.getRecentlyProject(userId)
                     } else {
                         this.$toast.fail('获取失败:' + res.msg);
                     }
@@ -1485,29 +1485,6 @@ export default {
             for (var i = 0; i < len; i++) { s = '0' + s; }
             return s;
         },
-
-        // 获取项目
-        getProject() {
-            const toast = this.$toast.loading({
-                forbidClick: true,
-                duration: 0
-            });
-            this.$axios.post("/project/getProjectList", {})
-                .then(res => {
-                    if (res.code == "ok") {
-                        this.$toast.clear();
-
-
-                        // if (this.project.length > 0) {
-                        //     console.log('this.project[0].id=='+this.project[0].id);
-                        //     this.getTaskList(this.project[0].id);
-                        // }
-                    } else {
-                        this.$toast.clear();
-                        this.$toast.fail('获取失败:' + res.msg);
-                    }
-                }).catch(err => { this.$toast.clear(); });
-        },
         getAIReport(createDate) {
             const toast = this.$toast.loading({
                 forbidClick: true,
@@ -2306,8 +2283,6 @@ export default {
                 }
             }
             this.dateAr = alp
-            console.log(this.reportTimeType, this.dateAr, '<=== this.reportTimeType')
-
             const { timeCanOverlap } = this.reportTimeType // timeCanOverlap 为零时校验不允许重叠
             if (this.dateAr.length > 0 && timeCanOverlap == 0) {
                 let trus = this.fns()
@@ -2397,7 +2372,8 @@ export default {
                     return;
                 }
             }
-            if (this.user.timeType.notAllowedNoAttendance == 1 && this.isDraft == 0) {
+            //非代填情况下要校验考勤
+            if (!this.substitute && this.user.timeType.notAllowedNoAttendance == 1 && this.isDraft == 0) {
                 if (this.report.time) {
                     if (this.report.time.workHours == 0) {
                         this.$toast.fail('无考勤记录不可填报')
@@ -2409,7 +2385,7 @@ export default {
                 }
             }
             //针对凡己,不校验考勤时长
-            if (this.user.companyId != 3918 && this.user.companyId != 5978 && this.user.companyId != 4281 && this.reportTimeType.type == 1 && this.report.time) {
+            if (!this.substitute && this.user.companyId != 3918 && this.user.companyId != 5978 && this.user.companyId != 4281 && this.reportTimeType.type == 1 && this.report.time) {
                 var totalTime = 0;
                 for (var t = 0; t < this.form.domains.length; t++) {
                     totalTime += parseFloat(this.form.domains[t].workingTime);
@@ -2797,8 +2773,7 @@ export default {
         } else if (ua.indexOf("micromessenger") > 0) {
             this.isWX = true;
         }
-        this.getPeoject() // 获取项目
-        // console.log('mounted');
+        this.getProject() //获取项目
         this.getReportBasecostList()
         //获取传递过来的日期
         var passDate = this.$route.query.date;
@@ -2806,7 +2781,6 @@ export default {
             this.form.createDate = this.$route.query.date;
         }
 
-        // this.getProject();
         this.getReport();
         this.getAllUsersList()
         this.getTimeType();

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet_h5/src/views/login/index.vue

@@ -266,7 +266,7 @@
             }
             let href = window.location.href;
             //优先处理企业微信工作台点击进入,后台已经处理过,有userId传过来了
-            if (this.isCorpWX && href.indexOf("userId") > 0) {
+            if (href.indexOf("userId") > 0) {
                 //判断企业微信,是否存在授权
                 var loginUserId = href.substring(href.indexOf("userId=")+"userId=".length);
                 if (loginUserId.includes('#/')) {