| 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.model.Appliances; | 
| import doumeemes.dao.ext.dto.QueryAppliancesByManualDTO; | 
| import doumeemes.dao.ext.dto.QueryAppliancesExtDTO; | 
| import doumeemes.dao.ext.vo.AppliancesExtListVO; | 
| import doumeemes.service.business.AppliancesService; | 
| import doumeemes.service.ext.AppliancesExtService; | 
| import io.swagger.annotations.Api; | 
| import io.swagger.annotations.ApiImplicitParam; | 
| import io.swagger.annotations.ApiImplicitParams; | 
| import io.swagger.annotations.ApiOperation; | 
| import org.apache.commons.lang3.StringUtils; | 
| import org.apache.shiro.authz.annotation.RequiresPermissions; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.validation.annotation.Validated; | 
| import org.springframework.web.bind.annotation.*; | 
| import org.springframework.web.multipart.MultipartFile; | 
|   | 
| import javax.servlet.http.HttpServletRequest; | 
| import javax.servlet.http.HttpServletResponse; | 
| import java.io.IOException; | 
| import java.math.BigDecimal; | 
| import java.util.ArrayList; | 
| import java.util.Date; | 
| import java.util.List; | 
|   | 
| /** | 
|  * 工装器具信息接口 | 
|  * @author 江蹄蹄 | 
|  * @date 2022/04/20 11:01 | 
|  */ | 
| @RestController | 
| @RequestMapping("/ext/appliancesExt") | 
| @Api(tags = "工装器具信息接口") | 
| public class AppliancesExtController extends BaseController { | 
|   | 
|     @Autowired | 
|     private AppliancesExtService appliancesExtService; | 
|      | 
|     @Autowired | 
|     private AppliancesService appliancesService; | 
|   | 
|     @PreventRepeat | 
|     @ApiOperation("新建") | 
|     @PostMapping("/create") | 
|     @RequiresPermissions("ext:appliancesext:create") | 
|     public ApiResponse create(@RequestBody Appliances appliances) { | 
|   | 
|         return appliancesService.create( appliances); | 
|     } | 
|   | 
|     @ApiOperation("根据ID删除") | 
|     @GetMapping("/delete/{id}") | 
|     @RequiresPermissions("ext:appliancesext:delete") | 
|     public ApiResponse deleteById(@PathVariable Integer id) { | 
|         appliancesService.deleteById(id); | 
|         return ApiResponse.success(null); | 
|     } | 
|   | 
|     @ApiOperation("批量删除") | 
|     @GetMapping("/delete/batch") | 
|     @RequiresPermissions("ext:appliancesext: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)); | 
|         } | 
|         appliancesService.deleteByIdInBatch(idList); | 
|         return ApiResponse.success(null); | 
|     } | 
|   | 
|     @ApiOperation("根据ID修改") | 
|     @PostMapping("/updateById") | 
|     @RequiresPermissions("ext:appliancesext:update") | 
|     public ApiResponse updateById(@RequestBody Appliances appliances) { | 
|         appliancesService.updateById(appliances); | 
|         return ApiResponse.success(null); | 
|     } | 
|   | 
|     @ApiOperation("分页查询") | 
|     @PostMapping("/page") | 
|     @RequiresPermissions("ext:appliancesext:query") | 
|     public ApiResponse<PageData<AppliancesExtListVO>> findPage (@RequestBody PageWrap<QueryAppliancesExtDTO> pageWrap) { | 
|         return ApiResponse.success(appliancesExtService.findPage(pageWrap)); | 
|     } | 
|   | 
|   | 
|     @ApiOperation("导出Excel") | 
|     @PostMapping("/exportExcel") | 
|    // @RequiresPermissions("ext:appliancesext:exportExcel") | 
|     public void exportExcel (@RequestBody PageWrap<QueryAppliancesExtDTO> pageWrap, HttpServletResponse response) { | 
|        List<AppliancesExtListVO> list=appliancesExtService.findPage(pageWrap).getRecords(); | 
|        List<AppliancesExtListVO> dclist=new ArrayList(); | 
|        if(list.size()>0){ | 
|            for(int i=0;i<list.size();i++){ | 
|                AppliancesExtListVO app=list.get(i); | 
|                if(StringUtils.isNotEmpty(app.getCmodel1MiddleName())){ | 
|                   app.setCmodel1BigName(app.getCmodel1BigName()+""+app.getCmodel1MiddleName()); | 
|                   if(StringUtils.isNotEmpty(app.getCmodel1SmallName())){ | 
|                       app.setCmodel1BigName(app.getCmodel1BigName()+""+app.getCmodel1MiddleName()+""+app.getCmodel1SmallName()); | 
|                   } | 
|                } | 
|                if(app.getStatus()!=null){ | 
|                    switch (app.getStatus()){ | 
|                        case 0: app.setStatusname("报废"); break; | 
|                        case 1: app.setStatusname("空"); break; | 
|                        case 2: app.setStatusname("部分"); break; | 
|                        case 3: app.setStatusname("满"); break; | 
|                        default: | 
|                            break; | 
|                    } | 
|   | 
|                } | 
|                if(app.getNum()==null){ | 
|                    BigDecimal b=new BigDecimal("0"); | 
|                    app.setNum(b); | 
|                } | 
|                dclist.add(app); | 
|            } | 
|        } | 
|         ExcelExporter.build(AppliancesExtListVO.class).export(dclist, "工装器具信息"+System.currentTimeMillis(), response); | 
|     } | 
|   | 
|     @ApiOperation("根据ID查询") | 
|     @GetMapping("/{id}") | 
|     @RequiresPermissions("ext:appliancesext:query") | 
|     public ApiResponse<Appliances> findById(@PathVariable Integer id) { | 
|         return ApiResponse.success(appliancesService.findById(id)); | 
|     } | 
|   | 
|   | 
|     @ApiOperation("根据工装类型获取最大的序列号") | 
|     @ApiImplicitParams({ | 
|             @ApiImplicitParam(value = "字典数据表主键 工装属性", name = "type", paramType = "query", required = true, dataType = "String"), | 
|             @ApiImplicitParam(value = "工装类型", name = "categoryId", paramType = "query", required = true, dataType = "String"), | 
|     }) | 
|     @GetMapping("/getMaxSerialNumByType") | 
|     @RequiresPermissions("ext:appliancesext:getMaxSerialNumByType") | 
|     public ApiResponse getMaxSerialNumByType(@RequestParam String type,@RequestParam String categoryId) { | 
|         QueryAppliancesExtDTO findData=new QueryAppliancesExtDTO(); | 
|         findData.setDepartId(getLoginUser().getCurComDepartment().getId()); | 
|         findData.setRootDepartId(getLoginUser().getRootDepartment().getId()); | 
|        // findData.setType(Integer.valueOf(type)); | 
|         findData.setCategoryId(Integer.valueOf(categoryId)); | 
|         findData.setDeleted(Constants.ZERO); | 
|         AppliancesExtListVO appliances=  appliancesExtService.findMaxSerial(findData); | 
|         if(appliances!=null){ | 
|             return ApiResponse.success(appliances.getSerialNum()); | 
|         }else{ | 
|             return ApiResponse.success(0); | 
|         } | 
|   | 
|     } | 
|   | 
|   | 
|   | 
|     @ApiOperation("批量报废") | 
|     @GetMapping("/updateStatus") | 
|     @RequiresPermissions("ext:appliancesext:updateStatus") | 
|     public ApiResponse updateStatus(@RequestParam String ids,@RequestParam String remark) { | 
|         String [] idArray = ids.split(","); | 
|         List<Appliances> idList = new ArrayList<>(); | 
|         for (String id : idArray) { | 
|   | 
|             Appliances appliances=   appliancesService.findById(Integer.valueOf(id)); | 
|             if(appliances!=null&&appliances.getStatus()!=1){ | 
|              return ApiResponse.failed(appliances.getCode()+":工装不为空,不能报废!"); | 
|             } | 
|             if(appliances==null){ | 
|                 return ApiResponse.failed("数据不存在!"); | 
|             } | 
|             appliances.setStatus(Constants.ZERO); | 
|             appliances.setUpdateTime(new Date()); | 
|             appliances.setRemark(remark); | 
|             idList.add(appliances); | 
|         } | 
|         appliancesService.updateByIdInBatch(idList); | 
|         return ApiResponse.success(null); | 
|     } | 
|   | 
|   | 
|   | 
|   | 
|     @ApiOperation("工装器具导入Excel") | 
|     @PostMapping("/importExcel") | 
|     //@RequiresPermissions("ext:appliancesext:importExcel") | 
|     public ApiResponse importExcel(@RequestParam(name = "file") MultipartFile file, @RequestParam(name = "categoryId")  String categoryId,HttpServletRequest request, HttpServletResponse response) throws Exception { | 
|         return appliancesExtService.importExcel(file,categoryId); | 
|     } | 
|   | 
|   | 
|     @ApiOperation("根据条件查询列表") | 
|     @PostMapping("/getListByCondition") | 
|     public ApiResponse<List<AppliancesExtListVO>> getListByCondition(@RequestBody QueryAppliancesExtDTO query) { | 
|       //  QueryAppliancesExtDTO find=new QueryAppliancesExtDTO(); | 
|         query.setDeleted(Constants.ZERO); | 
|         query.setRootDepartId(getLoginUser().getRootDepartment().getId()); | 
|         query.setDepartId(getLoginUser().getCurComDepartment().getId()); | 
|         return ApiResponse.success(appliancesExtService.selectListByCondition(query)); | 
|     } | 
|   | 
|   | 
|   | 
|   | 
|   /*  @ApiOperation("根据id查询篮筐信息") | 
|     @PostMapping("/getApplianceListByCondition") | 
|     public ApiResponse<List<AppliancesExtListVO>> getApplianceListByCondition(@RequestBody QueryAppliancesExtDTO query) { | 
|         //  QueryAppliancesExtDTO find=new QueryAppliancesExtDTO(); | 
|         query.setDeleted(Constants.ZERO); | 
|         query.setRootDepartId(getLoginUser().getRootDepartment().getId()); | 
|         query.setDepartId(getLoginUser().getCurComDepartment().getId()); | 
|         if(query.getFirstid()==null){ | 
|           return ApiResponse.failed("参数错误!"); | 
|         } | 
|         return appliancesExtService.getApplianceListByCondition(query); | 
|     }*/ | 
|   | 
|   | 
| /*    @ApiOperation("更换篮筐") | 
|     @PostMapping("/chageApplicance") | 
|     public ApiResponse chageApplicance(@RequestParam(name = "oldId") Integer oldId, @RequestParam(name = "newId") Integer newId) { | 
|   | 
|   | 
|         return  appliancesExtService.chageApplicance(oldId,newId); | 
|   | 
|     }*/ | 
|   | 
|   | 
|   | 
|     @ApiOperation("更换篮筐") | 
|     @PostMapping("/chageApplicance") | 
|     public ApiResponse chageApplicance(@RequestBody QueryAppliancesExtDTO query) { | 
|         try { | 
|             return  appliancesExtService.chageApplicance(query); | 
|         } catch (IOException e) { | 
|             e.printStackTrace(); | 
|             return ApiResponse.failed("更换失败"); | 
|         } | 
|     } | 
|   | 
|   | 
|     @ApiOperation("手动出入库使用 - 分页查询") | 
|     @PostMapping("/findListPageForManual") | 
|     @RequiresPermissions("ext:appliancesext:query") | 
|     public ApiResponse<PageData<AppliancesExtListVO>> findListPageForManual (@Validated @RequestBody PageWrap<QueryAppliancesByManualDTO> pageWrap) { | 
|         return ApiResponse.success(appliancesExtService.findListPageForManual(pageWrap)); | 
|     } | 
|   | 
|   | 
|   | 
|   | 
| } |