fix(设备主数据):修改自定义字段
This commit is contained in:
parent
14d9dab509
commit
1d2e3d1ffe
@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.foreverwin.iep.common.model.CustomValue;
|
||||
import com.foreverwin.iep.common.utils.HandleBoProcessor;
|
||||
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
@ -16,6 +17,7 @@ import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.YearMonth;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 资源主数据
|
||||
@ -273,6 +275,11 @@ public class ResrceExt extends Model<ResrceExt> {
|
||||
*/
|
||||
@ApiModelProperty(value="扩展5")
|
||||
private String ext5;
|
||||
|
||||
@TableField(
|
||||
exist = false
|
||||
)
|
||||
private List<CustomValue> customFields;
|
||||
|
||||
public static String genHandle(String site, String resrce) {
|
||||
return HandleBoProcessor.genHandle(RESRCE_BO, site, resrce);
|
||||
|
||||
@ -4,13 +4,21 @@ import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.foreverwin.iep.common.model.CustomValue;
|
||||
import com.foreverwin.iep.prd.entity.CustomFields;
|
||||
import com.foreverwin.iep.prd.feign.RemoteCustomFieldsService;
|
||||
import com.foreverwin.mom.common.security.util.SecurityUtils;
|
||||
import com.foreverwin.mom.pms.dto.CommonAttachmentDTO;
|
||||
import com.foreverwin.mom.pms.dto.ErrorMsgDTO;
|
||||
import com.foreverwin.mom.pms.dto.ResrceExtDTO;
|
||||
import com.foreverwin.mom.pms.entity.PmsResrceExtUpload;
|
||||
import com.foreverwin.mom.pms.entity.ResrceExt;
|
||||
import com.foreverwin.mom.pms.mapper.CustomFieldsByCustomMapper;
|
||||
import com.foreverwin.mom.pms.mapper.CustomFieldsByIepMapper;
|
||||
import com.foreverwin.mom.pms.mapper.ResrceExtMapper;
|
||||
import com.foreverwin.mom.pms.service.PmsResrceExtUploadService;
|
||||
import com.foreverwin.mom.pms.service.ResrceExtService;
|
||||
@ -31,6 +39,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.net.URLEncoder;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
@ -51,6 +60,7 @@ public class ResrceExtServiceImpl extends ServiceImpl<ResrceExtMapper, ResrceExt
|
||||
private final ResrceExtMapper resrceExtMapper;
|
||||
private final PmsEquipMapper pmsEquipMapper;
|
||||
private final PmsResrceExtUploadService pmsResrceExtUploadService;
|
||||
private final CustomFieldsByIepMapper customFieldsByIepMapper;
|
||||
|
||||
@Override
|
||||
public String uploadFile(CommonAttachmentDTO commonAttachmentDTO, String handle) {
|
||||
@ -210,6 +220,9 @@ public class ResrceExtServiceImpl extends ServiceImpl<ResrceExtMapper, ResrceExt
|
||||
byId.setZPmsResrceExtBo(resrce.getHandle());
|
||||
pmsResrceExtUploadService.updateById(byId);
|
||||
}
|
||||
List<CustomValue> customFields = resrce.getCustomFields();
|
||||
// 更新自定义字段
|
||||
updateCustomField(customFields, resrce.getHandle());
|
||||
return updateById(resrce);
|
||||
}
|
||||
|
||||
@ -219,5 +232,41 @@ public class ResrceExtServiceImpl extends ServiceImpl<ResrceExtMapper, ResrceExt
|
||||
errors.add("设备【" + resrce + "】在系统中已存在!");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 自定义字段更新
|
||||
* @param customFields
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateCustomField(List<CustomValue> customFields, String resourceBo) {
|
||||
String site = TenantContextHolder.getTenantId();
|
||||
String user = SecurityUtils.getUserName();
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
|
||||
for (CustomValue customField : customFields) {
|
||||
String key = customField.getFieldName();
|
||||
String value = customField.getFieldValue();
|
||||
LambdaQueryWrapper<CustomFields> queryWrapper = Wrappers.lambdaQuery(CustomFields.class)
|
||||
.eq(CustomFields::getHandle, resourceBo).eq(CustomFields::getFieldName, key);
|
||||
CustomFields customFieldsByFind = customFieldsByIepMapper.selectOne(queryWrapper);
|
||||
if (ObjectUtil.isNotNull(customFieldsByFind)) {
|
||||
customFieldsByFind.setFieldValue(value);
|
||||
customFieldsByFind.setDateUpdate(now);
|
||||
customFieldsByFind.setUpdater(user);
|
||||
customFieldsByIepMapper.update(customFieldsByFind, queryWrapper);
|
||||
return;
|
||||
}
|
||||
|
||||
customFieldsByFind = new CustomFields();
|
||||
customFieldsByFind.setHandle(resourceBo);
|
||||
customFieldsByFind.setSite(site);
|
||||
customFieldsByFind.setTableName(TableInfoHelper.getTableInfo(Resrce.class).getTableName().toUpperCase());
|
||||
customFieldsByFind.setFieldName(key);
|
||||
customFieldsByFind.setFieldValue(value);
|
||||
customFieldsByFind.setDateCreate(now);
|
||||
customFieldsByFind.setCreator(user);
|
||||
customFieldsByIepMapper.insert(customFieldsByFind);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,15 @@
|
||||
package com.foreverwin.mom.pms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.foreverwin.iep.prd.entity.CustomFields;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* @author zhaofeng_cheng
|
||||
* @date 2024/12/25 13:34
|
||||
* @description
|
||||
*/
|
||||
@Mapper
|
||||
public interface CustomFieldsByIepMapper extends BaseMapper<CustomFields> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,58 @@
|
||||
<?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.foreverwin.mom.pms.mapper.CustomFieldsByIepMapper">
|
||||
|
||||
<resultMap id="customFieldsMap" type="com.foreverwin.iep.prd.entity.CustomFields">
|
||||
<id property="sid" column="SID"/>
|
||||
<result property="handle" column="HANDLE"/>
|
||||
<result property="site" column="SITE"/>
|
||||
<result property="tableName" column="TABLE_NAME"/>
|
||||
<result property="fieldName" column="FIELD_NAME"/>
|
||||
<result property="fieldValue" column="FIELD_VALUE"/>
|
||||
<result property="dateCreate" column="DATE_CREATE"/>
|
||||
<result property="dateUpdate" column="DATE_UPDATE"/>
|
||||
<result property="creator" column="CREATOR"/>
|
||||
<result property="updater" column="UPDATER"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="selectDistinct" resultMap="customFieldsMap">
|
||||
select distinct FIELD_VALUE
|
||||
from custom_fields
|
||||
<where>
|
||||
<if test="dto.site != null and dto.site != ''">
|
||||
AND SITE = #{dto.site}
|
||||
</if>
|
||||
<if test="dto.handle != null and dto.handle != ''">
|
||||
AND HANDLE = #{dto.handle}
|
||||
</if>
|
||||
<if test="dto.tableName != null and dto.tableName != ''">
|
||||
AND TABLE_NAME = #{dto.tableName}
|
||||
</if>
|
||||
<if test="dto.fieldName != null and dto.fieldName != ''">
|
||||
AND FIELD_NAME = #{dto.fieldName}
|
||||
</if>
|
||||
<if test="dto.fieldValue != null and dto.fieldValue != ''">
|
||||
AND FIELD_VALUE = #{dto.fieldValue}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectDistinctByPage" resultMap="customFieldsMap">
|
||||
select distinct FIELD_VALUE
|
||||
from custom_fields
|
||||
<where>
|
||||
AND SITE = #{dto.site}
|
||||
<if test="dto.tableName != null and dto.tableName != ''">
|
||||
AND TABLE_NAME = #{dto.tableName}
|
||||
</if>
|
||||
<if test="dto.fieldName != null and dto.fieldName != ''">
|
||||
AND FIELD_NAME = #{dto.fieldName}
|
||||
</if>
|
||||
<if test="dto.fieldValue != null and dto.fieldValue != ''">
|
||||
AND FIELD_VALUE like concat('%', concat(#{dto.fieldValue}, '%'))
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue
Block a user