From 085e4b6b0a97c9a20a5b92a6d6f5756ba98144f3 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 19 七月 2024 17:41:39 +0800
Subject: [PATCH] 费用统计导出+工时展示
---
inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java | 5
performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryWorkingHoursDayController.java | 10 +
inspect-server/src/main/java/com/yuanchu/mom/dto/CostStatisticsDto.java | 21 +++
performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOriginalHoursDto.java | 1
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java | 104 +++++++++++++---
performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java | 2
performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml | 2
performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java | 124 +++++++++++++++++++-
performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java | 33 +++--
inspect-server/src/main/resources/mapper/InsOrderMapper.xml | 16 ++
inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java | 10 +
performance-server/src/main/java/com/yuanchu/mom/dto/HoursDay.java | 12 ++
performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryWorkingHoursDayService.java | 4
13 files changed, 289 insertions(+), 55 deletions(-)
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java
index 0af2a5a..169a309 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java
@@ -23,6 +23,8 @@
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
@@ -179,4 +181,12 @@
public Result<?> labelPrinting(String ids) {
return Result.success(insOrderService.labelPrinting(ids));
}
+
+ @ValueClassify("璐圭敤缁熻")
+ @ApiOperation(value = "璐圭敤缁熻瀵煎嚭")
+ @PostMapping("/export")
+ public void export(@RequestBody Map<String, Object> data,HttpServletResponse response) throws Exception {
+ CostStatisticsDto costStatisticsDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), CostStatisticsDto.class);
+ insOrderService.export(costStatisticsDto,response);
+ }
}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/dto/CostStatisticsDto.java b/inspect-server/src/main/java/com/yuanchu/mom/dto/CostStatisticsDto.java
index 35b2b21..10d4e84 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/dto/CostStatisticsDto.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/dto/CostStatisticsDto.java
@@ -1,5 +1,7 @@
package com.yuanchu.mom.dto;
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yuanchu.mom.annotation.ValueTableShow;
@@ -14,39 +16,58 @@
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ValueTableShow(value = 1, name = "涓嬪崟鏃堕棿")
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","ZTT/QR-30-01-01","鏃ユ湡"})
private LocalDateTime createTime;
@ValueTableShow(value = 2, name = "濮旀墭缂栧彿")
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","ZTT/QR-30-01-01","妫�楠岀紪鍙�"})
private String entrustCode;
@ValueTableShow(value = 3, name = "鏍峰搧鍚嶇О")
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","鏍峰搧鍚嶇О"})
private String sample;
@ValueTableShow(value = 4, name = "瑙勬牸鍨嬪彿")
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","瑙勬牸鍨嬪彿"})
private String model;
@ValueTableShow(value = 5, name = "鏍峰搧鏁伴噺")
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","鏍峰搧鏁伴噺"})
private Integer num;
@ValueTableShow(value = 6, name = "鎬讳环")
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","鎬讳环"})
private BigDecimal price;
@ValueTableShow(value = 7, name = "璇曢獙椤圭洰")
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","璇曢獙椤圭洰"})
private String inspectionItem;
@ValueTableShow(value = 8, name = "濮旀墭鍗曚綅")
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","濮旀墭鍗曚綅"})
private String company;
@ValueTableShow(value = 9, name = "濮旀墭浜�")
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","濮旀墭浜�"})
private String name;
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","鐢熶骇鍗曚綅"})
+ private String production;
+
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","宸ョ▼鍚嶇О"})
+ private String engineering;
+
+ @ExcelIgnore
private Integer createUser;
+ @ExcelIgnore
private Integer insSampleId;
+ @ExcelIgnore
private Double cost;//宸ユ椂
@TableField(exist = false,select = false)
+ @ExcelIgnore
private String dates;
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java
index f00cc68..2479a02 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java
@@ -6,6 +6,9 @@
import com.yuanchu.mom.dto.*;
import com.yuanchu.mom.pojo.InsOrder;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
import java.util.List;
import java.util.Map;
@@ -41,4 +44,6 @@
int updateStatus(Integer id);
List<SampleProductDto3> labelPrinting(String ids);
+
+ void export(CostStatisticsDto costStatisticsDto,HttpServletResponse response)throws IOException, ServletException;
}
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
index 830f53e..c9689b7 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
@@ -2,6 +2,10 @@
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
+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.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
@@ -25,6 +29,10 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@@ -84,13 +92,13 @@
Integer roleId = user.getRoleId();
//鑾峰彇褰撳墠浜烘墍灞炲疄楠屽id
String departLimsId = user.getDepartLimsId();
- String laboratory=null;
- if (ObjectUtils.isNotEmpty(departLimsId) && !departLimsId.equals("")){
+ String laboratory = null;
+ if (ObjectUtils.isNotEmpty(departLimsId) && !departLimsId.equals("")) {
String[] split = departLimsId.split(",");
- //鏌ヨ瀵瑰簲鏋舵瀯鍚嶇О(閫氫俊瀹為獙瀹�,鐢靛姏瀹為獙瀹�,妫�娴嬪姙)
- String departLims=baseMapper.seldepLimsId(Integer.parseInt(split[split.length - 1]));
- if (departLims.contains("瀹為獙瀹�")){
- laboratory=departLims;
+ //鏌ヨ瀵瑰簲鏋舵瀯鍚嶇О(閫氫俊瀹為獙瀹�,鐢靛姏瀹為獙瀹�,妫�娴嬪姙)
+ String departLims = baseMapper.seldepLimsId(Integer.parseInt(split[split.length - 1]));
+ if (departLims.contains("瀹為獙瀹�")) {
+ laboratory = departLims;
}
}
//鍒ゆ柇鏄惁鏄叏閮ㄦ潈闄�
@@ -108,7 +116,7 @@
}
}
}
- map.put("body", insOrderMapper.selectInsOrderPage(page, QueryWrappers.queryWrappers(sampleOrderDto),laboratory));
+ map.put("body", insOrderMapper.selectInsOrderPage(page, QueryWrappers.queryWrappers(sampleOrderDto), laboratory));
return map;
}
@@ -336,6 +344,8 @@
//鍒ゆ柇鐑惊鐜」鐩殑娣诲姞鍜屾俯鍗囪瘯楠岄」鐩殑娣诲姞
else if (product.getInspectionItem().equals("鐑惊鐜�") || product.getInspectionItem().equals("娓╁崌璇曢獙")) {
List<InsProduct> insProductess = new ArrayList<>();
+ product.setId(null);
+ product.setInsSampleId(sampleId);
insProductess.add(product);
List<InsProduct> insProductes = new ArrayList<>();
List<InsProduct> insProducts = new ArrayList<>();
@@ -363,8 +373,6 @@
insProduct.setInspectionItemType("0");
insProduct.setInspectionValueType("1");
insProducts.add(insProduct);
- insProductes.add(insProduct);
- insProductess.add(insProduct);
}
//鐑惊鐜墠鏈夊娆″惊鐜鏁�
if (product.getInspectionItem().equals("鐑惊鐜�")) {
@@ -379,20 +387,19 @@
insProductess.add(insProduct1);
}
}
- if (count > 1) {
- //寰幆瓒呰繃1娆�
- for (int j = 2; j <= count; j++) {
- for (InsProduct insProduct : insProductes) {
- InsProduct insProduct1 = new InsProduct();
- BeanUtils.copyProperties(insProduct, insProduct1);
- insProduct1.setInspectionItem(j + "");//寰幆娆℃暟
- insProductess.add(insProduct1);
- }
+ if (count > 1) {
+ //寰幆瓒呰繃1娆�
+ for (int j = 2; j <= count; j++) {
+ for (InsProduct insProduct : insProductes) {
+ InsProduct insProduct1 = new InsProduct();
+ BeanUtils.copyProperties(insProduct, insProduct1);
+ insProduct1.setInspectionItem(j + "");//寰幆娆℃暟
+ insProductess.add(insProduct1);
}
}
+ }
insProductService.saveBatch(insProductess);
- }
- else {
+ } else {
if (!is) {
switch (type) {
case 1:
@@ -473,7 +480,21 @@
map.put("head", PrintChina.printChina(CostStatisticsDto.class));
Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("costStatistics");
if (map1.get("look") == 1) costStatisticsDto.setCreateUser(map1.get("userId"));
- map.put("body",insOrderMapper.selectCostStatistics(page, QueryWrappers.queryWrappers(costStatisticsDto).ge("create_time", split[0]).le("create_time", split[1] + " 23:59:59")));
+ IPage<CostStatisticsDto> dtoIPage = insOrderMapper.selectCostStatistics(page, QueryWrappers.queryWrappers(costStatisticsDto).ge("create_time", split[0]).le("create_time", split[1] + " 23:59:59"));
+ List<CostStatisticsDto> collect = dtoIPage.getRecords().stream().map(dto -> {
+ Set<String> uniqueTags = new HashSet<>();
+ if (dto.getInspectionItem().contains(",")) {
+ for (String s : dto.getInspectionItem().split(",")) {
+ uniqueTags.add(s.split("@")[0]);
+ }
+ } else {
+ uniqueTags.add(dto.getInspectionItem().split("@")[0]);
+ }
+ dto.setInspectionItem(uniqueTags.toString());
+ return dto;
+ }).collect(Collectors.toList());
+ dtoIPage.setRecords(collect);
+ map.put("body", dtoIPage);
return map;
}
@@ -486,7 +507,7 @@
List<CostStatisticsDto> costStatisticsDtos = insOrderMapper.selectCostStatistics2(QueryWrappers.queryWrappers(costStatisticsDto).ge("create_time", split[0]).le("create_time", split[1] + " 23:59:59"));
double totalPrice = costStatisticsDtos.stream()
.filter(dto -> dto.getPrice() != null) // 杩囨护鎺変环鏍间负 null 鐨勫璞�
- .mapToDouble(value -> value.getPrice().doubleValue()*value.getNum())
+ .mapToDouble(value -> value.getPrice().doubleValue() * value.getNum())
.sum();
map.put("total", totalPrice);
return map;
@@ -527,6 +548,45 @@
}).collect(Collectors.toList());
return sampleProductDto3s;
}
+
+ @Override
+ public void export(CostStatisticsDto costStatisticsDto,HttpServletResponse response) throws IOException {
+ //鏌ヨ瀵煎嚭鐨勮垂鐢ㄧ粺璁℃暟鎹�
+ String dates = costStatisticsDto.getDates();
+ String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
+ costStatisticsDto.setDates(null);
+ List<CostStatisticsDto> costStatisticsDtos = insOrderMapper.selectCostStatistics2(QueryWrappers.queryWrappers(costStatisticsDto).ge("create_time", split[0]).le("create_time", split[1] + " 23:59:59"));
+ costStatisticsDtos = costStatisticsDtos.stream().map(dto -> {
+ Set<String> uniqueTags = new HashSet<>();
+ if (dto.getInspectionItem().contains(",")) {
+ for (String s : dto.getInspectionItem().split(",")) {
+ uniqueTags.add(s.split("@")[0]);
+ }
+ } else {
+ uniqueTags.add(dto.getInspectionItem().split("@")[0]);
+ }
+ dto.setInspectionItem(uniqueTags.toString());
+ return dto;
+ }).collect(Collectors.toList());
+
+ 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( "鏍峰搧璐圭敤缁熻瀵煎嚭").head(CostStatisticsDto.class).build();
+ excelWriter.write(costStatisticsDtos, mainSheet);
+
+ // 鍏抽棴娴�
+ excelWriter.finish();
+ } catch (IOException e) {
+ throw new RuntimeException("瀵煎嚭澶辫触");
+ }
+ }
}
diff --git a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
index 1c16c0b..8c0fbce 100644
--- a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
@@ -206,7 +206,7 @@
GROUP_CONCAT(b.inspection_item2
SEPARATOR ',')
inspection_item from (select * ,
- GROUP_CONCAT(CONCAT(inspection_item,'',inspection_item_subclass) SEPARATOR ',')inspection_item2 from ins_product where state = 1 and template_id IS NOT NULL GROUP BY ins_sample_id,man_hour_group) b GROUP
+ GROUP_CONCAT(CONCAT(inspection_item,'@',inspection_item_subclass) SEPARATOR ',')inspection_item2 from ins_product where state = 1 and template_id IS NOT NULL GROUP BY ins_sample_id,man_hour_group) b GROUP
BY b.ins_sample_id) c ON c.ins_sample_id = isa.id
where (i.state = 1 or i.state = 3 or i.state = 4) and c.ins_sample_id IS not NULL)A
GROUP BY
@@ -390,6 +390,8 @@
A.inspection_item,
A.company,
A.`name`,
+ production,
+ engineering,
COUNT(1) num,
SUM(A.price) price,
SUM(A.cost) cost
@@ -407,7 +409,9 @@
cus.company,
u.`name`,
i.create_user,
- c.ins_sample_id
+ c.ins_sample_id,
+ production,
+ engineering
FROM
ins_order i
LEFT JOIN ins_sample isa ON isa.ins_order_id = i.id
@@ -428,7 +432,9 @@
A.model,
A.inspection_item,
A.company,
- A.`name`
+ A.`name`,
+ production,
+ engineering
ORDER BY
A.id,
A.entrust_code,
@@ -437,7 +443,9 @@
A.model,
A.inspection_item,
A.company,
- A.`name`) B
+ A.`name`,
+ production,
+ engineering) B
<if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
${ew.customSqlSegment}
</if>
diff --git a/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryWorkingHoursDayController.java b/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryWorkingHoursDayController.java
index e65f7e3..3cc5cb5 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryWorkingHoursDayController.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryWorkingHoursDayController.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.annotation.ValueClassify;
import com.yuanchu.mom.dto.AuxiliaryWorkingHoursDayDto;
+import com.yuanchu.mom.dto.HoursDay;
import com.yuanchu.mom.pojo.AuxiliaryWorkingHours;
import com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay;
import com.yuanchu.mom.service.AuxiliaryWorkingHoursDayService;
@@ -20,6 +21,7 @@
import javax.annotation.Resource;
import java.time.LocalDateTime;
+import java.util.List;
import java.util.Map;
/**
@@ -72,15 +74,15 @@
@ValueClassify("宸ユ椂绠$悊")
@ApiOperation(value = "鎵瑰噯宸ユ椂缁熻鐨勮緟鍔╁伐鏃�")
@PostMapping("/approve")
- public Result approve(@RequestBody AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay) {
- return Result.success(auxiliaryWorkingHoursDayService.checkOrApprove(auxiliaryWorkingHoursDay));
+ public Result approve(@RequestBody HoursDay hoursDay ) {
+ return Result.success(auxiliaryWorkingHoursDayService.checkOrApprove(hoursDay));
}
@ValueClassify("宸ユ椂绠$悊")
@ApiOperation(value = "瀹℃牳宸ユ椂缁熻鐨勮緟鍔╁伐鏃�")
@PostMapping("/check")
- public Result check(@RequestBody AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay ) {
- return Result.success(auxiliaryWorkingHoursDayService.checkOrApprove(auxiliaryWorkingHoursDay));
+ public Result check(@RequestBody HoursDay hoursDay ) {
+ return Result.success(auxiliaryWorkingHoursDayService.checkOrApprove(hoursDay));
}
@ValueClassify("宸ユ椂绠$悊")
diff --git a/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOriginalHoursDto.java b/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOriginalHoursDto.java
index 740adfa..a1ff994 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOriginalHoursDto.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOriginalHoursDto.java
@@ -5,6 +5,7 @@
import com.yuanchu.mom.annotation.ValueTableShow;
import com.yuanchu.mom.pojo.AuxiliaryCorrectionHours;
import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
import lombok.Data;
import java.text.DecimalFormat;
diff --git a/performance-server/src/main/java/com/yuanchu/mom/dto/HoursDay.java b/performance-server/src/main/java/com/yuanchu/mom/dto/HoursDay.java
new file mode 100644
index 0000000..22bc6b0
--- /dev/null
+++ b/performance-server/src/main/java/com/yuanchu/mom/dto/HoursDay.java
@@ -0,0 +1,12 @@
+package com.yuanchu.mom.dto;
+
+import com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class HoursDay {
+
+ private List<AuxiliaryWorkingHoursDay> auxiliaryWorkingHoursDays;
+}
diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryWorkingHoursDayService.java b/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryWorkingHoursDayService.java
index 86669a0..fd84bcd 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryWorkingHoursDayService.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryWorkingHoursDayService.java
@@ -2,11 +2,13 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.AuxiliaryWorkingHoursDayDto;
+import com.yuanchu.mom.dto.HoursDay;
import com.yuanchu.mom.pojo.AuxiliaryWorkingHours;
import com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay;
import com.baomidou.mybatisplus.extension.service.IService;
import java.time.LocalDateTime;
+import java.util.List;
import java.util.Map;
/**
@@ -25,7 +27,7 @@
AuxiliaryWorkingHoursDay selectAuxiliaryWorkingHoursByNumber(String number);
- int checkOrApprove(AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay);
+ boolean checkOrApprove(HoursDay hoursDay);
int updateAuxiliaryWorkingHoursDay(AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay);
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 2230285..51ec8c7 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
@@ -19,6 +19,7 @@
import com.yuanchu.mom.pojo.User;
import com.yuanchu.mom.service.AuxiliaryOriginalHoursService;
import com.yuanchu.mom.utils.QueryWrappers;
+import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -26,10 +27,7 @@
import java.io.IOException;
import java.net.URLEncoder;
import java.text.DecimalFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.stream.Collectors;
@Service
@@ -110,19 +108,95 @@
originalHoursDtoIPage.setSize(page.getSize());
originalHoursDtoIPage.setCurrent(page.getCurrent());
List<AuxiliaryOriginalHoursDto> auxiliaryOriginalHoursDtos = new ArrayList<>();
+ Map<String, AuxiliaryOriginalHoursDto> data1 = new HashMap<>();
+ Map<String, AuxiliaryOriginalHoursDto> data2 = new HashMap<>();
//浜ч噺宸ユ椂
List<Map<String, Object>> maps = auxiliaryOutputWorkingHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids);
if (ObjectUtils.isNotEmpty(maps)) {
- auxiliaryOriginalHoursDtos.addAll(getData(maps, "浜ч噺宸ユ椂").values());
+ data1 = getData(maps, "浜ч噺宸ユ椂");
+ auxiliaryOriginalHoursDtos.addAll(data1.values());
}
//杈呭姪宸ユ椂
List<Map<String, Object>> maps1 = auxiliaryWorkingHoursDayMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids);
if (ObjectUtils.isNotEmpty(maps1)) {
- auxiliaryOriginalHoursDtos.addAll(getData(maps1, "杈呭姪宸ユ椂").values());
+ data2 = getData(maps1, "杈呭姪宸ユ椂");
+ auxiliaryOriginalHoursDtos.addAll(data2.values());
}
//鍔犵彮宸ユ椂
- //鎬诲伐鏃�
- List<Map<String, Object>> maps2 = auxiliaryOriginalHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids);
+ //鎬诲伐鏃�=浜ч噺宸ユ椂+杈呭姪宸ユ椂+鍔犵彮宸ユ椂
+ Map<String, AuxiliaryOriginalHoursDto> data4 = new HashMap<String, AuxiliaryOriginalHoursDto>();
+ Map<String, AuxiliaryOriginalHoursDto> data3 = data1;
+ if (data1.size()>0) {
+ if (data2.size() > 0) {
+ for (Map.Entry<String, AuxiliaryOriginalHoursDto> entry : data2.entrySet()) {
+ String key = entry.getKey();
+ AuxiliaryOriginalHoursDto value = entry.getValue();
+ if (data3.containsKey(key)) {
+ for (Map.Entry<String, AuxiliaryOriginalHoursDto> dtoEntry : data3.entrySet()) {
+ if (dtoEntry.getKey().equals(key)) {
+ AuxiliaryOriginalHoursDto auxiliaryOriginalHoursDto = new AuxiliaryOriginalHoursDto();
+ AuxiliaryOriginalHoursDto hoursDto = data3.get(key);
+ BeanUtils.copyProperties(hoursDto, auxiliaryOriginalHoursDto);
+ auxiliaryOriginalHoursDto.setType("鎬诲伐鏃�");
+ auxiliaryOriginalHoursDto.setOneHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getOneHours()) ? auxiliaryOriginalHoursDto.getOneHours() : 0) + (ObjectUtils.isNotEmpty(value.getOneHours()) ? value.getOneHours() : 0));
+ auxiliaryOriginalHoursDto.setTwoHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwoHours()) ? auxiliaryOriginalHoursDto.getTwoHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwoHours()) ? value.getTwoHours() : 0));
+ auxiliaryOriginalHoursDto.setThreeHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThreeHours()) ? auxiliaryOriginalHoursDto.getThreeHours() : 0) + (ObjectUtils.isNotEmpty(value.getThreeHours()) ? value.getThreeHours() : 0));
+ auxiliaryOriginalHoursDto.setFourHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFourHours()) ? auxiliaryOriginalHoursDto.getFourHours() : 0) + (ObjectUtils.isNotEmpty(value.getFourHours()) ? value.getFourHours() : 0));
+ auxiliaryOriginalHoursDto.setFiveHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFiveHours()) ? auxiliaryOriginalHoursDto.getFiveHours() : 0) + (ObjectUtils.isNotEmpty(value.getFiveHours()) ? value.getFiveHours() : 0));
+ auxiliaryOriginalHoursDto.setSixHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSixHours()) ? auxiliaryOriginalHoursDto.getSixHours() : 0) + (ObjectUtils.isNotEmpty(value.getSixHours()) ? value.getSixHours() : 0));
+ auxiliaryOriginalHoursDto.setSevenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSevenHours()) ? auxiliaryOriginalHoursDto.getSevenHours() : 0) + (ObjectUtils.isNotEmpty(value.getSevenHours()) ? value.getSevenHours() : 0));
+ auxiliaryOriginalHoursDto.setEightHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getEightHours()) ? auxiliaryOriginalHoursDto.getEightHours() : 0) + (ObjectUtils.isNotEmpty(value.getEightHours()) ? value.getEightHours() : 0));
+ auxiliaryOriginalHoursDto.setNineHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getNineHours()) ? auxiliaryOriginalHoursDto.getNineHours() : 0) + (ObjectUtils.isNotEmpty(value.getNineHours()) ? value.getNineHours() : 0));
+ auxiliaryOriginalHoursDto.setTenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTenHours()) ? auxiliaryOriginalHoursDto.getTenHours() : 0) + (ObjectUtils.isNotEmpty(value.getTenHours()) ? value.getTenHours() : 0));
+ auxiliaryOriginalHoursDto.setElevenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getElevenHours()) ? auxiliaryOriginalHoursDto.getElevenHours() : 0) + (ObjectUtils.isNotEmpty(value.getElevenHours()) ? value.getElevenHours() : 0));
+ auxiliaryOriginalHoursDto.setTwelveHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwelveHours()) ? auxiliaryOriginalHoursDto.getTwelveHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwelveHours()) ? value.getTwelveHours() : 0));
+ auxiliaryOriginalHoursDto.setThirteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirteenHours()) ? auxiliaryOriginalHoursDto.getThirteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getThirteenHours()) ? value.getThirteenHours() : 0));
+ auxiliaryOriginalHoursDto.setFourteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFourteenHours()) ? auxiliaryOriginalHoursDto.getFourteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getFourteenHours()) ? value.getFourteenHours() : 0));
+ auxiliaryOriginalHoursDto.setFifteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFifteenHours()) ? auxiliaryOriginalHoursDto.getFifteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getFifteenHours()) ? value.getFifteenHours() : 0));
+ auxiliaryOriginalHoursDto.setSixteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSixteenHours()) ? auxiliaryOriginalHoursDto.getSixteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getSixteenHours()) ? value.getSixteenHours() : 0));
+ auxiliaryOriginalHoursDto.setSeventeenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSeventeenHours()) ? auxiliaryOriginalHoursDto.getSeventeenHours() : 0) + (ObjectUtils.isNotEmpty(value.getSeventeenHours()) ? value.getSeventeenHours() : 0));
+ auxiliaryOriginalHoursDto.setEighteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getEighteenHours()) ? auxiliaryOriginalHoursDto.getEighteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getEighteenHours()) ? value.getEighteenHours() : 0));
+ auxiliaryOriginalHoursDto.setNineteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getNineteenHours()) ? auxiliaryOriginalHoursDto.getNineteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getNineteenHours()) ? value.getNineteenHours() : 0));
+ auxiliaryOriginalHoursDto.setTwelveHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwelveHours()) ? auxiliaryOriginalHoursDto.getTwelveHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwelveHours()) ? value.getTwelveHours() : 0));
+ auxiliaryOriginalHoursDto.setTwentyOneHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyOneHours()) ? auxiliaryOriginalHoursDto.getTwentyOneHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyOneHours()) ? value.getTwentyOneHours() : 0));
+ auxiliaryOriginalHoursDto.setTwentyTwoHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyTwoHours()) ? auxiliaryOriginalHoursDto.getTwentyTwoHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyTwoHours()) ? value.getTwentyTwoHours() : 0));
+ auxiliaryOriginalHoursDto.setTwentyThreeHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyThreeHours()) ? auxiliaryOriginalHoursDto.getTwentyThreeHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyThreeHours()) ? value.getTwentyThreeHours() : 0));
+ auxiliaryOriginalHoursDto.setTwentyFourHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyFourHours()) ? auxiliaryOriginalHoursDto.getTwentyFourHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyFourHours()) ? value.getTwentyFourHours() : 0));
+ auxiliaryOriginalHoursDto.setTwentyFiveHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyFiveHours()) ? auxiliaryOriginalHoursDto.getTwentyFiveHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyFiveHours()) ? value.getTwentyFiveHours() : 0));
+ auxiliaryOriginalHoursDto.setTwentySixHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentySixHours()) ? auxiliaryOriginalHoursDto.getTwentySixHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentySixHours()) ? value.getTwentySixHours() : 0));
+ auxiliaryOriginalHoursDto.setTwentySevenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentySevenHours()) ? auxiliaryOriginalHoursDto.getTwentySevenHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentySevenHours()) ? value.getTwentySevenHours() : 0));
+ auxiliaryOriginalHoursDto.setTwentyEightHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyEightHours()) ? auxiliaryOriginalHoursDto.getTwentyEightHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyEightHours()) ? value.getTwentyEightHours() : 0));
+ auxiliaryOriginalHoursDto.setTwentyNineHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyNineHours()) ? auxiliaryOriginalHoursDto.getTwentyNineHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyNineHours()) ? value.getTwentyNineHours() : 0));
+ auxiliaryOriginalHoursDto.setThirtyHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirtyHours()) ? auxiliaryOriginalHoursDto.getThirtyHours() : 0) + (ObjectUtils.isNotEmpty(value.getThirtyHours()) ? value.getThirtyHours() : 0));
+ auxiliaryOriginalHoursDto.setThirtyOneHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirtyOneHours()) ? auxiliaryOriginalHoursDto.getThirtyOneHours() : 0) + (ObjectUtils.isNotEmpty(value.getThirtyOneHours()) ? value.getThirtyOneHours() : 0));
+ auxiliaryOriginalHoursDto.setTotal((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTotal()) ? auxiliaryOriginalHoursDto.getTotal() : 0) + (ObjectUtils.isNotEmpty(value.getTotal()) ? value.getTotal() : 0));
+ data4.put(key, auxiliaryOriginalHoursDto);
+ } else {
+ AuxiliaryOriginalHoursDto hoursDto = data3.get(dtoEntry.getKey());
+ AuxiliaryOriginalHoursDto dto = new AuxiliaryOriginalHoursDto();
+ BeanUtils.copyProperties(hoursDto, dto);
+ dto.setType("鎬诲伐鏃�");
+ data4.put(dtoEntry.getKey(), dto);
+ }
+ }
+ } else {
+ value.setType("鎬诲伐鏃�");
+ data4.put(key, value);
+ }
+ }
+ }
+ else {
+ for (Map.Entry<String, AuxiliaryOriginalHoursDto> entry : data3.entrySet()) {
+ AuxiliaryOriginalHoursDto dto = entry.getValue();
+ AuxiliaryOriginalHoursDto originalHoursDto = new AuxiliaryOriginalHoursDto();
+ BeanUtils.copyProperties(dto, originalHoursDto);
+ originalHoursDto.setType("鎬诲伐鏃�");
+ data4.put(entry.getKey(), originalHoursDto);
+ }
+ }
+ auxiliaryOriginalHoursDtos.addAll(data4.values());
+ }
+ /*List<Map<String, Object>> maps2 = auxiliaryOriginalHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids);
if (ObjectUtils.isNotEmpty(maps2)) {
//浜ч噺宸ユ椂+杈呭姪宸ユ椂閮戒笉涓虹┖
auxiliaryOriginalHoursDtos.addAll(getData(maps2, "鎬诲伐鏃�").values());
@@ -132,8 +206,37 @@
auxiliaryOriginalHoursDtos.addAll(getData(maps1, "鎬诲伐鏃�").values());
} else if (ObjectUtils.isNotEmpty(maps)) {
auxiliaryOriginalHoursDtos.addAll(getData(maps, "鎬诲伐鏃�").values());
+ }*/
+
+ auxiliaryOriginalHoursDtos = auxiliaryOriginalHoursDtos.stream().sorted(Comparator.comparing(AuxiliaryOriginalHoursDto::getName)).collect(Collectors.toList());
+ // 妫�鏌ユ瘡涓汉鐨勫伐鏃剁被鍨嬶紝琛ュ叏缂哄皯鐨勫伐鏃�
+ Map<String, Set<String>> workHoursMap = new HashMap<>();
+ String[] requiredHours = {"浜ч噺宸ユ椂", "杈呭姪宸ユ椂", "鍔犵彮宸ユ椂", "鎬诲伐鏃�"};
+ for (AuxiliaryOriginalHoursDto dto : auxiliaryOriginalHoursDtos) {
+ workHoursMap.computeIfAbsent(dto.getName(), k -> new HashSet<>()).add(dto.getType());
}
- originalHoursDtoIPage.setRecords(auxiliaryOriginalHoursDtos);
+ List<AuxiliaryOriginalHoursDto> result = auxiliaryOriginalHoursDtos;
+ for (String name1 : workHoursMap.keySet()) {
+ Set<String> workTypes = workHoursMap.get(name1);
+ for (String requiredHour : requiredHours) {
+ if (!workTypes.contains(requiredHour)) {
+ AuxiliaryOriginalHoursDto auxiliaryOriginalHoursDto = new AuxiliaryOriginalHoursDto();
+ auxiliaryOriginalHoursDto.setName(name1);
+ auxiliaryOriginalHoursDto.setAuxiliaryCorrectionHours(null);
+ auxiliaryOriginalHoursDto.setType(requiredHour);
+ auxiliaryOriginalHoursDto.setMonth(auxiliaryOriginalHoursLookDto.getMonth());
+ result.add(auxiliaryOriginalHoursDto);
+ }
+ }
+ }
+ List<String> order = Arrays.asList("浜ч噺宸ユ椂", "杈呭姪宸ユ椂", "鍔犵彮宸ユ椂", "鎬诲伐鏃�");
+ Comparator<AuxiliaryOriginalHoursDto> comparator = Comparator.comparingInt(dto -> {
+ String type = dto.getType();
+ return order.indexOf(type) == -1 ? order.size() : order.indexOf(type);
+ });
+ result = result.stream().sorted(Comparator.comparing(AuxiliaryOriginalHoursDto::getName).thenComparing(comparator)).collect(Collectors.toList());
+ originalHoursDtoIPage.setRecords(result);
+ originalHoursDtoIPage.setTotal(result.size());
map.put("body", originalHoursDtoIPage);
return map;
}
@@ -192,7 +295,6 @@
.eq(AuxiliaryCorrectionHours::getType, auxiliaryOriginalHoursDto.getType())
.eq(AuxiliaryCorrectionHours::getMonth, auxiliaryOriginalHoursDto.getMonth()));
auxiliaryOriginalHoursDto.setAuxiliaryCorrectionHours(auxiliaryCorrectionHours);
- dtoMap.put(name, auxiliaryOriginalHoursDto);
}
AuxiliaryCorrectionHours auxiliaryCorrectionHours = auxiliaryOriginalHoursDto.getAuxiliaryCorrectionHours();
switch (objectMap.get("month").toString().substring(8, 10)) {
@@ -479,6 +581,8 @@
);
DecimalFormat df = new DecimalFormat("#.####"); // 璁惧畾鍥涗綅灏忔暟
auxiliaryOriginalHoursDto.setTotal(Double.parseDouble(df.format(auxiliaryOriginalHoursDto.getTotal())));
+
+ dtoMap.put(name, auxiliaryOriginalHoursDto);
}
return dtoMap;
}
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 e85943f..131200a 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
@@ -213,7 +213,7 @@
map.put("浜ч噺宸ユ椂姹囨��", sumOutputWorkTime);
if (ObjectUtils.isNotEmpty(auxiliaryWorkingHoursDays)) {
for (AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay : auxiliaryWorkingHoursDays) {
- sumApprovedWorkingHour += auxiliaryWorkingHoursDay.getNonproductiveTime();
+ sumApprovedWorkingHour += auxiliaryWorkingHoursDay.getReviewerNonproductiveTime();//澶嶆牳宸ユ椂
}
}
map.put("杈呭姪宸ユ椂姹囨��", sumApprovedWorkingHour);
diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java
index 326ae57..80dcba5 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java
@@ -7,6 +7,7 @@
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.common.PrintChina;
import com.yuanchu.mom.dto.AuxiliaryWorkingHoursDayDto;
+import com.yuanchu.mom.dto.HoursDay;
import com.yuanchu.mom.exception.ErrorException;
import com.yuanchu.mom.mapper.*;
import com.yuanchu.mom.pojo.*;
@@ -87,8 +88,8 @@
ids.addAll(users.stream().map(User::getId).distinct().collect(Collectors.toList()));
}
}
- if (ids.size()==0){
- ids=null;
+ if (ids.size() == 0) {
+ ids = null;
}
if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isNotEmpty(week)) {
String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
@@ -98,7 +99,7 @@
.ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59")
.ge("week", weeks[0]).le("week", weeks[1]), ids);
for (AuxiliaryWorkingHoursDayDto record : auxiliaryWorkingHoursDayDtoIPage.getRecords()) {
- record.setDateTime(record.getDateTime().substring(0,10));
+ record.setDateTime(record.getDateTime().substring(0, 10));
}
map.put("body", auxiliaryWorkingHoursDayDtoIPage);
} else if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isEmpty(week)) {
@@ -107,22 +108,22 @@
QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto)
.ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59"), ids);
for (AuxiliaryWorkingHoursDayDto record : auxiliaryWorkingHoursDayDtoIPage.getRecords()) {
- record.setDateTime(record.getDateTime().substring(0,10));
+ record.setDateTime(record.getDateTime().substring(0, 10));
}
- map.put("body",auxiliaryWorkingHoursDayDtoIPage );
+ map.put("body", auxiliaryWorkingHoursDayDtoIPage);
} else if (ObjectUtils.isEmpty(dates) && ObjectUtils.isNotEmpty(week)) {
String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
IPage<AuxiliaryWorkingHoursDayDto> auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page,
QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto)
.ge("week", weeks[0]).le("week", weeks[1]), ids);
for (AuxiliaryWorkingHoursDayDto record : auxiliaryWorkingHoursDayDtoIPage.getRecords()) {
- record.setDateTime(record.getDateTime().substring(0,10));
+ record.setDateTime(record.getDateTime().substring(0, 10));
}
map.put("body", auxiliaryWorkingHoursDayDtoIPage);
} else {
IPage<AuxiliaryWorkingHoursDayDto> auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto), ids);
for (AuxiliaryWorkingHoursDayDto record : auxiliaryWorkingHoursDayDtoIPage.getRecords()) {
- record.setDateTime(record.getDateTime().substring(0,10));
+ record.setDateTime(record.getDateTime().substring(0, 10));
}
map.put("body", auxiliaryWorkingHoursDayDtoIPage);
}
@@ -153,12 +154,20 @@
//瀹℃牳/鎵瑰噯
@Override
- public int checkOrApprove(AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay) {
- if (auxiliaryWorkingHoursDay.getState().equals("宸插鏍�")) {
- Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
- auxiliaryWorkingHoursDay.setReviewer(userMapper.selectById(userId).getName());
+ public boolean checkOrApprove(HoursDay hoursDay) {
+ List<AuxiliaryWorkingHoursDay> auxiliaryWorkingHoursDays = hoursDay.getAuxiliaryWorkingHoursDays();
+ for (AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay : auxiliaryWorkingHoursDays) {
+ if (auxiliaryWorkingHoursDay.getState().equals("宸插鏍�")) {
+ Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
+ auxiliaryWorkingHoursDay.setReviewer(userMapper.selectById(userId).getName());
+ }
+ if (auxiliaryWorkingHoursDay.getReviewerNumber() == null) {
+ auxiliaryWorkingHoursDay.setReviewerNumber(auxiliaryWorkingHoursDay.getAmount());//澶嶆牳鏁伴噺
+ auxiliaryWorkingHoursDay.setReviewerNonproductiveTime(auxiliaryWorkingHoursDay.getNonproductiveTime());//澶嶆牳宸ユ椂
+ }
+
}
- return auxiliaryWorkingHoursDayMapper.updateById(auxiliaryWorkingHoursDay);
+ return updateBatchById(auxiliaryWorkingHoursDays);
}
//缂栬緫
diff --git a/performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml b/performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml
index 0f7802d..9aee9af 100644
--- a/performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml
+++ b/performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml
@@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yuanchu.mom.mapper.AuxiliaryOriginalHoursMapper">
<select id="totalHours" resultType="java.util.Map">
- select E.name, E.month, E.total
+ select E.name, E.month, E.total manHours
from (select C.name, C.month, C.manHours + D.manHours as total
from (select A.name,
A.month,
--
Gitblit v1.9.3