package com.ydtech.modules.inv.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ydtech.aop.exception.DescribeException; import com.ydtech.constants.enums.dict.ApprovalStatusEnum; import com.ydtech.core.page.BaseController; import com.ydtech.core.page.HttpResult; import com.ydtech.core.page.PageRequest; import com.ydtech.core.page.PageResult; import com.ydtech.modules.inv.model.InvInvoiceInfo; import com.ydtech.modules.inv.service.InvInvoiceInfoService; import com.ydtech.modules.inv.model.vo.req.InvInvoiceInfoReqVO; import com.ydtech.utils.StringUtils; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Date; import java.util.List; /** * 发票信息管理 * * @author: lig * @date: 2023-05-15 */ @Api(tags = "发票信息管理") @RestController @RequestMapping("api/inv/invoiceInfo") public class InvInvoiceInfoController extends BaseController { @Autowired private InvInvoiceInfoService invInvoiceInfoService; @ApiOperation(value = "保存") @ApiResponses({ @ApiResponse(code = 500, message = "出现异常"), @ApiResponse(code = 200, message = "请求成功") }) @PostMapping(value = "/save") public HttpResult save(@RequestBody InvInvoiceInfo invInvoiceInfo, HttpServletRequest request) { invInvoiceInfo.setApprovalStatus(ApprovalStatusEnum.AS0.getCode()); if(StringUtils.isNotEmpty(invInvoiceInfo.getId())){ //更新 InvInvoiceInfo info = invInvoiceInfoService.getById(invInvoiceInfo.getId()); if(info.getApprovalStatus().equals(ApprovalStatusEnum.AS1.getCode())){ return HttpResult.error("审核通过的不允许修改"); } invInvoiceInfo.setUpdateBy(getUserId(request)); invInvoiceInfo.setUpdateTime(new Date()); }else{ //新增 invInvoiceInfo.setCreateBy(getUserId(request)); invInvoiceInfo.setCreateTime(new Date()); } return HttpResult.ok(invInvoiceInfoService.saveOrUpdate(invInvoiceInfo)); } /** * 分页查询 * * @param reqVo * @return */ @ApiOperation(value = "分页查询") @PostMapping(value = "/queryPage") public HttpResult queryPage(@RequestBody InvInvoiceInfoReqVO reqVo){ LambdaQueryWrapper lqw = new LambdaQueryWrapper(); lqw.eq(StringUtils.isNotEmpty(reqVo.getApprovalStatus()),InvInvoiceInfo::getApprovalStatus,reqVo.getApprovalStatus()); lqw.eq(StringUtils.isNotEmpty(reqVo.getInvoiceClerk()),InvInvoiceInfo::getInvoiceClerk,reqVo.getInvoiceClerk()); lqw.eq(StringUtils.isNotEmpty(reqVo.getInvCompanyId()),InvInvoiceInfo::getInvCompanyId,reqVo.getInvCompanyId()); Page p = PageRequest.buildPageRequestByVo(reqVo); IPage pResult = invInvoiceInfoService.page(p, lqw); //传入查询条件 PageResult pageResult = PageResult.buildPageResult(pResult); return HttpResult.ok(pageResult); } /** * 审批通过 * * @param * @return */ @PreAuthorize("hasAuthority('inv:invoice:info:approval:pass')") @ApiOperation(value = "审批通过") @PostMapping(value = "/approvalPass") public HttpResult approvalPass(@RequestParam("ids") List ids){ return HttpResult.ok(invInvoiceInfoService.approval(ApprovalStatusEnum.AS1,ids)); } /** * 审批退回 * * @param * @return */ @PreAuthorize("hasAuthority('inv:invoice:info:approval:back')") @ApiOperation(value = "审批退回") @PostMapping(value = "/approvalBack") public HttpResult approvalBack(@RequestParam("ids") List ids){ return HttpResult.ok(invInvoiceInfoService.approval(ApprovalStatusEnum.AS3,ids)); } // /** // * 批量删除 // * // * @param // * @return // */ // @ApiOperation(value = "批量删除") // @PostMapping(value = "/batchDelete") // public HttpResult batchDelete(List ids){ // // return HttpResult.ok(invInvoiceInfoService.removeBatchByIds(ids)); // } @PostMapping("/import") @ApiOperation(value = "excel导入数据") public HttpResult importData(@ApiParam(name = "file", value = "excel文件") MultipartFile file, HttpServletRequest request) { HttpResult result = null; return invInvoiceInfoService.importData(file); } // @PostMapping("/export") @GetMapping("/export") @ApiOperation(value = "excel导出数据") public void exportData(@RequestParam("ids") List ids, HttpServletRequest request, HttpServletResponse response) { try { invInvoiceInfoService.exportData(ids,request,response); } catch (Exception e) { e.printStackTrace(); throw new DescribeException("信息导出失败!" + e.getMessage()); } } }