package com.qianwen.smartman.modules.mdc.wrapper; import java.sql.Timestamp; import java.util.List; import java.util.Optional; import com.qianwen.smartman.common.enums.GlobalWcsTypeEnum; import com.qianwen.core.mp.support.BaseEntityWrapper; import com.qianwen.core.tool.utils.SpringUtil; import com.qianwen.smartman.modules.cps.entity.Employee; import com.qianwen.smartman.modules.cps.entity.GlobalWcs; import com.qianwen.smartman.modules.cps.entity.Workstation; import com.qianwen.smartman.modules.cps.service.IEmployeeService; import com.qianwen.smartman.modules.cps.service.IGlobalWcsService; import com.qianwen.smartman.modules.cps.service.IWorkstationService; import com.qianwen.smartman.modules.mdc.convert.WorkstationFeedBackConvert; import com.qianwen.smartman.modules.mdc.entity.WorkstationFeedback; import com.qianwen.smartman.modules.mdc.entity.WorkstationFeedbackDetail; import com.qianwen.smartman.modules.mdc.service.IWorkstationFeedbackService; import com.qianwen.smartman.modules.mdc.vo.StatusRecordVO; import com.qianwen.smartman.modules.mdc.vo.WorkstationFeedBackVO; public class WorkstationFeedbackWrapper extends BaseEntityWrapper { private static final IGlobalWcsService globalWcsService = (IGlobalWcsService) SpringUtil.getBean(IGlobalWcsService.class); private static final IWorkstationService workstationService = (IWorkstationService) SpringUtil.getBean(IWorkstationService.class); private static final IWorkstationFeedbackService feedbackService = (IWorkstationFeedbackService) SpringUtil.getBean(IWorkstationFeedbackService.class); private static final IEmployeeService employeeService = (IEmployeeService) SpringUtil.getBean(IEmployeeService.class); public static WorkstationFeedbackWrapper build() { return new WorkstationFeedbackWrapper(); } public WorkstationFeedBackVO entityVO(WorkstationFeedback feedback) { WorkstationFeedBackVO vo = WorkstationFeedBackConvert.INSTANCE.convert(feedback); Optional.ofNullable(globalWcsService.getByCode(feedback.getWcs(), GlobalWcsTypeEnum.FEEDBACK)) .map(GlobalWcs::getName).ifPresent(vo::setWcsDesc); Optional.ofNullable(workstationService.getById(feedback.getWorkstationId())).ifPresent(station -> { vo.setWorkstationName(station.getName()); vo.setWorkstationCode(station.getCode()); vo.setWorkstationAvatar(station.getAvatar()); }); Optional.ofNullable(employeeService.cachedById(feedback.getFeedUser())).map(Employee::getName) .ifPresent(vo::setFeedUser); Optional.ofNullable(globalWcsService.getByCode(feedback.getWcs(), GlobalWcsTypeEnum.FEEDBACK)) .map(GlobalWcs::getName).ifPresent(vo::setWcsDesc); /* Optional map = Optional.ofNullable(globalWcsService.getByCode(feedback.getWcs(), GlobalWcsTypeEnum.FEEDBACK)).map((v0) -> { return v0.getName(); }); vo.getClass(); map.ifPresent(this::setWcsDesc); Optional.ofNullable(workstationService.getById(feedback.getWorkstationId())).ifPresent(station -> { vo.setWorkstationName(station.getName()); vo.setWorkstationCode(station.getCode()); vo.setWorkstationAvatar(station.getAvatar()); }); Optional map2 = Optional.ofNullable(employeeService.cachedById(feedback.getFeedUser())).map((v0) -> { return v0.getName(); }); vo.getClass(); map2.ifPresent(this::setFeedUser); Optional map3 = Optional.ofNullable(globalWcsService.getByCode(feedback.getWcs(), GlobalWcsTypeEnum.FEEDBACK)).map((v0) -> { return v0.getName(); }); vo.getClass(); map3.ifPresent(this::setWcsDesc);*/ vo.setPoint(vo.getEndTime() == null); vo.setFeedbackId(feedback.getId()); return vo; } public static WorkstationFeedBackVO entityVO(final WorkstationFeedbackDetail detail) { WorkstationFeedback feedback = feedbackService.cachedById(detail.getFeedbackId()); WorkstationFeedBackVO vo = new WorkstationFeedBackVO(); vo.setStartTime(detail.getStartTime()); vo.setEndTime(detail.getEndTime()); vo.setWcs(detail.getWcs()); Optional.ofNullable(globalWcsService.getByCode(detail.getWcs(), GlobalWcsTypeEnum.FEEDBACK)).map(GlobalWcs::getName).ifPresent(vo::setWcsDesc); /* Optional map = Optional.ofNullable(globalWcsService.getByCode(detail.getWcs(), GlobalWcsTypeEnum.FEEDBACK)).map((v0) -> { return v0.getName(); }); vo.getClass(); map.ifPresent(this::setWcsDesc); */ vo.setFeedbackDesc(feedback.getRemark()); Optional.ofNullable(workstationService.getById(detail.getWorkstationId())).ifPresent(station -> { vo.setWorkstationName(station.getName()); vo.setWorkstationCode(station.getCode()); vo.setWorkstationAvatar(station.getAvatar()); vo.setWorkstationId(station.getId()); }); vo.setFeedbackTime(feedback.getFeedbackTime()); /* Optional map2 = Optional.ofNullable(employeeService.cachedById(feedback.getFeedUser())).map((v0) -> { return v0.getName(); }); vo.getClass(); map2.ifPresent(this::setFeedUser);*/ Optional.ofNullable(employeeService.cachedById(feedback.getFeedUser())).map(Employee::getName).ifPresent(vo::setFeedUser); vo.setPoint(feedback.getEndTime() == null); return vo; } public static StatusRecordVO entityRecordVO(final WorkstationFeedback feedback) { StatusRecordVO vo = new StatusRecordVO(); vo.setStartTime(new Timestamp(feedback.getStartTime().getTime())); vo.setPoint(feedback.getEndTime() == null); vo.setEndTime(feedback.getEndTime() == null ? new Timestamp(System.currentTimeMillis()) : new Timestamp(feedback.getEndTime().getTime())); wrapper(vo, feedback); return vo; } public static List entityVO(List list) { list.forEach(vo -> { Long feedbackId = vo.getFeedbackId(); if (feedbackId != null) { WorkstationFeedback feedback = feedbackService.cachedById(feedbackId); vo.setPoint(feedback.getEndTime() == null); wrapper(vo, feedback); } }); return list; } private static void wrapper(final StatusRecordVO vo, final WorkstationFeedback feedback) { vo.setFeedbackTime(new Timestamp(feedback.getFeedbackTime().getTime())); vo.setWcs(Integer.valueOf(Integer.parseInt(feedback.getWcs()))); Optional.ofNullable(globalWcsService.getByCode(feedback.getWcs(), GlobalWcsTypeEnum.FEEDBACK)).map(GlobalWcs::getName).ifPresent(vo::setWcsDesc); Optional.ofNullable(employeeService.cachedById(feedback.getFeedUser())).map(Employee::getName).map(vo::setFeedUser); /* Optional map = Optional.ofNullable(globalWcsService.getByCode(feedback.getWcs(), GlobalWcsTypeEnum.FEEDBACK)).map((v0) -> { return v0.getName(); }); vo.getClass(); map.ifPresent(this::setWcsDesc); Optional map2 = Optional.ofNullable(employeeService.cachedById(feedback.getFeedUser())).map((v0) -> { return v0.getName(); }); vo.getClass(); map2.map(this::setFeedUser);*/ vo.setFeedUserId(Optional.ofNullable(feedback.getEndFeedUser()).orElse(feedback.getFeedUser())); vo.setHumanFeedback(true); vo.setFeedbackId(feedback.getId()); vo.setFeedbackDesc(feedback.getRemark()); } }