package com.glxp.api.controller.inv; import cn.hutool.json.JSONUtil; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.annotation.Log; import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.BusinessType; import com.glxp.api.entity.inv.DeviceMAOrderEntity; import com.glxp.api.entity.system.SystemPDFModuleEntity; import com.glxp.api.entity.system.SystemPDFTemplateEntity; import com.glxp.api.req.inout.InspectionPDFTemplateRequest; import com.glxp.api.req.inv.AddDeviceMAOrderRequest; import com.glxp.api.req.inv.FilterDeviceMAOrderRequest; import com.glxp.api.req.system.FilterPdfModuleRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.inv.DeviceMAOrderResponse; import com.glxp.api.service.inv.DeviceMAOrderService; import com.glxp.api.service.system.SystemPDFModuleService; import com.glxp.api.service.system.SystemPDFTemplateService; import com.glxp.api.util.JasperUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 设备养护记录接口 */ @Slf4j @RestController public class DeviceMAOrderController { @Resource private DeviceMAOrderService deviceMAOrderService; @Resource private SystemPDFTemplateService systemPDFTemplateService; @Resource private SystemPDFModuleService systemPDFModuleService; /** * 查询设备养护记录列表 * * @param filterDeviceMAOrderRequest * @return */ @GetMapping("/device/MA/order/filterList") public BaseResponse filterList(FilterDeviceMAOrderRequest filterDeviceMAOrderRequest) { List list = deviceMAOrderService.filterList(filterDeviceMAOrderRequest); PageInfo pageInfo = new PageInfo<>(list); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); pageSimpleResponse.setList(list); return ResultVOUtils.success(pageSimpleResponse); } /** * 添加设备养护记录 * * @param deviceMAOrderEntity * @param bindingResult * @return */ @PostMapping("/device/MA/order/addMAOrder") @Log(title = "设备养护", businessType = BusinessType.INSERT) public BaseResponse addMAOrder(@RequestBody DeviceMAOrderEntity deviceMAOrderEntity, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } return deviceMAOrderService.addDeviceMAOrder(deviceMAOrderEntity); } /** * 更新设备养护记录 * * @param deviceMAOrderEntity * @param bindingResult * @return */ @PostMapping("/device/MA/order/updateMAOrder") @Log(title = "设备养护", businessType = BusinessType.UPDATE) public BaseResponse updateMAOrder(@RequestBody DeviceMAOrderEntity deviceMAOrderEntity, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } return deviceMAOrderService.updateDeviceMAOrder(deviceMAOrderEntity); } /** * 删除设备养护记录 * * @param filterDeviceMAOrderRequest * @param bindingResult * @return */ @PostMapping("/device/MA/order/deleteMAOrder") @Log(title = "设备养护", businessType = BusinessType.DELETE) public BaseResponse deleteMAOrder(@RequestBody FilterDeviceMAOrderRequest filterDeviceMAOrderRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } if (null == filterDeviceMAOrderRequest || null == filterDeviceMAOrderRequest.getId()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); } return deviceMAOrderService.deleteDeviceMAOrder(filterDeviceMAOrderRequest.getId()); } /** * 添加设备养护记录 * * @param addDeviceMAOrderRequest * @param bindingResult * @return */ @PostMapping("/device/MA/order/addDeviceMAOrder") @Log(title = "设备养护", businessType = BusinessType.INSERT) public BaseResponse addDeviceMAOrder(@RequestBody AddDeviceMAOrderRequest addDeviceMAOrderRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } return deviceMAOrderService.addDeviceMAOrder(addDeviceMAOrderRequest); } /** * 校验模板文件 * * @param inspectionPDFTemplateRequest * @return */ @AuthRuleAnnotation("") @PostMapping("/device/MA/order/verifyTemplateFile") public BaseResponse verifyTemplateFile(@RequestBody InspectionPDFTemplateRequest inspectionPDFTemplateRequest) { if (null == inspectionPDFTemplateRequest) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "参数不能为空!"); } //查询模板文件是否存在 FilterPdfModuleRequest filterPdfModuleRequest = new FilterPdfModuleRequest(); filterPdfModuleRequest.setId(inspectionPDFTemplateRequest.getModuleId()); SystemPDFModuleEntity systemPDFModule = systemPDFModuleService.findSystemPDFModule(filterPdfModuleRequest); if (null == systemPDFModule) { return ResultVOUtils.error(ResultEnum.DATA_NOT, "所属模块错误"); } SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(String.valueOf(systemPDFModule.getTemplateId())); if (null == systemPDFTemplateEntity) { return ResultVOUtils.error(ResultEnum.DATA_NOT, "模板错误"); } return ResultVOUtils.success(systemPDFModule.getTemplateId()); } /** * 打印设备养护记录 * * @param filterDeviceMAOrderRequest * @param request * @param response * @throws Exception */ @AuthRuleAnnotation("") @PostMapping("/device/MA/order/pintOrder") public void printOrder(@RequestBody FilterDeviceMAOrderRequest filterDeviceMAOrderRequest, HttpServletRequest request, HttpServletResponse response) throws Exception { SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(filterDeviceMAOrderRequest.getTemplateId()); //查询打印数据 Map data = deviceMAOrderService.getPrintData(filterDeviceMAOrderRequest.getOrderId()); Map>> printData = new HashMap<>(1); printData.put("data", Arrays.asList(data)); JasperUtils.jasperReport(request, response, JSONUtil.toJsonStr(printData), systemPDFTemplateEntity.getPath(), "pdf"); } }