package doumeemes.api.ext; import doumeemes.api.BaseController; import doumeemes.core.annotation.excel.ExcelExporter; import doumeemes.core.annotation.pr.PreventRepeat; import doumeemes.core.annotation.trace.Trace; import doumeemes.core.model.ApiResponse; import doumeemes.core.model.PageData; import doumeemes.core.model.PageWrap; import doumeemes.core.utils.Constants; import doumeemes.dao.business.dto.QueryUnitExtDTO; import doumeemes.dao.business.model.Unit; import doumeemes.dao.business.vo.UnitExtListVO; import doumeemes.service.business.UnitExtService; import doumeemes.service.business.UnitService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * 计量单位信息接口 * @author 江蹄蹄 * @date 2022/05/12 10:18 */ @RestController @RequestMapping("/ext/unitExt") @Api(tags = "计量单位信息接口") @Trace(withRequestResult = false,withRequestParameters = false) public class UnitExtController extends BaseController { @Autowired private UnitExtService unitExtService; @Autowired private UnitService unitService; @PreventRepeat @ApiOperation("新建") @PostMapping("/create") @RequiresPermissions("ext:unitext:create") public ApiResponse create(@RequestBody Unit unit) { Integer result = unitService.create(unit); if(result==0){ return ApiResponse.failed("单位名称不能重复"); }else{ return ApiResponse.success(result); } } @ApiOperation("根据ID删除") @GetMapping("/delete/{id}") @RequiresPermissions("ext:unitext:delete") public ApiResponse deleteById(@PathVariable Integer id) { unitService.deleteById(id); return ApiResponse.success(null); } @ApiOperation("批量删除") @GetMapping("/delete/batch") @RequiresPermissions("ext:unitext:delete") public ApiResponse deleteByIds(@RequestParam String ids) { String [] idArray = ids.split(","); List idList = new ArrayList<>(); for (String id : idArray) { idList.add(Integer.valueOf(id)); } unitService.deleteByIdInBatch(idList); return ApiResponse.success(null); } @ApiOperation("根据ID修改") @PostMapping("/updateById") @RequiresPermissions("ext:unitext:update") public ApiResponse updateById(@RequestBody Unit unit) { unitService.updateById(unit); return ApiResponse.success(null); } @ApiOperation("分页查询") @PostMapping("/page") @RequiresPermissions("ext:unitext:query") public ApiResponse> findPage (@RequestBody PageWrap pageWrap) { return ApiResponse.success(unitExtService.findPage(pageWrap)); } @ApiOperation("导出Excel") @PostMapping("/exportExcel") @RequiresPermissions("ext:unitext:exportExcel") public void exportExcel (@RequestBody PageWrap pageWrap, HttpServletResponse response) { ExcelExporter.build(UnitExtListVO.class).export(unitExtService.findPage(pageWrap).getRecords(), "计量单位信息", response); } @ApiOperation("根据ID查询") @GetMapping("/{id}") @RequiresPermissions("ext:unitext:query") public ApiResponse findById(@PathVariable Integer id) { return ApiResponse.success(unitService.findById(id)); } @ApiOperation("物料单位状态变更") @ApiImplicitParams({ @ApiImplicitParam(value = "ids,逗号分割", name = "ids", paramType = "query", required = true, dataType = "String"), @ApiImplicitParam(value = "状态 0禁用 1启用", name = "status", paramType = "query", required = true, dataType = "String") }) @GetMapping("/updateUnitStatus") @RequiresPermissions("ext:unitext:updateUnitStatus") public ApiResponse updateUnitStatus(@RequestParam String ids,@RequestParam String status) { String [] idArray = ids.split(","); List idList = new ArrayList<>(); for (String id : idArray) { Unit unit= unitService.findById(Integer.valueOf(id)); unit.setId(Integer.valueOf(id)); unit.setStatus(Integer.valueOf(status)); unit.setUpdateTime(new Date()); unit.setUpdateUser(getLoginUser().getId()); idList.add(unit); } unitService.updateByIdInBatch(idList); return ApiResponse.success(null); } @ApiOperation("根据物料单位类型查询所有的数据") @PostMapping("/getCollectionByType") public ApiResponse> getCollectionByType (@RequestBody QueryUnitExtDTO pageWrap) { pageWrap.setStatus(Constants.ONE); pageWrap.setDeleted(Constants.ZERO); pageWrap.setRootDepartId(getLoginUser().getRootDepartment().getId()); return ApiResponse.success(unitExtService.getUnitListByOrg(pageWrap)); } }