Browse Source

机台授权

master
han\hanst 11 months ago
parent
commit
c21dfd340e
  1. 39
      src/main/java/com/gaotao/modules/factory/controller/SiteController.java
  2. 12
      src/main/java/com/gaotao/modules/factory/dao/SiteMapper.java
  3. 79
      src/main/java/com/gaotao/modules/factory/entity/AccessResource.java
  4. 87
      src/main/java/com/gaotao/modules/factory/entity/vo/MachineResourceVo.java
  5. 10
      src/main/java/com/gaotao/modules/factory/service/SiteService.java
  6. 42
      src/main/java/com/gaotao/modules/factory/service/impl/SiteServiceImpl.java
  7. 57
      src/main/resources/mapper/factory/SiteMapper.xml

39
src/main/java/com/gaotao/modules/factory/controller/SiteController.java

@ -5,6 +5,7 @@ import com.gaotao.common.utils.R;
import com.gaotao.modules.base.data.BuData;
import com.gaotao.modules.factory.entity.Site;
import com.gaotao.modules.factory.entity.vo.BusinessRoleVo;
import com.gaotao.modules.factory.entity.vo.MachineResourceVo;
import com.gaotao.modules.factory.entity.vo.SiteVo;
import com.gaotao.modules.factory.service.SiteService;
import com.gaotao.modules.sys.entity.SysDepartmentEntity;
@ -133,4 +134,42 @@ public class SiteController {
service.delUserBusinessRole(data);
return R.ok();
}
// ========================== 机台授权相关接口 ==========================
/**
* 获取机台授权列表
* @param data 包含用户名和站点信息
* @return 机台列表可选和已授权
*/
@PostMapping("/getMachineResourceList")
public R getMachineResourceList(@RequestBody MachineResourceVo data){
// 获取当前用户未授权的机台
List<MachineResourceVo> row1 = service.getMachineResourceList1(data);
// 获取当前用户已授权的机台
List<MachineResourceVo> row2 = service.getMachineResourceList2(data);
return R.ok().put("row1", row1).put("row2", row2);
}
/**
* 添加用户机台授权
* @param data 机台授权数据
* @return 操作结果
*/
@PostMapping("/addUserMachineResource")
public R addUserMachineResource(@RequestBody MachineResourceVo data) {
service.addUserMachineResource(data);
return R.ok();
}
/**
* 删除用户机台授权
* @param data 机台授权数据
* @return 操作结果
*/
@PostMapping("/delUserMachineResource")
public R delUserMachineResource(@RequestBody MachineResourceVo data){
service.delUserMachineResource(data);
return R.ok();
}
}

12
src/main/java/com/gaotao/modules/factory/dao/SiteMapper.java

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gaotao.modules.base.data.BuData;
import com.gaotao.modules.factory.entity.Site;
import com.gaotao.modules.factory.entity.vo.BusinessRoleVo;
import com.gaotao.modules.factory.entity.vo.MachineResourceVo;
import com.gaotao.modules.factory.entity.vo.SiteVo;
import com.gaotao.modules.sys.entity.SysDepartmentEntity;
import org.apache.ibatis.annotations.Mapper;
@ -58,4 +59,15 @@ public interface SiteMapper extends BaseMapper<Site> {
void addUserBusinessRole(BusinessRoleVo businessRoleData);
void delUserBusinessRole(BusinessRoleVo businessRoleData);
// 机台授权相关方法
List<MachineResourceVo> getMachineResourceList1(MachineResourceVo data);
List<MachineResourceVo> getMachineResourceList2(MachineResourceVo data);
MachineResourceVo selectMachineResourceByUserName(MachineResourceVo machineResourceData);
void addUserMachineResource(MachineResourceVo machineResourceData);
void delUserMachineResource(MachineResourceVo machineResourceData);
}

79
src/main/java/com/gaotao/modules/factory/entity/AccessResource.java

