From 5c92f5ec07c74272c7bfd658ef9c9f5ceb02cfb1 Mon Sep 17 00:00:00 2001
From: lxp <1928192722@qq.com>
Date: 星期六, 15 三月 2025 17:00:16 +0800
Subject: [PATCH] 统计图表、任务展示代码搬迁

---
 inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java              |    2 
 inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderPlanController.java    |    4 
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReportServiceImpl.java       |  288 ++++++++++++++++++++++++++++
 inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java                |    4 
 inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsUnPassMapper.java               |    5 
 inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java        |    3 
 inspect-server/src/main/java/com/ruoyi/inspect/controller/InsUnPassController.java       |   23 ++
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnPassServiceImpl.java    |    5 
 inspect-server/src/main/resources/mapper/InsOrderMapper.xml                              |  108 ----------
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java     |   11 
 inspect-server/src/main/java/com/ruoyi/inspect/controller/ReportController.java          |   60 ++++++
 inspect-server/src/main/java/com/ruoyi/inspect/service/ReportService.java                |   23 ++
 inspect-server/src/main/java/com/ruoyi/inspect/mapper/ScheduleMapper.java                |   11 +
 inspect-server/src/main/java/com/ruoyi/inspect/controller/WarehouseController.java       |    4 
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java |    5 
 15 files changed, 427 insertions(+), 129 deletions(-)

diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java b/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java
index 44f0efd..f58154e 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java
@@ -151,8 +151,7 @@
 
     @ApiOperation(value = "璐圭敤缁熻鑾峰彇鎬讳环")
     @GetMapping("/costStatistics2")
-    public Result<?> costStatistics2(@RequestBody Map<String, Object> data) throws Exception {
-        CostStatisticsDto costStatisticsDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), CostStatisticsDto.class);
+    public Result<?> costStatistics2( CostStatisticsDto costStatisticsDto) throws Exception {
         return Result.success(insOrderService.costStatistics2(costStatisticsDto));
     }
 
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderPlanController.java b/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderPlanController.java
index 4a7b154..d33fb46 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderPlanController.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderPlanController.java
@@ -48,7 +48,7 @@
 
     @ApiOperation(value = "瀵煎嚭濮旀墭璐圭敤")
     @GetMapping("/exportCommissionFees")
-    public void exportCommissionFees(Map<String, Object> data,HttpServletResponse response) {
+    public void exportCommissionFees(@RequestParam Map<String, Object> data,HttpServletResponse response) {
          insOrderPlanService.exportCommissionFees(data,response);
     }
 
@@ -228,4 +228,4 @@
         return Result.success(insOrderPlanService.getCurrentMonthPlanTotalBySonLaboratory(insOrderPlanCountDTO.getSonLaboratory(),insOrderPlanCountDTO.getStartTime(),insOrderPlanCountDTO.getEndTime()));
     }
 
