package com.consum.base.service; import com.consum.base.core.utils.IdUtil; import com.consum.base.pojo.WarehouseManagerInfo; import com.consum.base.pojo.request.WarehouseManagerParam; import com.consum.model.po.BaseWarehouseManager; import com.consum.model.po.FinSysTenantUser; import com.iplatform.model.po.S_role; import com.walker.infrastructure.utils.CollectionUtils; import com.walker.jdbc.service.BaseServiceImpl; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; /** * @Description 物品分类 * @Author 卢庆阳 * @Date 2023/10/23 */ @Service public class BaseWarehouseManagerServiceImpl extends BaseServiceImpl { @Autowired private FinSysTenantUserServiceImpl finSysTenantUserService; /** * @Description 新增 * @Author 卢庆阳 * @Date 2023/10/26 */ @Transactional(rollbackFor = Exception.class) public void add(WarehouseManagerParam list) throws Exception { Long warehouseId = list.getWarehouseId(); // 角色id Long roleId = null; List roleAll = finSysTenantUserService.getRoleAll(); if (!CollectionUtils.isEmpty(roleAll)) { S_role sRole = roleAll.stream().filter(item -> item.getRole_name().equals("仓库管理员")).findFirst().orElse(null); if (sRole != null) { roleId = sRole.getRole_id(); } } // 删除角色 BaseWarehouseManager warehouseManager = new BaseWarehouseManager(); warehouseManager.setBaseWarehouseId(warehouseId); List baseWarehouseManagerList = this.select(warehouseManager); String deleteRoleSql = "DELETE FROM S_ROLE_USER WHERE USER_ID =:managerId AND role_id =:roleId"; for (BaseWarehouseManager item : baseWarehouseManagerList) { Long managerId = item.getManagerId(); FinSysTenantUser finSysTenantUser = finSysTenantUserService.queryOneById(String.valueOf(managerId)); if (finSysTenantUser == null) { throw new Exception("用户不存在"); } Map params = new HashMap<>(); params.put("managerId", finSysTenantUser.getSysUserId()); params.put("roleId", roleId); this.execute(deleteRoleSql, params); } //删除库管记录 String sql = "delete from base_warehouse_manager where base_warehouse_id =:warehouseId"; Map params = new HashMap<>(); params.put("warehouseId", warehouseId); this.execute(sql, params); //重新保存 List warehouseManagerInfoList = list.getWarehouseManagerInfoList(); if (!CollectionUtils.isEmpty(warehouseManagerInfoList)) { for (WarehouseManagerInfo warehouseManagerInfo : warehouseManagerInfoList) { Long managerId = warehouseManagerInfo.getManagerId(); String managerName = warehouseManagerInfo.getManagerName(); BaseWarehouseManager baseWarehouseManager = new BaseWarehouseManager(); baseWarehouseManager.setId(IdUtil.generateId()); baseWarehouseManager.setBaseWarehouseId(warehouseId); baseWarehouseManager.setManagerId(managerId); baseWarehouseManager.setManagerName(managerName); this.insert(baseWarehouseManager); FinSysTenantUser finSysTenantUser = finSysTenantUserService.queryOneById(String.valueOf(managerId)); if (finSysTenantUser == null) { throw new Exception("用户不存在"); } Long sysUserId = finSysTenantUser.getSysUserId(); String saveUserRole = "insert into s_role_user(user_id, role_id, org_id) values(:managerId,:roleId,0)"; Map userRoleParam = new HashMap<>(); userRoleParam.put("managerId", sysUserId); userRoleParam.put("roleId", roleId); this.execute(saveUserRole, userRoleParam); } } } }