From 9a869e800b235636097abebadb1bd1cae4206cbc Mon Sep 17 00:00:00 2001
From: value <z1292839451@163.com>
Date: 星期二, 04 六月 2024 21:21:57 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 performance-server/src/main/java/com/yuanchu/mom/utils/StyleYearUtils.java                                |   20 +--
 performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryOriginalHoursController.java         |   14 +
 performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java |    6 
 cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceDto1.java                                             |   43 +++++++
 user-server/src/main/java/com/yuanchu/mom/pojo/User.java                                                  |    3 
 user-server/src/main/java/com/yuanchu/mom/controller/CompaniesController.java                             |   41 ++++++
 cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java                             |    1 
 performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java      |   43 ++++++
 performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryOriginalHoursService.java               |    9 +
 performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryOutputWorkingHoursController.java    |    2 
 cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java                                |   20 +++
 user-server/src/main/java/com/yuanchu/mom/service/UserService.java                                        |    2 
 cnas-server/src/main/java/com/yuanchu/mom/service/DeviceService.java                                      |    1 
 performance-server/src/main/java/com/yuanchu/mom/service/impl/PerformanceShiftServiceImpl.java            |  101 +++++++++-------
 performance-server/src/main/java/com/yuanchu/mom/utils/StyleMonthUtils.java                               |    4 
 user-server/src/main/java/com/yuanchu/mom/service/impl/UserServiceImp.java                                |    2 
 cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java                                                |   21 +++
 17 files changed, 260 insertions(+), 73 deletions(-)

diff --git a/cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java b/cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java
index 17cd875..c70c19f 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java
@@ -6,12 +6,14 @@
 import com.yuanchu.mom.annotation.ValueAuth;
 import com.yuanchu.mom.annotation.ValueClassify;
 import com.yuanchu.mom.dto.DeviceDto;
+import com.yuanchu.mom.dto.DeviceDto1;
 import com.yuanchu.mom.pojo.Device;
 import com.yuanchu.mom.service.DeviceService;
 import com.yuanchu.mom.utils.JackSonUtil;
 import com.yuanchu.mom.vo.Result;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -130,5 +132,23 @@
     public Result selectDeviceByCode(String code) {
         return Result.success(deviceService.selectDeviceByCode(code));
     }
+
+    @ValueClassify("璁惧")
+    @ApiOperation(value = "鏌ヨ鏁伴噰閰嶇疆")
+    @PostMapping("/getNumberCollect")
+    public Result<?> getNumberCollect(Integer id) {
+        DeviceDto1 deviceDto1 = new DeviceDto1();
+        BeanUtils.copyProperties(deviceService.getById(id),deviceDto1);
+        return Result.success(deviceDto1);
+    }
+
+    @ValueClassify("璁惧")
+    @ApiOperation(value = "缁存姢鏁伴噰閰嶇疆")
+    @PostMapping("/numberCollect")
+    public Result<?> numberCollect(@RequestBody DeviceDto1 deviceDto1) {
+        Device device = new Device();
+        BeanUtils.copyProperties(deviceDto1,device);
+        return Result.success(deviceService.updateById(device));
+    }
 }
 
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceDto1.java b/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceDto1.java
new file mode 100644
index 0000000..fae668c
--- /dev/null
+++ b/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceDto1.java
@@ -0,0 +1,43 @@
+package com.yuanchu.mom.dto;
+
+
+import com.yuanchu.mom.annotation.ValueTableShow;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+public class DeviceDto1 {
+
+    private Integer id;
+
+    @ApiModelProperty(value = "IP")
+    @ValueTableShow(1)
+    @NotNull
+    private String ip;
+
+    @ApiModelProperty(value = "閲囬泦鍦板潃")
+    @NotNull
+    private String collectUrl;
+
+    @ApiModelProperty(value = "瀛樺偍鍦板潃")
+    @NotNull
+    private String storageUrl;
+
+    @ApiModelProperty(value = "鍙傜収")
+    @NotNull
+    private String refer;
+
+    @ApiModelProperty(value = "X")
+    @NotNull
+    private String x;
+
+    @ApiModelProperty(value = "Y")
+    @NotNull
+    private String y;
+
+    @ApiModelProperty(value = "鍏紡")
+    @NotNull
+    private String formula;
+}
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java b/cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java
index 6a2e465..f339927 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java
@@ -118,4 +118,25 @@
     @TableField(fill = FieldFill.INSERT)
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "IP")
+    private String ip;
+
+    @ApiModelProperty(value = "閲囬泦鍦板潃")
+    private String collectUrl;
+
+    @ApiModelProperty(value = "瀛樺偍鍦板潃")
+    private String storageUrl;
+
+    @ApiModelProperty(value = "鍙傜収")
+    private String refer;
+
+    @ApiModelProperty(value = "X")
+    private String x;
+
+    @ApiModelProperty(value = "Y")
+    private String y;
+
+    @ApiModelProperty(value = "鍏紡")
+    private String formula;
 }
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/DeviceService.java b/cnas-server/src/main/java/com/yuanchu/mom/service/DeviceService.java
index 1d2e3d3..9268eda 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/service/DeviceService.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/service/DeviceService.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yuanchu.mom.dto.DeviceDto;
+import com.yuanchu.mom.dto.DeviceDto1;
 import com.yuanchu.mom.pojo.Device;
 
 import java.util.List;
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java
index 8f9872a..786bd65 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java
@@ -7,6 +7,7 @@
 import com.yuanchu.mom.common.GetLook;
 import com.yuanchu.mom.common.PrintChina;
 import com.yuanchu.mom.dto.DeviceDto;