@ -0,0 +1,79 @@
package com.gaotao.modules.factory.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
/**
* 用户机台访问权限实体类
*/
@TableName("AccessResource")
public class AccessResource {
/**
* 站点
*/
@TableId
private String site;
/**
* 事业部编号
*/
private String buNo;
/**
* 机台ID
*/
private String resourceID;
/**
* 用户ID
*/
private String userid;
/**
* 机台描述不存储在数据库用于前端显示
*/
@TableField(exist = false)
private String resourceDesc;
public String getSite() {
return site;
}
public void setSite(String site) {
this.site = site;
}
public String getBuNo() {
return buNo;
}
public void setBuNo(String buNo) {
this.buNo = buNo;
}
public String getResourceID() {
return resourceID;
}
public void setResourceID(String resourceID) {
this.resourceID = resourceID;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getResourceDesc() {
return resourceDesc;
}
public void setResourceDesc(String resourceDesc) {
this.resourceDesc = resourceDesc;
}
}

87
src/main/java/com/gaotao/modules/factory/entity/vo/MachineResourceVo.java

@ -0,0 +1,87 @@
package com.gaotao.modules.factory.entity.vo;
import java.util.List;
/**
* 机台授权VO类
*/
public class MachineResourceVo {
/**
* 用户名
*/
private String username;
/**
* 站点
*/
private String site;
/**
* 事业部编号
*/
private String buNo;
/**
* 机台ID
*/
private String resourceID;
/**
* 机台描述
*/
private String resourceDesc;
/**
* 机台列表用于批量操作
*/
private List<MachineResourceVo> resourceList;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getSite() {
return site;
}
public void setSite(String site) {
this.site = site;
}
public String getBuNo() {
return buNo;
}
public void setBuNo(String buNo) {
this.buNo = buNo;
}
public String getResourceID() {
return resourceID;
}
public void setResourceID(String resourceID) {
this.resourceID = resourceID;
}
public String getResourceDesc() {
return resourceDesc;
}
public void setResourceDesc(String resourceDesc) {
this.resourceDesc = resourceDesc;
}
public List<MachineResourceVo> getResourceList() {
return resourceList;
}
public void setResourceList(List<MachineResourceVo> resourceList) {
this.resourceList = resourceList;
}
}

10
src/main/java/com/gaotao/modules/factory/service/SiteService.java

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.gaotao.modules.base.data.BuData;
import com.gaotao.modules.factory.entity.Site;
import com.gaotao.modules.factory.entity.vo.BusinessRoleVo;
import com.gaotao.modules.factory.entity.vo.MachineResourceVo;
import com.gaotao.modules.factory.entity.vo.SiteVo;
import com.gaotao.modules.sys.entity.SysDepartmentEntity;
@ -48,4 +49,13 @@ public interface SiteService extends IService<Site> {
void addUserBusinessRole(BusinessRoleVo data);
void delUserBusinessRole(BusinessRoleVo data);
// 机台授权相关方法
List<MachineResourceVo> getMachineResourceList1(MachineResourceVo data);
List<MachineResourceVo> getMachineResourceList2(MachineResourceVo data);
void addUserMachineResource(MachineResourceVo data);
void delUserMachineResource(MachineResourceVo data);
}

42
src/main/java/com/gaotao/modules/factory/service/impl/SiteServiceImpl.java

@ -5,6 +5,7 @@ import com.gaotao.modules.base.data.BuData;
import com.gaotao.modules.factory.dao.SiteMapper;
import com.gaotao.modules.factory.entity.Site;
import com.gaotao.modules.factory.entity.vo.BusinessRoleVo;
import com.gaotao.modules.factory.entity.vo.MachineResourceVo;
import com.gaotao.modules.factory.entity.vo.SiteVo;
import com.gaotao.modules.factory.service.SiteService;
import com.gaotao.modules.sys.entity.SysDepartmentEntity;
@ -196,4 +197,45 @@ public class SiteServiceImpl extends ServiceImpl<SiteMapper, Site> implements Si
siteMapper.delUserBusinessRole(businessRoleData);
}
}
// ========================== 机台授权相关方法实现 ==========================
@Override
public List<MachineResourceVo> getMachineResourceList1(MachineResourceVo data) {
List<MachineResourceVo> list = siteMapper.getMachineResourceList1(data);
return list;
}
@Override
public List<MachineResourceVo> getMachineResourceList2(MachineResourceVo data) {
List<MachineResourceVo> list = siteMapper.getMachineResourceList2(data);
return list;
}
@Override
@Transactional
public void addUserMachineResource(MachineResourceVo data) {
for (MachineResourceVo machineResourceData : data.getResourceList()) {
machineResourceData.setUsername(data.getUsername());
// 检查该机台是否已存在该用户的授权中
MachineResourceVo checkDetail = siteMapper.selectMachineResourceByUserName(machineResourceData);
if (checkDetail != null) {
throw new RuntimeException("机台权限已存在!");
}
// 新增机台授权
siteMapper.addUserMachineResource(machineResourceData);
}
}
@Override
@Transactional
public void delUserMachineResource(MachineResourceVo data) {
for (MachineResourceVo machineResourceData : data.getResourceList()) {
machineResourceData.setUsername(data.getUsername());
machineResourceData.setSite(machineResourceData.getSite());
machineResourceData.setBuNo(machineResourceData.getBuNo());
machineResourceData.setResourceID(machineResourceData.getResourceID());
siteMapper.delUserMachineResource(machineResourceData);
}
}
}

