| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mdm.controller.admin.unit; |
| | | |
| | | import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; |
| | | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| | | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| | | 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.MdmUnitMeasureExcelVO; |
| | | 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.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; |
| | | 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:create')") |
| | | public CommonResult<Long> createUnitMeasure(@Valid @RequestBody MdmUnitMeasureSaveReqVO createReqVO) { |
| | | return success(unitMeasureService.createUnitMeasure(createReqVO)); |
| | | } |
| | | |
| | | @PutMapping("/update") |
| | | @Operation(summary = "æ´æ°è®¡éåä½") |
| | | @PreAuthorize("@ss.hasPermission('mdm:unit: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: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: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:query')") |
| | | public CommonResult<MdmUnitMeasureDO> getUnitMeasure(@RequestParam("id") Long id) { |
| | | return success(unitMeasureService.getUnitMeasure(id)); |
| | | } |
| | | |
| | | @GetMapping("/page") |
| | | @Operation(summary = "è·å¾è®¡éåä½å页") |
| | | @PreAuthorize("@ss.hasPermission('mdm:unit:query')") |
| | | public CommonResult<PageResult<MdmUnitMeasureDO>> getUnitMeasurePage(@Valid MdmUnitMeasurePageReqVO pageReqVO) { |
| | | return success(unitMeasureService.getUnitMeasurePage(pageReqVO)); |
| | | } |
| | | |
| | | @GetMapping("/list") |
| | | @Operation(summary = "è·å¾è®¡éåä½å表") |
| | | @PreAuthorize("@ss.hasPermission('mdm:unit: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:query')") |
| | | public CommonResult<List<MdmUnitMeasureDO>> getUnitMeasureListByIds(@RequestParam("ids") List<Long> ids) { |
| | | return success(unitMeasureService.getUnitMeasureList(ids)); |
| | | } |
| | | |
| | | @GetMapping("/export-excel") |
| | | @Operation(summary = "导åºè®¡éåä½ Excel") |
| | | @PreAuthorize("@ss.hasPermission('mdm:unit:export')") |
| | | @ApiAccessLog(operateType = EXPORT) |
| | | public void exportUnitMeasureExcel(@Valid MdmUnitMeasurePageReqVO pageReqVO, |
| | | HttpServletResponse response) throws IOException { |
| | | pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); |
| | | List<MdmUnitMeasureDO> list = unitMeasureService.getUnitMeasurePage(pageReqVO).getList(); |
| | | // 主åä½ç¼ç æ å°ï¼ä¸æ¬¡æ¥è¯¢å
¨é¨è®¡éåä½ï¼ç¨äºè§£æ primaryId -> ç¼ç |
| | | MdmUnitMeasurePageReqVO allReqVO = new MdmUnitMeasurePageReqVO(); |
| | | allReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); |
| | | Map<Long, String> unitCodeMap = new HashMap<>(); |
| | | for (MdmUnitMeasureDO unit : unitMeasureService.getUnitMeasurePage(allReqVO).getList()) { |
| | | unitCodeMap.put(unit.getId(), unit.getCode()); |
| | | } |
| | | // ç»è£
å¯¼åº VOï¼ä¸»åä½ç¼ç ä» DO.primaryId è§£æï¼ |
| | | List<MdmUnitMeasureExcelVO> excelList = new ArrayList<>(); |
| | | for (MdmUnitMeasureDO unit : list) { |
| | | MdmUnitMeasureExcelVO excelVO = BeanUtils.toBean(unit, MdmUnitMeasureExcelVO.class); |
| | | if (unit.getPrimaryId() != null) { |
| | | excelVO.setPrimaryCode(unitCodeMap.get(unit.getPrimaryId())); |
| | | } |
| | | excelList.add(excelVO); |
| | | } |
| | | // å¯¼åº Excel |
| | | ExcelUtils.write(response, "计éå使°æ®.xls", "计éåä½", MdmUnitMeasureExcelVO.class, excelList); |
| | | } |
| | | |
| | | @GetMapping("/get-import-template") |
| | | @Operation(summary = "è·å¾å¯¼å
¥è®¡éå使¨¡æ¿") |
| | | @PreAuthorize("@ss.hasPermission('mdm:unit:import')") |
| | | 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: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)); |
| | | } |
| | | |
| | | } |