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