统计执法记录仪每日工作时长
This commit is contained in:
parent
5341bb4d94
commit
38342059c9
@ -17,6 +17,7 @@ import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService;
|
||||
import com.zhgd.xmgl.modules.policecamera.entity.PoliceCameraGroup;
|
||||
import com.zhgd.xmgl.modules.policecamera.entity.PoliceCameraItem;
|
||||
import com.zhgd.xmgl.modules.policecamera.entity.ProjectPoliceCameraConfig;
|
||||
import com.zhgd.xmgl.modules.policecamera.entity.vo.CountWorkingHoursVo;
|
||||
import com.zhgd.xmgl.modules.policecamera.entity.vo.GroupTreeWithDevVo;
|
||||
import com.zhgd.xmgl.modules.policecamera.entity.vo.PoliceCameraItemVo;
|
||||
import com.zhgd.xmgl.modules.policecamera.entity.vo.VideoItemInfoVo;
|
||||
@ -416,4 +417,15 @@ public class PoliceCameraItemController {
|
||||
}
|
||||
}
|
||||
|
||||
@ApiOperation(value = "统计执法记录仪每日工作时长", notes = "统计执法记录仪每日工作时长", httpMethod = "POST")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "itemId", value = "执法记录仪id", paramType = "body", required = false, dataType = "String"),
|
||||
@ApiImplicitParam(name = "startDate", value = "开始日期(yyyy-MM-dd)", paramType = "body", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "endDate", value = "结束日期(yyyy-MM-dd)", paramType = "body", required = true, dataType = "String"),
|
||||
})
|
||||
@PostMapping("/countWorkingHours")
|
||||
public Result<List<CountWorkingHoursVo>> countWorkingHours(@RequestBody Map<String, Object> map) {
|
||||
return Result.success(policeCameraItemService.countWorkingHours(map));
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,21 @@
|
||||
package com.zhgd.xmgl.modules.policecamera.entity.vo;
|
||||
|
||||
import com.zhgd.xmgl.util.DateUtils;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class CountWorkingHoursVo implements DateUtils.DateAware {
|
||||
@ApiModelProperty(value = "工作时长中文显示")
|
||||
private String workingTimeName;
|
||||
/**
|
||||
*日期
|
||||
*/
|
||||
@ApiModelProperty("日期")
|
||||
private String date;
|
||||
/**
|
||||
* 文件时长
|
||||
*/
|
||||
@ApiModelProperty(value = "文件时长")
|
||||
private java.lang.Integer duration;
|
||||
}
|
||||
@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.zhgd.annotation.DataScope;
|
||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||
import com.zhgd.xmgl.modules.policecamera.entity.PoliceCameraItem;
|
||||
import com.zhgd.xmgl.modules.policecamera.entity.vo.CountWorkingHoursVo;
|
||||
import com.zhgd.xmgl.modules.policecamera.entity.vo.PoliceCameraItemVo;
|
||||
import com.zhgd.xmgl.modules.xz.entity.vo.CountStatusVo;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
@ -85,4 +86,6 @@ public interface PoliceCameraItemMapper extends BaseMapper<PoliceCameraItem> {
|
||||
* @return
|
||||
*/
|
||||
List<Long> getCameraItemIdListByTicketId(String ticketId);
|
||||
|
||||
List<CountWorkingHoursVo> countWorkingHours(Map<String, Object> map);
|
||||
}
|
||||
|
||||
@ -88,4 +88,26 @@
|
||||
join work_ticket_camera_rel wtcr on wt.id = wtcr.work_ticket_id
|
||||
where wt.id = #{ticketId}
|
||||
</select>
|
||||
|
||||
<select id="countWorkingHours" resultType="com.zhgd.xmgl.modules.policecamera.entity.vo.CountWorkingHoursVo">
|
||||
select
|
||||
date_format(pcif.upload_time, '%Y-%m-%d') date
|
||||
,ifnull(round(sum(pcif.duration),2),0) duration
|
||||
from police_camera_item pci
|
||||
join police_camera_item_file pcif on pci.item_id = pcif.item_id
|
||||
where 1=1
|
||||
<if test="projectSn != null and projectSn != ''">
|
||||
and pci.project_sn = #{projectSn}
|
||||
</if>
|
||||
<if test="itemId != null and itemId != ''">
|
||||
and pci.item_id = #{itemId}
|
||||
</if>
|
||||
<if test="startDate != null and startDate != ''">
|
||||
and pcif.upload_time >= #{startDate}
|
||||
</if>
|
||||
<if test="endDate != null and endDate != ''">
|
||||
and pcif.upload_time <![CDATA[<=]]> concat(#{endDate},' 23:59:59')
|
||||
</if>
|
||||
group by date
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@ -3,6 +3,7 @@ package com.zhgd.xmgl.modules.policecamera.service;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zhgd.xmgl.modules.policecamera.entity.PoliceCameraItem;
|
||||
import com.zhgd.xmgl.modules.policecamera.entity.vo.CountWorkingHoursVo;
|
||||
import com.zhgd.xmgl.modules.policecamera.entity.vo.PoliceCameraItemVo;
|
||||
import com.zhgd.xmgl.modules.policecamera.entity.vo.VideoItemInfoVo;
|
||||
import com.zhgd.xmgl.modules.xz.entity.vo.CountStatusVo;
|
||||
@ -102,4 +103,6 @@ public interface IPoliceCameraItemService extends IService<PoliceCameraItem> {
|
||||
VideoItemInfoVo getVideoItemInfo(Map<String, Object> map);
|
||||
|
||||
List<PoliceCameraItem> getListByProjectSn(String projectSn);
|
||||
|
||||
List<CountWorkingHoursVo> countWorkingHours(Map<String, Object> map);
|
||||
}
|
||||
|
||||
@ -22,6 +22,7 @@ import com.zhgd.xmgl.modules.policecamera.entity.PoliceCameraItem;
|
||||
import com.zhgd.xmgl.modules.policecamera.entity.PoliceCameraVideoConfig;
|
||||
import com.zhgd.xmgl.modules.policecamera.entity.ProjectPoliceCameraConfig;
|
||||
import com.zhgd.xmgl.modules.policecamera.entity.WorkTicketCameraRel;
|
||||
import com.zhgd.xmgl.modules.policecamera.entity.vo.CountWorkingHoursVo;
|
||||
import com.zhgd.xmgl.modules.policecamera.entity.vo.PoliceCameraItemVo;
|
||||
import com.zhgd.xmgl.modules.policecamera.entity.vo.VideoItemInfoVo;
|
||||
import com.zhgd.xmgl.modules.policecamera.entity.vo.VideoItemInfoVo.VideoInfo;
|
||||
@ -350,4 +351,15 @@ public class PoliceCameraItemServiceImpl extends ServiceImpl<PoliceCameraItemMap
|
||||
.eq(PoliceCameraItem::getProjectSn, projectSn));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CountWorkingHoursVo> countWorkingHours(Map<String, Object> map) {
|
||||
List<CountWorkingHoursVo> hoursVos = baseMapper.countWorkingHours(map);
|
||||
for (CountWorkingHoursVo hoursVo : hoursVos) {
|
||||
hoursVo.setWorkingTimeName(TimeUtil.toHourMinSecond(hoursVo.getDuration()));
|
||||
}
|
||||
Map<String, CountWorkingHoursVo> hoursVoMap = hoursVos.stream().collect(Collectors.toMap(CountWorkingHoursVo::getDate, Function.identity(), (o1, o2) -> o1));
|
||||
hoursVos = DateUtils.fillDateByStartEndDate(map, hoursVoMap, CountWorkingHoursVo::new);
|
||||
return hoursVos;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -791,7 +791,7 @@ public class DateUtils {
|
||||
* @param paramMap
|
||||
* @param dateMap
|
||||
* @param instanceSupplier
|
||||
* @param <T>
|
||||
* @param <T> 类要实现DateAware
|
||||
* @return
|
||||
*/
|
||||
public static <T extends DateAware> List<T> fillDateByStartEndDate(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user