wangbo 3 år sedan
förälder
incheckning
fb114321a0

+ 28 - 3
operation_manager/src/main/java/com/huaxu/order/controller/WorkOrderStatisticsController.java

@@ -20,6 +20,7 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.Date;
+import java.util.List;
 import java.util.Map;
 
 @RestController
@@ -101,9 +102,29 @@ public class WorkOrderStatisticsController {
 
         return new AjaxMessage<>(ResultStatus.OK,  statistics);
     }
-
-
-
+    @RequestMapping(value = "eventMonthStatistics", method = RequestMethod.GET)
+    @ApiOperation(value = "工单完成情况统计")
+    public AjaxMessage<List<Map<String,Object>>> eventMonthStatistics(
+            @ApiParam(value="统计类型:0-按月统计,1-按年统计",required =true) @RequestParam(required = true) int type,
+            @ApiParam(value = "统计时间:月格式(yyyy-MM),年格式(yyyy)", required = true) @RequestParam(required = true) String startDate) {
+        List<Map<String,Object>> statistics = null;
+        //根据用户编号,获取用户的权限
+        LoginUser loginUser = UserUtil.getCurrentUser();
+        WorkOrderManageDto workOrderManageDto = new WorkOrderManageDto();
+        workOrderManageDto.setStartDate(startDate);
+        workOrderManageDto.setOrderStatus(type);
+        workOrderManageDto.setProgramItems(loginUser.getProgramItemList());
+        workOrderManageDto.setUserType(loginUser.getType());
+        //1是公司,2是公司及以下,3部门,4部门及以下,5自定义
+        workOrderManageDto.setPermissonType(loginUser.getPermissonType());
+        if(type==0){
+            statistics =workOrderManageService.eventMonthStatistics(workOrderManageDto);
+        }
+        else if(type ==1){
+            statistics =workOrderManageService.eventYearStatistics(workOrderManageDto);
+        }
+        return new AjaxMessage<>(ResultStatus.OK,  statistics);
+    }
     /**
      * 日期增加一年
      */
@@ -131,4 +152,8 @@ public class WorkOrderStatisticsController {
         String reStr = sdf.format(dt1);
         return reStr;
     }
+
+
+
+
 }

+ 2 - 0
operation_manager/src/main/java/com/huaxu/order/dao/WorkOrderManageMapper.java

@@ -49,6 +49,8 @@ public interface WorkOrderManageMapper {
 
     List<Map<String,Object>> eventMonthStatistics(@Param("order") WorkOrderManageDto workOrderManageDto);
 
+    List<Map<String,Object>> eventYearStatistics(@Param("order") WorkOrderManageDto workOrderManageDto);
+
     Page<WorkOrderManageDto> findByNo(IPage<WorkOrderManageDto> page, @Param("order") WorkOrderManageDto workOrderManageDto);
 
     List<WorkOrderManageDto> selectMaintainOrder(@Param("order") WorkOrderManageDto workOrderManageDto);

+ 2 - 0
operation_manager/src/main/java/com/huaxu/order/service/WorkOrderManageService.java

@@ -92,6 +92,8 @@ public interface WorkOrderManageService {
 
 
     List<Map<String,Object>> eventMonthStatistics(@Param("order") WorkOrderManageDto workOrderManageDto);
+
+    List<Map<String,Object>> eventYearStatistics(@Param("order") WorkOrderManageDto workOrderManageDto);
     /**
      * 待处理权限
      */

+ 5 - 0
operation_manager/src/main/java/com/huaxu/order/service/impl/WorkOrderManageServiceImpl.java

@@ -163,6 +163,11 @@ public class WorkOrderManageServiceImpl implements WorkOrderManageService {
         return workOrderManageMapper.eventMonthStatistics(workOrderManageDto);
     }
 
+    @Override
+    public List<Map<String, Object>> eventYearStatistics(WorkOrderManageDto workOrderManageDto) {
+        return workOrderManageMapper.eventYearStatistics(workOrderManageDto);
+    }
+
     @Override
     public int selectPendingPower(Map<String, Object> map) {
         return workOrderManageMapper.selectPendingPower(map);

+ 51 - 0
operation_manager/src/main/resources/mapper/order/WorkOrderManageMapper.xml

@@ -964,5 +964,56 @@
     order by '日期'
   </select>
 
+  <!--事件数据年统计-->
+  <select id="eventYearStatistics" resultType="map">
+    select '数量','日期' from
+    (
+    select count(1) '数量',date_format(date_create,'%Y-%c') '日期'
+    from sc_work_order_manage t1
+    <where>
+      <if test="order.statsType == 0">
+        and t1.date_create &gt;= date_format(#{order.startDate,jdbcType=VARCHAR},'%Y-%c-%d')
+        and t1.date_create &lt; DATE_ADD(date_format(#{order.startDate,jdbcType=VARCHAR},'%Y-%c-%d'),INTERVAL 1 MONTH)
+      </if>
+      <if test="order.statsType == 1">
+        and t1.date_create &gt;= date_format(#{order.startDate,jdbcType=VARCHAR},'%Y-%c-%d')
+        and t1.date_create &lt; DATE_ADD(date_format(#{order.startDate,jdbcType=VARCHAR},'%Y-%c-%d'),INTERVAL 1 YEAR)
+      </if>
+      <if test="order.tenantId != null and order.tenantId != ''">
+        and t1.tenant_id = #{order.tenantId}
+      </if>
+      <if test="order.userType!=null and order.userType!=-999 and order.userType!=-9999 and  order.programItems != null and order.programItems.size() > 0">
+        <if test="order.permissonType == 5 or order.permissonType == 2">
+          and ( t1.department_org_id in
+          <foreach collection="order.programItems" item="item" open="(" close=")" separator=",">
+            #{item.orgId}
+          </foreach>
+          or
+          t1.COMPANY_ORG_ID in
+          <foreach collection="order.programItems" item="item" open="(" close=")" separator=",">
+            #{item.orgId}
+          </foreach>
+          )
+        </if>
+        <if test="order.permissonType == 4 or order.permissonType == 3">
+          and t1.department_org_id in
+          <foreach collection="order.programItems" item="item" open="(" close=")" separator=",">
+            #{item.orgId}
+          </foreach>
+        </if>
+        <if test="order.permissonType == 1">
+          and t1.COMPANY_ORG_ID in
+          <foreach collection="order.programItems" item="item" open="(" close=")" separator=",">
+            #{item.orgId}
+          </foreach>
+          and (t1.department_org_id is null or t1.department_org_id =0)
+        </if>
+      </if>
+    </where>
+    group by date_format(date_create,'%Y-%c')
+    ) a
+    order by '日期'
+  </select>
+
 
 </mapper>