package cn.iocoder.yudao.module.mdm.controller.admin.unit;
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
import cn.iocoder.yudao.module.mdm.controller.admin.unit.vo.MdmUnitMeasureImportExcelVO;
|
import cn.iocoder.yudao.module.mdm.controller.admin.unit.vo.MdmUnitMeasureImportRespVO;
|
import cn.iocoder.yudao.module.mdm.controller.admin.unit.vo.MdmUnitMeasurePageReqVO;
|
import cn.iocoder.yudao.module.mdm.controller.admin.unit.vo.MdmUnitMeasureSaveReqVO;
|
import cn.iocoder.yudao.module.mdm.dal.dataobject.unit.MdmUnitMeasureDO;
|
import cn.iocoder.yudao.module.mdm.service.unit.MdmUnitMeasureService;
|
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameters;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
import jakarta.annotation.Resource;
|
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.validation.Valid;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import java.io.IOException;
|
import java.util.Arrays;
|
import java.util.List;
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
@Tag(name = "管理后台 - MDM 计量单位")
|
@RestController
|
@RequestMapping("/mdm/unit")
|
@Validated
|
public class MdmUnitMeasureController {
|
|
@Resource
|
private MdmUnitMeasureService unitMeasureService;
|
|
@PostMapping("/create")
|
@Operation(summary = "创建计量单位")
|
@PreAuthorize("@ss.hasPermission('mdm:unit-measure:create')")
|
public CommonResult<Long> createUnitMeasure(@Valid @RequestBody MdmUnitMeasureSaveReqVO createReqVO) {
|
return success(unitMeasureService.createUnitMeasure(createReqVO));
|
}
|
|
@PutMapping("/update")
|
@Operation(summary = "更新计量单位")
|
@PreAuthorize("@ss.hasPermission('mdm:unit-measure:update')")
|
public CommonResult<Boolean> updateUnitMeasure(@Valid @RequestBody MdmUnitMeasureSaveReqVO updateReqVO) {
|
unitMeasureService.updateUnitMeasure(updateReqVO);
|
return success(true);
|
}
|
|
@PutMapping("/update-status")
|
@Operation(summary = "更新计量单位状态")
|
@Parameter(name = "id", description = "编号", required = true, example = "1")
|
@Parameter(name = "status", description = "状态", required = true, example = "0")
|
@PreAuthorize("@ss.hasPermission('mdm:unit-measure:update')")
|
public CommonResult<Boolean> updateUnitMeasureStatus(@RequestParam("id") Long id, @RequestParam("status") Integer status) {
|
unitMeasureService.updateUnitMeasureStatus(id, status);
|
return success(true);
|
}
|
|
@DeleteMapping("/delete")
|
@Operation(summary = "删除计量单位")
|
@Parameter(name = "id", description = "编号", required = true, example = "1")
|
@PreAuthorize("@ss.hasPermission('mdm:unit-measure:delete')")
|
public CommonResult<Boolean> deleteUnitMeasure(@RequestParam("id") Long id) {
|
unitMeasureService.deleteUnitMeasure(id);
|
return success(true);
|
}
|
|
@GetMapping("/get")
|
@Operation(summary = "获得计量单位")
|
@Parameter(name = "id", description = "编号", required = true, example = "1")
|
@PreAuthorize("@ss.hasPermission('mdm:unit-measure:query')")
|
public CommonResult<MdmUnitMeasureDO> getUnitMeasure(@RequestParam("id") Long id) {
|
return success(unitMeasureService.getUnitMeasure(id));
|
}
|
|
@GetMapping("/page")
|
@Operation(summary = "获得计量单位分页")
|
@PreAuthorize("@ss.hasPermission('mdm:unit-measure:query')")
|
public CommonResult<PageResult<MdmUnitMeasureDO>> getUnitMeasurePage(@Valid MdmUnitMeasurePageReqVO pageReqVO) {
|
return success(unitMeasureService.getUnitMeasurePage(pageReqVO));
|
}
|
|
@GetMapping("/list")
|
@Operation(summary = "获得计量单位列表")
|
@PreAuthorize("@ss.hasPermission('mdm:unit-measure:query')")
|
public CommonResult<List<MdmUnitMeasureDO>> getUnitMeasureList() {
|
return success(unitMeasureService.getUnitMeasureList(null));
|
}
|
|
@GetMapping("/list-by-ids")
|
@Operation(summary = "获得计量单位列表")
|
@Parameter(name = "ids", description = "编号列表", required = true, example = "1,2,3")
|
@PreAuthorize("@ss.hasPermission('mdm:unit-measure:query')")
|
public CommonResult<List<MdmUnitMeasureDO>> getUnitMeasureListByIds(@RequestParam("ids") List<Long> ids) {
|
return success(unitMeasureService.getUnitMeasureList(ids));
|
}
|
|
@GetMapping("/get-import-template")
|
@Operation(summary = "获得导入计量单位模板")
|
public void importTemplate(HttpServletResponse response) throws IOException {
|
List<MdmUnitMeasureImportExcelVO> list = Arrays.asList(
|
MdmUnitMeasureImportExcelVO.builder().code("PC").name("片").primaryFlag(true).changeRate(new java.math.BigDecimal("1")).status(0).remark("示例:主单位").build(),
|
MdmUnitMeasureImportExcelVO.builder().code("XIA").name("箱").primaryFlag(false).primaryCode("PC").changeRate(new java.math.BigDecimal("100")).status(0).remark("示例:1箱=100片").build()
|
);
|
ExcelUtils.write(response, "计量单位导入模板.xls", "计量单位", MdmUnitMeasureImportExcelVO.class, list);
|
}
|
|
@PostMapping("/import")
|
@Operation(summary = "导入计量单位")
|
@Parameters({
|
@Parameter(name = "file", description = "Excel 文件", required = true),
|
@Parameter(name = "updateSupport", description = "是否支持更新,默认为 false", example = "true")
|
})
|
@PreAuthorize("@ss.hasPermission('mdm:unit-measure:import')")
|
public CommonResult<MdmUnitMeasureImportRespVO> importExcel(@RequestParam("file") MultipartFile file,
|
@RequestParam(value = "updateSupport", required = false, defaultValue = "false") Boolean updateSupport) throws Exception {
|
List<MdmUnitMeasureImportExcelVO> list = ExcelUtils.read(file, MdmUnitMeasureImportExcelVO.class);
|
return success(unitMeasureService.importUnitMeasureList(list, updateSupport));
|
}
|
|
}
|