Commit 57e829ac authored by KeYong's avatar KeYong

Merge remote-tracking branch 'origin/developer' into develop

parents 37925ddc 5b207cf2
package com.yeejoin.amos.boot.biz.config;
import com.baomidou.mybatisplus.core.config.GlobalConfig;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
*
*
......@@ -19,4 +21,9 @@ public class MyBatisPlusConfig {
globalConfig.setMetaObjectHandler(new MetaHandler());
return globalConfig;
}
@Bean
public Sequence sequence(){
return new Sequence();
}
}
package com.yeejoin.amos.boot.module.common.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* 值班班次
*
* @author system_generator
* @date 2021-07-06
*/
@Data
@ApiModel(value="DutyCarDto", description="值班车辆")
public class DutyCarDto implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "用户id")
private String userId;
@ApiModelProperty(value = "用户名称")
private String userName;
@ApiModelProperty(value = "车辆id")
private String carId;
@ApiModelProperty(value = "车辆名称")
private String carName;
@ApiModelProperty(value = "消防队伍id")
private String teamId;
@ApiModelProperty(value = "消防队伍名称")
private String teamName;
@ApiModelProperty(value = "岗位id")
private String postType;
@ApiModelProperty(value = "岗位名称")
private String postTypeName;
@ApiModelProperty(value = "值班信息")
private List<DutyPersonShiftDto> dutyShift = new ArrayList<>();
}
package com.yeejoin.amos.boot.module.common.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 值班班次
*
* @author system_generator
* @date 2021-07-06
*/
@Data
@ApiModel(value = "DutyPersonDto", description = "值班人")
public class DutyPersonDto implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "用户id")
private String userId;
@ApiModelProperty(value = "用户名称")
private String userName;
@ApiModelProperty(value = "部门id")
private String deptId;
@ApiModelProperty(value = "部门名称")
private String deptName;
@ApiModelProperty(value = "岗位id")
private String postType;
@ApiModelProperty(value = "岗位名称")
private String postTypeName;
@ApiModelProperty(value = "值班信息")
private List<DutyPersonShiftDto> dutyShift;
}
......@@ -21,8 +21,6 @@ public class DutyPersonShiftDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "值班日期")
private Date dutyDate;
......@@ -35,4 +33,7 @@ public class DutyPersonShiftDto extends BaseDto {
@ApiModelProperty(value = "更新人员")
private String recUserName;
@ApiModelProperty(value = "班次名称")
private String shiftName;
}
......@@ -32,7 +32,7 @@ public class DynamicFormInitDto implements Serializable{
private Object defaultValue;
@ApiModelProperty(value = "表单值")
private SelectItems data;
private SelectItems data = new SelectItems();
@ApiModelProperty(value = "提交表单附加字段")
private DynamicFormInstanceDto formItemDescr;
......
......@@ -3,7 +3,9 @@ package com.yeejoin.amos.boot.module.common.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data;
import lombok.EqualsAndHashCode;
......@@ -70,7 +72,7 @@ public class DynamicFormInstanceDto extends BaseDto {
private Boolean block;
@ApiModelProperty(value = "配置json")
private String columnConfig;
private JSONObject columnConfig;
//新加排序字段
@ApiModelProperty(value = "排序字段")
......@@ -80,7 +82,7 @@ public class DynamicFormInstanceDto extends BaseDto {
public DynamicFormInstanceDto(Long sequenceNbr, String fieldName, String fieldCode, Boolean block,
String groupCode) {
this.sequenceNbr = sequenceNbr;
this.formColumnId = sequenceNbr;
this.fieldName = fieldName;
this.fieldCode = fieldCode;
this.block = block;
......
......@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.common.api.dto;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import com.yeejoin.amos.boot.module.common.api.enums.ExcelSelectData;
import com.yeejoin.amos.boot.module.common.api.excel.ExplicitConstraint;
import com.yeejoin.amos.boot.module.common.api.excel.RoleNameExplicitConstraint;
......@@ -52,18 +53,22 @@ public class FireExpertsDto extends BaseDto {
@ApiModelProperty(value = "出生日期")
private Date birthdayTime;
@ExplicitConstraint(indexNum = 6, sourceClass = RoleNameExplicitConstraint.class, method = "getNations") //固定下拉内容
@ExcelProperty(value = "民族", index = 6)
@ApiModelProperty(value = "民族")
private String nation;
// @ExplicitConstraint(indexNum = 7, sourceClass = RoleNameExplicitConstraint.class, method = "getAdministrativeDivisions") //固定下拉内容
@ExcelProperty(value = "籍贯", index = 7)
@ApiModelProperty(value = "籍贯")
private String nativePlace;
@ExplicitConstraint(indexNum = 8, sourceClass = RoleNameExplicitConstraint.class, method = "getPoliticalOutlook") //固定下拉内容
@ExcelProperty(value = "政治面貌", index = 8)
@ApiModelProperty(value = "政治面貌")
private String politicalOutlook;
// @ExplicitConstraint(indexNum = 9, sourceClass = RoleNameExplicitConstraint.class, method = "getAdministrativeDivisions") //固定下拉内容
@ExcelProperty(value = "现居住地", index = 9)
@ApiModelProperty(value = "现居住地")
private String residence;
......
......@@ -4,6 +4,8 @@ import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import com.yeejoin.amos.boot.module.common.api.excel.ExplicitConstraint;
import com.yeejoin.amos.boot.module.common.api.excel.RoleNameExplicitConstraint;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -32,6 +34,7 @@ public class FireStationDto extends BaseDto {
@ApiModelProperty(value = "所在建筑物id")
private String whereBuildingId;
@ExplicitConstraint(indexNum = 1, sourceClass = RoleNameExplicitConstraint.class, method = "getBuildingList")
@ExcelProperty(value = "所在建筑", index = 1)
@ApiModelProperty(value = "所在建筑物名称")
private String whereBuilding;
......@@ -56,6 +59,7 @@ public class FireStationDto extends BaseDto {
@ApiModelProperty(value = "单位id")
private Long bizCompanyId;
@ExplicitConstraint(indexNum = 6, sourceClass = RoleNameExplicitConstraint.class, method = "getBizCompanyList")
@ExcelProperty(value = "所属单位", index = 6)
@ApiModelProperty(value = "所属单位名称")
private String bizCompany;
......
......@@ -75,6 +75,7 @@ public class FireTeamDto extends BaseDto {
@ApiModelProperty(value = "联系人id")
private Long contactUserId;
@ExplicitConstraint(indexNum = 7, sourceClass = RoleNameExplicitConstraint.class,method = "getFirefighters") //动态下拉内容
@ExcelProperty(value = "联系人", index = 7)
@ApiModelProperty(value = "联系人")
private String contactUser;
......
......@@ -22,7 +22,7 @@ import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "OrgUsr对象", description = "人员信息")
public class ExcelOrgPersonDto extends BaseDto {
public class OrgPersonExcelDto extends BaseDto {
@ExcelIgnore
private static final long serialVersionUID = 1L;
......
......@@ -50,8 +50,7 @@ public class WaterResourceDto extends BaseDto {
@ApiModelProperty(value = "所在建筑id")
private Long belongBuildingId;
// @ExplicitConstraint(indexNum = 3, sourceClass = SelectionDataFromInterface.class, method = "getBuildingList")
//动态下拉内容
@ExplicitConstraint(indexNum = 3, sourceClass = RoleNameExplicitConstraint.class, method = "getBuildingList")
@ExcelProperty(value = "所在建筑", index = 3)
@ApiModelProperty(value = "所在建筑")
private String belongBuilding;
......@@ -60,9 +59,7 @@ public class WaterResourceDto extends BaseDto {
@ApiModelProperty(value = "所属消防系统id")
private Long belongFightingSystemId;
// @ExplicitConstraint(indexNum = 4, sourceClass = SelectionDataFromInterface.class, method =
// "getFireSystemList")
//动态下拉内容
@ExplicitConstraint(indexNum = 4, sourceClass = RoleNameExplicitConstraint.class, method = "getFireSystemList")
@ExcelProperty(value = "所属消防系统", index = 4)
@ApiModelProperty(value = "所属消防系统")
private String belongFightingSystem;
......@@ -71,6 +68,7 @@ public class WaterResourceDto extends BaseDto {
@ApiModelProperty(value = "管理单位id")
private Long managementUnitId;
@ExplicitConstraint(indexNum = 5, sourceClass = RoleNameExplicitConstraint.class, method = "getCompanyList")
@ExcelProperty(value = "管理单位", index = 5)
@ApiModelProperty(value = "管理单位")
private String managementUnit;
......@@ -79,6 +77,7 @@ public class WaterResourceDto extends BaseDto {
@ApiModelProperty(value = "维保单位id")
private Long maintenanceUnitId;
@ExplicitConstraint(indexNum = 6, sourceClass = RoleNameExplicitConstraint.class, method = "getCompanyList")
@ExcelProperty(value = "维保单位", index = 6)
@ApiModelProperty(value = "维保单位")
private String maintenanceUnit;
......@@ -147,6 +146,7 @@ public class WaterResourceDto extends BaseDto {
@ApiModelProperty(value = "水源可用状态类别代码")
private String statusCode;
@ExplicitConstraint(type = "SYKYZT", indexNum = 14, sourceClass = RoleNameExplicitConstraint.class) //动态下拉内容
@ExcelProperty(value = "水源可用状态", index = 14)
@ApiModelProperty(value = "水源可用状态类别名称")
private String status;
......@@ -163,6 +163,7 @@ public class WaterResourceDto extends BaseDto {
@ApiModelProperty(value = "消防给水管网形式类型代码")
private String pipeTypeCode;
@ExplicitConstraint(type = "XFJSGWXS", indexNum = 17, sourceClass = RoleNameExplicitConstraint.class) //动态下拉内容
@ExcelProperty(value = "消防给水管网形式", index = 17)
@ApiModelProperty(value = "消防给水管网形式")
private String pipeTypeName;
......@@ -226,14 +227,16 @@ public class WaterResourceDto extends BaseDto {
@ApiModelProperty(value = "消防水带接口code")
private String hoseConnectionCode;
@ExcelProperty(value = "取水方式", index = 28)
@ApiModelProperty(value = "取水方式")
@ExplicitConstraint(type = "QSXS", indexNum = 28, sourceClass = RoleNameExplicitConstraint.class) //动态下拉内容
@ExcelProperty(value = "取水形式", index = 28)
@ApiModelProperty(value = "取水形式")
private String intakeForm;
@ExcelIgnore
@ApiModelProperty(value = "水源类型代码")
private String typeCode;
@ExplicitConstraint(type = "TRSYLX", indexNum = 29, sourceClass = RoleNameExplicitConstraint.class) //动态下拉内容
@ExcelProperty(value = "水源类型", index = 29)
@ApiModelProperty(value = "水源类型")
private String type;
......
......@@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
import java.util.Objects;
/**
* 值班人员日期关联关系表
......@@ -44,4 +45,25 @@ public class DutyPersonShift extends BaseEntity {
*/
@TableField("rec_user_name")
private String recUserName;
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof DutyPersonShift)) {
return false;
}
if (!super.equals(o)) {
return false;
}
DutyPersonShift that = (DutyPersonShift) o;
return Objects.equals(dutyDate, that.dutyDate) &&
Objects.equals(instanceId, that.instanceId);
}
@Override
public int hashCode() {
return Objects.hash(super.hashCode(), dutyDate, instanceId);
}
}
package com.yeejoin.amos.boot.module.common.api.entity;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
import lombok.Data;
......@@ -18,7 +18,7 @@ import lombok.experimental.Accessors;
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("cb_dynamic_form_column")
@TableName(value="cb_dynamic_form_column", autoResultMap = true)
public class DynamicFormColumn extends BaseEntity {
private static final long serialVersionUID = 1L;
......@@ -67,8 +67,8 @@ public class DynamicFormColumn extends BaseEntity {
/**
* 配置json
*/
@TableField("column_config")
private String columnConfig;
@TableField(value = "column_config", typeHandler = JacksonTypeHandler.class)
private JSONObject columnConfig;
/**
* 操作人名称
*/
......@@ -79,8 +79,10 @@ public class DynamicFormColumn extends BaseEntity {
*/
@TableField("remark")
private String remark;
//新加排序字段
/**
* 排序字段
*/
@TableField("sort")
private int sort;
}
package com.yeejoin.amos.boot.module.common.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 io.swagger.annotations.ApiModelProperty;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
import lombok.Data;
......@@ -18,7 +19,7 @@ import lombok.experimental.Accessors;
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("cb_dynamic_form_instance")
@TableName(value="cb_dynamic_form_instance", autoResultMap = true)
public class DynamicFormInstance extends BaseEntity {
private static final long serialVersionUID = 1L;
......@@ -97,8 +98,8 @@ public class DynamicFormInstance extends BaseEntity {
@TableField("block")
private Boolean block;
@TableField(value = "column_config")
private String columnConfig;
@TableField(value = "column_Config", typeHandler = JacksonTypeHandler.class)
private JSONObject columnConfig;
//新加排序字段
@TableField("sort")
......
package com.yeejoin.amos.boot.module.common.api.enums;
/**
* @title: ExcelSelectData
* @Author fpy
* @Date: 2021/7/7 11:11
* @Version 1.0
*/
public class ExcelSelectData {
public static final String[] NATION = {"汉族", "蒙古族", "回族", "藏族", "维吾尔族", "苗族", "彝族", "壮族", "布依族", "朝鲜族", "满族",
"侗族", "瑶族", "白族", "土家族", "哈尼族", "哈萨克族", "傣族", "黎族", "傈僳族", "佤族", "畲族", "拉祜族", "水族", "东乡族", "纳西族", "景颇族",
"柯尔克孜族", "土族", "达斡尔族", "仫佬族", "羌族", "布朗族", "撒拉族", "毛南族", "仡佬族", "锡伯族", "阿昌族", "普米族", "塔吉克族", "怒族",
"乌孜别克族", "俄罗斯族", "鄂温克族", "德昂族", "保安族", "裕固族", "京族", "塔塔尔族", "独龙族", "鄂伦春族", "赫哲族", "门巴族", "珞巴族", "基诺族",
"高山族"};
public static final String[] POLITICAL_OUTLOOK = {"中共党员", "中共预备党员", "共青团员", "民革会员", "民盟盟员", "民建会员", "民进会员",
"农工党党员", "致公党党员", "九三学社社员", "台盟盟员", "无党派人士", "群众"};
}
\ No newline at end of file
......@@ -8,5 +8,5 @@ import java.util.List;
*
* ***/
public interface DataSources {
String[] selectList(String type,String method);
String[] selectList(String type,String method) throws Exception;
}
......@@ -35,7 +35,6 @@ public class ExcelUtil {
* @param sheetName sheet名
* @param data 导出的数据
* @param model 导出的头
* @param heardHeight 头行高
* @param flag true模板填充下拉 false 不填充
*/
public static void createTemplate(HttpServletResponse response, String fileName,
......@@ -75,7 +74,7 @@ public class ExcelUtil {
* @param header 指定不读取的表头行数,
* @param <T>
* @return 集合数据
* @throws ExcelException
* @throws Exception
*/
public static <T> List<T> readFirstSheetExcel(MultipartFile excel, Class<T> rowType,int header) throws Exception {
ExcelReader reader = getReader(excel, header);
......@@ -116,7 +115,7 @@ public class ExcelUtil {
* @param excel 需要解析的 Excel 文件
* @param header 指定不读取表头行数,
* @return
* @throws ExcelException
* @throws Exception
*/
public static ExcelReader getReader(MultipartFile excel,int header) throws Exception {
String fileName = excel.getOriginalFilename();
......@@ -168,6 +167,8 @@ public class ExcelUtil {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
......
......@@ -7,5 +7,5 @@ public interface ExplicitInterface {
* @return
* type 字典类型
*/
String[] source(String type,String method,DataSources dataDictionaryMapper);
String[] source(String type,String method,DataSources dataDictionaryMapper) throws Exception;
}
......@@ -8,7 +8,7 @@ package com.yeejoin.amos.boot.module.common.api.excel;
public class RoleNameExplicitConstraint implements ExplicitInterface {
@Override
public String[] source(String type, String method, DataSources dataDictionaryMapper) {
public String[] source(String type, String method, DataSources dataDictionaryMapper) throws Exception {
return dataDictionaryMapper.selectList(type, method);
}
......
......@@ -30,7 +30,7 @@ public class TemplateCellWriteHandlerDate implements SheetWriteHandler {
/**
* 避免生成的导入模板下拉值获取不到
*/
private static final Integer LIMIT_NUMBER = 50;
private static final Integer LIMIT_NUMBER = 10;
......
......@@ -4,8 +4,10 @@ import com.yeejoin.amos.boot.module.common.api.dto.DynamicFormInstanceDto;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* 动态表单实例表 Mapper 接口
......@@ -17,4 +19,13 @@ public interface DynamicFormInstanceMapper extends BaseMapper<DynamicFormInstanc
public List<DynamicFormInstanceDto> selectListByCalledId(Long id);
/**
* 列转行查询
*
* @param appKey 应用标识
* @param fieldCodes 列
* @param groupCode 分组code
* @return List<Map>
*/
List<Map<String, Object>> listAll(@Param("appKey") String appKey, @Param("fieldCodes") Map<String, Object> fieldCodes, @Param("groupCode") String groupCode);
}
package com.yeejoin.amos.boot.module.common.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.common.api.dto.ExcelOrgPersonDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgPersonExcelDto;
import com.yeejoin.amos.boot.module.common.api.entity.OrgUsr;
import org.apache.ibatis.annotations.Param;
......@@ -29,5 +29,5 @@ public interface OrgUsrMapper extends BaseMapper<OrgUsr> {
List<OrgUsr> queryOrgUsrListByBizOrgCode(String bizOrgCode);
List<ExcelOrgPersonDto> queryOrgPersonDtoList(boolean isDelete);
List<OrgPersonExcelDto> queryOrgPersonDtoList(boolean isDelete);
}
package com.yeejoin.amos.boot.module.common.api.service;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance;
import java.util.List;
import java.util.Map;
/**
* 动态表单实例表接口类
*
......@@ -8,5 +13,4 @@ package com.yeejoin.amos.boot.module.common.api.service;
* @date 2021-07-06
*/
public interface IDynamicFormInstanceService {
}
......@@ -5,6 +5,7 @@ import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.module.common.api.dto.DynamicFormInstanceDto;
import com.yeejoin.amos.boot.module.common.api.dto.FormValue;
import com.yeejoin.amos.boot.module.common.api.dto.OrgDepartmentDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgDepartmentFormDto;
......
......@@ -22,4 +22,23 @@
LEFT JOIN cb_dynamic_form_column f ON f.sequence_nbr = v.form_column_id
WHERE v.instance_id=#{id}
</select>
<select id="listAll" resultType="java.util.Map">
select
d.*
from
(
select
i.INSTANCE_ID instanceId,
i.GROUP_CODE groupCode,
<foreach collection="fieldCodes" item="value" index="key" separator=",">
MAX(CASE WHEN i.FIELD_CODE = #{key} THEN i.FIELD_VALUE END) as ${key}
</foreach>
from
cb_dynamic_form_instance i
where i.GROUP_CODE = #{groupCode}
and APP_KEY = #{appKey}
GROUP by
i.INSTANCE_ID)d
order by instanceId desc
</select>
</mapper>
......@@ -61,7 +61,7 @@
u.biz_org_name bizOrgName,
u.biz_org_code bizOrgCode,
<if test="fields != null">
<foreach collection="fields" item="item" separator=",">MAX(case f.field_code when #{item} then v.field_value
<foreach collection="fields" item="item" separator=",">MAX(case f.field_code when #{item} then IFNULL(v.field_value_label, v.field_value)
end) ${item}
</foreach>
</if>
......@@ -98,7 +98,7 @@
u.biz_org_name bizOrgName,
u.biz_org_code bizOrgCode,
<if test="fields != null">
<foreach collection="fields" item="item" separator=",">MAX(case f.field_code when #{item} then v.field_value
<foreach collection="fields" item="item" separator=",">MAX(case f.field_code when #{item} then IFNULL(v.field_value_label, v.field_value)
end) ${item}
</foreach>
</if>
......@@ -155,7 +155,7 @@
and biz_org_code like concat(#{bizOrgCode}, '%')
</select>
<select id="queryOrgPersonDtoList" resultType="com.yeejoin.amos.boot.module.common.api.dto.ExcelOrgPersonDto">
<select id="queryOrgPersonDtoList" resultType="com.yeejoin.amos.boot.module.common.api.dto.OrgPersonExcelDto">
select u.*,
v.person_number,
v.certificates_type,
......
package com.yeejoin.amos.boot.module.jcs.api.enums;
/**
*
* 导出类型常量
*
* ***/
public class ExcelEnums {
public static final String WHP = "WHP";// ("WHP","危险品"),
public static final String XFZJ = "XFZJ";//("XFZJ","消防专家"),
public static final String SYXX = "SYXX";//("SYXX","水源信息"),
public static final String HKQ = "HKQ";//("HKQ","航空器");
* 导出类型常量
***/
public class ExcelEnums {
public static final String WHP = "WHP";// ("WHP","危险品"),
public static final String XFZJ = "XFZJ";//("XFZJ","消防专家"),
public static final String SYXX = "SYXX";//("SYXX","水源信息"),
public static final String HKQ = "HKQ";//("HKQ","航空器");
public static final String XFDW = "XFDW";//("XFDW","消防队伍")
public static final String WXXFZ = "WXXFZ";//("WXXFZ","微型消防站")
}
package com.yeejoin.amos.boot.module.common.biz.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.common.api.dto.DutyCarDto;
import com.yeejoin.amos.boot.module.common.biz.service.IDutyCarService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
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.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.text.ParseException;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 值班班次
*
* @author system_generator
* @date 2021-07-06
*/
@RestController
@Api(tags = "值班车辆接口Api")
@RequestMapping(value = "/common/duty-car")
public class DutyCarController extends BaseController {
@Autowired
IDutyCarService iDutyCarService;
/**
* 值班列表视图--分页
*
* @return ResponseModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page-list")
@ApiOperation(httpMethod = "GET", value = "值班列表视图", notes = "值班列表视图")
public ResponseModel<IPage<Map<String, Object>>> pageList(
@ApiParam(value = "当前页", required = true) @RequestParam(value = "current") int current,
@ApiParam(value = "页面大小", required = true) @RequestParam(value = "size") int size) {
return ResponseHelper.buildResponse(iDutyCarService.pageList(current, size));
}
/**
* 值班列表视图--不分页
*
* @return ResponseModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/list")
@ApiOperation(httpMethod = "GET", value = "值班列表视图", notes = "值班列表视图")
public ResponseModel list(@ApiParam(value = "开始日期", required = true) @RequestParam Date beginDate,
@ApiParam(value = "结束日期", required = true) @RequestParam Date endDate) throws ParseException {
return ResponseHelper.buildResponse(iDutyCarService.list(beginDate, endDate));
}
/**
* 值班月视图
*
* @return ResponseModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping("/statistics-day")
@ApiOperation(httpMethod = "GET", value = "值班月视图", notes = "值班月视图")
public ResponseModel<List<Map<String, Object>>> dutyDetail(
@ApiParam(value = "开始日期", required = true) @RequestParam Date beginDate,
@ApiParam(value = "结束日期", required = true) @RequestParam Date endDate
) {
return ResponseHelper.buildResponse(iDutyCarService.dutyDetail(beginDate, endDate));
}
/**
* 调班
*
* @return ResponseModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@PostMapping("/duty-adjust")
@ApiOperation(httpMethod = "POST", value = "调班保存", notes = "调班保存")
public ResponseModel dutyAdjustSave(@RequestBody DutyCarDto dutyCarDto) {
return ResponseHelper.buildResponse(iDutyCarService.save(dutyCarDto));
}
/**
* 调班
* @param instanceId 实例id
* @param dutyCarDto 业务对象
* @return DutyCarDto
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@PutMapping("/duty-adjust")
@ApiOperation(httpMethod = "POST", value = "调班更新", notes = "调班更新")
public ResponseModel dutyAdjustUpdate(
@RequestParam Long instanceId,
@RequestBody DutyCarDto dutyCarDto) {
return ResponseHelper.buildResponse(iDutyCarService.update(instanceId,dutyCarDto));
}
}
package com.yeejoin.amos.boot.module.common.biz.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.common.api.dto.DutyCarDto;
import com.yeejoin.amos.boot.module.common.api.dto.DutyPersonDto;
import com.yeejoin.amos.boot.module.common.biz.service.IDutyPersonService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
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.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 值班班次
*
* @author system_generator
* @date 2021-07-06
*/
@RestController
@Api(tags = "值班人员接口Api")
@RequestMapping(value = "/common/duty-person")
public class DutyPersonController extends BaseController {
@Autowired
IDutyPersonService iDutyPersonService;
/**
* 值班列表视图--分页
*
* @return ResponseModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page-list")
@ApiOperation(httpMethod = "GET", value = "值班列表视图", notes = "值班列表视图")
public ResponseModel<IPage<Map<String, Object>>> pageList(
@ApiParam(value = "当前页", required = true) @RequestParam(value = "current") int current,
@ApiParam(value = "页面大小", required = true) @RequestParam(value = "size") int size) {
return ResponseHelper.buildResponse(iDutyPersonService.pageList(current, size));
}
/**
* 值班列表视图--不分页
*
* @return ResponseModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/list")
@ApiOperation(httpMethod = "GET", value = "值班列表视图", notes = "值班列表视图")
public ResponseModel<List<Map>> list(@ApiParam(value = "开始日期", required = true) @RequestParam Date beginDate,
@ApiParam(value = "结束日期", required = true) @RequestParam Date endDate) {
return ResponseHelper.buildResponse(iDutyPersonService.list(beginDate, endDate));
}
/**
* 值班月视图
*
* @return ResponseModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping("/duty-detail")
@ApiOperation(httpMethod = "GET", value = "值班月视图", notes = "值班月视图")
public ResponseModel<List<Map<String, Object>>> dutyDetail(
@ApiParam(value = "开始日期", required = true) @RequestParam Date beginDate,
@ApiParam(value = "结束日期", required = true) @RequestParam Date endDate
) {
return ResponseHelper.buildResponse(iDutyPersonService.dutyDetail(beginDate, endDate));
}
/**
* 调班
*
* @return ResponseModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@PostMapping("/duty-adjust")
@ApiOperation(httpMethod = "POST", value = "调班保存", notes = "调班保存")
public ResponseModel dutyAdjust(@RequestBody DutyPersonDto dutyPersonDto) {
return ResponseHelper.buildResponse(iDutyPersonService.save(dutyPersonDto));
}
}
......@@ -13,6 +13,8 @@ import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.DynamicFormColumnDto;
import com.yeejoin.amos.boot.module.common.api.dto.DynamicFormInitDto;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
......@@ -105,4 +107,16 @@ public class DynamicFormColumnController extends BaseController {
{
return ResponseHelper.buildResponse(dynamicFormColumnServiceImpl.queryForDynamicFormColumnList());
}
/**
*列表全部数据查询
*@return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "动态表单树形分组字段表列表全部数据查询", notes = "动态表单树形分组字段表列表全部数据查询")
@GetMapping(value = "/{groupCode}/list")
public ResponseModel<List<DynamicFormInitDto>> selectForList(@PathVariable("groupCode") String groupCode)
{
return ResponseHelper.buildResponse(dynamicFormColumnServiceImpl.getFormlist(groupCode));
}
}
......@@ -127,40 +127,4 @@ public class FireChemicalController extends BaseController {
public ResponseModel<List<FireChemicalDto>> selectForList() {
return ResponseHelper.buildResponse(fireChemicalServiceImpl.queryForFireChemicalList(false));
}
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@ApiOperation(value = "导入危化品")
@PostMapping("/import_batch")
public void importByExcel(MultipartFile multipartFile) throws Exception {
List<FireChemicalDto> excelDtoList = ExcelUtil.readFirstSheetExcel(multipartFile, FireChemicalDto.class,
1);
List<FireChemical> excelEntityList = new ArrayList<>();
excelDtoList.forEach(
item -> {
FireChemical fireChemical = new FireChemical();
fireChemical = Bean.toPo(item, fireChemical);
if (fireChemical.getType() != null) {
String[] type = fireChemical.getType().split("@");
fireChemical.setType(type[0]);
fireChemical.setTypeCode(type[1]);
}
excelEntityList.add(fireChemical);
}
);
fireChemicalServiceImpl.saveBatch(excelEntityList);
}
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@ApiOperation(value = "导出危化品")
@GetMapping("/export")
public void exportToExcel(HttpServletResponse response, ExcelDto excelDto) {
try {
List<FireChemicalDto> data = fireChemicalServiceImpl.queryForFireChemicalList(false);
ExcelUtil.createTemplate(response, excelDto.getFileName(), excelDto.getSheetName(), data,
FireChemicalDto.class, null, false);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("系统异常!");
}
}
}
......@@ -9,6 +9,7 @@ import com.yeejoin.amos.boot.biz.common.utils.NameUtils;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.biz.common.utils.TreeParser;
import com.yeejoin.amos.boot.module.common.api.dto.ExcelDto;
import com.yeejoin.amos.boot.module.common.api.dto.FireChemicalDto;
import com.yeejoin.amos.boot.module.common.api.dto.FireExpertsDto;
import com.yeejoin.amos.boot.module.common.api.entity.DataDictionary;
import com.yeejoin.amos.boot.module.common.api.entity.FireExperts;
......@@ -126,45 +127,17 @@ public class FireExpertsController extends BaseController {
public ResponseModel<IPage<FireExpertsDto>> queryForPage(@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size,
FireExpertsDto fireExpertsDto) {
FireExperts fireExperts = BeanDtoVoUtils.convert(fireExpertsDto, FireExperts.class);
Page<FireExperts> pageBean;
QueryWrapper<FireExperts> fireExpertsQueryWrapper = new QueryWrapper<>();
fireExpertsQueryWrapper.eq("is_delete", false);
Class<? extends FireExperts> aClass = fireExperts.getClass();
Arrays.stream(aClass.getDeclaredFields()).forEach(field -> {
try {
field.setAccessible(true);
Class<?> type = field.getType();
Object o = field.get(fireExperts);
if (o != null) {
String name = NameUtils.camel2Underline(field.getName());
if ("name".equalsIgnoreCase(name)) {
String fileValue = (String) o;
fireExpertsQueryWrapper.like(name, fileValue);
} else if ("expert_code".equalsIgnoreCase(name)) {
String fileValue = (String) o;
fireExpertsQueryWrapper.eq(name, fileValue);
} else if (type.equals(Integer.class)) {
Integer fileValue = (Integer) o;
fireExpertsQueryWrapper.eq(name, fileValue);
} else if (type.equals(Long.class)) {
Long fileValue = (Long) o;
fireExpertsQueryWrapper.eq(name, fileValue);
} else {
String fileValue = (String) o;
fireExpertsQueryWrapper.like(name, fileValue);
}
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("系统异常");
}
});
IPage<FireExperts> page;
pageBean = new Page<>(current, size);
page = fireExpertsServiceImpl.page(pageBean, fireExpertsQueryWrapper);
IPage<FireExpertsDto> fireExpertsDtoIPage = BeanDtoVoUtils.iPageDtoStreamFireExperts(page);
return ResponseHelper.buildResponse(fireExpertsDtoIPage);
Page<FireExpertsDto> page = new Page<>();
page.setCurrent(current);
page.setSize(size);
Page<FireExpertsDto> fireExpertsDtoPage = fireExpertsServiceImpl.queryForFireExpertsPage(page, false,
fireExpertsDto.getName(), fireExpertsDto.getExpertCode());
List<FireExpertsDto> fireExpertsDtoList = fireExpertsDtoPage.getRecords().stream().map(item -> {
item.setAge(BeanDtoVoUtils.getAge(item.getBirthdayTime()));
return item;
}).collect(Collectors.toList());
fireExpertsDtoPage.setRecords(fireExpertsDtoList);
return ResponseHelper.buildResponse(fireExpertsDtoPage);
}
/**
......@@ -203,54 +176,4 @@ public class FireExpertsController extends BaseController {
// 创建挂在主节点
return ResponseHelper.buildResponse(menuList);
}
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@ApiOperation(value = "批量导入消防专家")
@PostMapping("/import_batch")
public void importByExcel(MultipartFile multipartFile) throws Exception {
List<FireExpertsDto> excelDtoList = ExcelUtil.readFirstSheetExcel(multipartFile, FireExpertsDto.class, 1);
List<FireExperts> excelEntityList = new ArrayList<>();
excelDtoList.forEach(
fireExpertsDto -> {
FireExperts fireExperts = new FireExperts();
fireExperts = Bean.toPo(fireExpertsDto, fireExperts);
if (fireExperts.getCertificatesType() != null) {
String[] certificates = fireExperts.getCertificatesType().split("@");
fireExperts.setCertificatesType(certificates[0]);
fireExperts.setCertificatesTypeCode(certificates[1]);
}
if (fireExperts.getJobs() != null) {
String[] jobs = fireExperts.getJobs().split("@");
fireExperts.setJobs(jobs[0]);
fireExperts.setJobsCode(jobs[1]);
}
if (fireExperts.getExpert() != null) {
String[] expert = fireExperts.getExpert().split("@");
fireExperts.setExpert(expert[0]);
fireExperts.setExpertCode(expert[1]);
}
if (fireExperts.getHighestEducation() != null) {
String[] highestEducation = fireExperts.getHighestEducation().split("@");
fireExperts.setHighestEducation(highestEducation[0]);
}
excelEntityList.add(fireExperts);
}
);
fireExpertsServiceImpl.saveBatch(excelEntityList);
}
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@ApiOperation(value = "导出消防专家")
@GetMapping("/export")
public void exportToExcel(HttpServletResponse response, ExcelDto excelDto) {
try {
List<FireExpertsDto> fireExpertsDtoList = fireExpertsServiceImpl.queryForFireExpertsList(false);
ExcelUtil.createTemplate(response, excelDto.getFileName(), excelDto.getSheetName(), fireExpertsDtoList,
FireExpertsDto.class, null, false);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("系统异常");
}
}
}
......@@ -139,34 +139,4 @@ public class FireStationController extends BaseController {
public ResponseModel<List<FireStationDto>> selectForList() {
return ResponseHelper.buildResponse(fireStationServiceImpl.queryForFireStationList(false));
}
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@ApiOperation(value = "导入微型消防站")
@PostMapping("/import_batch")
public void importByExcel(MultipartFile multipartFile) throws Exception {
List<FireStationDto> excelDtoList = ExcelUtil.readFirstSheetExcel(multipartFile, FireStationDto.class, 1);
List<FireStation> excelEntityList = new ArrayList<>();
excelDtoList.forEach(
item -> {
FireStation fireStation = new FireStation();
fireStation = Bean.toPo(item, fireStation);
excelEntityList.add(fireStation);
}
);
fireStationServiceImpl.saveBatch(excelEntityList);
}
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@ApiOperation(value = "导出微型消防站")
@GetMapping("/export")
public void exportToExcel(HttpServletResponse response, ExcelDto excelDto) {
try {
List<FireStationDto> data = fireStationServiceImpl.queryForFireStationList(false);
ExcelUtil.createTemplate(response, excelDto.getFileName(), excelDto.getSheetName(), data,
FireStationDto.class, null, false);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("系统异常!");
}
}
}
......@@ -220,7 +220,7 @@ public class OrgPersonController {
@ApiOperation(value = "导入机场单位")
@PostMapping("/import_batch")
public void importByExcel(MultipartFile multipartFile) throws Exception {
List<ExcelOrgPersonDto> excelDtoList = ExcelUtil.readFirstSheetExcel(multipartFile, ExcelOrgPersonDto.class, 1);
List<OrgPersonExcelDto> excelDtoList = ExcelUtil.readFirstSheetExcel(multipartFile, OrgPersonExcelDto.class, 1);
iOrgUsrService.importByExcel(excelDtoList);
}
......@@ -229,9 +229,9 @@ public class OrgPersonController {
@GetMapping("/export")
public void exportToExcel(HttpServletResponse response, ExcelDto excelDto) {
try {
List<ExcelOrgPersonDto> data = iOrgUsrService.queryOrgPersonDtoList(false);
List<OrgPersonExcelDto> data = iOrgUsrService.queryOrgPersonDtoList(false);
ExcelUtil.createTemplate(response, excelDto.getFileName(), excelDto.getSheetName(), data,
ExcelOrgPersonDto.class, null, false);
OrgPersonExcelDto.class, null, false);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("系统异常!");
......
......@@ -321,50 +321,4 @@ public class WaterResourceController extends BaseController {
public ResponseModel<List<WaterResourceDto>> selectForList() {
return ResponseHelper.buildResponse(waterResourceServiceImpl.queryForWaterResourceList(true));
}
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@ApiOperation(value = "批量导入消防水源")
@PostMapping("/import_batch")
public void importByExcel(MultipartFile multipartFile) throws Exception {
List<WaterResourceDto> excelDtoList = ExcelUtil.readFirstSheetExcel(multipartFile, WaterResourceDto.class, 1);
excelDtoList.forEach(
item -> {
if (item.getResourceTypeName() != null) {
String[] resourceTypeName = item.getResourceTypeName().split("@");
item.setResourceTypeName(resourceTypeName[0]);
item.setResourceType(resourceTypeName[1]);
}
if (item.getSystemType() != null) {
String[] systemType = item.getSystemType().split("@");
item.setSystemType(systemType[0]);
item.setSystemTypeCode(systemType[1]);
}
if (item.getPlaceForm() != null) {
String[] placeForm = item.getPlaceForm().split("@");
item.setPlaceForm(placeForm[0]);
item.setPlaceFormCode(placeForm[1]);
}
if (item.getHoseConnection() != null) {
String[] hoseConnection = item.getHoseConnection().split("@");
item.setHoseConnection(hoseConnection[0]);
item.setHoseConnectionCode(hoseConnection[1]);
}
waterResourceServiceImpl.importByExcel(item);
}
);
}
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@ApiOperation(value = "导出消防水源")
@GetMapping("/export")
public void exportToExcel(HttpServletResponse response, ExcelDto excelDto) {
try {
List<WaterResourceDto> waterResourceDtoList = waterResourceServiceImpl.exportToExcel(true);
ExcelUtil.createTemplate(response, excelDto.getFileName(), excelDto.getSheetName(), waterResourceDtoList,
WaterResourceDto.class, null, false);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("系统异常");
}
}
}
package com.yeejoin.amos.boot.module.common.biz.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.module.common.api.dto.DutyCarDto;
import java.text.ParseException;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @author DELL
*/
public interface IDutyCarService {
/**
* 分页查询
*
* @param current 当前页
* @param size 页大小
* @return ResponseModel
*/
IPage<Map<String, Object>> pageList(int current, int size);
/**
* 值班明细
*
* @param beginDate 开始日期
* @param endDate 结束日期
* @return ResponseModel
*/
List<Map<String, Object>> dutyDetail(Date beginDate, Date endDate);
/**
* 不分页查询
*
* @param dutyType 表单类型
* @return ResponseModel
*/
List<Map> list(String dutyType);
/**
* 不分页查询
*
* @param beginDate 开始日期
* @param endDate 结束日期
* @return ResponseModel
*/
List<Map<String, Object>> list(Date beginDate, Date endDate) throws ParseException;
/**
* 值班信息保存
* @param dutyCarDto 对象
* @return List<DutyCarDto>
*/
DutyCarDto save(DutyCarDto dutyCarDto);
/**
* 更新
* @param instanceId 实例id
* @param dutyCarDto 业务对象
* @return List<DutyCarDto>
*/
DutyCarDto update(Long instanceId, DutyCarDto dutyCarDto);
}
package com.yeejoin.amos.boot.module.common.biz.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.module.common.api.dto.DutyPersonDto;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @author DELL
*/
public interface IDutyPersonService {
/**
* 分页查询
*
* @param current 当前页
* @param size 页大小
* @return ResponseModel
*/
IPage<Map<String, Object>> pageList(int current, int size);
/**
* 值班明细
*
* @param beginDate 开始日期
* @param endDate 结束日期
* @return ResponseModel
*/
List<Map<String, Object>> dutyDetail(Date beginDate, Date endDate);
/**
* 不分页查询
*
* @param beginDate 开始日期
* @param endDate 结束日期
* @return ResponseModel
*/
List<Map> list(Date beginDate, Date endDate);
/**
* 保存
*
* @param dutyCarDto 业务对象
* @return List<DutyPersonDto>
*/
List<DutyPersonDto> save(DutyPersonDto dutyCarDto);
}
package com.yeejoin.amos.boot.module.common.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.module.common.api.dto.DutyCarDto;
import com.yeejoin.amos.boot.module.common.api.entity.DutyPersonShift;
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.biz.service.IDutyCarService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.Bean;
import java.text.ParseException;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
* @author DELL
*/
@Service
public class DutyCarServiceImpl implements IDutyCarService {
@Autowired
DynamicFormColumnServiceImpl dynamicFormColumnService;
@Autowired
DynamicFormInstanceServiceImpl dynamicFormInstanceService;
@Autowired
DutyPersonShiftServiceImpl dutyPersonShiftService;
@Autowired
Sequence sequence;
@Autowired
DynamicFormInstanceMapper dynamicFormInstanceMapper;
private final String GROUP_CODE = "dutyCar";
@Override
public IPage<Map<String, Object>> pageList(int current, int size) {
return null;
}
@Override
public List<Map<String, Object>> dutyDetail(Date beginDate, Date endDate) {
return null;
}
@Override
public List<Map> list(String dutyType) {
return null;
}
@Override
public List<Map<String, Object>> list(Date beginDate, Date endDate) throws ParseException {
//1.已column为准 进行返回
List<DynamicFormColumn> columns = dynamicFormColumnService.list(new LambdaQueryWrapper<DynamicFormColumn>().eq(DynamicFormColumn::getGroupCode, GROUP_CODE));
Map<String, Object> fieldCodes = Bean.listToMap(columns, "fieldCode", "queryStrategy", DynamicFormColumn.class);
List<Map<String, Object>> list = dynamicFormInstanceMapper.listAll(RequestContext.getAppKey(), fieldCodes, GROUP_CODE);
//2.组织值班数据
for (Map<String, Object> map : list) {
String instanceId = map.get("instanceId").toString();
List<DutyPersonShift> personShiftList = dutyPersonShiftService.list(new LambdaQueryWrapper<DutyPersonShift>()
.eq(DutyPersonShift::getInstanceId, instanceId)
.ge(beginDate != null, DutyPersonShift::getDutyDate, DateUtils.dateFormat(beginDate, DateUtils.DATE_PATTERN))
.le(endDate != null, DutyPersonShift::getDutyDate, DateUtils.dateFormat(endDate, DateUtils.DATE_PATTERN)));
map.put("dutyShift", personShiftList);
}
return list;
}
@Override
public DutyCarDto save(DutyCarDto dutyCarDto) {
//1.保存行数据
List<DynamicFormColumn> columns = dynamicFormColumnService.list(new LambdaQueryWrapper<DynamicFormColumn>().eq(DynamicFormColumn::getGroupCode, GROUP_CODE));
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);
}
//2.保存值班信息
insertPersonShift(instanceId, dutyCarDto);
//3.返回保存后的数据
return dutyCarDto;
}
@Override
public DutyCarDto update(Long instanceId, DutyCarDto dutyCarDto) {
//1.查询已有数据
List<DynamicFormInstance> instances = dynamicFormInstanceService.list(new LambdaQueryWrapper<DynamicFormInstance>().eq(DynamicFormInstance::getInstanceId, instanceId));
//2.list 转 map
Map<Object, DynamicFormInstance> instanceMap = Bean.listToMap(instances, "fieldCode", DynamicFormInstance.class);
//3.查询列数据,已列为主
List<DynamicFormColumn> columns = dynamicFormColumnService.list(new LambdaQueryWrapper<DynamicFormColumn>().eq(DynamicFormColumn::getGroupCode, GROUP_CODE));
//页面数据转Map
Map<String, Object> map = Bean.BeantoMap(dutyCarDto);
//4.已列为主 填充动态表单数据
for (DynamicFormColumn column : columns) {
DynamicFormInstance formInstance = instanceMap.get(column.getFieldCode());
if (!ObjectUtils.isEmpty(formInstance)) {
//有的更新
formInstance.setFieldValue(map.get(column.getFieldCode()) != null ? map.get(column.getFieldCode()).toString() : "");
} else {
//没有的新增
formInstance = new DynamicFormInstance();
buildFormInstanceData(instanceId, map, column, formInstance);
}
}
//5.更新值班信息人日期数据
insertPersonShift(instanceId, dutyCarDto);
return dutyCarDto;
}
private void insertPersonShift(Long instanceId, DutyCarDto dutyCarDto) {
Set<DutyPersonShift> personShiftList = dutyCarDto.getDutyShift().stream().map(dto -> {
DutyPersonShift dutyPersonShift = new DutyPersonShift();
dto.setInstanceId(instanceId);
Bean.copyExistPropertis(dto, dutyPersonShift);
return dutyPersonShift;
}).collect(Collectors.toSet());
if (!personShiftList.isEmpty()) {
dutyPersonShiftService.saveOrUpdateBatch(personShiftList);
}
}
private void buildFormInstanceData(Long instanceId, Map<String, Object> map, DynamicFormColumn column, DynamicFormInstance formInstance) {
Bean.copyExistPropertis(column, formInstance);
formInstance.setAppKey(RequestContext.getAppKey());
formInstance.setInstanceId(instanceId);
formInstance.setSequenceNbr(sequence.nextId());
formInstance.setFormColumnId(column.getSequenceNbr());
formInstance.setFieldValue(map.get(column.getFieldCode()) != null ? map.get(column.getFieldCode()).toString() : "");
}
}
package com.yeejoin.amos.boot.module.common.biz.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.module.common.api.dto.DutyPersonDto;
import com.yeejoin.amos.boot.module.common.biz.service.IDutyPersonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @author DELL
*/
@Service
public class DutyPersonServiceImpl implements IDutyPersonService {
@Override
public IPage<Map<String, Object>> pageList(int current, int size) {
return null;
}
@Override
public List<Map<String, Object>> dutyDetail(Date beginDate, Date endDate) {
return null;
}
@Override
public List<Map> list(Date beginDate, Date endDate) {
return null;
}
@Override
public List<DutyPersonDto> save(DutyPersonDto dutyCarDto) {
return null;
}
}
......@@ -7,10 +7,14 @@ import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
......@@ -63,19 +67,25 @@ public class DynamicFormColumnServiceImpl extends BaseService<DynamicFormColumnD
queryWrapper.orderByAsc("sort");
List<DynamicFormColumn> dynamicFormColumn = this.list(queryWrapper);
List<DynamicFormInitDto> listfrom = new ArrayList<DynamicFormInitDto>();
String appKey = RequestContext.getAppKey();
// 组装数据
for (DynamicFormColumn dynamicForm : dynamicFormColumn) {
dynamicFormColumn.parallelStream().forEach(dynamicForm -> {
if ( dynamicForm.getFieldType().equals("input") ||
dynamicForm.getFieldType().equals("string") ||
dynamicForm.getFieldType().equals("datetime") ||
dynamicForm.getFieldType().equals("textarea") ||
dynamicForm.getFieldType().equals("upload") ||
dynamicForm.getFieldType().equals("tagging") ||
dynamicForm.getFieldType().equals("inputBitmap")) {
DynamicFormInitDto vo = new DynamicFormInitDto(dynamicForm.getFieldCode(), dynamicForm.getFieldName(),
dynamicForm.getFieldType(), null, null);
DynamicFormInstanceDto dynamicFormValue = new DynamicFormInstanceDto(dynamicForm.getSequenceNbr(), dynamicForm.getFieldName(),
dynamicForm.getFieldCode(), dynamicForm.getBlock(), dynamicForm.getGroupCode());
dynamicForm.getFieldType(), new SelectItems(), null);
DynamicFormInstanceDto dynamicFormValue = new DynamicFormInstanceDto();
BeanUtils.copyProperties(dynamicForm, dynamicFormValue);
dynamicFormValue.setSequenceNbr(null);
dynamicFormValue.setFormColumnId(dynamicForm.getSequenceNbr());
dynamicFormValue.setAppKey(appKey);
if (dynamicForm.getFieldType().equals("datetime")) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
......@@ -87,32 +97,78 @@ public class DynamicFormColumnServiceImpl extends BaseService<DynamicFormColumnD
listfrom.add(vo);
} else {
// 查询数据项
DynamicFormInitDto vo = null;
DynamicFormInstanceDto dynamicFormValue = null;
String columnConfig = dynamicForm.getColumnConfig();
JSONObject columnConfigJson = JSONObject.parseObject(columnConfig);
if (!"custom".equals(columnConfigJson.get("type"))) {
}
QueryWrapper<DataDictionary> queryWrappercolumnMap = new QueryWrapper<>();
queryWrappercolumnMap.eq("type", dynamicForm.getGroupCode());
queryWrappercolumnMap.orderByAsc("sort_num");
Collection<DataDictionary> listDataDictionary = iDataDictionaryService.list(queryWrappercolumnMap);
List<SelectItem> list = getdata(listDataDictionary);
DynamicFormInitDto vo = new DynamicFormInitDto(dynamicForm.getFieldCode(), dynamicForm.getFieldName(),
dynamicForm.getFieldType(), new SelectItems(list), dynamicForm.getColumnConfig());
DynamicFormInstanceDto dynamicFormValue = new DynamicFormInstanceDto(dynamicForm.getSequenceNbr(), dynamicForm.getFieldName(),
dynamicForm.getFieldCode(), dynamicForm.getBlock(), dynamicForm.getGroupCode());
if (dynamicForm.getFieldType().equals("radio")) {
vo.setDefaultValue(list.get(0).getValue());
dynamicFormValue.setFieldValue(list.get(0).getLabel());
dynamicFormValue.setFieldValueLabel(list.get(0).getValue());
}
JSONObject columnConfigJson = dynamicForm.getColumnConfig();
String type = ObjectUtils.isEmpty(columnConfigJson) ? "" : columnConfigJson.get("type").toString();
switch (type) {
case "custom":
List<SelectItem> selectItems = JSONArray.parseArray(columnConfigJson.get("data").toString(), SelectItem.class);
vo = new DynamicFormInitDto(dynamicForm.getFieldCode(), dynamicForm.getFieldName(),
dynamicForm.getFieldType(), new SelectItems(selectItems), dynamicForm.getColumnConfig().toJSONString());
dynamicFormValue = new DynamicFormInstanceDto();
BeanUtils.copyProperties(dynamicForm, dynamicFormValue);
dynamicFormValue.setSequenceNbr(null);
dynamicFormValue.setFormColumnId(dynamicForm.getSequenceNbr());
dynamicFormValue.setAppKey(appKey);
if (dynamicForm.getFieldType().equals("radio")) {
vo.setDefaultValue(selectItems.get(0).getValue());
dynamicFormValue.setFieldValue(selectItems.get(0).getLabel());
dynamicFormValue.setFieldValueLabel(selectItems.get(0).getValue());
}
vo.setFormItemDescr(dynamicFormValue);
listfrom.add(vo);
vo.setFormItemDescr(dynamicFormValue);
listfrom.add(vo);
break;
case "action":
vo = new DynamicFormInitDto(dynamicForm.getFieldCode(), dynamicForm.getFieldName(),
dynamicForm.getFieldType(), new SelectItems(new ArrayList<>()), dynamicForm.getColumnConfig().toJSONString());
dynamicFormValue = new DynamicFormInstanceDto();
BeanUtils.copyProperties(dynamicForm, dynamicFormValue);
dynamicFormValue.setSequenceNbr(null);
dynamicFormValue.setFormColumnId(dynamicForm.getSequenceNbr());
dynamicFormValue.setAppKey(appKey);
vo.setFormItemDescr(dynamicFormValue);
listfrom.add(vo);
break;
case "dict":
QueryWrapper<DataDictionary> queryWrappercolumnMap = new QueryWrapper<>();
queryWrappercolumnMap.eq("type", columnConfigJson.get("dict"));
queryWrappercolumnMap.orderByAsc("sort_num");
Collection<DataDictionary> listDataDictionary = iDataDictionaryService.list(queryWrappercolumnMap);
List<SelectItem> list = getdata(listDataDictionary);
vo = new DynamicFormInitDto(dynamicForm.getFieldCode(), dynamicForm.getFieldName(),
dynamicForm.getFieldType(), new SelectItems(list), dynamicForm.getColumnConfig().toJSONString());
dynamicFormValue = new DynamicFormInstanceDto();
BeanUtils.copyProperties(dynamicForm, dynamicFormValue);
dynamicFormValue.setSequenceNbr(null);
dynamicFormValue.setFormColumnId(dynamicForm.getSequenceNbr());
dynamicFormValue.setAppKey(appKey);
if (dynamicForm.getFieldType().equals("radio")) {
vo.setDefaultValue(list.get(0).getValue());
dynamicFormValue.setFieldValue(list.get(0).getLabel());
dynamicFormValue.setFieldValueLabel(list.get(0).getValue());
}
vo.setFormItemDescr(dynamicFormValue);
listfrom.add(vo);
break;
default:
vo = new DynamicFormInitDto(dynamicForm.getFieldCode(), dynamicForm.getFieldName(),
dynamicForm.getFieldType(), new SelectItems(new ArrayList<>()), null);
dynamicFormValue = new DynamicFormInstanceDto(dynamicForm.getSequenceNbr(), dynamicForm.getFieldName(),
dynamicForm.getFieldCode(), dynamicForm.getBlock(), dynamicForm.getGroupCode());
dynamicFormValue.setAppKey(appKey);
vo.setFormItemDescr(dynamicFormValue);
listfrom.add(vo);
break;
}
}
}
});
return listfrom;
}
......
package com.yeejoin.amos.boot.module.common.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.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.DynamicFormInstanceDto;
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.typroject.tyboot.core.rdbms.service.BaseService;
import java.util.List;
import java.util.Map;
/**
* 动态表单实例表服务实现类
*
* @author system_generator
* @date 2021-07-06
*/
* 动态表单实例表服务实现类
*
* @author system_generator
* @date 2021-07-06
*/
@Service
public class DynamicFormInstanceServiceImpl extends BaseService<DynamicFormInstanceDto,DynamicFormInstance,DynamicFormInstanceMapper> implements IDynamicFormInstanceService {
@Autowired
private DynamicFormInstanceMapper dynamicFormInstanceMapper;
/**
* 分页查询
*/
public Page<DynamicFormInstanceDto> queryForDynamicFormInstancePage(Page<DynamicFormInstanceDto> page) {
return this.queryForPage(page, null, false);
}
/**
* 列表查询 示例
*/
public List<DynamicFormInstanceDto> queryForDynamicFormInstanceList() {
return this.queryForList("" , false);
}
public List<DynamicFormInstanceDto> queryByCalledId(Long instanceId) {
return this.queryForList(null, false, instanceId);
}
public List<DynamicFormInstanceDto> listByCalledId(Long instanceId) {
return dynamicFormInstanceMapper.selectListByCalledId(instanceId);
}
public class DynamicFormInstanceServiceImpl extends BaseService<DynamicFormInstanceDto, DynamicFormInstance, DynamicFormInstanceMapper> implements IDynamicFormInstanceService {
@Autowired
private DynamicFormInstanceMapper dynamicFormInstanceMapper;
/**
* 分页查询
*/
public Page<DynamicFormInstanceDto> queryForDynamicFormInstancePage(Page<DynamicFormInstanceDto> page) {
return this.queryForPage(page, null, false);
}
/**
* 列表查询 示例
*/
public List<DynamicFormInstanceDto> queryForDynamicFormInstanceList() {
return this.queryForList("", false);
}
public List<DynamicFormInstanceDto> queryByCalledId(Long instanceId) {
return this.queryForList(null, false, instanceId);
}
public List<DynamicFormInstanceDto> listByCalledId(Long instanceId) {
return dynamicFormInstanceMapper.selectListByCalledId(instanceId);
}
}
......@@ -25,8 +25,11 @@ public class FireExpertsServiceImpl extends BaseService<FireExpertsDto, FireExpe
/**
* 分页查询
*/
public Page<FireExpertsDto> queryForFireExpertsPage(Page<FireExpertsDto> page) {
return this.queryForPage(page, null, false);
public Page<FireExpertsDto> queryForFireExpertsPage(Page<FireExpertsDto> page,
@Condition(Operator.eq) Boolean isDelete,
@Condition(Operator.like) String name,
@Condition(Operator.eq) String expertCode) {
return this.queryForPage(page, null, false, isDelete, name, expertCode);
}
/**
......
......@@ -29,7 +29,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.constants.CommonConstant;
import com.yeejoin.amos.boot.module.common.api.dto.DynamicFormColumnDto;
import com.yeejoin.amos.boot.module.common.api.dto.DynamicFormInstanceDto;
import com.yeejoin.amos.boot.module.common.api.dto.ExcelOrgPersonDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgPersonExcelDto;
import com.yeejoin.amos.boot.module.common.api.dto.FormValue;
import com.yeejoin.amos.boot.module.common.api.dto.OrgDepartmentDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgDepartmentFormDto;
......@@ -338,7 +338,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
List<DynamicFormInstanceDto> list = alertFormValueServiceImpl.listByCalledId(id);
List<FormValue> formValue = new ArrayList<>();
for (DynamicFormInstanceDto alertFormValue : list) {
if (alertFormValue.getFieldValue()== null) {
if (alertFormValue.getFieldValue() != null) {
FormValue value = new FormValue(alertFormValue.getFieldCode(), alertFormValue.getFieldName(),
alertFormValue.getFieldType(),
alertFormValue.getFieldValue(), alertFormValue.getBlock());
......@@ -378,13 +378,20 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
orgUsr.setAmosOrgCode(ori.getAmosOrgCode());
if (oriOrgUsr.getParentId() != null) {
if (!ori.getParentId().equals(oriOrgUsr.getParentId())) {
if (ori.getParentId() != null && !ori.getParentId().equals(oriOrgUsr.getParentId())) {
OrgUsr parent = getById(oriOrgUsr.getParentId());
if (parent != null && ObjectUtils.isEmpty(oriOrgUsr.getBizOrgCode())) {
orgUsr.setBizOrgCode(parent.getBizOrgCode() + getOrgCodeStr());
}
updateChildOrgCode(ori.getBizOrgCode(), parent.getBizOrgCode());
orgUsr.setParentId(oriOrgUsr.getParentId());
} else if (ori.getParentId() == null && oriOrgUsr.getParentId() != null) {
OrgUsr parent = getById(oriOrgUsr.getParentId());
if (parent != null && ObjectUtils.isEmpty(oriOrgUsr.getBizOrgCode())) {
orgUsr.setBizOrgCode(parent.getBizOrgCode() + getOrgCodeStr());
}
updateChildOrgCode(ori.getBizOrgCode(), parent.getBizOrgCode());
orgUsr.setParentId(oriOrgUsr.getParentId());
}
} else {
orgUsr.setBizOrgCode(getOrgCodeStr());
......@@ -491,7 +498,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
@Override
public Map<String, Object> selectForShowById(OrgUsr orgUsr, Long id) throws Exception {
QueryWrapper<DynamicFormColumn> queryWrapper = new QueryWrapper<DynamicFormColumn>();
queryWrapper.eq("group_id", OrgPersonEnum.人员.getCode());
queryWrapper.eq("group_code", OrgPersonEnum.人员.getCode());
List<DynamicFormColumn> alertForms = alertFormServiceImpl.list(queryWrapper);
// 动态表单数据
List<DynamicFormInstanceDto> list = alertFormValueServiceImpl.listByCalledId(id);
......@@ -503,7 +510,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
result.put(alertForm.getFieldCode(), null);
}
for (DynamicFormInstanceDto alertFormValue : list) {
result.replace(alertFormValue.getFieldCode(), alertFormValue.getFieldValue());
result.put(alertFormValue.getFieldCode(), ObjectUtils.isEmpty(alertFormValue.getFieldValueLabel()) ? alertFormValue.getFieldValue() : alertFormValue.getFieldValueLabel());
}
return result;
}
......@@ -763,7 +770,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
return sb.toString();
}
public void importByExcel(List<ExcelOrgPersonDto> list) {
public void importByExcel(List<OrgPersonExcelDto> list) {
list.forEach(item -> {
OrgPersonDto orgPersonDto = new OrgPersonDto();
orgPersonDto = Bean.toPo(item, orgPersonDto);
......@@ -878,9 +885,9 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
);
}
public List<ExcelOrgPersonDto> queryOrgPersonDtoList(boolean isDelete) {
public List<OrgPersonExcelDto> queryOrgPersonDtoList(boolean isDelete) {
List<ExcelOrgPersonDto> excelOrgPersonDtoList = orgUsrMapper.queryOrgPersonDtoList(isDelete);
List<OrgPersonExcelDto> excelOrgPersonDtoList = orgUsrMapper.queryOrgPersonDtoList(isDelete);
return excelOrgPersonDtoList;
}
......
......@@ -6,6 +6,7 @@ import com.yeejoin.amos.boot.module.common.api.entity.FireExperts;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import java.time.LocalDate;
import java.util.Calendar;
import java.util.Date;
......@@ -111,29 +112,21 @@ public class BeanDtoVoUtils {
//由出生日期获得年龄
public static int getAge(Date birthDay) {
Calendar cal = Calendar.getInstance();
if (cal.before(birthDay)) {
throw new IllegalArgumentException("出生日期小于当前时间,无效的日期!");
if (birthDay == null) {
return 0;
}
int yearNow = cal.get(Calendar.YEAR);
int monthNow = cal.get(Calendar.MONTH);
int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH);
LocalDate now = LocalDate.now();
Calendar cal = Calendar.getInstance();
cal.setTime(birthDay);
int yearBirth = cal.get(Calendar.YEAR);
int monthBirth = cal.get(Calendar.MONTH);
int monthBirth = cal.get(Calendar.MONTH) + 1;
int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH);
int age = yearNow - yearBirth;
if (monthNow <= monthBirth) {
if (monthNow == monthBirth) {
if (dayOfMonthNow < dayOfMonthBirth) age--;
} else {
age--;
}
LocalDate birth = LocalDate.of(yearBirth, monthBirth, dayOfMonthBirth);
if (birth.isAfter(now)) {
return 0;
}
int age = birth.until(now).getYears();
return age;
}
......
......@@ -129,59 +129,4 @@ public class AircraftController extends BaseController {
return ResponseHelper.buildResponse(aircraftServiceImpl.queryForAircraftPage(page, false, aircraftModel,
engineType, fuelType));
}
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@ApiOperation(value = "导入航空器")
@PostMapping("/import_batch")
public void importByExcel(MultipartFile multipartFile) throws Exception {
List<AircraftDto> excelDtoList = ExcelUtil.readFirstSheetExcel(multipartFile, AircraftDto.class,
1);
List<Aircraft> excelEntityList = new ArrayList<>();
excelDtoList.forEach(
item -> {
Aircraft aircraft = new Aircraft();
aircraft = Bean.toPo(item, aircraft);
if (aircraft.getEngineType() != null) {
String[] engineType = aircraft.getEngineType().split("@");
aircraft.setEngineType(engineType[0]);
aircraft.setEngineTypeCode(engineType[1]);
}
if (aircraft.getFuelType() != null) {
String[] fuelType = aircraft.getFuelType().split("@");
aircraft.setFuelType(fuelType[0]);
aircraft.setFuelTypeCode(fuelType[1]);
}
excelEntityList.add(aircraft);
}
);
aircraftServiceImpl.saveBatch(excelEntityList);
}
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@ApiOperation(value = "导出航空器")
@GetMapping("/export")
public void exportToExcel(HttpServletResponse response, ExcelDto excelDto) {
try {
List<AircraftDto> data = aircraftServiceImpl.queryAircraftDtoForList(false);
ExcelUtil.createTemplate(response, excelDto.getFileName(), excelDto.getSheetName(), data,
AircraftDto.class, null, false);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("系统异常!");
}
}
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@ApiOperation(value = "下载航空器模板")
@GetMapping("/template")
public void template(HttpServletResponse response, ExcelDto excelDto) {
try {
ExcelUtil.createTemplate(response, excelDto.getFileName(), excelDto.getSheetName(), null,
AircraftDto.class, dataSourcesImpl, true);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("系统异常!");
}
}
}
......@@ -6,30 +6,32 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.utils.Menu;
import com.yeejoin.amos.boot.biz.common.utils.MenuFrom;
import com.yeejoin.amos.boot.biz.common.utils.NameUtils;
import com.yeejoin.amos.boot.biz.common.utils.TreeParser;
import com.yeejoin.amos.boot.module.common.api.dto.ExcelDto;
import com.yeejoin.amos.boot.module.common.api.dto.FireTeamCardDto;
import com.yeejoin.amos.boot.module.common.api.dto.FireTeamDto;
import com.yeejoin.amos.boot.module.common.api.dto.FireTeamListDto;
import com.yeejoin.amos.boot.module.common.api.entity.FireTeam;
import com.yeejoin.amos.boot.module.common.api.excel.ExcelUtil;
import com.yeejoin.amos.boot.module.jcs.biz.service.impl.FireTeamServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
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.RequestParam;
import org.springframework.web.bind.annotation.RestController;
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.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 消防队伍
......@@ -53,7 +55,7 @@ public class FireTeamController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增消防队伍", notes = "新增消防队伍")
public ResponseModel<Object> saveFireTeam(HttpServletRequest request, @RequestBody FireTeam fireTeam) {
public ResponseModel<Object> saveFireTeam(HttpServletRequest request, @RequestBody FireTeam fireTeam) {
iFireTeamService.save(fireTeam);
return ResponseHelper.buildResponse(null);
}
......@@ -67,7 +69,7 @@ public class FireTeamController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public ResponseModel<Object> deleteById(HttpServletRequest request, @PathVariable Long id) {
public ResponseModel<Object> deleteById(HttpServletRequest request, @PathVariable Long id) {
iFireTeamService.update(new UpdateWrapper<FireTeam>().eq("sequence_nbr", id).set("is_delete", 1));
return ResponseHelper.buildResponse(null);
}
......@@ -119,7 +121,7 @@ public class FireTeamController extends BaseController {
/**
* 列表分页查询
* 消防队伍树查询
*
* @return
* @throws Exception
......@@ -130,9 +132,24 @@ public class FireTeamController extends BaseController {
public ResponseModel<List<Menu>> listTree() throws Exception {
Map<String, Object> columnMap = new HashMap<>();
columnMap.put("is_delete", 0);
Collection<FireTeam> list = iFireTeamService.listByMap(columnMap);
List<Menu> menus = TreeParser.getTree(null, list, FireTeam.class.getName(), "getSequenceNbr", 2, "getName",
"getParent");
List<Menu> menus = iFireTeamService.getTeamTree(columnMap);
return ResponseHelper.buildResponse(menus);
}
/**
* 查询所属单位下消防队伍树
*
* @return
* @throws Exception
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/{companyId}/listTree", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "查询所属单位下消防队伍树", notes = "查询所属单位下消防队伍树")
public ResponseModel<List<Menu>> listTreeByCompanyId(@PathVariable(value = "companyId") String companyId) throws Exception {
Map<String, Object> columnMap = new HashMap<>();
columnMap.put("is_delete", 0);
columnMap.put("company", companyId);
List<Menu> menus = iFireTeamService.getTeamTree(columnMap);
return ResponseHelper.buildResponse(menus);
}
......@@ -184,39 +201,17 @@ public class FireTeamController extends BaseController {
return page;
}
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@ApiOperation(value = "导入消防队伍")
@PostMapping("/import_batch")
public void importByExcel(MultipartFile multipartFile, HttpServletResponse response) throws Exception {
List<FireTeamDto> excelDtoList = ExcelUtil.readFirstSheetExcel(multipartFile, FireTeamDto.class,
1);
List<FireTeam> excelEntityList = new ArrayList<>();
excelDtoList.forEach(
item -> {
FireTeam fireTeam = new FireTeam();
fireTeam = Bean.toPo(item, fireTeam);
if (fireTeam.getType() != null) {
String[] type = fireTeam.getType().split("@");
fireTeam.setType(type[0]);
fireTeam.setTypeCode(type[1]);
}
excelEntityList.add(fireTeam);
}
);
iFireTeamService.saveBatch(excelEntityList);
}
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@ApiOperation(value = "导出消防队伍")
@GetMapping("/export")
public void exportToExcel(HttpServletResponse response, ExcelDto excelDto) {
try {
List<FireTeamDto> data = iFireTeamService.queryFireTeamForList(false);
ExcelUtil.createTemplate(response, excelDto.getFileName(), excelDto.getSheetName(), data,
FireTeamDto.class, null, false);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("系统异常!");
}
/**
* 查询机场单位-消防队伍树
*
* @return
* @throws Exception
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/company/listTree", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "查询机场单位-消防队伍树", notes = "查询机场单位-消防队伍树")
public ResponseModel<List<MenuFrom>> listCompanyTree() throws Exception {
List<MenuFrom> menus = iFireTeamService.getCompanyTeamTree();
return ResponseHelper.buildResponse(menus);
}
}
\ No newline at end of file
package com.yeejoin.amos.boot.module.jcs.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yeejoin.amos.boot.biz.common.utils.MenuFrom;
import com.yeejoin.amos.boot.module.common.api.dto.FirefightersDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgMenuDto;
import com.yeejoin.amos.boot.module.common.api.entity.DataDictionary;
import com.yeejoin.amos.boot.module.common.api.entity.Firefighters;
import com.yeejoin.amos.boot.module.common.api.entity.OrgUsr;
import com.yeejoin.amos.boot.module.common.api.enums.ExcelSelectData;
import com.yeejoin.amos.boot.module.common.api.excel.DataSources;
import com.yeejoin.amos.boot.module.common.api.mapper.DataDictionaryMapper;
import com.yeejoin.amos.boot.module.common.biz.service.impl.FirefightersServiceImpl;
import com.yeejoin.amos.boot.module.common.biz.service.impl.OrgUsrServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.*;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
......@@ -15,14 +29,134 @@ public class DataSourcesImpl implements DataSources {
@Resource
DataDictionaryMapper dataDictionaryMapper;
@Autowired
EquipmentServiceImpl equipmentService;
@Autowired
OrgUsrServiceImpl orgUsrService;
@Autowired
FirefightersServiceImpl firefightersService;
@Autowired
private RestTemplate restTemplate;
@Value("${security.systemctl.name}")
private String systemctl;
@Override
public String[] selectList(String type, String method) {
public String[] selectList(String type, String method) throws Exception {
String[] str = {};
if (StringUtils.isNotEmpty(type)) {
str = getDataDictionary(type);
} else {
switch (method) {
case "getNations":
str = ExcelSelectData.NATION;
break;
case "getPoliticalOutlook":
str = ExcelSelectData.POLITICAL_OUTLOOK;
break;
case "getAdministrativeDivisions":
// 设置请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.valueOf("application/json; charset=utf-8"));
// 用HttpEntity封装整个请求报文
HttpEntity<Object> httpEntity = new HttpEntity<>(null, headers);
ResponseEntity<String> responseEntity = restTemplate.exchange("http://" + systemctl + "/systemctl" +
"/v1" +
"/region/tree/parent", HttpMethod.GET,
httpEntity, String.class);
String body = responseEntity.getBody();
break;
case "getBuildingList":
str = getBuildingList();
break;
case "getFireSystemList":
str = getFireSystemList();
break;
case "getCompanyList":
str = getCompanyList();
break;
case "getFirefighters":
str = getFirefighters();
break;
case "getBizCompanyList":
str = getBizCompanyList();
break;
}
}
return str;
}
private String[] getBizCompanyList() throws Exception {
List<OrgMenuDto> orgUsrTree = orgUsrService.getTree(null, orgUsrService.selectCompanyDepartmentMsg(),
OrgUsr.class.getName(), "getSequenceNbr", 2, "getBizOrgName", "getParentId", "getBizOrgType");
List<String> stringList = new ArrayList<String>();
initBizCompanyList(orgUsrTree, stringList);
String[] str = stringList.toArray(new String[stringList.size()]);
return str;
}
private void initBizCompanyList(List<OrgMenuDto> orgUsrTree, List<String> stringList) {
for (OrgMenuDto orgMenuDto : orgUsrTree) {
stringList.add(orgMenuDto.getName() + "@" + orgMenuDto.getKey() + "@" + orgMenuDto.getBizOrgCode());
List<OrgMenuDto> children = orgMenuDto.getChildren();
if (children != null && children.size() > 0) {
initCompanyList(children, stringList);
}
}
}
private String[] getFirefighters() {
List<Firefighters> firefighters = firefightersService.getFirefighters(1, Integer.MAX_VALUE,
new FirefightersDto());
List<String> names = firefighters.stream().map(item -> {
return item.getName() + "@" + item.getSequenceNbr();
}).collect(Collectors.toList());
String[] str = names.toArray(new String[names.size()]);
return str;
}
private String[] getCompanyList() throws Exception {
List<OrgMenuDto> orgUsrTree = orgUsrService.getTree(null, orgUsrService.selectCompanyDepartmentMsg(),
OrgUsr.class.getName(), "getSequenceNbr", 2, "getBizOrgName", "getParentId", "getBizOrgType");
List<String> stringList = new ArrayList<String>();
initCompanyList(orgUsrTree, stringList);
String[] str = stringList.toArray(new String[stringList.size()]);
return str;
}
private void initCompanyList(List<OrgMenuDto> orgUsrTree, List<String> stringList) {
for (OrgMenuDto orgMenuDto : orgUsrTree) {
stringList.add(orgMenuDto.getName() + "@" + orgMenuDto.getKey());
List<OrgMenuDto> children = orgMenuDto.getChildren();
if (children != null && children.size() > 0) {
initCompanyList(children, stringList);
}
}
}
private String[] getFireSystemList() {
List<MenuFrom> fireSystemList = equipmentService.getFireSystemList();
List<String> names = fireSystemList.stream().map(item -> {
return item.getName() + "@" + item.getKey();
}).collect(Collectors.toList());
String[] str = names.toArray(new String[names.size()]);
return str;
}
private String[] getBuildingList() {
List<MenuFrom> buildingList = equipmentService.getBuildingList();
List<String> buildingNames = buildingList.stream().map(item -> {
return item.getName() + "@" + item.getKey();
}).collect(Collectors.toList());
String[] str = buildingNames.toArray(new String[buildingNames.size()]);
return str;
}
private String[] getDataDictionary(String type) {
QueryWrapper<DataDictionary> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("type", type);
if ("ZJLY".equals(type)) {
queryWrapper.isNull("parent");
}
queryWrapper.orderByAsc("sort_num");
List<DataDictionary> list = dataDictionaryMapper.selectList(queryWrapper);
List<String> names = list.stream().map(dataDictionary -> {
......
......@@ -2,14 +2,21 @@ package com.yeejoin.amos.boot.module.jcs.biz.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.yeejoin.amos.boot.biz.common.utils.Menu;
import com.yeejoin.amos.boot.biz.common.utils.MenuFrom;
import com.yeejoin.amos.boot.biz.common.utils.TreeParser;
import com.yeejoin.amos.boot.module.common.api.dto.FireBrigadeResourceDto;
import com.yeejoin.amos.boot.module.common.api.dto.FireTeamCardDto;
import com.yeejoin.amos.boot.module.common.api.dto.FireTeamDto;
import com.yeejoin.amos.boot.module.common.api.dto.FireTeamListDto;
import com.yeejoin.amos.boot.module.common.api.entity.FireTeam;
import com.yeejoin.amos.boot.module.common.api.entity.OrgUsr;
import com.yeejoin.amos.boot.module.common.api.mapper.FireTeamMapper;
import com.yeejoin.amos.boot.module.common.api.mapper.OrgUsrMapper;
import com.yeejoin.amos.boot.module.common.api.service.IFireTeamService;
import com.yeejoin.amos.boot.module.common.biz.service.impl.OrgUsrServiceImpl;
import com.yeejoin.amos.boot.module.jcs.api.feign.EquipFeignClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -18,9 +25,11 @@ import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.annotation.Resource;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* 消防队伍 服务实现类
......@@ -37,6 +46,9 @@ public class FireTeamServiceImpl extends BaseService<FireTeamDto, FireTeam, Fire
@Autowired
EquipFeignClient equipFeignClient;
@Autowired
OrgUsrServiceImpl orgUsrService;
/**
* 获取监控大队列表
*
......@@ -80,4 +92,51 @@ public class FireTeamServiceImpl extends BaseService<FireTeamDto, FireTeam, Fire
public List<FireTeamDto> queryFireTeamForList(Boolean isDelete) {
return fireTeamMapper.listFireTeamDto(isDelete);
}
/**
* 根据列表构造队伍树
*
* @param columnMap 查询列表条件
* @return 队伍树
* @throws Exception
*/
public List<Menu> getTeamTree(Map<String, Object> columnMap) throws Exception {
Collection<FireTeam> list = this.listByMap(columnMap);
return TreeParser.getTree(null, list, FireTeam.class.getName(), "getSequenceNbr", 2, "getName",
"getParent");
}
/**
* 获取机场单位-队伍树
*
* @return
*/
public List<MenuFrom> getCompanyTeamTree() throws Exception {
MenuFrom root = new MenuFrom("-1", "消防队伍", null);
// 机场单位
List<OrgUsr> companyDeptList = orgUsrService.selectCompanyDepartmentMsg();
List<MenuFrom> companyDeptMenuList = Lists.newArrayList();
companyDeptList.forEach(o -> {
if (ValidationUtil.isEmpty(o.getParentId())) {
o.setParentId("-1");
}
companyDeptMenuList.add(new MenuFrom(o.getSequenceNbr().toString(), o.getBizOrgName(), o.getParentId()));
});
// 消防队伍
List<MenuFrom> teamMenuList = Lists.newArrayList();
List<FireTeamDto> teamList = this.queryFireTeamForList(false);
teamList.forEach(team -> {
if (ValidationUtil.isEmpty(team.getParent())) {
// 将单位下没有上级队伍的队伍直接挂在单位下(方便组成树结构)
team.setParent(team.getCompany());
}
teamMenuList.add(new MenuFrom(team.getSequenceNbr().toString(), team.getName(), team.getParent().toString()));
});
companyDeptMenuList.addAll(teamMenuList);
List<MenuFrom> menuList = TreeParser.getTreexin("-1", companyDeptMenuList, MenuFrom.class.getName(), "getKey",
1, "getName",
"getParentId");
root.setChildren(menuList);
return Lists.newArrayList(root);
}
}
......@@ -45,7 +45,7 @@
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.2</version>
<version>3.2.0</version>
</dependency>
<!-- <dependency>
<groupId>com.baomidou</groupId>
......
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