综合大屏

main
kkk-ops 1 week ago
parent 5a27d83074
commit 3cf649ca92

@ -5,9 +5,14 @@ import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ErpProductRespVO; import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ErpProductRespVO;
import cn.iocoder.yudao.module.erp.dal.dataobject.mold.MoldDO;
import cn.iocoder.yudao.module.erp.dal.mysql.mold.MoldMapper;
import cn.iocoder.yudao.module.erp.service.mold.MoldBrandService;
import cn.iocoder.yudao.module.erp.service.product.ErpProductService; import cn.iocoder.yudao.module.erp.service.product.ErpProductService;
import cn.iocoder.yudao.module.iot.dal.mysql.device.DeviceMapper;
import cn.iocoder.yudao.module.mes.controller.admin.dashboard.vo.*; import cn.iocoder.yudao.module.mes.controller.admin.dashboard.vo.*;
import cn.iocoder.yudao.module.mes.controller.admin.plan.vo.PlanRespVO; import cn.iocoder.yudao.module.mes.controller.admin.plan.vo.PlanRespVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.deviceledger.DeviceLedgerDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairDO; import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldrepair.MoldRepairDO; import cn.iocoder.yudao.module.mes.dal.dataobject.moldrepair.MoldRepairDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.moldticketmanagement.MoldTicketManagementDO; import cn.iocoder.yudao.module.mes.dal.dataobject.moldticketmanagement.MoldTicketManagementDO;
@ -15,12 +20,12 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.organization.OrganizationDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.plan.PlanDO; import cn.iocoder.yudao.module.mes.dal.dataobject.plan.PlanDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.task.TaskDO; import cn.iocoder.yudao.module.mes.dal.dataobject.task.TaskDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.ticketmanagement.TicketManagementDO; import cn.iocoder.yudao.module.mes.dal.dataobject.ticketmanagement.TicketManagementDO;
import cn.iocoder.yudao.module.mes.dal.mysql.deviceledger.DeviceLedgerMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.dvrepair.DvRepairMapper; import cn.iocoder.yudao.module.mes.dal.mysql.dvrepair.DvRepairMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.plan.PlanMapper; import cn.iocoder.yudao.module.mes.dal.mysql.plan.PlanMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.task.TaskMapper; import cn.iocoder.yudao.module.mes.dal.mysql.task.TaskMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.ticketmanagement.TicketManagementMapper;
import cn.iocoder.yudao.module.mes.service.deviceledger.DeviceLedgerService; import cn.iocoder.yudao.module.mes.service.deviceledger.DeviceLedgerService;
import cn.iocoder.yudao.module.mes.service.deviceledger.DeviceLedgerServiceImpl; import cn.iocoder.yudao.module.mes.service.devicetype.DeviceTypeService;
import cn.iocoder.yudao.module.mes.service.dvrepair.DvRepairService; import cn.iocoder.yudao.module.mes.service.dvrepair.DvRepairService;
import cn.iocoder.yudao.module.mes.service.mold.MoldService; import cn.iocoder.yudao.module.mes.service.mold.MoldService;
import cn.iocoder.yudao.module.mes.service.moldrepair.MoldRepairService; import cn.iocoder.yudao.module.mes.service.moldrepair.MoldRepairService;
@ -45,7 +50,6 @@ import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
@ -93,8 +97,23 @@ public class DashboardController {
@Resource @Resource
private TaskMapper taskMapper; private TaskMapper taskMapper;
@Resource
private DeviceLedgerMapper deviceLedgerMapper;
@Resource
private MoldMapper moldMapper;
@Resource
private MoldBrandService moldBrandService;
@Resource
private DeviceTypeService deviceTypeService;
@Resource
private DeviceMapper deviceMapper;
@GetMapping("/getProduction") @GetMapping("/getProduction")
@Operation(summary = "获得整体生产概况") @Operation(summary = "获得整体生产概况")
@Parameter(name = "id", description = "编号", required = true, example = "1024") @Parameter(name = "id", description = "编号", required = true, example = "1024")
@ -418,4 +437,52 @@ public class DashboardController {
deviceRepairLineOptionsVO.setSeries(matchedCounts); deviceRepairLineOptionsVO.setSeries(matchedCounts);
return success(deviceRepairLineOptionsVO); return success(deviceRepairLineOptionsVO);
} }
@GetMapping("/getDeviceTypePieOptions")
@Operation(summary = "获得设备分类统计")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('mes:bom:query')")
public CommonResult<List<DeviceTypePieOptionsVO>> getDeviceTypePieOptions() {
List<DeviceTypePieOptionsVO> deviceTypePieOptionsVOList = new ArrayList<>();
QueryWrapper<DeviceLedgerDO> queryWrapper = new QueryWrapper<>();
queryWrapper.select("device_type as deviceType", "COUNT(*) as count")
.groupBy("device_type")
.orderByDesc("count")
.last("LIMIT 5");
List<Map<String, Object>> result = deviceLedgerMapper.selectMaps(queryWrapper);
for (Map<String, Object> map : result) {
DeviceTypePieOptionsVO vo = new DeviceTypePieOptionsVO();
// 手动设置属性
vo.setName(deviceTypeService.getDeviceType(((Number) map.get("deviceType")).longValue()).getName());
vo.setValue(Integer.parseInt(map.get("count").toString()));
deviceTypePieOptionsVOList.add(vo);
}
return success(deviceTypePieOptionsVOList);
}
@GetMapping("/getMoldTypeBarOptions")
@Operation(summary = "获得模具分类分布统计")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('mes:bom:query')")
public CommonResult<DeviceRepairLineOptionsVO> getMoldTypeBarOptions() {
DeviceRepairLineOptionsVO deviceRepairLineOptionsVO = new DeviceRepairLineOptionsVO();
QueryWrapper<MoldDO> queryWrapper = new QueryWrapper<>();
queryWrapper.select("brand_id as brandId", "COUNT(*) as count")
.groupBy("brand_id")
.orderByDesc("count")
.last("LIMIT 5");
List<Map<String, Object>> result = moldMapper.selectMaps(queryWrapper);
List<String> xAxis = new ArrayList<>();
List<Integer> series = new ArrayList<>();
for (Map<String, Object> map : result) {
DeviceTypePieOptionsVO vo = new DeviceTypePieOptionsVO();
// 手动设置属性
xAxis.add(moldBrandService.getMoldBrand(((Number) map.get("brandId")).longValue()).getName());
series.add(Integer.parseInt(map.get("count").toString()));
}
deviceRepairLineOptionsVO.setXAxis(xAxis);
deviceRepairLineOptionsVO.setSeries(series);
return success(deviceRepairLineOptionsVO);
}
} }

@ -0,0 +1,17 @@
package cn.iocoder.yudao.module.mes.controller.admin.dashboard.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Schema(description = "管理后台 - 首页设备分类统计 Response VO")
@Data
@ExcelIgnoreUnannotated
public class DeviceTypePieOptionsVO {
@Schema(description = "name")
private String name;
@Schema(description = "value")
private Integer value;
}

@ -10,11 +10,14 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ErpProductRespVO; import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ErpProductRespVO;
import cn.iocoder.yudao.module.iot.framework.mqtt.utils.DateUtils; import cn.iocoder.yudao.module.iot.framework.mqtt.utils.DateUtils;
import cn.iocoder.yudao.module.mes.controller.admin.dashboard.vo.DeviceTypePieOptionsVO;
import cn.iocoder.yudao.module.mes.controller.admin.itemrequisition.vo.ItemRequisitionRespVO; import cn.iocoder.yudao.module.mes.controller.admin.itemrequisition.vo.ItemRequisitionRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.itemrequisition.vo.ItemRequisitionSaveReqVO; import cn.iocoder.yudao.module.mes.controller.admin.itemrequisition.vo.ItemRequisitionSaveReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.plan.vo.*; import cn.iocoder.yudao.module.mes.controller.admin.plan.vo.*;
import cn.iocoder.yudao.module.mes.controller.admin.zjproductrecord.vo.ZjProductRecordRespVO; import cn.iocoder.yudao.module.mes.controller.admin.zjproductrecord.vo.ZjProductRecordRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.zjproductrecord.vo.ZjProductRecordSaveReqVO; import cn.iocoder.yudao.module.mes.controller.admin.zjproductrecord.vo.ZjProductRecordSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.deviceledger.DeviceLedgerDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.itemrequisition.ItemRequisitionDO; import cn.iocoder.yudao.module.mes.dal.dataobject.itemrequisition.ItemRequisitionDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.organization.OrganizationDO; import cn.iocoder.yudao.module.mes.dal.dataobject.organization.OrganizationDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.plan.PlanDO; import cn.iocoder.yudao.module.mes.dal.dataobject.plan.PlanDO;
@ -27,6 +30,8 @@ import cn.iocoder.yudao.module.mes.service.organization.OrganizationService;
import cn.iocoder.yudao.module.mes.service.plan.PlanService; import cn.iocoder.yudao.module.mes.service.plan.PlanService;
import cn.iocoder.yudao.module.mes.service.zjproduct.ZjProductService; import cn.iocoder.yudao.module.mes.service.zjproduct.ZjProductService;
import cn.iocoder.yudao.module.mes.service.zjproductrecord.ZjProductRecordService; import cn.iocoder.yudao.module.mes.service.zjproductrecord.ZjProductRecordService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
@ -40,15 +45,16 @@ import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.time.DayOfWeek;
import java.util.Collections; import java.time.LocalDate;
import java.util.List; import java.time.ZoneId;
import java.util.Map; import java.util.*;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.error; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.error;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
import static org.apache.ibatis.ognl.OgnlOps.getIntValue;
@Tag(name = "管理后台 - 生产计划") @Tag(name = "管理后台 - 生产计划")
@RestController @RestController
@ -129,6 +135,7 @@ public class PlanController {
PageResult<PlanRespVO> pageResult = planService.getPlanPage(pageReqVO); PageResult<PlanRespVO> pageResult = planService.getPlanPage(pageReqVO);
return success(new PageResult<>(buildVOList(pageResult.getList()), pageResult.getTotal())); return success(new PageResult<>(buildVOList(pageResult.getList()), pageResult.getTotal()));
} }
private List<PlanRespVO> buildVOList(List<PlanRespVO> list) { private List<PlanRespVO> buildVOList(List<PlanRespVO> list) {
if (CollUtil.isEmpty(list)) { if (CollUtil.isEmpty(list)) {
return Collections.emptyList(); return Collections.emptyList();
@ -174,6 +181,7 @@ public class PlanController {
planService.arrangePlan(saveReqVO, planDO, list); planService.arrangePlan(saveReqVO, planDO, list);
return success(true); return success(true);
} }
@PutMapping("/typePaigong") @PutMapping("/typePaigong")
@Operation(summary = "工序派工") @Operation(summary = "工序派工")
//@PreAuthorize("@ss.hasPermission('mes:plan:update')") //@PreAuthorize("@ss.hasPermission('mes:plan:update')")
@ -208,7 +216,7 @@ public class PlanController {
// 入库 // 入库
else if ("store".equals(statusUpdateVO.getCode())) { else if ("store".equals(statusUpdateVO.getCode())) {
planDO.setStatus(PlanStatusEnum..getValue()); planDO.setStatus(PlanStatusEnum..getValue());
planService.createPlanStockIn(statusUpdateVO,planDO); planService.createPlanStockIn(statusUpdateVO, planDO);
} }
planMapper.updateById(planDO); planMapper.updateById(planDO);
return success(true); return success(true);
@ -235,6 +243,7 @@ public class PlanController {
List<ErpProductRespVO> proList = planService.getProductByPlanStatus(status); List<ErpProductRespVO> proList = planService.getProductByPlanStatus(status);
return success(proList); return success(proList);
} }
@GetMapping("/getByStatus") @GetMapping("/getByStatus")
@Operation(summary = "获得生产计划") @Operation(summary = "获得生产计划")
@Parameter(name = "status", description = "状态", required = true, example = "1024") @Parameter(name = "status", description = "状态", required = true, example = "1024")
@ -250,6 +259,24 @@ public class PlanController {
return success(planRespVOList); return success(planRespVOList);
} }
@GetMapping("/getProductPlans")
@Operation(summary = "获得生产计划")
@Parameter(name = "status", description = "状态", required = true, example = "1024")
public CommonResult<List<PlanRespVO>> getProductPlans() {
List<Integer> statusList = new ArrayList<>();
statusList.add(PlanStatusEnum..getValue());
statusList.add(PlanStatusEnum..getValue());
statusList.add(PlanStatusEnum..getValue());
statusList.add(PlanStatusEnum..getValue());
//statusList.add(PlanStatusEnum.开工.getValue());
// statusList.add(PlanStatusEnum.派工.getValue());
// statusList.add(PlanStatusEnum.计划.getValue());
// statusList.add(PlanStatusEnum.暂停.getValue());
List<PlanDO> proList = planService.getPlanByStatus(statusList);
List<PlanRespVO> planRespVOList = planService.buildVOList(proList);
return success(planRespVOList);
}
@GetMapping("/getByTicketType") @GetMapping("/getByTicketType")
@Operation(summary = "获得质检工单下拉") @Operation(summary = "获得质检工单下拉")
@Parameter(name = "status", description = "状态", required = true, example = "1024") @Parameter(name = "status", description = "状态", required = true, example = "1024")
@ -258,9 +285,9 @@ public class PlanController {
List<Integer> statusList = new ArrayList<>(); List<Integer> statusList = new ArrayList<>();
statusList.add(status); statusList.add(status);
statusList.add(PlanStatusEnum..getValue()); statusList.add(PlanStatusEnum..getValue());
statusList.add(PlanStatusEnum..getValue()); statusList.add(PlanStatusEnum..getValue());
statusList.add(PlanStatusEnum..getValue()); statusList.add(PlanStatusEnum..getValue());
statusList.add(PlanStatusEnum..getValue()); statusList.add(PlanStatusEnum..getValue());
List<PlanDO> proList = planService.getPlanByStatus(statusList); List<PlanDO> proList = planService.getPlanByStatus(statusList);
List<PlanRespVO> planRespVOList = planService.buildVOList(proList); List<PlanRespVO> planRespVOList = planService.buildVOList(proList);
return success(planRespVOList); return success(planRespVOList);
@ -285,5 +312,97 @@ public class PlanController {
return success(true); return success(true);
} }
@GetMapping("/getWeekTrend")
@Operation(summary = "综合大屏-周生产趋势")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
public CommonResult<PlanWeekTrendVO> getWeekTrend() {
PlanWeekTrendVO planWeekTrendVO = new PlanWeekTrendVO();
LocalDate today = LocalDate.now();
// 获取本周一
LocalDate start = today.with(DayOfWeek.MONDAY);
// 获取本周日
LocalDate end = today.with(DayOfWeek.SUNDAY);
// 转换为 Date
Date monday = Date.from(start.atStartOfDay(ZoneId.systemDefault()).toInstant());
Date sunday = Date.from(end.atTime(23, 59, 59).atZone(ZoneId.systemDefault()).toInstant());
List<Map<String, Object>> result = planMapper.selectMaps(
new QueryWrapper<PlanDO>()
.select(
"DATE(create_time) as date",
"DAYOFWEEK(create_time) as weekday",
"SUM(plan_number) as planCount",
"SUM(wangong_number) as wangongCount"
)
.ge("create_time", monday)
.le("create_time", sunday)
.groupBy("DATE(create_time), DAYOFWEEK(create_time)")
.orderByAsc("DATE(create_time)")
);
List<String> weekDays = new ArrayList<>(Arrays.asList("周一", "周二", "周三", "周四", "周五", "周六", "周日"));
List<Integer> weekPlan = new ArrayList<>(Collections.nCopies(7, 0));
List<Integer> weekReal = new ArrayList<>(Collections.nCopies(7, 0));
for (Map<String, Object> map : result) {
Object weekdayObj = map.get("weekday");
// 确定星期字符串
String weekdayStr = null;
if (weekdayObj instanceof Integer) {
int dayCode = (Integer) weekdayObj;
weekdayStr = WeekDayEnum.getNameByCode(dayCode); // 使用枚举转换
} else if (weekdayObj instanceof String) {
weekdayStr = (String) weekdayObj;
} else if (weekdayObj != null) {
weekdayStr = weekdayObj.toString();
}
// 匹配并填充数据
if (weekdayStr != null) {
int index = weekDays.indexOf(weekdayStr);
if (index != -1) {
int plan = Math.max(getIntValue(map.get("planCount")), 0);
int real = Math.max(getIntValue(map.get("wangongCount")), 0);
weekPlan.set(index, plan);
weekReal.set(index, real);
weekReal.set(index, real);
}
}
}
planWeekTrendVO.setWeekDays(weekDays);
planWeekTrendVO.setWeekPlan(weekPlan);
planWeekTrendVO.setWeekReal(weekReal);
return success(planWeekTrendVO);
}
@GetMapping("/getDayCapacity")
@Operation(summary = "综合大屏-日产能达成情况")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
public CommonResult<DayCapacityVO> getDayCapacity() {
DayCapacityVO dayCapacityVO = new DayCapacityVO();
List<Integer> statusList = new ArrayList<>(Collections.singletonList(PlanStatusEnum..getValue()));
List<PlanDO> planDOList = planService.getPlanByStatus(statusList);
// 排产单数量
dayCapacityVO.setOrders(planDOList.size());
// 排产数量
int plan = 0;
for (PlanDO planDO : planDOList) {
if (planDO.getPlanNumber() != null) {
plan = plan + planDO.getPlanNumber().intValue();
}
}
dayCapacityVO.setPlan(plan);
// 已生产数量
statusList = Arrays.asList(PlanStatusEnum..getValue(),PlanStatusEnum..getValue());;
planDOList = planService.getPlanByStatus(statusList);
int finish = 0;
for (PlanDO planDO : planDOList) {
if (planDO.getWangongNumber() != null) {
finish = finish + planDO.getWangongNumber().intValue();
}
}
dayCapacityVO.setPending(finish);
return success(dayCapacityVO);
}
} }

