给客户信息页面增加分配用户相关的接口

This commit is contained in:
jishenghua
2025-07-11 17:52:20 +08:00
parent 1eae3531d3
commit 005e50bf06
5 changed files with 170 additions and 0 deletions

View File

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
import com.jsh.erp.base.BaseController; import com.jsh.erp.base.BaseController;
import com.jsh.erp.base.TableDataInfo; import com.jsh.erp.base.TableDataInfo;
import com.jsh.erp.datasource.entities.Supplier; import com.jsh.erp.datasource.entities.Supplier;
import com.jsh.erp.datasource.entities.User;
import com.jsh.erp.datasource.vo.SupplierSimple; import com.jsh.erp.datasource.vo.SupplierSimple;
import com.jsh.erp.service.SupplierService; import com.jsh.erp.service.SupplierService;
import com.jsh.erp.service.SystemConfigService; import com.jsh.erp.service.SystemConfigService;
@@ -25,6 +26,8 @@ import java.io.File;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
import static com.jsh.erp.utils.ResponseJsonUtil.returnJson; import static com.jsh.erp.utils.ResponseJsonUtil.returnJson;
import static com.jsh.erp.utils.ResponseJsonUtil.returnStr; import static com.jsh.erp.utils.ResponseJsonUtil.returnStr;
@@ -347,6 +350,54 @@ public class SupplierController extends BaseController {
return obj; return obj;
} }
/**
* 客户对应用户显示
* @param type
* @param oneValue
* @param request
* @return
*/
@GetMapping(value = "/getCustomerUser")
@ApiOperation(value = "客户对应用户显示")
public JSONArray findUserCustomer(@RequestParam("UBType") String type, @RequestParam("UBValue") String oneValue,
HttpServletRequest request) throws Exception{
JSONArray arr = new JSONArray();
try {
//获取权限信息
List<Long> keyIdList = userBusinessService.getUBKeyIdByTypeAndOneValue(type, oneValue);
Map<Long, Long> keyIdMap = keyIdList.stream().collect(Collectors.toMap(Function.identity(),Function.identity()));
List<User> dataList = userService.getUser(request);
//开始拼接json数据
JSONObject outer = new JSONObject();
outer.put("id", 0);
outer.put("key", 0);
outer.put("value", 0);
outer.put("title", "用户列表");
outer.put("attributes", "用户列表");
//存放数据json数组
JSONArray dataArray = new JSONArray();
if (null != dataList) {
for (User user : dataList) {
JSONObject item = new JSONObject();
item.put("id", user.getId());
item.put("key", user.getId());
item.put("value", user.getId());
item.put("title", user.getLoginName() + "(" + user.getUsername() + ")");
item.put("attributes", user.getLoginName());
if (keyIdMap.get(user.getId())!=null) {
item.put("checked", true);
}
dataArray.add(item);
}
}
outer.put("children", dataArray);
arr.add(outer);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
return arr;
}
/** /**
* 根据客户或供应商查询期初、期初已收等信息 * 根据客户或供应商查询期初、期初已收等信息
* @param organId * @param organId

View File

@@ -1,5 +1,6 @@
package com.jsh.erp.controller; package com.jsh.erp.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.jsh.erp.datasource.entities.UserBusiness; import com.jsh.erp.datasource.entities.UserBusiness;
import com.jsh.erp.service.UserBusinessService; import com.jsh.erp.service.UserBusinessService;
@@ -167,4 +168,32 @@ public class UserBusinessController {
} }
return res; return res;
} }
/**
* 根据KeyId和类型更新一个值
* @param jsonObject
* @param request
* @return
*/
@PostMapping(value = "/updateOneValueByKeyIdAndType")
@ApiOperation(value = "根据KeyId和类型更新一个值")
public BaseResponseInfo updateOneValueByKeyIdAndType(@RequestBody JSONObject jsonObject,
HttpServletRequest request)throws Exception {
BaseResponseInfo res = new BaseResponseInfo();
try {
String type = jsonObject.getString("type");
JSONArray keyIdArr = jsonObject.getJSONArray("keyIds");
String oneValue = jsonObject.getString("oneValue");
int back = userBusinessService.updateOneValueByKeyIdAndType(type, keyIdArr, oneValue);
if(back > 0) {
res.code = 200;
res.data = "成功";
}
} catch (Exception e) {
logger.error(e.getMessage(), e);
res.code = 500;
res.data = "更新权限失败";
}
return res;
}
} }

View File

