cy
2023-11-22 8fc8b4788ed8be27ff6aae1cdd3fe9a584972ae3
consum-base/src/main/java/com/consum/base/service/BaseWarehouseManagerServiceImpl.java
@@ -1,9 +1,19 @@
package com.consum.base.service;
import com.consum.base.util.IdUtil;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.pojo.WarehouseManagerInfo;
import com.consum.base.pojo.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 物品分类
@@ -13,13 +23,80 @@
@Service
public class BaseWarehouseManagerServiceImpl extends BaseServiceImpl {
    @Autowired
    private FinSysTenantUserServiceImpl finSysTenantUserService;
    /**
     * @Description 新增
     * @Author 卢庆阳
     * @Date 2023/10/26
     */
    public int add(BaseWarehouseManager baseWarehouseManager) {
        baseWarehouseManager.setId(IdUtil.generateId());
        return this.insert(baseWarehouseManager);
    @Transactional(rollbackFor = Exception.class)
    public void add(WarehouseManagerParam list) throws Exception {
        Long warehouseId = list.getWarehouseId();
        // 角色id
        Long roleId = null;
        List<S_role> 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<BaseWarehouseManager> 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<String, Object> 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<String, Object> params = new HashMap<>();
        params.put("warehouseId", warehouseId);
        this.execute(sql, params);
        //重新保存
        List<WarehouseManagerInfo> 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<String, Object> userRoleParam = new HashMap<>();
                userRoleParam.put("managerId", sysUserId);
                userRoleParam.put("roleId", roleId);
                this.execute(saveUserRole, userRoleParam);
//                this.finSysTenantUserService.execInsertRoleUserList(roleList, sysUserId);
            }
        }
    }
}