大棚关联用户

master
lld 2026-02-03 10:37:07 +08:00
parent ca9c24ce90
commit 78311a1396
6 changed files with 130 additions and 27 deletions

View File

@ -1,5 +1,7 @@
package com.agri.system.controller; package com.agri.system.controller;
import cn.hutool.core.map.MapBuilder;
import cn.hutool.core.map.MapUtil;
import com.agri.common.annotation.Log; import com.agri.common.annotation.Log;
import com.agri.common.core.controller.BaseController; import com.agri.common.core.controller.BaseController;
import com.agri.common.core.domain.AjaxResult; import com.agri.common.core.domain.AjaxResult;
@ -8,6 +10,10 @@ import com.agri.common.enums.BusinessType;
import com.agri.common.utils.poi.ExcelUtil; import com.agri.common.utils.poi.ExcelUtil;
import com.agri.system.domain.SysUserAgri; import com.agri.system.domain.SysUserAgri;
import com.agri.system.service.ISysUserAgriService; import com.agri.system.service.ISysUserAgriService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.DeleteMapping;
@ -20,7 +26,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.sql.Wrapper;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* -Controller * -Controller
@ -104,4 +112,34 @@ public class SysUserAgriController extends BaseController {
List<SysUserAgri> list = sysUserAgriService.findAgriUser(sysUserAgri); List<SysUserAgri> list = sysUserAgriService.findAgriUser(sysUserAgri);
return getDataTable(list); return getDataTable(list);
} }
@PreAuthorize("@ss.hasPermi('assets:userAgri:list')")
@GetMapping("/findAllUser")
public TableDataInfo findAllUser(SysUserAgri sysUserAgri) {
List<SysUserAgri> list = sysUserAgriService.findAllUser(sysUserAgri);
return getDataTable(list);
}
/**
* -
*/
@PreAuthorize("@ss.hasPermi('assets:userAgri:add')")
@Log(title = "大棚信息(用户-设备批量关联)", businessType = BusinessType.INSERT)
@PostMapping("/batchAssociaUser")
public AjaxResult batchAssociaUser(@RequestBody List<SysUserAgri> userList) {
if (CollectionUtils.isNotEmpty(userList) && !userList.isEmpty()) {
Long agriId = userList.get(0).getAgriId();
if (ObjectUtils.isNotEmpty(agriId)) {
QueryWrapper<SysUserAgri> wrapper = new QueryWrapper<>();
wrapper.eq("agri_id",agriId);
sysUserAgriService.remove(wrapper);
boolean saveBatch = sysUserAgriService.saveBatch(userList);
if (!saveBatch) {
return error("更新用户失败");
}
}
}
return success();
}
} }

View File

@ -9,6 +9,8 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.Version; import com.baomidou.mybatisplus.annotation.Version;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
@ -28,10 +30,12 @@ public class SysUserAgri extends BaseEntity
/** 主键ID雪花 */ /** 主键ID雪花 */
@TableId(type = IdType.ASSIGN_ID) @TableId(type = IdType.ASSIGN_ID)
@JsonSerialize(using = ToStringSerializer.class)
private Long id; private Long id;
/** 大棚ID */ /** 大棚ID */
@Excel(name = "大棚ID") @Excel(name = "大棚ID")
@JsonSerialize(using = ToStringSerializer.class)
private Long agriId; private Long agriId;
/** 协同用户ID */ /** 协同用户ID */
@ -75,6 +79,16 @@ public class SysUserAgri extends BaseEntity
@TableField(exist = false) @TableField(exist = false)
private String imei; private String imei;
@TableField(exist = false)
private Boolean disabled;
public Boolean getDisabled() {
return disabled;
}
public void setDisabled(Boolean disabled) {
this.disabled = disabled;
}
public String getImei() { public String getImei() {
return imei; return imei;
@ -197,6 +211,7 @@ public class SysUserAgri extends BaseEntity
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId()) .append("id", getId())
.append("agriId", getAgriId()) .append("agriId", getAgriId())
.append("sysUser", getSysUser())
.append("userId", getUserId()) .append("userId", getUserId())
.append("role", getRole()) .append("role", getRole())
.append("permMask", getPermMask()) .append("permMask", getPermMask())

View File

@ -67,4 +67,11 @@ public interface SysUserAgriMapper extends BaseMapper<SysUserAgri>
* @return * @return
*/ */
List<SysUserAgri> findAgriUser(SysUserAgri sysUserAgri); List<SysUserAgri> findAgriUser(SysUserAgri sysUserAgri);
/**
* disbaledtrue
* @param sysUserAgri
* @return
*/
List<SysUserAgri> findAllUser(SysUserAgri sysUserAgri);
} }