-}
\ No newline at end of file
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsUnPassController.java b/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsUnPassController.java
new file mode 100644
index 0000000..5950005
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsUnPassController.java
@@ -0,0 +1,23 @@
+package com.ruoyi.inspect.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.inspect.dto.UnPassPageDto;
+import com.ruoyi.inspect.service.InsUnPassService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("/unPass")
+public class InsUnPassController {
+    @Resource
+    private InsUnPassService insUnPassService;
+
+    @GetMapping("/pageInsUnPass")
+    public Result selectUnPass(Page page, UnPassPageDto unPassPageDto) {
+        return Result.success(insUnPassService.pageInsUnPass(page,unPassPageDto));
+    }
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/controller/ReportController.java b/inspect-server/src/main/java/com/ruoyi/inspect/controller/ReportController.java
new file mode 100644
index 0000000..95145fe
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/controller/ReportController.java
@@ -0,0 +1,60 @@
+package com.ruoyi.inspect.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.inspect.service.InsOrderService;
+import com.ruoyi.inspect.service.ReportService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@AllArgsConstructor
+@RequestMapping("/report")
+@Api(tags = "鎶ヨ〃妯″潡")
+public class ReportController {
+
+    private ReportService reportService;
+
+    private InsOrderService insOrderService;
+
+    @ApiOperation(value = "鏌ョ湅鏍峰搧缂洪櫡鎸囨暟")
+    @PostMapping("/selectSampleDefects")
+    public Result selectSampleDefects(Integer size, Integer current, String inspectionItems, String orderNumber) {
+        return Result.success(insOrderService.selectSampleDefects(new Page<>(current, size),inspectionItems, orderNumber));
+    }
+
+    @ApiOperation(value = "鏌ョ湅姣忔棩涓氬姟缁熻")
+    @GetMapping("/businessStatisticsByDay")
+    public Result businessStatisticsByDay(){
+        return Result.success(reportService.businessStatisticsByDay());
+    }
+
+    @ApiOperation(value = "鏌ョ湅妫�娴嬮」鐩粺璁�")
+    @GetMapping("/testProductByDay")
+    public Result testProductByDay(){
+        return Result.success(reportService.testProductByDay());
+    }
+
+    @ApiOperation(value = "鏌ヨ鏃ュ巻浠诲姟鍥�")
+    @GetMapping("/calendarWorkByWeek")
+    public Result calendarWorkByWeek(){
+        return Result.success(reportService.calendarWorkByWeek());
+    }
+
+    @ApiOperation(value = "娣诲姞鏃ョ▼")
+    @PostMapping("/addSchedule")
+    public Result addSchedule(String time, String text){
+        return Result.success(reportService.addSchedule(time,text));
+    }
+
+    @ApiOperation(value = "鏌ヨ鎴戠殑鏃ョ▼")
+    @PostMapping("/ScheduleByMe")
+    public Result ScheduleByMe(String date){
+        return Result.success(reportService.ScheduleByMe(date));
+    }
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/controller/WarehouseController.java b/inspect-server/src/main/java/com/ruoyi/inspect/controller/WarehouseController.java
index e7ec846..2f43d50 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/controller/WarehouseController.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/controller/WarehouseController.java
@@ -20,7 +20,7 @@
 
     private WarehouseService warehouseService;
 
-    @PostMapping("/addWarehouse")
+    @GetMapping("/addWarehouse")
     @ApiOperation("娣诲姞浠撳簱")
     public Result addWarehouse(String name) {
         return Result.success(warehouseService.addWarehouse(name));
@@ -99,4 +99,4 @@
         return Result.success(warehouseService.searchSampleId(sampleCode));
     }
 
-}
\ No newline at end of file
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java
index 1fde9fa..8e57073 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java
@@ -56,7 +56,7 @@
 
     List<SampleProductDto2> selectSampleAndProductByOrderId(@Param("ew") QueryWrapper<SampleProductDto2> ew, @Param("id") Integer id);
 
-    IPage<CostStatisticsDto> selectCostStatistics(IPage<CostStatisticsDto> page, QueryWrapper<CostStatisticsDto> ew, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("laboratory") String laboratory);
+    IPage<CostStatisticsDto> selectCostStatistics(IPage<CostStatisticsDto> page,@Param("ew") QueryWrapper<CostStatisticsDto> ew, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("laboratory") String laboratory);
 
     List<CostStatisticsDto> selectCostStatistics2(@Param("ew") QueryWrapper<CostStatisticsDto> ew,@Param("startTime") String startTime, @Param("endTime") String endTime,@Param("laboratory") String laboratory);
 
@@ -104,4 +104,4 @@
                                                 @Param("endTime") String endTime,
                                                 @Param("checkName") String checkName
     );
-}
\ No newline at end of file
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsUnPassMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsUnPassMapper.java
index e4e04a7..4809b4f 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsUnPassMapper.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsUnPassMapper.java
@@ -6,6 +6,7 @@
 import com.ruoyi.inspect.dto.UnPassPageDto;
 import com.ruoyi.inspect.pojo.InsUnPass;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * @author 鏈变匠鍚�
