qingzhangyin 2 лет назад
Родитель
Сommit
818240384b

+ 1 - 9
src/main/java/com/palmnest/application/dto/output/RepairBillStateStatisticsDto.java

@@ -44,7 +44,7 @@ public class RepairBillStateStatisticsDto {
 
     private BigDecimal avgBillTime; //平均接单耗时
     private BigDecimal avgCompleteTime;//平均完成耗时
-    private String avgStar;//平均评星
+    //private String avgStar;//平均评星
 
 
 
@@ -250,14 +250,6 @@ public class RepairBillStateStatisticsDto {
         this.avgCompleteTime = avgCompleteTime;
     }
 
-    public String getAvgStar() {
-        return avgStar;
-    }
-
-    public void setAvgStar(String avgStar) {
-        this.avgStar = avgStar;
-    }
-
 
     public int getBillSingleTotal() {
         return billSingleTotal;

+ 9 - 2
src/main/java/com/palmnest/dao/repair/impl/RepairBillDaoImpl.java

@@ -273,10 +273,17 @@ public class RepairBillDaoImpl extends GenericDaoHibernate<RepairBill, Long> imp
 
     @Override
     public Integer updateGrabBill(RepairBill bill, Integer version) {
+
         String sql = "UPDATE tb_repair_bills t SET t.STATUS=" + bill.getStatus() +
                 " , t.service_user= '" + bill.getServiceUser() + "', t.version=" + bill.getVersion() +
-                ", t.modify_time= '" + DateHelper.formatDate(bill.getModifyTime(), DateHelper.DATE_TIME_STRING) +
-                "' where t.id=" + bill.getId() + " and t.version=" + version;
+                ", t.modify_time= '" + DateHelper.formatDate(bill.getModifyTime(), DateHelper.DATE_TIME_STRING) ;
+
+                if(null != bill.getSingleTime()){
+                    sql = sql +  ", t.single_time= '" + DateHelper.formatDate(bill.getSingleTime(), DateHelper.DATE_TIME_STRING) ;
+                }
+
+                sql = sql +  "' where t.id=" + bill.getId() + " and t.version=" + version;
+
         log.info(sql);
         return getSession().createSQLQuery(sql).executeUpdate();
     }

+ 3 - 1
src/main/java/com/palmnest/model/repair/RepairBill.java

@@ -363,7 +363,7 @@ public class RepairBill implements Serializable {
 		this.completePhotoUrl = completePhotoUrl;
 	}
 
-	@Column(name = "orgId")
+	@Column(name = "single_time")
 	public Date getSingleTime() {
 		return singleTime;
 	}
@@ -371,4 +371,6 @@ public class RepairBill implements Serializable {
 	public void setSingleTime(Date singleTime) {
 		this.singleTime = singleTime;
 	}
+
+
 }

+ 23 - 8
src/main/java/com/palmnest/service/repair/impl/RepairBillStatisticsManagerImpl.java

@@ -116,14 +116,18 @@ public class RepairBillStatisticsManagerImpl implements RepairBillStatisticsMana
         String sheetName;
         if (list != null && list.size() > 0) {
             sheetName = "工程维修状态统计";
-            String[] titles = {"项目",
+            String[] titles = {
+                    "项目",
                     "维修大类",
                     "维修小类",
                     "时间",
                     "总工单数",
                     "未完成",
                     "完成率",
-                    "耗时h",
+
+                    "平均接单耗时(h)",
+                    "平均完成耗时(h)",
+                    //"耗时h",
                     "工程人员",
                     "平均评星",
                     "待审核",
@@ -135,14 +139,18 @@ public class RepairBillStatisticsManagerImpl implements RepairBillStatisticsMana
                     "已完成",
                     "已取消"};
 
-            String[] fieldNames = {"orgName",
+            String[] fieldNames = {
+                    "orgName",
                     "repairTypeName",
                     "repairTypeDetailName",
                     "date",
                     "allBillTotal",
                     "unfinishedTotal",
                     "fillRate",
-                    "jumpingTime",
+
+                    "avgBillTime",
+                    "avgCompleteTime",
+                    //"jumpingTime",
                     "managerTotal",
                     "ki",
                     "billStatus1Total",
@@ -249,7 +257,7 @@ public class RepairBillStatisticsManagerImpl implements RepairBillStatisticsMana
                 }
 
                 //已抢单-数量
-                if(null != dto.getSingleTime()){
+                if(null != repairBill.getSingleTime()){
                     dto.setBillSingleTotal(dto.getBillSingleTotal() + 1);
                     singleMinutes += DateHelper.getMinutesBetween(repairBill.getCreateTime(), repairBill.getSingleTime());
                 }
@@ -312,8 +320,12 @@ public class RepairBillStatisticsManagerImpl implements RepairBillStatisticsMana
             //平均接单耗时 -1
             if(dto.getBillSingleTotal() > 0){
 
-                BigDecimal avgBillTime = new BigDecimal(dto.getBillSingleTotal()).divide(new BigDecimal(60))
-                        .divide(new BigDecimal(singleMinutes),2, BigDecimal.ROUND_HALF_UP);
+                LOG.info("===>singleMinutes:{}"+ singleMinutes);
+                LOG.info("===>billSingleTotal:{}"+ dto.getBillSingleTotal());
+
+                BigDecimal avgBillTime =new BigDecimal(singleMinutes).
+                        divide(new BigDecimal("60"),2, BigDecimal.ROUND_HALF_UP).divide(new BigDecimal(dto.getBillSingleTotal()),2, BigDecimal.ROUND_HALF_UP);
+
 
                 dto.setAvgBillTime(avgBillTime);
             }else{
@@ -323,8 +335,11 @@ public class RepairBillStatisticsManagerImpl implements RepairBillStatisticsMana
             //平均完成耗时 -2
             if(dto.getBillStatus8Total() > 0){
 
+                LOG.info("===>completedMinutes:{}"+ completedMinutes);
+                LOG.info("===>billStatus8Total:{}"+ dto.getBillStatus8Total());
+
                 BigDecimal avgCompleteTime =new BigDecimal(completedMinutes).
-                        divide(new BigDecimal(dto.getBillStatus8Total()),2, BigDecimal.ROUND_HALF_UP);
+                        divide(new BigDecimal("60"),2, BigDecimal.ROUND_HALF_UP).divide(new BigDecimal(dto.getBillStatus8Total()),2, BigDecimal.ROUND_HALF_UP);
 
                 dto.setAvgCompleteTime(avgCompleteTime);
             }else{

+ 4 - 0
src/main/java/com/palmnest/webapp/controller/api/ApiRepairBillController.java

@@ -465,6 +465,10 @@ public class ApiRepairBillController extends BaseFormController {
                 bill.setStatus(CodeConstants.IN_PROGRESS);//抢单成功设置状态为进行中
             }
 
+            if(null == bill.getSingleTime()){//记录 抢单时间
+                bill.setSingleTime(new Date());
+            }
+
             bill.setServiceUser(user.getId().toString());
             bill.setModifyTime(new Date());
             bill.setVersion(version == null ? 1 : version + 1);