Commit 1672c32e authored by DESKTOP-BQLVS7A\admin's avatar DESKTOP-BQLVS7A\admin

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

parents de24bf83 f1f053aa
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;
......
...@@ -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) {
......
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,39 @@ public class FormInstanceController extends AbstractBaseController { ...@@ -31,15 +28,39 @@ 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);
}
} }
...@@ -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;
} }
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);
}
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);
} }
...@@ -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;
} }
......
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());
......
...@@ -596,41 +596,39 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -596,41 +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);
EquipmentSpecificAlarmLog log = logs.get(0); if(!logs.isEmpty()){
EquipmentSpecific specific = equipmentSpecificMapper.selectById(log.getEquipmentSpecificId()); EquipmentSpecificAlarmLog log = logs.get(0);
Date date = new Date(); EquipmentSpecific specific = equipmentSpecificMapper.selectById(log.getEquipmentSpecificId());
logs.forEach(x -> { Date date = new Date();
x.setCleanTime(new Date()); logs.forEach(x -> {
x.setStatus(AlarmStatusEnum.HF.getCode()); x.setCleanTime(new Date());
if (!flag) { x.setStatus(AlarmStatusEnum.HF.getCode());
x.setConfirmType(x.getType()); if (!flag) {
x.setConfirmTypeName(ConfirmAlamEnum.getTypeByCode(x.getType())); x.setConfirmType(x.getType());
String equipmentName = StringUtil.isNotEmpty(specific.getCode()) ? specific.getName() + "(" + specific.getCode() + ")" : specific.getName(); x.setConfirmTypeName(ConfirmAlamEnum.getTypeByCode(x.getType()));
if (x.getType().equals(AlarmTypeEnum.PB.getCode())) { String equipmentName = StringUtil.isNotEmpty(specific.getCode()) ? specific.getName() + "(" + specific.getCode() + ")" : specific.getName();
x.setAlarmReason(equipmentName + "频繁故障/误报,将设备报警信息屏蔽。"); if (x.getType().equals(AlarmTypeEnum.PB.getCode())) {
} else { x.setAlarmReason(equipmentName + "频繁故障/误报,将设备报警信息屏蔽。");
x.setAlarmReason(equipmentName + "引起设备报警"); } else {
x.setAlarmReason(equipmentName + "引起设备报警");
}
x.setResolveResult(date + "系统收到设备复归(已消除)信号,系统自动处理。");
x.setConfirmUser("");
x.setConfirmUserName("系统自动处理");
x.setConfirmDate(date);
} }
x.setResolveResult(date + "系统收到设备复归(已消除)信号,系统自动处理。"); x.setEquipmentSpecificIndexValue(TrueOrFalseEnum.fake.value);
x.setConfirmUser(""); if (!StringUtils.isEmpty(traceId)) {
x.setConfirmUserName("系统自动处理"); x.setTraceId(traceId);
x.setConfirmDate(date); }
} });
x.setEquipmentSpecificIndexValue(TrueOrFalseEnum.fake.value);
if (!StringUtils.isEmpty(traceId)) {
x.setTraceId(traceId);
}
});
if (!logs.isEmpty()) {
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);
......
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);
//添加对于装备类型统计数据的刷新 //添加对于装备类型统计数据的刷新
......
...@@ -293,4 +293,84 @@ ...@@ -293,4 +293,84 @@
alter table `wl_equipment_specific_alarm_log` add column `defect_batch_id` varchar(64) DEFAULT NULL COMMENT '缺陷表批次号'; alter table `wl_equipment_specific_alarm_log` add column `defect_batch_id` varchar(64) DEFAULT NULL COMMENT '缺陷表批次号';
</sql> </sql>
</changeSet> </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
...@@ -4760,7 +4760,7 @@ ...@@ -4760,7 +4760,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}, '%')
...@@ -4878,14 +4878,14 @@ ...@@ -4878,14 +4878,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 +4913,7 @@ ...@@ -4913,7 +4913,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 +4991,7 @@ ...@@ -4991,7 +4991,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 +5011,7 @@ ...@@ -5011,7 +5011,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>
......
<?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>
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