View File

@ -29,6 +29,7 @@ public interface ISysUserAgriService extends IService<SysUserAgri> {
public List<SysUserAgri> selectSysUserAgriList(SysUserAgri sysUserAgri); public List<SysUserAgri> selectSysUserAgriList(SysUserAgri sysUserAgri);
public List<SysUserAgri> findAgriUser(SysUserAgri sysUserAgri); public List<SysUserAgri> findAgriUser(SysUserAgri sysUserAgri);
public List<SysUserAgri> findAllUser(SysUserAgri sysUserAgri);
/** /**
* - * -

View File

@ -98,4 +98,9 @@ public class SysUserAgriServiceImpl extends ServiceImpl<SysUserAgriMapper, SysUs
return baseMapper.findAgriUser(sysUserAgri); return baseMapper.findAgriUser(sysUserAgri);
} }
@Override
public List<SysUserAgri> findAllUser(SysUserAgri sysUserAgri) {
return baseMapper.findAllUser(sysUserAgri);
}
} }

View File

@ -11,6 +11,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="role" column="role" /> <result property="role" column="role" />
<result property="permMask" column="perm_mask" /> <result property="permMask" column="perm_mask" />
<result property="status" column="status" /> <result property="status" column="status" />
<result property="status" column="invite_status" />
<result property="inviteBy" column="invite_by" /> <result property="inviteBy" column="invite_by" />
<result property="inviteTime" column="invite_time" /> <result property="inviteTime" column="invite_time" />
<result property="acceptTime" column="accept_time" /> <result property="acceptTime" column="accept_time" />
@ -20,7 +21,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
<result property="version" column="version" /> <result property="version" column="version" />
<association property="sysUser" javaType="java.util.List" resultMap="SysUserResult" /> <result property="disabled" column="disabled" />
<association property="sysUser" resultMap="SysUserResult" />
</resultMap> </resultMap>
<resultMap type="SysUser" id="SysUserResult"> <resultMap type="SysUser" id="SysUserResult">
@ -151,7 +153,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
SELECT SELECT
user_agri.id, user_agri.id,
user_agri.agri_id, user_agri.agri_id,
user_agri.user_id,
user_agri.role, user_agri.role,
user_agri.perm_mask, user_agri.perm_mask,
user_agri.STATUS, user_agri.STATUS,
@ -163,24 +164,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
user_agri.create_by, user_agri.create_by,
user_agri.update_time, user_agri.update_time,
user_agri.update_by, user_agri.update_by,
user_agri.version user_agri.version,
`user`.user_id, `u`.user_id,
`user`.user_name, `u`.user_name,
`user`.nick_name, `u`.nick_name,
`user`.email, `u`.email,
`user`.phonenumber, `u`.phonenumber,
`user`.sex, `u`.sex,
`user`.status, `u`.status,
`user`.del_flag `u`.del_flag
FROM
sys_user_agri user_agri
LEFT JOIN sys_user `user` ON user_agri.user_id = `user`.user_id and `user`.del_flag=0
<if test="agriId != null "> and user_agri.agri_id = #{agriId}</if>
</sql> </sql>
<select id="findAgriUser" parameterType="SysUserAgri" resultMap="SysUserAgriResult"> <select id="findAgriUser" parameterType="SysUserAgri" resultMap="SysUserAgriResult">
<include refid="agriUserVo"/> <include refid="agriUserVo"/>
FROM
sys_user_agri user_agri
LEFT JOIN sys_user `u` ON user_agri.user_id = `u`.user_id and `u`.del_flag=0
<where> <where>
<if test="userId != null "> and user_agri.user_id = #{userId}</if> <if test="agriId != null "> and user_agri.agri_id = #{agriId}</if>
<if test="role != null "> and user_agri.role = #{role}</if> <if test="role != null "> and user_agri.role = #{role}</if>
<if test="permMask != null "> and user_agri.perm_mask = #{permMask}</if> <if test="permMask != null "> and user_agri.perm_mask = #{permMask}</if>
<if test="status != null "> and user_agri.status = #{status}</if> <if test="status != null "> and user_agri.status = #{status}</if>
@ -188,17 +188,54 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="inviteTime != null "> and user_agri.invite_time = #{inviteTime}</if> <if test="inviteTime != null "> and user_agri.invite_time = #{inviteTime}</if>
<if test="acceptTime != null "> and user_agri.accept_time = #{acceptTime}</if> <if test="acceptTime != null "> and user_agri.accept_time = #{acceptTime}</if>
<if test="version != null "> and user_agri.version = #{version}</if> <if test="version != null "> and user_agri.version = #{version}</if>
<if test="userId != null and userId != 0"> <if test="sysUser != null ">
AND `user`.user_id = #{userId} <if test="sysUser.userId != null and sysUser.userId != 0">
AND `u`.user_id = #{sysUser.userId}
</if> </if>
<if test="userName != null and userName != ''"> <if test="sysUser.userName != null and sysUser.userName != ''">
AND `user`.user_name like concat('%', #{userName}, '%') AND `u`.user_name like concat('%', #{sysUser.userName}, '%')
</if> </if>
<if test="status != null and status != ''"> <if test="sysUser.status != null and sysUser.status != ''">
AND `user`.status = #{status} AND `u`.status = #{sysUser.status}
</if>
<if test="sysUser.phonenumber != null and sysUser.phonenumber != ''">
AND `u`.phonenumber like concat('%', #{sysUser.phonenumber}, '%')
</if>
</if>
</where>
</select>
<select id="findAllUser" parameterType="SysUserAgri" resultMap="SysUserAgriResult">
<include refid="agriUserVo"/>,
IF(user_agri.agri_id IS NOT NULL, TRUE, FALSE) AS disabled
FROM
sys_user `u`
LEFT JOIN sys_user_agri user_agri ON user_agri.user_id = `u`.user_id
<if test="agriId != null "> and user_agri.agri_id = #{agriId}</if>
<if test="agriId == null "> and user_agri.agri_id is NULL</if>
<where>
and `u`.del_flag=0 and `u`.status = 0
<if test="role != null "> and user_agri.role = #{role}</if>
<if test="permMask != null "> and user_agri.perm_mask = #{permMask}</if>
<if test="status != null "> and user_agri.status = #{status}</if>
<if test="inviteBy != null "> and user_agri.invite_by = #{inviteBy}</if>
<if test="inviteTime != null "> and user_agri.invite_time = #{inviteTime}</if>
<if test="acceptTime != null "> and user_agri.accept_time = #{acceptTime}</if>
<if test="version != null "> and user_agri.version = #{version}</if>
<if test="sysUser != null ">
<if test="sysUser.userId != null and sysUser.userId != 0">
AND `u`.user_id = #{sysUser.userId}
</if>
<if test="sysUser.userName != null and sysUser.userName != ''">
AND `u`.user_name like concat('%', #{sysUser.userName}, '%')
</if>
<if test="sysUser.status != null and sysUser.status != ''">
AND `u`.status = #{sysUser.status}
</if>
<if test="sysUser.phonenumber != null and sysUser.phonenumber != ''">
AND `u`.phonenumber like concat('%', #{sysUser.phonenumber}, '%')
</if> </if>
<if test="phonenumber != null and phonenumber != ''">
AND `user`.phonenumber like concat('%', #{phonenumber}, '%')
</if> </if>
</where> </where>
</select> </select>