From d20d38e22b06559d758c568769017e2acf632583 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期三, 23 四月 2025 14:06:48 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV
---
pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java | 292 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 292 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..d01927a 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,37 @@
package com.dy.pipIrrApp.workOrder;
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.util.NumUtil;
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pipIrrApp.workOrder.qo.QoWorkOrder;
+import com.dy.pipIrrGlobal.daoBa.BaUserMapper;
+import com.dy.pipIrrGlobal.daoOp.OpeApproveResultMapper;
+import com.dy.pipIrrGlobal.daoOp.OpeProcessingResultMapper;
+import com.dy.pipIrrGlobal.daoOp.OpeTaskTypeMapper;
+import com.dy.pipIrrGlobal.daoOp.OpeWorkOrderMapper;
+import com.dy.pipIrrGlobal.dyFile.FileOperate;
+import com.dy.pipIrrGlobal.dyFile.FileRestVo;
+import com.dy.pipIrrGlobal.pojoOp.OpeApproveResult;
+import com.dy.pipIrrGlobal.pojoOp.OpeProcessingResult;
+import com.dy.pipIrrGlobal.pojoOp.OpeWorkOrder;
+import com.dy.pipIrrGlobal.voBa.VoRoleSimple;
+import com.dy.pipIrrGlobal.voOp.VoProcessingResult;
+import com.dy.pipIrrGlobal.voOp.VoProcessingResult_temp;
+import com.dy.pipIrrGlobal.voOp.VoTaskType;
+import com.dy.pipIrrGlobal.voOp.VoWorkOrder;
import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.common.utils.PojoUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
/**
* @author ZhuBaoMin
@@ -13,4 +43,266 @@
@Slf4j
@Service
public class WorkOrderSv {
+ @Autowired
+ private OpeWorkOrderMapper opeWorkOrderMapper;
+
+ @Autowired
+ private OpeProcessingResultMapper opeProcessingResultMapper;
+
+ @Autowired
+ private OpeApproveResultMapper opeApproveResultMapper;
+
+ @Autowired
+ private OpeTaskTypeMapper opeTaskTypeMapper;
+
+ @Autowired
+ private BaUserMapper baUserMapper;
+
+ @Value("${dy.webFile.fmUrl}")
+ private String fmUrl ;
+
+ @Autowired
+ private FileOperate fileOp ;
+
+ private void dealWebFilePath(JSONArray jsonArray, boolean hasZipFile, boolean isVideo){
+ for (Object obj : jsonArray){
+ if(obj instanceof JSONObject){
+ JSONObject jsonObject = (JSONObject) obj;
+ Object hashObj = jsonObject.get("hash") ;
+ if(hashObj != null && NumUtil.isIntNumber(hashObj.toString())){
+ FileRestVo fvo = fileOp.parseHashcode(fmUrl, Integer.valueOf(hashObj.toString()));
+ if(fvo != null && fvo.fileWebUrl != null){
+ jsonObject.put("webPath", fvo.fileWebUrl + jsonObject.get("filePath"));
+ if(hasZipFile){
+ if(!isVideo){
+ jsonObject.put("webPathZip", fileOp.getFileZipPath(fvo.fileWebUrl + jsonObject.get("filePath")));
+ }else{
+ jsonObject.put("webPathZip", fileOp.getFileZipPath(fvo.fileWebUrl + jsonObject.get("filePath"), "jpg"));
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ /**
+ * 娣诲姞宸ュ崟璁板綍
+ * @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) {
+ VoProcessingResult_temp result_temp = opeProcessingResultMapper.getProResultById(proResultId);
+ VoProcessingResult result = new VoProcessingResult();
+ BeanUtils.copyProperties(result_temp, result);
+
+ JSONArray images_array = Optional.ofNullable(JSON.parseArray(result_temp.getImages())).orElse(new JSONArray());
+ JSONArray audios_array = Optional.ofNullable(JSON.parseArray(result_temp.getAudios())).orElse(new JSONArray());
+ JSONArray videos_array = Optional.ofNullable(JSON.parseArray(result_temp.getVideos())).orElse(new JSONArray());
+ this.dealWebFilePath(images_array, true, false) ;
+ this.dealWebFilePath(audios_array, false, false) ;
+ this.dealWebFilePath(videos_array, true, true) ;
+ result.setImages(images_array);
+ result.setAudios(audios_array);
+ result.setVideos(videos_array);
+
+ return result;
+ }
+
+ /**
+ * 瀹℃牳宸ュ崟澶勭悊缁撴灉
+ * 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";
+ }
+
+ /**
+ * 鑾峰彇浠诲姟绫诲瀷鍒楄〃
+ * @return
+ */
+ public List<VoTaskType> getTaskTypes() {
+ return opeTaskTypeMapper.getTaskTypes();
+ }
+
+ /**
+ * 鑾峰彇宸℃鍛樺垪琛�
+ * @param inspector
+ * @return
+ */
+ public List<VoRoleSimple> getInspectors(String inspector) {
+ return baUserMapper.getInspectors(inspector);
+ }
}
--
Gitblit v1.8.0