package com.boco.nbd.wios.wx.vo; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import com.boco.nbd.wios.flow.entity.FlowConstant; import com.boco.nbd.wios.flow.entity.po.OrderPO; import com.boco.nbd.wios.flow.enums.FlowNodeEnum; import com.boco.nbd.wios.manage.entity.cams.enums.OrderStatus; import com.boco.nbd.wios.wx.entity.bo.MinaOrderTrack; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.util.Date; /** * @author kevin * @create 2020/11/2 21:06 */ @Data public class MinaOrderOperateLogVO implements Serializable { @ApiModelProperty(value = "操作编号", required = true) private String id; @ApiModelProperty(value = "操作状态码", required = true) private String name; @ApiModelProperty(value = "操作名称", required = true) private String value; @ApiModelProperty(value = "操作时间", required = true) private Date createTime; @ApiModelProperty(value = "操作代码", required = true) private String code; @ApiModelProperty(value = "是否显示详情", required = true) private Boolean showDetail; @ApiModelProperty(value = "订单进度详情", required = false) private MinaOrderReserveVO processDetail; @ApiModelProperty(value = "订单进度详情", required = false) private MinaOrderInstallVO installProcessDetail; private final static String UNDERSCORE="-"; /** * 对象转换 * * @param track * @return */ public static MinaOrderOperateLogVO toVo(MinaOrderTrack track) { MinaOrderOperateLogVO vo = new MinaOrderOperateLogVO(); vo.setShowDetail(false); vo.setId(track.getTaskId()); vo.setName(track.getNodeFlag() + UNDERSCORE + track.getNodeName()); vo.setCreateTime(DateUtil.parse(track.getExecuteTime(), DatePattern.NORM_DATETIME_PATTERN)); return vo; } /** * 赋值processDetail * * @param orderStatus * @param orderPO * @param track */ public void buildProcessDetail(OrderStatus orderStatus, OrderPO orderPO, MinaOrderTrack track) { MinaOrderReserveVO reserveVO = new MinaOrderReserveVO(); this.setShowDetail(true); if (OrderStatus.SURVEY_RESERVED.equals(orderStatus)) { //104=>105 reserveVO.setStaffName(orderPO.getSurveyStaffName()); reserveVO.setStaffPhone(orderPO.getSurveyStaffPhone()); reserveVO.setClientName(orderPO.getSurveyClientName()); reserveVO.setClientPhone(orderPO.getSurveyClientPhone()); reserveVO.setReserveTime(orderPO.getSurveyReserveTime()); reserveVO.setCamsPhone(orderPO.getSurveyCamsPhone()); } else if (OrderStatus.INSTALL_RESERVED.equals(orderStatus)) { //108(109)=>110 reserveVO.setStaffName(orderPO.getInstallStaffName()); reserveVO.setStaffPhone(orderPO.getInstallStaffPhone()); reserveVO.setClientName(orderPO.getInstallClientName()); reserveVO.setClientPhone(orderPO.getInstallClientPhone()); reserveVO.setReserveTime(orderPO.getInstallReserveTime()); reserveVO.setCamsPhone(orderPO.getInstallCamsPhone()); } else if (OrderStatus.SURVEY_RECTIFYING.equals(orderStatus)) { //NODE_107=>NODE_106 reserveVO.setFailed(true); reserveVO.setAuditResult(FlowNodeEnum.NODE_107.getValue() + FlowConstant.NOT_PASS); reserveVO.setAuditName(track.getUserName()); reserveVO.setAuditTime(DateUtil.parse(track.getExecuteTime(), DatePattern.NORM_DATETIME_PATTERN)); } else if (OrderStatus.SURVEY_EXAMINE_SUCCESS.equals(orderStatus)) { //NODE_107=>NODE_108 reserveVO.setFailed(false); reserveVO.setAuditResult(FlowNodeEnum.NODE_107.getValue() + FlowConstant.PASS); reserveVO.setAuditName(track.getUserName()); reserveVO.setAuditTime(orderPO.getSurveyApproveTime()); } else if (OrderStatus.INSTALL_RECTIFYING.equals(orderStatus)) { //112=>111 reserveVO.setFailed(true); reserveVO.setAuditResult(FlowNodeEnum.NODE_112.getValue() + FlowConstant.NOT_PASS); reserveVO.setAuditName(track.getUserName()); reserveVO.setAuditTime(DateUtil.parse(track.getExecuteTime(), DatePattern.NORM_DATETIME_PATTERN)); reserveVO.setAuditFailReason(orderPO.getInstallFinishFailReason()); } else if (OrderStatus.INSTALL_EXAMINE_SUCCESS.equals(orderStatus)) { //112=>113 reserveVO.setFailed(false); reserveVO.setAuditResult(FlowNodeEnum.NODE_112.getValue() + FlowConstant.PASS); reserveVO.setAuditName(track.getUserName()); reserveVO.setAuditTime(orderPO.getInstallApproveTime()); } else { this.setShowDetail(false); } if (this.getShowDetail()) { reserveVO.setRemark(track.getComment()); } this.setProcessDetail(reserveVO); } }