| package doumeemes.api.ext; | 
|   | 
| import com.alibaba.fastjson.JSONObject; | 
| import doumeemes.api.BaseController; | 
| import doumeemes.config.rocketmq.RocketMessageProducer; | 
| 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.core.utils.DateUtil; | 
| import doumeemes.dao.business.model.BeFinishedRecord; | 
| import doumeemes.dao.business.model.Plans; | 
| import doumeemes.dao.business.model.Workorder; | 
| import doumeemes.dao.ext.bean.FinishedInBean; | 
| import doumeemes.dao.ext.bean.FinishedInNewBean; | 
| import doumeemes.dao.ext.dto.QueryWorkorderExtDTO; | 
| import doumeemes.dao.ext.vo.WorkorderExtListCountVO; | 
| import doumeemes.dao.ext.vo.WorkorderExtListVO; | 
| import doumeemes.service.business.PlansService; | 
| import doumeemes.service.business.WorkorderService; | 
| import doumeemes.service.ext.BeFinishedRecordExtService; | 
| import doumeemes.service.ext.PlansExtService; | 
| import doumeemes.service.ext.WorkorderExtService; | 
| 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.apache.shiro.util.ThreadContext; | 
| import org.apache.shiro.web.mgt.DefaultWebSecurityManager; | 
| 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.List; | 
|   | 
| /** | 
|  * 工单信息接口 | 
|  * @author 江蹄蹄 | 
|  * @date 2022/04/20 10:56 | 
|  */ | 
| @RestController | 
| @RequestMapping("/ext/workorderExt") | 
| @Api(tags = "工单信息接口") | 
| public class WorkorderExtController extends BaseController { | 
|   | 
|     @Autowired | 
|     private WorkorderExtService workorderExtService; | 
|   | 
|     @Autowired | 
|     private WorkorderService workorderService; | 
|   | 
|     @Autowired | 
|     private PlansExtService plansExtService; | 
|   | 
|     @Autowired | 
|     private BeFinishedRecordExtService beFinishedRecordExtService; | 
|   | 
|     @PreventRepeat | 
|     @ApiOperation("新建") | 
|     @PostMapping("/create") | 
|     @RequiresPermissions("ext:workorderext:create") | 
|     public ApiResponse create(@RequestBody Workorder workorder) { | 
|         return ApiResponse.success(workorderService.create(workorder)); | 
|     } | 
|   | 
|     @ApiOperation("根据ID删除") | 
|     @GetMapping("/delete/{id}") | 
|     @RequiresPermissions("ext:workorderext:delete") | 
|     public ApiResponse deleteById(@PathVariable Integer id) { | 
|         workorderService.deleteById(id); | 
|         return ApiResponse.success(null); | 
|     } | 
|   | 
|     @ApiOperation("批量删除") | 
|     @GetMapping("/delete/batch") | 
|     @RequiresPermissions("ext:workorderext: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)); | 
|         } | 
|         workorderService.deleteByIdInBatch(idList); | 
|         return ApiResponse.success(null); | 
|     } | 
|   | 
|     @ApiOperation("根据ID修改") | 
|     @PostMapping("/updateById") | 
|     @RequiresPermissions("ext:workorderext:update") | 
|     public ApiResponse updateById(@RequestBody Workorder workorder) { | 
|         workorderService.updateById(workorder); | 
|         return ApiResponse.success(null); | 
|     } | 
|     @ApiOperation("工单重新分配") | 
|     @PostMapping("/distributeById") | 
|     @RequiresPermissions("ext:workorderext:update") | 
|     public ApiResponse distributeById(@RequestBody Workorder order) { | 
|         workorderExtService.distributeById(order); | 
|         return ApiResponse.success(null); | 
|     } | 
|     @ApiOperation("关闭工单") | 
|     @PostMapping("/closeById") | 
|     @RequiresPermissions("ext:workorderext:update") | 
|     public ApiResponse closeById(@RequestBody Workorder order) { | 
|         workorderExtService.closeById(order); | 
|         return ApiResponse.success(null); | 
|     } | 
|     @ApiOperation("取消工单") | 
|     @PostMapping("/cancelById") | 
|     @RequiresPermissions("ext:workorderext:update") | 
|     public ApiResponse cancelById(@RequestBody Workorder order) { | 
|         workorderExtService.cancelById(order); | 
|         workorderExtService.statisticNum(order); | 
| //        RocketMessageProducer.producerMsg(Constants.MQ_TAG.statistics,null, JSONObject.toJSONString(order)); | 
|         return ApiResponse.success(null); | 
|     } | 
|   | 
|     @ApiOperation("分页查询") | 
|     @PostMapping("/page") | 
|     @RequiresPermissions("ext:workorderext:query") | 
|     public ApiResponse<PageData<WorkorderExtListVO>> findPage (@RequestBody PageWrap<QueryWorkorderExtDTO> pageWrap) { | 
|         return ApiResponse.success(workorderExtService.findPage(pageWrap)); | 
|     } | 
|   | 
|     @ApiOperation("查询工单统计列表数量") | 
|     @PostMapping("/pageCount") | 
|     @RequiresPermissions("ext:workorderext:query") | 
|     public ApiResponse<WorkorderExtListCountVO> pageCount (@RequestBody QueryWorkorderExtDTO param) { | 
|         return ApiResponse.success(workorderExtService.pageCount(param)); | 
|     } | 
|     @ApiOperation("导出Excel") | 
|     @PostMapping("/exportExcel") | 
|     @RequiresPermissions("ext:workorderext:exportExcel") | 
|     public void exportExcel (@RequestBody PageWrap<QueryWorkorderExtDTO> pageWrap, HttpServletResponse response)  throws Exception{ | 
|         ExcelExporter.build(WorkorderExtListVO.class).export(workorderExtService.findPage(pageWrap).getRecords(), "工单信息"+ DateUtil.getNowLongTime(), response); | 
|     } | 
|   | 
|     @ApiOperation("根据ID查询") | 
|     @GetMapping("/{id}") | 
|     @RequiresPermissions("ext:workorderext:query") | 
|     public ApiResponse<WorkorderExtListVO> findById(@PathVariable Integer id) { | 
|         return ApiResponse.success(workorderExtService.findById(id)); | 
|     } | 
|   | 
|   | 
|     @ApiOperation("批量备料 - 生成转库单") | 
|     @GetMapping("/preparationWTransfer") | 
|     @ApiImplicitParams({ | 
|             @ApiImplicitParam(paramType = "query", dataType = "String", name = "ids", value = "工单主键(多个,分割)" , required = true), | 
|     }) | 
| //    @RequiresPermissions("ext:workorderext:preparationWTransfer") | 
|     public ApiResponse preparationWTransfer(@RequestParam String ids) { | 
|         return workorderExtService.preparationWTransfer(ids,getLoginUser()); | 
|     } | 
|   | 
|   | 
|     @ApiOperation("完工入库详情") | 
|     @GetMapping("/finishedDetail") | 
|     @ApiImplicitParams({ | 
|             @ApiImplicitParam(paramType = "query", dataType = "String", name = "deviceIds", value = "设备主键(多个,分割)" , required = true), | 
|             @ApiImplicitParam(paramType = "query", dataType = "String", name = "inIds", value = "入库单据id(多个,分割)" , required = false), | 
|     }) | 
|     public ApiResponse<FinishedInBean> finishedDetail(@RequestParam String deviceIds,String inIds) { | 
|         return workorderExtService.finishedDetail(deviceIds,inIds,getLoginUser()); | 
|     } | 
|   | 
|     @ApiOperation("完工入库详情 - NEW") | 
|     @GetMapping("/finishedDetailNew") | 
|     @ApiImplicitParams({ | 
|             @ApiImplicitParam(paramType = "query", dataType = "String", name = "deviceIds", value = "设备主键(多个,分割)" , required = true), | 
|             @ApiImplicitParam(paramType = "query", dataType = "String", name = "inIds", value = "入库单据id(多个,分割)" , required = false), | 
|     }) | 
|     public ApiResponse<FinishedInNewBean> finishedDetailNew(@RequestParam String deviceIds, String inIds) { | 
|         return workorderExtService.finishedDetailNew(deviceIds,inIds,getLoginUser()); | 
|     } | 
|   | 
|   | 
|     @ApiOperation("完工入库提交") | 
|     @GetMapping("/finished") | 
|     @ApiImplicitParams({ | 
|             @ApiImplicitParam(paramType = "query", dataType = "String", name = "deviceIds", value = "设备主键(多个,分割)" , required = true), | 
|             @ApiImplicitParam(paramType = "query", dataType = "String", name = "inIds", value = "入库单据id(多个,分割)" , required = false), | 
|     }) | 
|     public ApiResponse<Integer> finished(@RequestParam String deviceIds,String inIds) { | 
|         return workorderExtService.dataToWtWO(deviceIds,inIds,getLoginUser()); | 
|     } | 
|   | 
|     @ApiOperation(value = "完工入库详情记录", notes = "完工入库详情记录 - H5") | 
|     @PostMapping("/saveFinishRecord") | 
|     public ApiResponse saveFinishRecord(@RequestBody BeFinishedRecord beFinishedRecord) { | 
|         beFinishedRecordExtService.saveBeFinishedRecord(beFinishedRecord,getLoginUser()); | 
|         return ApiResponse.success(null); | 
|     } | 
|   | 
|     @ApiOperation(value = "完工入库详情", notes = "完工入库详情") | 
|     @GetMapping("/getFinishRecord") | 
|     @ApiImplicitParams({ | 
|             @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "转库单主键" , required = true), | 
|     }) | 
|     public ApiResponse<BeFinishedRecord> getFinishRecord(@RequestParam Integer id) { | 
|         return ApiResponse.success(beFinishedRecordExtService.getBeFinishedRecord(id)); | 
|     } | 
|   | 
|   | 
|     @PreventRepeat | 
|     @ApiOperation("测试计划关闭") | 
|     @PostMapping("/testPlanClose") | 
|     public ApiResponse testPlanClose() { | 
|         plansExtService.autoClose(); | 
|         return ApiResponse.success(null); | 
|     } | 
|     @PreventRepeat | 
|     @ApiOperation("测试统计1") | 
|     @PostMapping("/testStatistic") | 
|     public ApiResponse testStatistic(@RequestBody Workorder param) { | 
|         workorderExtService.statisticNum(param); | 
|         return ApiResponse.success(null); | 
|     } | 
|     @PreventRepeat | 
|     @ApiOperation("测试统计2") | 
|     @PostMapping("/testStatistic2") | 
|     public ApiResponse testStatistic2(@RequestBody Workorder param) { | 
|         workorderExtService.statisticNum(param); | 
| //        RocketMessageProducer.producerMsg(Constants.MQ_TAG.statistics,null, JSONObject.toJSONString(param)); | 
|         return ApiResponse.success(null); | 
|     } | 
| } |