完成了模具点检

plp
86158 3 weeks ago
parent 0e562a9678
commit 820efaa232

@ -29,7 +29,7 @@ public class MoldPageReqVO extends PageParam {
@Schema(description = "机台ID", example = "24428")
private Long machineId;
@Schema(description = "使用时间(小时)")
@Schema(description = "使用次数/次")
private BigDecimal useTime;
@Schema(description = "入库时间")
@ -58,7 +58,10 @@ public class MoldPageReqVO extends PageParam {
@Schema(description = "id集合导出用")
private String ids;
// @Schema(description = "机台名字")
// private String machineName;
@Schema(description = "机台名字")
private String machineName;
@Schema(description = "附件地址")
private String fileUrl;
}

@ -24,13 +24,13 @@ public class MoldSaveReqVO {
private String name;
@Schema(description = "单位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19527")
@NotNull(message = "单位ID不能为空")
// @NotNull(message = "单位ID不能为空")
private Long unitId;
@Schema(description = "机台ID", example = "24428")
private Long machineId;
@Schema(description = "使用时间(小时)")
@Schema(description = "使用次数/次")
private BigDecimal useTime;
@Schema(description = "入库时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ -47,11 +47,14 @@ public class MoldSaveReqVO {
private String remark;
@Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "是否启用不能为空")
// @NotNull(message = "是否启用不能为空")
private Boolean isEnable;
@Schema(description = "型号id", requiredMode = Schema.RequiredMode.REQUIRED, example = "15258")
@NotNull(message = "型号id不能为空")
// @NotNull(message = "型号id不能为空")
private Long brandId;
@Schema(description = "附件地址")
private String fileUrl;
}

@ -76,4 +76,7 @@ public class MoldDO extends BaseDO {
*/
private Long brandId;
private String fileUrl;
}

@ -22,20 +22,6 @@ import java.util.stream.Collectors;
public interface MoldBrandMapper extends BaseMapperX<MoldBrandDO> {
default PageResult<MoldBrandDO> selectPage(MoldBrandPageReqVO reqVO) {
// return selectPage(reqVO, new LambdaQueryWrapperX<MoldBrandDO>()
// .eqIfPresent(MoldBrandDO::getCode, reqVO.getCode())
// .likeIfPresent(MoldBrandDO::getName, reqVO.getName())
// .eqIfPresent(MoldBrandDO::getMoldType, reqVO.getMoldType())
// .eqIfPresent(MoldBrandDO::getProductId, reqVO.getProductId())
// .eqIfPresent(MoldBrandDO::getUseTime, reqVO.getUseTime())
// .eqIfPresent(MoldBrandDO::getMaintainType, reqVO.getMaintainType())
// .eqIfPresent(MoldBrandDO::getMaintainTime, reqVO.getMaintainTime())
// .eqIfPresent(MoldBrandDO::getMoldSize, reqVO.getMoldSize())
// .eqIfPresent(MoldBrandDO::getRemark, reqVO.getRemark())
// .eqIfPresent(MoldBrandDO::getIsEnable, reqVO.getIsEnable())
// .eqIfPresent(MoldBrandDO::getOrgType, reqVO.getOrgType())
// .betweenIfPresent(MoldBrandDO::getCreateTime, reqVO.getCreateTime())
// .orderByDesc(MoldBrandDO::getId));
LambdaQueryWrapperX<MoldBrandDO> moldBrandDOLambdaQueryWrapperX = new LambdaQueryWrapperX<>();
moldBrandDOLambdaQueryWrapperX

@ -6,6 +6,8 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.erp.dal.dataobject.mold.MoldDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@ -19,13 +21,14 @@ public interface MoldMapper extends BaseMapperX<MoldDO> {
default PageResult<MoldDO> selectPage(PageParam reqVO, Long brandId) {
return selectPage(reqVO, new LambdaQueryWrapperX<MoldDO>()
.eq(MoldDO::getBrandId, brandId)
.orderByDesc(MoldDO::getId));
.eq(MoldDO::getBrandId, brandId)
.orderByDesc(MoldDO::getId));
}
default int deleteByBrandId(Long brandId) {
return delete(MoldDO::getBrandId, brandId);
}
default List<MoldDO> selectBy(MoldDO reqVO) {
return selectList(new LambdaQueryWrapperX<MoldDO>()
.eqIfPresent(MoldDO::getCode, reqVO.getCode())
@ -33,4 +36,12 @@ public interface MoldMapper extends BaseMapperX<MoldDO> {
.eq(MoldDO::getBrandId, reqVO.getBrandId())
.orderByDesc(MoldDO::getId));
}
default List<MoldDO> selectBy(Long brandId) {
return selectList(new LambdaQueryWrapperX<MoldDO>()
.eq(MoldDO::getBrandId, brandId)
.orderByDesc(MoldDO::getId));
}
}

@ -0,0 +1,140 @@
package cn.iocoder.yudao.module.mes.controller.admin.moldplanmaintenance;
import cn.iocoder.yudao.module.mes.controller.admin.ticketmanagement.vo.TicketManagementRespVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldsubject.MoldSubjectDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.subjectmoldplan.SubjectMoldPlanDO;
import cn.iocoder.yudao.module.mes.service.subjectmoldplan.SubjectMoldPlanService;
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import java.util.stream.Collectors;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.mes.controller.admin.moldplanmaintenance.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldplanmaintenance.MoldPlanMaintenanceDO;
import cn.iocoder.yudao.module.mes.service.moldplanmaintenance.MoldPlanMaintenanceService;
@Tag(name = "管理后台 - 方案维护")
@RestController
@RequestMapping("/mes/mold-plan-maintenance")
@Validated
public class MoldPlanMaintenanceController {
@Resource
private MoldPlanMaintenanceService moldplanMaintenanceService;
@Resource
private SubjectMoldPlanService subjectMoldPlanService;
@Resource
private AdminUserApi adminUserApi;
@PostMapping("/create")
@Operation(summary = "创建方案维护")
@PreAuthorize("@ss.hasPermission('mes:mold-plan-maintenance:create')")
public CommonResult<Long> createMoldPlanMaintenance(@Valid @RequestBody MoldPlanMaintenanceSaveReqVO createReqVO) {
return success(moldplanMaintenanceService.createMoldPlanMaintenance(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新方案维护")
@PreAuthorize("@ss.hasPermission('mes:mold-plan-maintenance:update')")
public CommonResult<Boolean> updateMoldPlanMaintenance(@Valid @RequestBody MoldPlanMaintenanceSaveReqVO updateReqVO) {
moldplanMaintenanceService.updateMoldPlanMaintenance(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除方案维护")
@Parameter(name = "ids", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('mes:mold-plan-maintenance:delete')")
public CommonResult<Boolean> deleteMoldPlanMaintenance(@RequestParam("ids") String ids) {
// 将逗号分隔的字符串转换为Long类型的List
List<Long> idList = Arrays.stream(ids.split(","))
.map(String::trim) // 去除可能存在的空格
.map(Long::valueOf)
.collect(Collectors.toList());
moldplanMaintenanceService.deleteMoldPlanMaintenance(idList);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得方案维护")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('mes:mold-plan-maintenance:query')")
public CommonResult<MoldPlanMaintenanceRespVO> getMoldPlanMaintenance(@RequestParam("id") Long id) {
MoldPlanMaintenanceDO moldplanMaintenance = moldplanMaintenanceService.getMoldPlanMaintenance(id);
return success(BeanUtils.toBean(moldplanMaintenance, MoldPlanMaintenanceRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得方案维护分页")
@PreAuthorize("@ss.hasPermission('mes:mold-plan-maintenance:query')")
public CommonResult<PageResult<MoldPlanMaintenanceRespVO>> getMoldPlanMaintenancePage(@Valid MoldPlanMaintenancePageReqVO pageReqVO) {
PageResult<MoldPlanMaintenanceDO> pageResult = moldplanMaintenanceService.getMoldPlanMaintenancePage(pageReqVO);
PageResult<MoldPlanMaintenanceRespVO> moldplanMaintenanceRespVOPageResult = BeanUtils.toBean(pageResult, MoldPlanMaintenanceRespVO.class);
return success(buildPageCreatorName(moldplanMaintenanceRespVOPageResult));
}
@GetMapping("/export-excel")
@Operation(summary = "导出方案维护 Excel")
@PreAuthorize("@ss.hasPermission('mes:mold-plan-maintenance:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportMoldPlanMaintenanceExcel(@Valid MoldPlanMaintenancePageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<MoldPlanMaintenanceDO> list = moldplanMaintenanceService.getMoldPlanMaintenancePage(pageReqVO).getList();
List<MoldPlanMaintenanceRespVO> moldplanMaintenanceRespVOS = BeanUtils.toBean(list, MoldPlanMaintenanceRespVO.class);
for (MoldPlanMaintenanceRespVO moldplanMaintenanceRespVO : moldplanMaintenanceRespVOS) {
AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(moldplanMaintenanceRespVO.getCreator()));
moldplanMaintenanceRespVO.setCreatorName( "(" + user.getUsername()+ ")" + user.getNickname());
}
// 导出 Excel
ExcelUtils.write(response, "方案维护.xls", "数据", MoldPlanMaintenanceRespVO.class,moldplanMaintenanceRespVOS);
}
@GetMapping("/getSubjectList")
@Operation(summary = "查询项目集合列表")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('mes:mold-plan-maintenance:query')")
public CommonResult<List<MoldSubjectDO>> getSubjectList(@RequestParam("id") Long id) {
List<MoldSubjectDO> subjectMoldPlanDOList = moldplanMaintenanceService.getSubjectList(id);
return success(subjectMoldPlanDOList);
}
private PageResult<MoldPlanMaintenanceRespVO> buildPageCreatorName(PageResult<MoldPlanMaintenanceRespVO> moldplanMaintenanceRespVOPageResult) {
for (MoldPlanMaintenanceRespVO moldplanMaintenanceRespVO : moldplanMaintenanceRespVOPageResult.getList()) {
AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(moldplanMaintenanceRespVO.getCreator()));
moldplanMaintenanceRespVO.setCreatorName( "(" + user.getUsername()+ ")" + user.getNickname());
}
return moldplanMaintenanceRespVOPageResult;
}
}

@ -0,0 +1,34 @@
package cn.iocoder.yudao.module.mes.controller.admin.moldplanmaintenance.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 方案维护分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class MoldPlanMaintenancePageReqVO extends PageParam {
@Schema(description = "名称", example = "王五")
private String planName;
@Schema(description = "名称", example = "1")
private Integer planType;
@Schema(description = "描述", example = "你猜")
private String description;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "id集合导出用")
private String ids;
}

@ -0,0 +1,42 @@
package cn.iocoder.yudao.module.mes.controller.admin.moldplanmaintenance.vo;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 方案维护 Response VO")
@Data
@ExcelIgnoreUnannotated
public class MoldPlanMaintenanceRespVO extends BaseDO {
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "19033")
@ExcelProperty("id")
private Long id;
@Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
@ExcelProperty("名称")
private String planName;
@Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("名称")
private int planType;
@Schema(description = "描述", example = "你猜")
@ExcelProperty("描述")
private String description;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "项目集合ids")
private List<Long> subjectIds;
@Schema(description = "创建人名字")
@ExcelProperty("创建人名字")
private String creatorName;
}

@ -0,0 +1,28 @@
package cn.iocoder.yudao.module.mes.controller.admin.moldplanmaintenance.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 方案维护新增/修改 Request VO")
@Data
public class MoldPlanMaintenanceSaveReqVO {
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "19033")
private Long id;
@Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
@NotEmpty(message = "名称不能为空")
private String planName;
@Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotEmpty(message = "名称不能为空")
private String planType;
@Schema(description = "描述")
private String description;
@Schema(description = "项目id集合", example = "1")
private String subjectIdS;
}

@ -0,0 +1,187 @@
package cn.iocoder.yudao.module.mes.controller.admin.moldsubject;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.module.mes.controller.admin.deviceledger.vo.DeviceLedgerRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.moldsubject.vo.MoldSubjectPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.moldsubject.vo.MoldSubjectRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.moldsubject.vo.MoldSubjectSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldsubject.MoldSubjectDO;
import cn.iocoder.yudao.module.mes.service.moldsubject.MoldSubjectService;
import cn.iocoder.yudao.module.system.api.dict.DictDataApi;
import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO;
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
import com.alibaba.excel.util.StringUtils;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Tag(name = "管理后台 - 维保项目")
@RestController
@RequestMapping("/mes/mold-subject")
@Validated
public class MoldSubjectController {
@Resource
private MoldSubjectService moldSubjectService;
@Resource
private AdminUserApi adminUserApi;
@Resource
private DictDataApi dictDataApi;
@PostMapping("/create")
@Operation(summary = "创建维保项目")
@PreAuthorize("@ss.hasPermission('mes:mold-subject:create')")
public CommonResult<Long> createMoldSubject(@Valid @RequestBody MoldSubjectSaveReqVO createReqVO) {
return success(moldSubjectService.createMoldSubject(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新维保项目")
@PreAuthorize("@ss.hasPermission('mes:mold-subject:update')")
public CommonResult<Boolean> updateMoldSubject(@Valid @RequestBody MoldSubjectSaveReqVO updateReqVO) {
moldSubjectService.updateMoldSubject(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除维保项目")
@Parameter(name = "ids", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('mes:mold-subject:delete')")
public CommonResult<Boolean> deleteMoldSubject(@RequestParam("ids") String ids) {
// 将逗号分隔的字符串转换为Long类型的List
List<Long> idList = Arrays.stream(ids.split(","))
.map(String::trim) // 去除可能存在的空格
.map(Long::valueOf)
.collect(Collectors.toList());
moldSubjectService.deleteMoldSubject(idList);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得维保项目")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('mes:mold-subject:query')")
public CommonResult<MoldSubjectRespVO> getMoldSubject(@RequestParam("id") Long id) {
MoldSubjectDO moldSubject = moldSubjectService.getMoldSubject(id);
return success(BeanUtils.toBean(moldSubject, MoldSubjectRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得维保项目分页")
@PreAuthorize("@ss.hasPermission('mes:mold-subject:query')")
public CommonResult<PageResult<MoldSubjectRespVO>> getMoldSubjectPage(@Valid MoldSubjectPageReqVO pageReqVO) {
PageResult<MoldSubjectDO> pageResult = moldSubjectService.getMoldSubjectPage(pageReqVO);
PageResult<MoldSubjectRespVO> moldSubjectRespVOPageResult = BeanUtils.toBean(pageResult, MoldSubjectRespVO.class);
return success(buildCreatorName(moldSubjectRespVOPageResult));
}
@GetMapping("/export-excel")
@Operation(summary = "导出维保项目 Excel")
@PreAuthorize("@ss.hasPermission('mes:mold-subject:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportMoldSubjectExcel(@Valid MoldSubjectPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<MoldSubjectDO> list = moldSubjectService.getMoldSubjectPage(pageReqVO).getList();
List<MoldSubjectRespVO> moldSubjectRespVOList = BeanUtils.toBean(list, MoldSubjectRespVO.class);
// 1. 获取字典数据
Map<String, Map<String, String>> dictData = getDictData();
for (MoldSubjectRespVO moldSubjectRespVO : moldSubjectRespVOList) {
AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(moldSubjectRespVO.getCreator()));
moldSubjectRespVO.setCreatorName("(" + user.getUsername()+ ")" + user.getNickname());
// 转换检验方式字典值
if (StringUtils.isNotBlank(moldSubjectRespVO.getInspectionMethod())) {
String inspectionMethodLabel = dictData.get("Inspection_method")
.get(moldSubjectRespVO.getInspectionMethod());
if (StringUtils.isNotBlank(inspectionMethodLabel)) {
// 可以创建一个临时字段存储,或者直接替换原字段
moldSubjectRespVO.setInspectionMethod(inspectionMethodLabel);
}
}
// 转换值类型字典值
if (StringUtils.isNotBlank(moldSubjectRespVO.getValueType())) {
String valueTypeLabel = dictData.get("value_types")
.get(moldSubjectRespVO.getValueType());
if (StringUtils.isNotBlank(valueTypeLabel)) {
moldSubjectRespVO.setValueType(valueTypeLabel);
}
}
}
// 导出 Excel
ExcelUtils.write(response, "维保项目.xls", "数据", MoldSubjectRespVO.class,
moldSubjectRespVOList );
}
private PageResult<MoldSubjectRespVO> buildCreatorName(PageResult<MoldSubjectRespVO> moldSubjectRespVOPageResult) {
for (MoldSubjectRespVO moldSubjectRespVO : moldSubjectRespVOPageResult.getList()) {
AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(moldSubjectRespVO.getCreator()));
moldSubjectRespVO.setCreatorName("(" + user.getUsername()+ ")" + user.getNickname());
}
return moldSubjectRespVOPageResult;
}
/**
*
*/
private Map<String, Map<String, String>> getDictData() {
Map<String, Map<String, String>> dictData = new HashMap<>();
try {
// 获取检验方式字典
Map<String, String> inspectionMethodDict = new HashMap<>();
List<DictDataRespDTO> inspectionMethods = dictDataApi.getDictDataList("Inspection_method");
for (DictDataRespDTO dict : inspectionMethods) {
inspectionMethodDict.put(dict.getValue(), dict.getLabel());
}
dictData.put("Inspection_method", inspectionMethodDict);
// 获取值类型字典
Map<String, String> valueTypeDict = new HashMap<>();
List<DictDataRespDTO> valueTypes = dictDataApi.getDictDataList("value_types");
for (DictDataRespDTO dict : valueTypes) {
valueTypeDict.put(dict.getValue(), dict.getLabel());
}
dictData.put("value_types", valueTypeDict);
} catch (Exception e) {
throw new RuntimeException("获取字典数据异常:" + e);
}
return dictData;
}
}

@ -0,0 +1,53 @@
package cn.iocoder.yudao.module.mes.controller.admin.moldsubject.vo;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 维保项目分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class MoldSubjectPageReqVO extends PageParam {
@Schema(description = "项目编码")
private String subjectCode;
@Schema(description = "项目名称", example = "李四")
private String subjectName;
@Schema(description = "项目类型", example = "2")
private String subjectType;
@Schema(description = "项目内容")
private String subjectContent;
@Schema(description = "标准")
private String subjectStandard;
@Schema(description = "是否启用")
private Boolean isEnable;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "检验方式")
private String inspectionMethod;
@Schema(description = "值类型")
private String valueType;
@Schema(description = "判定基准")
private String judgmentCriteria;
@Schema(description = "id集合导出用")
private String ids;
}

@ -0,0 +1,70 @@
package cn.iocoder.yudao.module.mes.controller.admin.moldsubject.vo;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
@Schema(description = "管理后台 - 维保项目 Response VO")
@Data
@ExcelIgnoreUnannotated
public class MoldSubjectRespVO extends BaseDO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24679")
// @ExcelProperty("ID")
private Long id;
@Schema(description = "项目编码", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("项目编码")
private String subjectCode;
@Schema(description = "项目名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
@ExcelProperty("项目名称")
private String subjectName;
@Schema(description = "项目类型", example = "2")
// @ExcelProperty("项目类型")
private String subjectType;
@Schema(description = "项目内容", requiredMode = Schema.RequiredMode.REQUIRED)
// @ExcelProperty("项目内容")
private String subjectContent;
@Schema(description = "标准")
// @ExcelProperty("标准")
private String subjectStandard;
@Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty(value = "是否启用", converter = DictConvert.class)
@DictFormat("infra_boolean_string") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
private Boolean isEnable;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
@ColumnWidth(20)
private LocalDateTime createTime;
@Schema(description = "检验方式")
@ExcelProperty("检验方式")
private String inspectionMethod;
@Schema(description = "值类型")
@ExcelProperty("值类型")
private String valueType;
@Schema(description = "判定基准")
@ExcelProperty("判定基准")
private String judgmentCriteria;
@Schema(description = "创建人名字")
@ExcelProperty("创建人名字")
private String creatorName;
}

@ -0,0 +1,50 @@
package cn.iocoder.yudao.module.mes.controller.admin.moldsubject.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@Schema(description = "管理后台 - 维保项目新增/修改 Request VO")
@Data
public class MoldSubjectSaveReqVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24679")
private Long id;
@Schema(description = "项目编码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "项目编码不能为空")
private String subjectCode;
@Schema(description = "项目名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
@NotEmpty(message = "项目名称不能为空")
private String subjectName;
@Schema(description = "项目类型", example = "2")
private String subjectType;
@Schema(description = "项目内容", requiredMode = Schema.RequiredMode.REQUIRED)
// @NotEmpty(message = "项目内容不能为空")
private String subjectContent;
@Schema(description = "标准")
private String subjectStandard;
@Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "是否启用不能为空")
private Boolean isEnable;
@Schema(description = "检验方式", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "检验方式")
private String inspectionMethod;
@Schema(description = "值类型", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "值类型")
private String valueType;
@Schema(description = "判定基准", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "判定基准")
private String judgmentCriteria;
}

@ -0,0 +1,136 @@
package cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement;
import cn.iocoder.yudao.module.mes.controller.admin.planmaintenance.vo.PlanMaintenanceRespVO;
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import java.util.stream.Collectors;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldtaskmanagement.MoldTaskManagementDO;
import cn.iocoder.yudao.module.mes.service.moldtaskmanagement.MoldTaskManagementService;
@Tag(name = "管理后台 - 任务管理")
@RestController
@RequestMapping("/mes/mold-task-management")
@Validated
public class MoldTaskManagementController {
@Resource
private MoldTaskManagementService moldtaskManagementService;
@Resource
private AdminUserApi adminUserApi;
@PostMapping("/create")
@Operation(summary = "创建任务管理")
@PreAuthorize("@ss.hasPermission('mes:mold-task-management:create')")
public CommonResult<Long> createMoldTaskManagement(@Valid @RequestBody MoldTaskManagementSaveReqVO createReqVO) {
return success(moldtaskManagementService.createMoldTaskManagement(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新任务管理")
@PreAuthorize("@ss.hasPermission('mes:mold-task-management:update')")
public CommonResult<Boolean> updateMoldTaskManagement(@Valid @RequestBody MoldTaskManagementSaveReqVO updateReqVO) {
moldtaskManagementService.updateMoldTaskManagement(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除任务管理")
@Parameter(name = "ids", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('mes:mold-task-management:delete')")
public CommonResult<Boolean> deleteMoldTaskManagement(@RequestParam("ids") String ids) {
// 将逗号分隔的字符串转换为Long类型的List
List<Long> idList = Arrays.stream(ids.split(","))
.map(String::trim) // 去除可能存在的空格
.map(Long::valueOf)
.collect(Collectors.toList());
moldtaskManagementService.deleteMoldTaskManagement(idList);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得任务管理")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('mes:mold-task-management:query')")
public CommonResult<MoldTaskManagementRespVO> getMoldTaskManagement(@RequestParam("id") Long id) {
MoldTaskManagementDO moldtaskManagement = moldtaskManagementService.getMoldTaskManagement(id);
return success(BeanUtils.toBean(moldtaskManagement, MoldTaskManagementRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得任务管理分页")
@PreAuthorize("@ss.hasPermission('mes:mold-task-management:query')")
public CommonResult<PageResult<MoldTaskManagementRespVO>> getMoldTaskManagementPage(@Valid MoldTaskManagementPageReqVO pageReqVO) {
PageResult<MoldTaskManagementDO> pageResult = moldtaskManagementService.getMoldTaskManagementPage(pageReqVO);
PageResult<MoldTaskManagementRespVO> moldtaskManagementRespVOPageResult = BeanUtils.toBean(pageResult, MoldTaskManagementRespVO.class);
buildPageCreatorName(moldtaskManagementRespVOPageResult);
return success(moldtaskManagementRespVOPageResult);
}
@GetMapping("/export-excel")
@Operation(summary = "导出任务管理 Excel")
@PreAuthorize("@ss.hasPermission('mes:mold-task-management:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportMoldTaskManagementExcel(@Valid MoldTaskManagementPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<MoldTaskManagementDO> list = moldtaskManagementService.getMoldTaskManagementPage(pageReqVO).getList();
List<MoldTaskManagementRespVO> moldtaskManagementRespVOList = BeanUtils.toBean(list, MoldTaskManagementRespVO.class);
for (MoldTaskManagementRespVO planMaintenanceRespVO : moldtaskManagementRespVOList) {
AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(planMaintenanceRespVO.getCreator()));
planMaintenanceRespVO.setCreatorName( "(" + user.getUsername()+ ")" + user.getNickname());
}
// 导出 Excel
ExcelUtils.write(response, "模具类型.xls", "数据", MoldTaskManagementRespVO.class,moldtaskManagementRespVOList);
}
@PostMapping("/createMoldTicket")
@Operation(summary = "创建工单管理")
@PreAuthorize("@ss.hasPermission('mes:mold-task-management:create')")
public CommonResult<Boolean> createTicket(@RequestParam("id") Long id) {
moldtaskManagementService.createMoldTicket(id);
return success(true);
}
private PageResult<MoldTaskManagementRespVO> buildPageCreatorName(PageResult<MoldTaskManagementRespVO> planMaintenanceRespVOPageResult) {
for (MoldTaskManagementRespVO planMaintenanceRespVO : planMaintenanceRespVOPageResult.getList()) {
AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(planMaintenanceRespVO.getCreator()));
planMaintenanceRespVO.setCreatorName( "(" + user.getUsername()+ ")" + user.getNickname());
}
return planMaintenanceRespVOPageResult;
}
}

@ -0,0 +1,54 @@
package cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 模具类型分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class MoldTaskManagementPageReqVO extends PageParam {
@Schema(description = "名称", example = "李四")
private String name;
@Schema(description = "类型(1-点检 2-保养)", example = "2")
private Integer taskType;
@Schema(description = "模具列表")
private String moldList;
@Schema(description = "项目表单")
private Long projectForm;
@Schema(description = "起止开始日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] startDate;
@Schema(description = "起止结束日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] endDate;
@Schema(description = "cron表达式")
private String cronExpression;
@Schema(description = "可操作人")
private String operableUsers;
@Schema(description = "是否启用")
private Boolean enabled;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "id集合导出用")
private String ids;
}

@ -0,0 +1,77 @@
package cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement.vo;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.time.LocalDate;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 模具类型 Response VO")
@Data
@ExcelIgnoreUnannotated
public class MoldTaskManagementRespVO extends BaseDO {
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "26348")
@ExcelProperty("id")
private Long id;
@Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
@ExcelProperty("名称")
private String name;
@Schema(description = "类型(1-点检 2-保养)", example = "2")
@ExcelProperty("类型(1-点检 2-保养)")
private Integer taskType;
@Schema(description = "模具列表")
@ExcelProperty("模具列表")
private String moldList;
@Schema(description = "项目表单")
@ExcelProperty("项目表单")
private Long projectForm;
@Schema(description = "起止开始日期")
@ExcelProperty("起止开始日期")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate startDate;
@Schema(description = "起止结束日期")
@ExcelProperty("起止结束日期")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate endDate;
@Schema(description = "cron表达式")
@ExcelProperty("cron表达式")
private String cronExpression;
@Schema(description = "可操作人")
@ExcelProperty("可操作人")
private String operableUsers;
@Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("是否启用")
private Boolean enabled;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "创建人名字")
@ExcelProperty("创建人名字")
private String creatorName;
@Schema(description = "项目表单名称")
@ExcelProperty("项目表单名称")
private String projectFormName;
}

@ -0,0 +1,53 @@
package cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 模具类型新增/修改 Request VO")
@Data
public class MoldTaskManagementSaveReqVO {
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "26348")
private Long id;
@Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
@NotEmpty(message = "名称不能为空")
private String name;
@Schema(description = "类型(1-点检 2-保养)", example = "2")
private Integer taskType;
@Schema(description = "模具列表")
private String moldList;
@Schema(description = "项目表单")
private Long projectForm;
@Schema(description = "起止开始日期")
@JsonFormat(pattern = "yyyy-MM-dd")
private String startDate;
@Schema(description = "起止结束日期")
@JsonFormat(pattern = "yyyy-MM-dd")
private String endDate;
@Schema(description = "cron表达式")
private String cronExpression;
@Schema(description = "可操作人")
private String operableUsers;
@Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "是否启用不能为空")
private Boolean enabled;
}

@ -0,0 +1,127 @@
package cn.iocoder.yudao.module.mes.controller.admin.moldticketmanagement;
import cn.iocoder.yudao.module.erp.controller.admin.mold.vo.MoldRespVO;
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.mes.controller.admin.moldticketmanagement.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldticketmanagement.MoldTicketManagementDO;
import cn.iocoder.yudao.module.mes.service.moldticketmanagement.MoldTicketManagementService;
@Tag(name = "管理后台 - 工单管理")
@RestController
@RequestMapping("/mes/mold-ticket-management")
@Validated
public class MoldTicketManagementController {
@Resource
private MoldTicketManagementService moldticketManagementService;
@Resource
private AdminUserApi adminUserApi;
@PostMapping("/create")
@Operation(summary = "创建工单管理")
@PreAuthorize("@ss.hasPermission('mes:mold-ticket-management:create')")
public CommonResult<Long> createMoldTicketManagement(@Valid @RequestBody MoldTicketManagementSaveReqVO createReqVO) {
return success(moldticketManagementService.createMoldTicketManagement(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新工单管理")
@PreAuthorize("@ss.hasPermission('mes:mold-ticket-management:update')")
public CommonResult<Boolean> updateMoldTicketManagement(@Valid @RequestBody MoldTicketManagementSaveReqVO updateReqVO) {
moldticketManagementService.updateMoldTicketManagement(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除工单管理")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('mes:mold-ticket-management:delete')")
public CommonResult<Boolean> deleteMoldTicketManagement(@RequestParam("id") Long id) {
moldticketManagementService.deleteMoldTicketManagement(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得工单管理")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('mes:mold-ticket-management:query')")
public CommonResult<MoldTicketManagementRespVO> getMoldTicketManagement(@RequestParam("id") Long id) {
MoldTicketManagementDO moldticketManagement = moldticketManagementService.getMoldTicketManagement(id);
return success(BeanUtils.toBean(moldticketManagement, MoldTicketManagementRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得工单管理分页")
@PreAuthorize("@ss.hasPermission('mes:mold-ticket-management:query')")
public CommonResult<PageResult<MoldTicketManagementRespVO>> getMoldTicketManagementPage(@Valid MoldTicketManagementPageReqVO pageReqVO) {
PageResult<MoldTicketManagementDO> pageResult = moldticketManagementService.getMoldTicketManagementPage(pageReqVO);
return success(buildPageCreatorName(BeanUtils.toBean(pageResult, MoldTicketManagementRespVO.class)));
}
@GetMapping("/export-excel")
@Operation(summary = "导出工单管理 Excel")
@PreAuthorize("@ss.hasPermission('mes:mold-ticket-management:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportMoldTicketManagementExcel(@Valid MoldTicketManagementPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<MoldTicketManagementDO> list = moldticketManagementService.getMoldTicketManagementPage(pageReqVO).getList();
List<MoldTicketManagementRespVO> moldticketManagementRespVOList = BeanUtils.toBean(list, MoldTicketManagementRespVO.class);
for (MoldTicketManagementRespVO moldticketManagementRespVO : moldticketManagementRespVOList) {
AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(moldticketManagementRespVO.getCreator()));
moldticketManagementRespVO.setCreatorName( "(" + user.getUsername()+ ")" + user.getNickname());
}
// 导出 Excel
ExcelUtils.write(response, "工单管理.xls", "数据", MoldTicketManagementRespVO.class,
moldticketManagementRespVOList);
}
@PutMapping("/batchUpdateStatus")
@Operation(summary = "批量取消工单")
@PreAuthorize("@ss.hasPermission('mes:mold-ticket-management:update')")
public CommonResult<Boolean> batchUpdateMoldTicketStatus(@Valid @RequestBody MoldTicketManagementBatchUpdateReqVO reqVO) {
moldticketManagementService.batchUpdateJobStatus(reqVO);
return success(true);
}
private PageResult<MoldTicketManagementRespVO> buildPageCreatorName(PageResult<MoldTicketManagementRespVO> moldticketManagementRespVOPageResult) {
for (MoldTicketManagementRespVO moldticketManagementRespVO : moldticketManagementRespVOPageResult.getList()) {
AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(moldticketManagementRespVO.getCreator()));
moldticketManagementRespVO.setCreatorName( "(" + user.getUsername()+ ")" + user.getNickname());
if (moldticketManagementRespVO.getOperator()!=null){
AdminUserRespDTO operator = adminUserApi.getUser(Long.valueOf(moldticketManagementRespVO.getOperator()));
moldticketManagementRespVO.setOperatorName("(" + operator.getUsername()+ ")" + operator.getNickname());
}
}
return moldticketManagementRespVOPageResult;
}
}

@ -0,0 +1,87 @@
package cn.iocoder.yudao.module.mes.controller.admin.moldticketmanagement.enums;
import lombok.Getter;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
*
* 1- 2-
*/
@Getter
public enum MoldPlanTypeEnum {
INSPECTION(1, "点检"),
MAINTENANCE(2, "保养");
private final Integer code;
private final String description;
MoldPlanTypeEnum(Integer code, String description) {
this.code = code;
this.description = description;
}
/**
* code
*/
public static MoldPlanTypeEnum getByCode(Integer code) {
if (code == null) {
return null;
}
for (MoldPlanTypeEnum type : values()) {
if (type.getCode().equals(code)) {
return type;
}
}
return null;
}
/**
* code
*/
public static String getDescriptionByCode(Integer code) {
MoldPlanTypeEnum type = getByCode(code);
return type != null ? type.getDescription() : "未知";
}
/**
* code
*/
public static boolean isValidCode(Integer code) {
return getByCode(code) != null;
}
/**
* code
*/
public static List<Integer> getAllCodes() {
return Arrays.stream(values())
.map(MoldPlanTypeEnum::getCode)
.collect(Collectors.toList());
}
/**
*
*/
public static List<String> getAllDescriptions() {
return Arrays.stream(values())
.map(MoldPlanTypeEnum::getDescription)
.collect(Collectors.toList());
}
/**
* code
*/
public static Map<Integer, String> getCodeDescriptionMap() {
Map<Integer, String> map = new LinkedHashMap<>();
for (MoldPlanTypeEnum type : values()) {
map.put(type.getCode(), type.getDescription());
}
return map;
}
}

@ -0,0 +1,20 @@
package cn.iocoder.yudao.module.mes.controller.admin.moldticketmanagement.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
// 1. 新增请求VO
@Data
public class MoldTicketManagementBatchUpdateReqVO {
@Schema(description = "工单ID列表用逗号分隔", example = "1,2,3")
@NotBlank(message = "工单ID不能为空")
private String ids;
@Schema(description = "作业状态", example = "2")
@NotNull(message = "作业状态不能为空")
private Integer jobStatus ; // 默认值为2
}

@ -0,0 +1,66 @@
package cn.iocoder.yudao.module.mes.controller.admin.moldticketmanagement.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 项目方案关联分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class MoldTicketManagementPageReqVO extends PageParam {
@Schema(description = "项目ID", example = "21368")
private Long taskId;
@Schema(description = "方案ID", example = "20459")
private Long planId;
@Schema(description = "单号")
private String planNo;
@Schema(description = "设备名称", example = "张三")
private String moldName;
@Schema(description = "类型(1-点检 2-保养)", example = "2")
private String planType;
@Schema(description = "计划配置名称", example = "赵六")
private String configName;
@Schema(description = "作业状态", example = "1")
private Integer jobStatus;
@Schema(description = "作业结果")
private String jobResult;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "id集合导出用")
private String ids;
/**
*
*/
private String taskTime;
/**
*
*/
private String taskEndTime;
}

@ -0,0 +1,92 @@
package cn.iocoder.yudao.module.mes.controller.admin.moldticketmanagement.vo;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.github.xiaoymin.knife4j.annotations.Ignore;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 项目方案关联 Response VO")
@Data
@ExcelIgnoreUnannotated
public class MoldTicketManagementRespVO extends BaseDO {
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6566")
@ExcelProperty("id")
private Long id;
@Schema(description = "任务Id", example = "21368")
// @ExcelProperty("项目ID")
private Long taskId;
@Schema(description = "方案ID", example = "20459")
// @ExcelProperty("方案ID")
private Long planId;
@Schema(description = "单号")
@ExcelProperty("单号")
private String planNo;
@Schema(description = "设备名称", example = "张三")
@ExcelProperty("设备名称")
private String moldName;
@Schema(description = "类型", example = "2")
@ExcelProperty("类型")
private String planType;
@Schema(description = "计划配置名称", example = "赵六")
@ExcelProperty("计划配置名称")
private String configName;
@Schema(description = "作业状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("作业状态")
private Integer jobStatus;
@Schema(description = "作业结果")
@ExcelProperty("作业结果")
private Integer jobResult;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime taskTime;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime taskEndTime;
@Schema(description = "创建人名字")
@ExcelProperty("创建人名字")
private String creatorName;
@Schema(description = "作业人")
private String operator;
@Schema(description = "作业人名称")
@ExcelProperty("作业人名称")
private String operatorName;
}

@ -0,0 +1,42 @@
package cn.iocoder.yudao.module.mes.controller.admin.moldticketmanagement.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 项目方案关联新增/修改 Request VO")
@Data
public class MoldTicketManagementSaveReqVO {
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6566")
private Long id;
@Schema(description = "项目ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21368")
@NotNull(message = "项目ID不能为空")
private Long subjectId;
@Schema(description = "方案ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "20459")
@NotNull(message = "方案ID不能为空")
private Long planId;
@Schema(description = "单号")
private String planNo;
@Schema(description = "设备名称", example = "张三")
private String moldName;
@Schema(description = "类型", example = "2")
private String planType;
@Schema(description = "计划配置名称", example = "赵六")
private String configName;
@Schema(description = "作业状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "作业状态不能为空")
private Integer jobStatus;
@Schema(description = "作业结果")
private Integer jobResult;
}

@ -0,0 +1,104 @@
package cn.iocoder.yudao.module.mes.controller.admin.moldticketresults;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.mes.controller.admin.moldticketresults.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldticketresults.MoldTicketResultsDO;
import cn.iocoder.yudao.module.mes.service.moldticketresults.MoldTicketResultsService;
@Tag(name = "管理后台 - 工单检验结果")
@RestController
@RequestMapping("/mes/mold-ticket-results")
@Validated
public class MoldTicketResultsController {
@Resource
private MoldTicketResultsService moldticketResultsService;
@PostMapping("/create")
@Operation(summary = "创建工单检验结果")
@PreAuthorize("@ss.hasPermission('mes:mold-ticket-results:create')")
public CommonResult<Long> createMoldTicketResults(@Valid @RequestBody MoldTicketResultsSaveReqVO createReqVO) {
return success(moldticketResultsService.createMoldTicketResults(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新工单检验结果")
@PreAuthorize("@ss.hasPermission('mes:mold-ticket-results:update')")
public CommonResult<Boolean> updateMoldTicketResults(@Valid @RequestBody MoldTicketResultsSaveReqVO updateReqVO) {
moldticketResultsService.updateMoldTicketResults(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除工单检验结果")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('mes:mold-ticket-results:delete')")
public CommonResult<Boolean> deleteMoldTicketResults(@RequestParam("id") Long id) {
moldticketResultsService.deleteMoldTicketResults(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得工单检验结果")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('mes:mold-ticket-results:query')")
public CommonResult<MoldTicketResultsRespVO> getMoldTicketResults(@RequestParam("id") Long id) {
MoldTicketResultsDO moldticketResults = moldticketResultsService.getMoldTicketResults(id);
return success(BeanUtils.toBean(moldticketResults, MoldTicketResultsRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得工单检验结果分页")
@PreAuthorize("@ss.hasPermission('mes:mold-ticket-results:query')")
public CommonResult<PageResult<MoldTicketResultsRespVO>> getMoldTicketResultsPage(@Valid MoldTicketResultsPageReqVO pageReqVO) {
PageResult<MoldTicketResultsDO> pageResult = moldticketResultsService.getMoldTicketResultsPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, MoldTicketResultsRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出工单检验结果 Excel")
@PreAuthorize("@ss.hasPermission('mes:mold-ticket-results:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportMoldTicketResultsExcel(@Valid MoldTicketResultsPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<MoldTicketResultsDO> list = moldticketResultsService.getMoldTicketResultsPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "工单检验结果.xls", "数据", MoldTicketResultsRespVO.class,
BeanUtils.toBean(list, MoldTicketResultsRespVO.class));
}
@PutMapping("/batchUpdate")
@Operation(summary = "批量更新工单检验结果")
@PreAuthorize("@ss.hasPermission('mes:mold-ticket-results:update')")
public CommonResult<Boolean> batchUpdateMoldTicketResults(
@Valid @RequestBody List<MoldTicketResultsSaveReqVO> updateReqVOList) {
moldticketResultsService.batchUpdateMoldTicketResults(updateReqVOList);
return success(true);
}
}

@ -0,0 +1,109 @@
package cn.iocoder.yudao.module.mes.controller.admin.moldticketresults.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
*
*/
@Getter
@AllArgsConstructor
public enum MoldJobResultEnum {
/**
*
*/
PENDING(0, "待完成"),
/**
*
*/
PASS(1, "通过"),
/**
*
*/
FAIL(2, "不通过");
/**
*
*/
private final Integer code;
/**
*
*/
private final String description;
/**
*
*/
public static MoldJobResultEnum getByCode(Integer code) {
if (code == null) {
return null;
}
for (MoldJobResultEnum status : values()) {
if (status.getCode().equals(code)) {
return status;
}
}
return null;
}
/**
*
*/
public static boolean isValidCode(Integer code) {
return getByCode(code) != null;
}
/**
*
*/
public static List<Integer> getAllCodes() {
return Arrays.stream(values())
.map(MoldJobResultEnum::getCode)
.collect(Collectors.toList());
}
/**
*
*/
public static List<String> getAllDescriptions() {
return Arrays.stream(values())
.map(MoldJobResultEnum::getDescription)
.collect(Collectors.toList());
}
/**
*
*/
public boolean isPending() {
return this == PENDING;
}
/**
*
*/
public boolean isPass() {
return this == PASS;
}
/**
*
*/
public boolean isFail() {
return this == FAIL;
}
/**
*
*/
public boolean isCompleted() {
return this == PASS || this == FAIL;
}
}

@ -0,0 +1,47 @@
package cn.iocoder.yudao.module.mes.controller.admin.moldticketresults.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 工单检验结果分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class MoldTicketResultsPageReqVO extends PageParam {
@Schema(description = "检验项名称", example = "赵六")
private String inspectionItemName;
@Schema(description = "检验方式")
private String inspectionMethod;
@Schema(description = "判定基准")
private String judgmentCriteria;
@Schema(description = "检验结果 0-待检测 1-检测通过 2-检测不通过")
private Integer inspectionResult;
@Schema(description = "图片路径")
private String images;
@Schema(description = "备注", example = "你说的对")
private String remark;
@Schema(description = "检验时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] inspectionTime;
@Schema(description = "工单管理Id")
private Long managementId;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

@ -0,0 +1,56 @@
package cn.iocoder.yudao.module.mes.controller.admin.moldticketresults.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 工单检验结果 Response VO")
@Data
@ExcelIgnoreUnannotated
public class MoldTicketResultsRespVO {
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "30557")
@ExcelProperty("id")
private Long id;
@Schema(description = "检验项名称", example = "赵六")
@ExcelProperty("检验项名称")
private String inspectionItemName;
@Schema(description = "检验方式")
@ExcelProperty("检验方式")
private String inspectionMethod;
@Schema(description = "判定基准")
@ExcelProperty("判定基准")
private String judgmentCriteria;
@Schema(description = "检验结果 0-待检测 1-检测通过 2-检测不通过")
@ExcelProperty("检验结果 0-待检测 1-检测通过 2-检测不通过")
private Integer inspectionResult;
@Schema(description = "图片路径")
@ExcelProperty("图片路径")
private String images;
@Schema(description = "备注", example = "你说的对")
@ExcelProperty("备注")
private String remark;
@Schema(description = "检验时间")
@ExcelProperty("检验时间")
private LocalDateTime inspectionTime;
@Schema(description = "工单管理Id")
private Long managementId;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "模具Id")
private Long moldId;
}

@ -0,0 +1,44 @@
package cn.iocoder.yudao.module.mes.controller.admin.moldticketresults.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 工单检验结果新增/修改 Request VO")
@Data
public class MoldTicketResultsSaveReqVO {
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "30557")
private Long id;
@Schema(description = "检验项名称", example = "赵六")
private String inspectionItemName;
@Schema(description = "工单管理Id")
private Long managementId;
@Schema(description = "检验方式")
private String inspectionMethod;
@Schema(description = "判定基准")
private String judgmentCriteria;
@Schema(description = "检验结果 0-待检测 1-检测通过 2-检测不通过")
private Integer inspectionResult;
@Schema(description = "图片路径")
private String images;
@Schema(description = "备注", example = "你说的对")
private String remark;
@Schema(description = "检验时间")
private LocalDateTime inspectionTime;
@Schema(description = "检验人")
private String inspector;
}

@ -0,0 +1,95 @@
package cn.iocoder.yudao.module.mes.controller.admin.subjectmoldplan;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.mes.controller.admin.subjectmoldplan.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.subjectmoldplan.SubjectMoldPlanDO;
import cn.iocoder.yudao.module.mes.service.subjectmoldplan.SubjectMoldPlanService;
@Tag(name = "管理后台 - 项目方案关联")
@RestController
@RequestMapping("/mes/subject-mold-plan")
@Validated
public class SubjectMoldPlanController {
@Resource
private SubjectMoldPlanService subjectPlanService;
@PostMapping("/create")
@Operation(summary = "创建项目方案关联")
@PreAuthorize("@ss.hasPermission('mes:subject-mold-plan:create')")
public CommonResult<Long> createSubjectMoldPlan(@Valid @RequestBody SubjectMoldPlanSaveReqVO createReqVO) {
return success(subjectPlanService.createSubjectMoldPlan(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新项目方案关联")
@PreAuthorize("@ss.hasPermission('mes:subject-mold-plan:update')")
public CommonResult<Boolean> updateSubjectMoldPlan(@Valid @RequestBody SubjectMoldPlanSaveReqVO updateReqVO) {
subjectPlanService.updateSubjectMoldPlan(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除项目方案关联")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('mes:subject-mold-plan:delete')")
public CommonResult<Boolean> deleteSubjectMoldPlan(@RequestParam("id") Long id) {
subjectPlanService.deleteSubjectMoldPlan(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得项目方案关联")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('mes:subject-mold-plan:query')")
public CommonResult<SubjectMoldPlanRespVO> getSubjectMoldPlan(@RequestParam("id") Long id) {
SubjectMoldPlanDO subjectPlan = subjectPlanService.getSubjectMoldPlan(id);
return success(BeanUtils.toBean(subjectPlan, SubjectMoldPlanRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得项目方案关联分页")
@PreAuthorize("@ss.hasPermission('mes:subject-mold-plan:query')")
public CommonResult<PageResult<SubjectMoldPlanRespVO>> getSubjectMoldPlanPage(@Valid SubjectMoldPlanPageReqVO pageReqVO) {
PageResult<SubjectMoldPlanDO> pageResult = subjectPlanService.getSubjectMoldPlanPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, SubjectMoldPlanRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出项目方案关联 Excel")
@PreAuthorize("@ss.hasPermission('mes:subject-mold-plan:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportSubjectMoldPlanExcel(@Valid SubjectMoldPlanPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<SubjectMoldPlanDO> list = subjectPlanService.getSubjectMoldPlanPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "项目方案关联.xls", "数据", SubjectMoldPlanRespVO.class,
BeanUtils.toBean(list, SubjectMoldPlanRespVO.class));
}
}

@ -0,0 +1,28 @@
package cn.iocoder.yudao.module.mes.controller.admin.subjectmoldplan.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 项目方案关联分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class SubjectMoldPlanPageReqVO extends PageParam {
@Schema(description = "项目ID", example = "21197")
private String subjectId;
@Schema(description = "方案ID", example = "19398")
private String planId;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

@ -0,0 +1,31 @@
package cn.iocoder.yudao.module.mes.controller.admin.subjectmoldplan.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 项目方案关联 Response VO")
@Data
@ExcelIgnoreUnannotated
public class SubjectMoldPlanRespVO {
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29831")
@ExcelProperty("id")
private Long id;
@Schema(description = "项目ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21197")
@ExcelProperty("项目ID")
private String subjectId;
@Schema(description = "方案ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19398")
@ExcelProperty("方案ID")
private String planId;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

@ -0,0 +1,23 @@
package cn.iocoder.yudao.module.mes.controller.admin.subjectmoldplan.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 项目方案关联新增/修改 Request VO")
@Data
public class SubjectMoldPlanSaveReqVO {
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29831")
private Long id;
@Schema(description = "项目ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21197")
@NotEmpty(message = "项目ID不能为空")
private String subjectId;
@Schema(description = "方案ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19398")
@NotEmpty(message = "方案ID不能为空")
private String planId;
}

@ -0,0 +1,48 @@
package cn.iocoder.yudao.module.mes.dal.dataobject.moldplanmaintenance;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/**
* DO
*
* @author
*/
@TableName("mes_mold_plan_maintenance")
@KeySequence("mes_mold_plan_maintenance_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MoldPlanMaintenanceDO extends BaseDO {
/**
* id
*/
@TableId
private Long id;
/**
*
*/
private String planName;
/**
* 1- 2-
*/
private int planType;
/**
*
*/
private String description;
/**
* id
*/
@TableField(exist = false)
private List<Long> subjectIds;
}

@ -0,0 +1,70 @@
package cn.iocoder.yudao.module.mes.dal.dataobject.moldsubject;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/**
* DO
*
* @author
*/
@TableName("mes_mold_subject")
@KeySequence("mes_mold_subject_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MoldSubjectDO extends BaseDO {
/**
* ID
*/
@TableId
private Long id;
/**
*
*/
private String subjectCode;
/**
*
*/
private String subjectName;
/**
*
*/
private String subjectType;
/**
*
*/
private String subjectContent;
/**
*
*/
private String subjectStandard;
/**
*
*
* {@link TODO infra_boolean_string }
*/
private Boolean isEnable;
/**
*
*/
private String inspectionMethod;
/**
*
*/
private String valueType;
/**
*
*/
private String judgmentCriteria;
}

@ -0,0 +1,84 @@
package cn.iocoder.yudao.module.mes.dal.dataobject.moldtaskmanagement;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import lombok.*;
import java.time.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/**
* DO
*
* @author
*/
@TableName("mes_mold_task_management")
@KeySequence("mes_mold_task_management_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MoldTaskManagementDO extends BaseDO {
/**
* id
*/
@TableId
private Long id;
/**
*
*/
private String name;
/**
* (1- 2-)
*/
private Integer taskType;
/**
*
*/
private String moldList;
/**
*
*/
private Long projectForm;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDate startDate;
/**
*
*/
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDate endDate;
/**
* cron
*/
private String cronExpression;
/**
*
*/
private String operableUsers;
/**
*
*/
private Boolean enabled;
@TableField(exist = false)
private String projectFormName;
}

@ -0,0 +1,91 @@
package cn.iocoder.yudao.module.mes.dal.dataobject.moldticketmanagement;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/**
* DO
*
* @author
*/
@TableName("mes_mold_ticket_management")
@KeySequence("mes_mold_ticket_management_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MoldTicketManagementDO extends BaseDO {
/**
* id
*/
@TableId
private Long id;
/**
* ID
*/
private Long taskId;
/**
* ID
*/
private Long planId;
/**
*
*/
private String planNo;
/**
*
*/
private String moldName;
/**
* (1- 2-)
*/
private int planType;
/**
*
*/
private String configName;
/**
* 0- 1- 2-
*/
private Integer jobStatus;
/**
* 0- 1- 2-
*/
private int jobResult;
/**
*
*/
private String operator;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime taskTime;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime taskEndTime;
}

@ -0,0 +1,68 @@
package cn.iocoder.yudao.module.mes.dal.dataobject.moldticketresults;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/**
* DO
*
* @author
*/
@TableName("mes_mold_ticket_results")
@KeySequence("mes_mold_ticket_results_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MoldTicketResultsDO extends BaseDO {
/**
* id
*/
@TableId
private Long id;
/**
*
*/
private String inspectionItemName;
/**
*
*/
private String inspectionMethod;
/**
*
*/
private String judgmentCriteria;
/**
* 0- 1- 2-
*/
private Integer inspectionResult;
/**
*
*/
private String images;
/**
*
*/
private String remark;
/**
*
*/
private LocalDateTime inspectionTime;
/**
*
*/
private Long managementId;
/**
* id
*/
private Long moldId;
}

@ -0,0 +1,39 @@
package cn.iocoder.yudao.module.mes.dal.dataobject.subjectmoldplan;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/**
* DO
*
* @author
*/
@TableName("mes_subject_mold_plan")
@KeySequence("mes_subject_mold_plan_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SubjectMoldPlanDO extends BaseDO {
/**
* id
*/
@TableId
private Long id;
/**
* ID
*/
private Long subjectId;
/**
* ID
*/
private Long planId;
}

@ -0,0 +1,47 @@
package cn.iocoder.yudao.module.mes.dal.mysql.moldplanmaintenance;
import java.util.*;
import java.util.stream.Collectors;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.mes.dal.dataobject.dvsubject.DvSubjectDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldplanmaintenance.MoldPlanMaintenanceDO;
import com.alibaba.excel.util.StringUtils;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.mes.controller.admin.moldplanmaintenance.vo.*;
/**
* Mapper
*
* @author
*/
@Mapper
public interface MoldPlanMaintenanceMapper extends BaseMapperX<MoldPlanMaintenanceDO> {
default PageResult<MoldPlanMaintenanceDO> selectPage(MoldPlanMaintenancePageReqVO reqVO) {
LambdaQueryWrapperX<MoldPlanMaintenanceDO> moldplanMaintenanceDOLambdaQueryWrapperX = new LambdaQueryWrapperX<>();
moldplanMaintenanceDOLambdaQueryWrapperX
.likeIfPresent(MoldPlanMaintenanceDO::getPlanName, reqVO.getPlanName())
.eqIfPresent(MoldPlanMaintenanceDO::getPlanType, reqVO.getPlanType())
.eqIfPresent(MoldPlanMaintenanceDO::getDescription, reqVO.getDescription())
.betweenIfPresent(MoldPlanMaintenanceDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(MoldPlanMaintenanceDO::getCreateTime);
// 单独处理 ids 条件
if (StringUtils.isNotBlank(reqVO.getIds())) {
List<Long> idList = Arrays.stream(reqVO.getIds().split(","))
.map(String::trim)
.map(Long::valueOf)
.collect(Collectors.toList());
moldplanMaintenanceDOLambdaQueryWrapperX.in(MoldPlanMaintenanceDO::getId, idList);
}
PageResult<MoldPlanMaintenanceDO> moldplanMaintenanceDOPageResult = selectPage(reqVO, moldplanMaintenanceDOLambdaQueryWrapperX);
return moldplanMaintenanceDOPageResult;
}
}

@ -0,0 +1,52 @@
package cn.iocoder.yudao.module.mes.dal.mysql.moldsubject;
import java.util.*;
import java.util.stream.Collectors;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.mes.dal.dataobject.deviceledger.DeviceLedgerDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldsubject.MoldSubjectDO;
import com.alibaba.excel.util.StringUtils;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.mes.controller.admin.moldsubject.vo.*;
/**
* Mapper
*
* @author
*/
@Mapper
public interface MoldSubjectMapper extends BaseMapperX<MoldSubjectDO> {
default PageResult<MoldSubjectDO> selectPage(MoldSubjectPageReqVO reqVO) {
LambdaQueryWrapperX<MoldSubjectDO> moldSubjectDOLambdaQueryWrapperX = new LambdaQueryWrapperX<>();
moldSubjectDOLambdaQueryWrapperX
.likeIfPresent(MoldSubjectDO::getInspectionMethod, reqVO.getInspectionMethod())
.likeIfPresent(MoldSubjectDO::getValueType, reqVO.getValueType())
.likeIfPresent(MoldSubjectDO::getJudgmentCriteria, reqVO.getJudgmentCriteria())
.likeIfPresent(MoldSubjectDO::getSubjectCode, reqVO.getSubjectCode())
.likeIfPresent(MoldSubjectDO::getSubjectName, reqVO.getSubjectName())
.eqIfPresent(MoldSubjectDO::getSubjectType, reqVO.getSubjectType())
.eqIfPresent(MoldSubjectDO::getSubjectContent, reqVO.getSubjectContent())
.eqIfPresent(MoldSubjectDO::getSubjectStandard, reqVO.getSubjectStandard())
.eqIfPresent(MoldSubjectDO::getIsEnable, reqVO.getIsEnable())
.betweenIfPresent(MoldSubjectDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(MoldSubjectDO::getCreateTime);
// 单独处理 ids 条件
if (StringUtils.isNotBlank(reqVO.getIds())) {
List<Long> idList = Arrays.stream(reqVO.getIds().split(","))
.map(String::trim)
.map(Long::valueOf)
.collect(Collectors.toList());
moldSubjectDOLambdaQueryWrapperX.in(MoldSubjectDO::getId, idList);
}
return selectPage(reqVO, moldSubjectDOLambdaQueryWrapperX);
}
}

@ -0,0 +1,53 @@
package cn.iocoder.yudao.module.mes.dal.mysql.moldtaskmanagement;
import java.util.*;
import java.util.stream.Collectors;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldplanmaintenance.MoldPlanMaintenanceDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldtaskmanagement.MoldTaskManagementDO;
import com.alibaba.excel.util.StringUtils;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement.vo.*;
/**
* Mapper
*
* @author
*/
@Mapper
public interface MoldTaskManagementMapper extends BaseMapperX<MoldTaskManagementDO> {
default PageResult<MoldTaskManagementDO> selectPage(MoldTaskManagementPageReqVO reqVO) {
LambdaQueryWrapperX<MoldTaskManagementDO> moldtaskManagementDOLambdaQueryWrapperX = new LambdaQueryWrapperX<>();
moldtaskManagementDOLambdaQueryWrapperX
.likeIfPresent(MoldTaskManagementDO::getName, reqVO.getName())
.eqIfPresent(MoldTaskManagementDO::getTaskType, reqVO.getTaskType())
.eqIfPresent(MoldTaskManagementDO::getMoldList, reqVO.getMoldList())
.eqIfPresent(MoldTaskManagementDO::getProjectForm, reqVO.getProjectForm())
.betweenIfPresent(MoldTaskManagementDO::getStartDate, reqVO.getStartDate())
.betweenIfPresent(MoldTaskManagementDO::getEndDate, reqVO.getEndDate())
.eqIfPresent(MoldTaskManagementDO::getCronExpression, reqVO.getCronExpression())
.eqIfPresent(MoldTaskManagementDO::getOperableUsers, reqVO.getOperableUsers())
.eqIfPresent(MoldTaskManagementDO::getEnabled, reqVO.getEnabled())
.betweenIfPresent(MoldTaskManagementDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(MoldTaskManagementDO::getId);
// 单独处理 ids 条件
if (StringUtils.isNotBlank(reqVO.getIds())) {
List<Long> idList = Arrays.stream(reqVO.getIds().split(","))
.map(String::trim)
.map(Long::valueOf)
.collect(Collectors.toList());
moldtaskManagementDOLambdaQueryWrapperX.in(MoldTaskManagementDO::getId, idList);
}
return selectPage(reqVO, moldtaskManagementDOLambdaQueryWrapperX);
}
}

@ -0,0 +1,63 @@
package cn.iocoder.yudao.module.mes.dal.mysql.moldticketmanagement;
import java.util.*;
import java.util.stream.Collectors;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldtaskmanagement.MoldTaskManagementDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldticketmanagement.MoldTicketManagementDO;
import com.alibaba.excel.util.StringUtils;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.mes.controller.admin.moldticketmanagement.vo.*;
import org.apache.ibatis.annotations.Param;
/**
* Mapper
*
* @author
*/
@Mapper
public interface MoldTicketManagementMapper extends BaseMapperX<MoldTicketManagementDO> {
default PageResult<MoldTicketManagementDO> selectPage(MoldTicketManagementPageReqVO reqVO) {
LambdaQueryWrapperX<MoldTicketManagementDO> ticketManagementDOLambdaQueryWrapperX = new LambdaQueryWrapperX<>();
ticketManagementDOLambdaQueryWrapperX
.eqIfPresent(MoldTicketManagementDO::getTaskId, reqVO.getTaskId())
.eqIfPresent(MoldTicketManagementDO::getPlanId, reqVO.getPlanId())
.eqIfPresent(MoldTicketManagementDO::getPlanNo, reqVO.getPlanNo())
.likeIfPresent(MoldTicketManagementDO::getMoldName, reqVO.getMoldName())
.eqIfPresent(MoldTicketManagementDO::getPlanType, reqVO.getPlanType())
.likeIfPresent(MoldTicketManagementDO::getConfigName, reqVO.getConfigName())
.eqIfPresent(MoldTicketManagementDO::getJobStatus, reqVO.getJobStatus())
.eqIfPresent(MoldTicketManagementDO::getJobResult, reqVO.getJobResult())
.orderByDesc(MoldTicketManagementDO::getCreateTime);
// 单独处理 ids 条件
if (StringUtils.isNotBlank(reqVO.getIds())) {
List<Long> idList = Arrays.stream(reqVO.getIds().split(","))
.map(String::trim)
.map(Long::valueOf)
.collect(Collectors.toList());
ticketManagementDOLambdaQueryWrapperX.in(MoldTicketManagementDO::getId, idList);
}
return selectPage(reqVO,ticketManagementDOLambdaQueryWrapperX);
}
/**
*
*
* @param idList ID
* @param jobStatus
* @return
*/
int batchUpdateJobStatus(@Param("idList") List<Long> idList,
@Param("jobStatus") Integer jobStatus);
}

@ -0,0 +1,36 @@
package cn.iocoder.yudao.module.mes.dal.mysql.moldticketresults;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldticketresults.MoldTicketResultsDO;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.mes.controller.admin.moldticketresults.vo.*;
import org.apache.ibatis.annotations.Param;
/**
* Mapper
*
* @author
*/
@Mapper
public interface MoldTicketResultsMapper extends BaseMapperX<MoldTicketResultsDO> {
default PageResult<MoldTicketResultsDO> selectPage(MoldTicketResultsPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<MoldTicketResultsDO>()
.likeIfPresent(MoldTicketResultsDO::getInspectionItemName, reqVO.getInspectionItemName())
.eqIfPresent(MoldTicketResultsDO::getInspectionMethod, reqVO.getInspectionMethod())
.eqIfPresent(MoldTicketResultsDO::getJudgmentCriteria, reqVO.getJudgmentCriteria())
.eqIfPresent(MoldTicketResultsDO::getInspectionResult, reqVO.getInspectionResult())
.eqIfPresent(MoldTicketResultsDO::getImages, reqVO.getImages())
.eqIfPresent(MoldTicketResultsDO::getRemark, reqVO.getRemark())
.betweenIfPresent(MoldTicketResultsDO::getInspectionTime, reqVO.getInspectionTime())
.eqIfPresent(MoldTicketResultsDO::getManagementId, reqVO.getManagementId())
.betweenIfPresent(MoldTicketResultsDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(MoldTicketResultsDO::getId));
}
List<MoldTicketResultsDO> findByDeviceIdAndPlanType(@Param("deviceId") Long deviceId,@Param("planType") Integer planType);
}

@ -0,0 +1,35 @@
package cn.iocoder.yudao.module.mes.dal.mysql.subjectmoldplan;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.mes.dal.dataobject.subjectmoldplan.SubjectMoldPlanDO;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.mes.controller.admin.subjectmoldplan.vo.*;
/**
* Mapper
*
* @author
*/
@Mapper
public interface SubjectMoldPlanMapper extends BaseMapperX<SubjectMoldPlanDO> {
default PageResult<SubjectMoldPlanDO> selectPage(SubjectMoldPlanPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<SubjectMoldPlanDO>()
.eqIfPresent(SubjectMoldPlanDO::getSubjectId, reqVO.getSubjectId())
.eqIfPresent(SubjectMoldPlanDO::getPlanId, reqVO.getPlanId())
.betweenIfPresent(SubjectMoldPlanDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(SubjectMoldPlanDO::getId));
}
/**
*
*
* @param planId ID
*/
@Delete("DELETE FROM besure.mes_subject_mold_plan WHERE plan_id = #{planId}")
void deleteByPlanId(Long planId);
}

@ -0,0 +1,59 @@
package cn.iocoder.yudao.module.mes.service.moldplanmaintenance;
import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.module.mes.controller.admin.moldplanmaintenance.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldsubject.MoldSubjectDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldplanmaintenance.MoldPlanMaintenanceDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.module.mes.dal.dataobject.subjectmoldplan.SubjectMoldPlanDO;
/**
* Service
*
* @author
*/
public interface MoldPlanMaintenanceService {
/**
*
*
* @param createReqVO
* @return
*/
Long createMoldPlanMaintenance(@Valid MoldPlanMaintenanceSaveReqVO createReqVO);
/**
*
*
* @param updateReqVO
*/
void updateMoldPlanMaintenance(@Valid MoldPlanMaintenanceSaveReqVO updateReqVO);
/**
*
*
* @param id
*/
void deleteMoldPlanMaintenance( List<Long> idList);
/**
*
*
* @param id
* @return
*/
MoldPlanMaintenanceDO getMoldPlanMaintenance(Long id);
/**
*
*
* @param pageReqVO
* @return
*/
PageResult<MoldPlanMaintenanceDO> getMoldPlanMaintenancePage(MoldPlanMaintenancePageReqVO pageReqVO);
List<MoldSubjectDO> getSubjectList(Long id);
}

@ -0,0 +1,192 @@
package cn.iocoder.yudao.module.mes.service.moldplanmaintenance;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldsubject.MoldSubjectDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.subjectmoldplan.SubjectMoldPlanDO;
import cn.iocoder.yudao.module.mes.dal.mysql.moldsubject.MoldSubjectMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.subjectmoldplan.SubjectMoldPlanMapper;
import cn.iocoder.yudao.module.mes.service.moldplanmaintenance.MoldPlanMaintenanceService;
import cn.iocoder.yudao.module.mes.service.subjectmoldplan.SubjectMoldPlanService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
import cn.iocoder.yudao.module.mes.controller.admin.moldplanmaintenance.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldplanmaintenance.MoldPlanMaintenanceDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.mes.dal.mysql.moldplanmaintenance.MoldPlanMaintenanceMapper;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
/**
* Service
*
* @author
*/
@Service
@Validated
public class MoldPlanMaintenanceServiceImpl implements MoldPlanMaintenanceService {
@Resource
private MoldPlanMaintenanceMapper moldplanMaintenanceMapper;
@Resource
private SubjectMoldPlanMapper subjectMoldPlanMapper;
@Resource
private MoldSubjectMapper moldSubjectMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public Long createMoldPlanMaintenance(MoldPlanMaintenanceSaveReqVO createReqVO) {
// 插入
MoldPlanMaintenanceDO moldplanMaintenance = BeanUtils.toBean(createReqVO, MoldPlanMaintenanceDO.class);
moldplanMaintenanceMapper.insert(moldplanMaintenance);
if (StringUtils.isNotBlank(createReqVO.getSubjectIdS())){
// 将逗号分隔的字符串转换为Long类型的List
List<Long> idList = Arrays.stream( createReqVO.getSubjectIdS().split(","))
.map(String::trim) // 去除可能存在的空格
.map(Long::valueOf)
.collect(Collectors.toList());
//插入关联表
insertSubjectMoldPlan(moldplanMaintenance.getId(),idList);
}
// 返回
return moldplanMaintenance.getId();
}
private void insertSubjectMoldPlan(Long id, List<Long> idList) {
List<SubjectMoldPlanDO> subjectMoldPlanDOArrayList = new ArrayList<>();
for (Long subjectId : idList) {
SubjectMoldPlanDO subjectMoldPlanDO = new SubjectMoldPlanDO();
subjectMoldPlanDO.setPlanId(id);
subjectMoldPlanDO.setSubjectId(subjectId);
subjectMoldPlanDOArrayList.add(subjectMoldPlanDO);
}
subjectMoldPlanMapper.insertBatch(subjectMoldPlanDOArrayList);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateMoldPlanMaintenance(MoldPlanMaintenanceSaveReqVO updateReqVO) {
// 校验存在
validateMoldPlanMaintenanceExists(updateReqVO.getId());
// 更新
MoldPlanMaintenanceDO updateObj = BeanUtils.toBean(updateReqVO, MoldPlanMaintenanceDO.class);
moldplanMaintenanceMapper.updateById(updateObj);
if (StringUtils.isNotBlank(updateReqVO.getSubjectIdS())) {
// 将逗号分隔的字符串转换为Long类型的List
List<Long> idList = Arrays.stream( updateReqVO.getSubjectIdS().split(","))
.map(String::trim) // 去除可能存在的空格
.map(Long::valueOf)
.collect(Collectors.toList());
//更新关联表
updateSubjectMoldPlan(updateObj.getId(),idList);
}
}
private void updateSubjectMoldPlan(Long id, List<Long> idList) {
subjectMoldPlanMapper.deleteByPlanId(id);
List<SubjectMoldPlanDO> subjectMoldPlanDOArrayList = new ArrayList<>();
for (Long subjectId : idList) {
SubjectMoldPlanDO subjectMoldPlanDO = new SubjectMoldPlanDO();
subjectMoldPlanDO.setPlanId(id);
subjectMoldPlanDO.setSubjectId(subjectId);
subjectMoldPlanDOArrayList.add(subjectMoldPlanDO);
}
subjectMoldPlanMapper.insertBatch(subjectMoldPlanDOArrayList);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteMoldPlanMaintenance( List<Long> idList) {
for (Long id : idList) {
// 校验存在
validateMoldPlanMaintenanceExists(id);
}
// 删除
moldplanMaintenanceMapper.deleteByIds(idList);
//删除关联表数据
deleteSubjectMoldPlan(idList);
}
private void deleteSubjectMoldPlan(List<Long> idList) {
for (Long id : idList) {
if (id != null ){
subjectMoldPlanMapper.delete(Wrappers.<SubjectMoldPlanDO>lambdaQuery()
.eq(SubjectMoldPlanDO::getPlanId, id));
}
}
}
private void validateMoldPlanMaintenanceExists(Long id) {
if (moldplanMaintenanceMapper.selectById(id) == null) {
throw exception(PLAN_MAINTENANCE_NOT_EXISTS);
}
}
@Override
public MoldPlanMaintenanceDO getMoldPlanMaintenance(Long id) {
return moldplanMaintenanceMapper.selectById(id);
}
@Override
public PageResult<MoldPlanMaintenanceDO> getMoldPlanMaintenancePage(MoldPlanMaintenancePageReqVO pageReqVO) {
PageResult<MoldPlanMaintenanceDO> moldplanMaintenanceDOPageResult = moldplanMaintenanceMapper.selectPage(pageReqVO);
for (MoldPlanMaintenanceDO moldplanMaintenanceDO : moldplanMaintenanceDOPageResult.getList()) {
List<Long> ids = new ArrayList<>();
List<SubjectMoldPlanDO> subjectMoldPlanDOList = subjectMoldPlanMapper.selectList(Wrappers.<SubjectMoldPlanDO>lambdaQuery()
.eq(SubjectMoldPlanDO::getPlanId, moldplanMaintenanceDO.getId()));
for (SubjectMoldPlanDO subjectMoldPlanDO : subjectMoldPlanDOList) {
ids.add(subjectMoldPlanDO.getSubjectId());
}
moldplanMaintenanceDO.setSubjectIds(ids);
}
return moldplanMaintenanceDOPageResult;
}
@Override
public List<MoldSubjectDO> getSubjectList(Long id) {
if (id == null ){
throw exception(SUBJECT_ID_NOT_EXISTS);
}
//查询对应的设备列表
List<MoldSubjectDO> moldSubjectDOList = new ArrayList<>();
List<SubjectMoldPlanDO> subjectMoldPlanDOList = subjectMoldPlanMapper.selectList(Wrappers.<SubjectMoldPlanDO>lambdaQuery()
.eq(SubjectMoldPlanDO::getPlanId, id));
for (SubjectMoldPlanDO subjectMoldPlanDO : subjectMoldPlanDOList) {
MoldSubjectDO moldSubjectDO = moldSubjectMapper.selectById(subjectMoldPlanDO.getSubjectId());
if (moldSubjectDO!=null){
moldSubjectDOList.add(moldSubjectDO);
}
}
return moldSubjectDOList;
}
}

@ -0,0 +1,56 @@
package cn.iocoder.yudao.module.mes.service.moldsubject;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.mes.controller.admin.moldsubject.vo.MoldSubjectPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.moldsubject.vo.MoldSubjectSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldsubject.MoldSubjectDO;
import javax.validation.Valid;
import java.util.List;
/**
* Service
*
* @author
*/
public interface MoldSubjectService {
/**
*
*
* @param createReqVO
* @return
*/
Long createMoldSubject(@Valid MoldSubjectSaveReqVO createReqVO);
/**
*
*
* @param updateReqVO
*/
void updateMoldSubject(@Valid MoldSubjectSaveReqVO updateReqVO);
/**
*
*
* @param id
*/
void deleteMoldSubject(List<Long> idList);
/**
*
*
* @param id
* @return
*/
MoldSubjectDO getMoldSubject(Long id);
/**
*
*
* @param pageReqVO
* @return
*/
PageResult<MoldSubjectDO> getMoldSubjectPage(MoldSubjectPageReqVO pageReqVO);
}

@ -0,0 +1,101 @@
package cn.iocoder.yudao.module.mes.service.moldsubject;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.iot.dal.dataobject.devicemodel.DeviceModelDO;
import cn.iocoder.yudao.module.mes.controller.admin.moldsubject.vo.MoldSubjectPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.moldsubject.vo.MoldSubjectSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.devicetype.DeviceTypeDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldsubject.MoldSubjectDO;
import cn.iocoder.yudao.module.mes.dal.mysql.moldsubject.MoldSubjectMapper;
import cn.iocoder.yudao.module.mes.service.moldsubject.MoldSubjectService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.List;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.DEVICE_MODEL_CODE_EXISTS;
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
/**
* Service
*
* @author
*/
@Service
@Validated
public class MoldSubjectServiceImpl implements MoldSubjectService {
@Resource
private MoldSubjectMapper moldSubjectMapper;
@Override
public Long createMoldSubject(MoldSubjectSaveReqVO createReqVO) {
validateCodeOnly(createReqVO.getSubjectCode());
// 插入
MoldSubjectDO moldSubject = BeanUtils.toBean(createReqVO, MoldSubjectDO.class);
moldSubjectMapper.insert(moldSubject);
// 返回
return moldSubject.getId();
}
private void validateCodeOnly( String code) {
if (moldSubjectMapper.exists(Wrappers.<MoldSubjectDO>lambdaQuery()
.eq(MoldSubjectDO::getSubjectCode, code))) {
throw exception(SUBJECT_EXISTS);
}
}
@Override
public void updateMoldSubject(MoldSubjectSaveReqVO updateReqVO) {
// 校验存在
validateMoldSubjectExists(updateReqVO.getId());
//编码重复判断
Long count = moldSubjectMapper.selectCount(new LambdaQueryWrapper<MoldSubjectDO>()
.eq(MoldSubjectDO::getSubjectCode, updateReqVO.getSubjectCode())
.ne(MoldSubjectDO::getId, updateReqVO.getId())
);
if (count > 0) {
throw exception(SUBJECT_EXISTS);
}
// 更新
MoldSubjectDO updateObj = BeanUtils.toBean(updateReqVO, MoldSubjectDO.class);
moldSubjectMapper.updateById(updateObj);
}
@Override
public void deleteMoldSubject(List<Long> idList) {
for (Long id : idList) {
// 校验存在
validateMoldSubjectExists(id);
}
// 删除
moldSubjectMapper.deleteByIds(idList);
}
private void validateMoldSubjectExists(Long id) {
if (moldSubjectMapper.selectById(id) == null) {
throw exception(DV_SUBJECT_NOT_EXISTS);
}
}
@Override
public MoldSubjectDO getMoldSubject(Long id) {
return moldSubjectMapper.selectById(id);
}
@Override
public PageResult<MoldSubjectDO> getMoldSubjectPage(MoldSubjectPageReqVO pageReqVO) {
return moldSubjectMapper.selectPage(pageReqVO);
}
}

@ -0,0 +1,56 @@
package cn.iocoder.yudao.module.mes.service.moldtaskmanagement;
import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldtaskmanagement.MoldTaskManagementDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
/**
* Service
*
* @author
*/
public interface MoldTaskManagementService {
/**
*
*
* @param createReqVO
* @return
*/
Long createMoldTaskManagement(@Valid MoldTaskManagementSaveReqVO createReqVO);
/**
*
*
* @param updateReqVO
*/
void updateMoldTaskManagement(@Valid MoldTaskManagementSaveReqVO updateReqVO);
/**
*
*
* @param id
*/
void deleteMoldTaskManagement(List<Long> idList );
/**
*
*
* @param id
* @return
*/
MoldTaskManagementDO getMoldTaskManagement(Long id);
/**
*
*
* @param pageReqVO
* @return
*/
PageResult<MoldTaskManagementDO> getMoldTaskManagementPage(MoldTaskManagementPageReqVO pageReqVO);
void createMoldTicket(Long id);
}

@ -0,0 +1,178 @@
package cn.iocoder.yudao.module.mes.service.moldtaskmanagement;
import cn.iocoder.yudao.module.erp.dal.dataobject.mold.MoldDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.dvsubject.DvSubjectDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldplanmaintenance.MoldPlanMaintenanceDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.subjectplan.SubjectPlanDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldticketmanagement.MoldTicketManagementDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldticketresults.MoldTicketResultsDO;
import cn.iocoder.yudao.module.erp.dal.mysql.mold.MoldMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.dvsubject.DvSubjectMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.moldplanmaintenance.MoldPlanMaintenanceMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.subjectplan.SubjectPlanMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.moldticketmanagement.MoldTicketManagementMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.moldticketresults.MoldTicketResultsMapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
import cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldtaskmanagement.MoldTaskManagementDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.mes.dal.mysql.moldtaskmanagement.MoldTaskManagementMapper;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
/**
* Service
*
* @author
*/
@Service
@Validated
public class MoldTaskManagementServiceImpl implements MoldTaskManagementService {
@Resource
private MoldTaskManagementMapper moldtaskManagementMapper;
@Resource
private MoldTicketManagementMapper moldticketManagementMapper;
@Resource
private MoldTicketResultsMapper moldticketResultsMapper;
@Resource
private MoldMapper moldMapper;
@Resource
private MoldPlanMaintenanceMapper moldplanMaintenanceMapper;
@Resource
private SubjectPlanMapper subjectPlanMapper;
@Resource
private DvSubjectMapper dvSubjectMapper;
@Override
public Long createMoldTaskManagement(MoldTaskManagementSaveReqVO createReqVO) {
// 插入
MoldTaskManagementDO moldtaskManagement = BeanUtils.toBean(createReqVO, MoldTaskManagementDO.class);
moldtaskManagementMapper.insert(moldtaskManagement);
// 返回
return moldtaskManagement.getId();
}
@Override
public void updateMoldTaskManagement(MoldTaskManagementSaveReqVO updateReqVO) {
// 校验存在
validateMoldTaskManagementExists(updateReqVO.getId());
// 更新
MoldTaskManagementDO updateObj = BeanUtils.toBean(updateReqVO, MoldTaskManagementDO.class);
moldtaskManagementMapper.updateById(updateObj);
}
@Override
public void deleteMoldTaskManagement(List<Long> idList ) {
for (Long id : idList) {
// 校验存在
validateMoldTaskManagementExists(id);
}
// 删除
moldtaskManagementMapper.deleteByIds(idList);
}
private void validateMoldTaskManagementExists(Long id) {
if (moldtaskManagementMapper.selectById(id) == null) {
throw exception(TASK_MANAGEMENT_NOT_EXISTS);
}
}
@Override
public MoldTaskManagementDO getMoldTaskManagement(Long id) {
return moldtaskManagementMapper.selectById(id);
}
@Override
public PageResult<MoldTaskManagementDO> getMoldTaskManagementPage(MoldTaskManagementPageReqVO pageReqVO) {
PageResult<MoldTaskManagementDO> moldtaskManagementDOPageResult = moldtaskManagementMapper.selectPage(pageReqVO);
for (MoldTaskManagementDO moldtaskManagementDO : moldtaskManagementDOPageResult.getList()) {
MoldPlanMaintenanceDO moldplanMaintenanceDO = moldplanMaintenanceMapper.selectById(moldtaskManagementDO.getProjectForm());
moldtaskManagementDO.setProjectFormName(moldplanMaintenanceDO.getPlanName());
}
return moldtaskManagementDOPageResult;
}
@Override
public void createMoldTicket(Long id) {
List<MoldTicketManagementDO> moldticketManagementDOS = new ArrayList<>();
//检验数据是否存在
validateMoldTaskManagementExists(id);
MoldTaskManagementDO moldtaskManagementDO = moldtaskManagementMapper.selectById(id);
if (moldtaskManagementDO == null){
throw exception(TASK_MANAGEMENT_NOT_EXISTS);
}
// 将逗号分隔的字符串转换为Long类型的List
List<Long> idList = Arrays.stream(moldtaskManagementDO.getMoldList().split(","))
.map(String::trim) // 去除可能存在的空格
.map(Long::valueOf)
.collect(Collectors.toList());
for (Long moldId : idList) {
MoldTicketManagementDO moldticketManagementDO = new MoldTicketManagementDO();
MoldDO moldDO = moldMapper.selectById(moldId);
moldticketManagementDO.setTaskId(moldtaskManagementDO.getId());
moldticketManagementDO.setPlanNo(generatePrefixedOrderNo());
moldticketManagementDO.setPlanId(moldtaskManagementDO.getProjectForm());
moldticketManagementDO.setMoldName(moldDO.getName());
moldticketManagementDO.setPlanType(moldtaskManagementDO.getTaskType());
moldticketManagementDO.setConfigName(moldtaskManagementDO.getName());
moldticketManagementDO.setTaskEndTime(moldtaskManagementDO.getEndDate().atStartOfDay());
moldticketManagementMapper.insert(moldticketManagementDO);
List<DvSubjectDO> dvSubjectDOList = new ArrayList<>();
List<SubjectPlanDO> subjectPlanDOList = subjectPlanMapper.selectList(Wrappers.<SubjectPlanDO>lambdaQuery().eq(SubjectPlanDO::getPlanId, moldticketManagementDO.getPlanId()));
for (SubjectPlanDO subjectPlanDO : subjectPlanDOList) {
DvSubjectDO dvSubjectDO = dvSubjectMapper.selectById(subjectPlanDO.getSubjectId());
MoldTicketResultsDO moldticketResultsDO = new MoldTicketResultsDO();
moldticketResultsDO.setInspectionItemName(dvSubjectDO.getSubjectName());
moldticketResultsDO.setInspectionMethod(dvSubjectDO.getInspectionMethod());
moldticketResultsDO.setJudgmentCriteria(dvSubjectDO.getJudgmentCriteria());
moldticketResultsDO.setManagementId(moldticketManagementDO.getId());
moldticketResultsDO.setMoldId(moldId);
moldticketResultsMapper.insert(moldticketResultsDO);
}
}
}
/**
*
*/
public static String generatePrefixedOrderNo() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String date = sdf.format(new Date());
String randomNum = String.format("%06d", new Random().nextInt(1000000));
return "E" + date + randomNum;
}
}

@ -0,0 +1,56 @@
package cn.iocoder.yudao.module.mes.service.moldticketmanagement;
import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.module.mes.controller.admin.moldticketmanagement.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldticketmanagement.MoldTicketManagementDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
/**
* Service
*
* @author
*/
public interface MoldTicketManagementService {
/**
*
*
* @param createReqVO
* @return
*/
Long createMoldTicketManagement(@Valid MoldTicketManagementSaveReqVO createReqVO);
/**
*
*
* @param updateReqVO
*/
void updateMoldTicketManagement(@Valid MoldTicketManagementSaveReqVO updateReqVO);
/**
*
*
* @param id
*/
void deleteMoldTicketManagement(Long id);
/**
*
*
* @param id
* @return
*/
MoldTicketManagementDO getMoldTicketManagement(Long id);
/**
*
*
* @param pageReqVO
* @return
*/
PageResult<MoldTicketManagementDO> getMoldTicketManagementPage(MoldTicketManagementPageReqVO pageReqVO);
void batchUpdateJobStatus(@Valid MoldTicketManagementBatchUpdateReqVO reqVO);
}

@ -0,0 +1,107 @@
package cn.iocoder.yudao.module.mes.service.moldticketmanagement;
import cn.iocoder.yudao.module.mes.service.moldticketmanagement.MoldTicketManagementService;
import com.alibaba.excel.util.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
import cn.iocoder.yudao.module.mes.controller.admin.moldticketmanagement.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldticketmanagement.MoldTicketManagementDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.mes.dal.mysql.moldticketmanagement.MoldTicketManagementMapper;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
/**
* Service
*
* @author
*/
@Service
@Validated
public class MoldTicketManagementServiceImpl implements MoldTicketManagementService {
@Resource
private MoldTicketManagementMapper moldticketManagementMapper;
@Override
public Long createMoldTicketManagement(MoldTicketManagementSaveReqVO createReqVO) {
// 插入
MoldTicketManagementDO moldticketManagement = BeanUtils.toBean(createReqVO, MoldTicketManagementDO.class);
moldticketManagementMapper.insert(moldticketManagement);
// 返回
return moldticketManagement.getId();
}
@Override
public void updateMoldTicketManagement(MoldTicketManagementSaveReqVO updateReqVO) {
// 校验存在
validateMoldTicketManagementExists(updateReqVO.getId());
// 更新
MoldTicketManagementDO updateObj = BeanUtils.toBean(updateReqVO, MoldTicketManagementDO.class);
moldticketManagementMapper.updateById(updateObj);
}
@Override
public void deleteMoldTicketManagement(Long id) {
// 校验存在
validateMoldTicketManagementExists(id);
// 删除
moldticketManagementMapper.deleteById(id);
}
private void validateMoldTicketManagementExists(Long id) {
if (moldticketManagementMapper.selectById(id) == null) {
throw exception(TICKET_MANAGEMENT_NOT_EXISTS);
}
}
@Override
public MoldTicketManagementDO getMoldTicketManagement(Long id) {
return moldticketManagementMapper.selectById(id);
}
@Override
public PageResult<MoldTicketManagementDO> getMoldTicketManagementPage(MoldTicketManagementPageReqVO pageReqVO) {
return moldticketManagementMapper.selectPage(pageReqVO);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void batchUpdateJobStatus(MoldTicketManagementBatchUpdateReqVO reqVO) {
// 1. 解析ID列表
List<Long> idList = parseIds(reqVO.getIds());
if (idList.isEmpty()) {
throw exception(TICKET_MANAGEMENT_NOT_EXISTS);
}
// 2. 批量更新
moldticketManagementMapper.batchUpdateJobStatus(idList, reqVO.getJobStatus());
}
/**
* ID
*/
private List<Long> parseIds(String ids) {
if (StringUtils.isBlank(ids)) {
return Collections.emptyList();
}
return Arrays.stream(ids.split(","))
.map(String::trim)
.filter(StringUtils::isNotBlank)
.map(Long::valueOf)
.distinct()
.collect(Collectors.toList());
}
}

@ -0,0 +1,62 @@
package cn.iocoder.yudao.module.mes.service.moldticketresults;
import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.module.mes.controller.admin.moldticketresults.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldticketresults.MoldTicketResultsDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
/**
* Service
*
* @author
*/
public interface MoldTicketResultsService {
/**
*
*
* @param createReqVO
* @return
*/
Long createMoldTicketResults(@Valid MoldTicketResultsSaveReqVO createReqVO);
/**
*
*
* @param updateReqVO
*/
void updateMoldTicketResults(@Valid MoldTicketResultsSaveReqVO updateReqVO);
/**
*
*
* @param id
*/
void deleteMoldTicketResults(Long id);
/**
*
*
* @param id
* @return
*/
MoldTicketResultsDO getMoldTicketResults(Long id);
/**
*
*
* @param pageReqVO
* @return
*/
PageResult<MoldTicketResultsDO> getMoldTicketResultsPage(MoldTicketResultsPageReqVO pageReqVO);
/**
*
*
* @param updateReqVOList
* @return
*/
void batchUpdateMoldTicketResults(@Valid List<MoldTicketResultsSaveReqVO> updateReqVOList);
}

@ -0,0 +1,182 @@
package cn.iocoder.yudao.module.mes.service.moldticketresults;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.mes.controller.admin.moldticketresults.enums.MoldJobResultEnum;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldticketmanagement.MoldTicketManagementDO;
import cn.iocoder.yudao.module.mes.dal.mysql.moldticketmanagement.MoldTicketManagementMapper;
import cn.iocoder.yudao.module.mes.service.moldticketresults.MoldTicketResultsService;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.*;
import cn.iocoder.yudao.module.mes.controller.admin.moldticketresults.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldticketresults.MoldTicketResultsDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.mes.dal.mysql.moldticketresults.MoldTicketResultsMapper;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
/**
* Service
*
* @author
*/
@Service
@Validated
public class MoldTicketResultsServiceImpl implements MoldTicketResultsService {
@Resource
private MoldTicketResultsMapper moldticketResultsMapper;
@Resource
@Lazy
private MoldTicketManagementMapper moldticketManagementMapper;
@Override
public Long createMoldTicketResults(MoldTicketResultsSaveReqVO createReqVO) {
// 插入
MoldTicketResultsDO moldticketResults = BeanUtils.toBean(createReqVO, MoldTicketResultsDO.class);
moldticketResultsMapper.insert(moldticketResults);
// 返回
return moldticketResults.getId();
}
@Override
public void updateMoldTicketResults(MoldTicketResultsSaveReqVO updateReqVO) {
// 校验存在
validateMoldTicketResultsExists(updateReqVO.getId());
// 更新
MoldTicketResultsDO updateObj = BeanUtils.toBean(updateReqVO, MoldTicketResultsDO.class);
moldticketResultsMapper.updateById(updateObj);
}
@Override
public void deleteMoldTicketResults(Long id) {
// 校验存在
validateMoldTicketResultsExists(id);
// 删除
moldticketResultsMapper.deleteById(id);
}
private void validateMoldTicketResultsExists(Long id) {
if (moldticketResultsMapper.selectById(id) == null) {
throw exception(TICKET_RESULTS_NOT_EXISTS);
}
}
@Override
public MoldTicketResultsDO getMoldTicketResults(Long id) {
return moldticketResultsMapper.selectById(id);
}
@Override
public PageResult<MoldTicketResultsDO> getMoldTicketResultsPage(MoldTicketResultsPageReqVO pageReqVO) {
return moldticketResultsMapper.selectPage(pageReqVO);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void batchUpdateMoldTicketResults(List<MoldTicketResultsSaveReqVO> updateReqVOList) {
if (CollectionUtils.isEmpty(updateReqVOList)) {
return;
}
// 1. 数据验证
validateBatchUpdateData(updateReqVOList);
// 2. 批量更新
List<MoldTicketResultsDO> updateList = new ArrayList<>();
LocalDateTime now = LocalDateTime.now();
for (MoldTicketResultsSaveReqVO vo : updateReqVOList) {
// 转换为DO
MoldTicketResultsDO updateDO = BeanUtils.toBean(vo, MoldTicketResultsDO.class);
updateDO.setUpdateTime(now);
updateList.add(updateDO);
}
// 3. 执行批量更新
moldticketResultsMapper.updateBatch(updateList);
//4. 判断是否全部已检验
handleInspectionResult(updateReqVOList);
}
/**
*
*/
private void validateBatchUpdateData(List<MoldTicketResultsSaveReqVO> updateReqVOList) {
if (CollectionUtils.isEmpty(updateReqVOList)) {
return;
}
Set<Long> idSet = new HashSet<>();
for (int i = 0; i < updateReqVOList.size(); i++) {
MoldTicketResultsSaveReqVO vo = updateReqVOList.get(i);
// 验证ID不能为空
if (vo.getId() == null) {
throw exception(TICKET_RESULTS_ID_NOT_NULL);
}
idSet.add(vo.getId());
// 调用单个验证逻辑
validateMoldTicketResultsExists(vo.getId());
}
}
/**
*
*/
private void handleInspectionResult(List<MoldTicketResultsSaveReqVO> updateReqVOList) {
if (CollectionUtils.isEmpty(updateReqVOList)) {
return;
}
// 检查是否有未填写的
boolean hasPending = updateReqVOList.stream()
.anyMatch(vo -> vo.getInspectionResult() == null || vo.getInspectionResult().equals(MoldJobResultEnum.PENDING.getCode()));
if (hasPending) {
return;
}
MoldTicketManagementDO moldticketManagementDO = moldticketManagementMapper.selectById(updateReqVOList.get(0).getManagementId());
if (moldticketManagementDO == null ){
throw exception(TICKET_MANAGEMENT_NOT_EXISTS);
}
moldticketManagementDO.setTaskTime(LocalDateTime.now());
//设置为已完成
moldticketManagementDO.setJobStatus(1);
// 检查是否有不通过的
boolean hasFail = updateReqVOList.stream()
.anyMatch(vo -> vo.getInspectionResult() != null && vo.getInspectionResult().equals(MoldJobResultEnum.FAIL.getCode()));
if (hasFail) {
moldticketManagementDO.setJobResult(MoldJobResultEnum.FAIL.getCode());
} else {
moldticketManagementDO.setJobResult(MoldJobResultEnum.PASS.getCode());
}
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
moldticketManagementDO.setOperator(String.valueOf(loginUser.getId()));
moldticketManagementMapper.updateById(moldticketManagementDO);
}
}

@ -0,0 +1,55 @@
package cn.iocoder.yudao.module.mes.service.subjectmoldplan;
import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.module.mes.controller.admin.subjectmoldplan.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.subjectmoldplan.SubjectMoldPlanDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
/**
* Service
*
* @author
*/
public interface SubjectMoldPlanService {
/**
*
*
* @param createReqVO
* @return
*/
Long createSubjectMoldPlan(@Valid SubjectMoldPlanSaveReqVO createReqVO);
/**
*
*
* @param updateReqVO
*/
void updateSubjectMoldPlan(@Valid SubjectMoldPlanSaveReqVO updateReqVO);
/**
*
*
* @param id
*/
void deleteSubjectMoldPlan(Long id);
/**
*
*
* @param id
* @return
*/
SubjectMoldPlanDO getSubjectMoldPlan(Long id);
/**
*
*
* @param pageReqVO
* @return
*/
PageResult<SubjectMoldPlanDO> getSubjectMoldPlanPage(SubjectMoldPlanPageReqVO pageReqVO);
}

@ -0,0 +1,75 @@
package cn.iocoder.yudao.module.mes.service.subjectmoldplan;
import cn.iocoder.yudao.module.mes.service.subjectmoldplan.SubjectMoldPlanService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import cn.iocoder.yudao.module.mes.controller.admin.subjectmoldplan.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.subjectmoldplan.SubjectMoldPlanDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.mes.dal.mysql.subjectmoldplan.SubjectMoldPlanMapper;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
/**
* Service
*
* @author
*/
@Service
@Validated
public class SubjectMoldPlanServiceImpl implements SubjectMoldPlanService {
@Resource
private SubjectMoldPlanMapper subjectMoldPlanMapper;
@Override
public Long createSubjectMoldPlan(SubjectMoldPlanSaveReqVO createReqVO) {
// 插入
SubjectMoldPlanDO subjectMoldPlan = BeanUtils.toBean(createReqVO, SubjectMoldPlanDO.class);
subjectMoldPlanMapper.insert(subjectMoldPlan);
// 返回
return subjectMoldPlan.getId();
}
@Override
public void updateSubjectMoldPlan(SubjectMoldPlanSaveReqVO updateReqVO) {
// 校验存在
validateSubjectMoldPlanExists(updateReqVO.getId());
// 更新
SubjectMoldPlanDO updateObj = BeanUtils.toBean(updateReqVO, SubjectMoldPlanDO.class);
subjectMoldPlanMapper.updateById(updateObj);
}
@Override
public void deleteSubjectMoldPlan(Long id) {
// 校验存在
validateSubjectMoldPlanExists(id);
// 删除
subjectMoldPlanMapper.deleteById(id);
}
private void validateSubjectMoldPlanExists(Long id) {
if (subjectMoldPlanMapper.selectById(id) == null) {
throw exception(SUBJECT_PLAN_NOT_EXISTS);
}
}
@Override
public SubjectMoldPlanDO getSubjectMoldPlan(Long id) {
return subjectMoldPlanMapper.selectById(id);
}
@Override
public PageResult<SubjectMoldPlanDO> getSubjectMoldPlanPage(SubjectMoldPlanPageReqVO pageReqVO) {
return subjectMoldPlanMapper.selectPage(pageReqVO);
}
}

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.mes.dal.mysql.moldsubject.MoldSubjectMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.mes.dal.mysql.moldticketmanagement.MoldTicketManagementMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
<!-- 批量更新作业状态 -->
<update id="batchUpdateJobStatus">
UPDATE mes_mold_ticket_management
SET job_status = #{jobStatus},
update_time = NOW()
WHERE id IN
<foreach collection="idList" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</update></mapper>

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.mes.dal.mysql.moldticketresults.MoldTicketResultsMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
<select id="findByMoldIdAndPlanType"
resultType="cn.iocoder.yudao.module.mes.dal.dataobject.moldticketresults.MoldTicketResultsDO">
SELECT
mtr.*
from
besure.mes_mold_ticket_results mtr
left join besure.mes_mold_ticket_management mtm on mtm.id = mtr.management_id
WHERE 1=1
<!-- 必填条件 -->
<if test="moldId != null and moldId != ''">
and mtr.mold_id = #{moldId}
</if>
<if test="planType != null and planType != ''">
and mtm.plan_type= #{planType}
</if>
order by mtr.create_time desc
</select>
</mapper>
Loading…
Cancel
Save