fix:修改了一些质量管理的显示问题

plp
86158 4 months ago
parent ca5466e499
commit 897e7dffd4

@ -1,5 +1,7 @@
package cn.iocoder.yudao.module.mes.controller.admin.zjitem; package cn.iocoder.yudao.module.mes.controller.admin.zjitem;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductUnitDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.deviceledger.DeviceLedgerDO; import cn.iocoder.yudao.module.mes.dal.dataobject.deviceledger.DeviceLedgerDO;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.common.util.collection.MapUtils; import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
@ -20,6 +22,7 @@ import javax.validation.*;
import javax.servlet.http.*; import javax.servlet.http.*;
import java.util.*; import java.util.*;
import java.io.IOException; import java.io.IOException;
import java.util.stream.Collectors;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
@ -37,6 +40,9 @@ import cn.iocoder.yudao.module.mes.controller.admin.zjitem.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.zjitem.ZjItemDO; import cn.iocoder.yudao.module.mes.dal.dataobject.zjitem.ZjItemDO;
import cn.iocoder.yudao.module.mes.service.zjitem.ZjItemService; import cn.iocoder.yudao.module.mes.service.zjitem.ZjItemService;
import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ErpProductRespVO;
import cn.iocoder.yudao.module.erp.service.product.ErpProductUnitService;
@Tag(name = "管理后台 - 质量管理-检验项目") @Tag(name = "管理后台 - 质量管理-检验项目")
@RestController @RestController
@RequestMapping("/mes/zj-item") @RequestMapping("/mes/zj-item")
@ -47,6 +53,8 @@ public class ZjItemController {
private ZjItemService zjItemService; private ZjItemService zjItemService;
@Resource @Resource
private ZjTypeService zjTypeService; private ZjTypeService zjTypeService;
@Resource
private ErpProductUnitService productUnitService;
@PostMapping("/create") @PostMapping("/create")
@Operation(summary = "创建质量管理-检验项目") @Operation(summary = "创建质量管理-检验项目")
@ -88,14 +96,34 @@ public class ZjItemController {
PageResult<ZjItemDO> pageResult = zjItemService.getZjItemPage(pageReqVO); PageResult<ZjItemDO> pageResult = zjItemService.getZjItemPage(pageReqVO);
return success(new PageResult<>(buildVOList(pageResult.getList()), pageResult.getTotal())); return success(new PageResult<>(buildVOList(pageResult.getList()), pageResult.getTotal()));
} }
private List<ZjItemRespVO> buildVOList(List<ZjItemDO> list) { private List<ZjItemRespVO> buildVOList(List<ZjItemDO> list) {
if (CollUtil.isEmpty(list)) { if (CollUtil.isEmpty(list)) {
return Collections.emptyList(); return Collections.emptyList();
} }
Map<Long, ZjTypeDO> zjTypeMap = zjTypeService.getZjTypeVOMap( Map<Long, ZjTypeDO> zjTypeMap = zjTypeService.getZjTypeVOMap(
convertSet(list, ZjItemDO::getZjType)); convertSet(list, ZjItemDO::getZjType));
List<ErpProductUnitDO> unitDOList = productUnitService.getProductUnitListByStatus(CommonStatusEnum.ENABLE.getStatus());
// 转换为 ID -> 名称 的映射key是单位IDvalue是单位名称
Map<String, String> unitNameMap = unitDOList.stream()
.collect(Collectors.toMap(
unit -> String.valueOf(unit.getId()),
ErpProductUnitDO::getName,
(k1, k2) -> k1
));
// 3. 转换DO到VO同时赋值两个名称字段
return BeanUtils.toBean(list, ZjItemRespVO.class, item -> { return BeanUtils.toBean(list, ZjItemRespVO.class, item -> {
// 原有:设置质检类型名称
MapUtils.findAndThen(zjTypeMap, item.getZjType(), zjType -> item.setZjTypeName(zjType.getName())); MapUtils.findAndThen(zjTypeMap, item.getZjType(), zjType -> item.setZjTypeName(zjType.getName()));
// 新增:设置单位名称(容错处理:空值/无映射时显示空字符串)
if (item.getUnit() != null) {
String unitName = unitNameMap.getOrDefault(item.getUnit(), "");
item.setUnitName(unitName);
}
}); });
} }
@ -115,9 +143,9 @@ public class ZjItemController {
HttpServletResponse response) throws IOException { HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ZjItemDO> list = zjItemService.getZjItemPage(pageReqVO).getList(); List<ZjItemDO> list = zjItemService.getZjItemPage(pageReqVO).getList();
List<ZjItemRespVO> voList = buildVOList(list);
// 导出 Excel // 导出 Excel
ExcelUtils.write(response, "质量管理-检验项目.xls", "数据", ZjItemRespVO.class, ExcelUtils.write(response, "质量管理-检验项目.xls", "数据", ZjItemRespVO.class, voList);
BeanUtils.toBean(list, ZjItemRespVO.class));
} }
} }

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.mes.controller.admin.zjitem.vo; package cn.iocoder.yudao.module.mes.controller.admin.zjitem.vo;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.*; import java.util.*;
@ -40,9 +41,13 @@ public class ZjItemRespVO {
private Double standardVal; private Double standardVal;
@Schema(description = "单位") @Schema(description = "单位")
@ExcelProperty("单位") // @ExcelProperty("单位")
private String unit; private String unit;
@Schema(description = "单位", example = "1")
@ExcelProperty("单位")
private String unitName;
@Schema(description = "上限值") @Schema(description = "上限值")
@ExcelProperty("上限值") @ExcelProperty("上限值")
private Double upperVal; private Double upperVal;
@ -53,6 +58,7 @@ public class ZjItemRespVO {
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间") @ExcelProperty("创建时间")
@ColumnWidth(20)
private LocalDateTime createTime; private LocalDateTime createTime;
} }

