包头bug修改

This commit is contained in:
guoshengxiong 2024-11-05 18:01:20 +08:00
parent 797124f378
commit 362a89f5f2
7 changed files with 58 additions and 12 deletions

View File

@ -67,6 +67,7 @@ public class MainProjectCompletePeriodController {
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"), @ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"), @ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "search", value = "查询", paramType = "query", required = false, dataType = "String"),
}) })
@GetMapping(value = "/page") @GetMapping(value = "/page")
public Result<IPage<MainProjectCompletePeriod>> queryPageList(@ApiIgnore @RequestParam HashMap<String, Object> param) { public Result<IPage<MainProjectCompletePeriod>> queryPageList(@ApiIgnore @RequestParam HashMap<String, Object> param) {

View File

@ -14,6 +14,7 @@ import com.gexin.fastjson.JSONArray;
import com.zhgd.annotation.OperLog; import com.zhgd.annotation.OperLog;
import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.xmgl.constant.Cts;
import com.zhgd.xmgl.modules.baotou.entity.WorkerAdmission; import com.zhgd.xmgl.modules.baotou.entity.WorkerAdmission;
import com.zhgd.xmgl.modules.baotou.entity.WorkerAdmissionCertificateDetail; import com.zhgd.xmgl.modules.baotou.entity.WorkerAdmissionCertificateDetail;
import com.zhgd.xmgl.modules.baotou.entity.WorkerAdmissionDetail; import com.zhgd.xmgl.modules.baotou.entity.WorkerAdmissionDetail;
@ -138,8 +139,8 @@ public class WorkerAdmissionController {
JSONArray idCardList = JSON.parseArray(MapUtils.getString(map, "idCardList")); JSONArray idCardList = JSON.parseArray(MapUtils.getString(map, "idCardList"));
if (CollUtil.isNotEmpty(numList)) { if (CollUtil.isNotEmpty(numList)) {
List<String> nums = workerAdmissionDetailService.list(new LambdaQueryWrapper<WorkerAdmissionDetail>() List<String> nums = workerAdmissionDetailService.list(new LambdaQueryWrapper<WorkerAdmissionDetail>()
.eq(WorkerAdmissionDetail::getProjectSn, projectSn) .eq(WorkerAdmissionDetail::getProjectSn, projectSn)
.eq(WorkerAdmissionDetail::getIsCertificateQualified, 1)) .eq(WorkerAdmissionDetail::getIsCertificateQualified, 1))
.stream().map(WorkerAdmissionDetail::getNum).collect(Collectors.toList()); .stream().map(WorkerAdmissionDetail::getNum).collect(Collectors.toList());
List<String> existNums = new ArrayList<>(); List<String> existNums = new ArrayList<>();
for (int i = 0; i < numList.size(); i++) { for (int i = 0; i < numList.size(); i++) {
@ -160,7 +161,7 @@ public class WorkerAdmissionController {
.eq(WorkerAdmissionDetail::getIsCertificateQualified, 1) .eq(WorkerAdmissionDetail::getIsCertificateQualified, 1)
.eq(WorkerAdmissionDetail::getProjectSn, projectSn)).stream().map(WorkerAdmissionDetail::getIdCard).collect(Collectors.toList()); .eq(WorkerAdmissionDetail::getProjectSn, projectSn)).stream().map(WorkerAdmissionDetail::getIdCard).collect(Collectors.toList());
List<String> existWorkerIdCards = workerInfoService.list(new LambdaQueryWrapper<WorkerInfo>() List<String> existWorkerIdCards = workerInfoService.list(new LambdaQueryWrapper<WorkerInfo>()
.in(WorkerInfo::getIdCard, ids).eq(WorkerInfo::getProjectSn, projectSn)).stream().map(WorkerInfo::getIdCard).collect(Collectors.toList()); .in(WorkerInfo::getIdCard, ids).eq(WorkerInfo::getProjectSn, projectSn).last(Cts.IGNORE_DATA_SCOPE_CONDITION)).stream().map(WorkerInfo::getIdCard).collect(Collectors.toList());
existDetailIdCards.addAll(existWorkerIdCards); existDetailIdCards.addAll(existWorkerIdCards);
existDetailIdCards = existDetailIdCards.stream().distinct().collect(Collectors.toList()); existDetailIdCards = existDetailIdCards.stream().distinct().collect(Collectors.toList());
if (CollUtil.isNotEmpty(existDetailIdCards)) { if (CollUtil.isNotEmpty(existDetailIdCards)) {
@ -235,6 +236,7 @@ public class WorkerAdmissionController {
} }
List<WorkerAdmissionDetail> details = workerAdmissionDetailService.queryList(new MapBuilder<String, Object>() List<WorkerAdmissionDetail> details = workerAdmissionDetailService.queryList(new MapBuilder<String, Object>()
.put("workerAdmissionIds", StrUtil.join(",", admissions.stream().map(WorkerAdmission::getId).collect(Collectors.toList()))) .put("workerAdmissionIds", StrUtil.join(",", admissions.stream().map(WorkerAdmission::getId).collect(Collectors.toList())))
.put("projectSn", admissions.get(0).getProjectSn())
.put("isCertificateQualified", 1) .put("isCertificateQualified", 1)
.build()); .build());
List<WorkerAdmissionCertificateDetail> certificateDetails = new ArrayList<>(); List<WorkerAdmissionCertificateDetail> certificateDetails = new ArrayList<>();
@ -320,10 +322,12 @@ public class WorkerAdmissionController {
foldFile.mkdirs(); foldFile.mkdirs();
} }
if (CollUtil.isNotEmpty(allList)) { if (CollUtil.isNotEmpty(allList)) {
int i = 1;
for (Map<String, Object> map : allList) { for (Map<String, Object> map : allList) {
TemplateExportParams params = new TemplateExportParams(Fileutils.getExportExcelTemplateFile("excel/导出人员申请表模板.xlsx").getAbsolutePath()); TemplateExportParams params = new TemplateExportParams(Fileutils.getExportExcelTemplateFile("excel/导出人员申请表模板.xlsx").getAbsolutePath());
Workbook workbook = ExcelExportUtil.exportExcel(params, map); Workbook workbook = ExcelExportUtil.exportExcel(params, map);
String fileName = IdUtil.simpleUUID() + ".xlsx"; String fileName = map.get("certificateIssuingUnitName") + "-" + map.get("certificateIssuingPersonName") + "-" + DateUtil.format(DateUtil.parse(map.get("addTime").toString()), "yyyyMMddHHmmss") + "-" + i++;
fileName = Fileutils.checkFileName(fileName) + ".xlsx";
String path = foldFile + "/" + fileName; String path = foldFile + "/" + fileName;
FileOutputStream fos = null; FileOutputStream fos = null;
try { try {
@ -365,7 +369,7 @@ public class WorkerAdmissionController {
@ApiOperation(value = "根据“导出人员申请表”查询身份证号列表", notes = "根据“导出人员申请表”查询身份证号列表", httpMethod = "POST") @ApiOperation(value = "根据“导出人员申请表”查询身份证号列表", notes = "根据“导出人员申请表”查询身份证号列表", httpMethod = "POST")
@PostMapping(value = "/getIdCardsByExcel") @PostMapping(value = "/getIdCardsByExcel")
public Result getIdCardsByExcel(@RequestParam(value = "file") MultipartFile file) throws Exception { public Result getIdCardsByExcel(@RequestParam(value = "file") MultipartFile file, @RequestParam String projectSn) throws Exception {
try { try {
if (file == null) { if (file == null) {
return Result.error("请上传文件"); return Result.error("请上传文件");
@ -403,6 +407,7 @@ public class WorkerAdmissionController {
if (CollUtil.isNotEmpty(idCards)) { if (CollUtil.isNotEmpty(idCards)) {
Set<String> idCardSet = workerAdmissionDetailService.queryPageList(new MapBuilder<String, Object>() Set<String> idCardSet = workerAdmissionDetailService.queryPageList(new MapBuilder<String, Object>()
.put("idCards", StrUtil.join(",", idCards)) .put("idCards", StrUtil.join(",", idCards))
.put("projectSn", projectSn)
.put("isPass", 1) .put("isPass", 1)
.put("isCertificateQualified", 1) .put("isCertificateQualified", 1)
.build()).getRecords().stream().map(WorkerAdmissionDetail::getIdCard).distinct().collect(Collectors.toSet()); .build()).getRecords().stream().map(WorkerAdmissionDetail::getIdCard).distinct().collect(Collectors.toSet());

View File

@ -6,6 +6,13 @@
select * from ( select * from (
select t.* select t.*
from main_project_complete_period t from main_project_complete_period t
where 1=1
<if test="param.search != null and param.search != '' and param.levelType == '1'.toString()">
and concat(t.year,'-',t.month) like CONCAT('%',#{param.search},'%')
</if>
<if test="param.search != null and param.search != '' and param.levelType == '2'.toString()">
and concat(t.year,'-',t.month,'-第',CASE t.which_week WHEN 1 THEN '一周' WHEN 2 THEN '二周' WHEN 3 THEN '三周' ELSE '四周' END) like CONCAT('%',#{param.search},'%')
</if>
)t )t
${ew.customSqlSegment} ${ew.customSqlSegment}
</select> </select>

View File

@ -12,7 +12,7 @@
<select id="queryById" resultType="com.zhgd.xmgl.modules.baotou.entity.SunshineProject"> <select id="queryById" resultType="com.zhgd.xmgl.modules.baotou.entity.SunshineProject">
select * from ( select * from (
select t.* select t.*
from pipeline_welding_record t from sunshine_project t
)t )t
where t.id = #{id} where t.id = #{id}
</select> </select>

View File

@ -1,5 +1,6 @@
package com.zhgd.xmgl.modules.baotou.service.impl; package com.zhgd.xmgl.modules.baotou.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -16,6 +17,7 @@ import org.springframework.stereotype.Service;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* @Description: 主要工程量完成情况时间段 * @Description: 主要工程量完成情况时间段
@ -54,9 +56,22 @@ public class MainProjectCompletePeriodServiceImpl extends ServiceImpl<MainProjec
} }
@Override @Override
public void add(MainProjectCompletePeriod mainProjectCompletePeriod) { public void add(MainProjectCompletePeriod period) {
mainProjectCompletePeriod.setId(null); LambdaQueryWrapper<MainProjectCompletePeriod> wrapper = new LambdaQueryWrapper<MainProjectCompletePeriod>()
baseMapper.insert(mainProjectCompletePeriod); .eq(MainProjectCompletePeriod::getProjectSn, period.getProjectSn())
.eq(MainProjectCompletePeriod::getDeviceUnitId, period.getDeviceUnitId())
.eq(MainProjectCompletePeriod::getLevelType, period.getLevelType())
.eq(MainProjectCompletePeriod::getYear, period.getYear())
.eq(MainProjectCompletePeriod::getMonth, period.getMonth());
if (Objects.equals(period.getLevelType(), 2)) {
wrapper.eq(MainProjectCompletePeriod::getWhichWeek, period.getWhichWeek());
}
List<MainProjectCompletePeriod> periods = mainProjectCompletePeriodMapper.selectList(wrapper);
if (periods.size() > 0) {
throw new OpenAlertException("该数据已存在");
}
period.setId(null);
baseMapper.insert(period);
} }
@Override @Override

View File

@ -129,8 +129,8 @@ public class WorkerAdmissionServiceImpl extends ServiceImpl<WorkerAdmissionMappe
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void addFromFlow(Map<String, Object> map) { public void addFromFlow(Map<String, Object> map) {
String instanceId = FlowUtil.getString(map, "instanceId"); String instanceId = FlowUtil.getString(map, "instanceId");
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(instanceId).singleResult(); // HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(instanceId).singleResult();
Date approvalTime = historicProcessInstance.getEndTime(); // Date approvalTime = historicProcessInstance.getEndTime();
Long certificateIssuingUnit = FlowUtil.getPullDownLong(map, "certificateIssuingUnit"); Long certificateIssuingUnit = FlowUtil.getPullDownLong(map, "certificateIssuingUnit");
Long certificateIssuingUnitSafetyManager = FlowUtil.getPullDownLong(map, "certificateIssuingUnitSafetyManager"); Long certificateIssuingUnitSafetyManager = FlowUtil.getPullDownLong(map, "certificateIssuingUnitSafetyManager");
Long certificateIssuingPerson = FlowUtil.getPullDownLong(map, "certificateIssuingPerson"); Long certificateIssuingPerson = FlowUtil.getPullDownLong(map, "certificateIssuingPerson");
@ -260,7 +260,7 @@ public class WorkerAdmissionServiceImpl extends ServiceImpl<WorkerAdmissionMappe
admission.setProjectTeamHseManager(projectTeamHseManager); admission.setProjectTeamHseManager(projectTeamHseManager);
admission.setTrainingEngineer(trainingEngineer); admission.setTrainingEngineer(trainingEngineer);
admission.setProjectSn(projectSn); admission.setProjectSn(projectSn);
admission.setApprovalTime(approvalTime); admission.setApprovalTime(new Date());
admission.setQualifierNum(successStrs.size()); admission.setQualifierNum(successStrs.size());
admission.setTotalWorkerNum(successStrs.size() + failStrs.size() + existStrs.size()); admission.setTotalWorkerNum(successStrs.size() + failStrs.size() + existStrs.size());
workerAdmissionService.add(admission); workerAdmissionService.add(admission);

View File

@ -16,6 +16,8 @@ import java.util.ArrayList;
import java.util.Comparator; import java.util.Comparator;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Slf4j @Slf4j
@ -104,6 +106,21 @@ public class Fileutils {
} }
/**
* window操作系统文件名不能含有 ? / \ < > * | :
* mac操作系统文件名不能以.开头
* linux和Mac基本一直
*
* @param fileName
* @return
*/
public static String checkFileName(String fileName) {
Pattern pattern = Pattern.compile("[\\s\\\\/:\\*\\?\\\"<>\\|.]");
Matcher matcher = pattern.matcher(fileName);
fileName = matcher.replaceAll(""); // 将匹配到的非法字符以空替换
return fileName;
}
//根据文件修改时间进行比较的内部类 //根据文件修改时间进行比较的内部类
static class CompratorByLastModified implements Comparator<File> { static class CompratorByLastModified implements Comparator<File> {
@Override @Override
@ -119,4 +136,5 @@ public class Fileutils {
} }
} }
} }