@ -0,0 +1,23 @@
package cn.iocoder.yudao.module.mes.controller.admin.plan.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
@Schema(description = "综合大屏 - 周生产趋势 Resp VO")
@Data
public class DayCapacityVO {
@Schema(description = "orders")
private Integer orders;
@Schema(description = "plan")
private Integer plan;
@Schema(description = "pending")
private Integer pending;
@Schema(description = "rate")
private Double rate;
}

@ -0,0 +1,30 @@
package cn.iocoder.yudao.module.mes.controller.admin.plan.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.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "综合大屏 - 周生产趋势 Resp VO")
@Data
@ToString(callSuper = true)
public class PlanWeekTrendVO {
@Schema(description = "X轴")
private List<String> weekDays;
@Schema(description = "计划数量")
private List<Integer> weekPlan;
@Schema(description = "完工数量")
private List<Integer> weekReal;
}

@ -0,0 +1,65 @@
package cn.iocoder.yudao.module.mes.controller.admin.plan.vo;
/**
* -
* MySQL DAYOFWEEK()
*/
public enum WeekDayEnum {
SUNDAY(1, "周日"),
MONDAY(2, "周一"),
TUESDAY(3, "周二"),
WEDNESDAY(4, "周三"),
THURSDAY(5, "周四"),
FRIDAY(6, "周五"),
SATURDAY(7, "周六");
private final int code;
private final String name;
// 静态映射表
private static final WeekDayEnum[] VALUES = values();
WeekDayEnum(int code, String name) {
this.code = code;
this.name = name;
}
public int getCode() {
return code;
}
public String getName() {
return name;
}
/**
* DAYOFWEEK()
*/
public static String getNameByCode(int code) {
for (WeekDayEnum day : VALUES) {
if (day.code == code) {
return day.name;
}
}
return "未知";
}
/**
* DAYOFWEEK()
*/
public static WeekDayEnum getByCode(int code) {
for (WeekDayEnum day : VALUES) {
if (day.code == code) {
return day;
}
}
return null;
}
@Override
public String toString() {
return name;
}
}

