/*
|
* Copyright (c) 2018-2025, ztt All rights reserved.
|
*
|
* Redistribution and use in source and binary forms, with or without
|
* modification, are permitted provided that the following conditions are met:
|
*
|
* Redistributions of source code must retain the above copyright notice,
|
* this list of conditions and the following disclaimer.
|
* Redistributions in binary form must reproduce the above copyright
|
* notice, this list of conditions and the following disclaimer in the
|
* documentation and/or other materials provided with the distribution.
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
* contributors may be used to endorse or promote products derived from
|
* this software without specific prior written permission.
|
* Author: ztt
|
*/
|
|
package com.chinaztt.mes.basic.controller;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.chinaztt.mes.common.wrapper.QueryWrapperUtil;
|
import com.chinaztt.ztt.admin.api.entity.SysDictItem;
|
import com.chinaztt.ztt.admin.api.feign.RemoteDictService;
|
import com.chinaztt.ztt.common.core.util.R;
|
import com.chinaztt.ztt.common.log.annotation.SysLog;
|
import com.chinaztt.mes.basic.entity.Company;
|
import com.chinaztt.mes.basic.service.CompanyService;
|
import com.chinaztt.ztt.common.security.annotation.Inner;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.AllArgsConstructor;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.IOException;
|
import java.util.List;
|
|
|
/**
|
* 公司
|
*
|
* @author luh
|
* @author liuth
|
* @date 2020-08-14 15:02:11
|
* @date 2020-09-18 17:13:17
|
*/
|
@RestController
|
@AllArgsConstructor
|
@RequestMapping("/company")
|
@Api(value = "company", tags = "公司管理")
|
public class CompanyController {
|
|
private final CompanyService companyService;
|
private final RemoteDictService remoteDictService;
|
|
/**
|
* 分页查询
|
*
|
* @param page 分页对象
|
* @param company 公司
|
* @return
|
*/
|
@ApiOperation(value = "分页查询", notes = "分页查询")
|
@GetMapping("/page")
|
@PreAuthorize("@pms.hasPermission('basic_company_view')")
|
public R getCompanyPage(Page page, Company company) {
|
return R.ok(companyService.page(page, QueryWrapperUtil.gen(company)));
|
}
|
|
|
@ApiOperation(value = "复制", notes = "复制")
|
@PostMapping("/copy")
|
@PreAuthorize("@pms.hasPermission('basic_company_add')")
|
public R copy(@RequestBody Company[] companies) {
|
companyService.clone(companies);
|
return R.ok();
|
}
|
|
|
/**
|
* 通过id关联查询公司
|
*
|
* @param id id
|
* @return R
|
*/
|
@ApiOperation(value = "通过id查询", notes = "通过id查询")
|
@GetMapping("/getAllById/{id}")
|
@PreAuthorize("@pms.hasPermission('basic_company_view')")
|
public R getAllById(@PathVariable("id") Long id) {
|
return R.ok(companyService.getFullById(id));
|
}
|
|
|
/**
|
* 通过人员id查询
|
*
|
* @param id id
|
* @return R
|
*/
|
@ApiOperation(value = "通过人员id查询", notes = "通过人员id查询")
|
@GetMapping("/getByStaffId/{id}")
|
public R getByStaffId(@PathVariable("id") Long id) {
|
return R.ok(companyService.getByStaffId(id));
|
}
|
|
/**
|
* 新增公司
|
*
|
* @param company 公司
|
* @return R
|
*/
|
@ApiOperation(value = "新增公司", notes = "新增公司")
|
@SysLog("新增公司")
|
@PostMapping
|
@PreAuthorize("@pms.hasPermission('basic_company_add')")
|
public R save(@RequestBody Company company) {
|
// 判断编号重复
|
Company companyByFind = companyService.getOne(Wrappers.<Company>lambdaQuery().eq(Company::getCompanyNo, company.getCompanyNo()));
|
if (companyByFind != null) {
|
throw new RuntimeException("公司编号重复:" + companyByFind.getCompanyName() + "-" + companyByFind.getCompanyNo());
|
}
|
companyService.fullSave(company);
|
return R.ok(company);
|
}
|
|
/**
|
* 修改公司
|
*
|
* @param company 公司
|
* @return R
|
*/
|
@ApiOperation(value = "修改公司", notes = "修改公司")
|
@SysLog("修改公司")
|
@PutMapping
|
@PreAuthorize("@pms.hasPermission('basic_company_edit')")
|
public R updateById(@RequestBody Company company) {
|
return R.ok(companyService.fullUpdate(company));
|
}
|
|
/**
|
* 公司关联删除
|
*
|
* @param id id
|
* @return R
|
*/
|
@ApiOperation(value = "公司关联删除", notes = "公司关联删除")
|
@SysLog("通过id删除公司")
|
@DeleteMapping("/{id}")
|
@PreAuthorize("@pms.hasPermission('basic_company_del')")
|
public R fullDelete(@PathVariable Long id) {
|
return R.ok(companyService.fullDelete(id));
|
}
|
|
/**
|
* 获取地址类型字典
|
*
|
* @param index
|
* @return
|
*/
|
@GetMapping("/dict/{index}")
|
public R<List<SysDictItem>> dir(@PathVariable("index") String index) {
|
return remoteDictService.getDictByType(index);
|
}
|
|
/**
|
* 通过id删除公司联系方式
|
*
|
* @param id id
|
* @return R
|
*/
|
@ApiOperation(value = "通过id删除公司联系方式", notes = "通过id删除公司联系方式")
|
@SysLog("通过id删除公司联系方式")
|
@DeleteMapping("/companyContact/{id}")
|
@PreAuthorize("@pms.hasPermission('basic_company_del')")
|
public R deleteContactById(@PathVariable Long id) {
|
return R.ok(companyService.deleteContactById(id));
|
}
|
|
/**
|
* 通过id删除公司地址
|
*
|
* @param id id
|
* @return R
|
*/
|
@ApiOperation(value = "通过id删除公司地址", notes = "通过id删除公司地址")
|
@SysLog("通过id删除公司地址")
|
@DeleteMapping("/companyAddress/{id}")
|
@PreAuthorize("@pms.hasPermission('basic_company_del')")
|
public R deleteAddressById(@PathVariable Long id) {
|
return R.ok(companyService.deleteAddressById(id));
|
}
|
|
|
/**
|
* 上传文件 文件名采用uuid,避免原始文件名中带"-"符号导致下载的时候解析出现异常
|
*
|
* @param file 资源
|
* @return
|
*/
|
@PostMapping("/upload")
|
public R upload(@RequestParam("file") MultipartFile file, @RequestParam("id") Long id) {
|
return R.ok(companyService.uploadFile(file, id));
|
}
|
|
/**
|
* 文件预览
|
*
|
* @param id
|
* @return
|
*/
|
@DeleteMapping("/removeFile/{id}")
|
public R file(@PathVariable("id") Long id) {
|
return R.ok(companyService.removeFile(id));
|
}
|
|
/**
|
* 文件预览
|
*
|
* @param id
|
* @return
|
*/
|
@Inner(false)
|
@GetMapping("/preview/{id}")
|
public void file(@PathVariable("id") Long id, HttpServletResponse response) {
|
companyService.getFile(id, response);
|
}
|
|
}
|