From 3de17c8b85f91b55175b631b0b8bdc837b24e993 Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期一, 11 十一月 2024 11:34:14 +0800 Subject: [PATCH] 工单处理结果审核接口 --- pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java | 214 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 214 insertions(+), 0 deletions(-) diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java index c635d5e..30d7b7f 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java @@ -1,7 +1,23 @@ package com.dy.pipIrrApp.workOrder; +import com.dy.common.webUtil.QueryResultVo; +import com.dy.pipIrrApp.workOrder.qo.QoWorkOrder; +import com.dy.pipIrrGlobal.daoOp.OpeApproveResultMapper; +import com.dy.pipIrrGlobal.daoOp.OpeProcessingResultMapper; +import com.dy.pipIrrGlobal.daoOp.OpeWorkOrderMapper; +import com.dy.pipIrrGlobal.pojoOp.OpeApproveResult; +import com.dy.pipIrrGlobal.pojoOp.OpeProcessingResult; +import com.dy.pipIrrGlobal.pojoOp.OpeWorkOrder; +import com.dy.pipIrrGlobal.voOp.VoProcessingResult; +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 @@ -13,4 +29,202 @@ @Slf4j @Service public class WorkOrderSv { + @Autowired + private OpeWorkOrderMapper opeWorkOrderMapper; + + @Autowired + private OpeProcessingResultMapper opeProcessingResultMapper; + + @Autowired + private OpeApproveResultMapper opeApproveResultMapper; + + /** + * 娣诲姞宸ュ崟璁板綍 + * @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 workOrderId, Long dispatcherId) { + return opeWorkOrderMapper.getWorkOrder(workOrderId, dispatcherId); + } + + /** + * 閫昏緫鍒犻櫎涓�涓湭鍒犻櫎鐨勫伐鍗� + * @param workOrderId + * @return + */ + public Integer deleteWorkOrder(Long workOrderId) { + return opeWorkOrderMapper.deleteWorkOrder(workOrderId); + } + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇宸ュ崟 + * @param qo + * @return + */ + public QueryResultVo<List<VoWorkOrder>> getWorkOrders(QoWorkOrder qo) { + qo.completionTime() ; + + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo); + Long itemTotal = opeWorkOrderMapper.getWorkOrdersCount(params); + + QueryResultVo<List<VoWorkOrder>> 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); + } + + /** + * 涓婃姤宸ュ崟澶勭悊缁撴灉 + * @param po + * @return + */ + public String addProcessingResult(OpeProcessingResult po) { + String result = ""; + OpeProcessingResult processingResult = opeProcessingResultMapper.getByWorkOrderId(po.getWorkOrderId()); + if(processingResult == null) { + // 鏃犲鐞嗙粨鏋滀笂鎶ュ鐞嗙粨鏋� + po.setReportTime(new Date()); + po.setState((byte)1); + po.setDeleted(0L); + opeProcessingResultMapper.insert(po); + if(po.getId() == 0) { + result = "宸ュ崟澶勭悊缁撴灉涓婃姤澶辫触"; + return result; + } + + result = "success"; + return result; + } + + switch (processingResult.getState()) { + case 1: + result = "宸ュ崟澶勭悊缁撴灉宸蹭笂鎶ワ紝璇峰嬁閲嶅涓婃姤"; + break; + case 2: + result = "宸ュ崟澶勭悊缁撴灉宸查�氳繃"; + break; + case 3: + // 澶勭悊缁撴灉琚┏鍥炴椂锛屽垹闄ゅ綋鍓嶅鐞嗙粨鏋滐紝涓婃姤鏂扮殑澶勭悊缁撴灉 + processingResult.setDeleted(System.currentTimeMillis()/1000); + opeProcessingResultMapper.updateByPrimaryKeySelective(processingResult); + + po.setReportTime(new Date()); + po.setState((byte)1); + po.setDeleted(0L); + opeProcessingResultMapper.insert(po); + result = "success"; + break; + } + + return result; + } + + /** + * 鑾峰彇鎸囧畾宸℃鍛樼殑鎸囧畾鏈垹闄や笖鏈鎵圭殑澶勭悊缁撴灉涓婃姤锛屽垹闄ゅ鐞嗙粨鏋滃墠鍒ゆ柇浣跨敤浣跨敤 + * @param proResultId + * @param inspectorId + * @return + */ + public OpeProcessingResult getProResult(Long proResultId, Long inspectorId) { + return opeProcessingResultMapper.getProResult(proResultId, inspectorId); + } + + /** + * 閫昏緫鍒犻櫎涓�涓湭鍒犻櫎鐨勫鐞嗙粨鏋� + * @param proResultId + * @return + */ + public Integer deleteProResult(Long proResultId) { + return opeProcessingResultMapper.deleteProResult(proResultId); + } + + /** + * 鑾峰彇澶勭悊缁撴灉璇︽儏 + * @param proResultId + * @return + */ + public VoProcessingResult getProResultById(Long proResultId) { + return opeProcessingResultMapper.getProResultById(proResultId); + } + + /** + * 瀹℃牳宸ュ崟澶勭悊缁撴灉 + * 1. 鍒ゆ柇鎸囧畾鐨勫伐鍗曞強澶勭悊缁撴灉鏄惁瀛樺湪涓旀湭瀹屾垚 + * 2. 娣诲姞瀹℃牳璁板綍 + * 3. 濡傛灉瀹℃牳閫氳繃 + * 澶勭悊缁撴灉鐘舵�佹敼涓哄凡閫氳繃 + * 宸ュ崟琛ュ厖浠诲姟瀹屾垚鏃堕棿 + * 宸ュ崟鐘舵�佹敼涓哄凡瀹屾垚 + * 4. 濡傛灉椹冲洖 + * 浠诲姟澶勭悊缁撴灉鏀逛负椹冲洖 + * 宸ュ崟椹冲洖娆℃暟鍔�1 + * @param po + * @return + */ + public String approveProResult(OpeApproveResult po) { + + OpeProcessingResult processingResult = opeProcessingResultMapper.selectByPrimaryKey(po.getProcessingResultId()); + if(processingResult == null || processingResult.getDeleted() != 0 || processingResult.getState() != 1) { + return "澶勭悊缁撴灉涓嶅瓨鍦ㄦ垨宸插畬鎴愬鏍�"; + } + + OpeWorkOrder workOrder = opeWorkOrderMapper.selectByPrimaryKey(po.getWorkOrderId()); + if(workOrder == null || workOrder.getDeleted() != 0 || workOrder.getState() == 2) { + return "宸ュ崟涓嶅瓨鍦ㄦ垨宸插畬鎴�"; + } + + po.setApproveTime(new Date()); + po.setDeleted(0L); + if(opeApproveResultMapper.insert(po) == 0) { + return "瀹℃牳璁板綍娣诲姞澶辫触"; + } + + if(po.getApproveResult() == 1) { + // 瀹℃牳閫氳繃 + processingResult.setState((byte)2); + opeProcessingResultMapper.updateByPrimaryKeySelective(processingResult); + + workOrder.setCompleteTime(processingResult.getCompleteTime()); + workOrder.setState((byte)2); + opeWorkOrderMapper.updateByPrimaryKeySelective(workOrder); + + } else { + // 椹冲洖 + processingResult.setState((byte)3); + opeProcessingResultMapper.updateByPrimaryKeySelective(processingResult); + + workOrder.setRejectTimes(workOrder.getRejectTimes() + 1); + opeWorkOrderMapper.updateByPrimaryKeySelective(workOrder); + } + + return "success"; + } } -- Gitblit v1.8.0