Jelajahi Sumber

取消时间分析

wanxl 1 tahun lalu
induk
melakukan
2be1f8fcad
1 mengubah file dengan 122 tambahan dan 76 penghapusan
  1. 122 76
      src/main/java/com/repair/controller/RepairRecordController.java

+ 122 - 76
src/main/java/com/repair/controller/RepairRecordController.java

@@ -1981,12 +1981,11 @@ public class RepairRecordController implements RepairRecordControllerAPI {
             if (insertTransfer <= 0) {
                 throw new Exception("转单审核失败!");
             }
-
             if (eApprovalStatu.Agree.getValue() == tr.getApproverStatu()) {
-                //被派单用户
+                //转线下用户
                 RepairUser repairUser = repairUserService.getById(tr.getUserId());
                 if (repairUser == null) {
-                    return CommonResult.fail("被派单师傅数据异常,审核失败");
+                    return CommonResult.fail("被转线下师傅数据异常,审核失败");
                 }
 
                 //将原有的派单记录数据置为失效
@@ -1995,24 +1994,50 @@ public class RepairRecordController implements RepairRecordControllerAPI {
                 int updateDis = repairDispatchRecordService.updateDispatch(rr.getId(), oldDispatchRecord);
 
                 //同意
-                //添加派单记录
-                RepairDispatchRecord repairDispatchRecord = new RepairDispatchRecord();
-                repairDispatchRecord.setRecordId(rr.getId());
-                repairDispatchRecord.setUsersId(tr.getUserId());
-                repairDispatchRecord.setAssignedTime(new Date());
-                //repairDispatchRecord.setAcceptanceAssessTime(repairUser.getAcceptanceAssessTime());
-                repairDispatchRecord.setOrderType(eDispatchType.Transfer.getValue());
-                repairDispatchRecord.setIsLoseEfficacy(eDispatchResult.NotExpired.getValue());
-                int insertDispatch = repairDispatchRecordService.insertRepairDispatchRecord(repairDispatchRecord);
-                if (insertDispatch <= 0) {
-                    throw new Exception("转单审核失败!");
+                rr.setMaintenanceState(eRecordStatu.Offline.getValue());
+                //将维修师傅也加进去
+                rr.setMaintenancerName(repairUser.getUserName());
+                rr.setMaintenancerPhone(repairUser.getUserPhone());
+            }
+            String strContent="转单审核";
+            if (eApprovalStatu.Agree.getValue() == tr.getApproverStatu()) {
+                //被派单用户
+                RepairUser repairUser = repairUserService.getById(tr.getUserId());
+                if (repairUser == null) {
+                    return CommonResult.fail("被派单师傅数据异常,审核失败");
+                }
+                //将原有的派单记录数据置为失效
+                RepairDispatchRecord oldDispatchRecord = new RepairDispatchRecord();
+                oldDispatchRecord.setIsLoseEfficacy(eDispatchResult.Expired.getValue());
+                int updateDis = repairDispatchRecordService.updateDispatch(rr.getId(), oldDispatchRecord);
+                //转线下
+                if(repairUser.getUserZzid()==4){
+                    strContent="转线下审核";
+                    //同意
+                    rr.setMaintenanceState(eRecordStatu.Offline.getValue());
+                    //将维修师傅也加进去
+                    rr.setMaintenancerName(repairUser.getUserName());
+                    rr.setMaintenancerPhone(repairUser.getUserPhone());
+                }else {
+                    //同意
+                    //添加派单记录
+                    RepairDispatchRecord repairDispatchRecord = new RepairDispatchRecord();
+                    repairDispatchRecord.setRecordId(rr.getId());
+                    repairDispatchRecord.setUsersId(tr.getUserId());
+                    repairDispatchRecord.setAssignedTime(new Date());
+                    //repairDispatchRecord.setAcceptanceAssessTime(repairUser.getAcceptanceAssessTime());
+                    repairDispatchRecord.setOrderType(eDispatchType.Transfer.getValue());
+                    repairDispatchRecord.setIsLoseEfficacy(eDispatchResult.NotExpired.getValue());
+                    int insertDispatch = repairDispatchRecordService.insertRepairDispatchRecord(repairDispatchRecord);
+                    if (insertDispatch <= 0) {
+                        throw new Exception("转单审核失败!");
+                    }
+                    //同意的时候将维修表的状态改成派单中
+                    //拒绝的时候将维修表的状态改成转单前的
+                    rr.setMaintenanceState(eRecordStatu.Dispatch.getValue());
                 }
-
             }
 
-            //同意的时候将维修表的状态改成派单中
-            //拒绝的时候将维修表的状态改成转单前的
-            rr.setMaintenanceState(eRecordStatu.Dispatch.getValue());
             int updateRecord = repairRecordService.updateRepairRecord(rr);
             if (updateRecord <= 0) {
                 throw new Exception("转单审核失败!");
@@ -2031,7 +2056,7 @@ public class RepairRecordController implements RepairRecordControllerAPI {
             //添加跟踪记录
             RepairTrackRecord repairTrackRecord = new RepairTrackRecord();
             repairTrackRecord.setRecordId(rr.getId());
-            repairTrackRecord.setContent("转单审核" + (tr.getRefuseRemark() == null ? "" : "-" + tr.getRefuseRemark()));
+            repairTrackRecord.setContent(strContent + (tr.getRefuseRemark() == null ? "" : "-" + tr.getRefuseRemark()));
             repairTrackRecord.setMaintenanceState(rr.getMaintenanceState());
             repairTrackRecord.setUserId(senderId);
             repairTrackRecord.setUserZzstr("管理员");
@@ -2114,7 +2139,7 @@ public class RepairRecordController implements RepairRecordControllerAPI {
             if (insertOffline <= 0) {
                 throw new Exception("转线下审核失败!");
             }
-
+            String strContent="转线下审核";
             if (eApprovalStatu.Agree.getValue() == tr.getApproverStatu()) {
                 //转线下用户
                 RepairUser repairUser = repairUserService.getById(tr.getUserId());
@@ -2127,11 +2152,32 @@ public class RepairRecordController implements RepairRecordControllerAPI {
                 oldDispatchRecord.setIsLoseEfficacy(eDispatchResult.Expired.getValue());
                 int updateDis = repairDispatchRecordService.updateDispatch(rr.getId(), oldDispatchRecord);
 
-                //同意
-                rr.setMaintenanceState(eRecordStatu.Offline.getValue());
-                //将维修师傅也加进去
-                rr.setMaintenancerName(repairUser.getUserName());
-                rr.setMaintenancerPhone(repairUser.getUserPhone());
+                if(repairUser.getUserZzid()==4){
+
+                    //同意
+                    rr.setMaintenanceState(eRecordStatu.Offline.getValue());
+                    //将维修师傅也加进去
+                    rr.setMaintenancerName(repairUser.getUserName());
+                    rr.setMaintenancerPhone(repairUser.getUserPhone());
+                }else {
+                    strContent="转单审核";
+                    //同意
+                    //添加派单记录
+                    RepairDispatchRecord repairDispatchRecord = new RepairDispatchRecord();
+                    repairDispatchRecord.setRecordId(rr.getId());
+                    repairDispatchRecord.setUsersId(tr.getUserId());
+                    repairDispatchRecord.setAssignedTime(new Date());
+                    //repairDispatchRecord.setAcceptanceAssessTime(repairUser.getAcceptanceAssessTime());
+                    repairDispatchRecord.setOrderType(eDispatchType.Transfer.getValue());
+                    repairDispatchRecord.setIsLoseEfficacy(eDispatchResult.NotExpired.getValue());
+                    int insertDispatch = repairDispatchRecordService.insertRepairDispatchRecord(repairDispatchRecord);
+                    if (insertDispatch <= 0) {
+                        throw new Exception("转单审核失败!");
+                    }
+                    //同意的时候将维修表的状态改成派单中
+                    //拒绝的时候将维修表的状态改成转单前的
+                    rr.setMaintenanceState(eRecordStatu.Dispatch.getValue());
+                }
             } else {
                 //转线下前的维修单记录状态
                 rr.setMaintenanceState(offlineRecord.getOldRecord());
@@ -2155,7 +2201,7 @@ public class RepairRecordController implements RepairRecordControllerAPI {
             //添加跟踪记录
             RepairTrackRecord repairTrackRecord = new RepairTrackRecord();
             repairTrackRecord.setRecordId(rr.getId());
-            repairTrackRecord.setContent("转线下审核" + (tr.getRefuseRemark() == null ? "" : "-" + tr.getRefuseRemark()));
+            repairTrackRecord.setContent(strContent + (tr.getRefuseRemark() == null ? "" : "-" + tr.getRefuseRemark()));
             repairTrackRecord.setMaintenanceState(rr.getMaintenanceState());
             repairTrackRecord.setUserId(senderId);
             repairTrackRecord.setUserZzstr("管理员");
@@ -3418,14 +3464,14 @@ public class RepairRecordController implements RepairRecordControllerAPI {
         List<RepairDispatchRecord> repairDispatchRecords = repairDispatchRecordService.list(rdrsWrapper);
         for (RepairDispatchRecord repairDispatchRecord : repairDispatchRecords) {
             // 派单时间
-            long sendTime = repairDispatchRecord.getAssignedTime().getTime();
-            // 接单考核时间
-            Integer acceptanceAssessTime = repairDispatchRecord.getAcceptanceAssessTime() * 1000 * 60;
-
-            long time = sendTime + acceptanceAssessTime;
-
-            // 接单时间
-            long receivingTime = repairDispatchRecord.getReceivingTime().getTime();
+//            long sendTime = repairDispatchRecord.getAssignedTime().getTime();
+//            // 接单考核时间
+//            Integer acceptanceAssessTime = repairDispatchRecord.getAcceptanceAssessTime() * 1000 * 60;
+//
+//            long time = sendTime + acceptanceAssessTime;
+//
+//            // 接单时间
+//            long receivingTime = repairDispatchRecord.getReceivingTime().getTime();
             // 接单人
             Integer usersId = repairDispatchRecord.getUsersId();
             Integer recordId = repairDispatchRecord.getRecordId();
@@ -3442,29 +3488,29 @@ public class RepairRecordController implements RepairRecordControllerAPI {
 
 
             // 实际完成时间大于接单时间加考核时间为超时
-            if (receivingTime > time) {
-                if (sendTimeOutMap.containsKey(usersId)) {
-                    // 次数
-                    Integer count = sendTimeOutMap.get(usersId);
-                    count = count + 1;
-                    sendTimeOutMap.put(usersId, count);
-                } else {
-                    sendTimeOutMap.put(usersId, 1);
-                }
-            }
+//            if (receivingTime > time) {
+//                if (sendTimeOutMap.containsKey(usersId)) {
+//                    // 次数
+//                    Integer count = sendTimeOutMap.get(usersId);
+//                    count = count + 1;
+//                    sendTimeOutMap.put(usersId, count);
+//                } else {
+//                    sendTimeOutMap.put(usersId, 1);
+//                }
+//            }
 
             // 接单时长=接单时间-派单时间(分)
-            Long orderReceivingTime = receivingTime - sendTime;
-            orderReceivingTime = orderReceivingTime / 1000 / 60;
-
-            if (sendMap.containsKey(usersId)) {
-                // 接单总时长
-                Long sendTotalTime = sendMap.get(usersId);
-                sendTotalTime = sendTotalTime + orderReceivingTime;
-                sendMap.put(usersId, sendTotalTime);
-            } else {
-                sendMap.put(usersId, orderReceivingTime);
-            }
+//            Long orderReceivingTime = receivingTime - sendTime;
+//            orderReceivingTime = orderReceivingTime / 1000 / 60;
+
+//            if (sendMap.containsKey(usersId)) {
+//                // 接单总时长
+//                Long sendTotalTime = sendMap.get(usersId);
+//                sendTotalTime = sendTotalTime + orderReceivingTime;
+//                sendMap.put(usersId, sendTotalTime);
+//            } else {
+//                sendMap.put(usersId, orderReceivingTime);
+//            }
         }
 
         Wrapper<RepairSchool> schoolWrapper = new LambdaQueryWrapper<>();
@@ -3497,27 +3543,27 @@ public class RepairRecordController implements RepairRecordControllerAPI {
             maintenanceWorkerVo.setWorkOrderTotal(size);
 
             // 超时率--待消除
-            if (maintainTimeOutMap.containsKey(id)) {
-                Integer integer = maintainTimeOutMap.get(id);
-                BigDecimal a = new BigDecimal(integer);
-                BigDecimal c = b;
-
-                // 接单总次数
-                List<Integer> integers = sendCountMap.get(id);
-                BigDecimal bigDecimal1 = new BigDecimal(integers.size());
-                c = c.add(bigDecimal1);
-                // 接单
-                if (sendTimeOutMap.containsKey(id)) {
-                    Integer integer1 = sendTimeOutMap.get(id);
-                    BigDecimal bigDecimal = new BigDecimal(integer1);
-                    a = a.add(bigDecimal);
-
-                }
-
-                BigDecimal bigDecimal = a.divide(c, 2, BigDecimal.ROUND_HALF_UP);
-                BigDecimal multiply = bigDecimal.multiply(new BigDecimal(100));
-                //maintenanceWorkerVo.setTimeOut(multiply + "%");
-            }
+//            if (maintainTimeOutMap.containsKey(id)) {
+//                Integer integer = maintainTimeOutMap.get(id);
+//                BigDecimal a = new BigDecimal(integer);
+//                BigDecimal c = b;
+//
+//                // 接单总次数
+//                List<Integer> integers = sendCountMap.get(id);
+//                BigDecimal bigDecimal1 = new BigDecimal(integers.size());
+//                c = c.add(bigDecimal1);
+//                // 接单
+//                if (sendTimeOutMap.containsKey(id)) {
+//                    Integer integer1 = sendTimeOutMap.get(id);
+//                    BigDecimal bigDecimal = new BigDecimal(integer1);
+//                    a = a.add(bigDecimal);
+//
+//                }
+//
+//                BigDecimal bigDecimal = a.divide(c, 2, BigDecimal.ROUND_HALF_UP);
+//                BigDecimal multiply = bigDecimal.multiply(new BigDecimal(100));
+//                //maintenanceWorkerVo.setTimeOut(multiply + "%");
+//            }
 
             // 平均维修时间--带消除
             Long aLong = maintainMap.get(id) == null ? 0L : maintainMap.get(id);