57
src/main/resources/mapper/factory/SiteMapper.xml

@ -295,4 +295,61 @@
</if>
</where>
</select>
<!-- ========================== 机台授权相关SQL ========================== -->
<!-- 获取当前用户未授权的机台列表 -->
<select id="getMachineResourceList1" resultType="com.gaotao.modules.factory.entity.vo.MachineResourceVo" parameterType="com.gaotao.modules.factory.entity.vo.MachineResourceVo">
SELECT DISTINCT
A.site,
A.ResourceID,
A.resourceDesc
FROM WorkCenterResource A
LEFT JOIN AccessResource B ON A.SITE = B.site AND A.ResourceID = B.ResourceID AND B.userid = #{username}
WHERE A.site = #{site} AND B.SITE IS NULL
ORDER BY A.ResourceID
</select>
<!-- 获取当前用户已授权的机台列表 -->
<select id="getMachineResourceList2" resultType="com.gaotao.modules.factory.entity.vo.MachineResourceVo" parameterType="com.gaotao.modules.factory.entity.vo.MachineResourceVo">
SELECT
B.site,
B.bu_no AS buNo,
B.ResourceID,
A.resourceDesc
FROM AccessResource B
LEFT JOIN WorkCenterResource A ON B.site = A.SITE AND B.ResourceID = A.ResourceID
WHERE B.userid = #{username}
<if test="site != null and site != ''">
AND B.site = #{site}
</if>
ORDER BY B.ResourceID
</select>
<!-- 查询用户是否已有该机台权限 -->
<select id="selectMachineResourceByUserName" resultType="com.gaotao.modules.factory.entity.vo.MachineResourceVo" parameterType="com.gaotao.modules.factory.entity.vo.MachineResourceVo">
SELECT
userid AS username,
site,
bu_no AS buNo,
ResourceID
FROM AccessResource
WHERE userid = #{username} AND site = #{site} AND ResourceID = #{resourceID}
</select>
<!-- 新增用户机台授权 -->
<insert id="addUserMachineResource" parameterType="com.gaotao.modules.factory.entity.vo.MachineResourceVo">
INSERT INTO AccessResource (site, bu_no, ResourceID, userid)
VALUES (#{site},
ISNULL((SELECT TOP 1 bu_no FROM AccessBu WHERE username = #{username} AND site = #{site}), ''),
#{resourceID},
#{username})
</insert>
<!-- 删除用户机台授权 -->
<delete id="delUserMachineResource" parameterType="com.gaotao.modules.factory.entity.vo.MachineResourceVo">
DELETE FROM AccessResource
WHERE userid = #{username} AND site = #{site} AND ResourceID = #{resourceID}
</delete>
</mapper>
Loading…
Cancel
Save