@ -1,8 +1,15 @@
package cn.iocoder.yudao.module.mes.controller.admin.zjschema; package cn.iocoder.yudao.module.mes.controller.admin.zjschema;
import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductUnitDO;
import cn.iocoder.yudao.module.erp.service.product.ErpProductUnitService;
import cn.iocoder.yudao.module.mes.controller.admin.zjitem.vo.ZjItemRespVO; import cn.iocoder.yudao.module.mes.controller.admin.zjitem.vo.ZjItemRespVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.zjitem.ZjItemDO; import cn.iocoder.yudao.module.mes.dal.dataobject.zjitem.ZjItemDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.zjtype.ZjTypeDO;
import cn.iocoder.yudao.module.mes.service.zjitem.ZjItemService; import cn.iocoder.yudao.module.mes.service.zjitem.ZjItemService;
import cn.iocoder.yudao.module.mes.service.zjtype.ZjTypeService;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -28,6 +35,7 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
import cn.iocoder.yudao.module.mes.controller.admin.zjschema.vo.*; import cn.iocoder.yudao.module.mes.controller.admin.zjschema.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.zjschema.ZjSchemaDO; import cn.iocoder.yudao.module.mes.dal.dataobject.zjschema.ZjSchemaDO;
@ -43,6 +51,10 @@ public class ZjSchemaController {
private ZjSchemaService zjSchemaService; private ZjSchemaService zjSchemaService;
@Resource @Resource
private ZjItemService zjitemService; private ZjItemService zjitemService;
@Resource
private ZjTypeService zjTypeService;
@Resource
private ErpProductUnitService productUnitService;
@PostMapping("/create") @PostMapping("/create")
@Operation(summary = "创建检验方案") @Operation(summary = "创建检验方案")
@ -133,8 +145,41 @@ public class ZjSchemaController {
// 4. 查询所有关联的项目信息请根据实际项目调整Service方法 // 4. 查询所有关联的项目信息请根据实际项目调整Service方法
List<ZjItemDO> itemList = zjitemService.getItemsByIds(itemIds); List<ZjItemDO> itemList = zjitemService.getItemsByIds(itemIds);
List<ZjItemRespVO> voList = buildVOList(itemList);
// 5. 转换为VO并返回 // 5. 转换为VO并返回
return success(BeanUtils.toBean(itemList, ZjItemRespVO.class)); return success(voList);
} }
private List<ZjItemRespVO> buildVOList(List<ZjItemDO> list) {
if (CollUtil.isEmpty(list)) {
return Collections.emptyList();
}
Map<Long, ZjTypeDO> zjTypeMap = zjTypeService.getZjTypeVOMap(
convertSet(list, ZjItemDO::getZjType));
List<ErpProductUnitDO> unitDOList = productUnitService.getProductUnitListByStatus(CommonStatusEnum.ENABLE.getStatus());
// 转换为 ID -> 名称 的映射key是单位IDvalue是单位名称
Map<String, String> unitNameMap = unitDOList.stream()
.collect(Collectors.toMap(
unit -> String.valueOf(unit.getId()),
ErpProductUnitDO::getName,
(k1, k2) -> k1
));
// 3. 转换DO到VO同时赋值两个名称字段
return BeanUtils.toBean(list, ZjItemRespVO.class, item -> {
// 原有:设置质检类型名称
MapUtils.findAndThen(zjTypeMap, item.getZjType(), zjType -> item.setZjTypeName(zjType.getName()));
// 新增:设置单位名称(容错处理:空值/无映射时显示空字符串)
if (item.getUnit() != null) {
String unitName = unitNameMap.getOrDefault(item.getUnit(), "");
item.setUnitName(unitName);
}
});
}
} }

