Commit e017e1ca authored by litengwei's avatar litengwei

Merge remote-tracking branch 'origin/develop_dl_plan6' into develop_dl_plan6

parents 73ad7afd 1cce20c6
...@@ -83,13 +83,24 @@ public class ControllerAop { ...@@ -83,13 +83,24 @@ public class ControllerAop {
// 不需要添加请求头的接口 // 不需要添加请求头的接口
String[] url = new String[]{"/api/user/save/curCompany", "/jcs/command/lookHtmlText", String[] url = new String[]{"/api/user/save/curCompany", "/jcs/command/lookHtmlText",
"/jcs/common/duty-person/findByDutyAreaId", "/tzs/wechatBack", "/tzs/elevator/getElevatorInfo", "/jcs/common/duty-person/findByDutyAreaId", "/tzs/wechatBack", "/tzs/elevator/getElevatorInfo",
"/openapi/bizToken/applyToken","/fire-patrol-report/download","/fire-patrol-report/allPage","/jcs/excel/export/QDSJ"}; "/openapi/bizToken/applyToken","/fire-patrol-report/download","/fire-patrol-report/allPage"};
// 获取请求路径 // 获取请求路径
for (String uri : url) { for (String uri : url) {
if (request.getRequestURI().indexOf(uri) != -1) { if (request.getRequestURI().indexOf(uri) != -1) {
return; return;
} }
} }
// 因前端组件下载时不通过url请求,导致RequestContext取不到值,所以针对这个接口特殊处理
if (request.getRequestURI().indexOf("/jcs/excel/export/QDSJ") != -1) {
String appKey = request.getHeader("appKey");
String product = request.getHeader("product");
String token = request.getHeader("token");
RequestContext.setAppKey(appKey);
RequestContext.setProduct(product);
RequestContext.setToken(token);
}
//TODO tyboot 框架拦截器已缓存数据 //TODO tyboot 框架拦截器已缓存数据
String token = RequestContext.getToken(); String token = RequestContext.getToken();
......
...@@ -137,7 +137,7 @@ public class OrgUsrExcelDto extends BaseDto { ...@@ -137,7 +137,7 @@ public class OrgUsrExcelDto extends BaseDto {
private String telephone; //联系电话 private String telephone; //联系电话
@ExcelProperty(value = "人员类型", index = 15) @ExcelProperty(value = "人员类型", index = 15)
@ExplicitConstraint(type = "DWRYLX", indexNum =15, sourceClass = CommonExplicitConstraint.class) //动态下拉内 @ExplicitConstraint( indexNum =15, type = "DLRYLX", sourceClass = CommonExplicitConstraint.class) //动态下拉内
private String peopleType; //人员类型 private String peopleType; //人员类型
@ExplicitConstraint(indexNum = 16, sourceClass = CommonExplicitConstraint.class, method = "getNations") //固定下拉内容 @ExplicitConstraint(indexNum = 16, sourceClass = CommonExplicitConstraint.class, method = "getNations") //固定下拉内容
......
...@@ -59,7 +59,7 @@ public class PeopleBasicInfoDto { ...@@ -59,7 +59,7 @@ public class PeopleBasicInfoDto {
private String certificatesNumber; private String certificatesNumber;
@ApiModelProperty(value = "出生日期") @ApiModelProperty(value = "出生日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
private Date birthdayTime; private Date birthdayTime;
@ApiModelProperty(value = "性别") @ApiModelProperty(value = "性别")
......
...@@ -3,14 +3,20 @@ package com.yeejoin.amos.boot.module.common.api.dto; ...@@ -3,14 +3,20 @@ package com.yeejoin.amos.boot.module.common.api.dto;
import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto; import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.module.common.api.excel.CommonExplicitConstraint; import com.yeejoin.amos.boot.module.common.api.excel.CommonExplicitConstraint;
import com.yeejoin.amos.boot.module.common.api.excel.ExplicitConstraint; import com.yeejoin.amos.boot.module.common.api.excel.ExplicitConstraint;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.util.ObjectUtils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -26,6 +32,7 @@ public class WaterResourceDto extends BaseDto { ...@@ -26,6 +32,7 @@ public class WaterResourceDto extends BaseDto {
@ExcelIgnore @ExcelIgnore
@ApiModelProperty(value = "机构/部门名称") @ApiModelProperty(value = "机构/部门名称")
private String bizOrgName; private String bizOrgName;
@ExcelIgnore @ExcelIgnore
@ApiModelProperty(value = "机构编码") @ApiModelProperty(value = "机构编码")
private String bizOrgCode; private String bizOrgCode;
...@@ -88,10 +95,14 @@ public class WaterResourceDto extends BaseDto { ...@@ -88,10 +95,14 @@ public class WaterResourceDto extends BaseDto {
@ExcelProperty(value = "建造日期", index = 7) @ExcelProperty(value = "建造日期", index = 7)
@ApiModelProperty(value = "建造日期") @ApiModelProperty(value = "建造日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date buildDate; private Date buildDate;
@ExcelProperty(value = "启用日期", index = 8) @ExcelProperty(value = "启用日期", index = 8)
@ApiModelProperty(value = "启用日期") @ApiModelProperty(value = "启用日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date enableDate; private Date enableDate;
@ExcelIgnore @ExcelIgnore
...@@ -152,7 +163,7 @@ public class WaterResourceDto extends BaseDto { ...@@ -152,7 +163,7 @@ public class WaterResourceDto extends BaseDto {
@ExcelProperty(value = "高度(cm)", index = 11) @ExcelProperty(value = "高度(cm)", index = 11)
@ApiModelProperty(value = "高度(cm)") @ApiModelProperty(value = "高度(cm)")
private float height; private Float height;
@ExcelIgnore @ExcelIgnore
@ApiModelProperty(value = "水源可用状态类别代码") @ApiModelProperty(value = "水源可用状态类别代码")
...@@ -182,15 +193,15 @@ public class WaterResourceDto extends BaseDto { ...@@ -182,15 +193,15 @@ public class WaterResourceDto extends BaseDto {
@ExcelProperty(value = "管网直径(cm)", index = 16) @ExcelProperty(value = "管网直径(cm)", index = 16)
@ApiModelProperty(value = "管网直径(cm)") @ApiModelProperty(value = "管网直径(cm)")
private float pipeDiameter; private Float pipeDiameter;
@ExcelProperty(value = "进水管直径(cm)", index = 17) @ExcelProperty(value = "进水管直径(cm)", index = 17)
@ApiModelProperty(value = "进水管直径(cm)") @ApiModelProperty(value = "进水管直径(cm)")
private float inletPipeDiameter; private Float inletPipeDiameter;
@ExcelProperty(value = "出水管直径(cm)", index = 18) @ExcelProperty(value = "出水管直径(cm)", index = 18)
@ApiModelProperty(value = "出水管直径(cm)") @ApiModelProperty(value = "出水管直径(cm)")
private float outletPipeDiameter; private Float outletPipeDiameter;
@ExcelProperty(value = "加水车道数量(个)", index = 19) @ExcelProperty(value = "加水车道数量(个)", index = 19)
@ApiModelProperty(value = "加水车道数量(个)") @ApiModelProperty(value = "加水车道数量(个)")
...@@ -255,11 +266,11 @@ public class WaterResourceDto extends BaseDto { ...@@ -255,11 +266,11 @@ public class WaterResourceDto extends BaseDto {
@ExcelProperty(value = "容积(m³)", index = 28) @ExcelProperty(value = "容积(m³)", index = 28)
@ApiModelProperty(value = "容积(m³)") @ApiModelProperty(value = "容积(m³)")
private float volume; private Float volume;
@ExcelProperty(value = "面积(㎡)", index = 29) @ExcelProperty(value = "面积(㎡)", index = 29)
@ApiModelProperty(value = "面积(㎡)") @ApiModelProperty(value = "面积(㎡)")
private float area; private Float area;
@ExcelProperty(value = "水质情况", index = 30) @ExcelProperty(value = "水质情况", index = 30)
@ApiModelProperty(value = "水质情况") @ApiModelProperty(value = "水质情况")
...@@ -286,11 +297,11 @@ public class WaterResourceDto extends BaseDto { ...@@ -286,11 +297,11 @@ public class WaterResourceDto extends BaseDto {
@ExcelProperty(value = "取水高度(cm)", index = 34) @ExcelProperty(value = "取水高度(cm)", index = 34)
@ApiModelProperty(value = "取水高度(cm)") @ApiModelProperty(value = "取水高度(cm)")
private float intakeHeight; private Float intakeHeight;
@ExcelProperty(value = "水源标高差(cm)", index = 35) @ExcelProperty(value = "水源标高差(cm)", index = 35)
@ApiModelProperty(value = "水源标高差(cm)") @ApiModelProperty(value = "水源标高差(cm)")
private float elevationDifference; private Float elevationDifference;
@ExcelProperty(value = "停车位置", index = 36) @ExcelProperty(value = "停车位置", index = 36)
@ApiModelProperty(value = "停车位置") @ApiModelProperty(value = "停车位置")
...@@ -374,11 +385,11 @@ public class WaterResourceDto extends BaseDto { ...@@ -374,11 +385,11 @@ public class WaterResourceDto extends BaseDto {
@ExcelProperty(value = "最低报警水位(m)", index = 43) @ExcelProperty(value = "最低报警水位(m)", index = 43)
@ApiModelProperty(value = "最低报警水位(m)") @ApiModelProperty(value = "最低报警水位(m)")
private float minWaterLevel; private Float minWaterLevel;
@ExcelProperty(value = "最高报警水位(m)", index = 44) @ExcelProperty(value = "最高报警水位(m)", index = 44)
@ApiModelProperty(value = "最高报警水位(m)") @ApiModelProperty(value = "最高报警水位(m)")
private float maxWaterLevel; private Float maxWaterLevel;
@ExcelIgnore @ExcelIgnore
@ApiModelProperty("水池液位显示装置id") @ApiModelProperty("水池液位显示装置id")
......
...@@ -31,7 +31,7 @@ public class WaterResourceCrane extends BaseEntity { ...@@ -31,7 +31,7 @@ public class WaterResourceCrane extends BaseEntity {
* 高度(cm) * 高度(cm)
*/ */
@TableField("height") @TableField("height")
private float height; private Float height;
/** /**
* 水源可用状态类别代码 * 水源可用状态类别代码
*/ */
...@@ -66,17 +66,17 @@ public class WaterResourceCrane extends BaseEntity { ...@@ -66,17 +66,17 @@ public class WaterResourceCrane extends BaseEntity {
* 官网直径(cm) * 官网直径(cm)
*/ */
@TableField("pipe_diameter") @TableField("pipe_diameter")
private float pipeDiameter; private Float pipeDiameter;
/** /**
* 进水管直径(cm) * 进水管直径(cm)
*/ */
@TableField("inlet_pipe_diameter") @TableField("inlet_pipe_diameter")
private float inletPipeDiameter; private Float inletPipeDiameter;
/** /**
* 出水管直径(cm) * 出水管直径(cm)
*/ */
@TableField("outlet_pipe_diameter") @TableField("outlet_pipe_diameter")
private float outletPipeDiameter; private Float outletPipeDiameter;
/** /**
* 加水车道数量(个) * 加水车道数量(个)
*/ */
......
package com.yeejoin.amos.boot.module.common.api.entity; package com.yeejoin.amos.boot.module.common.api.entity;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity; import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
...@@ -7,6 +8,8 @@ import com.yeejoin.amos.boot.biz.common.entity.BaseEntity; ...@@ -7,6 +8,8 @@ import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import org.apache.ibatis.type.JdbcType;
/** /**
* *
* *
...@@ -31,7 +34,7 @@ public class WaterResourceNatural extends BaseEntity { ...@@ -31,7 +34,7 @@ public class WaterResourceNatural extends BaseEntity {
* 高度(cm) * 高度(cm)
*/ */
@TableField("height") @TableField("height")
private float height; private Float height;
/** /**
* 水源类型代码 * 水源类型代码
*/ */
...@@ -46,12 +49,12 @@ public class WaterResourceNatural extends BaseEntity { ...@@ -46,12 +49,12 @@ public class WaterResourceNatural extends BaseEntity {
* 容积(m³) * 容积(m³)
*/ */
@TableField("volume") @TableField("volume")
private float volume; private Float volume;
/** /**
* 面积(㎡) * 面积(㎡)
*/ */
@TableField("area") @TableField("area")
private float area; private Float area;
/** /**
* 水质情况 * 水质情况
*/ */
......
...@@ -31,7 +31,7 @@ public class WaterResourcePool extends BaseEntity { ...@@ -31,7 +31,7 @@ public class WaterResourcePool extends BaseEntity {
* 容积(m³) * 容积(m³)
*/ */
@TableField("volume") @TableField("volume")
private float volume; private Float volume;
/** /**
* 水源可用状态类别代码 * 水源可用状态类别代码
*/ */
...@@ -56,12 +56,12 @@ public class WaterResourcePool extends BaseEntity { ...@@ -56,12 +56,12 @@ public class WaterResourcePool extends BaseEntity {
* 取水高度(cm) * 取水高度(cm)
*/ */
@TableField("intake_height") @TableField("intake_height")
private float intakeHeight; private Float intakeHeight;
/** /**
* 水源标高差(cm) * 水源标高差(cm)
*/ */
@TableField("elevation_difference") @TableField("elevation_difference")
private float elevationDifference; private Float elevationDifference;
/** /**
* 停车位置 * 停车位置
*/ */
...@@ -92,13 +92,13 @@ public class WaterResourcePool extends BaseEntity { ...@@ -92,13 +92,13 @@ public class WaterResourcePool extends BaseEntity {
* 最低报警水位 * 最低报警水位
*/ */
@TableField("min_water_level") @TableField("min_water_level")
private float minWaterLevel; private Float minWaterLevel;
/** /**
* 最高报警水位 * 最高报警水位
*/ */
@TableField("max_water_level") @TableField("max_water_level")
private float maxWaterLevel; private Float maxWaterLevel;
/** /**
* 水池液位显示装置id * 水池液位显示装置id
......
...@@ -142,6 +142,13 @@ public interface DynamicFormInstanceMapper extends BaseMapper<DynamicFormInstanc ...@@ -142,6 +142,13 @@ public interface DynamicFormInstanceMapper extends BaseMapper<DynamicFormInstanc
List<Map<String, Object>> getOrgPersonTelphone(List<Map<String, Object>> companyIds); List<Map<String, Object>> getOrgPersonTelphone(List<Map<String, Object>> companyIds);
List<Map<String, Object>> personInfoList(String groupCode, HashSet<String> userIdSet); List<Map<String, Object>> personInfoList(String groupCode, HashSet<String> userIdSet);
/**
* 查询运维人员
* @param page
* @return
*/
Page<Map<String, Object>> getPersonInfoByPage(Page page, @Param("bizOrgCode") String bizOrgCode);
} }
...@@ -51,5 +51,5 @@ public interface WaterResourceMapper extends BaseMapper<WaterResource> { ...@@ -51,5 +51,5 @@ public interface WaterResourceMapper extends BaseMapper<WaterResource> {
List<Map<String, Object>> getWaterTypeByBizOrgCode(String bizOrgCode); List<Map<String, Object>> getWaterTypeByBizOrgCode(String bizOrgCode);
Page<WaterResourceDto> pageByDefect(Page<WaterResourceDto> page, @Param("nameOrCode") String nameOrCode, @Param("bizOrgCode") String bizOrgCode); Page<WaterResourceDto> pageByDefect(Page<WaterResourceDto> page, @Param("nameOrCode") String nameOrCode, @Param("bizOrgCode") String bizOrgCode, @Param("systemName") String systemName);
} }
...@@ -32,7 +32,7 @@ public interface IDutyCommonService { ...@@ -32,7 +32,7 @@ public interface IDutyCommonService {
* @return * @return
* @throws ParseException * @throws ParseException
*/ */
IPage<Map<String, Object>> pageListDetail(int current, int size, String beginDate, String endDate) throws ParseException; IPage<Map<String, Object>> pageListDetail(int current, int size, String beginDate, String endDate, String bizOrgCode) throws ParseException;
/** /**
* 值班明细 * 值班明细
......
...@@ -594,5 +594,33 @@ WHERE ...@@ -594,5 +594,33 @@ WHERE
GROUP BY GROUP BY
i.instance_id i.instance_id
</select> </select>
<select id="getPersonInfoByPage" resultType="java.util.Map">
SELECT
ou.sequence_nbr as id,
ou.biz_org_name as userName,
IFNULL( MAX( CASE WHEN cfi.field_code = 'telephone' THEN field_value END ), '' ) AS telephone,
IF(MAX( CASE WHEN cfi.field_code = 'postTypeName' THEN field_value END ) = '', NULL, MAX( CASE WHEN cfi.field_code = 'postTypeName' THEN field_value END )) AS postTypeName,
IFNULL( MAX( CASE WHEN cfi.field_code = 'personImg' THEN field_value END ), '' ) AS personImg,
IFNULL( MAX( CASE WHEN cfi.field_code = 'peopleType' THEN field_value END ), '' ) AS peopleType
FROM
(
SELECT
IFNULL( max( CASE WHEN fi.field_code = 'userId' THEN fi.field_value END ), ps.instance_id ) AS id
FROM
cb_duty_person_shift ps
LEFT JOIN cb_dynamic_form_instance fi ON fi.instance_id = ps.instance_id
WHERE
ps.duty_date = CURRENT_DATE
GROUP BY
fi.instance_id
) a
LEFT JOIN cb_org_usr ou ON ou.sequence_nbr = a.id
LEFT JOIN cb_dynamic_form_instance cfi ON ou.sequence_nbr = cfi.instance_id
where ou.biz_org_code like concat(#{bizOrgCode}, '%')
GROUP BY
a.id
HAVING
peopleType = 1602
</select>
</mapper> </mapper>
...@@ -182,7 +182,14 @@ ...@@ -182,7 +182,14 @@
<select id="pageByDefect" resultType="com.yeejoin.amos.boot.module.common.api.dto.WaterResourceDto"> <select id="pageByDefect" resultType="com.yeejoin.amos.boot.module.common.api.dto.WaterResourceDto">
select * from cb_water_resource where is_delete = 1 select * from cb_water_resource where is_delete = 1
<if test="nameOrCode != null and nameOrCode != ''">and (name like concat('%', #{nameOrCode}, '%') or equip_code like concat('%', #{nameOrCode}, '%'))</if> <if test="nameOrCode != null and nameOrCode != ''">
AND (
name like concat('%', #{nameOrCode}, '%') or equip_code like concat('%', #{nameOrCode}, '%')
)
</if>
<if test="systemName != null and systemName != ''">
AND belong_fighting_system like concat('%', #{systemName}, '%')
</if>
<if test="bizOrgCode != null and bizOrgCode != ''">and biz_org_code like concat( #{bizOrgCode}, '%')</if> <if test="bizOrgCode != null and bizOrgCode != ''">and biz_org_code like concat( #{bizOrgCode}, '%')</if>
order by cb_water_resource.rec_date desc order by cb_water_resource.rec_date desc
</select> </select>
......
...@@ -223,4 +223,7 @@ public class EquipmentSpecificAlarmLog extends BaseEntity { ...@@ -223,4 +223,7 @@ public class EquipmentSpecificAlarmLog extends BaseEntity {
@ApiModelProperty(value = "是否是缺陷提交确认", notes = "是否是缺陷提交确认") @ApiModelProperty(value = "是否是缺陷提交确认", notes = "是否是缺陷提交确认")
@TableField(exist = false) @TableField(exist = false)
private boolean addDefect; private boolean addDefect;
@TableField(value = "defect_batch_id")
private String defectBatchId;
} }
package com.yeejoin.equipmanage.common.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.equipmanage.common.entity.publics.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @author DELL
*/
@Data
@TableName("wl_form_group_column_equip")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "wl_form_group_column_equip对象", description = "分组表")
public class FormGroupColumnEquip extends BaseEntity {
@ApiModelProperty(value = "字段名")
@TableField("field_name")
private String fieldName;
@ApiModelProperty(value = "中文名")
@TableField("field_label")
private String fieldLabel;
@ApiModelProperty(value = "数据类型:文本,数字,枚举,日期")
@TableField("data_type")
private String dataType;
@ApiModelProperty(value = "字段分组主键")
@TableField("group_id")
private Long groupId;
@ApiModelProperty(value = "查询策略;全等,模糊,区间")
@TableField("query_strategy")
private String queryStrategy;
@ApiModelProperty(value = "不能为空")
@TableField("not_null")
private Boolean notNull;
@ApiModelProperty(value = "分组编号")
@TableField("group_code")
private String groupCode;
@ApiModelProperty(value = "创建者")
@TableField("creator_id")
private Long creatorId;
}
package com.yeejoin.equipmanage.common.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.equipmanage.common.entity.publics.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @author DELL
*/
@Data
@TableName("wl_form_group_equip")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "wl_form_group_equip对象", description = "分组表")
public class FormGroupEquip extends BaseEntity {
@ApiModelProperty(value = "分组名称")
@TableField("group_name")
private String groupName;
@ApiModelProperty(value = "分组编号")
@TableField("group_code")
private String groupCode;
@ApiModelProperty(value = "分组类型(点位图过滤用)")
@TableField("group_type")
private String groupType;
@ApiModelProperty(value = "允许的操作(逗号分隔ids)")
@TableField("allow_operation")
private String allowOperation;
@ApiModelProperty(value = "创建者")
@TableField("creator_id")
private Long creatorId;
}
package com.yeejoin.equipmanage.common.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.equipmanage.common.entity.publics.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @author DELL
*/
@Data
@TableName("wl_form_instance_equip")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "wl_form_instance_equip", description = "实例表")
public class FormInstanceEquip extends BaseEntity {
@ApiModelProperty(value = "字段名")
@TableField("field_name")
private String fieldName;
@ApiModelProperty(value = "中文名")
@TableField("field_label")
private String fieldLabel;
@ApiModelProperty(value = "数据类型:文本,数字,枚举,日期")
@TableField("data_type")
private String dataType;
@ApiModelProperty(value = "字段分组主键")
@TableField("group_id")
private Long groupId;
@ApiModelProperty(value = "动态配置字段的值")
@TableField("field_value")
private String fieldValue;
@ApiModelProperty(value = "分组类型(冗余字段便于查询)")
@TableField("group_type")
private String groupType;
@ApiModelProperty(value = "设备实例id")
@TableField("instance_id")
private Long instanceId;
@ApiModelProperty(value = "字段定义信息的主键")
@TableField("group_column_id")
private Long groupColumnId;
@ApiModelProperty(value = "查询策略;全等,模糊,区间")
@TableField("query_strategy")
private String queryStrategy;
@ApiModelProperty(value = "分组编号")
@TableField("group_code")
private String groupCode;
@ApiModelProperty(value = "创建者")
@TableField(value = "creator_id",fill = FieldFill.INSERT_UPDATE)
private Long creatorId;
}
...@@ -9,7 +9,7 @@ import lombok.Data; ...@@ -9,7 +9,7 @@ import lombok.Data;
*/ */
@Data @Data
@ApiModel(value = "FormGroupColumnDto对象", description = "分组Dto对象") @ApiModel(value = "FormGroupColumnDto对象", description = "分组Dto对象")
public class FormGroupColumnDto { public class FormGroupColumnEquipDto {
@ApiModelProperty(value = "字段名") @ApiModelProperty(value = "字段名")
private String fieldName; private String fieldName;
......
package com.yeejoin.amos.boot.module.common.biz.controller; package com.yeejoin.amos.boot.module.common.biz.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.controller.BaseController; import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.common.api.dto.DutyPersonDto; import com.yeejoin.amos.boot.module.common.api.dto.DutyPersonDto;
import com.yeejoin.amos.boot.module.common.api.service.IDutyPersonService; import com.yeejoin.amos.boot.module.common.api.service.IDutyPersonService;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.commons.lang3.time.DateFormatUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -68,7 +71,12 @@ public class DutyPersonController extends BaseController { ...@@ -68,7 +71,12 @@ public class DutyPersonController extends BaseController {
beginDate = date; beginDate = date;
endDate = date; endDate = date;
} }
return ResponseHelper.buildResponse(iDutyPersonService.pageListDetail(current, size, beginDate, endDate)); ReginParams selectedOrgInfo = getSelectedOrgInfo();
String bizOrgCode = ObjectUtils.isEmpty(selectedOrgInfo) || ObjectUtils.isEmpty(selectedOrgInfo.getPersonIdentity()) ? "" : selectedOrgInfo.getPersonIdentity().getBizOrgCode();
if (StringUtils.isEmpty(bizOrgCode)) {
return ResponseHelper.buildResponse(null);
}
return ResponseHelper.buildResponse(iDutyPersonService.pageListDetail(current, size, beginDate, endDate, bizOrgCode));
} }
/** /**
......
...@@ -487,7 +487,8 @@ public class WaterResourceController extends BaseController { ...@@ -487,7 +487,8 @@ public class WaterResourceController extends BaseController {
public ResponseModel<Page<WaterResourceDto>> pageByDefect(@RequestParam(value = "pageNum") int pageNum, public ResponseModel<Page<WaterResourceDto>> pageByDefect(@RequestParam(value = "pageNum") int pageNum,
@RequestParam(value = "pageSize") int pageSize, @RequestParam(value = "pageSize") int pageSize,
@RequestParam(value = "nameOrCode", required = false) String nameOrCode, @RequestParam(value = "nameOrCode", required = false) String nameOrCode,
@RequestParam(value = "bizOrgCode", required = false) String bizOrgCode) { @RequestParam(value = "bizOrgCode", required = false) String bizOrgCode,
@RequestParam(value = "systemName", required = false) String systemName) {
ReginParams reginParams = getSelectedOrgInfo(); ReginParams reginParams = getSelectedOrgInfo();
if (StringUtils.isEmpty(bizOrgCode)) { if (StringUtils.isEmpty(bizOrgCode)) {
if (ObjectUtils.isEmpty(reginParams) || ObjectUtils.isEmpty(reginParams.getPersonIdentity()) || StringUtils.isEmpty(reginParams.getPersonIdentity().getBizOrgCode())) { if (ObjectUtils.isEmpty(reginParams) || ObjectUtils.isEmpty(reginParams.getPersonIdentity()) || StringUtils.isEmpty(reginParams.getPersonIdentity().getBizOrgCode())) {
...@@ -498,7 +499,7 @@ public class WaterResourceController extends BaseController { ...@@ -498,7 +499,7 @@ public class WaterResourceController extends BaseController {
Page<WaterResourceDto> page = new Page<>(); Page<WaterResourceDto> page = new Page<>();
page.setCurrent(pageNum); page.setCurrent(pageNum);
page.setSize(pageSize); page.setSize(pageSize);
Page<WaterResourceDto> waterResourceDtoPage = waterResourceServiceImpl.pageByDefect(page, nameOrCode, bizOrgCode); Page<WaterResourceDto> waterResourceDtoPage = waterResourceServiceImpl.pageByDefect(page, nameOrCode, bizOrgCode, systemName);
return ResponseHelper.buildResponse(waterResourceDtoPage); return ResponseHelper.buildResponse(waterResourceDtoPage);
} }
......
...@@ -19,8 +19,10 @@ import java.util.stream.Stream; ...@@ -19,8 +19,10 @@ import java.util.stream.Stream;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary; import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.IDataDictionaryService; import com.yeejoin.amos.boot.biz.common.service.IDataDictionaryService;
import com.yeejoin.amos.boot.module.common.api.mapper.DynamicFormInstanceMapper;
import com.yeejoin.amos.boot.module.common.biz.enums.DataDictionaryTypeEnum; import com.yeejoin.amos.boot.module.common.biz.enums.DataDictionaryTypeEnum;
import com.yeejoin.amos.boot.module.common.biz.enums.DynamicGroupCodeEnum; import com.yeejoin.amos.boot.module.common.biz.enums.DynamicGroupCodeEnum;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
...@@ -88,6 +90,8 @@ public class DutyCommonServiceImpl implements IDutyCommonService { ...@@ -88,6 +90,8 @@ public class DutyCommonServiceImpl implements IDutyCommonService {
@Autowired @Autowired
IDataDictionaryService dataDictionaryService; IDataDictionaryService dataDictionaryService;
@Autowired
DynamicFormInstanceMapper dynamicFormInstanceMapper;
/** /**
* 每天单个班次执勤人数全部小于等于3人 * 每天单个班次执勤人数全部小于等于3人
...@@ -115,33 +119,34 @@ public class DutyCommonServiceImpl implements IDutyCommonService { ...@@ -115,33 +119,34 @@ public class DutyCommonServiceImpl implements IDutyCommonService {
} }
@Override @Override
public IPage<Map<String, Object>> pageListDetail(int current, int size, String beginDate, String endDate) public IPage<Map<String, Object>> pageListDetail(int current, int size, String beginDate, String endDate, String bizOrgCode)
throws ParseException { throws ParseException {
// 1.已column为准 进行返回 // // 1.已column为准 进行返回
String groupCode = this.getGroupCode(); // String groupCode = this.getGroupCode();
// 不存在值班数据则不查找 修改sql 方法去除 by kongfm 2021-09-14 // // 不存在值班数据则不查找 修改sql 方法去除 by kongfm 2021-09-14
IPage<Map<String, Object>> iPage = dynamicFormInstanceService.pageListNew(current, size, groupCode, beginDate, endDate); // IPage<Map<String, Object>> iPage = dynamicFormInstanceService.pageListNew(current, size, groupCode, beginDate, endDate);
List<Map<String, Object>> records = iPage.getRecords(); // List<Map<String, Object>> records = iPage.getRecords();
HashSet<String> userIdSet = new HashSet<>(); // HashSet<String> userIdSet = new HashSet<>();
if (!CollectionUtils.isEmpty(records)) { // if (!CollectionUtils.isEmpty(records)) {
records.forEach(x -> { // records.forEach(x -> {
userIdSet.add(x.get("userId").toString()); // userIdSet.add(x.get("userId").toString());
}); // });
} // }
// 获取人员详细信息 // // 获取人员详细信息
List<Map<String, Object>> personInfoList = dynamicFormInstanceService.personInfoList(DynamicGroupCodeEnum.JCS_PERSON.getCode(), userIdSet); // List<Map<String, Object>> personInfoList = dynamicFormInstanceService.personInfoList(DynamicGroupCodeEnum.JCS_PERSON.getCode(), userIdSet);
if (!CollectionUtils.isEmpty(personInfoList)) { // if (!CollectionUtils.isEmpty(personInfoList)) {
Map<String, List<Map<String, Object>>> listMap = personInfoList.stream().collect(Collectors.groupingBy((Map m) -> String.valueOf(m.get("userId")))); // Map<String, List<Map<String, Object>>> listMap = personInfoList.stream().collect(Collectors.groupingBy((Map m) -> String.valueOf(m.get("userId"))));
records.forEach(x -> { // records.forEach(x -> {
String userId = x.get("userId").toString(); // String userId = x.get("userId").toString();
List<Map<String, Object>> list = listMap.get(userId); // List<Map<String, Object>> list = listMap.get(userId);
if (!CollectionUtils.isEmpty(list)) { // if (!CollectionUtils.isEmpty(list)) {
list.forEach(x::putAll); // list.forEach(x::putAll);
} // }
}); // });
iPage.setRecords(records); // iPage.setRecords(records);
} // }
return iPage; // return iPage;
return dynamicFormInstanceMapper.getPersonInfoByPage(new Page(current, size), bizOrgCode);
} }
private void fillDutyShiftData(String beginDate, String endDate, Map<String, Object> m) throws ParseException { private void fillDutyShiftData(String beginDate, String endDate, Map<String, Object> m) throws ParseException {
......
...@@ -2995,7 +2995,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -2995,7 +2995,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
peopleInfoDto.getFirefighters().setSequenceNbr(orgUsrDto.getSequenceNbr().toString()); peopleInfoDto.getFirefighters().setSequenceNbr(orgUsrDto.getSequenceNbr().toString());
} }
if (peopleInfoDto.getFirefighters() != null && "2".equals(peopleInfoDto.getFirefighters().getPeopleType())) { if (peopleInfoDto.getFirefighters() != null && "1601".equals(peopleInfoDto.getFirefighters().getPeopleType())) {
// 3.同步保存cb_firefighters消防人员基础信息 // 3.同步保存cb_firefighters消防人员基础信息
saveFirefighters(peopleInfoDto); saveFirefighters(peopleInfoDto);
} else { } else {
...@@ -3087,6 +3087,10 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -3087,6 +3087,10 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
} }
DynamicFormInstance dynamicFormInstance = new DynamicFormInstance(); DynamicFormInstance dynamicFormInstance = new DynamicFormInstance();
BeanUtils.copyProperties(dynamicFormInstanceDto, dynamicFormInstance); BeanUtils.copyProperties(dynamicFormInstanceDto, dynamicFormInstance);
// 修改bug 8364
if ("gender".equals(dynamicFormInstance.getFieldCode())){
dynamicFormInstance.setFieldValueLabel("346".equals(String.valueOf(dynamicFormInstance.getFieldValue()))?"男":"女");
}
dynamicFormInstancelist.add(dynamicFormInstance); dynamicFormInstancelist.add(dynamicFormInstance);
}); });
...@@ -3220,7 +3224,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -3220,7 +3224,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
peopleBasicInfoDto.setCompanyName(orgUsr.getParentName()); peopleBasicInfoDto.setCompanyName(orgUsr.getParentName());
} }
if ("2".equals(peopleBasicInfoDto.getPeopleType())) { if ("1601".equals(peopleBasicInfoDto.getPeopleType())) {
QueryWrapper<Firefighters> firefightersQueryWrapper = new QueryWrapper<>(); QueryWrapper<Firefighters> firefightersQueryWrapper = new QueryWrapper<>();
Firefighters firefighters = iFirefightersService.getOne(firefightersQueryWrapper.eq("org_usr_id", id).eq("is_delete", 0)); Firefighters firefighters = iFirefightersService.getOne(firefightersQueryWrapper.eq("org_usr_id", id).eq("is_delete", 0));
if (!ObjectUtils.isEmpty(firefighters)) { if (!ObjectUtils.isEmpty(firefighters)) {
...@@ -3253,7 +3257,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -3253,7 +3257,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public String deletePeopleById(Long id, String type, AgencyUserModel user) { public String deletePeopleById(Long id, String type, AgencyUserModel user) {
if ("2".equals(type)) { if ("1601".equals(type)) {
QueryWrapper<Firefighters> firefightersQueryWrapper = new QueryWrapper<>(); QueryWrapper<Firefighters> firefightersQueryWrapper = new QueryWrapper<>();
Firefighters firefighters = iFirefightersService.getOne(firefightersQueryWrapper.eq("org_usr_id", id).eq("is_delete", 0)); Firefighters firefighters = iFirefightersService.getOne(firefightersQueryWrapper.eq("org_usr_id", id).eq("is_delete", 0));
Long firefightersSequenceNbr = firefighters.getSequenceNbr(); Long firefightersSequenceNbr = firefighters.getSequenceNbr();
...@@ -3315,7 +3319,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -3315,7 +3319,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
deleteFirefightersPost(String.valueOf(id)); deleteFirefightersPost(String.valueOf(id));
// 3.根据type是否删除消防人员 // 3.根据type是否删除消防人员
if ("2".equals(type)) { if ("1601".equals(type)) {
deleteFirefighters(id); deleteFirefighters(id);
} }
......
...@@ -97,8 +97,9 @@ public class WaterResourceServiceImpl extends BaseService<WaterResourceDto, Wate ...@@ -97,8 +97,9 @@ public class WaterResourceServiceImpl extends BaseService<WaterResourceDto, Wate
*/ */
public Page<WaterResourceDto> pageByDefect(Page<WaterResourceDto> page, public Page<WaterResourceDto> pageByDefect(Page<WaterResourceDto> page,
String nameOrCode, String nameOrCode,
String bizOrgCode) { String bizOrgCode,
return this.waterResourceMapper.pageByDefect(page, nameOrCode, bizOrgCode); String systemName) {
return this.waterResourceMapper.pageByDefect(page, nameOrCode, bizOrgCode, systemName);
} }
/** /**
......
...@@ -12,6 +12,7 @@ import com.yeejoin.equipmanage.service.IEquipmentSpecificAlarmService; ...@@ -12,6 +12,7 @@ import com.yeejoin.equipmanage.service.IEquipmentSpecificAlarmService;
import com.yeejoin.equipmanage.service.IFireFightingSystemService; import com.yeejoin.equipmanage.service.IFireFightingSystemService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
...@@ -22,7 +23,6 @@ import org.typroject.tyboot.core.foundation.enumeration.UserType; ...@@ -22,7 +23,6 @@ import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest; import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.text.ParseException; import java.text.ParseException;
...@@ -183,6 +183,7 @@ public class ConfigureController extends AbstractBaseController { ...@@ -183,6 +183,7 @@ public class ConfigureController extends AbstractBaseController {
if (StringUtils.isEmpty(bizOrgCode)) { if (StringUtils.isEmpty(bizOrgCode)) {
return CommonResponseUtil.success(null); return CommonResponseUtil.success(null);
} }
Page page = new Page<>(commonPageable.getPageNumber(), commonPageable.getPageSize()); Page page = new Page<>(commonPageable.getPageNumber(), commonPageable.getPageSize());
Page<Map<String, Object>> fireCarInfoByWL = fireFightingSystemMapper.getFireCarInfoByWL(page, bizOrgCode); Page<Map<String, Object>> fireCarInfoByWL = fireFightingSystemMapper.getFireCarInfoByWL(page, bizOrgCode);
if (!CollectionUtils.isEmpty(fireCarInfoByWL.getRecords())) { if (!CollectionUtils.isEmpty(fireCarInfoByWL.getRecords())) {
...@@ -215,7 +216,7 @@ public class ConfigureController extends AbstractBaseController { ...@@ -215,7 +216,7 @@ public class ConfigureController extends AbstractBaseController {
} }
if (item.containsKey("carStateDate") && !ObjectUtils.isEmpty(item.get("carStateDate"))) { if (item.containsKey("carStateDate") && !ObjectUtils.isEmpty(item.get("carStateDate"))) {
try { try {
Date carStateDate = DateUtils.dateParse(item.get("carStateDate").toString(), "yyyy-MM-dd'T'HH:mm:ss"); Date carStateDate = DateUtils.dateParse(item.get("carStateDate").toString(), "yyyy-MM-dd HH:mm:ss");
String s = DateUtils.dateFormat(carStateDate, DateUtils.DATE_TIME_PATTERN); String s = DateUtils.dateFormat(carStateDate, DateUtils.DATE_TIME_PATTERN);
item.put("carStateDate", s); item.put("carStateDate", s);
} catch (ParseException e) { } catch (ParseException e) {
...@@ -718,4 +719,70 @@ public class ConfigureController extends AbstractBaseController { ...@@ -718,4 +719,70 @@ public class ConfigureController extends AbstractBaseController {
} }
@PersonIdentify
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getEquipExpiryStatistics")
@ApiOperation(httpMethod = "GET", value = "4小概览-韶山-临期设备统计", notes = "4小概览-韶山-临期设备统计")
public ResponseModel getEquipExpiryStatistics(@RequestParam(value = "bizOrgCode", required = false) String bizOrgCode,
@ApiParam("临期天数-近多少天") @RequestParam(value = "expiryDayNum", required = false) Integer expiryDayNum) {
if (ObjectUtils.isEmpty(bizOrgCode)) {
ReginParams reginParams = getSelectedOrgInfo();
ReginParams.PersonIdentity personIdentity = reginParams.getPersonIdentity();
if (!ValidationUtil.isEmpty(personIdentity)) {
bizOrgCode = personIdentity.getBizOrgCode();
}
}
if (ObjectUtils.isEmpty(bizOrgCode)) {
return CommonResponseUtil.success(null);
}
expiryDayNum = Objects.isNull(expiryDayNum) ? 60 : expiryDayNum;
return CommonResponseUtil.success(iFireFightingSystemService.getEquipExpiryStatistics(bizOrgCode, expiryDayNum));
}
@PersonIdentify
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getEquipExpiryListByPage")
@ApiOperation(httpMethod = "GET", value = "4小概览-韶山-临期设备列表", notes = "4小概览-韶山-临期设备列表")
public ResponseModel getEquipExpiryListByPage(@RequestParam(value = "bizOrgCode", required = false) String bizOrgCode,
@ApiParam("临期天数-近多少天") @RequestParam(value = "expiryDayNum", required = false) Integer expiryDayNum,
@RequestParam(value = "pageSize") Integer pageSize,
@RequestParam(value = "pageNum") Integer pageNum) {
if (ObjectUtils.isEmpty(bizOrgCode)) {
ReginParams reginParams = getSelectedOrgInfo();
ReginParams.PersonIdentity personIdentity = reginParams.getPersonIdentity();
if (!ValidationUtil.isEmpty(personIdentity)) {
bizOrgCode = personIdentity.getBizOrgCode();
}
}
if (ObjectUtils.isEmpty(bizOrgCode)) {
return CommonResponseUtil.success(null);
}
expiryDayNum = Objects.isNull(expiryDayNum) ? 60 : expiryDayNum;
Page page = new Page(pageNum, pageSize);
return CommonResponseUtil.success(iFireFightingSystemService.getEquipExpiryListByPage(bizOrgCode, expiryDayNum, page));
}
@PersonIdentify
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getStockEquipStatistics")
@ApiOperation(httpMethod = "GET", value = "4小概览-韶山-报废设备统计", notes = "4小概览-韶山-报废设备统计")
public ResponseModel getStockEquipStatistics(@RequestParam(value = "bizOrgCode", required = false) String bizOrgCode) {
if (ObjectUtils.isEmpty(bizOrgCode)) {
ReginParams reginParams = getSelectedOrgInfo();
ReginParams.PersonIdentity personIdentity = reginParams.getPersonIdentity();
if (!ValidationUtil.isEmpty(personIdentity)) {
bizOrgCode = personIdentity.getBizOrgCode();
}
}
if (ObjectUtils.isEmpty(bizOrgCode)) {
return CommonResponseUtil.success(null);
}
// 重复列表组件只支持分页,所以组装数据
Page page = new Page(1, 4);
page.setTotal(4);
page.setRecords(iFireFightingSystemService.getStockEquipStatistics(bizOrgCode));
return CommonResponseUtil.success(page);
}
} }
...@@ -5,7 +5,9 @@ import com.alibaba.fastjson.JSONObject; ...@@ -5,7 +5,9 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecificAlarmLog; import com.yeejoin.equipmanage.common.entity.EquipmentSpecificAlarmLog;
import com.yeejoin.equipmanage.common.entity.MonitorEvent; import com.yeejoin.equipmanage.common.entity.MonitorEvent;
import com.yeejoin.equipmanage.common.entity.publics.CommonResponse;
import com.yeejoin.equipmanage.common.entity.vo.IdxBizDefectVo; import com.yeejoin.equipmanage.common.entity.vo.IdxBizDefectVo;
import com.yeejoin.equipmanage.common.utils.CommonResponseUtil;
import com.yeejoin.equipmanage.fegin.IdxFeign; import com.yeejoin.equipmanage.fegin.IdxFeign;
import com.yeejoin.equipmanage.mapper.EquipmentSpecificAlarmLogMapper; import com.yeejoin.equipmanage.mapper.EquipmentSpecificAlarmLogMapper;
import com.yeejoin.equipmanage.service.IConfirmAlarmService; import com.yeejoin.equipmanage.service.IConfirmAlarmService;
...@@ -52,10 +54,10 @@ public class ConfirmAlarmController extends AbstractBaseController { ...@@ -52,10 +54,10 @@ public class ConfirmAlarmController extends AbstractBaseController {
@PostMapping(value = "/confirmAlam") @PostMapping(value = "/confirmAlam")
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "保存") @ApiOperation(value = "保存")
public void confirmAlam(@RequestBody EquipmentSpecificAlarmLog ent) { public ResponseModel confirmAlam(@RequestBody EquipmentSpecificAlarmLog ent) {
String appKey = getAppKey(); String appKey = getAppKey();
String product = getProduct(); String product = getProduct();
iConfirmAlarmService.confirmAlam(ent, appKey, product, getToken(), getUserId()); return CommonResponseUtil.success(iConfirmAlarmService.confirmAlam(ent, appKey, product, getToken(), getUserId()));
} }
@PostMapping(value = "/addConfirmAlam") @PostMapping(value = "/addConfirmAlam")
...@@ -64,7 +66,6 @@ public class ConfirmAlarmController extends AbstractBaseController { ...@@ -64,7 +66,6 @@ public class ConfirmAlarmController extends AbstractBaseController {
public void addConfirmAlam(@RequestBody EquipmentSpecificAlarmLog ent) { public void addConfirmAlam(@RequestBody EquipmentSpecificAlarmLog ent) {
String appKey = getAppKey(); String appKey = getAppKey();
String product = getProduct(); String product = getProduct();
String token = getToken();
iConfirmAlarmService.confirmAlam(ent, appKey, product, getToken(), getUserId()); iConfirmAlarmService.confirmAlam(ent, appKey, product, getToken(), getUserId());
} }
...@@ -110,7 +111,7 @@ public class ConfirmAlarmController extends AbstractBaseController { ...@@ -110,7 +111,7 @@ public class ConfirmAlarmController extends AbstractBaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "缺陷处理状态") @ApiOperation(value = "缺陷处理状态")
public IdxBizDefectVo getDefectStatus(@PathVariable String id) { public IdxBizDefectVo getDefectStatus(@PathVariable String id) {
ResponseModel<JSONObject> responseModel = idxFeign.queryDefectByAlarmLogId(id); ResponseModel<JSONObject> responseModel = idxFeign.queryDefectByBatchId(id);
JSONObject result = responseModel.getResult(); JSONObject result = responseModel.getResult();
IdxBizDefectVo vo = JSON.parseObject(JSON.toJSONString(result), IdxBizDefectVo.class); IdxBizDefectVo vo = JSON.parseObject(JSON.toJSONString(result), IdxBizDefectVo.class);
return vo; return vo;
......
...@@ -182,10 +182,10 @@ public class EquipmentAlarmController extends AbstractBaseController { ...@@ -182,10 +182,10 @@ public class EquipmentAlarmController extends AbstractBaseController {
* *
* @return * @return
*/ */
@RequestMapping(value = "/listPage", method = RequestMethod.GET) @RequestMapping(value = "/allList", method = RequestMethod.GET)
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", produces = "application/json;charset=UTF-8", notes = "列表分页查询") @ApiOperation(httpMethod = "GET", value = "列表分页查询", produces = "application/json;charset=UTF-8", notes = "列表分页查询")
public ResponseModel list(@RequestParam(value = "beginDate", required = false) String beginDate, public ResponseModel allList(@RequestParam(value = "beginDate", required = false) String beginDate,
@RequestParam(value = "endDate", required = false) String endDate, @RequestParam(value = "endDate", required = false) String endDate,
@RequestParam(value = "warehouseStructureName", required = false) String warehouseStructureName, @RequestParam(value = "warehouseStructureName", required = false) String warehouseStructureName,
@RequestParam(value = "equipCode", required = false) String equipCode, @RequestParam(value = "equipCode", required = false) String equipCode,
...@@ -268,7 +268,7 @@ public class EquipmentAlarmController extends AbstractBaseController { ...@@ -268,7 +268,7 @@ public class EquipmentAlarmController extends AbstractBaseController {
request13.setValue(""); request13.setValue("");
} }
CommonPageInfoParam param = CommonPageParamUtil.fillCommonPageInfoParam(queryRequests, commonPageable); CommonPageInfoParam param = CommonPageParamUtil.fillCommonPageInfoParam(queryRequests, commonPageable);
Page<Map<String, Object>> list = iEquipmentSpecificAlarmService.pageList(param); List<Map<String, Object>> list = iEquipmentSpecificAlarmService.allList(param);
return CommonResponseUtil.success(list); return CommonResponseUtil.success(list);
} }
......
...@@ -438,10 +438,11 @@ public class FireFightingSystemController extends AbstractBaseController { ...@@ -438,10 +438,11 @@ public class FireFightingSystemController extends AbstractBaseController {
QueryWrapper<EquipmentCategory> equipmentCategoryQueryWrapper = new QueryWrapper<>(); QueryWrapper<EquipmentCategory> equipmentCategoryQueryWrapper = new QueryWrapper<>();
equipmentCategoryQueryWrapper.eq("code", equipTypeAmountPage.getEquipmentClassificationCode()); equipmentCategoryQueryWrapper.eq("code", equipTypeAmountPage.getEquipmentClassificationCode());
equipmentCategoryQueryWrapper.eq("industry_code", equipTypeAmountPage.getIndustryCode()); equipmentCategoryQueryWrapper.eq("industry_code", equipTypeAmountPage.getIndustryCode());
EquipmentCategory equipmentCategory = equipmentCategoryService.getOne(equipmentCategoryQueryWrapper); List<EquipmentCategory> equipmentCategoryList = equipmentCategoryService.list(equipmentCategoryQueryWrapper);
if (equipmentCategory == null) { if (CollectionUtils.isEmpty(equipmentCategoryList)) {
throw new RuntimeException("装备定义code有误"); throw new RuntimeException("装备定义code有误");
} }
EquipmentCategory equipmentCategory = equipmentCategoryList.get(0);
int inhierarchy = 1; int inhierarchy = 1;
for (int i = 0; i < result.length + 1; i++) { for (int i = 0; i < result.length + 1; i++) {
//进来先判断是否默认就是空,如果为空第一层 //进来先判断是否默认就是空,如果为空第一层
...@@ -459,7 +460,7 @@ public class FireFightingSystemController extends AbstractBaseController { ...@@ -459,7 +460,7 @@ public class FireFightingSystemController extends AbstractBaseController {
} }
} }
return fireFightingSystemService.getColaCategoryAmountEquList(inhierarchy, equipTypeAmountPage.getEquipmentClassificationCode().substring(0, inhierarchy), equipTypeAmountPage); return fireFightingSystemService.getColaCategoryAmountEquList(inhierarchy, equipTypeAmountPage.getEquipmentClassificationCode().replaceAll("0+$", ""), equipTypeAmountPage);
} else { } else {
if (null != equipTypeAmountPage.getIsDefect() && 1 == equipTypeAmountPage.getIsDefect()) { if (null != equipTypeAmountPage.getIsDefect() && 1 == equipTypeAmountPage.getIsDefect()) {
ReginParams reginParams = getSelectedOrgInfo(); ReginParams reginParams = getSelectedOrgInfo();
......
package com.yeejoin.equipmanage.controller; package com.yeejoin.equipmanage.controller;
import com.yeejoin.equipmanage.common.entity.FormGroupColumn; import com.yeejoin.equipmanage.common.entity.dto.FormGroupColumnEquipDto;
import com.yeejoin.equipmanage.common.entity.dto.FormGroupColumnDto; import com.yeejoin.equipmanage.config.PersonIdentify;
import com.yeejoin.equipmanage.service.IFormGroupColumnService; import com.yeejoin.equipmanage.service.IFormInstanceEquipService;
import com.yeejoin.equipmanage.service.IFormInstanceService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.*;
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.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
...@@ -31,15 +28,46 @@ public class FormInstanceController extends AbstractBaseController { ...@@ -31,15 +28,46 @@ public class FormInstanceController extends AbstractBaseController {
@Autowired @Autowired
private IFormInstanceService formInstanceService; private IFormInstanceEquipService formInstanceEquipService;
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "通过分组code查询列及值信息", notes = "通过分组code查询列及值信息") @ApiOperation(value = "通过分组code查询列及值信息", notes = "通过分组code查询列及值信息")
@RequestMapping(value = "/queryColumnAndValueByGroup", method = RequestMethod.GET) @RequestMapping(value = "/queryColumnAndValueByGroup", method = RequestMethod.GET)
public List<FormGroupColumnDto> queryColumnAndValueByGroup(@RequestParam String groupCode, @RequestParam(required = false) Long instanceId) { public List<FormGroupColumnEquipDto> queryColumnAndValueByGroup(@RequestParam String groupCode, @RequestParam(required = false) Long instanceId) {
return formInstanceService.queryColumnAndValueByGroup(groupCode, instanceId); return formInstanceEquipService.queryColumnAndValueByGroup(groupCode, instanceId);
}
@PostMapping(value = "/commonSave")
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "通用保存")
@PersonIdentify
public Object save(
@RequestParam(value = "groupCode") String groupCode,
@RequestParam(value = "instanceId", required = false) String instanceId,
@RequestBody Map<String, Object> map) {
String orgCode = getOrgCode();
return formInstanceEquipService.saveForm(groupCode, orgCode, map, instanceId);
} }
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "通用更新")
@PutMapping(value = "/commonUpdate")
public Object update(
@RequestParam Long instanceId,
@RequestParam(value = "groupCode", required = false) String groupCode,
@RequestBody Map<String, Object> map) {
String orgCode = getOrgCode();
return formInstanceEquipService.updateForm(instanceId, orgCode, map, groupCode);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "删除")
@DeleteMapping(value = "/{instanceId}")
public Boolean delete(@PathVariable Long instanceId) {
return formInstanceEquipService.deleteInstanceById(instanceId);
}
} }
...@@ -59,19 +59,19 @@ public class EquipmentDetailDownloadTemplateDto implements Serializable { ...@@ -59,19 +59,19 @@ public class EquipmentDetailDownloadTemplateDto implements Serializable {
//@Excel(name = "品牌", width = 30, orderNum = "4") //@Excel(name = "品牌", width = 30, orderNum = "4")
private Date productionDate; private Date productionDate;
@Excel(name = "报废年限",width = 30, orderNum = "14") // @Excel(name = "报废年限",width = 30, orderNum = "14")
//@Excel(name = "品牌", width = 30, orderNum = "4") // //@Excel(name = "品牌", width = 30, orderNum = "4")
private String expiryDate; // private String expiryDate;
//
@Excel(name = "维保周期",width = 30, orderNum = "15") // @Excel(name = "维保周期",width = 30, orderNum = "15")
//@Excel(name = "品牌", width = 30, orderNum = "4") // //@Excel(name = "品牌", width = 30, orderNum = "4")
private BigDecimal maintenanceCycle ; // private BigDecimal maintenanceCycle ;
@Excel(name = "投运时间",width = 30, orderNum = "16") @Excel(name = "投运时间",width = 30, orderNum = "14")
//@Excel(name = "品牌", width = 30, orderNum = "4") //@Excel(name = "品牌", width = 30, orderNum = "4")
private Date deliveryDate; private Date deliveryDate;
@Excel(name = "所属系统",width = 30, orderNum = "17") // @Excel(name = "所属系统",width = 30, orderNum = "17")
//@Excel(name = "所属单位",width = 30,orderNum = "12") // //@Excel(name = "所属单位",width = 30,orderNum = "12")
private String systemName; // private String systemName;
} }
...@@ -68,21 +68,21 @@ public class EquipmentDetailExcelSingleTemplateDto { ...@@ -68,21 +68,21 @@ public class EquipmentDetailExcelSingleTemplateDto {
//@Excel(name = "品牌", width = 30, orderNum = "4") //@Excel(name = "品牌", width = 30, orderNum = "4")
private Date productionDate; private Date productionDate;
@ExcelProperty(value = "报废年限", index = 13) // @ExcelProperty(value = "报废年限", index = 13)
//@Excel(name = "品牌", width = 30, orderNum = "4") // //@Excel(name = "品牌", width = 30, orderNum = "4")
private String expiryDate; // private String expiryDate;
//
@ExcelProperty(value = "维保周期", index = 14) // @ExcelProperty(value = "维保周期", index = 14)
//@Excel(name = "品牌", width = 30, orderNum = "4") // //@Excel(name = "品牌", width = 30, orderNum = "4")
private BigDecimal maintenanceCycle ; // private BigDecimal maintenanceCycle ;
@ExcelProperty(value = "投运时间", index = 15) @ExcelProperty(value = "投运时间", index = 13)
//@Excel(name = "品牌", width = 30, orderNum = "4") //@Excel(name = "品牌", width = 30, orderNum = "4")
private Date deliveryDate; private Date deliveryDate;
//动态下拉内容 //动态下拉内容
@ExplicitConstraint(indexNum = 16, sourceClass = RoleNameExplicitConstraint.class,method="getFireSystemList") //动态下拉内容 // @ExplicitConstraint(indexNum = 16, sourceClass = RoleNameExplicitConstraint.class,method="getFireSystemList") //动态下拉内容
@ExcelProperty(value = "所属系统", index = 16) // @ExcelProperty(value = "所属系统", index = 16)
//@Excel(name = "所属单位",width = 30,orderNum = "12") // //@Excel(name = "所属单位",width = 30,orderNum = "12")
private String systemName; // private String systemName;
} }
...@@ -69,21 +69,21 @@ public class EquipmentDetailExcelTemplateDto implements Serializable { ...@@ -69,21 +69,21 @@ public class EquipmentDetailExcelTemplateDto implements Serializable {
//@Excel(name = "品牌", width = 30, orderNum = "4") //@Excel(name = "品牌", width = 30, orderNum = "4")
private Date productionDate; private Date productionDate;
@ExcelProperty(value = "报废年限", index = 13) // @ExcelProperty(value = "报废年限", index = 13)
//@Excel(name = "品牌", width = 30, orderNum = "4") // //@Excel(name = "品牌", width = 30, orderNum = "4")
private String expiryDate; // private String expiryDate;
//
@ExcelProperty(value = "维保周期", index = 14) // @ExcelProperty(value = "维保周期", index = 14)
//@Excel(name = "品牌", width = 30, orderNum = "4") // //@Excel(name = "品牌", width = 30, orderNum = "4")
private BigDecimal maintenanceCycle ; // private BigDecimal maintenanceCycle ;
@ExcelProperty(value = "投运时间", index = 15) @ExcelProperty(value = "投运时间", index = 13)
//@Excel(name = "品牌", width = 30, orderNum = "4") //@Excel(name = "品牌", width = 30, orderNum = "4")
private Date deliveryDate; private Date deliveryDate;
//动态下拉内容 //动态下拉内容
@ExplicitConstraint(indexNum = 16, sourceClass = RoleNameExplicitConstraint.class,method="getFireSystemList") //动态下拉内容 // @ExplicitConstraint(indexNum = 16, sourceClass = RoleNameExplicitConstraint.class,method="getFireSystemList") //动态下拉内容
@ExcelProperty(value = "所属系统", index = 16) // @ExcelProperty(value = "所属系统", index = 16)
//@Excel(name = "所属单位",width = 30,orderNum = "12") // //@Excel(name = "所属单位",width = 30,orderNum = "12")
private String systemName; // private String systemName;
} }
...@@ -25,6 +25,6 @@ public interface IdxFeign { ...@@ -25,6 +25,6 @@ public interface IdxFeign {
* @Date 2022/9/27 17:46 * @Date 2022/9/27 17:46
*/ */
@RequestMapping(value = "/defect/alarm/{alarmLogId}", method = RequestMethod.GET) @RequestMapping(value = "/defect/alarm/{alarmLogId}", method = RequestMethod.GET)
ResponseModel<JSONObject> queryDefectByAlarmLogId(@PathVariable String alarmLogId); ResponseModel<JSONObject> queryDefectByBatchId(@PathVariable String alarmLogId);
} }
...@@ -6,6 +6,7 @@ import java.util.List; ...@@ -6,6 +6,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import com.yeejoin.equipmanage.common.datasync.vo.FireEquipmentVO; import com.yeejoin.equipmanage.common.datasync.vo.FireEquipmentVO;
import com.yeejoin.equipmanage.common.entity.*;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -15,10 +16,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -15,10 +16,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.equipmanage.common.datasync.entity.FireEquipment; import com.yeejoin.equipmanage.common.datasync.entity.FireEquipment;
import com.yeejoin.equipmanage.common.dto.EquipmentSpecificDto; import com.yeejoin.equipmanage.common.dto.EquipmentSpecificDto;
import com.yeejoin.equipmanage.common.dto.UserDto; import com.yeejoin.equipmanage.common.dto.UserDto;
import com.yeejoin.equipmanage.common.entity.EquipmentCategory;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecific;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex;
import com.yeejoin.equipmanage.common.entity.MaintenanceResourceData;
import com.yeejoin.equipmanage.common.entity.dto.EquipmentSpecificDTO; import com.yeejoin.equipmanage.common.entity.dto.EquipmentSpecificDTO;
import com.yeejoin.equipmanage.common.entity.vo.ComplementCodeVO; import com.yeejoin.equipmanage.common.entity.vo.ComplementCodeVO;
import com.yeejoin.equipmanage.common.entity.vo.EquiplistSpecificBySystemVO; import com.yeejoin.equipmanage.common.entity.vo.EquiplistSpecificBySystemVO;
...@@ -220,7 +217,7 @@ public interface EquipmentSpecificMapper extends BaseMapper<EquipmentSpecific> { ...@@ -220,7 +217,7 @@ public interface EquipmentSpecificMapper extends BaseMapper<EquipmentSpecific> {
*/ */
List<Map<String, Object>> queryCompanyStaData(); List<Map<String, Object>> queryCompanyStaData();
String getEquipmentBySpecificId(@Param("specificId") Long specificId); Equipment getEquipmentBySpecificId(@Param("specificId") Long specificId);
List<EquiplistSpecificBySystemVO> getListByWarehouseStructureId(Long floorId); List<EquiplistSpecificBySystemVO> getListByWarehouseStructureId(Long floorId);
......
...@@ -608,4 +608,9 @@ public interface FireFightingSystemMapper extends BaseMapper<FireFightingSystemE ...@@ -608,4 +608,9 @@ public interface FireFightingSystemMapper extends BaseMapper<FireFightingSystemE
BigDecimal getWaterPoolLevelByEquipSpeId(@Param("equipSpeId") String equipSpeId); BigDecimal getWaterPoolLevelByEquipSpeId(@Param("equipSpeId") String equipSpeId);
List<Map<String, Object>> getEquipExpiryStatistics(@Param("bizOrgCode") String bizOrgCode, @Param("expiryDayNum") Integer expiryDayNum);
Page<Map<String, String>> getEquipExpiryListByPage(@Param("page") Page page, @Param("bizOrgCode") String bizOrgCode, @Param("expiryDayNum") Integer expiryDayNum);
List<Map<String, Integer>> getStockEquipStatistics(@Param("bizOrgCode") String bizOrgCode);
} }
package com.yeejoin.equipmanage.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.equipmanage.common.entity.FormGroupColumnEquip;
/**
* 分组字段表
* @author DELL
*/
public interface FormGroupColumnEquipMapper extends BaseMapper<FormGroupColumnEquip> {
}
package com.yeejoin.equipmanage.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.equipmanage.common.entity.FormGroupEquip;
/**
* 分组表
* @author DELL
*/
public interface FormGroupEquipMapper extends BaseMapper<FormGroupEquip> {
}
package com.yeejoin.equipmanage.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.equipmanage.common.entity.FormInstanceEquip;
import com.yeejoin.equipmanage.common.entity.dto.BuildIsRiskDTO;
import com.yeejoin.equipmanage.common.entity.dto.BuildSearchDTO;
import com.yeejoin.equipmanage.common.entity.vo.BuildingVideoListVO;
import org.apache.ibatis.annotations.Param;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
* 分组字段表
* @author DELL
*/
public interface FormInstanceEquipMapper extends BaseMapper<FormInstanceEquip> {
/**
* 实例基本信息分页查询
* @param page 分页信息
* @param params 查询条件
* @param fieldNames 字段
* @return List<Map<String,Object>>
*/
Page<Map<String,Object>> queryInstancePage(Page page,
@Param("groupCode") String groupCode,
@Param("fieldNames") Map<String,Object> fieldNames,
@Param("params") Map<String,String> params
);
/**
* 不分页查询
* @param groupCode 分组编号
* @param fieldNames 字段
* @param params 查询参数
* @return List<Map<String, Object>>
*/
List<Map<String, Object>> queryForMapList(@Param("groupCode") String groupCode,
@Param("fieldNames") Map<String, Object> fieldNames,
@Param("params") Map<String, String> params);
/**
* 查询指定节点的子
* @param parentId
* @return
*/
List<Map<String,Object>> querySpecialChildrenList(String parentId, String bizOrgCode);
/**
* 查询指定节点的子
* @param parentId
* @return
*/
List<Map<String,Object>> querySpecialChildrenListByName(String parentId, String bizOrgCode, String name);
/**
* 查询指定节点的子
* @param parentId
* @return
*/
List<Map<String,Object>> querySpecialChildrenListByBizOrgCode(@Param("parentId") String parentId, @Param("bizOrgCode") String bizOrgCode);
/**
* @Description 分页查询
* @param dto 查询参数
* @Return List<Map<String,Object>>
* @Date 2020/12/19 11:47
*/
Page queryPage(Page page, @Param("query") BuildSearchDTO dto);
/**
* @Description 不分页
* @param dto 查询参数
* @Return List<Map<String,Object>>
* @Date 2020/12/19 11:47
*/
List<Map<String,Object>> queryPage(@Param("query") BuildSearchDTO dto);
/**
* @Description 分页查询
* @param dto 查询参数
* @Return List<Map<String,Object>>
* @Date 2020/12/19 11:47
*/
Page roomPage(Page page, @Param("query") BuildSearchDTO dto);
/**
* @Description 查询列表
* @param dto 查询参数
* @Return List<Map<String,Object>>
* @Date 2020/12/19 11:47
*/
List<Map<String,Object>> roomPage(@Param("query") BuildSearchDTO dto);
/**
* @Description 根据parentId查询其下资源(楼层、房间)
* @param instanceId
* @Return List<Map<String,Object>>
* @Date 2020/12/19 15:06
*/
List<Map<String,Object>> queryFloorRoom(List<Long> instanceId);
/**
* 根据instanceId、groupType,获取建筑楼层list
* @param dto
* @return
*/
List<BuildSearchDTO> getBuildFloorList(@Param("query") BuildSearchDTO dto);
/**
* 根据instanceId,获取建筑楼层信息
* @param instanceId
* @param fileCategory
* @return
*/
LinkedHashMap<String, Object> findByInstanceId(@Param("instanceId") Long instanceId, @Param("fileCategory") String fileCategory);
List<LinkedHashMap<String, Object>> findDetailByInstanceId(@Param("instanceId") Long instanceId, @Param("fileCategory") String fileCategory);
/**
* 消防建筑视屏监控统计树
* @return
* @param bizOrgCodeList
*/
List<Map<String, Object>> getBuildVideoListCount(@Param("list") List<String> bizOrgCodeList);
/**
* 可乐建筑视屏监控统计树
* @return
*/
List<Map<String, Object>> getColaBuildVideoListCount(@Param("dto") BuildingVideoListVO dto);
/**
* 同步仓库
* @param formKeyMap
* @return
*/
int saveStucture(Map<String, Object> formKeyMap);
Map<String, String> getChildListdate(@Param("id")Long id);
void updateListChild(@Param("value")String value,
@Param("ids") List<String> ids,
@Param("fieldName") String fieldName);
/**
* 获取仓库父类详细位置
* @param id
* @return
*/
String getStuctureName(String id);
String getStuName(String id);
Long getStructureParentId(String id);
/**
* 删除仓库
* @param id
* @return
*/
int deleteStuById(Long id);
/**
* 修改仓库
*/
int updateStr(@Param("id") Long id,@Param("name") String name,@Param("fullName") String fullName,@Param("parentId")String parentId, @Param("code")String code, @Param("bizOrgCode")String bizOrgCode,@Param("bizOrgName")String bizOrgName);
/**
* 修改仓库
*/
int updateStrFullName(@Param("id") Long id,@Param("name") String name,@Param("fullName") String fullName);
/**
* 查询未设置风险区域的子风险区域列表
* @param instanceId
* @return
*/
List<BuildIsRiskDTO> getChildrenNotIsRiskList(@Param("instanceId") String instanceId);
int clearSystemId(@Param("id") Long id );
/**
* 清除绑定关系
* @param instanceId 建筑实例id
*/
void clearRegionBind(Long instanceId);
/*
* 查询id下是否还有子类货位信息
* */
List<Map<String,Object>> getParentId(Long parentId);
Map<String, String> getIdAndType(String id);
Map<String, Object> getFormInstanceById(Long instanceId);
/**
* 获取所有建筑 用于数据字典 // 需求958 导出模板需要列表获取建筑 by kongfm 2021-09-15
* @return
*/
List<LinkedHashMap<String, Object>> getAllBuilding();
Map<String, String> getBuildingToLongitudeAndLatitude(String instanceId);
List<Map<String, Long>> getBuildVideoCount();
int updateFormInstanceByInstanceAndFieldName(String name,String value ,Long instanceId);
/**
* 查询子节点
* @param id
* @return
*/
List<String> selectChildListdate(@Param("id")Long id);
int updateFormFieldValue(@Param("id") Long id, @Param("name") String name, @Param("value") String value);
}
...@@ -2,7 +2,9 @@ package com.yeejoin.equipmanage.mapper; ...@@ -2,7 +2,9 @@ package com.yeejoin.equipmanage.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.equipmanage.common.entity.MarqueeData; import com.yeejoin.equipmanage.common.entity.MarqueeData;
import com.yeejoin.equipmanage.common.utils.CommonPageInfoParam;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -12,6 +14,6 @@ import java.util.Map; ...@@ -12,6 +14,6 @@ import java.util.Map;
public interface MarqueeDataMapper extends BaseMapper<MarqueeData> { public interface MarqueeDataMapper extends BaseMapper<MarqueeData> {
List<Map<String, Object>> selectAll(); List<Map<String, Object>> selectAll(@Param("param") CommonPageInfoParam param);
} }
...@@ -18,7 +18,7 @@ public interface IConfirmAlarmService extends IService<EquipmentSpecificAlarm> { ...@@ -18,7 +18,7 @@ public interface IConfirmAlarmService extends IService<EquipmentSpecificAlarm> {
Map<String ,Object> getDetailsById( Long alamId, Long equipId , String type, String area); Map<String ,Object> getDetailsById( Long alamId, Long equipId , String type, String area);
void confirmAlam(EquipmentSpecificAlarmLog ent, String appKey, String product, String token, String userId); String confirmAlam(EquipmentSpecificAlarmLog ent, String appKey, String product, String token, String userId);
/** /**
* 未处理消防告警 * 未处理消防告警
......
...@@ -96,7 +96,7 @@ public interface IEquipmentSpecificAlarmService extends IService<EquipmentSpecif ...@@ -96,7 +96,7 @@ public interface IEquipmentSpecificAlarmService extends IService<EquipmentSpecif
List<Map<String, Object>> alarmTrend(String bizOrgCode); List<Map<String, Object>> alarmTrend(String bizOrgCode);
Page<Map<String, Object>> pageList(CommonPageInfoParam param); List<Map<String, Object>> allList(CommonPageInfoParam param);
int updateReadStatus(String messageId); int updateReadStatus(String messageId);
} }
...@@ -12,11 +12,7 @@ import com.yeejoin.amos.feign.morphic.model.ResourceDTO; ...@@ -12,11 +12,7 @@ import com.yeejoin.amos.feign.morphic.model.ResourceDTO;
import com.yeejoin.equipmanage.common.datasync.entity.FireFightingSystem; import com.yeejoin.equipmanage.common.datasync.entity.FireFightingSystem;
import com.yeejoin.equipmanage.common.entity.FireFightingSystemEntity; import com.yeejoin.equipmanage.common.entity.FireFightingSystemEntity;
import com.yeejoin.equipmanage.common.entity.dto.EquipTypeAmountPageDTO; import com.yeejoin.equipmanage.common.entity.dto.EquipTypeAmountPageDTO;
import com.yeejoin.equipmanage.common.entity.vo.EquipCountBySystemVO; import com.yeejoin.equipmanage.common.entity.vo.*;
import com.yeejoin.equipmanage.common.entity.vo.EquipTypeImgAmountVO;
import com.yeejoin.equipmanage.common.entity.vo.EquiplistSpecificBySystemVO;
import com.yeejoin.equipmanage.common.entity.vo.EquipmentAlarmBySystemIdOrSourceIdVO;
import com.yeejoin.equipmanage.common.entity.vo.PointTreeVo;
import com.yeejoin.equipmanage.common.vo.*; import com.yeejoin.equipmanage.common.vo.*;
public interface IFireFightingSystemService extends IService<FireFightingSystemEntity> { public interface IFireFightingSystemService extends IService<FireFightingSystemEntity> {
...@@ -288,4 +284,9 @@ public interface IFireFightingSystemService extends IService<FireFightingSystemE ...@@ -288,4 +284,9 @@ public interface IFireFightingSystemService extends IService<FireFightingSystemE
Page<Map<String, Object>> getSystemInfo(Page page, String companyCode, String systemCode); Page<Map<String, Object>> getSystemInfo(Page page, String companyCode, String systemCode);
List<Map<String, Object>> getEquipExpiryStatistics(String bizOrgCode, Integer expiryDayNum);
Page<Map<String, String>> getEquipExpiryListByPage(String bizOrgCode, Integer expiryDayNum, Page page);
List<Map<String, Integer>> getStockEquipStatistics(String bizOrgCode);
} }
package com.yeejoin.equipmanage.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yeejoin.equipmanage.common.entity.FormGroupColumnEquip;
import java.util.List;
import java.util.Map;
/**
* @author DELL
*/
public interface IFormGroupColumnEquipService extends IService<FormGroupColumnEquip> {
/**
* 查询指定分组的字段
* @param groupCode 分组
* @return List<FormGroupColumn>
*/
List<FormGroupColumnEquip> queryByGroup(String groupCode);
/**
* 枚举处理
* @param fieldName 需要处理的字段名
* @param value 需要处理的字段值
* @return Map<String, Map<String, Object>>
*/
Map<String, Map<String, Object>> processEnumData(String fieldName, String value);
}
package com.yeejoin.equipmanage.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yeejoin.equipmanage.common.entity.FormGroup;
import com.yeejoin.equipmanage.common.entity.FormGroupEquip;
import java.util.Map;
/**
* @author DELL
*/
public interface IFormGroupEquipService extends IService<FormGroupEquip> {
/**
* @Description 根据groupCode查询
* @param groupCode
* @Return FormGroup
* @Date 2020/12/18 10:01
*/
FormGroupEquip allowOperationByGroupCode(String groupCode);
/**
* 按照唯一主键查询
* @param groupCode 编号
* @return FormGroup
*/
FormGroupEquip getByUniqueKey(String groupCode);
}
package com.yeejoin.equipmanage.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yeejoin.equipmanage.common.entity.FormInstanceEquip;
import com.yeejoin.equipmanage.common.entity.dto.FormGroupColumnEquipDto;
import java.util.List;
import java.util.Map;
/**
* @author DELL
*/
public interface IFormInstanceEquipService extends IService<FormInstanceEquip> {
List<FormGroupColumnEquipDto> queryColumnAndValueByGroup(String groupCode, Long instanceId);
/**
* 通用表单保存
*
* @param groupCode 表单类型
* @param orgCode 公司编号
* @param map form
* @param caseId 实例ID
* @return Object
*/
Object saveForm(String groupCode, String orgCode, Map<String, Object> map, String instanceId);
/**
* 创建
*
* @param groupCode 分类
* @param companyCode 公司编码
* @param map 字段值对象
* @return Map<String, Object>
*/
Map<String, Object> createByMap(String groupCode, String companyCode, Map<String, Object> map, String caseId);
/**
* 通用表单更新
*
* @param instanceId 实例id
* @param companyCode 公司编号
* @param map form
* @return Object
*/
Object updateForm(Long instanceId, String companyCode, Map<String, Object> map, String groupCode);
/**
* 删除
*
* @param instanceId 实例id
* @return 是否成功
*/
Boolean deleteInstanceById(Long instanceId);
}
...@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yeejoin.equipmanage.common.entity.FormInstance; import com.yeejoin.equipmanage.common.entity.FormInstance;
import com.yeejoin.equipmanage.common.entity.dto.BuildSearchDTO; import com.yeejoin.equipmanage.common.entity.dto.BuildSearchDTO;
import com.yeejoin.equipmanage.common.entity.dto.FormGroupColumnDto; import com.yeejoin.equipmanage.common.entity.dto.FormGroupColumnEquipDto;
import com.yeejoin.equipmanage.common.entity.vo.BuildingVideoListVO; import com.yeejoin.equipmanage.common.entity.vo.BuildingVideoListVO;
import com.yeejoin.equipmanage.common.vo.UnitAreaTreeVo; import com.yeejoin.equipmanage.common.vo.UnitAreaTreeVo;
...@@ -173,5 +173,5 @@ public interface IFormInstanceService extends IService<FormInstance> { ...@@ -173,5 +173,5 @@ public interface IFormInstanceService extends IService<FormInstance> {
*/ */
List<Map<String, Object>> getSpecialChildrenListByName(String parentId, String bizOrgCode, String name); List<Map<String, Object>> getSpecialChildrenListByName(String parentId, String bizOrgCode, String name);
List<FormGroupColumnDto> queryColumnAndValueByGroup(String groupCode, Long instanceId); List<FormGroupColumnEquipDto> queryColumnAndValueByGroup(String groupCode, Long instanceId);
} }
...@@ -3,6 +3,7 @@ package com.yeejoin.equipmanage.service.impl; ...@@ -3,6 +3,7 @@ package com.yeejoin.equipmanage.service.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yeejoin.amos.boot.module.jcs.api.dto.IotSystemAlarmRo; import com.yeejoin.amos.boot.module.jcs.api.dto.IotSystemAlarmRo;
...@@ -110,6 +111,9 @@ public class ConfirmAlarmServiceImpl extends ServiceImpl<ConfirmAlarmMapper, Equ ...@@ -110,6 +111,9 @@ public class ConfirmAlarmServiceImpl extends ServiceImpl<ConfirmAlarmMapper, Equ
private EquipmentSpecificMapper equipmentSpecificMapper; private EquipmentSpecificMapper equipmentSpecificMapper;
@Autowired @Autowired
private EquipmentMapper equipmentMapper;
@Autowired
private EquipmentSpecificAlarmMapper equipmentSpecificAlarmMapper; private EquipmentSpecificAlarmMapper equipmentSpecificAlarmMapper;
@Autowired @Autowired
...@@ -164,7 +168,7 @@ public class ConfirmAlarmServiceImpl extends ServiceImpl<ConfirmAlarmMapper, Equ ...@@ -164,7 +168,7 @@ public class ConfirmAlarmServiceImpl extends ServiceImpl<ConfirmAlarmMapper, Equ
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void confirmAlam(EquipmentSpecificAlarmLog ent, String appKey, String product, String token, String userId) { public String confirmAlam(EquipmentSpecificAlarmLog ent, String appKey, String product, String token, String userId) {
try { try {
AgencyUserModel userModel = remoteSecurityService.getAgencyUser(); AgencyUserModel userModel = remoteSecurityService.getAgencyUser();
ent.setConfirmUser(userModel.getUserId()); ent.setConfirmUser(userModel.getUserId());
...@@ -177,8 +181,14 @@ public class ConfirmAlarmServiceImpl extends ServiceImpl<ConfirmAlarmMapper, Equ ...@@ -177,8 +181,14 @@ public class ConfirmAlarmServiceImpl extends ServiceImpl<ConfirmAlarmMapper, Equ
ent.setEquipmentSpecificAlarmId(equipmentSpecificAlarmId); ent.setEquipmentSpecificAlarmId(equipmentSpecificAlarmId);
ent.setEquipmentSpecificId(alarmLog.getEquipmentSpecificId()); ent.setEquipmentSpecificId(alarmLog.getEquipmentSpecificId());
ent.setEquipmentSpecificIndexKey(alarmLog.getEquipmentSpecificIndexKey()); ent.setEquipmentSpecificIndexKey(alarmLog.getEquipmentSpecificIndexKey());
String cleanType = equipmentSpecificMapper.getEquipmentBySpecificId(alarmLog.getEquipmentSpecificId()); Equipment equipment = equipmentSpecificMapper.getEquipmentBySpecificId(alarmLog.getEquipmentSpecificId());
if (StringUtil.isNotEmpty(cleanType) && AlarmCleanTypeEnum.QRXC.getCode().equals(cleanType)) { if (!StringUtil.isNotEmpty(equipment.getCleanType())) {
// 若此装备未定义消除策略,默认设置为复位信号自动消除
equipment.setCleanType(AlarmCleanTypeEnum.ZDXC.getCode());
equipmentMapper.updateById(equipment);
}
if (StringUtil.isNotEmpty(equipment.getCleanType()) && AlarmCleanTypeEnum.QRXC.getCode().equals(equipment.getCleanType())) {
EquipmentSpecificAlarm alarm = equipmentSpecificAlarmMapper.selectById(alarmLog.getEquipmentSpecificAlarmId()); EquipmentSpecificAlarm alarm = equipmentSpecificAlarmMapper.selectById(alarmLog.getEquipmentSpecificAlarmId());
alarm.setStatus(AlarmStatusEnum.HF.getCode()); alarm.setStatus(AlarmStatusEnum.HF.getCode());
equipmentSpecificAlarmMapper.updateById(alarm); equipmentSpecificAlarmMapper.updateById(alarm);
...@@ -211,34 +221,23 @@ public class ConfirmAlarmServiceImpl extends ServiceImpl<ConfirmAlarmMapper, Equ ...@@ -211,34 +221,23 @@ public class ConfirmAlarmServiceImpl extends ServiceImpl<ConfirmAlarmMapper, Equ
ent.setConfirmDate(new Date()); ent.setConfirmDate(new Date());
int i = 0 ; int i = 0 ;
ent.setConfirmTypeName(ConfirmAlamEnum.getTypeByCode(ent.getConfirmType())); ent.setConfirmTypeName(ConfirmAlamEnum.getTypeByCode(ent.getConfirmType()));
if (!ent.isAddDefect()) { Date date = new Date();
if (ent.getIsBatch() == 0){ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
i = equipmentSpecificAlarmLogMapper.updateById(ent); String dateString = formatter.format(date);
}else { if (ent.isAddDefect()) {
LambdaUpdateWrapper<EquipmentSpecificAlarmLog> updateWrapper = new LambdaUpdateWrapper<EquipmentSpecificAlarmLog>(). ent.setDefectBatchId(UUID.randomUUID().toString().replace("-", "").toLowerCase());
eq(EquipmentSpecificAlarmLog::getEquipmentSpecificId,ent.getEquipmentSpecificId()). ent.setResolveResult(dateString + " " + userModel.getRealName() + " 添加为缺陷进行消缺。");
eq(EquipmentSpecificAlarmLog::getEquipmentSpecificIndexKey,ent.getEquipmentSpecificIndexKey())
.isNull(EquipmentSpecificAlarmLog::getConfirmDate);
i = equipmentSpecificAlarmLogMapper.update(ent, updateWrapper);
}
} else { } else {
// 自动确警处理 ent.setResolveResult(dateString + " " + userModel.getRealName() + " 进行警情确认处理。");
EquipmentSpecific specific = equipmentSpecificMapper.selectById(ent.getEquipmentSpecificId()); }
Date date = new Date(); if (ent.getIsBatch() == 0){
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); i = equipmentSpecificAlarmLogMapper.updateById(ent);
String dateString = formatter.format(date); } else {
ent.setTraceId(null); LambdaUpdateWrapper<EquipmentSpecificAlarmLog> updateWrapper = new LambdaUpdateWrapper<EquipmentSpecificAlarmLog>().
String equipmentName = StringUtil.isNotEmpty(specific.getCode()) ? specific.getName() + "(" + specific.getCode() + ")" : specific.getName(); eq(EquipmentSpecificAlarmLog::getEquipmentSpecificId,ent.getEquipmentSpecificId()).
if (ent.getConfirmType().equals(AlarmTypeEnum.PB.getCode())) { eq(EquipmentSpecificAlarmLog::getEquipmentSpecificIndexKey,ent.getEquipmentSpecificIndexKey())
ent.setAlarmReason(equipmentName + "频繁故障/误报,将设备报警信息屏蔽。"); .isNull(EquipmentSpecificAlarmLog::getConfirmDate);
} else { i = equipmentSpecificAlarmLogMapper.update(ent, updateWrapper);
ent.setAlarmReason(equipmentName + "引起设备报警");
}
ent.setResolveResult(dateString + "系统收到设备复归(已消除)信号,系统自动处理。");
ent.setConfirmUser("");
ent.setConfirmUserName("系统自动处理");
ent.setConfirmDate(date);
equipmentSpecificAlarmLogService.updateById(ent);
} }
//int i = confirmAlarmMapper.confirmAlam(ent); //int i = confirmAlarmMapper.confirmAlam(ent);
...@@ -283,6 +282,7 @@ public class ConfirmAlarmServiceImpl extends ServiceImpl<ConfirmAlarmMapper, Equ ...@@ -283,6 +282,7 @@ public class ConfirmAlarmServiceImpl extends ServiceImpl<ConfirmAlarmMapper, Equ
mqttSendGateway.sendToMqtt(TopicEnum.ALARM_LOG_INSERT.getTopic(), jsonObject.toString()); mqttSendGateway.sendToMqtt(TopicEnum.ALARM_LOG_INSERT.getTopic(), jsonObject.toString());
} }
}); });
return ent.getDefectBatchId();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
throw new BadRequest("确认失败"); throw new BadRequest("确认失败");
......
...@@ -220,7 +220,10 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment ...@@ -220,7 +220,10 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
equipment1.setImg(""); equipment1.setImg("");
} }
int savedEquipment = equipmentMapper.updateById(equipment1); int savedEquipment = equipmentMapper.updateById(equipment1);
iEquipmentDetailService.update(new UpdateWrapper<EquipmentDetail>().eq("equipment_id", equipment1.getId()).set("name", equipment1.getName())); iEquipmentDetailService.update(new UpdateWrapper<EquipmentDetail>().eq("equipment_id", equipment1.getId())
.set("name", equipment1.getName())
.set("expiry_date", equipment1.getExpiryDate())
.set("maintenance_cycle", equipment1.getMaintenanceCycle()));
JSONObject equipRuleParams = new JSONObject(); JSONObject equipRuleParams = new JSONObject();
equipRuleParams.put("name", equipment1.getName()); equipRuleParams.put("name", equipment1.getName());
equipRuleParams.put("inspectionSpecId", equipment1.getInspectionSpec()); equipRuleParams.put("inspectionSpecId", equipment1.getInspectionSpec());
......
...@@ -749,17 +749,14 @@ public class EquipmentSpecificAlarmServiceImpl extends ServiceImpl<EquipmentSpec ...@@ -749,17 +749,14 @@ public class EquipmentSpecificAlarmServiceImpl extends ServiceImpl<EquipmentSpec
} }
@Override @Override
public Page<Map<String, Object>> pageList(CommonPageInfoParam param) { public List<Map<String, Object>> allList(CommonPageInfoParam param) {
Page result = new Page<>(param.getPageNumber(), param.getPageSize());
if (AlarmTypeEnum.GZGJ.getCode().equals(param.getAlarmType())) { if (AlarmTypeEnum.GZGJ.getCode().equals(param.getAlarmType())) {
param.setAlarmType(""); param.setAlarmType("");
param.setIsFireAlarm("false"); param.setIsFireAlarm("false");
} }
Page<Map<String, Object>> resultPage = this.baseMapper.page(result, param); List<Map<String, Object>> list = marqueeDataMapper.selectAll(param);
if (resultPage.getTotal() > 0) { if (list.size() > 0) {
for (Map<String, Object> x : resultPage.getRecords()) { for (Map<String, Object> x : list) {
// LocalDateTime createDate = (LocalDateTime) x.get("createDate");
// x.put("createDate", Date.from(createDate.atZone(ZoneId.systemDefault()).toInstant()));
if (ObjectUtils.isEmpty(x.get("handleType"))) { if (ObjectUtils.isEmpty(x.get("handleType"))) {
x.put("handleType", null); x.put("handleType", null);
} else { } else {
...@@ -770,14 +767,7 @@ public class EquipmentSpecificAlarmServiceImpl extends ServiceImpl<EquipmentSpec ...@@ -770,14 +767,7 @@ public class EquipmentSpecificAlarmServiceImpl extends ServiceImpl<EquipmentSpec
x.put("equipmentSpecificIndexName", x.get("fireEquipmentSpecificIndexName")); x.put("equipmentSpecificIndexName", x.get("fireEquipmentSpecificIndexName"));
} }
} }
List<Map<String, Object>> list = marqueeDataMapper.selectAll(); return list;
List<Map<String, Object>> resList = new ArrayList();
for (Map<String, Object> stringObjectMap : list) {
resList.add(stringObjectMap);
}
resList.sort((t1, t2) -> t2.get("createDate").toString().compareTo(t1.get("createDate").toString()));
resultPage.setRecords(resList);
return resultPage;
} }
@Override @Override
......
...@@ -162,6 +162,9 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM ...@@ -162,6 +162,9 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM
@Autowired @Autowired
private IFormInstanceService formInstanceService; private IFormInstanceService formInstanceService;
@Autowired
private IFormInstanceEquipService formInstanceEquipService;
@Value("${systemctl.dict.iot-core-param}") @Value("${systemctl.dict.iot-core-param}")
private String iotCoreParam; private String iotCoreParam;
...@@ -203,6 +206,9 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM ...@@ -203,6 +206,9 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM
FormInstanceMapper formInstanceMapper; FormInstanceMapper formInstanceMapper;
@Autowired @Autowired
FormInstanceEquipMapper formInstanceEquipMapper;
@Autowired
EquipmentSpecificIndexMapper equipmentSpecificIndexMapper; EquipmentSpecificIndexMapper equipmentSpecificIndexMapper;
@Value("${systemctl.sync.switch}") @Value("${systemctl.sync.switch}")
...@@ -1018,7 +1024,7 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM ...@@ -1018,7 +1024,7 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM
} }
if (res > 0) { if (res > 0) {
// 删除设备动态表单扩展属性 // 删除设备动态表单扩展属性
return formInstanceService.deleteInstanceById(id); return formInstanceEquipService.deleteInstanceById(id);
} else { } else {
return false; return false;
} }
...@@ -1828,8 +1834,8 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM ...@@ -1828,8 +1834,8 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM
List<Map<String, Object>> equipSpecificScrap = equipmentSpecificIndexMapper.getEquipSpecificScrap(); List<Map<String, Object>> equipSpecificScrap = equipmentSpecificIndexMapper.getEquipSpecificScrap();
equipSpecificScrap.forEach(e->{ equipSpecificScrap.forEach(e->{
try { try {
if(e.get("wesExpiry") != null) { if(e.get("weExpiry") != null) {
int year = Integer.parseInt(e.get("wesExpiry").toString()); int year = Integer.parseInt(e.get("weExpiry").toString());
Date productDate = DateUtils.dateParse(e.get("product").toString(),"yyyy-MM-dd'T'HH:mm"); Date productDate = DateUtils.dateParse(e.get("product").toString(),"yyyy-MM-dd'T'HH:mm");
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
calendar.setTime(productDate); calendar.setTime(productDate);
...@@ -1857,7 +1863,7 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM ...@@ -1857,7 +1863,7 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM
model.setTitle("报废到期提醒"); model.setTitle("报废到期提醒");
String equipName = map.get("name").toString(); String equipName = map.get("name").toString();
String location = map.get("sname").toString() + map.get("position").toString() ; String location = map.get("position").toString() + map.get("area").toString();
String body = String.format("%s-%s于%s报废,请提前更换处理", equipName, location, scrapTime); String body = String.format("%s-%s于%s报废,请提前更换处理", equipName, location, scrapTime);
String join = String.format("设备还剩%s天报废,请提前更换", i); String join = String.format("设备还剩%s天报废,请提前更换", i);
......
...@@ -1999,4 +1999,23 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste ...@@ -1999,4 +1999,23 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
} }
return fireFightingSystemMapper.getSystemInfo(page, bizOrgCode, null); return fireFightingSystemMapper.getSystemInfo(page, bizOrgCode, null);
} }
@Override
public List<Map<String, Object>> getEquipExpiryStatistics(String bizOrgCode, Integer expiryDayNum) {
List<Map<String, Object>> equipExpiryStatistics = fireFightingSystemMapper.getEquipExpiryStatistics(bizOrgCode, expiryDayNum);
equipExpiryStatistics.forEach(item -> {
item.put("value", Integer.parseInt(item.get("value").toString()));
});
return equipExpiryStatistics;
}
@Override
public Page<Map<String, String>> getEquipExpiryListByPage(String bizOrgCode, Integer expiryDayNum, Page page) {
return fireFightingSystemMapper.getEquipExpiryListByPage(page, bizOrgCode, expiryDayNum);
}
@Override
public List<Map<String, Integer>> getStockEquipStatistics(String bizOrgCode) {
return fireFightingSystemMapper.getStockEquipStatistics(bizOrgCode);
}
} }
package com.yeejoin.equipmanage.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.component.feign.utils.FeignUtil;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import com.yeejoin.equipmanage.common.entity.FormGroupColumnEquip;
import com.yeejoin.equipmanage.common.enums.DataOption;
import com.yeejoin.equipmanage.mapper.FormGroupColumnEquipMapper;
import com.yeejoin.equipmanage.service.IFormGroupColumnEquipService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.component.cache.Redis;
import org.typroject.tyboot.component.cache.enumeration.CacheType;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.StringUtil;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author DELL
*/
@Service
public class FormGroupColumnEquipServiceImpl extends ServiceImpl<FormGroupColumnEquipMapper, FormGroupColumnEquip> implements IFormGroupColumnEquipService {
@Autowired
private RedisUtils redisUtils;
@Override
public List<FormGroupColumnEquip> queryByGroup(String groupCode) {
QueryWrapper<FormGroupColumnEquip> wrapper = new QueryWrapper<>();
wrapper.eq("group_code",groupCode);
return this.baseMapper.selectList(wrapper);
}
@Override
public Map<String, Map<String, Object>> processEnumData(String fieldName, String value) {
Map<String, Map<String, Object>> returnMap = new HashMap<>();
DataOption option = DataOption.getInstance(fieldName);
if (!ValidationUtil.isEmpty(option)) {
try {
String cacheKey = Redis.genKey(CacheType.ERASABLE.name(), "ENUM_DICT_VALUE",option.name());
List<DictionarieValueModel> valueModels = redisUtils.get(cacheKey) == null ? new ArrayList<>() : JSONObject.parseArray(redisUtils.get(cacheKey).toString(),DictionarieValueModel.class);
if (ValidationUtil.isEmpty(valueModels)) {
valueModels = FeignUtil.remoteCall(() -> Systemctl.dictionarieClient.dictValues(option.name()));
redisUtils.set(cacheKey, JSONObject.toJSONString(valueModels),60*60*24);
}
if (!ValidationUtil.isEmpty(valueModels)) {
Map<String, Object> map = new HashMap<>();
Map dictValueMap = Bean.listToMap(valueModels, "dictDataKey", "dictDataValue", DictionarieValueModel.class);
String dictKeys[] = StringUtil.string2Array(value);
for (String dictKey : dictKeys){
map.put(dictKey, dictValueMap.get(dictKey));
}
returnMap.put(fieldName + "_dictValue", map);
}
} catch (Exception e) {
log.error(e.getMessage(), e);
throw new RuntimeException("枚举类型处理失败.");
}
}
return returnMap;
}
}
package com.yeejoin.equipmanage.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import com.yeejoin.equipmanage.common.entity.FormGroup;
import com.yeejoin.equipmanage.common.entity.FormGroupEquip;
import com.yeejoin.equipmanage.mapper.FormGroupEquipMapper;
import com.yeejoin.equipmanage.mapper.FormGroupMapper;
import com.yeejoin.equipmanage.service.IFormGroupEquipService;
import com.yeejoin.equipmanage.service.IFormGroupService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @author DELL
*/
@Service
public class FormGroupEquipServiceImpl extends ServiceImpl<FormGroupEquipMapper, FormGroupEquip> implements IFormGroupEquipService {
@Value("${systemctl.dict.allow-operation}")
private String allowOperation;
/**
* @param groupCode
* @Description 根据groupCode查询
* @Return FormGroup
* @Date 2020/12/18 10:01
*/
@Override
public FormGroupEquip allowOperationByGroupCode(String groupCode) {
FormGroupEquip formGroup = this.getOne(new QueryWrapper<FormGroupEquip>()
.lambda()
.eq(FormGroupEquip::getGroupCode, groupCode));
Optional.ofNullable(formGroup).orElseThrow(() -> new BadRequest("分组CODE查询formGroup不存在"));
return formGroup;
}
@Override
public FormGroupEquip getByUniqueKey(String groupCode) {
QueryWrapper<FormGroupEquip> wrapper = new QueryWrapper<>();
wrapper.eq("group_code", groupCode);
return this.getOne(wrapper);
}
}
package com.yeejoin.equipmanage.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yeejoin.equipmanage.common.entity.FormGroupColumnEquip;
import com.yeejoin.equipmanage.common.entity.FormGroupEquip;
import com.yeejoin.equipmanage.common.entity.FormInstanceEquip;
import com.yeejoin.equipmanage.common.entity.dto.FormGroupColumnEquipDto;
import com.yeejoin.equipmanage.common.enums.GroupCodeEnum;
import com.yeejoin.equipmanage.common.enums.GroupColumnDataType;
import com.yeejoin.equipmanage.common.utils.CommonResponseUtil;
import com.yeejoin.equipmanage.common.utils.RandomUtil;
import com.yeejoin.equipmanage.mapper.FormInstanceEquipMapper;
import com.yeejoin.equipmanage.service.IFormGroupColumnEquipService;
import com.yeejoin.equipmanage.service.IFormGroupEquipService;
import com.yeejoin.equipmanage.service.IFormInstanceEquipService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.typroject.tyboot.core.foundation.exception.BaseException;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.StringUtil;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author DELL
*/
@Service
public class FormInstanceEquipServiceImpl extends ServiceImpl<FormInstanceEquipMapper, FormInstanceEquip> implements IFormInstanceEquipService {
@Autowired
private IFormGroupColumnEquipService formGroupColumnEquipService;
@Autowired
private IFormInstanceEquipService formInstanceEquipService;
@Autowired
private IFormGroupEquipService formGroupEquipService;
@Autowired
private FormInstanceEquipMapper formInstanceEquipMapper;
@Autowired
private Sequence sequence;
final static String[] list = {"92031900", "92011000", "92010700"};
private final String CODE = "code";
private final String ORGCODE = "orgCode";
@Override
public List<FormGroupColumnEquipDto> queryColumnAndValueByGroup(String groupCode, Long instanceId) {
List<FormGroupColumnEquipDto> list = new ArrayList<>();
List<FormGroupColumnEquip> columnList = formGroupColumnEquipService.queryByGroup(groupCode);
if (!CollectionUtils.isEmpty(columnList)) {
Map<String, Object> map = queryForMap(instanceId);
columnList.forEach(x -> {
FormGroupColumnEquipDto dto = new FormGroupColumnEquipDto();
BeanUtils.copyProperties(x, dto);
if (!map.isEmpty()) {
dto.setFieldValue(map.get(dto.getFieldName()).toString());
}
list.add(dto);
});
}
return list;
}
private String fillCode(String groupCode, String fieldName, String value, String companyCode) {
if (CODE.equals(fieldName) && StringUtils.isEmpty(value)) {
return RandomUtil.buildNo(GroupCodeEnum.getInstance(groupCode).getSequenceType(), companyCode);
} else if (ORGCODE.equals(fieldName) && StringUtils.isEmpty(value)) {
return companyCode;
}
return value == null ? "" : value;
}
private String checkAndFillCode(String companyCode, Map<String, Object> map, String groupCode, FormGroupColumnEquip optionModel) {
Object value = map.get(optionModel.getFieldName());
String stringValue = this.fillCode(groupCode, optionModel.getFieldName(), value == null ? null : String.valueOf(value), companyCode);
// 检验code重复
if ("code".equals(optionModel.getFieldName())) {
String instanceId = String.valueOf(map.get("instanceId"));
int count = this.count(new QueryWrapper<FormInstanceEquip>().eq("field_value", stringValue).eq("field_name", "code").ne("instance_id", instanceId == null ? "" : instanceId));
if (count > 0) {
if (value == null) {
stringValue = checkAndFillCode(companyCode, map, groupCode, optionModel);
} else {
throw new BadRequest("编码重复!");
}
}
}
if (StringUtils.isEmpty(stringValue) && optionModel.getNotNull()) {
throw new BadRequest(optionModel.getFieldLabel() + " 不能为空");
}
return stringValue;
}
private Map<String, Object> queryForMap(Long instanceId) {
Map<String, Object> optionListMap = new HashMap<>();
List<FormInstanceEquip> list = this.queryByInstanceId(instanceId);
if (!CollectionUtils.isEmpty(list)) {
List<FormGroupColumnEquip> optionList = formGroupColumnEquipService.queryByGroup(list.iterator().next().getGroupCode());
optionListMap = Bean.listToMap(optionList, "fieldName", "fieldLabel", FormGroupColumnEquip.class);
Map instanceMap = Bean.listToMap(list, "fieldName", "fieldValue", FormInstanceEquip.class);
for (FormGroupColumnEquip optionModel : optionList) {
instanceMap.put(optionModel.getFieldName(), this.dataTypeProcess(optionModel.getFieldName(), instanceMap.get(optionModel.getFieldName()), optionModel.getDataType(), instanceMap));
}
optionListMap.putAll(instanceMap);
optionListMap.put("instanceId", instanceId);
optionListMap.put("createTime", list.iterator().next().getCreateDate());
optionListMap.put("groupCode", list.iterator().next().getGroupCode());
}
return optionListMap;
}
private Object dataTypeProcess(String fieldName, Object value, String dataType, Map instanceMap) {
Object retValue = value;
if (!ValidationUtil.isEmpty(value)) {
GroupColumnDataType optionDataType = GroupColumnDataType.valueOf(dataType);
switch (optionDataType) {
case InstanceId:
List<Long> instanceIds = StringUtil.String2LongList(String.valueOf(value));
List<Map<String, Object>> mapList = new ArrayList<>();
instanceIds.forEach((id) -> mapList.add(queryForMap(id)));
retValue = mapList;
break;
case Enum:
Map<String, Map<String, Object>> map = formGroupColumnEquipService.processEnumData(fieldName, String.valueOf(value));
instanceMap.putAll(map);
break;
default:
break;
}
}
return retValue;
}
public List<FormInstanceEquip> queryByInstanceId(Long instanceId) {
QueryWrapper<FormInstanceEquip> wrapper = new QueryWrapper<>();
wrapper.eq("instance_id", instanceId);
return this.baseMapper.selectList(wrapper);
}
@Override
@Transactional(rollbackFor = {BaseException.class, Exception.class})
public Map<String, Object> createByMap(String groupCode, String companyCode, Map<String, Object> map, String caseId) {
//1.查询分组表数据,数据准备用
Map<String, Object> returnMap = new HashMap<>();
FormGroupEquip formGroup = formGroupEquipService.getByUniqueKey(groupCode);
//2.查询分组对应的动态表单字段
List<FormGroupColumnEquip> optionList = formGroupColumnEquipService.queryByGroup(groupCode);
if (CollectionUtils.isEmpty(map) || formGroup == null) {
return returnMap;
}
Long instanceId = sequence.nextId();
if (!ValidationUtil.isEmpty(Arrays.stream(list).filter(x -> x.equals(groupCode)).collect(Collectors.toList()))) {
instanceId = Long.valueOf(caseId);
returnMap.put("code", sequence.nextId());
}
List<FormInstanceEquip> entities = new ArrayList<>();
//3.以数据库现在配置的动态表单字段为准,进行数据插入的准备
for (FormGroupColumnEquip option : optionList) {
String stringValue = checkAndFillCode(companyCode, map, groupCode, option);
FormInstanceEquip formInstance = new FormInstanceEquip();
Bean.copyExistPropertis(option, formInstance);
buildEntry(instanceId, formGroup, entities, option, stringValue, formInstance);
}
//4.批量插入
this.saveBatch(entities);
//5.返回值对象(数据暂时未用到)
returnMap = Bean.listToMap(entities, "fieldName", "fieldValue", FormInstanceEquip.class);
returnMap.put("instanceId", entities.iterator().next().getInstanceId());
return returnMap;
}
private void buildEntry(Long instanceId, FormGroupEquip formGroup, List<FormInstanceEquip> entities, FormGroupColumnEquip optionModel, String stringValue, FormInstanceEquip formInstance) {
formInstance.setFieldName(optionModel.getFieldName());
formInstance.setFieldLabel(optionModel.getFieldLabel());
formInstance.setDataType(optionModel.getDataType());
formInstance.setGroupId(optionModel.getGroupId());
formInstance.setGroupCode(optionModel.getGroupCode());
formInstance.setQueryStrategy(optionModel.getQueryStrategy());
formInstance.setFieldValue(stringValue);
formInstance.setInstanceId(instanceId);
formInstance.setGroupColumnId(optionModel.getId());
formInstance.setId(sequence.nextId());
formInstance.setGroupType(formGroup.getGroupType());
formInstance.setCreateDate(new Date());
entities.add(formInstance);
}
@Override
public Object saveForm(String groupCode, String orgCode, Map<String, Object> map, String instanceId) {
Map<String, Object> formKeyMap = formInstanceEquipService.createByMap(groupCode, orgCode, map, instanceId);
if (com.yeejoin.equipmanage.common.utils.StringUtil.isNotEmpty(instanceId)) {
return CommonResponseUtil.success(formKeyMap);
}
return formKeyMap;
}
@Override
@Transactional(rollbackFor = {Exception.class, BaseException.class})
public Object updateForm(Long instanceId, String orgCode, Map<String, Object> map, String groupCode) {
if (com.yeejoin.equipmanage.common.utils.StringUtil.isNotEmpty(groupCode)) {
map.keySet().forEach(x -> {
formInstanceEquipMapper.updateFormFieldValue(instanceId, x, String.valueOf(map.get(x)));
});
return CommonResponseUtil.success();
}
return null;
}
@Override
public Boolean deleteInstanceById(Long instanceId) {
return this.baseMapper.delete(new QueryWrapper<FormInstanceEquip>().lambda().eq(FormInstanceEquip::getInstanceId, instanceId)) > 0;
}
}
...@@ -13,7 +13,7 @@ import com.yeejoin.equipmanage.common.entity.FormGroupColumn; ...@@ -13,7 +13,7 @@ import com.yeejoin.equipmanage.common.entity.FormGroupColumn;
import com.yeejoin.equipmanage.common.entity.FormInstance; import com.yeejoin.equipmanage.common.entity.FormInstance;
import com.yeejoin.equipmanage.common.entity.SourceFile; import com.yeejoin.equipmanage.common.entity.SourceFile;
import com.yeejoin.equipmanage.common.entity.dto.BuildSearchDTO; import com.yeejoin.equipmanage.common.entity.dto.BuildSearchDTO;
import com.yeejoin.equipmanage.common.entity.dto.FormGroupColumnDto; import com.yeejoin.equipmanage.common.entity.dto.FormGroupColumnEquipDto;
import com.yeejoin.equipmanage.common.entity.vo.BuildingVideoListVO; import com.yeejoin.equipmanage.common.entity.vo.BuildingVideoListVO;
import com.yeejoin.equipmanage.common.enums.GroupCodeEnum; import com.yeejoin.equipmanage.common.enums.GroupCodeEnum;
import com.yeejoin.equipmanage.common.enums.GroupColumnDataType; import com.yeejoin.equipmanage.common.enums.GroupColumnDataType;
...@@ -574,13 +574,13 @@ public class FormInstanceServiceImpl extends ServiceImpl<FormInstanceMapper, For ...@@ -574,13 +574,13 @@ public class FormInstanceServiceImpl extends ServiceImpl<FormInstanceMapper, For
} }
@Override @Override
public List<FormGroupColumnDto> queryColumnAndValueByGroup(String groupCode, Long instanceId) { public List<FormGroupColumnEquipDto> queryColumnAndValueByGroup(String groupCode, Long instanceId) {
List<FormGroupColumnDto> list = new ArrayList<>(); List<FormGroupColumnEquipDto> list = new ArrayList<>();
List<FormGroupColumn> columnList = iFormGroupColumnService.queryByGroup(groupCode); List<FormGroupColumn> columnList = iFormGroupColumnService.queryByGroup(groupCode);
if (!CollectionUtils.isEmpty(columnList)) { if (!CollectionUtils.isEmpty(columnList)) {
Map<String, Object> map = queryForMap(instanceId); Map<String, Object> map = queryForMap(instanceId);
columnList.forEach(x -> { columnList.forEach(x -> {
FormGroupColumnDto dto = new FormGroupColumnDto(); FormGroupColumnEquipDto dto = new FormGroupColumnEquipDto();
BeanUtils.copyProperties(x, dto); BeanUtils.copyProperties(x, dto);
if (!map.isEmpty()) { if (!map.isEmpty()) {
dto.setFieldValue(map.get(dto.getFieldName()).toString()); dto.setFieldValue(map.get(dto.getFieldName()).toString());
......
...@@ -29,7 +29,6 @@ import org.springframework.beans.BeanUtils; ...@@ -29,7 +29,6 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.security.core.parameters.P;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.TransactionSynchronization; import org.springframework.transaction.support.TransactionSynchronization;
...@@ -38,18 +37,14 @@ import org.springframework.util.CollectionUtils; ...@@ -38,18 +37,14 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.lang.reflect.Array;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.BigInteger; import java.math.BigInteger;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
//import net.sf.json.JSONObject;
/** /**
* @author keyong * @author keyong
...@@ -601,24 +596,39 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -601,24 +596,39 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
public static List<EquipmentSpecificAlarmLog> upAlarmLogStatus(String iotCode, String equipmentSpecificIndexKey, public static List<EquipmentSpecificAlarmLog> upAlarmLogStatus(String iotCode, String equipmentSpecificIndexKey,
String traceId, IEquipmentSpecificAlarmLogService equipmentSpecificAlarmLogService, String traceId, IEquipmentSpecificAlarmLogService equipmentSpecificAlarmLogService,
boolean flag) { boolean flag) {
LambdaQueryWrapper<EquipmentSpecificAlarmLog> queryWrapper = new LambdaQueryWrapper(); LambdaQueryWrapper<EquipmentSpecificAlarmLog> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(EquipmentSpecificAlarmLog::getIotCode, iotCode); queryWrapper.eq(EquipmentSpecificAlarmLog::getIotCode, iotCode);
queryWrapper.eq(EquipmentSpecificAlarmLog::getEquipmentSpecificIndexKey, equipmentSpecificIndexKey); queryWrapper.eq(EquipmentSpecificAlarmLog::getEquipmentSpecificIndexKey, equipmentSpecificIndexKey);
queryWrapper.ne(EquipmentSpecificAlarmLog::getStatus, AlarmStatusEnum.HF.getCode()); queryWrapper.ne(EquipmentSpecificAlarmLog::getStatus, AlarmStatusEnum.HF.getCode());
List<EquipmentSpecificAlarmLog> logs = equipmentSpecificAlarmLogService.getBaseMapper().selectList(queryWrapper); List<EquipmentSpecificAlarmLog> logs = equipmentSpecificAlarmLogService.getBaseMapper().selectList(queryWrapper);
logs.forEach(x -> { if(!logs.isEmpty()){
x.setCleanTime(new Date()); EquipmentSpecificAlarmLog log = logs.get(0);
x.setStatus(AlarmStatusEnum.HF.getCode()); EquipmentSpecific specific = equipmentSpecificMapper.selectById(log.getEquipmentSpecificId());
x.setEquipmentSpecificIndexValue(TrueOrFalseEnum.fake.value); Date date = new Date();
if (!StringUtils.isEmpty(traceId)) { logs.forEach(x -> {
x.setTraceId(traceId); x.setCleanTime(new Date());
} x.setStatus(AlarmStatusEnum.HF.getCode());
}); if (!flag) {
x.setConfirmType(x.getType());
if (!logs.isEmpty()) { x.setConfirmTypeName(ConfirmAlamEnum.getTypeByCode(x.getType()));
String equipmentName = StringUtil.isNotEmpty(specific.getCode()) ? specific.getName() + "(" + specific.getCode() + ")" : specific.getName();
if (x.getType().equals(AlarmTypeEnum.PB.getCode())) {
x.setAlarmReason(equipmentName + "频繁故障/误报,将设备报警信息屏蔽。");
} else {
x.setAlarmReason(equipmentName + "引起设备报警");
}
x.setResolveResult(date + "系统收到设备复归(已消除)信号,系统自动处理。");
x.setConfirmUser("");
x.setConfirmUserName("系统自动处理");
x.setConfirmDate(date);
}
x.setEquipmentSpecificIndexValue(TrueOrFalseEnum.fake.value);
if (!StringUtils.isEmpty(traceId)) {
x.setTraceId(traceId);
}
});
equipmentSpecificAlarmLogService.updateBatchById(logs); equipmentSpecificAlarmLogService.updateBatchById(logs);
} }
if (flag) { if (flag) {
List<EquipmentSpecificIndex> indexList = equipmentSpecificIndexService.getEquipmentSpeIndexBySpeIotCode(iotCode); List<EquipmentSpecificIndex> indexList = equipmentSpecificIndexService.getEquipmentSpeIndexBySpeIotCode(iotCode);
publishDataToCanvas(indexList); publishDataToCanvas(indexList);
......
...@@ -22,10 +22,7 @@ import org.springframework.stereotype.Service; ...@@ -22,10 +22,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -128,6 +125,7 @@ public class ScrapServiceImpl extends ServiceImpl<ScrapMapper, Scrap> implements ...@@ -128,6 +125,7 @@ public class ScrapServiceImpl extends ServiceImpl<ScrapMapper, Scrap> implements
StockDetail stockDetail = new StockDetail(); StockDetail stockDetail = new StockDetail();
stockDetail.setId(x.getStockDetailId()); stockDetail.setId(x.getStockDetailId());
stockDetail.setStatus("7"); stockDetail.setStatus("7");
stockDetail.setUpdateDate(new Date());
stockDetailIds.add(stockDetail); stockDetailIds.add(stockDetail);
}); });
//修改库存状态 //修改库存状态
......
package com.yeejoin.equipmanage.service.impl; package com.yeejoin.equipmanage.service.impl;
import java.math.BigDecimal;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
...@@ -8,6 +9,7 @@ import java.util.stream.Collectors; ...@@ -8,6 +9,7 @@ import java.util.stream.Collectors;
import javax.annotation.Resource; import javax.annotation.Resource;
import com.yeejoin.equipmanage.common.utils.*; import com.yeejoin.equipmanage.common.utils.*;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
...@@ -609,8 +611,11 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements ...@@ -609,8 +611,11 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
AtomicReference<String> fightSysIds = new AtomicReference<>(""); AtomicReference<String> fightSysIds = new AtomicReference<>("");
String fightingSysCodes = equipmentDetailDownloadVOS.getFightingSysCodes(); String fightingSysCodes = equipmentDetailDownloadVOS.getFightingSysCodes();
if (StringUtils.isNotBlank(fightingSysCodes)) { if (StringUtils.isNotBlank(fightingSysCodes)) {
String[] idsArr = fightingSysCodes.split("-"); String[] codes = new String[]{};
List<FireFightingSystemEntity> fightingSystemList = fireFightingSystemService.getFightingSysByCodes(idsArr); String[] idsArr1 = fightingSysCodes.split("-");
String[] idsArr2 = fightingSysCodes.split(",");
codes = idsArr1.length >= idsArr2.length ? idsArr1 : idsArr2;
List<FireFightingSystemEntity> fightingSystemList = fireFightingSystemService.getFightingSysByCodes(codes);
if (!fightingSystemList.isEmpty()) { if (!fightingSystemList.isEmpty()) {
fightingSystemList.stream().forEach(x -> { fightingSystemList.stream().forEach(x -> {
String sysCodes = fightSysIds.get(); String sysCodes = fightSysIds.get();
...@@ -640,9 +645,9 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements ...@@ -640,9 +645,9 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
equipmentDetail.setName(equipmentDetailDownloadVOS.getName()); equipmentDetail.setName(equipmentDetailDownloadVOS.getName());
equipmentDetail.setArea(equipmentDetailDownloadVOS.getDescription()); equipmentDetail.setArea(equipmentDetailDownloadVOS.getDescription());
equipmentDetail.setProductionDate(equipmentDetailDownloadVOS.getProductionDate()); equipmentDetail.setProductionDate(equipmentDetailDownloadVOS.getProductionDate());
equipmentDetail.setExpiryDate(equipmentDetailDownloadVOS.getExpiryDate()); equipmentDetail.setExpiryDate(ObjectUtils.isEmpty(equipment.getExpiryDate()) ? "" : String.valueOf(equipment.getExpiryDate()));
equipmentDetail.setDeliveryDate(equipmentDetailDownloadVOS.getDeliveryDate()); equipmentDetail.setDeliveryDate(equipmentDetailDownloadVOS.getDeliveryDate());
equipmentDetail.setMaintenanceCycle(equipmentDetailDownloadVOS.getMaintenanceCycle()); equipmentDetail.setMaintenanceCycle(ObjectUtils.isEmpty(equipment.getMaintenanceCycle()) ? null : BigDecimal.valueOf(equipment.getMaintenanceCycle()));
// 导入新增所属单位 // 导入新增所属单位
...@@ -685,10 +690,10 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements ...@@ -685,10 +690,10 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
} }
if (StringUtils.isNotBlank(equipmentDetailDownloadVOS.getSystemName())) { // if (StringUtils.isNotBlank(equipmentDetailDownloadVOS.getSystemName())) {
String[] SystemName = equipmentDetailDownloadVOS.getSystemName().split("@"); // String[] SystemName = equipmentDetailDownloadVOS.getSystemName().split("@");
equipmentSpecific.setSystemId(SystemName[1]); // equipmentSpecific.setSystemId(SystemName[1]);
} // }
equipmentSpecificMapper.insert(equipmentSpecific); equipmentSpecificMapper.insert(equipmentSpecific);
StockServiceImpl controllerProxy = SpringUtils.getBean(StockServiceImpl.class); StockServiceImpl controllerProxy = SpringUtils.getBean(StockServiceImpl.class);
//添加对于装备类型统计数据的刷新 //添加对于装备类型统计数据的刷新
......
...@@ -437,7 +437,7 @@ public class FirefightersController extends BaseController { ...@@ -437,7 +437,7 @@ public class FirefightersController extends BaseController {
@ApiOperation(httpMethod = "PUT", value = "获取人员详情", notes = "获取人员详情") @ApiOperation(httpMethod = "PUT", value = "获取人员详情", notes = "获取人员详情")
public ResponseModel<PeopleInfoDto> updatePeopleById(@RequestBody PeopleInfoDto firefighters, @PathVariable Long id) { public ResponseModel<PeopleInfoDto> updatePeopleById(@RequestBody PeopleInfoDto firefighters, @PathVariable Long id) {
try { try {
if ("2".equals(firefighters.getFirefighters().getPeopleType())){ if ("1601".equals(firefighters.getFirefighters().getPeopleType())){
PeopleBasicInfoDto peopleBasicInfoDto = firefighters.getFirefighters(); PeopleBasicInfoDto peopleBasicInfoDto = firefighters.getFirefighters();
Firefighters firefighter = new Firefighters(); Firefighters firefighter = new Firefighters();
BeanUtils.copyProperties(peopleBasicInfoDto, firefighter); BeanUtils.copyProperties(peopleBasicInfoDto, firefighter);
......
...@@ -326,13 +326,16 @@ public class ExcelServiceImpl { ...@@ -326,13 +326,16 @@ public class ExcelServiceImpl {
SignDto dto = new SignDto(); SignDto dto = new SignDto();
if(par!=null && par.size()>0) { if(par!=null && par.size()>0) {
String date =par.containsKey("date")?par.get("date").toString():null; String date =par.containsKey("date")?par.get("date").toString():null;
String bizOrgCode =par.containsKey("bizOrgCode")?par.get("bizOrgCode").toString():null; // String bizOrgCode =par.containsKey("bizOrgCode")?par.get("bizOrgCode").toString():null;
String bizOrgName =par.containsKey("bizOrgName")?par.get("bizOrgName").toString():null; String bizOrgName =par.containsKey("bizOrgName")?par.get("bizOrgName").toString():null;
String name =par.containsKey("name")?par.get("name").toString():null; String name =par.containsKey("name")?par.get("name").toString():null;
String type =par.containsKey("type")?par.get("type").toString():null; String type =par.containsKey("type")?par.get("type").toString():null;
String signTimeBIGGER =par.containsKey("signTimeBIGGER")?par.get("signTimeBIGGER").toString():null; String signTimeBIGGER =par.containsKey("signTimeBIGGER")?par.get("signTimeBIGGER").toString():null;
String signTimeLESS =par.containsKey("signTimeLESS")?par.get("signTimeLESS").toString():null; String signTimeLESS =par.containsKey("signTimeLESS")?par.get("signTimeLESS").toString():null;
dto.setBizOrgCode(bizOrgCode); ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
String companyId = reginParams.getPersonIdentity().getCompanyId();
OrgUsr orgUsr = orgUsrMapper.queryBySequenceNbr(companyId);
dto.setBizOrgCode(orgUsr.getBizOrgCode());
dto.setDate(date); dto.setDate(date);
dto.setBizOrgName(bizOrgName); dto.setBizOrgName(bizOrgName);
dto.setName(name); dto.setName(name);
...@@ -850,7 +853,7 @@ public class ExcelServiceImpl { ...@@ -850,7 +853,7 @@ public class ExcelServiceImpl {
String relationship = firefightersContacts.getRelationship().split("@")[1]; String relationship = firefightersContacts.getRelationship().split("@")[1];
firefightersContacts.setRelationship(relationship); firefightersContacts.setRelationship(relationship);
} }
if (!ObjectUtils.isEmpty(item.getPeopleType()) && item.getPeopleType().contains("@") && "2".equals(item.getPeopleType().split("@")[1])) { if (!ObjectUtils.isEmpty(item.getPeopleType()) && item.getPeopleType().contains("@") && "1601".equals(item.getPeopleType().split("@")[1])) {
// 保存消防队伍人员和紧急联系人 // 保存消防队伍人员和紧急联系人
Firefighters firefighters = new Firefighters(); Firefighters firefighters = new Firefighters();
firefighters = Bean.toPo(item, firefighters); firefighters = Bean.toPo(item, firefighters);
......
...@@ -273,4 +273,104 @@ ...@@ -273,4 +273,104 @@
REPLACE INTO `wl_form_group`(`id`, `group_name`, `group_code`, `group_type`, `allow_operation`, `creator_id`, `create_date`) VALUES (132828674827, '消防水池装置', '92010700', 'equip', 'edit,delete', 2581805, '2022-10-09 03:36:44'); REPLACE INTO `wl_form_group`(`id`, `group_name`, `group_code`, `group_type`, `allow_operation`, `creator_id`, `create_date`) VALUES (132828674827, '消防水池装置', '92010700', 'equip', 'edit,delete', 2581805, '2022-10-09 03:36:44');
</sql> </sql>
</changeSet> </changeSet>
<changeSet author="keyong" id="202210131888-1">
<preConditions onFail="MARK_RAN">
<tableExists tableName="wl_equipment"/>
</preConditions>
<comment>添加基础字段</comment>
<sql>
REPLACE INTO `wl_equipment`(`id`, `name`, `code`, `category_id`, `country`, `maintenance_cycle`, `check_cycle`, `remark`, `management_style`, `reviser_id`, `date_updated`, `creater_id`, `unit_id`, `made_in`, `manufacturer`, `img`, `video`, `mark_specification`, `supplier_id`, `pref_quota`, `create_date`, `company_name`, `department_orgcode`, `department_name`, `inspection_spec`, `maintenance_spec`, `area`, `is_iot`, `clean_type`, `expiry_date`) VALUES (1578945741864742914, '消防水箱', '93060600HQK44', 1547790305762250754, NULL, NULL, NULL, NULL, NULL, NULL, '2022-10-09 11:10:28', NULL, 55, NULL, NULL, 'upload/state_grid/studio_normalapp_3056965/D0D194CE38EA9F604B401F1BFCC31975.jpg', NULL, NULL, NULL, NULL, '2022-10-09 11:09:35', NULL, NULL, NULL, NULL, NULL, NULL, '1', '0', NULL);
</sql>
</changeSet>
<changeSet author="keyong" id="202210131888-2">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="wl_equipment_specific_alarm_log" columnName="defect_batch_id"/>
</not>
</preConditions>
<comment>新增属性字段 defect_batch_id</comment>
<sql>
alter table `wl_equipment_specific_alarm_log` add column `defect_batch_id` varchar(64) DEFAULT NULL COMMENT '缺陷表批次号';
</sql>
</changeSet>
<changeSet author="ls" id="202207221028-1">
<preConditions onFail="MARK_RAN">
<not>
<tableExists tableName="wl_form_group_column_equip"/>
</not>
</preConditions>
<comment>create table wl_form_group_column_equip 分组字段表</comment>
<sql>
CREATE TABLE `wl_form_group_column_equip` (
`id` bigint(20) NOT NULL,
`field_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '字段名',
`field_label` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '中文名',
`data_type` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '数据类型:文本,数字,枚举,日期',
`group_id` bigint(20) NOT NULL COMMENT '字段分组主键',
`query_strategy` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '查询策略;全等,模糊,区间',
`not_null` bit(1) NOT NULL DEFAULT b'0' COMMENT '不能为空',
`group_code` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '所属分组编号',
`creator_id` bigint(20) NOT NULL COMMENT '创建者',
`create_date` datetime(0) NOT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '创建日期',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `unique_idx_group_code_file_name`(`group_code`, `field_name`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '分组字段表' ROW_FORMAT = Dynamic;
</sql>
</changeSet>
<changeSet author="ls" id="202207221028-2">
<preConditions onFail="MARK_RAN">
<not>
<tableExists tableName="wl_form_group_equip"/>
</not>
</preConditions>
<comment>create table wl_form_group_equip 分组表</comment>
<sql>
CREATE TABLE `wl_form_group_equip` (
`id` bigint(20) NOT NULL COMMENT '物理主键',
`group_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '分组名称',
`group_code` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '分组编号',
`group_type` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0' COMMENT '分组类型(点位图过滤用)',
`allow_operation` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '允许的操作(逗号分隔ids)',
`creator_id` bigint(20) NOT NULL COMMENT '更新者id',
`create_date` datetime(0) NOT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新日期',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `unique_idx_group_code`(`group_code`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '分组表' ROW_FORMAT = Dynamic;
</sql>
</changeSet>
<changeSet author="ls" id="202207221028-3">
<preConditions onFail="MARK_RAN">
<not>
<tableExists tableName="wl_form_instance_equip"/>
</not>
</preConditions>
<comment>create table wl_form_instance_equip 实例表</comment>
<sql>
CREATE TABLE `wl_form_instance_equip` (
`id` bigint(20) NOT NULL,
`field_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '字段名',
`field_label` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '中文名',
`data_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '数据类型:文本,数字,枚举,日期',
`group_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '分组类型(冗余字段便于查询)',
`group_id` bigint(20) NOT NULL COMMENT '字段分组id',
`field_value` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '动态配置字段的值',
`instance_id` bigint(20) NOT NULL COMMENT '设备实例id',
`group_column_id` bigint(20) NOT NULL COMMENT '字段定义信息的主键',
`query_strategy` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '查询策略;全等,模糊,区间',
`group_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '分组编号',
`creator_id` bigint(20) NOT NULL COMMENT '创建者',
`create_date` datetime(0) NOT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '创建日期',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `u_idx_instance_id`(`instance_id`, `field_name`) USING BTREE,
INDEX `idx_group_code`(`group_code`) USING BTREE,
INDEX `pk_build_instance_id`(`instance_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '实例表' ROW_FORMAT = Dynamic;
</sql>
</changeSet>
</databaseChangeLog> </databaseChangeLog>
\ No newline at end of file
...@@ -127,6 +127,6 @@ ...@@ -127,6 +127,6 @@
</if> </if>
</where> </where>
ORDER BY ORDER BY
report_date_desc DESC create_date DESC
</select> </select>
</mapper> </mapper>
...@@ -51,7 +51,8 @@ ...@@ -51,7 +51,8 @@
confirm_date, confirm_date,
(SELECT GROUP_CONCAT(fem.name) FROM `f_fire_fighting_system` fem WHERE find_in_set(fem.id,spe.system_id)) as systemName, (SELECT GROUP_CONCAT(fem.name) FROM `f_fire_fighting_system` fem WHERE find_in_set(fem.id,spe.system_id)) as systemName,
if(ala.clean_time is null, '未消除', '已消除') AS cleanStatus, if(ala.clean_time is null, '未消除', '已消除') AS cleanStatus,
ala.clean_time ala.clean_time,
ala.defect_batch_id
from from
wl_equipment_specific_alarm_log as ala wl_equipment_specific_alarm_log as ala
left join wl_equipment_specific as spe on spe.id = ala.equipment_specific_id left join wl_equipment_specific as spe on spe.id = ala.equipment_specific_id
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
sys.charge_person_name as chargePerson, sys.charge_person_name as chargePerson,
(select name from wl_manufacturer_info where id = construction_unit) as constructionUnit, (select name from wl_manufacturer_info where id = construction_unit) as constructionUnit,
(select name from wl_manufacturer_info where id = maintenance_unit) as maintenanceUnit, (select name from wl_manufacturer_info where id = maintenance_unit) as maintenanceUnit,
(select name from wl_equipment_category where id = system_type) as systemType, wec.name as systemType,
sys.system_type as systemTypeCode, sys.system_type as systemTypeCode,
sys.construction_unit as constructionUnitCode, sys.construction_unit as constructionUnitCode,
sys.maintenance_unit as maintenanceUnitCode, sys.maintenance_unit as maintenanceUnitCode,
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
from from
f_fire_fighting_system as sys f_fire_fighting_system as sys
left join wl_warehouse_structure wws on wws.id = sys.contro_box_build left join wl_warehouse_structure wws on wws.id = sys.contro_box_build
LEFT JOIN wl_equipment_category wec ON wec.id = sys.system_type
where 1=1 where 1=1
<if test="equimentName != null and equimentName !='' and equimentCode !='null' "> <if test="equimentName != null and equimentName !='' and equimentCode !='null' ">
AND sys.NAME like CONCAT('%',#{equimentName},'%') AND sys.NAME like CONCAT('%',#{equimentName},'%')
...@@ -37,7 +38,7 @@ ...@@ -37,7 +38,7 @@
AND sys.CODE like CONCAT('%',#{equimentCode},'%') AND sys.CODE like CONCAT('%',#{equimentCode},'%')
</if> </if>
<if test="nameOrCode != null and nameOrCode != ''"> <if test="nameOrCode != null and nameOrCode != ''">
AND (sys.CODE like CONCAT('%',#{nameOrCode},'%') or sys.NAME like CONCAT('%',#{equimentName},'%')) AND (sys.CODE like CONCAT('%',#{nameOrCode},'%') or sys.NAME like CONCAT('%',#{nameOrCode},'%') OR wec.`name` like CONCAT('%',#{nameOrCode},'%'))
</if> </if>
<if test="construction != 'all' "> <if test="construction != 'all' ">
AND sys.CONSTRUCTION_UNIT = #{construction} AND sys.CONSTRUCTION_UNIT = #{construction}
......
...@@ -472,7 +472,8 @@ ...@@ -472,7 +472,8 @@
wes.position, wes.position,
wes.name, wes.name,
we.expiry_date as weExpiry, we.expiry_date as weExpiry,
wed.expiry_date as wesExpiry, <!-- wed.expiry_date as wesExpiry,-->
wed.area as area,
wed.production_date as product wed.production_date as product
from wl_equipment_specific wes from wl_equipment_specific wes
left join wl_equipment_detail wed on wes.equipment_detail_id = wed.id left join wl_equipment_detail wed on wes.equipment_detail_id = wed.id
......
...@@ -746,6 +746,7 @@ ...@@ -746,6 +746,7 @@
<select id="getEquipSpecificDetail" <select id="getEquipSpecificDetail"
resultType="com.yeejoin.equipmanage.common.datasync.entity.FireEquipment"> resultType="com.yeejoin.equipmanage.common.datasync.entity.FireEquipment">
SELECT SELECT
DISTINCT
es.id, es.id,
es.`code` AS mrid, es.`code` AS mrid,
es.`code` AS materialObjectId, es.`code` AS materialObjectId,
...@@ -1525,23 +1526,27 @@ ...@@ -1525,23 +1526,27 @@
</select> </select>
<select id="queryCompanyStaData" resultType="java.util.Map"> <select id="queryCompanyStaData" resultType="java.util.Map">
SELECT SELECT
s.biz_org_code as bizOrgCode, s.biz_org_code AS bizOrgCode,
c.code as categoryCode, c.`code` AS categoryCode,
count(1) as total count( 1 ) AS total
FROM FROM
`wl_equipment_specific` s, `wl_equipment_specific` s
wl_equipment e, LEFT JOIN wl_equipment_detail ed ON ed.id = s.equipment_detail_id
wl_equipment_category c LEFT JOIN wl_equipment e ON e.id = ed.equipment_id
where LEFT JOIN wl_equipment_category c ON c.id = e.category_id
s.equipment_code = e.`code` WHERE
and e.category_id = c.id s.biz_org_code != ''
and s.biz_org_code <![CDATA[<>]]> '' AND s.biz_org_code IS NOT NULL
GROUP BY s.biz_org_code ,c.code AND c.`code` IS NOT NULL
AND c.`code` != ''
GROUP BY
s.biz_org_code,
c.`code`
</select> </select>
<select id="getEquipmentBySpecificId" resultType="String"> <select id="getEquipmentBySpecificId" resultType="com.yeejoin.equipmanage.common.entity.Equipment">
select select
we.clean_type we.*
from from
wl_equipment we wl_equipment we
LEFT JOIN `wl_equipment_detail` wed ON wed.equipment_id = we.id LEFT JOIN `wl_equipment_detail` wed ON wed.equipment_id = we.id
......
...@@ -1954,7 +1954,8 @@ ...@@ -1954,7 +1954,8 @@
LEFT JOIN wl_equipment_category wec ON wle.category_id = wec.id LEFT JOIN wl_equipment_category wec ON wle.category_id = wec.id
WHERE 1=1 WHERE 1=1
<if test="codeHead!=null and codeHead!='' and codeHead!=' '"> <if test="codeHead!=null and codeHead!='' and codeHead!=' '">
and LEFT (wle.CODE, #{hierarchy}) = #{codeHead} <!-- and LEFT (wle.CODE, #{hierarchy}) = #{codeHead}-->
and wec.`code` like concat(#{codeHead}, '%')
</if> </if>
<if test="equipTypeAmountPage.industryCode!=null"> <if test="equipTypeAmountPage.industryCode!=null">
and wec.industry_code = #{equipTypeAmountPage.industryCode} and wec.industry_code = #{equipTypeAmountPage.industryCode}
...@@ -4760,7 +4761,7 @@ ...@@ -4760,7 +4761,7 @@
LEFT JOIN wl_equipment_specific_index ei ON es.id = ei.equipment_specific_id LEFT JOIN wl_equipment_specific_index ei ON es.id = ei.equipment_specific_id
LEFT JOIN wl_equipment e ON e.id = ed.equipment_id LEFT JOIN wl_equipment e ON e.id = ed.equipment_id
LEFT JOIN wl_equipment_category ec ON e.category_id = ec.id LEFT JOIN wl_equipment_category ec ON e.category_id = ec.id
LEFT JOIN wl_form_instance fi ON fi.instance_id = es.id LEFT JOIN wl_form_instance_equip fi ON fi.instance_id = es.id
WHERE WHERE
ed.`code` LIKE '92031900%' ed.`code` LIKE '92031900%'
AND es.biz_org_code LIKE concat(#{bizOrgCode}, '%') AND es.biz_org_code LIKE concat(#{bizOrgCode}, '%')
...@@ -4847,7 +4848,10 @@ ...@@ -4847,7 +4848,10 @@
<select id="getPipeNetworkBySuper" resultType="java.util.Map"> <select id="getPipeNetworkBySuper" resultType="java.util.Map">
SELECT SELECT
a.`name`, a.`name`,
IFNULL(a.area, '') AS area, (CASE WHEN
LENGTH(trim(a.area)) = 0 THEN '--'
ELSE
IFNULL(a.area, '--') END) AS area,
a.id, a.id,
IFNULL(a.nowPressure, '--') AS nowPressure, IFNULL(a.nowPressure, '--') AS nowPressure,
a.nowPressureDate, a.nowPressureDate,
...@@ -4878,14 +4882,14 @@ ...@@ -4878,14 +4882,14 @@
max( CASE WHEN ei.equipment_index_key = 'FHS_PipePressureDetector_PipePressure' THEN DATE_FORMAT( ei.`update_date`, '%m-%d %H:%i:%S' ) END ), max( CASE WHEN ei.equipment_index_key = 'FHS_PipePressureDetector_PipePressure' THEN DATE_FORMAT( ei.`update_date`, '%m-%d %H:%i:%S' ) END ),
'--' '--'
) AS nowPressureDate, ) AS nowPressureDate,
max( CASE WHEN fi.field_name = 'lowLevel' THEN fi.field_value END ) AS minLevel, max( CASE WHEN fi.field_name = 'minPressure' THEN fi.field_value END ) AS minLevel,
max( CASE WHEN fi.field_name = 'highLevel' THEN fi.field_value END ) AS maxLevel max( CASE WHEN fi.field_name = 'maxPressure' THEN fi.field_value END ) AS maxLevel
FROM FROM
wl_equipment_specific es wl_equipment_specific es
LEFT JOIN wl_equipment_detail ed ON es.equipment_detail_id = ed.id LEFT JOIN wl_equipment_detail ed ON es.equipment_detail_id = ed.id
LEFT JOIN wl_warehouse_structure ws ON ws.id = es.warehouse_structure_id LEFT JOIN wl_warehouse_structure ws ON ws.id = es.warehouse_structure_id
LEFT JOIN wl_equipment_specific_index ei ON es.id = ei.equipment_specific_id LEFT JOIN wl_equipment_specific_index ei ON es.id = ei.equipment_specific_id
LEFT JOIN wl_form_instance fi ON fi.instance_id = es.id LEFT JOIN wl_form_instance_equip fi ON fi.instance_id = es.id
WHERE WHERE
ed.`code` LIKE '92011000%' ed.`code` LIKE '92011000%'
<!-- AND es.iot_code IS NOT NULL--> <!-- AND es.iot_code IS NOT NULL-->
...@@ -4913,7 +4917,7 @@ ...@@ -4913,7 +4917,7 @@
LEFT JOIN wl_equipment_detail ed ON es.equipment_detail_id = ed.id LEFT JOIN wl_equipment_detail ed ON es.equipment_detail_id = ed.id
LEFT JOIN wl_warehouse_structure ws ON ws.id = es.warehouse_structure_id LEFT JOIN wl_warehouse_structure ws ON ws.id = es.warehouse_structure_id
LEFT JOIN wl_equipment_specific_index ei ON es.id = ei.equipment_specific_id LEFT JOIN wl_equipment_specific_index ei ON es.id = ei.equipment_specific_id
LEFT JOIN wl_form_instance fi ON fi.instance_id = es.id LEFT JOIN wl_form_instance_equip fi ON fi.instance_id = es.id
WHERE WHERE
ed.`code` LIKE '92010700%' ed.`code` LIKE '92010700%'
AND es.iot_code IS NOT NULL AND es.iot_code IS NOT NULL
...@@ -4991,7 +4995,7 @@ ...@@ -4991,7 +4995,7 @@
0, 0,
max( CASE WHEN fi.field_name = 'maxLevel' THEN fi.field_value END )) AS maxValues max( CASE WHEN fi.field_name = 'maxLevel' THEN fi.field_value END )) AS maxValues
FROM FROM
wl_form_instance fi wl_form_instance_equip fi
WHERE WHERE
fi.instance_id = #{equipSpeId} fi.instance_id = #{equipSpeId}
</select> </select>
...@@ -5011,7 +5015,7 @@ ...@@ -5011,7 +5015,7 @@
0, 0,
max( CASE WHEN fi.field_name = 'maxPressure' THEN fi.field_value END )) AS maxValues max( CASE WHEN fi.field_name = 'maxPressure' THEN fi.field_value END )) AS maxValues
FROM FROM
wl_form_instance fi wl_form_instance_equip fi
WHERE WHERE
fi.instance_id = #{equipSpeId} fi.instance_id = #{equipSpeId}
</select> </select>
...@@ -5042,4 +5046,130 @@ ...@@ -5042,4 +5046,130 @@
WHERE WHERE
equipment_specific_id = #{equipSpeId} equipment_specific_id = #{equipSpeId}
</select> </select>
<select id="getEquipExpiryStatistics" resultType="java.util.Map">
SELECT
a.equipSortName AS `name`,
count( 1 ) AS `value`
FROM
(
SELECT
es.id,
ed.`name`,
ed.standard,
DATE_ADD( DATE_FORMAT( ed.production_date, '%Y-%m-%d' ), INTERVAL e.expiry_date YEAR ) AS passDate,
DATEDIFF( DATE_ADD( DATE_FORMAT( ed.production_date, '%Y-%m-%d' ), INTERVAL e.expiry_date YEAR ), CURRENT_DATE ) AS dayNum,
DATE_FORMAT( ed.production_date, '%Y-%m-%d' ) AS productDate,
e.`name` AS equipSortName,
e.id AS equipSortId
FROM
wl_equipment_specific es
LEFT JOIN wl_equipment_detail ed ON ed.id = es.equipment_detail_id
LEFT JOIN wl_equipment e ON ed.equipment_id = e.id
LEFT JOIN wl_stock_detail sd ON sd.equipment_detail_id = ed.id
WHERE
ed.production_date IS NOT NULL
AND ( (sd.`status` != 7) or (sd.`status` is null) or (sd.`status` = ''))
AND e.expiry_date IS NOT NULL
AND es.biz_org_code like concat(#{bizOrgCode}, '%')
<!-- AND DATEDIFF( DATE_ADD( DATE_FORMAT( ed.production_date, '%Y-%m-%d' ), INTERVAL e.expiry_date YEAR ), CURRENT_DATE ) > 0-->
AND #{expiryDayNum} >= DATEDIFF( DATE_ADD( DATE_FORMAT( ed.production_date, '%Y-%m-%d' ), INTERVAL e.expiry_date YEAR ), CURRENT_DATE )
) a
GROUP BY
a.equipSortId
</select>
<select id="getEquipExpiryListByPage" resultType="java.util.Map">
SELECT
es.id AS specificId,
ed.`name` AS specificName,
IFNULL( ed.standard, '' ) AS modelNumber,
DATE_ADD( DATE_FORMAT( ed.production_date, '%Y-%m-%d' ), INTERVAL e.expiry_date YEAR ) AS passDate,
DATEDIFF( DATE_ADD( DATE_FORMAT( ed.production_date, '%Y-%m-%d' ), INTERVAL e.expiry_date YEAR ), CURRENT_DATE ) AS dayNum,
DATE_FORMAT( ed.production_date, '%Y-%m-%d' ) AS productDate,
e.`name` AS equipSortName,
e.id AS equipSortId,
IFNULL( ws.full_name, '' ) AS equipAddress
FROM
wl_equipment_specific es
LEFT JOIN wl_equipment_detail ed ON ed.id = es.equipment_detail_id
LEFT JOIN wl_warehouse_structure ws ON ws.id = es.warehouse_structure_id
LEFT JOIN wl_equipment e ON ed.equipment_id = e.id
LEFT JOIN wl_stock_detail sd ON sd.equipment_detail_id = ed.id
WHERE
ed.production_date IS NOT NULL
AND ( (sd.`status` != 7) or (sd.`status` is null) or (sd.`status` = ''))
AND e.expiry_date IS NOT NULL
AND es.biz_org_code like concat(#{bizOrgCode}, '%')
<!-- AND DATEDIFF( DATE_ADD( DATE_FORMAT( ed.production_date, '%Y-%m-%d' ), INTERVAL e.expiry_date YEAR ), CURRENT_DATE ) > 0-->
AND #{expiryDayNum} >= DATEDIFF( DATE_ADD( DATE_FORMAT( ed.production_date, '%Y-%m-%d' ), INTERVAL e.expiry_date YEAR ), CURRENT_DATE )
ORDER BY DATEDIFF( DATE_ADD( DATE_FORMAT( ed.production_date, '%Y-%m-%d' ), INTERVAL e.expiry_date YEAR ), CURRENT_DATE ) ASC
</select>
<select id="getStockEquipStatistics" resultType="java.util.Map">
SELECT
'本月已报废' AS `content`,
'upload/equipment_category_icon/byybf.png' AS image,
(
SELECT
count( 1 )
FROM
wl_stock_detail sd
LEFT JOIN wl_equipment_specific es ON es.id = sd.equipment_specific_id
WHERE
sd.`status` = 7
AND update_date LIKE CONCAT( DATE_FORMAT( CURRENT_DATE, '%Y-%m' ), '%' )
AND es.biz_org_code LIKE concat(#{bizOrgCode}, '%')
) AS countNum UNION ALL
SELECT
'累计报废装备' AS `content`,
'upload/equipment_category_icon/ljbf.png' AS image,
(
SELECT
count( 1 )
FROM
wl_stock_detail sd
LEFT JOIN wl_equipment_specific es ON es.id = sd.equipment_specific_id
WHERE
sd.`status` = 7
AND es.biz_org_code LIKE concat(#{bizOrgCode}, '%')
) AS countNum UNION ALL
SELECT
'超期未报废' AS `content`,
'upload/equipment_category_icon/cqwbf.png' AS image,
(
SELECT
count( es.id )
FROM
wl_equipment_specific es
LEFT JOIN wl_equipment_detail ed ON ed.id = es.equipment_detail_id
LEFT JOIN wl_equipment e ON ed.equipment_id = e.id
LEFT JOIN wl_stock_detail sd ON sd.equipment_detail_id = ed.id
WHERE
ed.production_date IS NOT NULL
AND ( (sd.`status` != 7) or (sd.`status` is null) or (sd.`status` = ''))
AND e.expiry_date IS NOT NULL
AND es.biz_org_code LIKE concat(#{bizOrgCode}, '%')
AND 0 >= DATEDIFF( DATE_ADD( DATE_FORMAT( ed.production_date, '%Y-%m-%d' ), INTERVAL e.expiry_date YEAR ), CURRENT_DATE )
) AS countNum UNION ALL
SELECT
'近2月临期设备' AS `content`,
'upload/equipment_category_icon/j2ylqsb.png' AS image,
(
SELECT
count( es.id )
FROM
wl_equipment_specific es
LEFT JOIN wl_equipment_detail ed ON ed.id = es.equipment_detail_id
LEFT JOIN wl_equipment e ON ed.equipment_id = e.id
LEFT JOIN wl_stock_detail sd ON sd.equipment_detail_id = ed.id
WHERE
ed.production_date IS NOT NULL
AND ( (sd.`status` != 7) or (sd.`status` is null) or (sd.`status` = ''))
AND e.expiry_date IS NOT NULL
AND es.biz_org_code LIKE concat(#{bizOrgCode}, '%')
<!-- AND DATEDIFF( DATE_ADD( DATE_FORMAT( ed.production_date, '%Y-%m-%d' ), INTERVAL e.expiry_date YEAR ), CURRENT_DATE ) > 0-->
AND 60 >= DATEDIFF( DATE_ADD( DATE_FORMAT( ed.production_date, '%Y-%m-%d' ), INTERVAL e.expiry_date YEAR ), CURRENT_DATE )
) AS countNum
</select>
</mapper> </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.equipmanage.mapper.FormGroupColumnEquipMapper">
</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.equipmanage.mapper.FormGroupEquipMapper">
</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.equipmanage.mapper.FormInstanceEquipMapper">
<resultMap id="resultMapDTO" type="com.yeejoin.equipmanage.common.entity.dto.BuildSearchDTO">
<result column="instanceId" property="instanceId"/>
<result column="fieldValue" property="fieldValue"/>
<result column="groupType" property="groupType"/>
</resultMap>
<select id="queryInstancePage" resultType="map">
select
d.*
from
(
select
i.INSTANCE_ID instanceId,
i.GROUP_CODE groupCode,
<foreach collection="fieldNames" item="value" index="key" separator=",">
MAX(CASE WHEN i.FIELD_NAME = #{key} THEN i.FIELD_VALUE END) as ${key}
</foreach>
from
wl_form_instance_equip i
where i.GROUP_CODE = #{groupCode}
GROUP by
i.INSTANCE_ID)d
<if test="params != null and params.size() > 0">
where
1=1
<foreach collection="params" index="key" item="value" separator="">
<choose>
<when test="fieldNames[key] == 'like' and value !=null and value !=''">
and d.${key} like concat('%',#{value},'%')
</when>
<when test="fieldNames[key] == 'eq' and value !=null and value !=''">
and d.${key} = #{value}
</when>
</choose>
</foreach>
</if>
order by instanceId desc
</select>
<select id="getChildListdate" resultType="map">
SELECT getChildListdate ( #{id} ) ids
</select>
<update id="updateListChild" >
UPDATE wl_form_instance_equip set field_value =#{value}
where wl_form_instance_equip.group_type in('building','room','floor')
<if test ="ids != null and ids.size()>0">
and wl_form_instance_equip.instance_id in
<foreach collection="ids" index="index" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</if>
and wl_form_instance_equip.field_name=#{fieldName}
</update>
<select id="queryForMapList" resultType="map">
select
d.*
from
(
select
i.INSTANCE_ID instanceId,
i.GROUP_CODE groupCode
<foreach collection="fieldNames" item="value" open="," index="key" separator=",">
MAX( CASE WHEN i.FIELD_NAME = #{key} THEN i.FIELD_VALUE END) ${key}
</foreach>
from
wl_form_instance_equip i
where i.GROUP_CODE = #{groupCode}
GROUP by
i.INSTANCE_ID)d
<if test="params != null and params.size() > 0">
where
1=1
<foreach collection="params" index="key" item="value" separator="">
<choose>
<when test="fieldNames[key] == 'like' and value !=null and value !=''">
AND d.${key} like concat('%',#{value},'%')
</when>
<when test="fieldNames[key] == 'eq' and value !=null and value !=''">
AND d.${key} = #{value}
</when>
</choose>
</foreach>
</if>
order by d.instanceId desc
</select>
<select id="querySpecialChildrenList" resultType="hashmap">
SELECT
*
FROM
(
SELECT
a.instance_id as id,
a.instance_id AS instanceId,
a.group_code AS groupCode,
a.group_type AS groupType,
wlss.scene_id as sceneId,
MAX( CASE WHEN a.field_name = 'parentId' THEN a.field_value END ) AS parentId,
MAX( CASE WHEN a.field_name = 'name' THEN a.field_value END ) AS instanceName,
MAX( CASE WHEN a.field_name = 'name' THEN a.field_value END ) AS name,
MAX( CASE WHEN a.field_name = 'code' THEN a.field_value END ) AS code,
MAX( CASE WHEN a.field_name = 'isRisk' THEN a.field_value END ) AS isRisk,
MAX( CASE WHEN a.field_name = 'address' THEN a.field_value END ) AS address,
MAX( CASE WHEN a.field_name = 'bizOrgCode' THEN a.field_value END ) AS bizOrgCode,
MAX( CASE WHEN a.field_name = 'bizOrgName' THEN a.field_value END ) AS bizOrgName
FROM
`wl_form_instance_equip` a
LEFT JOIN wl_source_scene wlss ON wlss.source_id = a.instance_id
GROUP BY
a.instance_id
) sa
<where>
<if test="parentId != null and parentId !=''">
sa.parentId = #{parentId}
</if>
<if test="bizOrgCode != null and bizOrgCode !=''">
sa.bizOrgCode like CONCAT(#{bizOrgCode},'%')
</if>
</where>
</select>
<select id="querySpecialChildrenListByName" resultType="hashmap">
SELECT
*
FROM
(
SELECT
a.instance_id as id,
a.instance_id AS instanceId,
a.group_code AS groupCode,
a.group_type AS groupType,
wlss.scene_id as sceneId,
MAX( CASE WHEN a.field_name = 'parentId' THEN a.field_value END ) AS parentId,
MAX( CASE WHEN a.field_name = 'name' THEN a.field_value END ) AS instanceName,
MAX( CASE WHEN a.field_name = 'name' THEN a.field_value END ) AS name,
MAX( CASE WHEN a.field_name = 'code' THEN a.field_value END ) AS code,
MAX( CASE WHEN a.field_name = 'isRisk' THEN a.field_value END ) AS isRisk,
MAX( CASE WHEN a.field_name = 'address' THEN a.field_value END ) AS address,
MAX( CASE WHEN a.field_name = 'bizOrgCode' THEN a.field_value END ) AS bizOrgCode,
MAX( CASE WHEN a.field_name = 'bizOrgName' THEN a.field_value END ) AS bizOrgName
FROM
`wl_form_instance_equip` a
LEFT JOIN wl_source_scene wlss ON wlss.source_id = a.instance_id
GROUP BY
a.instance_id
) sa
<where>
<if test="parentId != null and parentId !=''">
and sa.parentId = #{parentId}
</if>
<if test="bizOrgCode != null and bizOrgCode !=''">
and sa.bizOrgCode like CONCAT(#{bizOrgCode},'%')
</if>
<if test="name != null and name !=''">
and sa.instanceName like CONCAT('%', #{name}, '%')
</if>
</where>
</select>
<select id="queryPage" resultType="hashmap">
select * from (SELECT
a.instance_id AS instanceId,
a.group_code AS groupCode,
a.group_type AS groupType,
a.field_value AS fieldValue,
a.field_label AS fieldLabel,
MAX(CASE WHEN a.field_name = 'parentId' THEN a.field_value END) AS parentId,
MAX(CASE WHEN a.field_name = 'name' THEN a.field_value END)AS buildName,
MAX(CASE WHEN a.field_name = 'isRisk' THEN a.field_value END)AS isRisk,
MAX(CASE WHEN a.field_name = 'code' THEN a.field_value END)AS buildCode,
MAX(CASE WHEN a.field_name = 'certificatesPersonNum' THEN a.field_value END)AS certificatesPersonNum,
MAX(CASE WHEN a.field_name = 'dutyUser' THEN a.field_value END)AS dutyUser,
MAX(CASE WHEN a.field_name = 'hasFirePlan' THEN a.field_value END)AS hasFirePlan,
MAX(CASE WHEN a.field_name = 'installLoc' THEN a.field_value END)AS installLoc,
MAX(CASE WHEN a.field_name = 'inwhichBuild' THEN a.field_value END)AS inwhichBuild,
MAX(CASE WHEN a.field_name = 'maintenanceUnit' THEN a.field_value END)AS maintenanceUnit,
MAX(CASE WHEN a.field_name = 'bizOrgCode' THEN a.field_value END)AS bizOrgCode,
MAX(CASE WHEN a.field_name = 'bizOrgName' THEN a.field_value END)AS bizOrgName
FROM
`wl_form_instance_equip` a
GROUP BY
a.instance_id) sa
<where>
sa.parentId in
<foreach item="item" index="index" collection="query.instanceIds" open="(" separator="," close=")">
#{item}
</foreach>
<if test="query.fieldValue != null and query.fieldValue !=''">
AND sa.fieldValue = #{query.fieldValue}
</if>
<if test="query.bizOrgCode != null and query.bizOrgCode !=''">
AND sa.bizOrgCode LIKE CONCAT(#{query.bizOrgCode},'%')
</if>
</where>
ORDER BY sa.instanceId DESC
</select>
<select id="roomPage" resultType="hashmap">
select * from (SELECT
a.instance_id AS instanceId,
a.group_code AS groupCode,
a.group_type AS groupType,
a.field_value AS fieldValue,
a.field_label AS fieldLabel,
MAX(CASE WHEN a.field_name = 'parentId' THEN a.field_value END) AS parentId,
MAX(CASE WHEN a.field_name = 'name' THEN a.field_value END)AS buildName,
MAX(CASE WHEN a.field_name = 'isRisk' THEN a.field_value END)AS isRisk
FROM
`wl_form_instance_equip` a
GROUP BY
a.instance_id) sa
<where>
sa.instanceId in
<foreach item="item" index="index" collection="query.instanceIds" open="(" separator="," close=")">
#{item}
</foreach>
<if test="query.fieldValue != null and query.fieldValue !=''">
AND sa.fieldValue = #{query.fieldValue}
</if>
</where>
ORDER BY sa.instanceId DESC
</select>
<select id="queryFloorRoom" resultType="hashmap">
SELECT * FROM (SELECT
a.instance_id AS instanceId,
a.group_type AS groupType,
MAX(
CASE
WHEN a.field_name = 'parentId' THEN
a.field_value
END
) AS parentId
FROM
`wl_form_instance_equip` a
GROUP BY
a.instance_id) sa
WHERE sa.parentId in
<foreach item="item" index="index" collection="list" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<select id="getBuildFloorList" resultMap="resultMapDTO">
SELECT
sa.instanceId,
sa.groupType,
sa.fieldValue
FROM
(
SELECT
a.instance_id AS instanceId,
a.group_type AS groupType,
MAX( CASE WHEN a.field_name = 'parentId' THEN a.field_value END ) AS parentId,
MAX( CASE WHEN a.field_name = 'name' THEN a.field_value END ) AS fieldValue
FROM
`wl_form_instance_equip` a
GROUP BY
a.instance_id
) sa
<where>
sa.parentId = #{query.instanceId}
<if test="query.groupType != null and query.groupType !=''">
AND sa.groupType = #{query.groupType}
</if>
</where>
ORDER BY
sa.instanceId DESC
</select>
<select id="findDetailByInstanceId" resultType="java.util.LinkedHashMap">
SELECT
a.field_label AS `key`,
a.field_value AS `value`
FROM
`wl_form_instance_equip` a
WHERE
a.instance_id = #{instanceId}
AND
a.field_label != '父级id'
ORDER BY a.group_column_id
</select>
<select id="findByInstanceId" resultType="java.util.LinkedHashMap">
SELECT
fi.NAME AS '建筑名称',
fi.dutyUser AS '负责人',
fi.buildType AS '建筑结构',
fi.dutyUserPhone AS '负责人电话',
fi.buildUseType AS '使用性质',
fi.structureType AS '结构类型',
fi.address AS '详细地址'
FROM
(
SELECT
a.instance_id,
MAX( CASE WHEN a.field_name = 'name' THEN a.field_value END ) AS NAME,
MAX( CASE WHEN a.field_name = 'dutyUser' THEN a.field_value END ) AS dutyUser,
MAX( CASE WHEN a.field_name = 'buildType' THEN a.field_value END ) AS buildType,
MAX( CASE WHEN a.field_name = 'dutyUserPhone' THEN a.field_value END ) AS dutyUserPhone,
MAX( CASE WHEN a.field_name = 'buildUseType' THEN a.field_value END ) AS buildUseType,
MAX( CASE WHEN a.field_name = 'structureType' THEN a.field_value END ) AS structureType,
MAX( CASE WHEN a.field_name = 'address' THEN a.field_value END ) AS address
FROM
`wl_form_instance_equip` a
WHERE
a.instance_id = #{instanceId}
GROUP BY
a.instance_id
) fi
</select>
<select id="getFormInstanceById" resultType="java.util.Map">
SELECT
a.instance_id AS instanceId,
MAX( CASE WHEN a.field_name = 'name' THEN a.field_value END ) AS `name`,
MAX( CASE WHEN a.field_name = 'code' THEN a.field_value END ) AS `code`,
MAX( CASE WHEN a.field_name = 'address' THEN a.field_value END ) AS address,
MAX( CASE WHEN a.field_name = 'riskPointId' THEN a.field_value END ) AS riskSourceId
FROM
`wl_form_instance_equip` a
<where>
<if test="instanceId != null">
a.instance_id = #{instanceId}
</if>
</where>
</select>
<!-- 消防建筑视屏监控统计树 -->
<select id="getBuildVideoListCount" resultType="hashmap">
SELECT * FROM(
SELECT
sa.*,
b.total
FROM
(
SELECT
a.instance_id AS instanceId,
a.group_code AS groupCode,
a.group_type AS groupType,
MAX( CASE WHEN a.field_name = 'parentId' THEN a.field_value END ) AS parentId,
MAX( CASE WHEN a.field_name = 'name' THEN a.field_value END ) AS instanceName,
MAX( CASE WHEN a.field_name = 'biz_org_code' THEN a.field_value END ) AS bizOrgCode
FROM
`wl_form_instance_equip` a
GROUP BY
a.instance_id
) sa
LEFT JOIN ( SELECT wlv.source_id, count( wlv.source_id ) AS total FROM `wl_video_source` wlv GROUP BY wlv.source_id ) b ON b.source_id = sa.instanceId
union all
select
123456789123456789 as instanceId,
'else' as groupCode,
'else' as groupType,
0 as parentId,
'其他' as instanceName,
NULL AS bizOrgCode,
count(1) as total
from
wl_video where id not in (select video_id from wl_video_source)
) tmp
<where>
<if test="list != null and list.size() >0">
AND tmp.bizOrgCode IN
<foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</where>
</select>
<select id="getColaBuildVideoListCount" resultType="hashmap">
SELECT
sa.*,
b.total
FROM
(
SELECT
wws.id AS instanceId,
CONCAT(wws.parent_id,'') AS parentId,
wws.name AS instanceName
FROM
`wl_warehouse_structure` wws
GROUP BY
wws.id
) sa
LEFT JOIN (
SELECT
wws.id AS buildId,
COUNT(wws.id) AS total
FROM
wl_stock_detail wsd,
wl_equipment_detail wed,
wl_equipment we,
wl_equipment_category wec,
wl_warehouse_structure wws
WHERE
wsd.equipment_detail_id = wed.id
AND wed.equipment_id = we.id
AND wec.id = we.category_id
AND wws.id = wsd.warehouse_structure_id
and wec.code in
<foreach collection="dto.monitorCodes" item="dto.monitorCodes" index="index" open="(" close=")" separator=",">
#{dto.monitorCodes}
</foreach>
GROUP BY wws.id
) b ON b.buildId = sa.instanceId
</select>
<insert id="saveStucture">
insert into wl_warehouse_structure
(id,
code,
name,
full_name,
parent_id,
warehouse_id,
create_date,
biz_org_code,
biz_org_name,
source_id)
VALUES(
#{instanceId},
#{code},
#{name},
#{address},
#{parentId},
0,
now(),
#{bizOrgCode},
#{bizOrgName},
#{instanceId})
</insert>
<select id="getStuctureName" resultType="String">
select full_name from wl_warehouse_structure
where id = #{id}
</select>
<select id="getStuName" resultType="String">
select name from wl_warehouse_structure
where id = #{id}
</select>
<select id="getStructureParentId" resultType="Long">
select parent_id from wl_warehouse_structure
where id = #{id}
</select>
<delete id="deleteStuById">
DELETE FROM wl_warehouse_structure WHERE id = #{id}
</delete>
<update id="updateStr">
update wl_warehouse_structure
set name = #{name} ,
full_name = #{fullName},
parent_id = #{parentId},
code = #{code},
biz_org_code = #{bizOrgCode},
biz_org_name= #{bizOrgName}
where id = #{id}
</update>
<update id="updateFormFieldValue">
update wl_form_instance_equip
set
field_value = #{value}
where instance_id = #{id} AND field_name = #{name}
</update>
<update id="updateStrFullName">
update wl_warehouse_structure
set full_name=replace(full_name,#{name},#{fullName})
where
id in (
select instance_id from wl_form_instance_equip where field_name = 'parentId' and field_value = #{id}
union all
select instance_id from wl_form_instance_equip where field_name = 'parentId' and field_value in (
select instance_id from wl_form_instance_equip where field_name = 'parentId' and field_value = #{id}
)
)
</update>
<update id="clearSystemId">
update wl_form_instance_equip
set field_value = null
where field_name like '%system%'
and field_value = #{id}
</update>
<select id="getChildrenNotIsRiskList" resultType="com.yeejoin.equipmanage.common.entity.dto.BuildIsRiskDTO">
select * from (SELECT
a.instance_id AS instanceId,
MAX(
CASE
WHEN a.field_name = 'parentId' THEN
a.field_value
END
) AS parentId,
MAX(
CASE
WHEN a.field_name = 'isRisk' THEN
a.field_value
END
) AS isRisk
FROM
`wl_form_instance_equip` a
GROUP BY
a.instance_id) sa where sa.parentId = #{instanceId} and sa.isRisk = 'false' and sa.isRisk is not null
</select>
<update id="clearRegionBind">
UPDATE
wl_form_instance_equip
SET field_value = (
CASE field_name
WHEN 'isRisk' THEN
'false'
WHEN 'riskPointId' THEN
''
END
)
WHERE
instance_id = #{instanceId} and (field_name = 'isRisk' or field_name = 'riskPointId')
</update>
<select id="getParentId" resultType="map">
select
*
from
wl_warehouse_structure
where
parent_id = #{parentId}
</select>
<select id="getIdAndType" resultType="hashmap">
select
ins.field_value as id,
inst.group_code as type,
str.full_name as address
from
wl_form_instance_equip as ins
left join wl_form_instance_equip as inst on ins.field_value = inst.instance_id
left join wl_warehouse_structure as str on ins.instance_id = str.source_id
where ins.instance_id =#{id}
and ins.field_name ='parentId'
group by ins.field_value
</select>
<!-- // 需求958 导出模板需要列表获取建筑 by kongfm 2021-09-15-->
<select id="getAllBuilding" resultType="hashmap">
select * from (SELECT
a.instance_id AS instanceId,
a.group_code AS groupCode,
a.group_type AS groupType,
a.field_value AS fieldValue,
a.field_label AS fieldLabel,
MAX(CASE WHEN a.field_name = 'parentId' THEN a.field_value END) AS parentId,
MAX(CASE WHEN a.field_name = 'name' THEN a.field_value END)AS buildName
FROM
`wl_form_instance_equip` a
where a.group_type = 'building'
GROUP BY
a.instance_id) sa
ORDER BY sa.instanceId DESC
</select>
<select id="getBuildingToLongitudeAndLatitude" resultType="hashmap">
SELECT
max(CASe WHEN field_name = 'latitude' THEN field_value end ) AS latitude,
max(CASe WHEN field_name = 'longitude' THEN field_value end ) AS longitude
FROM
wl_form_instance_equip
WHERE
instance_id = #{instanceId}
</select>
<!--<select id="getBuildVideoCount" resultType="hashmap">-->
<!-- SELECT-->
<!-- wlv.source_id AS buildId,-->
<!-- count( wlv.source_id ) AS total-->
<!-- FROM-->
<!-- `wl_video_source` wlv-->
<!-- GROUP BY-->
<!-- wlv.source_id-->
<!--</select>-->
<select id="getBuildVideoCount" resultType="hashmap">
SELECT
b.instanceId AS buildId,
COUNT( vs.video_id ) AS total
FROM
get_building_tree b
JOIN wl_video_source vs ON FIND_IN_SET( b.instanceId, vs.parent_source_ids )
JOIN wl_video v on v.id = vs.video_id
GROUP BY
b.instanceId
</select>
<update id ="updateFormInstanceByInstanceAndFieldName">
UPDATE wl_form_instance_equip
SET field_value = #{value}
WHERE
instance_id =#{instanceId}
AND field_name =#{name}
</update>
<select id="selectChildListdate" resultType="java.lang.String">
SELECT distinct a.instance_id FROM
(select instance_id ,field_value from wl_form_instance_equip where group_type in('building','room','floor') and field_name='parentId') a
WHERE a.field_value = #{id} union all SELECT distinct b.instance_id FROM
(select instance_id ,field_value from wl_form_instance_equip where group_type in('building','room','floor') and field_name='parentId') b
WHERE b.field_value in (SELECT distinct c.instance_id FROM
(select instance_id ,field_value from wl_form_instance_equip where group_type in('building','room','floor') and field_name='parentId') c
WHERE c.field_value = #{id})
</select>
<select id="querySpecialChildrenListByBizOrgCode" resultType="java.util.Map">
SELECT
*
FROM
(
SELECT
a.instance_id as id,
a.instance_id AS instanceId,
a.group_code AS groupCode,
a.group_type AS groupType,
wlss.scene_id as sceneId,
MAX( CASE WHEN a.field_name = 'parentId' THEN a.field_value END ) AS parentId,
MAX( CASE WHEN a.field_name = 'name' THEN a.field_value END ) AS instanceName,
MAX( CASE WHEN a.field_name = 'name' THEN a.field_value END ) AS name,
MAX( CASE WHEN a.field_name = 'code' THEN a.field_value END ) AS code,
MAX( CASE WHEN a.field_name = 'isRisk' THEN a.field_value END ) AS isRisk,
MAX( CASE WHEN a.field_name = 'address' THEN a.field_value END ) AS address,
MAX( CASE WHEN a.field_name = 'bizOrgCode' THEN a.field_value END ) AS bizOrgCode,
MAX( CASE WHEN a.field_name = 'bizOrgName' THEN a.field_value END ) AS bizOrgName
FROM
`wl_form_instance_equip` a
LEFT JOIN wl_source_scene wlss ON wlss.source_id = a.instance_id
GROUP BY
a.instance_id
) sa
<where>
<if test="parentId != null and parentId !=''">
sa.parentId = #{parentId}
</if>
<if test="bizOrgCode != null and bizOrgCode !=''">
and sa.bizOrgCode LIKE CONCAT(#{bizOrgCode},'%')
</if>
</where>
</select>
</mapper>
...@@ -3,21 +3,100 @@ ...@@ -3,21 +3,100 @@
<mapper namespace="com.yeejoin.equipmanage.mapper.MarqueeDataMapper"> <mapper namespace="com.yeejoin.equipmanage.mapper.MarqueeDataMapper">
<select id="selectAll" resultType="java.util.Map"> <select id="selectAll" resultType="java.util.Map">
select SELECT
id messageId, wlesal.id,
type equipmentSpecificIndexName, wlesal.org_code,
position, wlesal.equipment_specific_id AS fireEquipmentId,
name equipmentSpecificName, wles.equipment_detail_id AS equipDetailId,
date_format( wles.CODE AS fireEquipmentCode,
create_date, wles.system_id AS systemId,
'%Y-%m-%d %H:%i:%s' IF
) createDate, (
message_type messageType, wles.CODE IS NULL,
is_read isRead, wlesal.equipment_specific_name,
equipment_specific_id id concat( wlesal.equipment_specific_name, '(', wles.CODE, ')' )) AS fireEquipmentName,
from concat( wlesal.equipment_specific_name, wlesal.equipment_specific_index_name ) AS alamContent,
wl_marquee_data IF
where ( wlesal.confirm_type IS NULL, '未处理', '已处理' ) handleStatus,
is_read = '0' IF
( wlesal.clean_time IS NOT NULL, '已消除', '未消除' ) cleanStatus,
confirm_type AS handleType,
wlesal.equipment_index_id AS fireEquipmentIndexId,
wlesal.equipment_specific_index_key AS fireEquipmentSpecificIndexKey,
wlesal.equipment_specific_index_name AS fireEquipmentSpecificIndexName,
wles.warehouse_structure_id AS buildId,
we.img AS imgUrl,
CASE
wlesal.equipment_specific_index_value
WHEN 'true' THEN
'是'
WHEN 'false' THEN
'否' ELSE wlesal.equipment_specific_index_value
END AS fireEquipmentPointValue,
wlesal.type AS typeCode,
( SELECT type_name FROM wl_signal_classify sc WHERE sc.type_code = wlesal.type LIMIT 1 ) AS type,
date_format( wlesal.create_date, '%Y-%m-%d %H:%i:%s' ) createDate,
CONCAT_WS( ' ', wles.position, wled.area ) AS warehouseStructureName,
/*告警列表拼接详细地址*/
(
SELECT
group_concat( fet.`name` )
FROM
f_equipment_fire_equipment AS fefe
LEFT JOIN f_equipment AS fet ON fet.id = fefe.equipment_id
WHERE
fefe.fire_equipment_id = wlesal.equipment_specific_id
) AS equipmentName,
wlesal.equipment_specific_name AS equipmentSpecificName,
wles.position,
null messageId,
null messageType,
null isRead
FROM wl_equipment_specific_alarm_log wlesal
LEFT JOIN wl_equipment_specific wles ON wlesal.equipment_specific_id = wles.id
LEFT JOIN wl_equipment_detail wled ON wles.equipment_detail_id = wled.id
LEFT JOIN wl_equipment we ON wled.equipment_id = we.id
<where>
<if test="param.cleanStatus != null and param.cleanStatus != '' and param.cleanStatus == 2">
wlesal.clean_time IS NULL
</if>
<if test="param.bizOrgCode != null and param.bizOrgCode != ''">AND
wles.biz_org_code like concat (#{param.bizOrgCode},'%')
</if>
</where>
UNION ALL
SELECT
equipment_specific_id id,
NULL org_code,
null fireEquipmentId,
NULL equipDetailId,
NULL fireEquipmentCode,
null systemId,
NULL fireEquipmentName,
NULL alamContent,
NULL handleStatus,
NULL cleanStatus,
NULL handleType,
NULL fireEquipmentIndexId,
NULL fireEquipmentSpecificIndexKey,
type fireEquipmentSpecificIndexName,
NULL buildId,
NULL imgUrl,
NULL fireEquipmentPointValue,
NULL typeCode,
NULL type,
date_format( create_date, '%Y-%m-%d %H:%i:%s' ) createDate,
NULL warehouseStructureName,
NULL equipmentName,
NAME equipmentSpecificName,
position,
id messageId,
message_type messageType,
is_read isRead
FROM
wl_marquee_data
WHERE
is_read = '0'
ORDER BY createDate DESC
</select> </select>
</mapper> </mapper>
...@@ -3532,5 +3532,75 @@ ...@@ -3532,5 +3532,75 @@
INSERT INTO `cb_dynamic_form_column` (`sequence_nbr`, `field_code`, `field_name`, `field_type`, `group_id`, `query_strategy`, `not_null`, `block`, `group_code`, `column_config`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `remark`, `sort`, `org_code`) VALUES (132828674812113, 'qualificationCertificate', '岗位资质证书', 'upload', 9, 'eq', b'0', b'0', '246', NULL, NULL, NULL, '2022-10-21 10:29:41', b'0', NULL, 30, NULL); INSERT INTO `cb_dynamic_form_column` (`sequence_nbr`, `field_code`, `field_name`, `field_type`, `group_id`, `query_strategy`, `not_null`, `block`, `group_code`, `column_config`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `remark`, `sort`, `org_code`) VALUES (132828674812113, 'qualificationCertificate', '岗位资质证书', 'upload', 9, 'eq', b'0', b'0', '246', NULL, NULL, NULL, '2022-10-21 10:29:41', b'0', NULL, 30, NULL);
</sql> </sql>
</changeSet> </changeSet>
<changeSet author="ky" id="1888078784-1">
<preConditions onFail="MARK_RAN">
<tableExists tableName="cb_data_dictionary" />
<not>
<primaryKeyExists primaryKeyName="sequence_nbr" tableName="cb_data_dictionary"/>
</not>
</preConditions>
<comment>cb_data_dictionary 更新数据</comment>
<sql>
DELETE FROM `cb_data_dictionary` WHERE sequence_nbr = 1353;
DELETE FROM `cb_data_dictionary` WHERE parent = 1353;
DELETE FROM `cb_data_dictionary` WHERE parent = 1372;
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (338, '338', '法定代表人', 'XFGLGW', NULL, NULL, NULL, NULL, NULL, '2021-06-22 10:27:26', b'0', 1);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (339, '339', '部门负责人', 'XFGLGW', NULL, NULL, NULL, NULL, NULL, '2021-06-22 10:27:59', b'0', 4);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (340, '340', '消防安全负责人', 'XFGLGW', NULL, NULL, NULL, NULL, NULL, '2021-06-22 10:28:23', b'0', 2);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (341, '341', '消防安全管理人', 'XFGLGW', NULL, NULL, NULL, NULL, NULL, '2021-06-22 10:28:51', b'0', 3);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (342, '242', '专职消防队管理人', 'XFGLGW', NULL, NULL, NULL, NULL, NULL, '2021-06-22 10:29:38', b'0', 5);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (343, '343', '志愿消防队管理人', 'XFGLGW', NULL, NULL, NULL, NULL, NULL, '2021-06-22 10:30:09', b'0', 6);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1804, '1804', '其他', 'XFGLGW', NULL, NULL, NULL, NULL, NULL, '2021-06-22 10:30:09', b'0', 7);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1389, '1389', '副支队长', 'GWMC', NULL, NULL, '1805', NULL, NULL, NULL, b'0', 42);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1390, '1390', '党支部副书记', 'GWMC', NULL, NULL, '1805', NULL, NULL, NULL, b'0', 43);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1391, '1391', '大队长', 'GWMC', NULL, NULL, '1805', NULL, NULL, NULL, b'0', 44);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1392, '1392', '支队长助理', 'GWMC', NULL, NULL, '1805', NULL, NULL, NULL, b'0', 45);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1393, '1393', '班组长', 'GWMC', NULL, NULL, '1805', NULL, NULL, NULL, b'0', 46);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1394, '1394', '代理大队长', 'GWMC', NULL, NULL, '1805', NULL, NULL, NULL, b'0', 47);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1395, '1395', '代理副大队长', 'GWMC', NULL, NULL, '1805', NULL, NULL, NULL, b'0', 48);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1806, '1806', '中队长', 'GWMC', NULL, NULL, '1805', NULL, NULL, NULL, b'0', 26);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1807, '1807', '副中队长', 'GWMC', NULL, NULL, '1805', NULL, NULL, NULL, b'0', 27);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1808, '1808', '驾驶员', 'GWMC', NULL, NULL, '1805', NULL, NULL, NULL, b'0', 28);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1809, '1809', '班长', 'GWMC', NULL, NULL, '1805', NULL, NULL, NULL, b'0', 29);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1810, '1810', '副班长', 'GWMC', NULL, NULL, '1805', NULL, NULL, NULL, b'0', 30);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1811, '1811', '战斗员', 'GWMC', NULL, NULL, '1805', NULL, NULL, NULL, b'0', 31);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1812, '1812', '集训队员', 'GWMC', NULL, NULL, '1805', NULL, NULL, NULL, b'0', 32);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1813, '1813', '火场指挥员', 'GWMC', NULL, NULL, '1805', NULL, NULL, NULL, b'0', 33);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1814, '1814', '电话接警员', 'GWMC', NULL, NULL, '1805', NULL, NULL, NULL, b'0', 34);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1815, '1815', '消防车驾驶员', 'GWMC', NULL, NULL, '1805', NULL, NULL, NULL, b'0', 35);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1816, '1816', '灭火战斗员', 'GWMC', NULL, NULL, '1805', NULL, NULL, NULL, b'0', 36);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1817, '1817', '火场供水员', 'GWMC', NULL, NULL, '1805', NULL, NULL, NULL, b'0', 37);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1818, '1818', '火场文书', 'GWMC', NULL, NULL, '1805', NULL, NULL, NULL, b'0', 38);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1819, '1819', '装备技师', 'GWMC', NULL, NULL, '1805', NULL, NULL, NULL, b'0', 39);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1820, '1820', '通讯员', 'GWMC', NULL, NULL, '1805', NULL, NULL, NULL, b'0', 40);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1821, '1821', '支队长', 'GWMC', NULL, NULL, '1805', NULL, NULL, NULL, b'0', 41);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1396, '1396', '站长', 'GWMC', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 1);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1397, '1397', '副站长', 'GWMC', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 2);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1398, '1398', '安全质量管理', 'GWMC', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 3);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1399, '1399', '检修计划管理', 'GWMC', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 4);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1400, '1400', '技经与资产管理', 'GWMC', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 5);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1401, '1401', '检修班班长', 'GWMC', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 6);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1402, '1402', '技术员', 'GWMC', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 7);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1403, '1403', '安全员', 'GWMC', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 8);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1404, '1404', '直流检修高级工', 'GWMC', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 9);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1405, '1405', '直流检修工', 'GWMC', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 10);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1406, '1406', '初级值班员', 'GWMC', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 11);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1407, '1407', '运维班班长', 'GWMC', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 12);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1408, '1408', '值班长', 'GWMC', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 13);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1409, '1409', '副值值班员', 'GWMC', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 14);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1410, '1410', '值班员', 'GWMC', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 15);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1411, '1411', '副值班员', 'GWMC', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 16);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1412, '1412', '正值值班员', 'GWMC', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 17);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1413, '1413', '见习岗', 'GWMC', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 18);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1414, '1414', '炊事员', 'GWMC', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 19);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1415, '1415', '保安', 'GWMC', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 20);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1416, '1416', '安全监测人员', 'GWMC', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 21);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1417, '1417', '危化品从业人员', 'GWMC', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 22);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1418, '1418', '其他重点岗位人员', 'GWMC', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 23);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1419, '1419', '其他', 'GWMC', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 24);
REPLACE INTO `cb_data_dictionary`(`sequence_nbr`, `code`, `name`, `type`, `type_desc`, `extend`, `parent`, `rec_user_name`, `rec_user_id`, `rec_date`, `is_delete`, `sort_num`) VALUES (1805, '1805', '灭火抢险救援类', 'GWMC', NULL, NULL, NULL, NULL, NULL, NULL, b'0', 25);
</sql>
</changeSet>
</databaseChangeLog> </databaseChangeLog>
...@@ -58,5 +58,6 @@ public class CheckResult { ...@@ -58,5 +58,6 @@ public class CheckResult {
@ApiModelProperty(value="模型名称") @ApiModelProperty(value="模型名称")
private String modelName; private String modelName;
@ApiModelProperty(value="提交记录id")
private Long submitRecordId;
} }
package com.yeejoin.amos.boot.module.tdc.api.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* @author xxz
*/
@Data
@Accessors(chain = true)
@TableName("tdc_model_item")
@ApiModel(value="ModelItem对象", description="模型填报项表")
public class ModelItem {
private static final long serialVersionUID = 1L;
@TableId(value = "sequence_nbr", type = IdType.ID_WORKER)
protected Long sequenceNbr;
@ApiModelProperty(value = "校验项名称")
private String checkItemLabel;
@ApiModelProperty(value = "校验项值")
private String checkItemValue;
@ApiModelProperty(value = "模型名称")
private String modelName;
@ApiModelProperty(value = "提交记录id")
private long submitRecordId;
}
package com.yeejoin.amos.boot.module.tdc.api.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* @author xxz
*/
@Data
@Accessors(chain = true)
@TableName("tdc_submit_record")
@ApiModel(value="SubmitRecord对象", description="提交记录")
public class SubmitRecord {
private static final long serialVersionUID = 1L;
@TableId(value = "sequence_nbr", type = IdType.ID_WORKER)
protected Long sequenceNbr;
@ApiModelProperty(value = "填报人")
private String submitPeople;
@ApiModelProperty(value = "机构code")
private String amosOrgCode;
@ApiModelProperty(value = "机构名称")
private String amosOrgName;
@ApiModelProperty(value = "填报时间")
private Date submitTime;
@ApiModelProperty(value = "校验批次号")
private String batchNo;
}
...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.module.tdc.api.dto.CheckResultDto; import com.yeejoin.amos.boot.module.tdc.api.dto.CheckResultDto;
import com.yeejoin.amos.boot.module.tdc.api.entity.CheckResult; import com.yeejoin.amos.boot.module.tdc.api.entity.CheckResult;
import org.apache.ibatis.annotations.Param;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import java.util.List; import java.util.List;
...@@ -29,4 +30,7 @@ public interface CheckResultMapper extends BaseMapper<CheckResult> { ...@@ -29,4 +30,7 @@ public interface CheckResultMapper extends BaseMapper<CheckResult> {
List<CheckResultDto> getOne(String amosOrgCode); List<CheckResultDto> getOne(String amosOrgCode);
List<CheckResult> getCheckItemNo(@Param("modelName") String modelName);
Map<String, Object> selectCheckItemTotal(@Param("modelName") String modelName);
} }
package com.yeejoin.amos.boot.module.tdc.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.tdc.api.entity.ModelItem;
import org.apache.ibatis.annotations.Param;
import org.mapstruct.Mapper;
import java.util.List;
/**
* @author DELL
*/
@Mapper
public interface ModelItemMapper extends BaseMapper<ModelItem> {
List<ModelItem> getListByName(@Param("modelName") String modelName, @Param("orgCode") String orgCode);
}
package com.yeejoin.amos.boot.module.tdc.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.tdc.api.entity.SubmitRecord;
import org.mapstruct.Mapper;
/**
* @author DELL
*/
@Mapper
public interface SubmitRecordMapper extends BaseMapper<SubmitRecord> {
IPage<SubmitRecord> selectByOrgCode(Page page);
}
...@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.tdc.api.service; ...@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.tdc.api.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yeejoin.amos.boot.module.tdc.api.entity.CheckReport; import com.yeejoin.amos.boot.module.tdc.api.entity.CheckReport;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Map; import java.util.Map;
...@@ -16,4 +17,5 @@ public interface CheckReportService extends IService<CheckReport> { ...@@ -16,4 +17,5 @@ public interface CheckReportService extends IService<CheckReport> {
Map getInfo(int pageNumber,int pageSize); Map getInfo(int pageNumber,int pageSize);
void createReport(String batchNo, AgencyUserModel userInfo);
} }
...@@ -6,6 +6,7 @@ import com.yeejoin.amos.boot.module.tdc.api.dto.CheckResultDto; ...@@ -6,6 +6,7 @@ import com.yeejoin.amos.boot.module.tdc.api.dto.CheckResultDto;
import com.yeejoin.amos.boot.module.tdc.api.dto.DimensionTableDto; import com.yeejoin.amos.boot.module.tdc.api.dto.DimensionTableDto;
import com.yeejoin.amos.boot.module.tdc.api.dto.ModelTreeDto; import com.yeejoin.amos.boot.module.tdc.api.dto.ModelTreeDto;
import com.yeejoin.amos.boot.module.tdc.api.entity.CheckResult; import com.yeejoin.amos.boot.module.tdc.api.entity.CheckResult;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
...@@ -58,4 +59,9 @@ public interface CheckResultService extends IService<CheckResult> { ...@@ -58,4 +59,9 @@ public interface CheckResultService extends IService<CheckResult> {
List<DimensionTableDto> getDimensionTable(String id); List<DimensionTableDto> getDimensionTable(String id);
List<ModelTreeDto> getModelTreeData(String modelName, AgencyUserModel userInfo);
List<CheckResult> getCheckItem(String modelName, AgencyUserModel userInfo);
Map<String, Object> selectCheckItemTotal(String modelName, AgencyUserModel userInfo);
} }
package com.yeejoin.amos.boot.module.tdc.api.service;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.tdc.api.entity.ModelItem;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* @author xxz
*/
@Service
public interface ModelItemService {
void saveModelItem(JSONObject jsonObject, AgencyUserModel userInfo);
void editModelItem(JSONObject jsonObject, AgencyUserModel userInfo);
/**
* 获取详情接口
* @param sequenceNbr 记录id
* @return 项
*/
Map<String, Object> getModelItem(Long sequenceNbr);
void deleteModelItem(String sequenceNbr);
}
package com.yeejoin.amos.boot.module.tdc.api.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.module.tdc.api.dto.CheckModelDto;
import com.yeejoin.amos.boot.module.tdc.api.entity.SubmitRecord;
import com.yeejoin.amos.boot.module.tdc.api.entity.SubmitRecord;
import org.springframework.stereotype.Service;
/**
* @author xxz
*/
@Service
public interface SubmitRecordService {
IPage<SubmitRecord> selectByOrgCode(int current, int size);
int saveSubmitRecord(SubmitRecord submitRecord);
SubmitRecord updateById(Long sequenceNbr, String batchNo);
}
package com.yeejoin.amos.boot.module.tdc.api.service;
import com.yeejoin.amos.boot.module.tdc.api.entity.ModelItem;
import com.yeejoin.amos.boot.module.tdc.api.entity.SubmitRecord;
import java.util.List;
import java.util.Map;
/**
* @author xxz
*/
public interface SyncMethodService {
/**
* 校验
*/
void checkItem(Map<String, List<ModelItem>> itemValue, SubmitRecord record);
}
...@@ -36,4 +36,47 @@ ...@@ -36,4 +36,47 @@
select amos_org_name,amos_org_code,batch_no,model_id from tdc_check_result where amos_org_code = #{amosOrgCode} group by model_name ORDER BY check_date desc limit 0,1; select amos_org_name,amos_org_code,batch_no,model_id from tdc_check_result where amos_org_code = #{amosOrgCode} group by model_name ORDER BY check_date desc limit 0,1;
</select> </select>
<select id="getCheckItemNo" resultType="com.yeejoin.amos.boot.module.tdc.api.entity.CheckResult">
SELECT
*
FROM
tdc_check_result
WHERE
batch_no = (
SELECT
batch_no
FROM
tdc_submit_record
ORDER BY
submit_time DESC
LIMIT 1
)
AND check_item_result = 1
<if test="modelName != null and modelName != '' and modelName != '-1'">
AND model_name = #{modelName}
</if>
</select>
<select id="selectCheckItemTotal" resultType="java.util.Map">
SELECT
count(1) AS total, COUNT(CASE WHEN (check_item_result=1) THEN check_item_result END) AS unqualified, batch_no AS batchNo
FROM
tdc_check_result
WHERE
batch_no = (
SELECT
batch_no
FROM
tdc_submit_record
-- WHERE
-- amos_org_code = '50*110'
ORDER BY
submit_time DESC
LIMIT 1
)
<if test="modelName != null and modelName != '' and modelName != '-1'">
AND model_name = #{modelName}
</if>
</select>
</mapper> </mapper>
\ No newline at end of file
<?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.tdc.api.mapper.ModelItemMapper">
<select id="getListByName" resultType="com.yeejoin.amos.boot.module.tdc.api.entity.ModelItem">
SELECT
sequence_nbr, check_item_label, check_item_value, model_name, submit_record_id
FROM
tdc_model_item
WHERE
submit_record_id = (
SELECT
sequence_nbr
FROM
tdc_submit_record
WHERE
amos_org_code = #{orgCode}
ORDER BY
submit_time DESC
LIMIT 1
)
<if test="modelName != null and modelName != '' and modelName != '-1'">
AND model_name = #{modelName}
</if>
</select>
</mapper>
\ No newline at end of file
<?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.tdc.api.mapper.SubmitRecordMapper">
<select id="selectByOrgCode" resultType="com.yeejoin.amos.boot.module.tdc.api.entity.SubmitRecord">
SELECT sequence_nbr,submit_people,submit_time,amos_org_name FROM `tdc_submit_record`
</select>
</mapper>
...@@ -70,7 +70,8 @@ public class CheckModelAction { ...@@ -70,7 +70,8 @@ public class CheckModelAction {
Map propertyValues = idxProjectModel.getPropertyValues(); Map propertyValues = idxProjectModel.getPropertyValues();
String batchNo = String.valueOf(propertyValues.get("batch_no")); String batchNo = String.valueOf(propertyValues.get("batch_no"));
Integer checkType = Integer.valueOf(String.valueOf(propertyValues.get("checkType"))); Long submitRecordId = Long.valueOf(String.valueOf(propertyValues.get("submitRecordId")));
// Integer checkType = Integer.valueOf(String.valueOf(propertyValues.get("checkType")));
String orgCode = String.valueOf(propertyValues.get("org_code")); String orgCode = String.valueOf(propertyValues.get("org_code"));
String checkPeopleName = String.valueOf(propertyValues.get("checkPeopleName")); String checkPeopleName = String.valueOf(propertyValues.get("checkPeopleName"));
String itemName = idxProjectModel.getItemName(); String itemName = idxProjectModel.getItemName();
...@@ -81,38 +82,40 @@ public class CheckModelAction { ...@@ -81,38 +82,40 @@ public class CheckModelAction {
return; return;
} }
if (!CollectionUtils.isEmpty(idxProjectModel.getPropertys()) && StringUtils.isNotEmpty(checkItem)) { // if (!CollectionUtils.isEmpty(idxProjectModel.getPropertys()) && StringUtils.isNotEmpty(checkItem)) {
Map<String, Object> item = idxProjectModel.getPropertys().stream().filter(map -> checkItem.equals(map.get("name"))).findFirst().orElse(null); // Map<String, Object> item = idxProjectModel.getPropertys().stream().filter(map -> checkItem.equals(map.get("name"))).findFirst().orElse(null);
if (ObjectUtils.isNotEmpty(item)) { // if (ObjectUtils.isNotEmpty(item)) {
checkResult.setCheckItemLabel(String.valueOf(item.get("title"))); // checkResult.setCheckItemLabel(String.valueOf(item.get("title")));
} // }
} // }
checkResult.setBatchNo(StringUtils.isNotEmpty(batchNo) ? batchNo : String.valueOf(propertyValues.get("id"))); checkResult.setBatchNo(StringUtils.isNotEmpty(batchNo) ? batchNo : String.valueOf(propertyValues.get("id")));
checkResult.setCheckItemResult(result); checkResult.setCheckItemResult(result);
checkResult.setCheckExplain(checkExplain); checkResult.setCheckExplain(checkExplain);
checkResult.setCheckItem(checkItem); checkResult.setCheckItem(checkItem);
checkResult.setCheckItemLabel(checkItem);
checkResult.setCheckItemValue(checkItemValue); checkResult.setCheckItemValue(checkItemValue);
checkResult.setModelId(String.valueOf(checkModel.getSequenceNbr())); checkResult.setModelId(String.valueOf(checkModel.getSequenceNbr()));
checkResult.setAmosOrgCode(checkModel.getAmosOrgCode()); checkResult.setAmosOrgCode(checkModel.getAmosOrgCode());
checkResult.setAmosOrgName(checkModel.getAmosOrgName()); checkResult.setAmosOrgName(checkModel.getAmosOrgName());
checkResult.setSubmitRecordId(submitRecordId);
checkResult.setCheckDate(new Date()); checkResult.setCheckDate(new Date());
checkResult.setCheckType(ObjectUtils.isNotEmpty(checkType) ? checkType : 1); // checkResult.setCheckType(ObjectUtils.isNotEmpty(checkType) ? checkType : 1);
checkResult.setModelName(checkModel.getModelName()); checkResult.setModelName(checkModel.getModelName());
checkResultService.save(checkResult); checkResultService.save(checkResult);
// 2. 判断是否检验结束 // // 2. 判断是否检验结束
if (ObjectUtils.isNotEmpty(checkType)) { // if (ObjectUtils.isNotEmpty(checkType)) {
if (checkType == 1) { // if (checkType == 1) {
// 2.2 单独模型校验,根据批次号查询已经入库的属性 // // 2.2 单独模型校验,根据批次号查询已经入库的属性
sendWebMessage(batchNo, checkModel.getCheckItemAmount(), orgCode, checkPeopleName, checkType, itemName); // sendWebMessage(batchNo, checkModel.getCheckItemAmount(), orgCode, checkPeopleName, checkType, itemName);
} else if (checkType == 0) { // } else if (checkType == 0) {
// 2.1 全站校验 // // 2.1 全站校验
List<CheckModel> checkModels = checkModelService.selectByOrgCode(orgCode); // List<CheckModel> checkModels = checkModelService.selectByOrgCode(orgCode);
int sum = checkModels.stream().mapToInt(CheckModel::getCheckItemAmount).sum(); // int sum = checkModels.stream().mapToInt(CheckModel::getCheckItemAmount).sum();
sendWebMessage(batchNo, sum, orgCode, checkPeopleName, checkType, itemName); // sendWebMessage(batchNo, sum, orgCode, checkPeopleName, checkType, itemName);
} // }
} // }
// else { // else {
// // 指标填报完自动调用,暂时不需要推送前端 // // 指标填报完自动调用,暂时不需要推送前端
// String number = ObjectUtils.isNotEmpty(checkType) ? batchNo : String.valueOf(propertyValues.get("id")); // String number = ObjectUtils.isNotEmpty(checkType) ? batchNo : String.valueOf(propertyValues.get("id"));
......
package com.yeejoin.amos.boot.module.tdc.biz.config;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.Executor;
import java.util.concurrent.ThreadPoolExecutor;
/**
* @author DELL
*/
@Slf4j
@Configuration
@EnableAsync
public class SwjyExecutorConfig {
@Bean(name = "swjyAsyncExecutor")
public Executor asyncServiceExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
//配置核心线程数
executor.setCorePoolSize(10);
//配置最大线程数
executor.setMaxPoolSize(100);
//配置队列大小
executor.setQueueCapacity(1000);
//配置线程池中的线程的名称前缀
executor.setThreadNamePrefix("namePrefix");
//线程池维护线程所允许的空闲时间
executor.setKeepAliveSeconds(30);
// rejection-policy:当pool已经达到max size的时候,如何处理新任务
// CALLER_RUNS:不在新线程中执行任务,而是有调用者所在的线程来执行--拒绝策略
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
//执行初始化
executor.initialize();
//等待所有任务结束后再关闭线程池
executor.setWaitForTasksToCompleteOnShutdown(true);
return executor;
}
}
package com.yeejoin.amos.boot.module.tdc.biz.controller; package com.yeejoin.amos.boot.module.tdc.biz.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.tdc.api.entity.CheckReport; import com.yeejoin.amos.boot.module.tdc.api.entity.CheckReport;
import com.yeejoin.amos.boot.module.tdc.api.service.CheckReportService; import com.yeejoin.amos.boot.module.tdc.api.service.CheckReportService;
import com.yeejoin.amos.boot.module.tdc.biz.service.impl.CheckReportImpl; import com.yeejoin.amos.boot.module.tdc.biz.service.impl.CheckReportImpl;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
...@@ -24,7 +27,7 @@ import java.util.Map; ...@@ -24,7 +27,7 @@ import java.util.Map;
@RestController @RestController
@Api(tags = "校验报告api") @Api(tags = "校验报告api")
@RequestMapping(value = "/report") @RequestMapping(value = "/report")
public class CheckReportController { public class CheckReportController extends BaseController {
@Autowired @Autowired
CheckReportService checkReportService; CheckReportService checkReportService;
...@@ -41,7 +44,6 @@ public class CheckReportController { ...@@ -41,7 +44,6 @@ public class CheckReportController {
return ResponseHelper.buildResponse(checkReportService.selectAll(current,size,amosOrgCode)); return ResponseHelper.buildResponse(checkReportService.selectAll(current,size,amosOrgCode));
} }
/** /**
* *
* return * return
...@@ -53,4 +55,13 @@ public class CheckReportController { ...@@ -53,4 +55,13 @@ public class CheckReportController {
return ResponseHelper.buildResponse(checkReportService.getInfo(pageNumber,pageSize)); return ResponseHelper.buildResponse(checkReportService.getInfo(pageNumber,pageSize));
} }
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@GetMapping(value = "createReport")
@ApiOperation(httpMethod = "GET",value = "创建报告", notes = "创建报告")
public ResponseModel createReport(String batchNo) {
AgencyUserModel userInfo = getUserInfo();
checkReportService.createReport(batchNo, userInfo);
return ResponseHelper.buildResponse(true);
}
} }
...@@ -11,10 +11,7 @@ import com.yeejoin.amos.feign.privilege.model.AgencyUserModel; ...@@ -11,10 +11,7 @@ import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper; import org.typroject.tyboot.core.restful.utils.ResponseHelper;
...@@ -118,5 +115,27 @@ public class CheckResultController extends BaseController { ...@@ -118,5 +115,27 @@ public class CheckResultController extends BaseController {
return ResponseHelper.buildResponse(checkResultService.getDimensionTable(id)); return ResponseHelper.buildResponse(checkResultService.getDimensionTable(id));
} }
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@GetMapping(value = "/getModelTreeData")
@ApiOperation(httpMethod = "GET",value = "获取单独模型树", notes = "根据模型id获取模型树")
public ResponseModel<List<ModelTreeDto>> getModelTreeData(@RequestParam(required = false) String modelName) {
AgencyUserModel userInfo = getUserInfo();
return ResponseHelper.buildResponse(checkResultService.getModelTreeData(modelName, userInfo));
}
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@GetMapping(value = "/getCheckItemNo")
@ApiOperation(httpMethod = "GET",value = "获取不合格校验项", notes = "获取不合格校验项")
public ResponseModel<List<CheckResult>> getCheckItem(@RequestParam(required = false) String modelName) {
AgencyUserModel userInfo = getUserInfo();
return ResponseHelper.buildResponse(checkResultService.getCheckItem(modelName, userInfo));
}
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@GetMapping(value = "/selectCheckItemTotal")
@ApiOperation(httpMethod = "GET", value = "获取校验项统计", notes = "获取校验项统计")
public ResponseModel<Map<String, Object>> selectCheckItemTotal(@RequestParam(required = false) String modelName) {
AgencyUserModel userInfo = getUserInfo();
return ResponseHelper.buildResponse(checkResultService.selectCheckItemTotal(modelName, userInfo));
}
} }
package com.yeejoin.amos.boot.module.tdc.biz.controller;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.tdc.api.service.ModelItemService;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
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.Map;
/**
* 校验项提交
* @author xxz
*/
@RestController
@Api(tags = "校验项提交")
@RequestMapping(value = "/check-item")
public class ModelItemController extends BaseController {
@Autowired
ModelItemService modelItemService;
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@PostMapping(value = "/saveModelItem")
@ApiOperation(httpMethod = "POST", value = "保存模型项", notes = "保存模型项")
public ResponseModel saveModelItem(@RequestBody JSONObject jsonObject){
AgencyUserModel userInfo = getUserInfo();
if (ObjectUtils.isEmpty(jsonObject)) {
return null;
}
Object sequenceNbr = jsonObject.get("sequenceNbr");
if (ObjectUtils.isEmpty(sequenceNbr)) {
modelItemService.saveModelItem(jsonObject, userInfo);
return ResponseHelper.buildResponse(true);
}
modelItemService.editModelItem(jsonObject, userInfo);
return ResponseHelper.buildResponse(true);
}
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@GetMapping(value = "/getModelItem")
@ApiOperation(httpMethod = "GET", value = "获取模型项", notes = "获取模型项")
public ResponseModel<Map<String, Object>> getModelItem(@RequestParam(value = "sequenceNbr") Long sequenceNbr){
return ResponseHelper.buildResponse(modelItemService.getModelItem(sequenceNbr));
}
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@GetMapping(value = "/deleteModelItem")
@ApiOperation(httpMethod = "GET", value = "删除模型项", notes = "删除模型项")
public ResponseModel deleteModelItem(@RequestParam(value = "sequenceNbr") String sequenceNbr){
modelItemService.deleteModelItem(sequenceNbr);
return ResponseHelper.buildResponse(true);
}
}
package com.yeejoin.amos.boot.module.tdc.biz.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.module.tdc.api.entity.SubmitRecord;
import com.yeejoin.amos.boot.module.tdc.api.service.SubmitRecordService;
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.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
/**
* 校验记录
* @author xxz
*/
@RestController
@Api(tags = "校验项提交")
@RequestMapping(value = "/check-record")
public class SubmitRecordController {
@Autowired
SubmitRecordService submitRecordService;
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@GetMapping(value = "selectOrgCode")
@ApiOperation(httpMethod = "GET",value = "直接查询列表", notes = "直接查询列表")
public ResponseModel<IPage<SubmitRecord>> selectByOrgCode(int current,int size){
return ResponseHelper.buildResponse(submitRecordService.selectByOrgCode(current, size));
}
}
\ No newline at end of file
...@@ -7,17 +7,24 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -7,17 +7,24 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yeejoin.amos.boot.module.tdc.api.dto.ModelTreeDto;
import com.yeejoin.amos.boot.module.tdc.api.entity.CheckReport; import com.yeejoin.amos.boot.module.tdc.api.entity.CheckReport;
import com.yeejoin.amos.boot.module.tdc.api.enums.ReportStateEnum; import com.yeejoin.amos.boot.module.tdc.api.enums.ReportStateEnum;
import com.yeejoin.amos.boot.module.tdc.api.feign.IdxFeignService; import com.yeejoin.amos.boot.module.tdc.api.feign.IdxFeignService;
import com.yeejoin.amos.boot.module.tdc.api.mapper.CheckReportMapper; import com.yeejoin.amos.boot.module.tdc.api.mapper.CheckReportMapper;
import com.yeejoin.amos.boot.module.tdc.api.service.CheckReportService; import com.yeejoin.amos.boot.module.tdc.api.service.CheckReportService;
import com.yeejoin.amos.boot.module.tdc.api.service.CheckResultService;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import springfox.documentation.spring.web.json.Json; import springfox.documentation.spring.web.json.Json;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
...@@ -29,6 +36,9 @@ public class CheckReportImpl extends ServiceImpl<CheckReportMapper, CheckReport> ...@@ -29,6 +36,9 @@ public class CheckReportImpl extends ServiceImpl<CheckReportMapper, CheckReport>
@Autowired @Autowired
IdxFeignService idxFeignService; IdxFeignService idxFeignService;
@Autowired
CheckResultService checkResultService;
@Override @Override
public IPage<CheckReport> selectAll(int current,int size,String amosOrgCode) { public IPage<CheckReport> selectAll(int current,int size,String amosOrgCode) {
Page<CheckReport> page = new Page<>(current,size); Page<CheckReport> page = new Page<>(current,size);
...@@ -78,4 +88,14 @@ public class CheckReportImpl extends ServiceImpl<CheckReportMapper, CheckReport> ...@@ -78,4 +88,14 @@ public class CheckReportImpl extends ServiceImpl<CheckReportMapper, CheckReport>
} }
@Override
public void createReport(String batchNo, AgencyUserModel userInfo) {
List<CompanyModel> companyList = userInfo.getCompanys();
if (!CollectionUtils.isEmpty(companyList)) {
String orgCode = companyList.get(0).getOrgCode();
String realName = userInfo.getRealName();
checkResultService.saveSql(orgCode, realName, batchNo);
}
}
} }
...@@ -15,15 +15,13 @@ import com.stoyanr.evictor.queue.NavigableMapEvictionQueue; ...@@ -15,15 +15,13 @@ import com.stoyanr.evictor.queue.NavigableMapEvictionQueue;
import com.yeejoin.amos.boot.module.tdc.api.dto.CheckResultDto; import com.yeejoin.amos.boot.module.tdc.api.dto.CheckResultDto;
import com.yeejoin.amos.boot.module.tdc.api.dto.DimensionTableDto; import com.yeejoin.amos.boot.module.tdc.api.dto.DimensionTableDto;
import com.yeejoin.amos.boot.module.tdc.api.dto.ModelTreeDto; import com.yeejoin.amos.boot.module.tdc.api.dto.ModelTreeDto;
import com.yeejoin.amos.boot.module.tdc.api.entity.CheckModel; import com.yeejoin.amos.boot.module.tdc.api.entity.*;
import com.yeejoin.amos.boot.module.tdc.api.entity.CheckReport;
import com.yeejoin.amos.boot.module.tdc.api.entity.CheckResult;
import com.yeejoin.amos.boot.module.tdc.api.entity.PowerReportFile;
import com.yeejoin.amos.boot.module.tdc.api.enums.WordPowerTypeEum; import com.yeejoin.amos.boot.module.tdc.api.enums.WordPowerTypeEum;
import com.yeejoin.amos.boot.module.tdc.api.feign.IdxFeignService; import com.yeejoin.amos.boot.module.tdc.api.feign.IdxFeignService;
import com.yeejoin.amos.boot.module.tdc.api.mapper.CheckModelMapper; import com.yeejoin.amos.boot.module.tdc.api.mapper.CheckModelMapper;
import com.yeejoin.amos.boot.module.tdc.api.mapper.CheckReportMapper; import com.yeejoin.amos.boot.module.tdc.api.mapper.CheckReportMapper;
import com.yeejoin.amos.boot.module.tdc.api.mapper.CheckResultMapper; import com.yeejoin.amos.boot.module.tdc.api.mapper.CheckResultMapper;
import com.yeejoin.amos.boot.module.tdc.api.mapper.ModelItemMapper;
import com.yeejoin.amos.boot.module.tdc.api.service.CheckReportService; import com.yeejoin.amos.boot.module.tdc.api.service.CheckReportService;
import com.yeejoin.amos.boot.module.tdc.api.service.CheckResultService; import com.yeejoin.amos.boot.module.tdc.api.service.CheckResultService;
import com.yeejoin.amos.boot.module.tdc.api.utils.WordPowerUtils; import com.yeejoin.amos.boot.module.tdc.api.utils.WordPowerUtils;
...@@ -31,11 +29,13 @@ import com.yeejoin.amos.boot.module.tdc.api.vo.SubjectTreeVo; ...@@ -31,11 +29,13 @@ import com.yeejoin.amos.boot.module.tdc.api.vo.SubjectTreeVo;
import com.yeejoin.amos.boot.module.tdc.api.vo.TableColumnsVo; import com.yeejoin.amos.boot.module.tdc.api.vo.TableColumnsVo;
import com.yeejoin.amos.component.feign.model.FeignClientResult; import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel; import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import com.yeejoin.amos.feign.systemctl.Systemctl; import com.yeejoin.amos.feign.systemctl.Systemctl;
import liquibase.pro.packaged.M; import liquibase.pro.packaged.M;
import org.codehaus.jettison.json.JSONString; import org.codehaus.jettison.json.JSONString;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
...@@ -65,6 +65,8 @@ public class CheckResultImpl extends ServiceImpl<CheckResultMapper, CheckResult> ...@@ -65,6 +65,8 @@ public class CheckResultImpl extends ServiceImpl<CheckResultMapper, CheckResult>
@Autowired @Autowired
CheckModelMapper checkModelMapper; CheckModelMapper checkModelMapper;
@Autowired
ModelItemMapper modelItemMapper;
@Override @Override
public IPage<CheckResultDto> selectResult(int current,int size,String code) { public IPage<CheckResultDto> selectResult(int current,int size,String code) {
...@@ -345,6 +347,50 @@ public class CheckResultImpl extends ServiceImpl<CheckResultMapper, CheckResult> ...@@ -345,6 +347,50 @@ public class CheckResultImpl extends ServiceImpl<CheckResultMapper, CheckResult>
} }
} }
@Override
public List<ModelTreeDto> getModelTreeData(String modelName, AgencyUserModel user) {
List<CompanyModel> companyList = user.getCompanys();
List<ModelTreeDto> list = new ArrayList<>();
if (!CollectionUtils.isEmpty(companyList)) {
String companyName = companyList.get(0).getCompanyName();
String orgCode = companyList.get(0).getOrgCode();
List<ModelItem> listByName = modelItemMapper.getListByName(modelName, orgCode);
if (!CollectionUtils.isEmpty(listByName)) {
Map<String, List<ModelItem>> collect = listByName.stream().collect(Collectors.groupingBy(ModelItem::getModelName));
collect.forEach((key, value) -> {
ModelTreeDto modelTreeDto = new ModelTreeDto();
modelTreeDto.setAmosOrgName(companyName);
modelTreeDto.setName(key);
modelTreeDto.setId(key);
List<Map<String, Object>> valueList = value.stream().map(e -> {
Map<String, Object> map = new HashMap<>(3);
map.put("data", e.getCheckItemValue());
map.put("id", e.getSequenceNbr());
map.put("name", e.getCheckItemLabel());
return map;
}).collect(Collectors.toList());
modelTreeDto.setChildren(valueList);
list.add(modelTreeDto);
});
}
}
return list;
}
@Override
public List<CheckResult> getCheckItem(String modelName, AgencyUserModel userInfo) {
// List<CompanyModel> companyList = userInfo.getCompanys();
// List<CheckResult> resultList = new ArrayList<>();
// if (!CollectionUtils.isEmpty(companyList)) {
// String orgCode = companyList.get(0).getOrgCode();
// resultList = checkResultMapper.getCheckItemNo(modelName, orgCode);
// }
return checkResultMapper.getCheckItemNo(modelName);
}
@Override
public Map<String, Object> selectCheckItemTotal(String modelName, AgencyUserModel userInfo) {
return checkResultMapper.selectCheckItemTotal(modelName);
}
} }
package com.yeejoin.amos.boot.module.tdc.biz.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.netflix.discovery.converters.Auto;
import com.yeejoin.amos.boot.module.tdc.api.entity.CheckResult;
import com.yeejoin.amos.boot.module.tdc.api.entity.ModelItem;
import com.yeejoin.amos.boot.module.tdc.api.entity.SubmitRecord;
import com.yeejoin.amos.boot.module.tdc.api.mapper.CheckResultMapper;
import com.yeejoin.amos.boot.module.tdc.api.mapper.ModelItemMapper;
import com.yeejoin.amos.boot.module.tdc.api.mapper.SubmitRecordMapper;
import com.yeejoin.amos.boot.module.tdc.api.service.ModelItemService;
import com.yeejoin.amos.boot.module.tdc.api.service.SubmitRecordService;
import com.yeejoin.amos.boot.module.tdc.api.service.SyncMethodService;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author DELL
*/
@Service
public class ModelItemServiceImpl extends ServiceImpl<ModelItemMapper, ModelItem> implements ModelItemService {
@Autowired
SubmitRecordService submitRecordService;
@Autowired
SyncMethodService syncMethodService;
@Autowired
CheckResultMapper checkResultMapper;
@Autowired
SubmitRecordMapper submitRecordMapper;
@Autowired
ModelItemMapper modelItemMapper;
@Override
public void saveModelItem(JSONObject jsonObject, AgencyUserModel userInfo) {
long start = System.currentTimeMillis();
if (ObjectUtils.isEmpty(jsonObject)) {
return;
}
SubmitRecord submitRecord = new SubmitRecord();
userInfo.getUserName();
List<CompanyModel> company = userInfo.getCompanys();
if (!CollectionUtils.isEmpty(company)) {
String companyName = company.get(0).getCompanyName();
String orgCode = company.get(0).getOrgCode();
submitRecord.setAmosOrgCode(orgCode);
submitRecord.setAmosOrgName(companyName);
}
submitRecord.setSubmitPeople(userInfo.getRealName());
submitRecord.setSubmitTime(new Date());
String batchNo = UUID.randomUUID().toString();
submitRecord.setBatchNo(batchNo);
long start1 = System.currentTimeMillis();
log.error("=====记录入库前用时:"+(start1-start)+"======");
submitRecordService.saveSubmitRecord(submitRecord);
long end = System.currentTimeMillis();
log.error("=====记录入库用时:"+(end-start1)+"======");
if (StringUtils.isEmpty(submitRecord.getSequenceNbr())) {
return;
}
List<ModelItem> collect = jsonObject.entrySet().stream().map(e -> {
ModelItem modelItem = new ModelItem();
String key = e.getKey();
String[] s = key.split("_");
if (s.length > 0) {
modelItem.setModelName(s[0]);
modelItem.setCheckItemLabel(s[1]);
}
String value = String.valueOf(e.getValue());
modelItem.setCheckItemValue(value);
modelItem.setSubmitRecordId(submitRecord.getSequenceNbr());
return modelItem;
}).collect(Collectors.toList());
Map<String, List<ModelItem>> itemValue = collect.stream().collect(Collectors.groupingBy(ModelItem::getModelName));
long e1 = System.currentTimeMillis();
log.error("=====参数解析用时:"+(e1-end)+"======");
this.saveBatch(collect);
long e2 = System.currentTimeMillis();
log.error("=====入库用时:"+(e2-e1)+"======");
// 异步请求规则校验
syncMethodService.checkItem(itemValue, submitRecord);
}
@Override
public void editModelItem(JSONObject jsonObject, AgencyUserModel userInfo) {
Long sequenceNbr = Long.valueOf(String.valueOf(jsonObject.get("sequenceNbr")));
String batchNo = UUID.randomUUID().toString();
SubmitRecord submitRecord = submitRecordService.updateById(sequenceNbr, batchNo);
LambdaQueryWrapper<ModelItem> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ModelItem::getSubmitRecordId, sequenceNbr);
this.baseMapper.delete(wrapper);
List<ModelItem> collect = jsonObject.entrySet().stream().map(e -> {
ModelItem modelItem = new ModelItem();
String key = e.getKey();
String[] s = key.split("_");
if (s.length > 1) {
modelItem.setModelName(s[0]);
modelItem.setCheckItemLabel(s[1]);
String value = String.valueOf(e.getValue());
modelItem.setCheckItemValue(value);
modelItem.setSubmitRecordId(submitRecord.getSequenceNbr());
return modelItem;
} else {
return null;
}
}).filter(item -> !ObjectUtils.isEmpty(item)).collect(Collectors.toList());
this.saveOrUpdateBatch(collect);
// 异步请求规则校验
Map<String, List<ModelItem>> itemValue = collect.stream().collect(Collectors.groupingBy(ModelItem::getModelName));
syncMethodService.checkItem(itemValue, submitRecord);
}
@Override
public Map<String, Object> getModelItem(Long sequenceNbr) {
LambdaQueryWrapper<ModelItem> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ModelItem::getSubmitRecordId, sequenceNbr);
List<ModelItem> list = this.list(wrapper);
Map<String, Object> map = list.stream().collect(Collectors.toMap(e -> e.getModelName() + "_" + e.getCheckItemLabel(), ModelItem::getCheckItemValue));
map.put("sequenceNbr", sequenceNbr);
return map;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteModelItem(String sequenceNbr) {
if (!StringUtils.isEmpty(sequenceNbr)) {
String[] split = sequenceNbr.split(",");
List<String> list = Arrays.asList(split);
// 1. 删除记录
submitRecordMapper.deleteBatchIds(list);
// 2. 删除填报项
LambdaQueryWrapper<ModelItem> wrapper = new LambdaQueryWrapper<>();
wrapper.in(ModelItem::getSubmitRecordId, list);
this.baseMapper.delete(wrapper);
// 3. 删除校验记录
LambdaQueryWrapper<CheckResult> resultWrapper = new LambdaQueryWrapper<>();
resultWrapper.in(CheckResult::getSubmitRecordId, list);
checkResultMapper.delete(resultWrapper);
}
}
}
package com.yeejoin.amos.boot.module.tdc.biz.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yeejoin.amos.boot.module.tdc.api.entity.SubmitRecord;
import com.yeejoin.amos.boot.module.tdc.api.mapper.SubmitRecordMapper;
import com.yeejoin.amos.boot.module.tdc.api.service.SubmitRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
/**
* @author DELL
*/
@Service
public class SubmitRecordServiceImpl extends ServiceImpl<SubmitRecordMapper, SubmitRecord> implements SubmitRecordService {
@Autowired
SubmitRecordMapper submitRecordMapper;
@Override
public IPage<SubmitRecord> selectByOrgCode(int current, int size) {
Page page = new Page(current,size);
return submitRecordMapper.selectByOrgCode(page);
}
@Override
public int saveSubmitRecord(SubmitRecord submitRecord) {
return this.baseMapper.insert(submitRecord);
}
@Override
public SubmitRecord updateById(Long sequenceNbr, String batchNo) {
SubmitRecord submitRecord = this.getById(sequenceNbr);
submitRecord.setBatchNo(batchNo);
this.updateById(submitRecord);
return submitRecord;
}
}
package com.yeejoin.amos.boot.module.tdc.biz.service.impl;
import com.yeejoin.amos.boot.module.tdc.api.entity.ModelItem;
import com.yeejoin.amos.boot.module.tdc.api.entity.SubmitRecord;
import com.yeejoin.amos.boot.module.tdc.api.service.SyncMethodService;
import com.yeejoin.amos.boot.module.tdc.biz.action.model.IdxProjectModel;
import com.yeejoin.amos.component.rule.RuleTrigger;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author DELL
*/
@Service
@Async("swjyAsyncExecutor")
@Slf4j
public class SyncMethodServiceImpl implements SyncMethodService {
@Autowired
RuleTrigger ruleTrigger;
@Override
public void checkItem(Map<String, List<ModelItem>> itemValue, SubmitRecord record) {
try {
itemValue.forEach((key, value) -> {
IdxProjectModel idxProjectModel = new IdxProjectModel();
idxProjectModel.setItemName(key);
Map<String, Object> mapValue = value.stream().collect(Collectors.toMap(ModelItem::getCheckItemLabel, ModelItem::getCheckItemValue));
mapValue.put("submitRecordId", record.getSequenceNbr());
mapValue.put("batch_no", record.getBatchNo());
mapValue.put("org_code", record.getAmosOrgCode());
idxProjectModel.setPropertyValues(mapValue);
// 调用规则校验模型
try {
// 没有配决策流,processIds传null即可
String packageId = "三维校验/" + key;
ruleTrigger.publish(idxProjectModel, packageId, null);
} catch (Exception e) {
e.printStackTrace();
}
});
} catch (Exception e) {
log.error("调用规则校验失败:");
}
}
}
...@@ -19,6 +19,7 @@ spring.datasource.hikari.pool-name=DatebookHikariCP ...@@ -19,6 +19,7 @@ spring.datasource.hikari.pool-name=DatebookHikariCP
spring.datasource.hikari.max-lifetime=120000 spring.datasource.hikari.max-lifetime=120000
spring.datasource.hikari.connection-timeout=30000 spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.connection-test-query=SELECT 1 spring.datasource.hikari.connection-test-query=SELECT 1
spring.main.allow-bean-definition-overriding=true
##liquibase ##liquibase
spring.liquibase.change-log=classpath:/db/changelog/changelog-master.xml spring.liquibase.change-log=classpath:/db/changelog/changelog-master.xml
spring.liquibase.enabled=true spring.liquibase.enabled=true
......
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