You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udi-spms-java/src/main/java/com/glxp/api/controller/inv/DeviceMAOrderController.java

185 lines
7.5 KiB
Java

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<DeviceMAOrderResponse> list = deviceMAOrderService.filterList(filterDeviceMAOrderRequest);
PageInfo<DeviceMAOrderResponse> pageInfo = new PageInfo<>(list);
PageSimpleResponse<DeviceMAOrderResponse> 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<String, Object> data = deviceMAOrderService.getPrintData(filterDeviceMAOrderRequest.getOrderId());
Map<String, List<Map<String, Object>>> printData = new HashMap<>(1);
printData.put("data", Arrays.asList(data));
JasperUtils.jasperReport(request, response, JSONUtil.toJsonStr(printData), systemPDFTemplateEntity.getPath(), "pdf");
}
}