@ -18,6 +18,7 @@ import cn.iocoder.yudao.module.mes.controller.admin.itemrequisition.vo.ItemRequi
import cn.iocoder.yudao.module.mes.controller.admin.plan.vo.*; import cn.iocoder.yudao.module.mes.controller.admin.plan.vo.*;
import cn.iocoder.yudao.module.mes.controller.admin.task.vo.TaskStatusEnum; import cn.iocoder.yudao.module.mes.controller.admin.task.vo.TaskStatusEnum;
import cn.iocoder.yudao.module.mes.dal.dataobject.itemrequisition.ItemRequisitionDetailDO; import cn.iocoder.yudao.module.mes.dal.dataobject.itemrequisition.ItemRequisitionDetailDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.organization.OrganizationDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.paigongrecord.PaigongRecordDO; import cn.iocoder.yudao.module.mes.dal.dataobject.paigongrecord.PaigongRecordDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.plan.PlanDO; import cn.iocoder.yudao.module.mes.dal.dataobject.plan.PlanDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.task.TaskDO; import cn.iocoder.yudao.module.mes.dal.dataobject.task.TaskDO;
@ -253,7 +254,8 @@ public class PlanServiceImpl implements PlanService {
convertSet(list, PlanDO::getProductionManagerId)); convertSet(list, PlanDO::getProductionManagerId));
Map<Long, TaskDO> taskMap = taskService.getMap( Map<Long, TaskDO> taskMap = taskService.getMap(
convertSet(list, PlanDO::getTaskId)); convertSet(list, PlanDO::getTaskId));
Map<Long, OrganizationDO> organizationMap = organizationService.getMap(
convertSet(list, PlanDO::getFeedingPipeline));
return BeanUtils.toBean(list, PlanRespVO.class, item -> { return BeanUtils.toBean(list, PlanRespVO.class, item -> {
MapUtils.findAndThen(map, item.getProductId(), MapUtils.findAndThen(map, item.getProductId(),
product -> item.setProductName(product.getName())); product -> item.setProductName(product.getName()));
@ -263,6 +265,9 @@ public class PlanServiceImpl implements PlanService {
MapUtils.findAndThen(taskMap, item.getTaskId(), MapUtils.findAndThen(taskMap, item.getTaskId(),
task -> item.setTaskCode(task.getCode())); task -> item.setTaskCode(task.getCode()));
MapUtils.findAndThen(organizationMap, item.getFeedingPipeline(),
organization -> item.setFeedingPipelineName(organization.getName()));
}); });
} }
@Override @Override

Loading…
Cancel
Save