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

plp
86158 2 weeks ago
parent ca5466e499
commit 897e7dffd4

@ -1,5 +1,7 @@
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.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
@ -20,6 +22,7 @@ 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;
@ -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.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 = "管理后台 - 质量管理-检验项目")
@RestController
@RequestMapping("/mes/zj-item")
@ -47,6 +53,8 @@ public class ZjItemController {
private ZjItemService zjItemService;
@Resource
private ZjTypeService zjTypeService;
@Resource
private ErpProductUnitService productUnitService;
@PostMapping("/create")
@Operation(summary = "创建质量管理-检验项目")
@ -88,14 +96,34 @@ public class ZjItemController {
PageResult<ZjItemDO> pageResult = zjItemService.getZjItemPage(pageReqVO);
return success(new PageResult<>(buildVOList(pageResult.getList()), pageResult.getTotal()));
}
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);
}
});
}
@ -115,9 +143,9 @@ public class ZjItemController {
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ZjItemDO> list = zjItemService.getZjItemPage(pageReqVO).getList();
List<ZjItemRespVO> voList = buildVOList(list);
// 导出 Excel
ExcelUtils.write(response, "质量管理-检验项目.xls", "数据", ZjItemRespVO.class,
BeanUtils.toBean(list, ZjItemRespVO.class));
ExcelUtils.write(response, "质量管理-检验项目.xls", "数据", ZjItemRespVO.class, voList);
}
}

@ -1,5 +1,6 @@
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 lombok.*;
import java.util.*;
@ -40,9 +41,13 @@ public class ZjItemRespVO {
private Double standardVal;
@Schema(description = "单位")
@ExcelProperty("单位")
// @ExcelProperty("单位")
private String unit;
@Schema(description = "单位", example = "1")
@ExcelProperty("单位")
private String unitName;
@Schema(description = "上限值")
@ExcelProperty("上限值")
private Double upperVal;
@ -53,6 +58,7 @@ public class ZjItemRespVO {
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
@ColumnWidth(20)
private LocalDateTime createTime;
}

@ -1,8 +1,15 @@
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.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.zjtype.ZjTypeService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
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 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.dal.dataobject.zjschema.ZjSchemaDO;
@ -43,6 +51,10 @@ public class ZjSchemaController {
private ZjSchemaService zjSchemaService;
@Resource
private ZjItemService zjitemService;
@Resource
private ZjTypeService zjTypeService;
@Resource
private ErpProductUnitService productUnitService;
@PostMapping("/create")
@Operation(summary = "创建检验方案")
@ -133,8 +145,41 @@ public class ZjSchemaController {
// 4. 查询所有关联的项目信息请根据实际项目调整Service方法
List<ZjItemDO> itemList = zjitemService.getItemsByIds(itemIds);
List<ZjItemRespVO> voList = buildVOList(itemList);
// 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;
@Schema(description = "关联项目")
@ExcelProperty("关联项目")
// @ExcelProperty("关联项目")
private String item;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)

@ -1,5 +1,7 @@
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 io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
@ -26,7 +28,8 @@ public class ZjTaskRespVO {
private String name;
@Schema(description = "质检分类", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@ExcelProperty("质检分类")
@ExcelProperty(value = "质检分类", converter = DictConvert.class)
@DictFormat("mes_zj_task_type")
private String type;
@Schema(description = "检验方案id", requiredMode = Schema.RequiredMode.REQUIRED, example = "3630")
@ -46,11 +49,12 @@ public class ZjTaskRespVO {
private String ticket;
@Schema(description = "工序", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("工序")
@ExcelProperty(value = "工序", converter = DictConvert.class)
@DictFormat("mes_org_type")
private String orgType;
@Schema(description = "负责人id", example = "6442")
@ExcelProperty("负责人id")
// @ExcelProperty("负责人id")
private Long managerId;
@Schema(description = "负责人名称", example = "张三")
@ -58,7 +62,7 @@ public class ZjTaskRespVO {
private String managerName;
@Schema(description = "执行人id", example = "10505")
@ExcelProperty("执行人id")
// @ExcelProperty("执行人id")
private Long executorId;
@Schema(description = "执行人名称", example = "王五")
@ -66,7 +70,8 @@ public class ZjTaskRespVO {
private String executorName;
@Schema(description = "状态", example = "1")
@ExcelProperty("状态0=未作业1=已作业")
@ExcelProperty(value = "状态", converter = DictConvert.class)
@DictFormat("job_status")
private Integer status;
@Schema(description = "结果")

@ -1,8 +1,17 @@
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.dal.dataobject.zjitem.ZjItemDO;
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.zjtype.ZjTypeService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
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 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.dal.dataobject.zjtaskresults.ZjTaskResultsDO;
@ -43,6 +53,10 @@ public class ZjTaskResultsController {
private ZjTaskResultsService zjTaskResultsService;
@Resource
private ZjTaskService zjTaskService;
@Resource
private ZjTypeService zjTypeService;
@Resource
private ErpProductUnitService productUnitService;
@PostMapping("/create")
@Operation(summary = "创建检验任务-检验结果")
@ -82,7 +96,8 @@ public class ZjTaskResultsController {
@PreAuthorize("@ss.hasPermission('mes:zj-task-results:query')")
public CommonResult<PageResult<ZjTaskResultsRespVO>> getZjTaskResultsPage(@Valid ZjTaskResultsPageReqVO 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")
@ -136,4 +151,34 @@ public class ZjTaskResultsController {
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("检验类型")
private Long zjType;
@Schema(description = "检验类型", example = "1")
@ExcelProperty("检验类型")
private String zjTypeName;
@Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
@ExcelProperty("名称")
private String name;
@ -40,6 +44,10 @@ public class ZjTaskResultsRespVO {
@ExcelProperty("单位")
private String unit;
@Schema(description = "单位", example = "1")
@ExcelProperty("单位")
private String unitName;
@Schema(description = "上限值")
@ExcelProperty("上限值")
private Double upperVal;

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

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

Loading…
Cancel
Save