Commit 32058d9a authored by tangwei's avatar tangwei

解决冲突

parents cfd7de99 9679e4ca
......@@ -47,6 +47,18 @@
<artifactId>easypoi-annotation</artifactId>
<version>3.0.3</version>
</dependency>
<!-- itext pdf相关 -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13</version>
</dependency>
<!-- itext asian 字体相关 -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
</dependencies>
</project>
......@@ -17,7 +17,7 @@ import java.util.Date;
@Data
public class BaseEntity implements Serializable{
/**
/**
*
*/
private static final long serialVersionUID = 1L;
......
package com.yeejoin.amos.boot.biz.common.utils;
import com.itextpdf.text.*;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
import javax.servlet.http.HttpServletResponse;
/**
* PDF工具类
*/
public class PdfUtils {
private static int maxWidth = 520;
public static Document createFile(HttpServletResponse response) { // 设置页面大小,联系文件
Document document=new Document();
document.setPageSize(PageSize.A4);
document.setPageCount(3);
try {
PdfWriter.getInstance(document, response.getOutputStream());
document.open();
} catch (Exception e) {
e.printStackTrace();
}
return document;
}
/**
*
* @param value 单元格数据
* @param font 单元格样式
* @param align 位置
* @param colspan 占几列
* @param row 占几行
* @param size 高度
* @return
*/
public static PdfPCell createCell(String value, Font font, int align, int colspan, int row, int size){
PdfPCell cell = new PdfPCell();
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell.setHorizontalAlignment(align);
cell.setColspan(colspan);
cell.setPhrase(new Phrase(value,font));
cell.setFixedHeight(size);
if (row != 1) {
cell.setRowspan(row);
}
return cell;
}
public static PdfPCell createCell(Image image, int align, int colspan){
PdfPCell cell = new PdfPCell();
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell.setHorizontalAlignment(align);
cell.setColspan(colspan);
cell.setImage(image);
cell.setPadding(3.0f);
cell.setBorderWidthLeft(0);
cell.setBorderWidthRight(0);
cell.setBorderWidthTop(0);
cell.setBorderWidthBottom(1);
return cell;
}
// 创建一个几列的Table
public static PdfPTable createTable(int colNumber){
PdfPTable table = new PdfPTable(colNumber);
try{
table.setTotalWidth(maxWidth);
table.setLockedWidth(true);
table.setHorizontalAlignment(Element.ALIGN_CENTER);
}catch(Exception e){
e.printStackTrace();
}
return table;
}
}
package com.yeejoin.amos.boot.module.common.api.dto;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 值班人员日期关联关系表
*
* @author system_generator
* @date 2021-07-06
*/
* 值班人员日期关联关系表
*
* @author system_generator
* @date 2021-07-06
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="DutyPersonShiftDto", description="值班人员日期关联关系表")
public class DutyPersonShiftDto extends BaseDto {
@ApiModel(value = "DutyPersonShiftDto", description = "值班人员日期关联关系表")
public class DutyPersonShiftDto extends BaseDto {
private static final long serialVersionUID = 1L;
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "值班日期")
private Date dutyDate;
......@@ -33,10 +33,13 @@ public class DutyPersonShiftDto extends BaseDto {
@ApiModelProperty(value = "更新人员")
private String recUserName;
@ApiModelProperty(value = "班次名称")
private String shiftName;
@ApiModelProperty(value = "班次名称")
private String shiftName;
@ApiModelProperty(value = "应用标识(数据隔离使用)")
private String appKey;
@ApiModelProperty(value = "颜色")
private String color;
}
......@@ -70,4 +70,20 @@ public interface DynamicFormInstanceMapper extends BaseMapper<DynamicFormInstanc
@Param("appKey") String appKey,
@Param("groupCode") String groupCode,
@Param("params") Map<String, String> params);
/**
* 查询当前值班信息
* @param dutyDay 值班日期
* @param shiftIds 班次id
* @param fieldCodes 动态列
* @param appKey 应用标识
* @param groupCode 表单类型
* @return List<Map < String, Object>>
*/
List<Map<String, Object>> listOnDutyPerson(
@Param("dutyDate") String dutyDay,
@Param("shiftId") String shiftIds,
@Param("fieldCodes") Map<String, Object> fieldCodes,
@Param("appKey") String appKey,
@Param("groupCode") String groupCode);
}
......@@ -35,4 +35,7 @@ public class PowerTransferCompanyResourcesDto extends BaseDto {
@ApiModelProperty(value = "操作人名称")
private String recUserName;
@ApiModelProperty(value = "调派关联部门id")
protected Long powerTransferCompanyId;
}
package com.yeejoin.amos.boot.module.jcs.api.dto;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 警情表单
*
* @author system_generator
* @date 2021-07-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "ShiftChangeDto", description = "警情表单")
public class ShiftChangeDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "基本信息id(来源动态表单)")
private Long instanceId;
@ApiModelProperty(value = "值班情况")
private JSONObject dutyJson;
@ApiModelProperty(value = "力量出动情况")
private JSONObject powerJson;
@ApiModelProperty(value = "交接事宜描述")
private String remark;
@ApiModelProperty(value = "操作人名称")
private String recUserName;
}
package com.yeejoin.amos.boot.module.jcs.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel("交接班记录详情")
public class ShiftChangeInfoDto extends ShiftChangeDto {
@ApiModelProperty("值班开始时间")
private String beginDate;
@ApiModelProperty("值班开始时间")
private String endDate;
@ApiModelProperty("机场值班领导")
private String jsDutyLeader;
@ApiModelProperty("消救部领导")
private String fireDutyLeader;
@ApiModelProperty("消防支队领导")
private String branchDutyLeader;
@ApiModelProperty("应急指挥科领导")
private String emcDutyLeader;
@ApiModelProperty("值班员正班")
private String dutyPersonOne;
@ApiModelProperty("值班员副班")
private String dutyPersonTwo;
@ApiModelProperty("接班员正班")
private String succeedPersonOne;
@ApiModelProperty("接班员副班")
private String succeedPersonTwo;
@ApiModelProperty("值班员经理")
private String dutyPersonLeader;
@ApiModelProperty("接班员经理")
private String succeedPersonLeader;
}
package com.yeejoin.amos.boot.module.jcs.api.entity;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 交接班记录分页查询
*
* @author system_generator
* @date 2021-07-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(value = "jc_shift_change", autoResultMap = true)
public class ShiftChange extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 基本信息id(来源动态表单)
*/
@TableField("instance_id")
private Long instanceId;
/**
* 值班情况
*/
@TableField(value = "duty_json", typeHandler = JacksonTypeHandler.class)
private JSONObject dutyJson;
/**
* 力量出动情况
*/
@TableField(value = "power_json", typeHandler = JacksonTypeHandler.class)
private JSONObject powerJson;
/**
* 交接事宜描述
*/
@TableField("remark")
private String remark;
/**
* 操作人名称
*/
@TableField("rec_user_name")
private String recUserName;
}
package com.yeejoin.amos.boot.module.jcs.api.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 值班情况枚举
*
* @author DELL
*/
@Getter
@AllArgsConstructor
public enum DutyInfoEnum {
// 接警情况
接警情况("JJQK", "接警情况"),
// 出动状态
力量出动("LLCD", "出动状态");
private String key;
private String name;
}
......@@ -2,6 +2,9 @@ package com.yeejoin.amos.boot.module.jcs.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.jcs.api.entity.AlertCalled;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
/**
* 警情接警记录 Mapper 接口
......@@ -11,4 +14,5 @@ import com.yeejoin.amos.boot.module.jcs.api.entity.AlertCalled;
*/
public interface AlertCalledMapper extends BaseMapper<AlertCalled> {
Map<String, Integer> queryAlertStatusCount(@Param("beginDate") String beginDate, @Param("endDate") String endDate);
}
package com.yeejoin.amos.boot.module.jcs.api.mapper;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.jcs.api.dto.AlertFormValueDto;
import com.yeejoin.amos.boot.module.jcs.api.entity.AlertFormValue;
import org.apache.ibatis.annotations.Param;
/**
* Mapper 接口
......@@ -16,4 +18,17 @@ public interface AlertFormValueMapper extends BaseMapper<AlertFormValue> {
public List<AlertFormValueDto> selectListByCalledId(Long id);
/**
* 列转行查询
*
* @param fieldCodes 列
* @param groupCode 分组code
* @param params 查询参数
* @return List<Map>
*/
List<Map<String, Object>> listAll(
@Param("fieldCodes") List<String> fieldCodes,
@Param("groupCode") String groupCode,
@Param("params") Map<String, String> params
);
}
......@@ -3,10 +3,12 @@ package com.yeejoin.amos.boot.module.jcs.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferCompanyDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferCompanyResourcesDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferDto;
import com.yeejoin.amos.boot.module.jcs.api.entity.PowerTransfer;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* 力量调派 Mapper 接口
......@@ -26,4 +28,35 @@ public interface PowerTransferMapper extends BaseMapper<PowerTransfer> {
* @return
*/
List<String> queryTransferCarIdsByAlertCalledId(@Param("alertCalledId") Long alertCalledId);
/**
* 根据起止时间获取力量调派信息
*
* @param beginDate
* @param endDate
* @return
*/
List<PowerTransferDto> getPowerTransferInfo(@Param("beginDate") String beginDate, @Param("endDate") String endDate);
/**
* 根据起止时间获取力量调派单位信息
*
* @param beginDate
* @param endDate
* @return
*/
List<PowerTransferCompanyDto> getPowerTransferCompanyInfo(@Param("beginDate") String beginDate,
@Param("endDate") String endDate);
/**
*
* @param beginDate
* @param endDate
* @return
*/
List<PowerTransferCompanyResourcesDto> getPowerTransferCompanyResourcesInfo(@Param("beginDate") String beginDate,
@Param("endDate") String endDate);
Map<String, Object> getPowerTransferInfoCount(@Param("beginDate") String beginDate,
@Param("endDate") String endDate);
}
package com.yeejoin.amos.boot.module.jcs.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.jcs.api.entity.ShiftChange;
/**
* 警情表单 Mapper 接口
*
* @author system_generator
* @date 2021-07-13
*/
public interface ShiftChangeMapper extends BaseMapper<ShiftChange> {
}
package com.yeejoin.amos.boot.module.jcs.api.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.itextpdf.text.DocumentException;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;
/**
* 交接班记录表接口类
*
* @author system_generator
* @date 2021-07-13
*/
public interface IShiftChangeService {
/**
* 模型创建
*
* @param model 信息
* @return Map<String, Object>
*/
Map<String, Object> createFormAndEntry(Map<String, Object> model);
/**
* 删除完整信息
*
* @param sequenceNbr 主键
* @return Boolean
*/
Boolean removeOneById(Long sequenceNbr);
/**
* 交接班详情
*
* @param sequenceNbr 主键
* @return Map<String, Object>
*/
Map<String, Object> getOneBySeq(Long sequenceNbr);
/**
* 分页查询
*
* @param current 当前页
* @param size 页大小
* @return IPage<Map < String, Object>>
*/
IPage<Map<String, Object>> queryForShiftChangePage(int current, int size);
/**
* 查询全部值班记录
*
* @return List<Map < String, Object>>
*/
List<Map<String, Object>> queryForShiftChangeList();
/**
* 最近交班记录
* @return Map<String, Object>
*/
Map<String, Object> lastRecord();
/**
* 根据交接班记录id生成pdf
*/
void exportPdfById(HttpServletResponse response, Long shiftChangeId) throws IOException, DocumentException;
}
......@@ -2,4 +2,14 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.jcs.api.mapper.AlertCalledMapper">
<select id="queryAlertStatusCount" resultType="java.util.Map">
SELECT
count( 1 ) calledCount,
sum( CASE WHEN alert_status = 1 THEN 1 ELSE 0 END ) finishedCount,
sum( CASE WHEN alert_type_code = 230 THEN 1 ELSE 0 END ) majorAlertCount
FROM
jc_alert_called
WHERE
call_time BETWEEN #{beginDate} AND #{endDate}
</select>
</mapper>
......@@ -22,4 +22,34 @@
LEFT JOIN jc_alert_form f ON f.sequence_nbr = v.alert_form_id
WHERE v.alert_called_id=#{id}
</select>
<select id="listAll" resultType="java.util.Map">
select
d.*
from
(
select
i.alert_called_id instanceId,
i.alert_type_code groupCode,
i.rec_date recDate,
<foreach collection="fieldCodes" item="item" index="key" separator=",">
MAX(CASE WHEN i.FIELD_CODE = #{item} THEN i.FIELD_VALUE ELSE '' END) as ${item}
</foreach>
from
jc_alert_form_value i
where i.alert_type_code = #{groupCode}
GROUP by
i.alert_called_id)d
<if test="params != null and params.size > 0 ">
where 1=1
<foreach collection="params" index="key" item="value">
<if test="key != null and key == 'beginDate'">
and d.recDate >= #{value}
</if>
<if test="key != null and key == 'endDate'">
and d.recDate <![CDATA[<=]]> #{value}
</if>
</foreach>
</if>
order by instanceId
</select>
</mapper>
......@@ -36,13 +36,44 @@
having rec_date = (select rec_date from jc_power_transfer_company_resources order by rec_date desc limit 1)
</select>
<select id="queryTransferCarIdsByAlertCalledId" resultType="java.lang.String">
SELECT
ptcr.resources_id carId
FROM
`jc_power_transfer` pt
LEFT JOIN jc_power_transfer_company ptc ON ptc.power_transfer_id = pt.sequence_nbr
LEFT JOIN jc_power_transfer_company_resources ptcr ON ptcr.power_transfer_company_id = ptc.sequence_nbr
WHERE
pt.alert_called_id = #{alertCalledId}
SELECT ptcr.resources_id carId
FROM `jc_power_transfer` pt
LEFT JOIN jc_power_transfer_company ptc ON ptc.power_transfer_id = pt.sequence_nbr
LEFT JOIN jc_power_transfer_company_resources ptcr ON ptcr.power_transfer_company_id = ptc.sequence_nbr
WHERE pt.alert_called_id = #{alertCalledId}
</select>
<select id="getPowerTransferInfoCount" resultType="java.util.Map">
select count(distinct pt.sequence_nbr) transfer_count, count(distinct resources_id) car_count, 0 end_count, 0 no_return_car_count
from jc_power_transfer pt
left join jc_power_transfer_company ptc on pt.sequence_nbr = ptc.power_transfer_id
left join jc_power_transfer_company_resources ptcr on ptc.sequence_nbr = ptcr.power_transfer_company_id
where pt.rec_date BETWEEN #{beginDate} AND #{endDate}
order by pt.rec_date asc
</select>
<select id="getPowerTransferInfo" resultType="com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferDto">
select sequence_nbr, rescue_grid
from jc_power_transfer pt
where pt.rec_date BETWEEN #{beginDate} AND #{endDate}
order by pt.rec_date asc
</select>
<select id="getPowerTransferCompanyInfo"
resultType="com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferCompanyDto">
select ptc.sequence_nbr, ptc.company_name, ptc.is_distribution_agencies, ptc.power_transfer_id
from jc_power_transfer pt
left join jc_power_transfer_company ptc on pt.sequence_nbr = ptc.power_transfer_id
where pt.rec_date BETWEEN #{beginDate} AND #{endDate}
order by pt.rec_date asc
</select>
<select id="getPowerTransferCompanyResourcesInfo"
resultType="com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferCompanyResourcesDto">
select ptcr.power_transfer_company_id, ptcr.type, ptcr.resources_num, ptcr.resources_id
from jc_power_transfer pt
left join jc_power_transfer_company ptc on pt.sequence_nbr = ptc.power_transfer_id
left join jc_power_transfer_company_resources ptcr on ptc.sequence_nbr = ptcr.power_transfer_company_id
where pt.rec_date BETWEEN #{beginDate} AND #{endDate}
and ptc.is_distribution_agencies = 0
order by pt.rec_date asc
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.jcs.api.mapper.ShiftChangeMapper">
</mapper>
......@@ -143,4 +143,5 @@ public class DutyCarController extends BaseController {
@ApiParam(value = "岗位") @RequestParam(required = false) String postType){
return ResponseHelper.buildResponse(iDutyCarService.dayDutyPersonList(dutyDay,shiftId,postType));
}
}
\ No newline at end of file
......@@ -14,6 +14,7 @@ import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.util.List;
......@@ -111,6 +112,7 @@ public class DutyPersonController extends BaseController {
/**
* 值班数据删除
*
* @param instanceId 实例id
* @return ResponseModel
*/
......@@ -129,7 +131,8 @@ public class DutyPersonController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping("/exportExcel")
@ApiOperation(httpMethod = "GET", value = "人员执勤导出", notes = "人员执勤导出")
public ResponseModel exportExcel(HttpServletResponse response, @ApiParam(value = "开始日期", required = true) @RequestParam String beginDate,
public ResponseModel exportExcel(HttpServletResponse response,
@ApiParam(value = "开始日期", required = true) @RequestParam String beginDate,
@ApiParam(value = "结束日期", required = true) @RequestParam String endDate) throws ParseException {
return ResponseHelper.buildResponse(iDutyPersonService.downloadList(beginDate, endDate));
}
......@@ -137,9 +140,19 @@ public class DutyPersonController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation("查询指定日期值班人信息列表")
@GetMapping("/person/{dutyDay}/list")
public ResponseModel listDutyPerson(@ApiParam(value = "值班日期",required = true) @PathVariable String dutyDay,
public ResponseModel listDutyPerson(@ApiParam(value = "值班日期", required = true) @PathVariable String dutyDay,
@ApiParam(value = "班次id") @RequestParam(required = false) Long shiftId,
@ApiParam(value = "岗位") @RequestParam(required = false) String postType) {
return ResponseHelper.buildResponse(iDutyPersonService.dayDutyPersonList(dutyDay, shiftId, postType));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation("查询当前值班人信息列表")
@GetMapping("/person/on_duty/list")
public ResponseModel listOnDutyPerson(HttpServletRequest request) {
String appKey = request.getHeader("appKey");
return ResponseHelper.buildResponse(iDutyPersonService.listOnDutyPerson(appKey));
}
}
......@@ -57,6 +57,7 @@ public interface IDutyCommonService {
/**
* 删除值班数据
*
* @param instanceId 实例id
* @return Boolean
*/
......@@ -64,10 +65,18 @@ public interface IDutyCommonService {
/**
* 查询指定条件的值班人信息
* @param dutyDay 查询条件
* @param shiftId 班次
*
* @param dutyDay 查询条件
* @param shiftId 班次
* @param postType 岗位
* @return List<Map<String, Object>>
* @return List<Map < String, Object>>
*/
List<Map<String, Object>> dayDutyPersonList(String dutyDay, Long shiftId, String postType);
/**
* 查询当前值班人信息
*
* @return List<Map < String, Object>>
*/
List<Map<String, Object>> dayDutyPersonList(String dutyDay,Long shiftId,String postType);
List<Map<String, Object>> listOnDutyPerson(String appKey);
}
......@@ -31,17 +31,8 @@ public class DutyCarServiceImpl extends DutyCommonServiceImpl implements IDutyCa
public DutyCarDto save(DutyCarDto dutyCarDto) {
//1.保存行数据
String groupCode = this.getGroupCode();
List<DynamicFormColumn> columns = dynamicFormColumnService.list(new LambdaQueryWrapper<DynamicFormColumn>().eq(DynamicFormColumn::getGroupCode, groupCode));
Map<String, Object> map = Bean.BeantoMap(dutyCarDto);
Long instanceId = sequence.nextId();
List<DynamicFormInstance> instances = columns.stream().map(column -> {
DynamicFormInstance instance = new DynamicFormInstance();
buildFormInstanceData(instanceId, map, column, instance);
return instance;
}).collect(Collectors.toList());
if (!instances.isEmpty()) {
dynamicFormInstanceService.saveBatch(instances);
}
Long instanceId = dynamicFormInstanceService.commonSave(groupCode,map);
//2.保存值班信息
insertPersonShift(instanceId, dutyCarDto);
//3.返回保存后的数据
......
......@@ -29,24 +29,15 @@ public class DutyPersonServiceImpl extends DutyCommonServiceImpl implements IDut
}
@Override
public DutyPersonDto save(DutyPersonDto dutyCarDto) {
public DutyPersonDto save(DutyPersonDto dutyPersonDto) {
//1.保存行数据
String groupCode = this.getGroupCode();
List<DynamicFormColumn> columns = dynamicFormColumnService.list(new LambdaQueryWrapper<DynamicFormColumn>().eq(DynamicFormColumn::getGroupCode, groupCode));
Map<String, Object> map = Bean.BeantoMap(dutyCarDto);
Long instanceId = sequence.nextId();
List<DynamicFormInstance> instances = columns.stream().map(column -> {
DynamicFormInstance instance = new DynamicFormInstance();
buildFormInstanceData(instanceId, map, column, instance);
return instance;
}).collect(Collectors.toList());
if (!instances.isEmpty()) {
dynamicFormInstanceService.saveBatch(instances);
}
Map<String, Object> map = Bean.BeantoMap(dutyPersonDto);
Long instanceId = dynamicFormInstanceService.commonSave(groupCode,map);
//2.保存值班信息
insertPersonShift(instanceId, dutyCarDto);
insertPersonShift(instanceId, dutyPersonDto);
//3.返回保存后的数据
return dutyCarDto;
return dutyPersonDto;
}
@Override
......
package com.yeejoin.amos.boot.module.common.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.DynamicFormInstanceDto;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormColumn;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance;
import com.yeejoin.amos.boot.module.common.api.mapper.DynamicFormInstanceMapper;
import com.yeejoin.amos.boot.module.common.api.service.IDynamicFormInstanceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 动态表单实例表服务实现类
......@@ -22,7 +34,13 @@ import java.util.Map;
public class DynamicFormInstanceServiceImpl extends BaseService<DynamicFormInstanceDto, DynamicFormInstance, DynamicFormInstanceMapper> implements IDynamicFormInstanceService {
@Autowired
private DynamicFormInstanceMapper dynamicFormInstanceMapper;
Sequence sequence;
@Autowired
DynamicFormColumnServiceImpl dynamicFormColumnService;
@Autowired
HttpServletRequest request;
/**
* 分页查询
......@@ -44,7 +62,96 @@ public class DynamicFormInstanceServiceImpl extends BaseService<DynamicFormInsta
}
public List<DynamicFormInstanceDto> listByCalledId(Long instanceId) {
return dynamicFormInstanceMapper.selectListByCalledId(instanceId);
return this.baseMapper.selectListByCalledId(instanceId);
}
public Long commonSave(String groupCode, Map<String,Object> model){
Long instanceId = sequence.nextId();
List<DynamicFormColumn> columns = dynamicFormColumnService.list(new LambdaQueryWrapper<DynamicFormColumn>().eq(DynamicFormColumn::getGroupCode, groupCode));
List<DynamicFormInstance> instances = columns.stream().map(column -> {
DynamicFormInstance instance = new DynamicFormInstance();
buildFormInstanceData(instanceId, model, column, instance);
return instance;
}).collect(Collectors.toList());
if (!instances.isEmpty()) {
this.saveBatch(instances);
}
model.put("instanceId",instanceId);
model.put("groupCode",groupCode);
return instanceId;
}
private void buildFormInstanceData(Long instanceId, Map<String, Object> map, DynamicFormColumn column, DynamicFormInstance formInstance) {
fillFormInstanceData(instanceId, map, column, formInstance, sequence.nextId());
}
private void fillFormInstanceData(Long instanceId, Map<String, Object> map, DynamicFormColumn column, DynamicFormInstance formInstance, long l) {
Bean.copyExistPropertis(column, formInstance);
formInstance.setAppKey(RequestContext.getAppKey());
formInstance.setInstanceId(instanceId);
formInstance.setSequenceNbr(l);
formInstance.setFormColumnId(column.getSequenceNbr());
formInstance.setFieldValue(map.get(column.getFieldCode()) != null ? map.get(column.getFieldCode()).toString() : "");
}
public Map<String, Object> getOneMap(Long instanceId,String groupCode) {
Map<String, Object> optionListMap = new HashMap<>();
List<DynamicFormInstance> list = this.queryByInstanceId(instanceId);
if (!CollectionUtils.isEmpty(list)) {
List<DynamicFormColumn> columns = dynamicFormColumnService.list(new LambdaQueryWrapper<DynamicFormColumn>().eq(DynamicFormColumn::getGroupCode, groupCode));
Map<String, Object> instanceMap = Bean.listToMap(list, "fieldCode", "fieldValue", DynamicFormInstance.class);
for (DynamicFormColumn optionModel : columns) {
instanceMap.put(optionModel.getFieldCode(), instanceMap.get(optionModel.getFieldCode()));
}
optionListMap.putAll(instanceMap);
optionListMap.put("instanceId", instanceId);
optionListMap.put("createTime", list.iterator().next().getRecDate());
optionListMap.put("groupCode", groupCode);
}
return optionListMap;
}
private List<DynamicFormInstance> queryByInstanceId(Long instanceId) {
LambdaQueryWrapper<DynamicFormInstance> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DynamicFormInstance::getInstanceId, instanceId);
return this.baseMapper.selectList(wrapper);
}
public IPage<Map<String, Object>> pageList(int current, int size ,String groupCode){
Map<String, String> params = this.getRequestParamMap();
List<DynamicFormColumn> columns = dynamicFormColumnService.list(new LambdaQueryWrapper<DynamicFormColumn>().eq(DynamicFormColumn::getGroupCode, groupCode));
Map<String, Object> fieldCodes = Bean.listToMap(columns, "fieldCode", "queryStrategy", DynamicFormColumn.class);
Page page = new Page(current, size);
return this.getBaseMapper().pageList(page, RequestContext.getAppKey(), fieldCodes, groupCode, params);
}
public List<Map<String, Object>> listAll(String groupCode){
Map<String, String> params = this.getRequestParamMap();
List<DynamicFormColumn> columns = dynamicFormColumnService.list(new LambdaQueryWrapper<DynamicFormColumn>().eq(DynamicFormColumn::getGroupCode, groupCode));
Map<String, Object> fieldCodes = Bean.listToMap(columns, "fieldCode", "queryStrategy", DynamicFormColumn.class);
return this.getBaseMapper().listAll(RequestContext.getAppKey(), fieldCodes, groupCode, params);
}
private Map<String, String> getRequestParamMap() {
Map<String, String[]> parameterMap = request.getParameterMap();
Map<String, String[]> localMap = new HashMap<>();
localMap.putAll(parameterMap);
localMap.remove("current");
localMap.remove("size");
localMap.remove("beginDate");
localMap.remove("endDate");
Map<String, String> params = new HashMap<>();
if (!ValidationUtil.isEmpty(localMap)) {
for (String key : localMap.keySet()) {
if (!ValidationUtil.isEmpty(localMap.get(key))) {
params.put(key, localMap.get(key)[0]);
}
}
}
return params;
}
}
......@@ -4,6 +4,7 @@ import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
......@@ -21,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.CommonUtil;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
......@@ -292,4 +294,17 @@ public class AlertCalledController extends BaseController {
});
return queryWrapper;
}
/**
* 查询指定日期内警情列表
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/dateRange/list")
@ApiOperation(httpMethod = "GET", value = "查询指定日期内警情列表", notes = "查询指定日期内警情列表")
public ResponseModel<Map<String, Object>> listByDateRange(@RequestParam("beginDate") String beginDate,
@RequestParam("endDate") String endDate) {
return ResponseHelper.buildResponse(iAlertCalledService.getAlertInfoList(beginDate, endDate));
}
}
\ No newline at end of file
......@@ -4,15 +4,11 @@ import java.util.Arrays;
import com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferSimpleDto;
import com.yeejoin.amos.boot.module.jcs.api.feign.EquipFeignClient;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
......@@ -157,7 +153,8 @@ public class PowerTransferController extends BaseController {
@RequestMapping(value = "/list/{alert_called_id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据警情id获取力量调派列表", notes = "根据警情id获取力量调派列表")
public ResponseModel<PowerTransferSimpleDto> list(@PathVariable String alert_called_id) {
PowerTransferSimpleDto powerTransferSimpleDto = powerTransferService.getPowerTransferList(Long.parseLong(alert_called_id));
PowerTransferSimpleDto powerTransferSimpleDto =
powerTransferService.getPowerTransferList(Long.parseLong(alert_called_id));
return ResponseHelper.buildResponse(powerTransferSimpleDto);
}
......@@ -187,5 +184,15 @@ public class PowerTransferController extends BaseController {
public ResponseModel<Object> getPowerTree() {
return ResponseHelper.buildResponse(powerTransferService.getPowerTree());
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/power/list")
@ApiOperation(value = "力量出动列表", notes = "力量调派资源树")
public ResponseModel<Object> getPowerTransferList(@ApiParam(value = "开始日期", required = true) @RequestParam String beginDate,
@ApiParam(value = "结束日期", required = true) @RequestParam String endDate) {
return ResponseHelper.buildResponse(powerTransferService.getPowerTransferList(beginDate, endDate));
}
}
package com.yeejoin.amos.boot.module.jcs.biz.controller;
import com.itextpdf.text.DocumentException;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.jcs.api.dto.ShiftChangeInfoDto;
import com.yeejoin.amos.boot.module.jcs.api.service.IShiftChangeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* 交接班记录表
*
* @author system_generator
* @date 2021-07-13
*/
@RestController
@Api(tags = "交接班模块Api")
@RequestMapping(value = "/shift-change")
public class ShiftChangeController extends BaseController {
@Autowired
IShiftChangeService iShiftChangeService;
/**
* 新增交接班记录表
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增交接班记录表", notes = "新增交接班记录表")
public ResponseModel save(@RequestBody ShiftChangeInfoDto model) {
return ResponseHelper.buildResponse(iShiftChangeService.createFormAndEntry(Bean.BeantoMap(model)));
}
/**
* 根据sequenceNbr删除
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@DeleteMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除交接班记录表", notes = "根据sequenceNbr删除交接班记录表")
public ResponseModel<Boolean> deleteBySequenceNbr(@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
return ResponseHelper.buildResponse(iShiftChangeService.removeOneById(sequenceNbr));
}
/**
* 根据sequenceNbr查询
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个交接班记录", notes = "根据sequenceNbr查询单个交接班记录")
public ResponseModel selectOne(@PathVariable Long sequenceNbr) {
return ResponseHelper.buildResponse(iShiftChangeService.getOneBySeq(sequenceNbr));
}
/**
* 列表分页查询
*
* @param current 当前页
* @param current 每页大小
* @return ResponseModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET", value = "交接班记录分页查询", notes = "交接班记录分页查询")
public ResponseModel queryForPage(
@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size) {
return ResponseHelper.buildResponse(iShiftChangeService.queryForShiftChangePage(current, size));
}
/**
* 列表全部数据查询
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "交接班记录列表查询-不分页", notes = "交接班记录列表数据查询-不分页")
@GetMapping(value = "/list")
public ResponseModel selectForList() {
return ResponseHelper.buildResponse(iShiftChangeService.queryForShiftChangeList());
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "pdf下载", notes = "pdf下载")
@GetMapping("/pdf/export")
public void exportPdf(HttpServletResponse response,@RequestParam Long shiftChangeId) {
try {
iShiftChangeService.exportPdfById(response, shiftChangeId);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("系统异常!");
}
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "上次最新记录", notes = "上次最新记录")
@GetMapping("/lastRecord")
public ResponseModel lastRecord(){
return ResponseHelper.buildResponse(iShiftChangeService.lastRecord());
}
}
package com.yeejoin.amos.boot.module.jcs.biz.service.impl;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.jcs.api.dto.AlertCalledDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.AlertCalledObjsDto;
import com.yeejoin.amos.boot.module.jcs.api.entity.AlertCalled;
import com.yeejoin.amos.boot.module.jcs.api.entity.AlertFormValue;
import com.yeejoin.amos.boot.module.jcs.api.entity.Template;
import com.yeejoin.amos.boot.module.jcs.api.enums.AlertStageEnums;
import com.yeejoin.amos.boot.module.jcs.api.enums.DutyInfoEnum;
import com.yeejoin.amos.boot.module.jcs.api.mapper.AlertCalledMapper;
import com.yeejoin.amos.boot.module.jcs.api.mapper.TemplateMapper;
import com.yeejoin.amos.boot.module.jcs.api.service.IAlertCalledService;
import com.yeejoin.amos.component.rule.config.RuleConfig;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* 警情接警记录 服务实现类
......@@ -49,17 +63,21 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto,AlertCall
@Value("${mqtt.topic.command.alert.notice}")
private String topic;
@Autowired
TemplateMapper templateMapper;
/**
*
* <pre>
* 保存警情信息
* </pre>
*
* @param alertCalledVo
* @param alertCalledObjsDto
* @return
*/
@Transactional
public AlertCalledObjsDto createAlertCalled(AlertCalledObjsDto alertCalledObjsDto) {
@Transactional(rollbackFor = RuntimeException.class)
public AlertCalledObjsDto createAlertCalled(AlertCalledObjsDto alertCalledObjsDto) {
try {
// 警情基本信息
AlertCalled alertCalled = alertCalledObjsDto.getAlertCalled();
......@@ -127,46 +145,125 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto,AlertCall
throw new RuntimeException("报送失败,系统异常!");
}
}
/*
* 根据id 修改警情
* type:警情相关 操作类型 0警情续报 1非警情确认 2 警情结案
* */
/**
* 根据id 修改警情
* type:警情相关 操作类型 0警情续报 1非警情确认 2 警情结案
*
*/
@Override
@Transactional
public boolean updateAlertCalled(Long id, String code) {
@Transactional(rollbackFor = RuntimeException.class)
public boolean updateAlertCalled(Long id, String code) {
// TODO Auto-generated method stub
try {
switch (code) {
case "314":
alertCalledMapper.update(null, new UpdateWrapper<AlertCalled>().eq("sequence_nbr", id)
.set("alert_status", 1).set("alert_stage", AlertStageEnums.ZBQJ.getValue()).set("alarm_type", AlertStageEnums.FJQ.getValue()).set("alarm_type_code", AlertStageEnums.FJQ.getCode()) );
break;
case "315":
alertCalledMapper.update(null, new UpdateWrapper<AlertCalled>().eq("sequence_nbr", id)
.set("alert_status", 1).set("alert_stage", AlertStageEnums.CZJS.getValue()) );
break;
default:
alertCalledMapper.update(null, new UpdateWrapper<AlertCalled>().eq("sequence_nbr", id)
.set("alert_stage", AlertStageEnums.CZGZ.getValue()));
break;
}
AlertCalled alertCalled =this.getById(id);
case "314":
alertCalledMapper.update(null, new UpdateWrapper<AlertCalled>().eq("sequence_nbr", id)
.set("alert_status", 1).set("alert_stage", AlertStageEnums.ZBQJ.getValue()).set("alarm_type", AlertStageEnums.FJQ.getValue()).set("alarm_type_code", AlertStageEnums.FJQ.getCode()));
break;
case "315":
alertCalledMapper.update(null, new UpdateWrapper<AlertCalled>().eq("sequence_nbr", id)
.set("alert_status", 1).set("alert_stage", AlertStageEnums.CZJS.getValue()));
break;
default:
alertCalledMapper.update(null, new UpdateWrapper<AlertCalled>().eq("sequence_nbr", id)
.set("alert_stage", AlertStageEnums.CZGZ.getValue()));
break;
}
AlertCalled alertCalled = this.getById(id);
//删除缓存
redisUtils.del(RedisKey.ALERTCALLED_ID+id);
/**
* 同步更新存ES
*/
eSAlertCalledService.saveAlertCalledToES(alertCalled);
redisUtils.del(RedisKey.ALERTCALLED_ID + id);
/**
* 同步更新存ES
*/
eSAlertCalledService.saveAlertCalledToES(alertCalled);
return true;
} catch (Exception e) {
throw new RuntimeException("系统异常!");
}
}
/**
* 根据时间区间查询警情列表信息
*
* @param beginDate 开始时间
* @param endDate 结束时间
*/
public List<Map<String, Object>> listByDateRange(String beginDate, String endDate) {
// 查询指定日期内的警情列表
List<AlertCalled> alertCalledList =
this.list(new LambdaQueryWrapper<AlertCalled>().between(AlertCalled::getCallTime, beginDate, endDate));
Map<String, String> queryParams = Maps.newHashMap();
queryParams.put("beginDate", beginDate);
queryParams.put("endDate", endDate);
List<Map<String, Object>> allList = Lists.newArrayList();
if (!ValidationUtil.isEmpty(alertCalledList)) {
Map<String, List<AlertCalled>> alertCalledMap =
alertCalledList.stream().collect(Collectors.groupingBy(AlertCalled::getAlertTypeCode));
Map<Long, AlertCalled> calledMap =
alertCalledList.stream().collect(Collectors.toMap(AlertCalled::getSequenceNbr, Function.identity()));
alertCalledMap.forEach((alert, list) -> {
allList.addAll(iAlertFormValueService.listAll(alert, queryParams));
});
allList.forEach(i -> {
AlertCalled alertCalled = calledMap.get(Long.parseLong(i.get("instanceId").toString()));
i.putAll(Bean.BeantoMap(alertCalled));
});
}
return allList;
}
public Map<String, Object> getAlertInfoList(String beginDate, String endDate) {
Map<String, Object> result = Maps.newHashMap();
List<Map<String, Object>> list = listByDateRange(beginDate, endDate);
// 获取接警情况模板
List<Template> templateList =
templateMapper.selectList(new LambdaQueryWrapper<Template>().eq(Template::getFormat, false).like(Template::getTypeCode,
DutyInfoEnum.接警情况.getKey() + "-"));
Map<String, Template> templateMap = templateList.stream().collect(Collectors.toMap(Template::getTypeCode,
Function.identity()));
List<String> contentList = Lists.newArrayList();
list.forEach(i -> {
String tempContent =
templateMap.get(DutyInfoEnum.接警情况.getKey() + "-" + i.get("alertTypeCode")).getContent();
contentList.add(replaceTemplate(tempContent, i));
});
Map<String, Integer> statusCountMap = alertCalledMapper.queryAlertStatusCount(beginDate, endDate);
Integer unFinishedCount =
this.count(new LambdaQueryWrapper<AlertCalled>().eq(AlertCalled::getAlertStatus, "0"));
result.put("alertInfoList", contentList);
result.putAll(statusCountMap);
result.put("unFinishedCount", unFinishedCount);
return result;
}
/**
* 替换模板
*
* @param tempContent 模板
* @param objMap 对象map
* @return
*/
private String replaceTemplate(String tempContent, Map<String, Object> objMap) {
int size = objMap.size();
String[] keys = objMap.keySet().toArray(new String[size]);
Object[] values = objMap.values().toArray(new Object[size]);
List<String> strList = Lists.newArrayList();
for (Object obj : values) {
if (!ValidationUtil.isEmpty(obj)) {
if (obj instanceof Date) {
obj = DateUtils.date2LongStr((Date) obj);
}
strList.add(obj.toString());
} else {
strList.add("");
}
}
return StringUtils.replaceEach(tempContent, keys, strList.toArray(new String[strList.size()]));
}
}
package com.yeejoin.amos.boot.module.jcs.biz.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.google.common.collect.Lists;
import com.yeejoin.amos.boot.module.jcs.api.dto.AlertFormValueDto;
import com.yeejoin.amos.boot.module.jcs.api.entity.AlertForm;
import com.yeejoin.amos.boot.module.jcs.api.entity.AlertFormValue;
import com.yeejoin.amos.boot.module.jcs.api.mapper.AlertFormValueMapper;
import com.yeejoin.amos.boot.module.jcs.api.service.IAlertFormValueService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.util.Collections;
import java.util.List;
import java.util.Map;
/**
......@@ -23,6 +28,9 @@ public class AlertFormValueServiceImpl extends BaseService<AlertFormValueDto,Al
@Autowired
private AlertFormValueMapper alertFormValueMapper;
@Autowired
private AlertFormServiceImpl alertFormService;
public List<AlertFormValueDto> queryByCalledId(Long alertCalledId) {
return this.queryForList(null, false, alertCalledId);
......@@ -32,4 +40,16 @@ public class AlertFormValueServiceImpl extends BaseService<AlertFormValueDto,Al
return alertFormValueMapper.selectListByCalledId(id);
}
/**
* 根据动态表单分组类型查询改分组下所有数据实例
*
* @param groupCode
* @return List<Map <String, Object>>
*/
public List<Map<String, Object>> listAll(String groupCode, Map<String, String> queryParams) {
List<AlertForm> columns =
alertFormService.list(new LambdaQueryWrapper<AlertForm>().eq(AlertForm::getAlertTypeCode, groupCode));
List<String> fieldCodes = Lists.transform(columns, AlertForm::getFieldCode);
return this.baseMapper.listAll(fieldCodes, groupCode, queryParams);
}
}
......@@ -392,7 +392,7 @@ public class AlertSubmittedServiceImpl extends BaseService<AlertSubmittedDto, Al
"JQBSLX"));
for (DataDictionary dataDictionary : dataDictionaries) {
Template template = templateService.getOne(new QueryWrapper<Template>().eq("type_code",
dataDictionary.getCode()));
dataDictionary.getCode()).eq("format", true));
List<PowerTransferCompanyDto> lastPowerTransferCompany;
if ("警情续报".equals(template.getType()) && (lastPowerTransferCompany =
powerTransferService.getLastPowerTransferCompany(alertCalledId)).size() > 0) {
......
......@@ -6,6 +6,7 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.yeejoin.amos.boot.module.jcs.api.enums.DutyInfoEnum;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
......@@ -126,7 +127,8 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
fireCarListMapList.stream().filter(car -> ObjectUtils.isNotEmpty(car.get("teamId"))).filter(car ->
FireCarStatusEnum.执勤.getCode().equals(car.get("carState")) //TODO 后续如果需要多个状态需要删掉这个过滤条件
|| FireCarStatusEnum.出动.getCode().equals(car.get("carState"))).forEach(car -> {
FireBrigadeResourceDto fireCarDto = (FireBrigadeResourceDto) Bean.mapToBean(car, FireBrigadeResourceDto.class);
FireBrigadeResourceDto fireCarDto = (FireBrigadeResourceDto) Bean.mapToBean(car,
FireBrigadeResourceDto.class);
// TODO 后期根据车物联状态来返回,现在为"在位=执勤","执勤=出动"
if (FireCarStatusEnum.执勤.getCode().equals(fireCarDto.getCarState())) {
fireCarDto.setCarStateDesc(FireCarStatusEnum.执勤.getName());
......@@ -151,7 +153,8 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
FireBrigadeResourceDto fireCarResourceDto = new FireBrigadeResourceDto();
List<FireBrigadeResourceDto> fireBrigadeResourceDtoList =
resultMap.get(brigade.getSequenceNbr().toString());
long onDutyCarCount = fireBrigadeResourceDtoList.stream().filter(car -> FireCarStatusEnum.执勤.getCode().equals(car.getCarState())).count();
long onDutyCarCount =
fireBrigadeResourceDtoList.stream().filter(car -> FireCarStatusEnum.执勤.getCode().equals(car.getCarState())).count();
long outCarCount = fireBrigadeResourceDtoList.size() - onDutyCarCount;
fireCarResourceDto.setId(brigade.getSequenceNbr().toString());
fireCarResourceDto.setType(FireBrigadeTypeEnum.专职消防队.getKey());
......@@ -270,4 +273,50 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
public List<String> queryTransferCarIdsByAlertCalledId(Long alertCalledId) {
return this.baseMapper.queryTransferCarIdsByAlertCalledId(alertCalledId);
}
public Map<String, Object> getPowerTransferList(String beginDate, String endDate) {
// 获取力量调派信息
List<PowerTransferDto> powerTransferInfo = this.baseMapper.getPowerTransferInfo(beginDate, endDate);
List<PowerTransferCompanyDto> powerTransferCompanyInfo =
this.baseMapper.getPowerTransferCompanyInfo(beginDate, endDate);
List<PowerTransferCompanyResourcesDto> powerTransferCompanyResourcesInfo =
this.baseMapper.getPowerTransferCompanyResourcesInfo(beginDate, endDate);
Map<String, Object> transferInfo = this.baseMapper.getPowerTransferInfoCount(beginDate, endDate);
// 获取力量出动模板
Template template = templateService.getOne(new QueryWrapper<Template>().eq("type_code",
DutyInfoEnum.力量出动.getKey()).eq("format", false));
String templateContent = template.getContent();
List<String> transferContent = new ArrayList<>();
powerTransferInfo.forEach(pt -> {
StringBuilder transferDetail = new StringBuilder();
Long powerTransferId = pt.getSequenceNbr();
String rescueGrid = pt.getRescueGrid();
powerTransferCompanyInfo.forEach(ptc -> {
if (powerTransferId.equals(ptc.getPowerTransferId())) {
transferDetail.append(ptc.getCompanyName());
if (!ptc.getIsDistributionAgencies()) {
Long powerTransferCompanyId = ptc.getSequenceNbr();
transferDetail.append("车辆车牌号");
powerTransferCompanyResourcesInfo.forEach(ptcr -> {
if (powerTransferCompanyId.equals(ptcr.getPowerTransferCompanyId())) {
transferDetail.append(ptcr.getResourcesNum()).append("、");
}
});
transferDetail.deleteCharAt(transferDetail.length() - 1);
}
transferDetail.append(";");
}
});
transferDetail.deleteCharAt(transferDetail.length() - 1);
String transferDetails = templateContent.replace("departmentName-type-resourcesNum",
transferDetail.toString()).replace("rescueGrid", rescueGrid == null ? "" : rescueGrid).replace(
"taskStatus", "");
transferContent.add(transferDetails);
});
transferInfo.put("transferContent", transferContent);
return transferInfo;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment