package doumeemes.api.ext; 
 | 
  
 | 
import doumeemes.api.BaseController; 
 | 
import doumeemes.core.annotation.excel.ExcelExporter; 
 | 
import doumeemes.core.annotation.pr.PreventRepeat; 
 | 
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 = "计量单位信息接口") 
 | 
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<Integer> 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<PageData<UnitExtListVO>> findPage (@RequestBody PageWrap<QueryUnitExtDTO> pageWrap) { 
 | 
        return ApiResponse.success(unitExtService.findPage(pageWrap)); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("导出Excel") 
 | 
    @PostMapping("/exportExcel") 
 | 
    @RequiresPermissions("ext:unitext:exportExcel") 
 | 
    public void exportExcel (@RequestBody PageWrap<QueryUnitExtDTO> 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<Unit> 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<List<UnitExtListVO>> getCollectionByType (@RequestBody QueryUnitExtDTO pageWrap) { 
 | 
        pageWrap.setStatus(Constants.ONE); 
 | 
        pageWrap.setDeleted(Constants.ZERO); 
 | 
        pageWrap.setRootDepartId(getLoginUser().getRootDepartment().getId()); 
 | 
        return ApiResponse.success(unitExtService.getUnitListByOrg(pageWrap)); 
 | 
    } 
 | 
} 
 |