package com.dy.pipIrrApp.workOrder; import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrApp.workOrder.qo.QoWorkOrder; import com.dy.pipIrrGlobal.daoOp.OpeProcessingResultMapper; import com.dy.pipIrrGlobal.daoOp.OpeWorkOrderMapper; import com.dy.pipIrrGlobal.pojoOp.OpeProcessingResult; import com.dy.pipIrrGlobal.pojoOp.OpeWorkOrder; import com.dy.pipIrrGlobal.voOp.VoWorkOrder; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.common.utils.PojoUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; import java.util.List; import java.util.Map; /** * @author ZhuBaoMin * @date 2024-11-04 9:29 * @LastEditTime 2024-11-04 9:29 * @Description 工单服务类 */ @Slf4j @Service public class WorkOrderSv { @Autowired private OpeWorkOrderMapper opeWorkOrderMapper; @Autowired private OpeProcessingResultMapper opeProcessingResultMapper; /** * 添加工单记录 * @param po * @return */ public Long insertWorkOrder(OpeWorkOrder po) { po.setDispatchTime(new Date()); po.setState((byte) 1); po.setRejectTimes(0); po.setDeleted(0L); opeWorkOrderMapper.insert(po); return po.getId(); } /** * 获取指定派单人的指定未删除工单,删除工单前判断使用使用 * @param dispatcherId * @param workOrderId * @return */ public OpeWorkOrder getWorkOrder(Long dispatcherId, Long workOrderId) { return opeWorkOrderMapper.getWorkOrder(dispatcherId, workOrderId); } /** * 逻辑删除一个未删除的工单 * @param workOrderId * @return */ public Integer deleteWorkOrder(Long workOrderId) { return opeWorkOrderMapper.deleteWorkOrder(workOrderId); } /** * 根据指定条件获取工单 * @param qo * @return */ public QueryResultVo> getWorkOrders(QoWorkOrder qo) { qo.completionTime() ; Map params = (Map) PojoUtils.generalize(qo); Long itemTotal = opeWorkOrderMapper.getWorkOrdersCount(params); QueryResultVo> rsVo = new QueryResultVo<>() ; rsVo.pageSize = qo.pageSize ; rsVo.pageCurr = qo.pageCurr ; rsVo.calculateAndSet(itemTotal, params); rsVo.obj = opeWorkOrderMapper.getWorkOrders(params); return rsVo ; } /** * 根据工单主键获取工单视图对象 * @param workOrderId * @return */ public VoWorkOrder getWorkOrderById(Long workOrderId) { return opeWorkOrderMapper.getWorkOrderById(workOrderId); } /** * 根据workOrderId获取未删除的处理结果数量,添加结果上报前判断使用 * @param workOrderId * @return */ public Boolean hasValidProcessingResult(Long workOrderId) { if (opeProcessingResultMapper.getValidResultCount(workOrderId) == 0) { return false; } return true; } /** * 上报工单处理结果 * @param po * @return */ public Long insertProcessingResult(OpeProcessingResult po) { po.setReportTime(new Date()); po.setState((byte)1); po.setDeleted(0L); opeProcessingResultMapper.insert(po); return po.getId(); } }