Prechádzať zdrojové kódy

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

seyason 3 rokov pred
rodič
commit
44526e6221

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

@@ -129,9 +129,9 @@ public class UserController {
     public HttpRespMsg insertUser(String id, @RequestParam String name, String phone,
                                   @RequestParam Integer roleId, Double monthCost, Double cost,
                                   Integer departmentId, Integer salaryType, String costApplyDate,
-                                    String position, String certJson) {
+                                    String position, String certJson,String inductionDate) {
         return userService.insertUser(id, name, phone, roleId, monthCost, cost, departmentId, salaryType, costApplyDate,
-                    position, certJson, request);
+                    position, certJson, request,inductionDate);
     }
 
     /**

+ 16 - 8
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/User.java

@@ -1,20 +1,20 @@
 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 java.time.LocalDateTime;
 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 com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 import org.springframework.format.annotation.DateTimeFormat;
 
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
 /**
  * <p>
  * 
@@ -178,6 +178,14 @@ public class User extends Model<User> {
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     private LocalDate inactiveDate;
 
+    /**
+     * 入职日期
+     */
+    @TableField("induction_date")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate inductionDate;
+
 
     @TableField(exist = false)
     private double totalHours;

+ 1 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/vo/UserDailyWorkItem.java

@@ -5,4 +5,5 @@ public class UserDailyWorkItem {
     public String createDate;
     public String department;
     public String name;
+    private String inactiveDate;
 }

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

@@ -30,7 +30,7 @@ public interface UserService extends IService<User> {
 
     HttpRespMsg insertUser(String id, String name, String phone, Integer roleId, Double monthCost, Double cost, Integer departmentId,
                            Integer salaryType, String costApplyDate, String position, String certJson,
-                           HttpServletRequest request);
+                           HttpServletRequest request,String inductionDate);
 
     HttpRespMsg importUser(MultipartFile multipartFile, HttpServletRequest request);
 

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

@@ -2,16 +2,13 @@ package com.management.platform.service.impl;
 
 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.management.platform.controller.WeiXinCorpController;
 import com.management.platform.entity.*;
 import com.management.platform.entity.vo.*;
 import com.management.platform.mapper.*;
 import com.management.platform.service.*;
 import com.management.platform.util.ExcelUtil;
-import com.management.platform.util.FileUtil;
 import com.management.platform.util.HttpRespMsg;
 import com.management.platform.util.ListUtil;
 import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage;
@@ -22,14 +19,7 @@ import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
 import org.apache.commons.io.FileUtils;
 import org.apache.poi.hssf.usermodel.*;
 import org.apache.poi.ss.usermodel.*;
-import org.apache.poi.xssf.usermodel.XSSFCell;
-import org.apache.poi.xssf.usermodel.XSSFRow;
-import org.apache.poi.xssf.usermodel.XSSFSheet;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.core.task.AsyncTaskExecutor;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
@@ -41,11 +31,8 @@ import javax.servlet.http.HttpServletRequest;
 import java.io.*;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.sql.Timestamp;
 import java.text.DecimalFormat;
-import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.time.DayOfWeek;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
@@ -2816,23 +2803,31 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         LocalDate localEnd = LocalDate.parse(endDate, dtf);
         long cnt = localStart.until(localEnd, ChronoUnit.DAYS);
         //按人员过滤