@@ -13,5 +14,5 @@
  */
 @Mapper
 public interface InsUnPassMapper extends BaseMapper<InsUnPass> {
-    IPage<UnPassPageDto> pageInsUnPass(IPage<UnPassPageDto> page, QueryWrapper<UnPassPageDto> ew);
-}
\ No newline at end of file
+    IPage<UnPassPageDto> pageInsUnPass(IPage<UnPassPageDto> page,@Param("ew") QueryWrapper<UnPassPageDto> ew);
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/ScheduleMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/ScheduleMapper.java
new file mode 100644
index 0000000..49c3a51
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/ScheduleMapper.java
@@ -0,0 +1,11 @@
+package com.ruoyi.inspect.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.inspect.pojo.Schedule;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface ScheduleMapper extends BaseMapper<Schedule> {
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java
index 59e305d..a5087ef 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java
@@ -39,7 +39,7 @@
 
     void exportChecked(Map<String,Object> data, HttpServletResponse response);
 
-    Map<String, Object> costStatistics(IPage<CostStatisticsDto> page, CostStatisticsDto costStatisticsDto);
+    IPage<CostStatisticsDto> costStatistics(IPage<CostStatisticsDto> page, CostStatisticsDto costStatisticsDto);
 
     Map<String, Object> costStatistics2(CostStatisticsDto costStatisticsDto);
 
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/ReportService.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/ReportService.java
new file mode 100644
index 0000000..65b9489
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/ReportService.java
@@ -0,0 +1,23 @@
+package com.ruoyi.inspect.service;
+
+import com.ruoyi.inspect.pojo.Schedule;
+
+import java.util.List;
+import java.util.Map;
+
+public interface ReportService {
+    //姣忔棩涓氬姟缁熻
+    Map<String,Object> businessStatisticsByDay();
+
+    //妫�娴嬮」鐩粺璁�
+    Map<String,Object> testProductByDay();
+
+    //棣栭〉-->鏃ュ巻浠诲姟鍥�
+    Map<String,Object> calendarWorkByWeek();
+
+    //棣栭〉-->娣诲姞鏃ョ▼
+    int addSchedule(String time, String text);
+
+    //棣栭〉-->鎴戠殑鏃ョ▼
+    List<Schedule> ScheduleByMe(String date);
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
index 133dc4c..7fef050 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
@@ -462,7 +462,10 @@
                         dateTimeFormatter),LocalTime.of(23, 59, 59)
         ).toString();
         // 鑾峰彇鏁版嵁
