package com.glxp.api.controller.inv; import cn.hutool.core.util.StrUtil; 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.InvCountOrderEntity; 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.AddInvCountOrderSaveRequest; import com.glxp.api.req.inv.FilterInvCountOrderRequest; import com.glxp.api.req.inv.InvCountOrderPrintRequest; import com.glxp.api.req.system.DeleteRequest; import com.glxp.api.req.system.FilterPdfModuleRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.inv.InvCountOrderResponse; import com.glxp.api.service.inv.InvCountOrderService; import com.glxp.api.service.system.SystemPDFModuleService; import com.glxp.api.service.system.SystemPDFTemplateService; import com.glxp.api.util.JasperUtils; 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 javax.validation.Valid; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 盘点单接口 */ @RestController public class InvCountOrderController { @Resource private InvCountOrderService invCountOrderService; @Resource private SystemPDFTemplateService systemPDFTemplateService; @Resource private SystemPDFModuleService systemPDFModuleService; /** * 查询盘点单列表 * * @param filterInvCountOrderRequest * @return */ @AuthRuleAnnotation("") @GetMapping("/inv/count/order/filter") public BaseResponse filterList(FilterInvCountOrderRequest filterInvCountOrderRequest) { List list = invCountOrderService.filterList(filterInvCountOrderRequest); PageInfo pageInfo = new PageInfo<>(list); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); pageSimpleResponse.setList(pageInfo.getList()); return ResultVOUtils.success(pageSimpleResponse); } /** * 删除盘点单据 * * @param deleteRequest * @return */ @AuthRuleAnnotation("") @PostMapping("/inv/count/order/delete") @Log(title = "盘点单据", businessType = BusinessType.DELETE) public BaseResponse delete(@RequestBody DeleteRequest deleteRequest) { invCountOrderService.deleteOrder(deleteRequest.getId()); return ResultVOUtils.success(); } /** * 网页新增盘点单据 * * @return */ @AuthRuleAnnotation("") @PostMapping("/inv/count/order/saveCountOrder") @Log(title = "盘点单据", businessType = BusinessType.INSERT) public BaseResponse saveCountOrder(@RequestBody InvCountOrderEntity invCountOrder, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } if (null == invCountOrder) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); } return invCountOrderService.saveCountOrder(invCountOrder); } /** * 提交审核 * * @param id * @return */ @AuthRuleAnnotation("") @GetMapping("/inv/count/order/submitAudit") @Log(title = "盘点单据", businessType = BusinessType.UPDATE) public BaseResponse submitAudit(String id) { if (StrUtil.isBlank(id)) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); } return invCountOrderService.submitAudit(id); } /** * 更新盘点单据状态 * * @param filterInvCountOrderRequest * @return */ @AuthRuleAnnotation("") @PostMapping("/inv/count/order/updateCountOrderStatus") @Log(title = "盘点单据", businessType = BusinessType.UPDATE) public BaseResponse updateCountOrderStatus(@RequestBody FilterInvCountOrderRequest filterInvCountOrderRequest) { if (null == filterInvCountOrderRequest || StrUtil.isBlank(filterInvCountOrderRequest.getId()) || null == filterInvCountOrderRequest.getStatus()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); } return invCountOrderService.updateCountOrderStatus(filterInvCountOrderRequest.getId(), filterInvCountOrderRequest.getStatus()); } /** * 校验模板文件 * * @param inspectionPDFTemplateRequest * @return */ @AuthRuleAnnotation("") @PostMapping("/invCount/order/verifyTemplateFile") public BaseResponse verifyTemplateFile(@RequestBody InspectionPDFTemplateRequest inspectionPDFTemplateRequest) { if (null == inspectionPDFTemplateRequest) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "参数不能为空!"); } //查询模板文件是否存在 FilterPdfModuleRequest systemPDFModuleRequest = new FilterPdfModuleRequest(); systemPDFModuleRequest.setId(inspectionPDFTemplateRequest.getModuleId()); SystemPDFModuleEntity systemPDFModule = systemPDFModuleService.findSystemPDFModule(systemPDFModuleRequest); 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 invCountOrderPrintRequest * @param request * @param response * @throws Exception */ @AuthRuleAnnotation("") @PostMapping("/invCount/order/printOrder") public void printOrder(@RequestBody InvCountOrderPrintRequest invCountOrderPrintRequest, HttpServletRequest request, HttpServletResponse response) throws Exception { SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(invCountOrderPrintRequest.getTemplateId()); //打印单号标签 Map data = new HashMap<>(1); data.put("orderId", invCountOrderPrintRequest.getOrderId()); Map>> printData = new HashMap<>(1); printData.put("data", Arrays.asList(data)); JasperUtils.jasperReport(request, response, JSONUtil.toJsonStr(printData), systemPDFTemplateEntity.getPath(), "pdf"); } //------------------------------------------------------手持终端接口--------------------------------------------------------------- /** * 手持终端新增盘点单据接口 * * @return */ @AuthRuleAnnotation("") @PostMapping("/invCount/order/saveCountOrderForPDA") @Log(title = "盘点单据", businessType = BusinessType.INSERT) public BaseResponse saveCountOrderForPDA(@RequestBody @Valid AddInvCountOrderSaveRequest addInvCountOrderSaveRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } return invCountOrderService.saveCountOrderForPDA(addInvCountOrderSaveRequest); } }