-        for (User curUser: allRangeUserList) {
-            for (int i=0;i<=cnt; i++) {
-                LocalDate date = localStart.plusDays(i);
-                final String dateStr = dtf.format(date);
-                if (!list.stream().anyMatch(item->item.get("id").equals(curUser.getId())&&sdf.format((java.sql.Date)item.get("createDate")).equals(dateStr))) {
-                    UserDailyWorkItem noRecord = new UserDailyWorkItem();
-                    noRecord.userId = curUser.getId();
-                    noRecord.createDate = dtf.format(date);
-                    if (curUser.getDepartmentId() != null && curUser.getDepartmentId() != 0) {
-                        noRecord.department = departmentList.stream().filter(d->d.getDepartmentId().equals(curUser.getDepartmentId())).findFirst().get().getDepartmentName();
-                    } else {
-                        noRecord.department = "无";
+        for (User curUser: allRangeUserList){
+                for (int i=0;i<=cnt; i++) {
+                    LocalDate date = localStart.plusDays(i);
+                    //入职日期以前 不需要添加 跳出
+                    if(curUser.getInductionDate()!=null&&date.isBefore(curUser.getInductionDate())){
+                        continue;
+                    }
+                    //当前日期在离职日期之后 不需要再添加 跳出
+                    if((curUser.getIsActive()==0&&date.isAfter(curUser.getInactiveDate()))) {
+                        continue;
+                    }
+                    final String dateStr = dtf.format(date);
+                    if (!list.stream().anyMatch(item->item.get("id").equals(curUser.getId())&&sdf.format((java.sql.Date)item.get("createDate")).equals(dateStr))) {
+                        UserDailyWorkItem noRecord = new UserDailyWorkItem();
+                        noRecord.userId = curUser.getId();
+                        noRecord.createDate = dtf.format(date);
+                        if (curUser.getDepartmentId() != null && curUser.getDepartmentId() != 0) {
+                            noRecord.department = departmentList.stream().filter(d->d.getDepartmentId().equals(curUser.getDepartmentId())).findFirst().get().getDepartmentName();
+                        } else {
+                            noRecord.department = "无";
+                        }
+                        noRecord.name = curUser.getName();
+                        noReportDataList.add(noRecord);
                     }
-                    noRecord.name = curUser.getName();
-                    noReportDataList.add(noRecord);
                 }
-            }
         }
         //排序
         noReportDataList.sort(new Comparator<UserDailyWorkItem>() {

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

@@ -30,18 +30,15 @@ import org.springframework.http.HttpMethod;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
-import org.springframework.util.NumberUtils;
 import org.springframework.util.StringUtils;
 import org.springframework.web.client.RestTemplate;
 import org.springframework.web.multipart.MultipartFile;
-import sun.util.calendar.ZoneInfoFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.io.*;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.ZoneOffset;
@@ -562,8 +559,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     //新增或修改用户
     @Override
     public HttpRespMsg insertUser(String targetId, String name, String phone, Integer roleId, Double monthCost, Double cost,
-                                  Integer departmentId, Integer salaryType, String costApplyDate, String position, String certJson, HttpServletRequest request) {
+                                  Integer departmentId, Integer salaryType, String costApplyDate, String position, String certJson, HttpServletRequest request,String inductionDate) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
+        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         try {
             User creator = userMapper.selectById(request.getHeader("Token"));
             //处理时薪
@@ -599,7 +597,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                                 .setDepartmentId(departmentId == null ? 0 : departmentId)
                                 .setDepartmentCascade(departmentId == null ?
                                         convertDepartmentIdToCascade(0) :
-                                        convertDepartmentIdToCascade(departmentId));
+                                        convertDepartmentIdToCascade(departmentId))
+                                .setInductionDate(LocalDate.parse(inductionDate,dtf));
                         if (userMapper.insert(user) == 0) {
                             httpRespMsg.setError("操作失败");
                         } else {
@@ -646,7 +645,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                         .setDepartmentId(departmentId == null ? 0 : departmentId)
                         .setDepartmentCascade(departmentId == null ?
                                 convertDepartmentIdToCascade(0) :
-                                convertDepartmentIdToCascade(departmentId)));
+                                convertDepartmentIdToCascade(departmentId))
+                        .setInductionDate(LocalDate.parse(inductionDate,dtf)));
                 if (salaryChange) {
                     UserSalary userSalary = UserSalary.copyFromUser(oldUser);
                     userSalaryMapper.insert(userSalary);

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

@@ -458,12 +458,12 @@
         WHERE create_date BETWEEN #{startDate} AND #{endDate} AND creator_id = #{userId} GROUP BY create_date
     </select>
     <select id="getUserDailyWorkTime" resultType="java.util.Map">
-        SELECT user.id, user.name, department.department_name as departmentName, report.create_date as createDate, sum(working_time) as workingTime
+        SELECT user.id, user.name, department.department_name as departmentName, report.create_date as createDate, sum(working_time) as workingTime,user.inactive_date as inactiveDate
         FROM user
         left join report on user.id = report.creator_id
         left join department on department.department_id = user.department_id
         WHERE (report.state = 0 or report.state = 1)
-        and user.company_id = #{companyId}
+        and user.company_id = #{companyId} and (user.is_active=1 or(user.is_active=0 and user.inactive_date>=#{startDate}))
         <if test="deptIds != null">
             AND user.department_id in <foreach collection="deptIds" separator="," index="index" item="item" close=")" open="(">
             #{item}

+ 10 - 10
fhKeeper/formulahousekeeper/timesheet/config/index.js

@@ -2,18 +2,18 @@ var path = require('path')
 
 //  var ip = '127.0.0.1'
 // var ip = '192.168.2.20'
-// var ip = '192.168.2.12'
+var ip = '192.168.2.6'
 // var ip = '47.100.37.243' 
 
-var os = require('os'), ip = '', ifaces = os.networkInterfaces() // 获取本机ip
-for (var i in ifaces) {
-    for (var j in ifaces[i]) {
-        var val = ifaces[i][j]
-        if (val.family === 'IPv4' && val.address !== '127.0.0.1') {
-            ip = val.address
-        }
-    }
-}
+// var os = require('os'), ip = '', ifaces = os.networkInterfaces() // 获取本机ip
+// for (var i in ifaces) {
+//     for (var j in ifaces[i]) {
+//         var val = ifaces[i][j]
+//         if (val.family === 'IPv4' && val.address !== '127.0.0.1') {
+//             ip = val.address
+//         }
+//     }
+// }
 
 module.exports = {
   build: {

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/project/info.vue

@@ -217,7 +217,7 @@
                 </el-form-item>
 
                 <!-- 研究中心 -->
-                <el-form-item :label="yonghuUser.customDegreeName">
+                <el-form-item :label="yonghuUser.customDegreeName" v-if="user.timeType.customDegreeActive != 0">
                     <el-select v-model="auseList" multiple placeholder="请选择" filterable="true" style="width: 100%">
                         <span v-for="(item, index) in ause" :key="index">
                         <el-option :label="item.name" :value="item.id"></el-option>

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

@@ -755,12 +755,12 @@
         
         <!-- 按部门选择人员 -->
         <el-dialog title="选择需要代填报的人员"  v-if="chooseParticipVisible" :visible.sync="chooseParticipVisible" :close-on-click-modal="false" customClass="customWidth" width="500px">
-            <!-- <el-input style="width:100%" v-model="filterName" placeholder="请输入姓名搜索" @change="findUserInTree"></el-input> -->
+            <el-input style="width:100%" v-model="deptMembDataText" placeholder="请输入姓名搜索"></el-input>
             <div class="tree" style="height:400px">
                 <el-scrollbar style="height:100%">
                 <el-tree :data="deptMembData" show-checkbox :props="defaultProps" node-key="id"
                     ref="chooseMembTree" @check-change="onTreeItemChange" :default-checked-keys="workForm.userId"
-                    highlight-current ></el-tree>
+                    highlight-current :filter-node-method="filterNode"></el-tree>
                 </el-scrollbar>
             </div>
             <div>已选中&nbsp;{{chosenMembCount}}&nbsp;人</div>
@@ -1336,9 +1336,15 @@
                 monthnotTotal: 0,
                 monthnotTotalPage: 0,
                 monthnotTotalLages: 20,
-                monthnotworkDateS1: []
+                monthnotworkDateS1: [],
+                deptMembDataText: ''
             };
         },
+        watch: {
+            deptMembDataText(val) {
+                this.$refs.chooseMembTree.filter(val);
+            }
+        },
         filters: {
             // 过滤
             amounts(value) {
@@ -1364,6 +1370,11 @@
             
         },
         methods: {
+            filterNode(value, data) {
+                // console.log(value, data, '搜索')
+                if (!value) return true;
+                return data.label.indexOf(value) !== -1;
+            },
             triggerCalculateOT(index) {
                 var str = this.workForm.domains[index].overtimeHours + ''
                 if(str.indexOf('.') != '-1') {