-        String company = data.get("company").toString();
+        String company = "";
+        if(data.containsKey("company")) {
+            company =  data.get("company").toString();
+        }
         List<CommissionFeesDto> list = insOrderMapper.selectCommissionFees(laboratory,company, start, end);
         list = list.stream().map(dto -> {
             Set<String> uniqueTags = new HashSet<>();
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
index 08b58e1..2d1a5c8 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
@@ -1858,16 +1858,12 @@
 
 
     @Override
-    public Map<String, Object> costStatistics(IPage<CostStatisticsDto> page, CostStatisticsDto costStatisticsDto) {
+    public IPage<CostStatisticsDto> costStatistics(IPage<CostStatisticsDto> page, CostStatisticsDto costStatisticsDto) {
         String dates = costStatisticsDto.getDates();
         String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
         costStatisticsDto.setDates(null);
-        Map<String, Object> map = new HashMap<>();
-//        map.put("head", PrintChina.printChina(CostStatisticsDto.class));
-        Map<String, Integer> map1 = new HashMap<>();
-        if (map1.get("look") == 1) costStatisticsDto.setCreateUser(map1.get("userId"));
         // 鑾峰彇褰撳墠浜烘墍鍦ㄥ疄楠屽
-        Integer userId = 1;
+        Integer userId = Integer.parseInt(SecurityUtils.getLoginUser().getUser().getUserId().toString());
         String departLimsId = userMapper.selectById(userId).getDepartLimsId();
         String laboratory = "";
         if (StringUtils.isNotBlank(departLimsId)) {
@@ -1894,8 +1890,7 @@
             return dto;
         }).collect(Collectors.toList());
         dtoIPage.setRecords(collect);
-        map.put("body", dtoIPage);
-        return map;
+        return dtoIPage;
     }
 
     @Override
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnPassServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnPassServiceImpl.java
index eb9525e..6c7dc54 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnPassServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnPassServiceImpl.java
@@ -26,9 +26,6 @@
 
     @Override
     public IPage<UnPassPageDto> pageInsUnPass(Page page, UnPassPageDto unPassPageDto) {
-        Map<String, Object> map = new HashMap<>();
-//        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("pageInsUnPass");
-//        if (map1.get("look") == 1) unPassPageDto.setCreateUser(map1.get("userId"));
         return insUnPassMapper.pageInsUnPass(page, QueryWrappers.queryWrappers(unPassPageDto));
     }
-}
\ No newline at end of file
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReportServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReportServiceImpl.java
new file mode 100644
index 0000000..f4ffcb9
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReportServiceImpl.java
@@ -0,0 +1,288 @@
+package com.ruoyi.inspect.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.entity.User;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.inspect.dto.CostStatisticsDto;
+import com.ruoyi.inspect.mapper.InsOrderMapper;
+import com.ruoyi.inspect.mapper.InsProductMapper;
+import com.ruoyi.inspect.mapper.InsProductUserMapper;
+import com.ruoyi.inspect.mapper.ScheduleMapper;
+import com.ruoyi.inspect.pojo.InsOrder;
+import com.ruoyi.inspect.pojo.InsProduct;
+import com.ruoyi.inspect.pojo.InsProductUser;
+import com.ruoyi.inspect.pojo.Schedule;
+import com.ruoyi.inspect.service.ReportService;
+import com.ruoyi.system.mapper.UserMapper;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+import java.util.stream.Collectors;
+
+@Service
+@AllArgsConstructor
+public class ReportServiceImpl implements ReportService {
+
+    private InsOrderMapper insOrderMapper;
+    private InsProductUserMapper insProductUserMapper;
+    private InsProductMapper insProductMapper;
+    private ScheduleMapper scheduleMapper;
+    private UserMapper userMapper;
+
+
+    //姣忔棩涓氬姟缁熻
+    @Override
+    public Map<String, Object> businessStatisticsByDay() {
+        Map<String, Object> map = new HashMap<>();
+        /*浠诲姟鎺ユ敹*/
+        //浠婃棩浠诲姟鎺ユ敹
+        Long receive = insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery().eq(InsOrder::getState, 1).apply("DATE(create_time) = CURDATE()"));
+        map.put("RECEIVE", receive);
+        //鏄ㄦ棩浠诲姟鎺ユ敹
+        Long received = insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery().eq(InsOrder::getState, 1).apply("DATE(create_time) = CURDATE() - INTERVAL 1 DAY"));
+        //姣斾緥=(浠婂ぉ-鏄ㄥぉ)/鏄ㄥぉ
+        BigDecimal ratio = new BigDecimal(receive - received).divide(new BigDecimal(received == 0 ? 1 : received), 2, BigDecimal.ROUND_HALF_UP);
+        map.put("RECEIVE_RATIO", ratio);
+
+        /*浠诲姟宸插畬鎴�*/
+        //浠婃棩浠诲姟瀹屾垚
+        Long finishe = insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery().eq(InsOrder::getState, 4).apply("DATE(create_time) = CURDATE()"));
+        map.put("FINISHE", finishe);
+        //鏄ㄦ棩浠诲姟瀹屾垚
+        Long finished = insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery().eq(InsOrder::getState, 4).apply("DATE(create_time) = CURDATE() - INTERVAL 1 DAY"));
+        //浠诲姟瀹屾垚姣斾緥=(浠婂ぉ-鏄ㄥぉ)/鏄ㄥぉ
+        BigDecimal finishedRatio = new BigDecimal(finishe - finished).divide(new BigDecimal(finished == 0 ? 1 : finished), 2, BigDecimal.ROUND_HALF_UP);
+        map.put("FINISHE_RATIO", finishedRatio);
+
+        /*浠诲姟鍓╀綑*/
+        //浠婃棩浠诲姟鍓╀綑
+        long surplus = receive - finishe;
+        map.put("SURPLUS", surplus);
+        //鏄ㄦ棩浠诲姟鍓╀綑
+        long surplused = received - finished;
+        //鍓╀綑姣斾緥=(浠婂ぉ-鏄ㄥぉ)/鏄ㄥぉ
+        BigDecimal surplusRatio = new BigDecimal(surplus - surplused).divide(new BigDecimal(surplused == 0 ? 1 : surplused), 2, BigDecimal.ROUND_HALF_UP);
+        map.put("SURPLUS_RATIO", surplusRatio);
+
+        LocalDate today = LocalDate.now();
+        LocalTime end = LocalTime.of(23, 59, 59);
+        // 鑾峰彇褰撳墠浜烘墍鍦ㄥ疄楠屽
+        Integer userId = Integer.parseInt(SecurityUtils.getUserId().toString());
+        String departLimsId = userMapper.selectById(userId).getDepartLimsId();
+        String laboratory = "";
+        if(StringUtils.isNotBlank(departLimsId)) {
+            String[] split = departLimsId.split(",");
+            for (String s : split) {
+                if (StringUtils.isNotBlank(s) && (!Arrays.asList("1","22").contains(s))) {
+                    laboratory = insOrderMapper.getDepartment(Integer.parseInt(s));
+                }
+            }
+        }
+
+
+        /*妫�娴嬭垂鐢�*/
+        //浠婃棩妫�娴嬭垂鐢�
+        QueryWrapper<CostStatisticsDto> costStatisticsDtoQueryWrappers = new QueryWrapper<>();
+        costStatisticsDtoQueryWrappers.eq("create_time", LocalDateTime.now());
+        IPage<CostStatisticsDto> page = new Page<>();
+        page.setSize(-1);
+        page.setCurrent(-1);
+        IPage<CostStatisticsDto> iPage = insOrderMapper.selectCostStatistics(page, costStatisticsDtoQueryWrappers,LocalDate.now().atStartOfDay().toString(),today.atTime(end).toString(),laboratory);
+        BigDecimal price = BigDecimal.ZERO;
+        for (CostStatisticsDto record : iPage.getRecords()) {
+            price.add(record.getPrice());
+        }
+        map.put("PRICE", price);
+        //鏄ㄦ棩妫�娴嬭垂鐢�
+        QueryWrapper<CostStatisticsDto> costWrappers = new QueryWrapper<>();
+        costWrappers.eq("create_time", LocalDateTime.now().minusDays(1));
+
+
+        IPage<CostStatisticsDto> dtoIPage = insOrderMapper.selectCostStatistics(page, costWrappers,LocalDate.now().atStartOfDay().toString(),today.atTime(end).toString(),laboratory);
+        BigDecimal priced = BigDecimal.ZERO;
+        for (CostStatisticsDto record : dtoIPage.getRecords()) {
+            priced.add(record.getPrice());
+        }
+        //姣斾緥=(浠婃棩-鏄ㄦ棩)/鏄ㄦ棩
+        BigDecimal priceRatio = (price.subtract(priced)).divide(priced.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ONE : priced, 2, BigDecimal.ROUND_HALF_UP);
+        map.put("PRICE_RATIO", priceRatio);
+
+        /*妫�娴嬪伐鏃�*/
+        //浠婃棩妫�娴嬪伐鏃�
+        Double cost = 0.0;
+        for (CostStatisticsDto record : iPage.getRecords()) {
+            cost += record.getCost();
+        }
+        map.put("COST", cost);
+        //鏄ㄦ棩妫�娴嬪伐鏃�
+        Double costed = 0.0;
+        for (CostStatisticsDto record : dtoIPage.getRecords()) {
+            costed += record.getCost();
+        }
+        //姣斾緥=(浠婃棩-鏄ㄦ棩)/鏄ㄦ棩
+        BigDecimal costRatio = new BigDecimal(cost - costed).divide(new BigDecimal(costed == 0 ? 1 : costed), 2, BigDecimal.ROUND_HALF_UP);
+        map.put("COST_RATIO", costRatio);
+
+
+        /*妫�娴嬩汉鍛�*/
+        //浠婃棩妫�娴嬩汉鍛�
+        List<InsProductUser> insProductUsers = insProductUserMapper.selectList(Wrappers.<InsProductUser>lambdaQuery().apply("DATE(create_time) = CURDATE()"));
+        long person = insProductUsers.stream().map(InsProductUser::getCreateUser).distinct().count();
+        map.put("PERSON", person);
+        //鏄ㄦ棩妫�娴嬩汉鍛�
+        List<InsProductUser> insProductUserss = insProductUserMapper.selectList(Wrappers.<InsProductUser>lambdaQuery().apply("DATE(create_time) = CURDATE() - INTERVAL 1 DAY"));
+        long persons = insProductUserss.stream().map(InsProductUser::getCreateUser).distinct().count();
+        //姣斾緥=(浠婂ぉ-鏄ㄥぉ)/鏄ㄥぉ
+        BigDecimal personRatio = new BigDecimal(person - persons).divide(new BigDecimal(persons == 0 ? 1 : persons), 2, BigDecimal.ROUND_HALF_UP);
+        map.put("PERSON_RATIO", personRatio);
+
+        /*杩戝崄鏃ヤ换鍔℃帴鏀堕噺涓庡畬鎴愰噺*/
+        //鑾峰彇杩戝崄鏃ョ殑妯潗鏍�
+        LocalDate currentDate = LocalDate.now();
+        List<LocalDate> lastTenDays = new ArrayList<>();
+        List<Long> receTenDays = new ArrayList<>();
+        List<Long> finTenDays = new ArrayList<>();
+        for (int i = 9; i > -1; i--) {
+            lastTenDays.add(currentDate.minusDays(i));
+            receTenDays.add(insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery().eq(InsOrder::getState, 1).apply("DATE(create_time) = CURDATE() - INTERVAL " + i + " DAY")));
+            finTenDays.add(insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery().eq(InsOrder::getState, 4).apply("DATE(create_time) = CURDATE() - INTERVAL " + i + " DAY")));
+        }
+        map.put("DAYS", lastTenDays);
+        map.put("RECETENDAYS", receTenDays);
+        map.put("FINISHTENDAYS", finTenDays);
+        return map;
+    }
+
+    //妫�娴嬮」鐩粺璁�
+    @Override
+    public Map<String, Object> testProductByDay() {
+        Map<String, Object> map = new HashMap<>();
+        /*椤圭洰鎺ユ敹*/
+        //浠婃棩椤圭洰鎺ユ敹閲�
+        Long receive = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getState, 1).apply("DATE(create_time) = CURDATE()"));
+        map.put("RECEVICE", receive);
+        //鏄ㄦ棩椤圭洰鎺ユ敹閲�
+        Long received = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getState, 1).apply("DATE(create_time) = CURDATE() - INTERVAL 1 DAY"));
+        //姣斾緥=(浠婂ぉ-鏄ㄥぉ)/鏄ㄥぉ
+        BigDecimal ratio = new BigDecimal(receive - received).divide(new BigDecimal(received == 0 ? 1 : received), 2, BigDecimal.ROUND_HALF_UP);
+        map.put("RECEIVE_RATIO", ratio);
+
+        /*椤圭洰瀹屾垚*/
+        //浠婃棩椤圭洰瀹屾垚閲�
+        Long finishe = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getState, 1).isNotNull(InsProduct::getInsResult).apply("DATE(create_time) = CURDATE()"));
+        map.put("FINISHE", finishe);
+        //鏄ㄦ棩椤圭洰瀹屾垚閲�
+        Long finished = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getState, 1).isNotNull(InsProduct::getInsResult).apply("DATE(create_time) = CURDATE() - INTERVAL 1 DAY"));
+        //浠诲姟瀹屾垚姣斾緥=(浠婂ぉ-鏄ㄥぉ)/鏄ㄥぉ
+        BigDecimal finishedRatio = new BigDecimal(finishe - finished).divide(new BigDecimal(finished == 0 ? 1 : finished), 2, BigDecimal.ROUND_HALF_UP);
+        map.put("FINISHE_RATIO", finishedRatio);
+
+        /*椤圭洰鍓╀綑*/
+        //浠婃棩椤圭洰鍓╀綑閲�
+        long surplus = receive - finishe;
+        map.put("SURPLUS", surplus);
+        //鏄ㄦ棩椤圭洰鍓╀綑
+        long surplused = received - finished;
+        //鍓╀綑姣斾緥=(浠婂ぉ-鏄ㄥぉ)/鏄ㄥぉ
+        BigDecimal surplusRatio = new BigDecimal(surplus - surplused).divide(new BigDecimal(surplused == 0 ? 1 : surplused), 2, BigDecimal.ROUND_HALF_UP);
+        map.put("SURPLUS_RATIO", surplusRatio);
+
+        /*浠婃棩椤圭洰鍚堟牸鐜�*/
+        //浠婃棩瀹屾垚閲忎腑鐨勫悎鏍奸噺/浠婃棩瀹屾垚閲�
+        Long accept = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getState, 1).eq(InsProduct::getInsResult,1).apply("DATE(create_time) = CURDATE()"));
+        map.put("ACCEPT", accept);
+        BigDecimal acceptRate = new BigDecimal(accept).divide(new BigDecimal(finishe == 0 ? 1 : finishe), 2, BigDecimal.ROUND_HALF_UP);
+        map.put("ACCEPT_RATE_TODAY", acceptRate);
+
+        /*浠婃棩椤圭洰瀹屾垚鐜�*/
+        //浠婃棩瀹屾垚閲�/浠婃棩鎺ユ敹閲�
+        BigDecimal finishRate = new BigDecimal(finishe).divide(new BigDecimal(receive == 0 ? 1 : receive), 2, BigDecimal.ROUND_HALF_UP);
+        map.put("FINISH_RATE_TODAY", finishRate);
+
+        /*浠婃棩椤圭洰寤舵湡鐜�*/
+        //浠婃棩椤圭洰鍓╀綑/浠婃棩椤圭洰鎺ユ敹閲�
+        BigDecimal delayRate = new BigDecimal(surplus).divide(new BigDecimal(received == 0 ? 1 : received), 2, BigDecimal.ROUND_HALF_UP);
+        map.put("DELAY_RATE_TODAY", delayRate);
+
+        /*杩戝崄鏃ョ殑椤圭洰鎺ユ敹閲忎笌瀹屾垚閲�*/
+        //鑾峰彇杩戝崄鏃ョ殑妯潗鏍�
+        LocalDate currentDate = LocalDate.now();
+        List<LocalDate> lastTenDays = new ArrayList<>();
+        List<Long> receTenDays = new ArrayList<>();
+        List<Long> finTenDays = new ArrayList<>();
+        for (int i = 9; i > -1; i--) {
+            lastTenDays.add(currentDate.minusDays(i));
+            receTenDays.add(insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getState, 1).apply("DATE(create_time) = CURDATE() - INTERVAL " + i + " DAY")));
+            finTenDays.add(insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getState, 1).isNotNull(InsProduct::getInsResult).apply("DATE(create_time) = CURDATE() - INTERVAL " + i + " DAY")));
+        }
+        map.put("DAYS", lastTenDays);
+        map.put("RECETENDAYS", receTenDays);
+        map.put("FINISHTENDAYS", finTenDays);
+
+        return map;
+    }
+
+    //棣栭〉-->鏃ュ巻浠诲姟鍥�
+    @Override
+    public Map<String, Object> calendarWorkByWeek() {
+        Map<String, Object> map = new HashMap<>();
+        List<Integer> insState = new ArrayList<>();
+        insState.add(0);
+        insState.add(1);
+        /*鑾峰彇鍚庝竴鍛ㄦ棩鏈�*/
+        LocalDate currentDate = LocalDate.now();
+        List<LocalDate> weekDays = new ArrayList<>();
+        for (int i = 6, j = 0; i >= 0; i--, j++) {
+            weekDays.add(currentDate.minusDays(i));
+            //鏌ヨ褰撳ぉ闇�瑕佹娴嬬殑濮旀墭璁㈠崟
+            List<InsOrder> insOrders = insOrderMapper.selectList(Wrappers.<InsOrder>lambdaQuery()
+                    .eq(InsOrder::getState, 1)
+                    .in(InsOrder::getInsState, insState)
+                    .apply("DATE(create_time) = CURDATE() - INTERVAL " + j + " DAY"));
+            List<Map<String, Object>> works = insOrders.stream().map(insOrder -> {
+                HashMap<String, Object> hashMap = new HashMap<>();
+                hashMap.put("text", insOrder.getEntrustCode());
+                hashMap.put("type", insOrder.getType());
+                User user = userMapper.selectById(insOrder.getCreateUser());
+                hashMap.put("name", user.getName());
+                return hashMap;
+            }).collect(Collectors.toList());
+            map.put("work" + i, works);
+        }
+        map.put("weekDays", weekDays);
+        return map;
+    }
+
+    //棣栭〉-->娣诲姞鏃ョ▼
+    @Override
+    public int addSchedule(String time, String text) {
+        //鑾峰彇褰撳墠鐢ㄦ埛id
+        Integer userId = Integer.parseInt(SecurityUtils.getUserId().toString());
+        Schedule schedule = new Schedule();
+        schedule.setUserId(userId);
+        schedule.setScheduleTime(LocalDateTime.parse(time, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+        schedule.setText(text);
+        return scheduleMapper.insert(schedule);
+    }
+
+    //棣栭〉-->鎴戠殑鏃ョ▼
+    @Override
+    public List<Schedule> ScheduleByMe(String date) {
+        //鑾峰彇褰撳墠鐢ㄦ埛id
+        Integer userId = Integer.parseInt(SecurityUtils.getUserId().toString());
+        LocalDate localDate = LocalDate.parse(date, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+        LocalDateTime startTime = localDate.atStartOfDay();
+        LocalDateTime endTime = localDate.plusDays(1).atStartOfDay().minusSeconds(1);
+        return scheduleMapper.selectList(Wrappers.<Schedule>lambdaQuery().eq(Schedule::getUserId, userId).between(Schedule::getScheduleTime, startTime, endTime));
+    }
+}
diff --git a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
index 2af95a9..f7bc779 100644
--- a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
@@ -594,9 +594,6 @@
         A.company,
         A.`name`
         )B
-        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
-            ${ew.customSqlSegment}
-        </if>
     </select>
     <select id="selectDeviceList" resultType="com.ruoyi.inspect.vo.DeviceVO">
         select
@@ -855,105 +852,6 @@
 
 
     <select id="selectCommissionFees" resultType="com.ruoyi.inspect.dto.CommissionFeesDto">
-<!--        SELECT-->
-<!--        date_format(create_time, '%Y-%m-%d') AS create_time,-->
-<!--        entrust_code,-->
-<!--        sample_name,-->
-<!--        sample_model,-->
-<!--        sample_num,-->
-<!--        ins_item,-->
-<!--        production,-->
-<!--        company,-->
-<!--        custom,-->
-<!--        engineering,-->
-<!--        total_price-->
-<!--        FROM-->
-<!--        (-->
-<!--        SELECT-->
-<!--        io.*,-->
-<!--        sample_counts.sample_num,-->
-<!--        GROUP_CONCAT( DISTINCT isa.sample SEPARATOR '銆�' ) AS sample_name,-->
-<!--        GROUP_CONCAT( DISTINCT isa.model SEPARATOR '銆�' ) AS sample_model,-->
-<!--        total_product_counts.ins_item,-->
-<!--        total_price-->
-<!--        FROM-->
-<!--        ins_order io-->
-<!--        LEFT JOIN ins_sample isa ON io.id = isa.ins_order_id-->
-<!--        LEFT JOIN ins_sample_user isau ON isau.ins_sample_id = io.id-->
-<!--        LEFT JOIN ins_order_state iot ON iot.ins_order_id = io.id-->
-<!--        LEFT JOIN ins_report ir ON io.id = ir.ins_order_id-->
-<!--        AND ir.is_ratify = 1-->
-<!--        LEFT JOIN USER u ON io.create_user = u.id-->
-<!--        LEFT JOIN (-->
-<!--        SELECT-->
-<!--        ins_order_id,-->
-<!--        COUNT(*) AS sample_num-->
-<!--        FROM-->
-<!--        ins_sample-->
-<!--        WHERE-->
-<!--        id IN (-->
-<!--        SELECT-->
-<!--        id1-->
-<!--        FROM-->
-<!--        (-->
-<!--        SELECT-->
-<!--        is2.id id1,-->
-<!--        ip.id-->
-<!--        FROM-->
-<!--        ins_sample is2-->
-<!--        LEFT JOIN ins_product ip ON is2.id = ip.ins_sample_id-->
-<!--        WHERE-->
-<!--        ip.id IS NOT NULL-->
-<!--        ) s-->
-<!--        )-->
-<!--        GROUP BY-->
-<!--        ins_order_id-->
-<!--        ) sample_counts ON io.id = sample_counts.ins_order_id-->
-<!--        LEFT JOIN (-->
-<!--        SELECT-->
-<!--        SUM( price ) AS total_price,-->
-<!--        sample_id,-->
-<!--        ins_order_id,-->
-<!--        man_hour_group,-->
-<!--        ins_item-->
-<!--        FROM-->
-<!--        (-->
-<!--        SELECT-->
-<!--        ins_sample.id AS sample_id,-->
-<!--        ins_sample.ins_order_id,-->
-<!--        ins_product.man_hour_group,-->
-<!--        GROUP_CONCAT( DISTINCT inspection_item SEPARATOR ',' ) AS ins_item,-->
-<!--        price-->
-<!--        FROM-->
-<!--        ins_product-->
-<!--        JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id-->
-<!--        WHERE-->
-<!--        ins_product.state = 1-->
-<!--        GROUP BY-->
-<!--        ins_sample.ins_order_id,-->
-<!--        ins_sample.id,-->
-<!--        ins_product.man_hour_group-->
-<!--        ) b-->
-<!--        GROUP BY-->
-<!--        ins_order_id-->
-<!--        ) total_product_counts ON io.id = total_product_counts.ins_order_id-->
-<!--        WHERE-->
-<!--        <if test="laboratory!=null and laboratory!=''">-->
-<!--            io.laboratory=#{laboratory} AND-->
-<!--        </if>-->
-<!--        io.create_time between #{startTime} and #{endTime}-->
-<!--        AND-->
-<!--        io.state NOT IN ( 0, 2, 3 )-->
-<!--        GROUP BY-->
-<!--        io.id,-->
-<!--        type-->
-<!--        ORDER BY-->
-<!--        type DESC,-->
-<!--        io.id DESC-->
-<!--        ) a-->
-
-
-
         SELECT
         A.entrust_code,
         A.engineering,
@@ -1086,8 +984,8 @@
         group by io.entrust_code
         order by send_time desc
     </select>
-    
-    
+
+
     <select id="getTasksShow" resultType="com.ruoyi.inspect.dto.TasksShowDto">
         SELECT
             io.entrust_code,
@@ -1141,7 +1039,7 @@
                 LEFT JOIN `user` u ON ips.update_user = u.id
         WHERE
             io.entrust_code IS NOT NULL
-          AND u.state = 1
+          AND u.status = 0
           AND io.state in  (1,4)
           AND IFNULL(ir.is_ratify,-1) != 1
           AND ios.laboratory = #{sonLaboratory}

--
Gitblit v1.9.3