+import com.yuanchu.mom.dto.DeviceDto1;
 import com.yuanchu.mom.mapper.DeviceMapper;
 import com.yuanchu.mom.mapper.StructureItemParameterMapper;
 import com.yuanchu.mom.pojo.Device;
diff --git a/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryOriginalHoursController.java b/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryOriginalHoursController.java
index 191e4c5..8658998 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryOriginalHoursController.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryOriginalHoursController.java
@@ -11,12 +11,11 @@
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.Map;
 
 @Api(tags = "宸ユ椂缁熻-鍘熷宸ユ椂")
@@ -36,4 +35,11 @@
         AuxiliaryOriginalHoursLookDto entity = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), AuxiliaryOriginalHoursLookDto.class);
         return Result.success(auxiliaryOriginalHoursService.selectAuxiliaryOriginalHours(page, entity));
     }
+
+    @ValueClassify("宸ユ椂绠$悊")
+    @ApiOperation(value = "瀵煎嚭鍘熷宸ユ椂")
+    @GetMapping("/exportOriginalHours")
+    public void exportOriginalHours(@RequestBody AuxiliaryOriginalHoursLookDto auxiliaryOriginalHoursLookDto,HttpServletResponse response) throws IOException {
+        auxiliaryOriginalHoursService.exportWorkingHours(auxiliaryOriginalHoursLookDto,response);
+    }
 }
diff --git a/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryOutputWorkingHoursController.java b/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryOutputWorkingHoursController.java
index eb82628..c558ea3 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryOutputWorkingHoursController.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryOutputWorkingHoursController.java
@@ -55,7 +55,7 @@
 
 
     @ValueClassify("宸ユ椂绠$悊")
-    @ApiOperation(value = "瀵煎嚭")
+    @ApiOperation(value = "瀵煎嚭浜ч噺宸ユ椂+杈呭姪宸ユ椂")
     @GetMapping("/exportWorkingHours")
     public void exportWorkingHours(HttpServletResponse response) throws IOException {
         auxiliaryOutputWorkingHoursService.exportWorkingHours(response);
diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryOriginalHoursService.java b/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryOriginalHoursService.java
index 8053d93..9a6a477 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryOriginalHoursService.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryOriginalHoursService.java
@@ -4,9 +4,18 @@
 import com.yuanchu.mom.dto.AuxiliaryOriginalHoursDto;
 import com.yuanchu.mom.dto.AuxiliaryOriginalHoursLookDto;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.Map;
 
 public interface AuxiliaryOriginalHoursService {
 
     Map<String, Object> selectAuxiliaryOriginalHours(Page page, AuxiliaryOriginalHoursLookDto auxiliaryOriginalHoursLookDto);
+
+    /**
+     * 瀵煎嚭鍘熷宸ユ椂
+     *
+     * @param response
+     */
+    void exportWorkingHours(AuxiliaryOriginalHoursLookDto auxiliaryOriginalHoursLookDto, HttpServletResponse response) throws IOException;
 }
diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java
index e042b0c..2026c9c 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java
@@ -1,14 +1,17 @@
 package com.yuanchu.mom.service.impl;
 
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.mom.common.GetLook;
 import com.yuanchu.mom.common.PrintChina;
-import com.yuanchu.mom.dto.AuxiliaryCorrectionHoursDto;
-import com.yuanchu.mom.dto.AuxiliaryOriginalHoursDto;
-import com.yuanchu.mom.dto.AuxiliaryOriginalHoursLookDto;
+import com.yuanchu.mom.dto.*;
 import com.yuanchu.mom.mapper.*;
 import com.yuanchu.mom.pojo.AuxiliaryCorrectionHours;
 import com.yuanchu.mom.pojo.Power;
@@ -18,6 +21,9 @@
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -124,11 +130,11 @@
             }
         }
         //濡傛灉浜ч噺宸ユ椂涓虹┖
