fix:修复添加设备及模具维修单验收状态

main
HuangHuiKang 18 hours ago
parent 0aba396924
commit 25f611074d

@ -12,9 +12,10 @@ import lombok.Getter;
@AllArgsConstructor
public enum MoldRecordStatusEnum {
PENDING(0, "待完成"),
COMPLETED(1, "已完成"),
REJECTED(2, "已驳回");
PENDING(0, "待处理"),
COMPLETED(1, "验收通过"),
REJECTED(2, "已驳回"),
PENDING_ACCEPTANCE(3, "待验收");
@JsonValue
private final Integer code;

@ -0,0 +1,61 @@
package cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 模具维修验收历史 Response VO")
@Data
public class MoldRepairAcceptanceHistoryRespVO {
@Schema(description = "ID", example = "1024")
private Long id;
@Schema(description = "维修单 ID", example = "27809")
private Long repairId;
@Schema(description = "维修结果")
private String repairResult;
@Schema(description = "完成日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime finishDate;
@Schema(description = "验收日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime confirmDate;
@Schema(description = "验收人员")
private String confirmBy;
@Schema(description = "单据状态 1-验收通过 2-已驳回", example = "1")
private Integer status;
@Schema(description = "驳回原因")
private String rejectReason;
@Schema(description = "停机时长")
private String shutdownDuration;
@Schema(description = "故障原因")
private String faultReason;
@Schema(description = "处理措施")
private String treatmentMeasures;
@Schema(description = "更换配件")
private String replacementParts;
@Schema(description = "维修总结 / 维修内容")
private String repairSummary;
@Schema(description = "附件 / 维修后图片,多个逗号分隔")
private String repairedImages;
@Schema(description = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
}

@ -0,0 +1,27 @@
package cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Schema(description = "管理后台 - 模具维修验收 Request VO")
@Data
public class MoldRepairAcceptanceReqVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27809")
@NotNull(message = "维修单 ID 不能为空")
private Long id;
@Schema(description = "验收人员", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "验收人员不能为空")
private String confirmBy;
@Schema(description = "单据状态 1-验收通过 2-已驳回", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "单据状态不能为空")
private Integer status;
@Schema(description = "驳回原因")
private String rejectReason;
}

@ -65,7 +65,7 @@ public class MoldRepairPageReqVO extends PageParam {
@Schema(description = "验收人员")
private String confirmBy;
@Schema(description = "单据状态0-待完成 1-已完成", example = "1")
@Schema(description = "单据状态 0-待处理 1-验收通过 2-已驳回 3-待验收", example = "1")
private Integer status;
@Schema(description = "备注")

@ -18,15 +18,18 @@ public class MoldRepairPageRespVO {
@Schema(description = "全部数量")
private Long allCount;
@Schema(description = "待完成数量 (status=0)")
@Schema(description = "待处理数量 (status=0)")
private Long pendingCount;
@Schema(description = "已完成数量 (status=1)")
@Schema(description = "验收通过数量 (status=1)")
private Long finishedCount;
@Schema(description = "已驳回数量 (status=2)")
private Long rejectedCount;
@Schema(description = "待验收数量(status=3)")
private Long pendingAcceptanceCount;
@Schema(description = "待维修数量 (repairStatus=0)")
private Long pendingRepairCount;

@ -9,6 +9,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
@Schema(description = "管理后台 - 模具维修记录 Response VO")
@Data
@ -87,12 +88,12 @@ public class MoldRepairRespVO {
private String confirmBy;
@Schema(description = "单据状态", example = "1")
// @ExcelProperty(value = "单据状态 0-待完成 1-已完成")
// @ExcelProperty(value = "单据状态 0-待处理 1-验收通过 2-已驳回 3-待验收")
// @DictFormat("mes_mold_record_status") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
private Integer status;
@Schema(description = "单据状态", example = "1")
@ExcelProperty(value = "单据状态 0-待完成 1-已完成")
@ExcelProperty(value = "单据状态 0-待处理 1-验收通过 2-已驳回 3-待验收")
@DictFormat("mes_mold_record_status") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
private String statusName;
@ -175,5 +176,7 @@ public class MoldRepairRespVO {
@ExcelProperty("维修后图片")
private String repairedImages;
@Schema(description = "验收历史记录")
private List<MoldRepairAcceptanceHistoryRespVO> acceptanceHistoryList;
}

@ -42,6 +42,9 @@ public class MoldRepairUpdateReqVO {
@Schema(description = "备注")
private String remark;
@Schema(description = "单据状态 0-待处理 1-验收通过 2-已驳回 3-待验收")
private Integer status;
@Schema(description = "子列表")
@NotNull(message = "子列表不能为空")
private List<MoldRepairLineSaveReqVO> updateReqVOList;

@ -0,0 +1,80 @@
package cn.iocoder.yudao.module.common.dal.dataobject.moldrepair;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import java.time.LocalDateTime;
/**
* DO
*/
@TableName("mes_mold_repair_acceptance_history")
@KeySequence("mes_mold_repair_acceptance_history_seq")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class MoldRepairAcceptanceHistoryDO extends BaseDO {
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/**
* ID
*/
private Long repairId;
/**
*
*/
private String repairResult;
/**
*
*/
private LocalDateTime finishDate;
/**
*
*/
private LocalDateTime confirmDate;
/**
*
*/
private String confirmBy;
/**
* 1- 2-
*/
private Integer status;
/**
*
*/
private String rejectReason;
/**
*
*/
private String shutdownDuration;
/**
*
*/
private String faultReason;
/**
*
*/
private String treatmentMeasures;
/**
*
*/
private String replacementParts;
/**
* /
*/
private String repairSummary;
/**
* /
*/
private String repairedImages;
}

@ -0,0 +1,22 @@
package cn.iocoder.yudao.module.common.dal.mysql.moldrepair;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.common.dal.dataobject.moldrepair.MoldRepairAcceptanceHistoryDO;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface MoldRepairAcceptanceHistoryMapper extends BaseMapperX<MoldRepairAcceptanceHistoryDO> {
default List<MoldRepairAcceptanceHistoryDO> selectListByRepairId(Long repairId) {
return selectList(new LambdaQueryWrapperX<MoldRepairAcceptanceHistoryDO>()
.eq(MoldRepairAcceptanceHistoryDO::getRepairId, repairId)
.orderByDesc(MoldRepairAcceptanceHistoryDO::getCreateTime)
.orderByDesc(MoldRepairAcceptanceHistoryDO::getId));
}
}

@ -125,6 +125,7 @@ public interface ErrorCodeConstants {
ErrorCode DV_REPAIR_CODE_EXISTS = new ErrorCode(5_0087, "设备维修记录编码已存在");
ErrorCode DV_REPAIR_LINE_NOT_EXISTS = new ErrorCode(5_0088, "设备维修子表记录不存在");
ErrorCode DV_REPAIR_LINE_ID_NOT_EXISTS = new ErrorCode(5_0088, "设备维修子表记录Id为空");
ErrorCode REPAIR_ACCEPTANCE_STATUS_INVALID = new ErrorCode(5_0096, "验收状态只能为验收通过或已驳回");
//====================================== 检验记录相关 5_0090=================================================

@ -87,6 +87,7 @@ public class DvRepairController {
public CommonResult<DvRepairRespVO> getDvRepair(@RequestParam("id") Long id) {
DvRepairDO dvRepair = dvRepairService.getDvRepair(id);
DvRepairRespVO respVO = BeanUtils.toBean(dvRepair, DvRepairRespVO.class);
respVO.setAcceptanceHistoryList(dvRepairService.getAcceptanceHistoryList(id));
fillAcceptedBy(respVO);
return success(respVO);
}
@ -181,6 +182,13 @@ public class DvRepairController {
return success(true);
}
@PutMapping("/acceptance")
@Operation(summary = "验收设备维修记录")
public CommonResult<Boolean> acceptDvRepair(@Valid @RequestBody DvRepairAcceptanceReqVO acceptanceReqVO) {
dvRepairService.acceptDvRepair(acceptanceReqVO);
return success(true);
}
@PutMapping("/reject")
@Operation(summary = "驳回设备维修记录")
@PreAuthorize("@ss.hasPermission('mes:dv-repair:update')")

@ -12,9 +12,10 @@ import lombok.Getter;
@AllArgsConstructor
public enum MoldRecordStatusEnum {
PENDING(0, "待完成"),
COMPLETED(1, "已完成"),
REJECTED(2, "已驳回");
PENDING(0, "待处理"),
COMPLETED(1, "验收通过"),
REJECTED(2, "已驳回"),
PENDING_ACCEPTANCE(3, "待验收");
@JsonValue
private final Integer code;

@ -10,14 +10,15 @@ import java.util.stream.Collectors;
/**
*
* 0- 1-
* 0- 1- 2- 3-
*/
@Getter
public enum RepairStatusEnum {
PENDING(0, "待完成"),
COMPLETED(1, "已完成"),
REJECTED(2, "已驳回");
PENDING(0, "待处理"),
COMPLETED(1, "验收通过"),
REJECTED(2, "已驳回"),
PENDING_ACCEPTANCE(3, "待验收");
private final Integer code;
private final String description;

@ -0,0 +1,61 @@
package cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 设备维修验收历史 Response VO")
@Data
public class DvRepairAcceptanceHistoryRespVO {
@Schema(description = "ID", example = "1024")
private Long id;
@Schema(description = "维修单 ID", example = "27809")
private Long repairId;
@Schema(description = "维修结果")
private String repairResult;
@Schema(description = "完成日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime finishDate;
@Schema(description = "验收日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime confirmDate;
@Schema(description = "验收人员")
private String confirmBy;
@Schema(description = "单据状态 1-验收通过 2-已驳回", example = "1")
private Integer status;
@Schema(description = "驳回原因")
private String rejectReason;
@Schema(description = "停机时长")
private String downtimeDuration;
@Schema(description = "故障原因")
private String faultReason;
@Schema(description = "处理措施")
private String handlingMeasures;
@Schema(description = "更换配件")
private String replacementParts;
@Schema(description = "维修总结 / 维修内容")
private String repairContent;
@Schema(description = "附件 / 维修后图片,多个用逗号分隔")
private String repairedImages;
@Schema(description = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
}

@ -0,0 +1,27 @@
package cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Schema(description = "管理后台 - 设备维修验收 Request VO")
@Data
public class DvRepairAcceptanceReqVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27809")
@NotNull(message = "维修单 ID 不能为空")
private Long id;
@Schema(description = "验收人员", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "验收人员不能为空")
private String confirmBy;
@Schema(description = "单据状态 1-验收通过 2-已驳回", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "单据状态不能为空")
private Integer status;
@Schema(description = "驳回原因")
private String rejectReason;
}

@ -72,7 +72,7 @@ public class DvRepairPageReqVO extends PageParam {
@Schema(description = "验收人员")
private String confirmBy;
@Schema(description = "单据状态0-待完成 1-已完成", example = "1")
@Schema(description = "单据状态 0-待处理 1-验收通过 2-已驳回 3-待验收", example = "1")
private Integer status;
@Schema(description = "维修状态 0-待完成 1-通过 2-不通过", example = "1")

@ -18,15 +18,18 @@ public class DvRepairPageRespVO {
@Schema(description = "全部数量")
private Long allCount;
@Schema(description = "待完成数量 (status=0)")
@Schema(description = "待处理数量 (status=0)")
private Long pendingCount;
@Schema(description = "已完成数量 (status=1)")
@Schema(description = "验收通过数量 (status=1)")
private Long finishedCount;
@Schema(description = "已驳回数量 (status=2)")
private Long rejectedCount;
@Schema(description = "待验收数量(status=3)")
private Long pendingAcceptanceCount;
@Schema(description = "待维修数量 (repairStatus=0)")
private Long pendingRepairCount;

@ -142,7 +142,7 @@ public class DvRepairRespVO {
@ExcelProperty("验收人员")
private String confirmBy;
@Schema(description = "单据状态 0-待完成 1-已完成", example = "1")
@Schema(description = "单据状态 0-待处理 1-验收通过 2-已驳回 3-待验收", example = "1")
private Integer status;
@Schema(description = "单据状态", example = "1")
@ -185,4 +185,7 @@ public class DvRepairRespVO {
@Schema(description = "维修状态")
@ExcelProperty("维修状态")
private String repairStatusName;
@Schema(description = "验收历史记录")
private List<DvRepairAcceptanceHistoryRespVO> acceptanceHistoryList;
}

@ -77,6 +77,9 @@ public class DvRepirUpdateReqVO {
@Schema(description = "维修结果 0-待维修 1-通过 2-不通过")
private Integer repairStatus;
@Schema(description = "单据状态 0-待处理 1-验收通过 2-已驳回 3-待验收")
private Integer status;
@Schema(description = "子列表")
@NotNull(message = "子列表不能为空")
private List<DvRepairLineSaveReqVO> updateReqVOList;

@ -85,7 +85,9 @@ public class MoldRepairController {
// @PreAuthorize("@ss.hasPermission('mes:mold-repair:query')")
public CommonResult<MoldRepairRespVO> getMoldRepair(@RequestParam("id") Long id) {
MoldRepairDO moldRepair = moldRepairService.getMoldRepair(id);
return success(BeanUtils.toBean(moldRepair, MoldRepairRespVO.class));
MoldRepairRespVO respVO = BeanUtils.toBean(moldRepair, MoldRepairRespVO.class);
respVO.setAcceptanceHistoryList(moldRepairService.getAcceptanceHistoryList(id));
return success(respVO);
}
@GetMapping("/page")
@ -172,6 +174,13 @@ public class MoldRepairController {
return success(true);
}
@PutMapping("/acceptance")
@Operation(summary = "验收模具维修记录")
public CommonResult<Boolean> acceptMoldRepair(@Valid @RequestBody MoldRepairAcceptanceReqVO acceptanceReqVO) {
moldRepairService.acceptMoldRepair(acceptanceReqVO);
return success(true);
}
@PutMapping("/reject")
@Operation(summary = "驳回模具维修记录")
@PreAuthorize("@ss.hasPermission('mes:mold-repair:update')")

@ -0,0 +1,81 @@
package cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import java.time.LocalDateTime;
/**
* DO
*/
@TableName("mes_dv_repair_acceptance_history")
@KeySequence("mes_dv_repair_acceptance_history_seq")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class DvRepairAcceptanceHistoryDO extends BaseDO {
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/**
* ID
*/
private Long repairId;
/**
*
*/
private String repairResult;
/**
*
*/
private LocalDateTime finishDate;
/**
*
*/
private LocalDateTime confirmDate;
/**
*
*/
private String confirmBy;
/**
* 1- 2-
*/
private Integer status;
/**
*
*/
private String rejectReason;
/**
*
*/
private String downtimeDuration;
/**
*
*/
private String faultReason;
/**
*
*/
private String handlingMeasures;
/**
*
*/
private String replacementParts;
/**
* /
*/
private String repairContent;
/**
* /
*/
private String repairedImages;
}

@ -0,0 +1,20 @@
package cn.iocoder.yudao.module.mes.dal.mysql.dvrepair;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairAcceptanceHistoryDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface DvRepairAcceptanceHistoryMapper extends BaseMapperX<DvRepairAcceptanceHistoryDO> {
default List<DvRepairAcceptanceHistoryDO> selectListByRepairId(Long repairId) {
return selectList(new LambdaQueryWrapperX<DvRepairAcceptanceHistoryDO>()
.eq(DvRepairAcceptanceHistoryDO::getRepairId, repairId)
.orderByDesc(DvRepairAcceptanceHistoryDO::getCreateTime)
.orderByDesc(DvRepairAcceptanceHistoryDO::getId));
}
}

@ -76,6 +76,10 @@ public interface DvRepairService {
void updateDvRepairStatus(@Valid DvRepirUpdateReqVO updateReqVO);
void acceptDvRepair(@Valid DvRepairAcceptanceReqVO acceptanceReqVO);
List<DvRepairAcceptanceHistoryRespVO> getAcceptanceHistoryList(Long repairId);
void rejectDvRepair(@Valid DvRepairRejectReqVO rejectReqVO);
List<DvRepairDO> getRepairListByDeviceId(Long deviceId, String code, String startTime, String endTime, String ids);

@ -12,9 +12,11 @@ import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.enums.RepairStatusE
import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo.*;
import cn.iocoder.yudao.module.mes.controller.admin.ticketresults.enums.JobResultEnum;
import cn.iocoder.yudao.module.mes.dal.dataobject.deviceledger.DeviceLedgerDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairAcceptanceHistoryDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairLineDO;
import cn.iocoder.yudao.module.mes.dal.mysql.deviceledger.DeviceLedgerMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.dvrepair.DvRepairAcceptanceHistoryMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.dvrepair.DvRepairLineMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.dvrepair.DvRepairMapper;
import cn.iocoder.yudao.module.mes.service.notify.MesNotifyMessageService;
@ -56,6 +58,8 @@ public class DvRepairServiceImpl implements DvRepairService {
@Resource
private DvRepairLineMapper dvRepairLineMapper;
@Resource
private DvRepairAcceptanceHistoryMapper dvRepairAcceptanceHistoryMapper;
@Resource
private MesNotifyMessageService mesNotifyMessageService;
@ -230,6 +234,7 @@ public class DvRepairServiceImpl implements DvRepairService {
respVO.setPendingCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 0).count());
respVO.setFinishedCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 1).count());
respVO.setRejectedCount(allList.stream().filter(item -> RepairStatusEnum.REJECTED.getCode().equals(item.getStatus())).count());
respVO.setPendingAcceptanceCount(allList.stream().filter(item -> RepairStatusEnum.PENDING_ACCEPTANCE.getCode().equals(item.getStatus())).count());
respVO.setPendingRepairCount(allList.stream().filter(item -> item.getRepairStatus() != null && item.getRepairStatus() == 0).count());
respVO.setPassedCount(allList.stream().filter(item -> item.getRepairStatus() != null && item.getRepairStatus() == 1).count());
respVO.setFailedCount(allList.stream().filter(item -> item.getRepairStatus() != null && item.getRepairStatus() == 2).count());
@ -349,13 +354,33 @@ public class DvRepairServiceImpl implements DvRepairService {
dvRepairDO.setAcceptedBy(updateReqVO.getAcceptedBy());
dvRepairDO.setRemark(updateReqVO.getRemark());
dvRepairDO.setRepairStatus(updateReqVO.getRepairStatus());
dvRepairDO.setStatus(RepairStatusEnum.COMPLETED.getCode());
dvRepairDO.setStatus(updateReqVO.getStatus() != null ? updateReqVO.getStatus() : RepairStatusEnum.PENDING_ACCEPTANCE.getCode());
dvRepairMapper.updateById(dvRepairDO);
// batchUpdateTicketResults(updateReqVO.getUpdateReqVOList());
}
@Override
@Transactional(rollbackFor = Exception.class)
public void acceptDvRepair(DvRepairAcceptanceReqVO acceptanceReqVO) {
validateAcceptanceStatus(acceptanceReqVO.getStatus());
DvRepairDO dvRepairDO = dvRepairMapper.selectById(acceptanceReqVO.getId());
if (dvRepairDO == null) {
throw exception(DV_REPAIR_NOT_EXISTS);
}
applyAcceptance(dvRepairDO, acceptanceReqVO);
dvRepairMapper.updateById(dvRepairDO);
createAcceptanceHistory(dvRepairDO);
}
@Override
public List<DvRepairAcceptanceHistoryRespVO> getAcceptanceHistoryList(Long repairId) {
return BeanUtils.toBean(dvRepairAcceptanceHistoryMapper.selectListByRepairId(repairId),
DvRepairAcceptanceHistoryRespVO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void rejectDvRepair(DvRepairRejectReqVO rejectReqVO) {
DvRepairDO dvRepairDO = dvRepairMapper.selectById(rejectReqVO.getId());
if (dvRepairDO == null) {
@ -369,6 +394,49 @@ public class DvRepairServiceImpl implements DvRepairService {
dvRepairDO.setRejectBy(String.valueOf(loginUserId));
}
dvRepairMapper.updateById(dvRepairDO);
createAcceptanceHistory(dvRepairDO);
}
private void validateAcceptanceStatus(Integer status) {
if (!RepairStatusEnum.COMPLETED.getCode().equals(status)
&& !RepairStatusEnum.REJECTED.getCode().equals(status)) {
throw exception(REPAIR_ACCEPTANCE_STATUS_INVALID);
}
}
private void applyAcceptance(DvRepairDO dvRepairDO, DvRepairAcceptanceReqVO acceptanceReqVO) {
dvRepairDO.setConfirmBy(acceptanceReqVO.getConfirmBy());
dvRepairDO.setStatus(acceptanceReqVO.getStatus());
dvRepairDO.setRejectReason(acceptanceReqVO.getRejectReason());
if (RepairStatusEnum.REJECTED.getCode().equals(acceptanceReqVO.getStatus())) {
dvRepairDO.setRejectTime(LocalDateTime.now());
Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
if (loginUserId != null) {
dvRepairDO.setRejectBy(String.valueOf(loginUserId));
}
} else {
dvRepairDO.setRejectTime(null);
dvRepairDO.setRejectBy(null);
}
dvRepairDO.setConfirmDate(LocalDateTime.now());
}
private void createAcceptanceHistory(DvRepairDO dvRepairDO) {
DvRepairAcceptanceHistoryDO historyDO = new DvRepairAcceptanceHistoryDO();
historyDO.setRepairId(dvRepairDO.getId());
historyDO.setRepairResult(dvRepairDO.getRepairResult());
historyDO.setFinishDate(dvRepairDO.getFinishDate());
historyDO.setConfirmDate(dvRepairDO.getConfirmDate());
historyDO.setConfirmBy(dvRepairDO.getConfirmBy());
historyDO.setStatus(dvRepairDO.getStatus());
historyDO.setRejectReason(dvRepairDO.getRejectReason());
historyDO.setDowntimeDuration(dvRepairDO.getDowntimeDuration());
historyDO.setFaultReason(dvRepairDO.getFaultReason());
historyDO.setHandlingMeasures(dvRepairDO.getHandlingMeasures());
historyDO.setReplacementParts(dvRepairDO.getReplacementParts());
historyDO.setRepairContent(dvRepairDO.getRepairContent());
historyDO.setRepairedImages(dvRepairDO.getRepairedImages());
dvRepairAcceptanceHistoryMapper.insert(historyDO);
}
@Override
@ -552,8 +620,8 @@ public class DvRepairServiceImpl implements DvRepairService {
if (dvRepairDO == null ){
throw exception(DV_REPAIR_NOT_EXISTS);
}
//设置为已完成
dvRepairDO.setStatus(JobResultEnum.PASS.getCode());
// 设置为待验收
dvRepairDO.setStatus(RepairStatusEnum.PENDING_ACCEPTANCE.getCode());
// 检查是否有不通过的
boolean hasFail = updateReqVOList.stream()
.anyMatch(vo -> vo.getResult() != null && vo.getResult().equals(JobResultEnum.FAIL.getCode()));

@ -76,6 +76,10 @@ public interface MoldRepairService {
void updateMoldRepairStatus(@Valid MoldRepairUpdateReqVO updateReqVO);
void acceptMoldRepair(@Valid MoldRepairAcceptanceReqVO acceptanceReqVO);
List<MoldRepairAcceptanceHistoryRespVO> getAcceptanceHistoryList(Long repairId);
void rejectMoldRepair(@Valid MoldRepairRejectReqVO rejectReqVO);
List<MoldRepairLineRespVO> getRepairListByMoldId(Long moldId, String code, String startTime, String endTime, String ids);

@ -20,9 +20,13 @@ import cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo.MoldRepairP
import cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo.MoldRepairSaveReqVO;
import cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo.MoldRepairRespVO;
import cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo.MoldRepairPageRespVO;
import cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo.MoldRepairAcceptanceReqVO;
import cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo.MoldRepairAcceptanceHistoryRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.ticketresults.enums.JobResultEnum;
import cn.iocoder.yudao.module.common.dal.dataobject.moldrepair.MoldRepairAcceptanceHistoryDO;
import cn.iocoder.yudao.module.common.dal.dataobject.moldrepair.MoldRepairDO;
import cn.iocoder.yudao.module.common.dal.dataobject.moldrepair.MoldRepairLineDO;
import cn.iocoder.yudao.module.common.dal.mysql.moldrepair.MoldRepairAcceptanceHistoryMapper;
import cn.iocoder.yudao.module.common.dal.mysql.moldrepair.MoldRepairLineMapper;
import cn.iocoder.yudao.module.common.dal.mysql.moldrepair.MoldRepairMapper;
import cn.iocoder.yudao.module.common.dal.mysql.mold.MoldMapper;
@ -71,6 +75,8 @@ public class MoldRepairServiceImpl implements MoldRepairService {
@Resource
private MoldRepairLineMapper moldRepairLineMapper;
@Resource
private MoldRepairAcceptanceHistoryMapper moldRepairAcceptanceHistoryMapper;
@Resource
private MoldBrandMapper moldBrandMapper;
@Resource
private AutoCodeUtil autoCodeUtil;
@ -199,6 +205,7 @@ public class MoldRepairServiceImpl implements MoldRepairService {
respVO.setPendingCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 0).count());
respVO.setFinishedCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 1).count());
respVO.setRejectedCount(allList.stream().filter(item -> MoldRecordStatusEnum.REJECTED.getCode().equals(item.getStatus())).count());
respVO.setPendingAcceptanceCount(allList.stream().filter(item -> MoldRecordStatusEnum.PENDING_ACCEPTANCE.getCode().equals(item.getStatus())).count());
respVO.setPendingRepairCount(allList.stream().filter(item -> item.getRepairStatus() != null && item.getRepairStatus() == 0).count());
respVO.setPassedCount(allList.stream().filter(item -> item.getRepairStatus() != null && item.getRepairStatus() == 1).count());
respVO.setFailedCount(allList.stream().filter(item -> item.getRepairStatus() != null && item.getRepairStatus() == 2).count());
@ -313,6 +320,7 @@ public class MoldRepairServiceImpl implements MoldRepairService {
moldRepairDO.setFinishDate(updateReqVO.getFinishDate());
moldRepairDO.setConfirmDate(updateReqVO.getConfirmDate());
moldRepairDO.setRepairResult(updateReqVO.getRepairResult());
moldRepairDO.setStatus(updateReqVO.getStatus() != null ? updateReqVO.getStatus() : MoldRecordStatusEnum.PENDING_ACCEPTANCE.getCode());
moldRepairMapper.updateById(moldRepairDO);
updateMoldBrandStatusByRepairResult(moldRepairDO.getMoldId(), updateReqVO.getRepairResult());
batchUpdateTicketResults(updateReqVO.getUpdateReqVOList());
@ -320,6 +328,27 @@ public class MoldRepairServiceImpl implements MoldRepairService {
}
@Override
@Transactional(rollbackFor = Exception.class)
public void acceptMoldRepair(MoldRepairAcceptanceReqVO acceptanceReqVO) {
validateAcceptanceStatus(acceptanceReqVO.getStatus());
MoldRepairDO moldRepairDO = moldRepairMapper.selectById(acceptanceReqVO.getId());
if (moldRepairDO == null) {
throw exception(MOLD_REPAIR_NOT_EXISTS);
}
applyAcceptance(moldRepairDO, acceptanceReqVO);
moldRepairMapper.updateById(moldRepairDO);
createAcceptanceHistory(moldRepairDO);
updateMoldBrandStatusByRepairResult(moldRepairDO.getMoldId(), moldRepairDO.getRepairResult());
}
@Override
public List<MoldRepairAcceptanceHistoryRespVO> getAcceptanceHistoryList(Long repairId) {
return BeanUtils.toBean(moldRepairAcceptanceHistoryMapper.selectListByRepairId(repairId),
MoldRepairAcceptanceHistoryRespVO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void rejectMoldRepair(MoldRepairRejectReqVO rejectReqVO) {
MoldRepairDO moldRepairDO = moldRepairMapper.selectById(rejectReqVO.getId());
if (moldRepairDO == null) {
@ -333,6 +362,49 @@ public class MoldRepairServiceImpl implements MoldRepairService {
moldRepairDO.setRejectBy(String.valueOf(loginUserId));
}
moldRepairMapper.updateById(moldRepairDO);
createAcceptanceHistory(moldRepairDO);
}
private void validateAcceptanceStatus(Integer status) {
if (!MoldRecordStatusEnum.COMPLETED.getCode().equals(status)
&& !MoldRecordStatusEnum.REJECTED.getCode().equals(status)) {
throw exception(REPAIR_ACCEPTANCE_STATUS_INVALID);
}
}
private void applyAcceptance(MoldRepairDO moldRepairDO, MoldRepairAcceptanceReqVO acceptanceReqVO) {
moldRepairDO.setConfirmBy(acceptanceReqVO.getConfirmBy());
moldRepairDO.setStatus(acceptanceReqVO.getStatus());
moldRepairDO.setRejectReason(acceptanceReqVO.getRejectReason());
if (MoldRecordStatusEnum.REJECTED.getCode().equals(acceptanceReqVO.getStatus())) {
moldRepairDO.setRejectTime(LocalDateTime.now());
Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
if (loginUserId != null) {
moldRepairDO.setRejectBy(String.valueOf(loginUserId));
}
} else {
moldRepairDO.setRejectTime(null);
moldRepairDO.setRejectBy(null);
}
moldRepairDO.setConfirmDate(LocalDateTime.now());
}
private void createAcceptanceHistory(MoldRepairDO moldRepairDO) {
MoldRepairAcceptanceHistoryDO historyDO = new MoldRepairAcceptanceHistoryDO();
historyDO.setRepairId(moldRepairDO.getId());
historyDO.setRepairResult(moldRepairDO.getRepairResult());
historyDO.setFinishDate(moldRepairDO.getFinishDate());
historyDO.setConfirmDate(moldRepairDO.getConfirmDate());
historyDO.setConfirmBy(moldRepairDO.getConfirmBy());
historyDO.setStatus(moldRepairDO.getStatus());
historyDO.setRejectReason(moldRepairDO.getRejectReason());
historyDO.setShutdownDuration(moldRepairDO.getShutdownDuration());
historyDO.setFaultReason(moldRepairDO.getFaultReason());
historyDO.setTreatmentMeasures(moldRepairDO.getTreatmentMeasures());
historyDO.setReplacementParts(moldRepairDO.getReplacementParts());
historyDO.setRepairSummary(moldRepairDO.getRepairSummary());
historyDO.setRepairedImages(moldRepairDO.getRepairedImages());
moldRepairAcceptanceHistoryMapper.insert(historyDO);
}
@Override
@ -477,8 +549,8 @@ public class MoldRepairServiceImpl implements MoldRepairService {
if (moldRepairDO == null ){
throw exception(MOLD_REPAIR_NOT_EXISTS);
}
//设置为已完成
moldRepairDO.setStatus(JobResultEnum.PASS.getCode());
// 设置为待验收
moldRepairDO.setStatus(MoldRecordStatusEnum.PENDING_ACCEPTANCE.getCode());
// 检查是否有不通过的
boolean hasFail = updateReqVOList.stream()
.anyMatch(vo -> vo.getResult() != null && vo.getResult().equals(JobResultEnum.FAIL.getCode()));

Loading…
Cancel
Save