You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
3.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.ruoyi.tc.controller;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.tc.entity.ExamineInfo;
import com.ruoyi.tc.entity.Unit;
import com.ruoyi.tc.entity.UnitOtherConcat;
import com.ruoyi.tc.service.ExamineInfoService;
import com.ruoyi.tc.service.UnitOtherConcatService;
import com.ruoyi.tc.service.UnitService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* 组织架构
*
* @author du
* @since 2024/12/9 10:42
*/
@Api(tags = "组织架构")
@RestController
@RequestMapping("/tc/schema")
public class DeptSchemaController {
@Resource
private UnitService unitService;
@Resource
private UnitOtherConcatService unitOtherConcatService;
@Resource
private ExamineInfoService examineInfoService;
/**
* 根据资产类型返回组织架构
*/
@ApiOperation(value = "根据资产类型返回组织架构")
@GetMapping
@ApiImplicitParams({
@ApiImplicitParam(name = "type", value = "0:web资产1:小程序资产2公众号资产3电子邮件资产4移动应用程序资产", required = true),
})
public AjaxResult schema(@RequestParam("type") String type) {
return AjaxResult.success(unitService.getSchema(type));
}
/**
* 单位查看自己单位具体信息
*/
@ApiOperation(value = "单位查看自己单位具体信息")
@PreAuthorize("@ss.hasAnyRoles('unit')")
@GetMapping("/unitOwnInfo")
public AjaxResult unitOwnInfo() {
Unit one = unitService.lambdaQuery().eq(Unit::getUserName, SecurityUtils.getLoginUser().getUsername()).one();
Unit byId = unitService.getById(one.getId());
return AjaxResult.success(byId);
}
/**
* 单位修改自己的单位信息
*/
@ApiOperation(value = "单位修改自己的单位信息")
@PreAuthorize("@ss.hasAnyRoles('unit')")
@PostMapping("/unitEditOwn")
public AjaxResult unitEditOwn(@RequestBody Unit x) {
Unit byId = unitService.getById(x.getId());
if (!byId.getUserName().equals(x.getUserName()) || !byId.getNickName().equals(x.getNickName())) {
throw new ServiceException("单位名称和社会信用代码不允许修改!");
}
unitService.updateById(x);
//先删除
unitOtherConcatService.deleteByUnitIds(x.getId());
examineInfoService.deleteByUnitIds(x.getId());
if (x.getOtherConcat() != null) {
x.getOtherConcat().forEach(y -> {
y.setUnitId(x.getId());
y.setConcatId(null);
});
unitOtherConcatService.saveBatch(x.getOtherConcat());
}
if (x.getJcxxList() != null) {
x.getJcxxList().forEach(y -> {
y.setUnitId(x.getId());
y.setJcid(null);
});
examineInfoService.saveBatch(x.getJcxxList());
}
return AjaxResult.success();
}
}