-        else if (ObjectUtils.isEmpty(maps)) {
+        else if (ObjectUtils.isNotEmpty(maps1)) {
             for (Map<String, Object> objectMap : maps1) {
                 auxiliaryOriginalHoursDtos.add(getData(objectMap, "鎬诲伐鏃�"));
             }
-        } else if (ObjectUtils.isEmpty(maps1)) {
+        } else if (ObjectUtils.isNotEmpty(maps)) {
             for (Map<String, Object> objectMap : maps) {
                 auxiliaryOriginalHoursDtos.add(getData(objectMap, "鎬诲伐鏃�"));
             }
@@ -138,6 +144,33 @@
         return map;
     }
 
+
+    //瀵煎嚭鍘熷宸ユ椂
+    @Override
+    public void exportWorkingHours(AuxiliaryOriginalHoursLookDto auxiliaryOriginalHoursLookDto, HttpServletResponse response) throws IOException {
+        List<AuxiliaryOriginalHoursDto> auxiliaryOriginalHoursDtos = new ArrayList<AuxiliaryOriginalHoursDto>();
+
+        //鏌ヨ鍘熷宸ユ椂(浣跨敤鍒嗛〉鏌ヨ)
+        IPage<AuxiliaryOriginalHoursDto> body = (IPage<AuxiliaryOriginalHoursDto>) selectAuxiliaryOriginalHours(new Page(-1, -1), auxiliaryOriginalHoursLookDto).get("body");
+        auxiliaryOriginalHoursDtos=body.getRecords();
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("UTF-8");
+        // 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴
+        String fileName = URLEncoder.encode("宸ユ椂缁熻瀵煎嚭", "UTF-8");
+        response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+        try {
+            // 鏂板缓ExcelWriter
+            ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
+            WriteSheet mainSheet = EasyExcel.writerSheet(0, "鍘熷宸ユ椂瀵煎嚭").head(AuxiliaryOriginalHoursDto.class).build();
+            excelWriter.write(auxiliaryOriginalHoursDtos, mainSheet);
+            // 鍏抽棴娴�
+            excelWriter.finish();
+        } catch (IOException e) {
+            throw new RuntimeException("瀵煎嚭澶辫触");
+        }
+
+    }
+
     private AuxiliaryOriginalHoursDto getData(Map<String, Object> objectMap, String type) {
         AuxiliaryOriginalHoursDto auxiliaryOriginalHoursDto = new AuxiliaryOriginalHoursDto();
         auxiliaryOriginalHoursDto.setName(objectMap.get("name").toString());//濮撳悕
diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java
index 58f25dd..bc1fba2 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java
@@ -167,8 +167,8 @@
     //瀵煎嚭
     @Override
     public void exportWorkingHours(HttpServletResponse response) throws IOException {
-        List<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtos = null;
-        List<AuxiliaryWorkingHoursDayDto> auxiliaryWorkingHoursDayDtos = null;
+        List<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtos = new ArrayList<>();
+        List<AuxiliaryWorkingHoursDayDto> auxiliaryWorkingHoursDayDtos = new ArrayList<>();
         List<Integer> ids = null;
         //鍒ゆ柇鏄粍闀胯繕鏄粍鍛樿繕鏄鐞嗗憳
         Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectAuxiliaryOutputWorkingHours");
@@ -199,7 +199,7 @@
         response.setContentType("application/vnd.ms-excel");
         response.setCharacterEncoding("UTF-8");
         // 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴
-        String fileName = URLEncoder.encode("宸ユ椂绠$悊瀵煎嚭", "UTF-8");
+        String fileName = URLEncoder.encode("鏃ュ伐鏃剁鐞嗗鍑�", "UTF-8");
         response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
         try {
             // 鏂板缓ExcelWriter
diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/impl/PerformanceShiftServiceImpl.java b/performance-server/src/main/java/com/yuanchu/mom/service/impl/PerformanceShiftServiceImpl.java
index d4f0b04..db37821 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/service/impl/PerformanceShiftServiceImpl.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/service/impl/PerformanceShiftServiceImpl.java
@@ -3,7 +3,6 @@
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -18,6 +17,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
 
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
@@ -42,11 +42,10 @@
     @Autowired
     private EnumService enumService;
 
-    public List<PerformanceShift> list = new ArrayList<>();
-
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void performanceShiftAdd(PerformanceShiftAddDto performanceShiftAddDto) {
+        List<PerformanceShift> list = new ArrayList<>();
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         String formattedDateTime = performanceShiftAddDto.getStartWeek().format(formatter);
         String[] splitUserId = performanceShiftAddDto.getUserId().split(",");
@@ -60,22 +59,21 @@
                 LocalDate lastDayOfMonth = performanceShiftAddDto.getEndWeek().toLocalDate().with(TemporalAdjusters.lastDayOfMonth());
                 List<LocalDateTime> localDateTimesBetween = getLocalDateTimesBetween(firstDayOfMonth.atStartOfDay(), lastDayOfMonth.atStartOfDay());
                 localDateTimesBetween.forEach(i -> {
-                    for (String s : splitUserId) {
-                        PerformanceShift performanceShift = new PerformanceShift();
-                        performanceShift.setUserId(Integer.valueOf(s));
-                        performanceShift.setWorkTime(i);
-                        performanceShift.setShift("");
-                        list.add(performanceShift);
-                    }
+                    PerformanceShift performanceShift = new PerformanceShift();
+                    performanceShift.setUserId(Integer.valueOf(userId));
+                    performanceShift.setWorkTime(i);
+                    performanceShift.setShift("");
+                    list.add(performanceShift);
                     if (list.size() >= 1000) {
                         baseMapper.insertBatchSomeColumn(list);
                         list.clear();
                     }
                 });
-                if (!list.isEmpty()) {
-                    baseMapper.insertBatchSomeColumn(list);
-                }
             }
+        }
+        if (!list.isEmpty()) {
+            baseMapper.insertBatchSomeColumn(list);
+            list.clear();
         }
         // 鍐嶆鏇存柊
         List<LocalDateTime> datesBetween = getLocalDateTimesBetween(performanceShiftAddDto.getStartWeek(), performanceShiftAddDto.getEndWeek());
@@ -203,7 +201,7 @@
     }
 
     // 骞村垎椤典笌瀵煎嚭鍏卞悓浣跨敤
-    public List<Map<String, Object>> annualAttendanceProcessing(List<Map<String, Object>> mapYearList, List<Enums> shiftType){
+    public List<Map<String, Object>> annualAttendanceProcessing(List<Map<String, Object>> mapYearList, List<Enums> shiftType) {
         for (Map<String, Object> map : mapYearList) {
             Map<String, Object> resultMap = new LinkedHashMap<>();
             Map<String, Object> hashMapYear = new LinkedHashMap<>();
@@ -212,22 +210,24 @@
             for (int i = 1; i < 13; i++) {
                 Map<String, Object> hashMapMonth = new LinkedHashMap<>();
                 double totalMonthAttendance = 0;
-                for (Enums enums : shiftType) {
-                    if (!hashMapYear.containsKey(enums.getLabel())) {
-                        hashMapYear.put(enums.getLabel(), 0);
+                for (Enums shift : shiftType) {
+                    // 鍒濆鍖栬祴鍊�
+                    if (!hashMapYear.containsKey(shift.getLabel())) {
+                        hashMapYear.put(shift.getLabel(), 0);
                     }
                     // 鏈�
-                    if (ObjectUtils.isNotEmpty(map.get("month_str")) && map.get("work_time").equals(i)) {
+                    if (!ObjectUtils.isEmpty(map.get("month_str"))) {
                         String charArray = map.get("month_str").toString();
-                        int count = countOccurrences(charArray, i + "锛�" + enums.getValue());
-                        hashMapMonth.put(enums.getLabel(), count);
-                        hashMapYear.put(enums.getLabel(), Integer.parseInt(hashMapYear.get(enums.getLabel()).toString()) + count );
-                        if (enums.getValue().equals("0") || enums.getValue().equals("1") || enums.getValue().equals("2") || enums.getValue().equals("6")) {
+                        int count = countOccurrences(charArray, i + "锛�" + shift.getValue());
+                        hashMapMonth.put(shift.getLabel(), count);
+                        hashMapYear.put(shift.getLabel(), new BigDecimal(hashMapYear.get(shift.getLabel()).toString()).add(new BigDecimal(count)));
+                        // 鏃╋紝涓紝澶滐紝宸�
+                        if (shift.getValue().equals("0") || shift.getValue().equals("1") || shift.getValue().equals("2") || shift.getValue().equals("6")) {
                             totalMonthAttendance += count;
                             totalYearAttendance += count;
                         }
-                        // 鍗婏紝鍙﹀鍗婂ぉ绠楃粰鏃�
-                        if (enums.getValue().equals("5")) {
+//                      鍗婏紝鍙﹀鍗婂ぉ绠楃粰鏃�
+                        if (shift.getValue().equals("5")) {
                             BigDecimal multiply = new BigDecimal("0.5").multiply(new BigDecimal(count)).setScale(1, BigDecimal.ROUND_CEILING);
                             hashMapMonth.put(shiftType.get(0).getLabel(), new BigDecimal(hashMapMonth.get(shiftType.get(0).getLabel()).toString()).add(multiply));
                             hashMapYear.put(shiftType.get(0).getLabel(), new BigDecimal(hashMapYear.get(shiftType.get(0).getLabel()).toString()).add(multiply));
@@ -238,7 +238,7 @@
                     // 绌烘暟鎹�
                     else {
                         map.put("work_time", i);
-                        hashMapMonth.put(enums.getLabel(), 0);
+                        hashMapMonth.put(shift.getLabel(), 0);
                     }
                 }
                 hashMapMonth.put("totalMonthAttendance", totalMonthAttendance);
@@ -256,7 +256,7 @@
     public static int countOccurrences(String str, String target) {
         int count = 0;
         int index = 0;
-        while ((index = str.indexOf(target, index))!= -1) {
+        while ((index = str.indexOf(target, index)) != -1) {
             count++;
             index += target.length();
         }
@@ -313,7 +313,7 @@
         List<PerformanceShiftMapDto> mapIPage = baseMapper.performanceShiftList(time, userName, laboratory);
         mapIPage.forEach(i -> {
             String[] shiftTimes = i.getShiftTime().split(";");
-            int totalAttendance = 0;
+            double totalAttendance = 0;
             List<Map<String, Object>> map = new ArrayList<>();
             // 鍒嗗壊鏃ユ湡
             for (String shiftTime : shiftTimes) {
@@ -324,12 +324,22 @@
                         i.getMonthlyAttendance().put(enums.getLabel(), 0);
                     }
                     if (enums.getValue().equals(shiftTimeAndShift[1])) {
-                        Integer num = (Integer) i.getMonthlyAttendance().get(enums.getLabel());
-                        i.getMonthlyAttendance().put(enums.getLabel(), num += 1);
+                        BigDecimal bigDecimal = new BigDecimal(i.getMonthlyAttendance().get(enums.getLabel()).toString());
+                        i.getMonthlyAttendance().put(enums.getLabel(), bigDecimal.add(new BigDecimal("1")));
+                    }
+                    // 鍗婏紝鍙﹀鍗婂ぉ绠楃粰鏃�
+                    if (shiftTimeAndShift[1].equals("5") && enums.getValue().equals("0")) {
+                        BigDecimal bigDecimal = new BigDecimal(i.getMonthlyAttendance().get(enums.getLabel()).toString());
+                        i.getMonthlyAttendance().put(enums.getLabel(), bigDecimal.add(new BigDecimal("0.5")));
                     }
                 }
-                if (shiftTimeAndShift[1].equals("1") || shiftTimeAndShift[1].equals("2") || shiftTimeAndShift[1].equals("0")) {
+                // 鏃╋紝涓紝澶滐紝宸�
+                if (shiftTimeAndShift[1].equals("1") || shiftTimeAndShift[1].equals("2") || shiftTimeAndShift[1].equals("0") || shiftTimeAndShift[1].equals("6")) {
                     i.getMonthlyAttendance().put("totalAttendance", totalAttendance += 1);
+                }
+                // 鍗�
+                if (shiftTimeAndShift[1].equals("5")) {
+                    i.getMonthlyAttendance().put("totalAttendance", totalAttendance += 0.5);
                 }
                 hashMap.put("id", shiftTimeAndShift[2]);
                 hashMap.put("shift", shiftTimeAndShift[1]);
@@ -400,12 +410,13 @@
 
     /**
      * 杩斿洖琛ㄥご
-     *
+     * <p>
      * 澶栧眰List浠h〃琛屽唴灞� List浠h〃鍒�  鐩稿悓鐨勫垪鏁版嵁浼氳涓诲姩鍚堝苟
      * 鏋勯�犲弻鍒楄〃澶�
-     * @return List<List<String>>
+     *
+     * @return List<List < String>>
      */
-    private static List<List<String>> getYearHeader(String year, List<Enums> enums){
+    private static List<List<String>> getYearHeader(String year, List<Enums> enums) {
         List<List<String>> line = new ArrayList<>();
         line.add(Arrays.asList("鑰冨嫟姹囨��", "搴忓彿", "搴忓彿"));
         line.add(Arrays.asList("鑰冨嫟姹囨��", "宸ュ彿", "宸ュ彿"));
@@ -413,19 +424,23 @@
         line.add(Arrays.asList("鍑哄嫟璇︽儏", year, "鍑哄嫟"));
         // 骞� header
         for (Enums anEnum : enums) {
-            line.add(Arrays.asList("鑰冨嫟姹囨��", year, anEnum.getLabel()));
+            if (!anEnum.getValue().equals("5")) {
+                line.add(Arrays.asList("鑰冨嫟姹囨��", year, anEnum.getLabel()));
+            }
         }
         // 鏈坔eader
         for (int i = 1; i < 13; i++) {
             line.add(Arrays.asList("鍑哄嫟璇︽儏", i + " 鏈�", "鍑哄嫟"));
             for (Enums anEnum : enums) {
-                line.add(Arrays.asList("鍑哄嫟璇︽儏", i + " 鏈�", anEnum.getLabel()));
+                if (!anEnum.getValue().equals("5")) {
+                    line.add(Arrays.asList("鍑哄嫟璇︽儏", i + " 鏈�", anEnum.getLabel()));
+                }
             }
         }
         return line;
     }
 
-    private static List<List<String>> getMonthHeader(LocalDateTime localDateTimeYear, List<Enums> enums){
+    private static List<List<String>> getMonthHeader(LocalDateTime localDateTimeYear, List<Enums> enums) {
         String year = localDateTimeYear.getYear() + " 骞翠汉鍛樼彮娆�";
         List<List<String>> line = new ArrayList<>();
         line.add(Arrays.asList(year, "搴忓彿", "搴忓彿", "搴忓彿"));
@@ -458,12 +473,12 @@
             excelRowList.add(list.get(i).getName());
             excelRowList.add(list.get(i).getDepartment());
             excelRowList.add(list.get(i).getMonthlyAttendance().get("totalAttendance"));
-            excelRowList.add(list.get(i).getMonthlyAttendance().get(enums.get(3).getLabel()));
-            excelRowList.add(list.get(i).getMonthlyAttendance().get(enums.get(4).getLabel()));
-            excelRowList.add(list.get(i).getMonthlyAttendance().get(enums.get(0).getLabel()));
-            excelRowList.add(list.get(i).getMonthlyAttendance().get(enums.get(1).getLabel()));
-            excelRowList.add(list.get(i).getMonthlyAttendance().get(enums.get(2).getLabel()));
-            excelRowList.add(0); // 鍑哄樊
+            excelRowList.add(list.get(i).getMonthlyAttendance().get(enums.get(3).getLabel())); // 浼�
+            excelRowList.add(list.get(i).getMonthlyAttendance().get(enums.get(4).getLabel())); // 鍋�
+            excelRowList.add(list.get(i).getMonthlyAttendance().get(enums.get(0).getLabel())); // 鏃�
+            excelRowList.add(list.get(i).getMonthlyAttendance().get(enums.get(1).getLabel())); // 涓�
+            excelRowList.add(list.get(i).getMonthlyAttendance().get(enums.get(2).getLabel())); // 澶�
+            excelRowList.add(list.get(i).getMonthlyAttendance().get(enums.get(6).getLabel())); // 宸�
             for (Map<String, Object> o : list.get(i).getList()) {
                 String enumLabel = "";
                 for (Enums anEnum : enums) {
@@ -471,7 +486,7 @@
                         enumLabel = anEnum.getLabel();
                     }
                 }
-                excelRowList.add(ObjectUtils.isEmpty(enumLabel) ? "鏃�" : enumLabel);
+                excelRowList.add(ObjectUtils.isEmpty(enumLabel) ? "-" : enumLabel);
             }
             data.add(excelRowList);
         }
diff --git a/performance-server/src/main/java/com/yuanchu/mom/utils/StyleMonthUtils.java b/performance-server/src/main/java/com/yuanchu/mom/utils/StyleMonthUtils.java
index 7c443be..25af470 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/utils/StyleMonthUtils.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/utils/StyleMonthUtils.java
@@ -13,8 +13,8 @@
         // 澶寸殑绛栫暐
         WriteCellStyle headWriteCellStyle = new WriteCellStyle();
         // 鑳屾櫙棰滆壊
-        headWriteCellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());
-        headWriteCellStyle.setFillPatternType(FillPatternType.SOLID_FOREGROUND);
+//        headWriteCellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());
+//        headWriteCellStyle.setFillPatternType(FillPatternType.SOLID_FOREGROUND);
 
         // 瀛椾綋
         WriteFont headWriteFont = new WriteFont();
diff --git a/performance-server/src/main/java/com/yuanchu/mom/utils/StyleYearUtils.java b/performance-server/src/main/java/com/yuanchu/mom/utils/StyleYearUtils.java
index 0c6646e..8c53d08 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/utils/StyleYearUtils.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/utils/StyleYearUtils.java
@@ -2,15 +2,9 @@
 
 import com.alibaba.excel.write.metadata.style.WriteCellStyle;
 import com.alibaba.excel.write.metadata.style.WriteFont;
-import com.yuanchu.mom.pojo.AuxiliaryOutputWorkingHours;
 import org.apache.poi.ss.usermodel.*;
 
 import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 public class StyleYearUtils {
     /**
@@ -22,7 +16,7 @@
         // 澶寸殑绛栫暐
         WriteCellStyle headWriteCellStyle = new WriteCellStyle();
         // 鑳屾櫙棰滆壊
-        headWriteCellStyle.setFillForegroundColor(IndexedColors.GREEN.getIndex());
+//        headWriteCellStyle.setFillForegroundColor(IndexedColors.GREEN.getIndex());
         headWriteCellStyle.setFillPatternType(FillPatternType.SOLID_FOREGROUND);
 
         // 瀛椾綋
@@ -63,7 +57,7 @@
         WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
 
         // 杩欓噷闇�瑕佹寚瀹� FillPatternType 涓篎illPatternType.SOLID_FOREGROUND 涓嶇劧鏃犳硶鏄剧ず鑳屾櫙棰滆壊.澶撮粯璁や簡 FillPatternType鎵�浠ュ彲浠ヤ笉鎸囧畾
-        contentWriteCellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
+//        contentWriteCellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
         contentWriteCellStyle.setFillPatternType(FillPatternType.SOLID_FOREGROUND);
 
         // 璁剧疆瀛椾綋
@@ -73,14 +67,14 @@
         contentWriteCellStyle.setWriteFont(contentWriteFont);//鍦ㄦ牱寮忕敤搴旂敤璁剧疆鐨勫瓧浣�;
 
         //璁剧疆鏍峰紡;
-//        contentWriteCellStyle.setBorderBottom(BorderStyle.THIN);//璁剧疆搴曡竟妗�;
-//        contentWriteCellStyle.setBottomBorderColor((short) 1);//璁剧疆搴曡竟妗嗛鑹�;
+        contentWriteCellStyle.setBorderBottom(BorderStyle.THIN);//璁剧疆搴曡竟妗�;
+        contentWriteCellStyle.setBottomBorderColor((short) 0);//璁剧疆搴曡竟妗嗛鑹�;
         contentWriteCellStyle.setBorderLeft(BorderStyle.THIN);  //璁剧疆宸﹁竟妗�;
-        contentWriteCellStyle.setLeftBorderColor((short) 1);//璁剧疆宸﹁竟妗嗛鑹�;
+        contentWriteCellStyle.setLeftBorderColor((short) 0);//璁剧疆宸﹁竟妗嗛鑹�;
         contentWriteCellStyle.setBorderRight(BorderStyle.THIN);//璁剧疆鍙宠竟妗�;
-        contentWriteCellStyle.setRightBorderColor((short) 1);//璁剧疆鍙宠竟妗嗛鑹�;
+        contentWriteCellStyle.setRightBorderColor((short) 0);//璁剧疆鍙宠竟妗嗛鑹�;
         contentWriteCellStyle.setBorderTop(BorderStyle.THIN);//璁剧疆椤惰竟妗�;
-        contentWriteCellStyle.setTopBorderColor((short) 1); ///璁剧疆椤惰竟妗嗛鑹�;
+        contentWriteCellStyle.setTopBorderColor((short) 0); ///璁剧疆椤惰竟妗嗛鑹�;
 
         contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);// 姘村钩灞呬腑
         contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);// 鍨傜洿灞呬腑
diff --git a/user-server/src/main/java/com/yuanchu/mom/controller/CompaniesController.java b/user-server/src/main/java/com/yuanchu/mom/controller/CompaniesController.java
index b1e4805..ca5d2d6 100644
--- a/user-server/src/main/java/com/yuanchu/mom/controller/CompaniesController.java
+++ b/user-server/src/main/java/com/yuanchu/mom/controller/CompaniesController.java
@@ -1,10 +1,18 @@
 package com.yuanchu.mom.controller;
 
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.yuanchu.mom.annotation.ValueAuth;
 import com.yuanchu.mom.annotation.ValueClassify;
+import com.yuanchu.mom.common.GetLook;
 import com.yuanchu.mom.dto.PersonDto;
+import com.yuanchu.mom.exception.ErrorException;
+import com.yuanchu.mom.mapper.PowerMapper;
+import com.yuanchu.mom.mapper.UserMapper;
 import com.yuanchu.mom.pojo.Company;
 import com.yuanchu.mom.pojo.Person;
+import com.yuanchu.mom.pojo.Power;
+import com.yuanchu.mom.pojo.User;
 import com.yuanchu.mom.service.UserService;
 import com.yuanchu.mom.util.HeaderToken;
 import com.yuanchu.mom.vo.Result;
@@ -13,7 +21,9 @@
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 @RestController
 @AllArgsConstructor
@@ -25,11 +35,40 @@
 
     private UserService userService;
 
+    UserMapper userMapper;
+
+    PowerMapper powerMapper;
+
+    private GetLook getLook;
+
+    @ValueClassify("鐢ㄦ埛绠$悊")
+    @PostMapping("/getSampleUser")
+    @ApiOperation(value = "鐩存帴鑾峰彇涓庤嚜宸辩浉鍚屽崟浣嶇殑浜哄憳鍒楄〃")
+    public Result<?> getSampleUser(){
+        return Result.success();
+    }
+
     @ValueClassify("鐢ㄦ埛绠$悊")
     @ApiOperation(value = "鑾峰彇浜轰簨绯荤粺缁勭粐鏋舵瀯")
     @GetMapping(value = "/selectCompaniesList")
     public Result<List<Company>> selectCompaniesList() {
-        return Result.success(headerToken.companyUrl());
+        //鍒ゆ柇鏄惁鏈夌洿鎺ヨ幏鍙栫涓夋柟閮ㄩ棬鐨勬潈闄�
+        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
+        User user = userMapper.selectById(userId);
+        Integer roleId = user.getRoleId();
+        Power power = powerMapper.selectOne(Wrappers.<Power>lambdaQuery().eq(Power::getRoleId, roleId).eq(Power::getMenuMethod, "getSampleUser"));
+        if (ObjectUtils.isNotEmpty(power)){
+            List<Company> companies = new ArrayList<>();
+            Company company = new Company();
+            if (ObjectUtils.isEmpty(user.getCompanyId())){
+                throw new ErrorException("璇ョ敤鎴锋病鏈夋墍灞炲崟浣�!");
+            }
+            company.setCompanyId(user.getCompanyId());
+            companies.add(company);
+            return Result.success(companies);
+        }else {
+            return Result.success(headerToken.companyUrl());
+        }
     }
 
     @ValueAuth
diff --git a/user-server/src/main/java/com/yuanchu/mom/pojo/User.java b/user-server/src/main/java/com/yuanchu/mom/pojo/User.java
index bc8bf1a..cecb68f 100644
--- a/user-server/src/main/java/com/yuanchu/mom/pojo/User.java
+++ b/user-server/src/main/java/com/yuanchu/mom/pojo/User.java
@@ -105,4 +105,7 @@
     @ApiModelProperty(value = "LIMS鍏宠仈鐨勯儴闂╥d")
     private String departLimsId;
 
+    @ApiModelProperty(value = "浜轰簨绯荤粺鍏宠仈鐨刬d")
+    private String companyId;
+
 }
diff --git a/user-server/src/main/java/com/yuanchu/mom/service/UserService.java b/user-server/src/main/java/com/yuanchu/mom/service/UserService.java
index 1784a33..067fa11 100644
--- a/user-server/src/main/java/com/yuanchu/mom/service/UserService.java
+++ b/user-server/src/main/java/com/yuanchu/mom/service/UserService.java
@@ -8,7 +8,7 @@
 import java.util.List;
 import java.util.Map;
 
-public interface UserService {
+public interface UserService  {
 
     /*鍒ゆ柇鏄惁鐧诲綍鎴愬姛*/
     User selectUserByPwd(String account, String password);
diff --git a/user-server/src/main/java/com/yuanchu/mom/service/impl/UserServiceImp.java b/user-server/src/main/java/com/yuanchu/mom/service/impl/UserServiceImp.java
index 805f6c4..625909b 100644
--- a/user-server/src/main/java/com/yuanchu/mom/service/impl/UserServiceImp.java
+++ b/user-server/src/main/java/com/yuanchu/mom/service/impl/UserServiceImp.java
@@ -159,6 +159,7 @@
                 user.setCompany(BeanUtil.isNotEmpty(custom)?(custom.getId()+""):companyName);
                 user.setAddress("鏈~鍐�");
                 user.setRoleId(personDto.getRoleId()>10000?0:personDto.getRoleId());
+                user.setCompanyId(person.getCompanyId());
                 userMapper.insert(user);
             } else {
                 user.setName(person.getName());
@@ -170,6 +171,7 @@
                 user.setCreateTime(null);
                 user.setUpdateUser(null);
                 user.setUpdateTime(null);
+                user.setCompanyId(person.getCompanyId());
                 userMapper.updateById(user);
             }
         });

--
Gitblit v1.9.3