@@ -21,4 +21,11 @@ public interface UserBusinessMapperEx {
@Param("type") String type); @Param("type") String type);
void updateValueByTypeAndKeyId(@Param("type") String type, @Param("keyId") String keyId, @Param("ubValue") String ubValue); void updateValueByTypeAndKeyId(@Param("type") String type, @Param("keyId") String keyId, @Param("ubValue") String ubValue);
List<Long> getUBKeyIdByTypeAndOneValue(
@Param("type") String type,
@Param("oneValue") String oneValue);
List<UserBusiness> getOldListByType(
@Param("type") String type);
} }

View File

@@ -1,5 +1,6 @@
package com.jsh.erp.service; package com.jsh.erp.service;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.jsh.erp.constants.BusinessConstants; import com.jsh.erp.constants.BusinessConstants;
import com.jsh.erp.datasource.entities.User; import com.jsh.erp.datasource.entities.User;
@@ -18,7 +19,9 @@ import org.springframework.web.context.request.ServletRequestAttributes;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
@Service @Service
public class UserBusinessService { public class UserBusinessService {
@@ -172,4 +175,70 @@ public class UserBusinessService {
} }
return result; return result;
} }
public List<Long> getUBKeyIdByTypeAndOneValue(String type, String oneValue) {
return userBusinessMapperEx.getUBKeyIdByTypeAndOneValue(type, oneValue);
}
public int updateOneValueByKeyIdAndType(String type, JSONArray keyIdArr, String oneValue) {
int res = 0;
try {
Map<String, String> keyIdMap = new HashMap<>();
List<UserBusiness> oldUbList = userBusinessMapperEx.getOldListByType(type);
for(Object keyIdObj: keyIdArr) {
String keyId = keyIdObj.toString();
keyIdMap.put(keyId, keyId);
List<UserBusiness> ubList = userBusinessMapperEx.getBasicDataByKeyIdAndType(keyId, type);
if(ubList.size()>0) {
String valueStr = ubList.get(0).getValue();
Boolean flag = valueStr.contains("[" + oneValue + "]");
if(flag) {
//存在则忽略
} else {
//不存在则追加并更新
valueStr = valueStr + "[" + oneValue + "]";
UserBusiness userBusiness = new UserBusiness();
userBusiness.setId(ubList.get(0).getId());
userBusiness.setValue(valueStr);
userBusinessMapper.updateByPrimaryKeySelective(userBusiness);
}
} else {
//新增数据
UserBusiness userBusiness = new UserBusiness();
userBusiness.setType(type);
userBusiness.setKeyId(keyId);
userBusiness.setValue("[" + oneValue + "]");
userBusinessMapper.insertSelective(userBusiness);
}
}
//检查被移除的keyId
for(UserBusiness item: oldUbList) {
String oldValue = item.getValue();
String oldkeyId = item.getKeyId();
if(keyIdMap.get(oldkeyId) == null) {
//处理被删除的keyId
String valueStr = "[" + oneValue + "]";
if(oldValue.equals(valueStr)) {
//说明value里面只有一条数据需要进行逻辑删除
UserBusiness userBusiness = new UserBusiness();
userBusiness.setId(item.getId());
userBusiness.setDeleteFlag("1");
userBusinessMapper.updateByPrimaryKeySelective(userBusiness);
} else {
//多条进行替换后再更新
String newValue = oldValue.replace(valueStr, "");
UserBusiness userBusiness = new UserBusiness();
userBusiness.setId(item.getId());
userBusiness.setValue(newValue);
userBusinessMapper.updateByPrimaryKeySelective(userBusiness);
}
}
}
res = 1;
} catch (Exception e) {
res = 0;
logger.error(e.getMessage(), e);
}
return res;
}
} }

View File

@@ -23,4 +23,18 @@
set value= #{ubValue} set value= #{ubValue}
where type = #{type} and key_id = #{keyId} where type = #{type} and key_id = #{keyId}
</update> </update>
<select id="getUBKeyIdByTypeAndOneValue" resultType="java.lang.Long">
select ub.key_id from jsh_user_business ub
where ub.type='UserCustomer'
<bind name="bindOneValue" value="'%['+oneValue+']%'"/>
and ub.value like #{bindOneValue}
and ifnull(ub.delete_flag,'0') !='1'
</select>
<select id="getOldListByType" resultType="com.jsh.erp.datasource.entities.UserBusiness">
select * from jsh_user_business ub
where ub.type='UserCustomer'
and ifnull(ub.delete_flag,'0') !='1'
</select>
</mapper> </mapper>