From 9c4a85ff5d3adbdbf7e41f9c6d21b7f098f7233a Mon Sep 17 00:00:00 2001 From: "liang.chao" <1360241448@qq.com> Date: Mon, 18 Aug 2025 13:22:27 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=8D=A1=E7=94=B3=E8=AF=B7=E3=80=81?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E3=80=81=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/common/core/constant/Constants.java | 5 ++ .../com/bonus/bmw/config/MyBatisConfig.java | 14 ++-- .../controller/RepairCardApplyController.java | 32 ++++++-- .../bmw/domain/dto/RepairCardApplyDto.java | 17 ++++- .../bmw/domain/dto/RepairCardDetailsDto.java | 17 +++++ .../bonus/bmw/domain/dto/WorkPersonDto.java | 8 ++ .../bmw/mapper/RepairCardApplyMapper.java | 5 +- .../bmw/service/RepairCardApplyService.java | 6 +- .../impl/RepairCardApplyServiceImpl.java | 76 ++++++++++++++++--- .../mapper/bmw/RepairCardApplyMapper.xml | 38 ++++++++-- 10 files changed, 178 insertions(+), 40 deletions(-) create mode 100644 bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/dto/RepairCardDetailsDto.java diff --git a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/Constants.java b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/Constants.java index 2304b16..d460d08 100644 --- a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/Constants.java +++ b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/Constants.java @@ -155,6 +155,11 @@ public class Constants */ public static final String FILE_UPLOAD_WORKER = "pm_worker"; + /** + * 人员入场表 + */ + public static final String FILE_UPLOAD_REPAIR_CARD_APPLY = "bm_repair_card_apply"; + /** * 人员出场表 */ diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/config/MyBatisConfig.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/config/MyBatisConfig.java index ca1fe71..3c9da72 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/config/MyBatisConfig.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/config/MyBatisConfig.java @@ -11,10 +11,10 @@ import org.springframework.context.annotation.Configuration; */ @Configuration public class MyBatisConfig { - @Bean - public ConfigurationCustomizer configurationCustomizer() { - return configuration -> { - configuration.addInterceptor(new DataEnDecryptInterceptor()); - }; - } -} \ No newline at end of file +// @Bean +// public ConfigurationCustomizer configurationCustomizer() { +// return configuration -> { +// configuration.addInterceptor(new DataEnDecryptInterceptor()); +// }; +// } +} diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/RepairCardApplyController.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/RepairCardApplyController.java index a81c31e..400b476 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/RepairCardApplyController.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/RepairCardApplyController.java @@ -1,7 +1,9 @@ package com.bonus.bmw.controller; import com.bonus.bmw.domain.dto.*; +import com.bonus.bmw.domain.po.PmSub; import com.bonus.bmw.service.RepairCardApplyService; +import com.bonus.common.core.utils.json.FastJsonHelper; import com.bonus.common.core.utils.poi.ExcelUtil; import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.domain.AjaxResult; @@ -10,6 +12,7 @@ import com.bonus.common.log.annotation.SysLog; import com.bonus.common.log.enums.OperaType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; @@ -91,9 +94,8 @@ public class RepairCardApplyController extends BaseController { @GetMapping("/getRepairCardDetails") public AjaxResult getRepairCardDetails(RepairCardApplyDto cardApply) { try { - startPage(); - List list = repairCardApplyMapper.getRepairCardDetails(cardApply); - return AjaxResult.success(list); + RepairCardDetailsDto dto = repairCardApplyMapper.getRepairCardDetails(cardApply); + return AjaxResult.success(dto); } catch (Exception e) { logger.error(e.toString(), e); } @@ -122,12 +124,28 @@ public class RepairCardApplyController extends BaseController { /** * 新增补卡申请 * - * @param cardApplyDto + * @param * @return */ - @PostMapping("/saverepairCardApply") - public AjaxResult saverepairCardApply(@RequestBody RepairCardApplyDto cardApplyDto) { - AjaxResult ajaxResult = repairCardApplyMapper.saverepairCardApply(cardApplyDto); + @PostMapping("/saveRepairCardApply") + public AjaxResult saverepairCardApply(@RequestParam(value = "file", required = false) MultipartFile[] files, @RequestParam(value = "fileMsg", required = false) String fileMsg, @RequestParam(value = "params") String params) { + List listFile = FastJsonHelper.jsonArrStrToBeanList(fileMsg, WebFileDto.class); + RepairCardApplyDto cardApplyDto = FastJsonHelper.jsonStrToBean(params, RepairCardApplyDto.class); + AjaxResult ajaxResult = repairCardApplyMapper.saverepairCardApply(cardApplyDto, new FileBasicMsgDto(listFile, files)); + return ajaxResult; + } + + /** + * 修改补卡申请(驳回后重新提交) + * + * @param + * @return + */ + @PostMapping("/updateRepairCardApply") + public AjaxResult updateRepairCardApply(@RequestParam(value = "file", required = false) MultipartFile[] files, @RequestParam(value = "fileMsg", required = false) String fileMsg, @RequestParam(value = "params") String params) { + List listFile = FastJsonHelper.jsonArrStrToBeanList(fileMsg, WebFileDto.class); + RepairCardApplyDto cardApplyDto = FastJsonHelper.jsonStrToBean(params, RepairCardApplyDto.class); + AjaxResult ajaxResult = repairCardApplyMapper.updateRepairCardApply(cardApplyDto, new FileBasicMsgDto(listFile, files)); return ajaxResult; } diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/dto/RepairCardApplyDto.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/dto/RepairCardApplyDto.java index 9b65e18..8cf81d6 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/dto/RepairCardApplyDto.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/dto/RepairCardApplyDto.java @@ -1,7 +1,9 @@ package com.bonus.bmw.domain.dto; import com.bonus.common.core.annotation.Excel; +import com.bonus.system.api.model.UploadFileVo; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; import java.util.List; @@ -25,7 +27,7 @@ public class RepairCardApplyDto { * 工程名称 */ @Excel(name = "工程名称") - private Integer proName; + private String proName; /** * 补卡人员数 @@ -41,7 +43,7 @@ public class RepairCardApplyDto { /** * 驳回意见 */ - private Integer refuseRemark; + private String refuseRemark; /** * 补卡备注 @@ -69,7 +71,7 @@ public class RepairCardApplyDto { * 申请时间 */ @Excel(name = "申请时间") - private Date applyTime; + private String applyTime; /** * 0 待审核 1 审核通过 2 审核不通过 @@ -117,4 +119,13 @@ public class RepairCardApplyDto { private Integer isActive; private List repairCardRecords; + + /** + * 补卡附件 + */ + private List files; + /** + * 删除文件id集合 + */ + private List fileIdList; } diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/dto/RepairCardDetailsDto.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/dto/RepairCardDetailsDto.java new file mode 100644 index 0000000..3d5fdb1 --- /dev/null +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/dto/RepairCardDetailsDto.java @@ -0,0 +1,17 @@ +package com.bonus.bmw.domain.dto; + +import com.bonus.system.api.model.UploadFileVo; +import lombok.Data; + +import java.util.List; + +/** + * @Author:liang.chao + * @Date:2025/8/18 - 10:33 + */ +@Data +public class RepairCardDetailsDto { + private String repairRemark; + private List repairCardDetails; + private List files; +} diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/dto/WorkPersonDto.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/dto/WorkPersonDto.java index 645fdf0..c5ded3c 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/dto/WorkPersonDto.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/dto/WorkPersonDto.java @@ -31,5 +31,13 @@ public class WorkPersonDto { * 身份证 */ private String idNumber; + /** + * 班组id + */ + private String teamId; + /** + * 班组名称 + */ + private String teamName; } diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/RepairCardApplyMapper.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/RepairCardApplyMapper.java index 6b84c3b..7aafa43 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/RepairCardApplyMapper.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/RepairCardApplyMapper.java @@ -41,4 +41,7 @@ public interface RepairCardApplyMapper { List getRepairCardRecordsList(RepairCardApplyDto cardApplyDto); -} \ No newline at end of file + Integer updateRepairCardApply(RepairCardApplyDto cardApplyDto); + + String getRepairCardApply(RepairCardApplyDto cardApply); +} diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/RepairCardApplyService.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/RepairCardApplyService.java index 9f3c896..c16dbb3 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/RepairCardApplyService.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/RepairCardApplyService.java @@ -15,17 +15,19 @@ public interface RepairCardApplyService { List proList(); - List getRepairCardDetails(RepairCardApplyDto cardApply); + RepairCardDetailsDto getRepairCardDetails(RepairCardApplyDto cardApply); Map getCheckRecord(CheckRecordDto checkRecordDto); List workPersonList(RepairCardApplyDto cardApply); - AjaxResult saverepairCardApply(RepairCardApplyDto cardApplyDto); + AjaxResult saverepairCardApply(RepairCardApplyDto cardApplyDto, FileBasicMsgDto fileBasicMsgDto); Integer delRepairCardApply(RepairCardApplyDto cardApplyDto); AjaxResult audit(RepairCardApplyDto cardApplyDto); List getCardStatistics(RepairCardApplyDto cardApply); + + AjaxResult updateRepairCardApply(RepairCardApplyDto cardApplyDto, FileBasicMsgDto fileBasicMsgDto); } diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/RepairCardApplyServiceImpl.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/RepairCardApplyServiceImpl.java index 83dd555..7d47121 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/RepairCardApplyServiceImpl.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/RepairCardApplyServiceImpl.java @@ -3,9 +3,12 @@ package com.bonus.bmw.service.impl; import com.bonus.bmw.domain.dto.*; import com.bonus.bmw.mapper.RepairCardApplyMapper; import com.bonus.bmw.service.RepairCardApplyService; +import com.bonus.common.core.constant.Constants; +import com.bonus.common.core.utils.StringUtils; import com.bonus.common.core.utils.uuid.UUID; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.security.utils.SecurityUtils; +import com.bonus.system.api.model.UploadFileVo; import org.apache.catalina.security.SecurityUtil; import org.springframework.stereotype.Service; @@ -27,6 +30,8 @@ public class RepairCardApplyServiceImpl implements RepairCardApplyService { @Resource private RepairCardApplyMapper repairCardApplyMapper; + @Resource + private FileUploadUtils fileUploadUtils; @Override public List list(RepairCardApplyDto cardApply) { @@ -39,8 +44,15 @@ public class RepairCardApplyServiceImpl implements RepairCardApplyService { } @Override - public List getRepairCardDetails(RepairCardApplyDto cardApply) { - return repairCardApplyMapper.getRepairCardDetails(cardApply); + public RepairCardDetailsDto getRepairCardDetails(RepairCardApplyDto cardApply) { + RepairCardDetailsDto dto = new RepairCardDetailsDto(); + String repairRemark = repairCardApplyMapper.getRepairCardApply(cardApply); + List repairCardDetails = repairCardApplyMapper.getRepairCardDetails(cardApply); + dto.setRepairRemark(repairRemark); + dto.setRepairCardDetails(repairCardDetails); + List fileList = fileUploadUtils.getFileList("", cardApply.getId().toString(), Constants.FILE_UPLOAD_REPAIR_CARD_APPLY, ""); + dto.setFiles(fileList); + return dto; } @Override @@ -72,18 +84,19 @@ public class RepairCardApplyServiceImpl implements RepairCardApplyService { LocalDateTime einTime = record.getEinTime(); LocalDateTime exitTime = record.getExitTime(); - if ((isActive == 0 && exitTime == null) || (isActive == 1 && exitTime == null)) { + // 0 已出场 1已入场 + if ((isActive == 1 && exitTime == null)) { // 入场事件 currentEnter = einTime; teamName = record.getTeamName(); - } else if (isActive == 1 && currentEnter != null && einTime != null && exitTime != null) { + } else if (isActive == 0 && einTime != null && exitTime != null) { // 出场事件,且前面有未匹配的入场 // 使用出场记录中的 exit_time,或 fallback 到 ein_time(如果 exit_time 为空) - LocalDateTime actualExit = exitTime != null ? exitTime : einTime; - timeRanges.add(new CheckRecordDto(currentEnter, actualExit, record.getTeamName())); - currentEnter = null; // 匹配完成,清空 + timeRanges.add(new CheckRecordDto(einTime, exitTime, record.getTeamName())); + // 匹配完成,清空 + currentEnter = null; } - // 注意:如果 is_active=0 但前面没有入场,可选择忽略或报错 + // 注意:如果 is_active=1 但前面没有入场,可选择忽略或报错 } // 如果最后还有未出场的,可根据业务决定是否闭合(比如用当前时间) @@ -119,11 +132,11 @@ public class RepairCardApplyServiceImpl implements RepairCardApplyService { if (attPersonRecord.contains(entry.getKey())) { CheckRecordDto value = entry.getValue(); // 已打卡 - value.setIsActive(0); + value.setIsActive(1); } else { // 未打卡 CheckRecordDto value = entry.getValue(); - value.setIsActive(1); + value.setIsActive(0); } } return result; @@ -135,17 +148,55 @@ public class RepairCardApplyServiceImpl implements RepairCardApplyService { } @Override - public AjaxResult saverepairCardApply(RepairCardApplyDto cardApplyDto) { - cardApplyDto.setApplyUser(SecurityUtils.getUsername()); + public AjaxResult saverepairCardApply(RepairCardApplyDto cardApplyDto, FileBasicMsgDto fileBasicMsgDto) { + cardApplyDto.setApplyUser(SecurityUtils.getLoginUser().getUsername()); Integer num = repairCardApplyMapper.saverepairCardApply(cardApplyDto); if (num > 0) { repairCardApplyMapper.saverepairCardDetails(cardApplyDto.getId(), cardApplyDto.getRepairCardRecords()); + //添加到文件库和minio上 + if (StringUtils.isNotNull(fileBasicMsgDto.getFiles())) { + //存文件 + List fileMsg = fileBasicMsgDto.getFileMsg(); + String[] type = new String[fileMsg.size()]; + for (int i = 0; i < fileMsg.size(); i++) { + type[i] = fileMsg.get(i).getType(); + } + List uploadFileVos = fileUploadUtils.uploadFile(fileBasicMsgDto.getFiles(), Constants.FILE_UPLOAD_REPAIR_CARD_APPLY, cardApplyDto.getId().toString(), type, "", ""); + } return AjaxResult.success("保存成功"); } else { return AjaxResult.error("保存失败"); } } + @Override + public AjaxResult updateRepairCardApply(RepairCardApplyDto cardApplyDto, FileBasicMsgDto fileBasicMsgDto) { + cardApplyDto.setApplyUser(SecurityUtils.getUsername()); + Integer num = repairCardApplyMapper.updateRepairCardApply(cardApplyDto); + if (num > 0) { + repairCardApplyMapper.delRepairCardRecord(cardApplyDto); + repairCardApplyMapper.saverepairCardDetails(cardApplyDto.getId(), cardApplyDto.getRepairCardRecords()); + //添加到文件库和minio上 + if (StringUtils.isNotNull(cardApplyDto.getFileIdList())) { + //判断是否修改图片信息 + for (String fileId : cardApplyDto.getFileIdList()) { + //删除合同图片 删除minio文件 + fileUploadUtils.delFileListById(fileId, cardApplyDto.getId().toString(), Constants.FILE_UPLOAD_REPAIR_CARD_APPLY, ""); + } + //存文件 + List fileMsg = fileBasicMsgDto.getFileMsg(); + String[] type = new String[fileMsg.size()]; + for (int i = 0; i < fileMsg.size(); i++) { + type[i] = fileMsg.get(i).getType(); + } + List uploadFileVos = fileUploadUtils.uploadFile(fileBasicMsgDto.getFiles(), Constants.FILE_UPLOAD_REPAIR_CARD_APPLY, cardApplyDto.getId().toString(), type, "", ""); + } + return AjaxResult.success("提交成功"); + } else { + return AjaxResult.error("提交失败"); + } + } + @Override public Integer delRepairCardApply(RepairCardApplyDto cardApplyDto) { Integer i = repairCardApplyMapper.delRepairCardApply(cardApplyDto); @@ -158,6 +209,7 @@ public class RepairCardApplyServiceImpl implements RepairCardApplyService { @Override public AjaxResult audit(RepairCardApplyDto cardApplyDto) { try { + cardApplyDto.setCheckUser(SecurityUtils.getLoginUser().getUsername()); repairCardApplyMapper.updaterepairCardApply(cardApplyDto); if (cardApplyDto.getCheckStatus() == 1) { // 通过 diff --git a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/RepairCardApplyMapper.xml b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/RepairCardApplyMapper.xml index 4c290fb..57f9299 100644 --- a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/RepairCardApplyMapper.xml +++ b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/RepairCardApplyMapper.xml @@ -157,10 +157,30 @@ check_status = #{checkStatus,jdbcType=INTEGER}, refuse_remark = #{refuseRemark,jdbcType=VARCHAR}, - check_time = sysdate() + check_user = #{checkUser,jdbcType=VARCHAR}, + check_time = sysdate(), where id = #{id} + + UPDATE bm_repair_card_apply + + pro_id = #{proId,jdbcType=INTEGER}, + repair_num = #{repairNum,jdbcType=INTEGER}, + repair_day = #{repairDay,jdbcType=INTEGER}, + repair_remark = #{repairRemark,jdbcType=VARCHAR}, + repair_file = #{repairFile,jdbcType=VARCHAR}, + repair_month = #{repairMonth,jdbcType=VARCHAR}, + apply_user = #{applyUser,jdbcType=VARCHAR}, + check_user = #{checkUser,jdbcType=VARCHAR}, + check_time = #{checkTime,jdbcType=TIMESTAMP}, + create_user = #{createUser,jdbcType=VARCHAR}, + update_user = #{updateUser,jdbcType=VARCHAR}, + check_status = 0, + apply_time = SYSDATE() + + WHERE id = #{id,jdbcType=INTEGER} + delete from bm_repair_card_apply where id = #{id} @@ -170,6 +190,8 @@ select pp.pro_name as proName, pt.team_name as team_name, - brca.repair_remark as repairRemark, - brca.repair_file as repairFile, brcr.apply_id as applyId, brcr.worker_id as workerId, brcr.id_number as idNumber, @@ -214,11 +234,10 @@ brcr.repair_day as repairDay, brcr.repair_date as repairDate, brcr.create_time as createTime - from bm_repair_card_apply brca - left join bm_repair_card_record brcr on brca.id = brcr.apply_id + from bm_repair_card_record brcr left join pm_project pp on pp.id = brcr.pro_id left join pm_sub_team pt on pt.id = brcr.team_id - where brcr.is_active = 1 and brca.pro_id = #{proId} + where brcr.is_active = 1 and brcr.apply_id = #{id} - \ No newline at end of file + +