|
|
@ -1,14 +1,18 @@
|
|
|
|
package com.op.quality.controller;
|
|
|
|
package com.op.quality.controller;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
import java.time.LocalDate;
|
|
|
|
import java.time.LocalDate;
|
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Map;
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
|
|
|
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
|
import com.op.common.core.domain.R;
|
|
|
|
import com.op.common.core.domain.R;
|
|
|
|
import com.op.common.core.utils.DateUtils;
|
|
|
|
import com.op.common.core.utils.DateUtils;
|
|
|
|
import com.op.common.core.utils.bean.BeanUtils;
|
|
|
|
import com.op.common.core.utils.bean.BeanUtils;
|
|
|
@ -20,6 +24,7 @@ import com.op.system.api.domain.SysUser;
|
|
|
|
import com.op.system.api.domain.quality.QcCheckTaskIncomeDTO;
|
|
|
|
import com.op.system.api.domain.quality.QcCheckTaskIncomeDTO;
|
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
|
|
import org.springframework.web.bind.annotation.PutMapping;
|
|
|
|
import org.springframework.web.bind.annotation.PutMapping;
|
|
|
@ -262,9 +267,37 @@ public class QcCheckTaskIncomeController extends BaseController {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/**检测结果提交**/
|
|
|
|
/**检测结果提交**/
|
|
|
|
@PutMapping("/commitCheckResult")
|
|
|
|
@PutMapping("/commitCheckResult")
|
|
|
|
|
|
|
|
@DS("#header.poolName")
|
|
|
|
public AjaxResult commitCheckResult(@RequestBody QcCheckTaskIncome qcCheckTaskIncome) {
|
|
|
|
public AjaxResult commitCheckResult(@RequestBody QcCheckTaskIncome qcCheckTaskIncome) {
|
|
|
|
qcCheckTaskIncome.setUpdateBy(SecurityUtils.getUsername());
|
|
|
|
qcCheckTaskIncome.setUpdateBy(SecurityUtils.getUsername());
|
|
|
|
qcCheckTaskIncome.setUpdateTime(DateUtils.getNowDate());
|
|
|
|
qcCheckTaskIncome.setUpdateTime(DateUtils.getNowDate());
|
|
|
|
|
|
|
|
qcCheckTaskIncome.setUpdateByName(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
|
|
|
|
|
|
|
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
|
|
|
|
|
|
|
|
String key = "#header.poolName";
|
|
|
|
|
|
|
|
qcCheckTaskIncome.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_",""));
|
|
|
|
|
|
|
|
//获取defectList
|
|
|
|
|
|
|
|
List<QcCheckTaskDetail> details = qcCheckTaskIncome.getQcCheckTaskDetails();
|
|
|
|
|
|
|
|
if (CollectionUtils.isEmpty(qcCheckTaskIncome.getDefects())) {
|
|
|
|
|
|
|
|
List<QcCheckTaskDefect> defectList = new ArrayList<>();
|
|
|
|
|
|
|
|
Map<String, List<QcCheckTaskDetail>> groupedByDefectCode = details.stream()
|
|
|
|
|
|
|
|
.filter(detail -> detail.getDefectCode() != null) // 过滤掉defectCode为null的数据
|
|
|
|
|
|
|
|
.collect(Collectors.groupingBy(QcCheckTaskDetail::getDefectCode));
|
|
|
|
|
|
|
|
defectList = groupedByDefectCode.entrySet().stream()
|
|
|
|
|
|
|
|
.map(entry -> {
|
|
|
|
|
|
|
|
String defectCode = entry.getKey();
|
|
|
|
|
|
|
|
List<QcCheckTaskDetail> detailsWithSameCode = entry.getValue();
|
|
|
|
|
|
|
|
BigDecimal sum = detailsWithSameCode.stream()
|
|
|
|
|
|
|
|
.map(QcCheckTaskDetail::getDefectQuality)
|
|
|
|
|
|
|
|
.reduce(BigDecimal::add) // 使用summingBigDecimal()方法来求和,该方法内部实际上使用reduce()来实现
|
|
|
|
|
|
|
|
.orElse(BigDecimal.ZERO);
|
|
|
|
|
|
|
|
QcCheckTaskDefect taskDefect = new QcCheckTaskDefect();
|
|
|
|
|
|
|
|
taskDefect.setDefectCode(defectCode);
|
|
|
|
|
|
|
|
taskDefect.setNoOkQuality(sum);
|
|
|
|
|
|
|
|
return taskDefect;
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
|
|
qcCheckTaskIncome.setDefects(defectList);
|
|
|
|
|
|
|
|
}
|
|
|
|
return toAjax(qcCheckTaskIncomeService.commitCheckResults(qcCheckTaskIncome));
|
|
|
|
return toAjax(qcCheckTaskIncomeService.commitCheckResults(qcCheckTaskIncome));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|