@ -42,7 +42,7 @@ public class ZjSchemaRespVO {
private String val; private String val;
@Schema(description = "关联项目") @Schema(description = "关联项目")
@ExcelProperty("关联项目") // @ExcelProperty("关联项目")
private String item; private String item;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)

@ -1,5 +1,7 @@
package cn.iocoder.yudao.module.mes.controller.admin.zjtask.vo; package cn.iocoder.yudao.module.mes.controller.admin.zjtask.vo;
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
@ -26,7 +28,8 @@ public class ZjTaskRespVO {
private String name; private String name;
@Schema(description = "质检分类", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @Schema(description = "质检分类", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@ExcelProperty("质检分类") @ExcelProperty(value = "质检分类", converter = DictConvert.class)
@DictFormat("mes_zj_task_type")
private String type; private String type;
@Schema(description = "检验方案id", requiredMode = Schema.RequiredMode.REQUIRED, example = "3630") @Schema(description = "检验方案id", requiredMode = Schema.RequiredMode.REQUIRED, example = "3630")
@ -46,11 +49,12 @@ public class ZjTaskRespVO {
private String ticket; private String ticket;
@Schema(description = "工序", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @Schema(description = "工序", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("工序") @ExcelProperty(value = "工序", converter = DictConvert.class)
@DictFormat("mes_org_type")
private String orgType; private String orgType;
@Schema(description = "负责人id", example = "6442") @Schema(description = "负责人id", example = "6442")
@ExcelProperty("负责人id") // @ExcelProperty("负责人id")
private Long managerId; private Long managerId;
@Schema(description = "负责人名称", example = "张三") @Schema(description = "负责人名称", example = "张三")
@ -58,7 +62,7 @@ public class ZjTaskRespVO {
private String managerName; private String managerName;
@Schema(description = "执行人id", example = "10505") @Schema(description = "执行人id", example = "10505")
@ExcelProperty("执行人id") // @ExcelProperty("执行人id")
private Long executorId; private Long executorId;
@Schema(description = "执行人名称", example = "王五") @Schema(description = "执行人名称", example = "王五")
@ -66,7 +70,8 @@ public class ZjTaskRespVO {
private String executorName; private String executorName;
@Schema(description = "状态", example = "1") @Schema(description = "状态", example = "1")
@ExcelProperty("状态0=未作业1=已作业") @ExcelProperty(value = "状态", converter = DictConvert.class)
@DictFormat("job_status")
private Integer status; private Integer status;
@Schema(description = "结果") @Schema(description = "结果")

@ -1,8 +1,17 @@
package cn.iocoder.yudao.module.mes.controller.admin.zjtaskresults; package cn.iocoder.yudao.module.mes.controller.admin.zjtaskresults;
import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductUnitDO;
import cn.iocoder.yudao.module.erp.service.product.ErpProductUnitService;
import cn.iocoder.yudao.module.mes.controller.admin.zjitem.vo.ZjItemRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.zjtask.vo.ZjTaskSaveReqVO; import cn.iocoder.yudao.module.mes.controller.admin.zjtask.vo.ZjTaskSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.zjitem.ZjItemDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.zjtask.ZjTaskDO; import cn.iocoder.yudao.module.mes.dal.dataobject.zjtask.ZjTaskDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.zjtype.ZjTypeDO;
import cn.iocoder.yudao.module.mes.service.zjtask.ZjTaskService; import cn.iocoder.yudao.module.mes.service.zjtask.ZjTaskService;
import cn.iocoder.yudao.module.mes.service.zjtype.ZjTypeService;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -28,6 +37,7 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
import cn.iocoder.yudao.module.mes.controller.admin.zjtaskresults.vo.*; import cn.iocoder.yudao.module.mes.controller.admin.zjtaskresults.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.zjtaskresults.ZjTaskResultsDO; import cn.iocoder.yudao.module.mes.dal.dataobject.zjtaskresults.ZjTaskResultsDO;
@ -43,6 +53,10 @@ public class ZjTaskResultsController {
private ZjTaskResultsService zjTaskResultsService; private ZjTaskResultsService zjTaskResultsService;
@Resource @Resource
private ZjTaskService zjTaskService; private ZjTaskService zjTaskService;
@Resource
private ZjTypeService zjTypeService;
@Resource
private ErpProductUnitService productUnitService;
@PostMapping("/create") @PostMapping("/create")
@Operation(summary = "创建检验任务-检验结果") @Operation(summary = "创建检验任务-检验结果")
@ -82,7 +96,8 @@ public class ZjTaskResultsController {
@PreAuthorize("@ss.hasPermission('mes:zj-task-results:query')") @PreAuthorize("@ss.hasPermission('mes:zj-task-results:query')")
public CommonResult<PageResult<ZjTaskResultsRespVO>> getZjTaskResultsPage(@Valid ZjTaskResultsPageReqVO pageReqVO) { public CommonResult<PageResult<ZjTaskResultsRespVO>> getZjTaskResultsPage(@Valid ZjTaskResultsPageReqVO pageReqVO) {
PageResult<ZjTaskResultsDO> pageResult = zjTaskResultsService.getZjTaskResultsPage(pageReqVO); PageResult<ZjTaskResultsDO> pageResult = zjTaskResultsService.getZjTaskResultsPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, ZjTaskResultsRespVO.class)); // return success(BeanUtils.toBean(pageResult, ZjTaskResultsRespVO.class));
return success(new PageResult<>(buildVOList(pageResult.getList()), pageResult.getTotal()));
} }
@GetMapping("/export-excel") @GetMapping("/export-excel")
@ -136,4 +151,34 @@ public class ZjTaskResultsController {
return "2"; // 其余情况存在不通过任务结果为2 return "2"; // 其余情况存在不通过任务结果为2
} }
} }
private List<ZjTaskResultsRespVO> buildVOList(List<ZjTaskResultsDO> list) {
if (CollUtil.isEmpty(list)) {
return Collections.emptyList();
}
Map<Long, ZjTypeDO> zjTypeMap = zjTypeService.getZjTypeVOMap(
convertSet(list, ZjTaskResultsDO::getZjType));
List<ErpProductUnitDO> unitDOList = productUnitService.getProductUnitListByStatus(CommonStatusEnum.ENABLE.getStatus());
// 转换为 ID -> 名称 的映射key是单位IDvalue是单位名称
Map<String, String> unitNameMap = unitDOList.stream()
.collect(Collectors.toMap(
unit -> String.valueOf(unit.getId()),
ErpProductUnitDO::getName,
(k1, k2) -> k1
));
// 3. 转换DO到VO同时赋值两个名称字段
return BeanUtils.toBean(list, ZjTaskResultsRespVO.class, item -> {
// 原有:设置质检类型名称
MapUtils.findAndThen(zjTypeMap, item.getZjType(), zjType -> item.setZjTypeName(zjType.getName()));
// 新增:设置单位名称(容错处理:空值/无映射时显示空字符串)
if (item.getUnit() != null) {
String unitName = unitNameMap.getOrDefault(item.getUnit(), "");
item.setUnitName(unitName);
}
});
}
} }

@ -20,6 +20,10 @@ public class ZjTaskResultsRespVO {
@ExcelProperty("检验类型") @ExcelProperty("检验类型")
private Long zjType; private Long zjType;
@Schema(description = "检验类型", example = "1")
@ExcelProperty("检验类型")
private String zjTypeName;
@Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
@ExcelProperty("名称") @ExcelProperty("名称")
private String name; private String name;
@ -40,6 +44,10 @@ public class ZjTaskResultsRespVO {
@ExcelProperty("单位") @ExcelProperty("单位")
private String unit; private String unit;
@Schema(description = "单位", example = "1")
@ExcelProperty("单位")
private String unitName;
@Schema(description = "上限值") @Schema(description = "上限值")
@ExcelProperty("上限值") @ExcelProperty("上限值")
private Double upperVal; private Double upperVal;

@ -21,7 +21,7 @@ public interface ZjItemMapper extends BaseMapperX<ZjItemDO> {
return selectPage(reqVO, new LambdaQueryWrapperX<ZjItemDO>() return selectPage(reqVO, new LambdaQueryWrapperX<ZjItemDO>()
.eqIfPresent(ZjItemDO::getZjType, reqVO.getZjType()) .eqIfPresent(ZjItemDO::getZjType, reqVO.getZjType())
.likeIfPresent(ZjItemDO::getName, reqVO.getName()) .likeIfPresent(ZjItemDO::getName, reqVO.getName())
.eqIfPresent(ZjItemDO::getRemark, reqVO.getRemark()) .likeIfPresent(ZjItemDO::getRemark, reqVO.getRemark())
.eqIfPresent(ZjItemDO::getTool, reqVO.getTool()) .eqIfPresent(ZjItemDO::getTool, reqVO.getTool())
.eqIfPresent(ZjItemDO::getStandardVal, reqVO.getStandardVal()) .eqIfPresent(ZjItemDO::getStandardVal, reqVO.getStandardVal())
.eqIfPresent(ZjItemDO::getUnit, reqVO.getUnit()) .eqIfPresent(ZjItemDO::getUnit, reqVO.getUnit())

@ -21,7 +21,7 @@ public interface ZjTypeMapper extends BaseMapperX<ZjTypeDO> {
return selectPage(reqVO, new LambdaQueryWrapperX<ZjTypeDO>() return selectPage(reqVO, new LambdaQueryWrapperX<ZjTypeDO>()
.eqIfPresent(ZjTypeDO::getCode, reqVO.getCode()) .eqIfPresent(ZjTypeDO::getCode, reqVO.getCode())
.likeIfPresent(ZjTypeDO::getName, reqVO.getName()) .likeIfPresent(ZjTypeDO::getName, reqVO.getName())
.eqIfPresent(ZjTypeDO::getRemark, reqVO.getRemark()) .likeIfPresent(ZjTypeDO::getRemark, reqVO.getRemark())
.betweenIfPresent(ZjTypeDO::getCreateTime, reqVO.getCreateTime()) .betweenIfPresent(ZjTypeDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(ZjTypeDO::getId)); .orderByDesc(ZjTypeDO::getId));
} }

Loading…
Cancel
Save