package com.ydtech.modules.fnc.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ydtech.aop.request.RequestSingleParam; import com.ydtech.constants.enums.dict.FeeAuditAuditstatus; import com.ydtech.constants.enums.dict.InsOrderStatusEnum; import com.ydtech.core.page.HttpResult; import com.ydtech.modules.base.controller.BaseController; import com.ydtech.modules.fee.service.FeeRuleSchemeService; import com.ydtech.modules.fnc.entity.InsFeeAudit; import com.ydtech.modules.fnc.entity.InsFeeAuditHistory; import com.ydtech.modules.fnc.service.InsFeeAuditHistoryService; import com.ydtech.modules.fnc.service.InsFeeAuditService; import com.ydtech.modules.order.entity.BasePageResult; import com.ydtech.modules.order.entity.InsAreaCompany; import com.ydtech.modules.order.entity.InsOrders; import com.ydtech.modules.order.entity.vo.AuditOrderFeeVo; import com.ydtech.modules.order.entity.vo.OrderQueryVo; import com.ydtech.modules.order.entity.vo.OrderVo; import com.ydtech.modules.order.service.InsAreaCompanyService; import com.ydtech.modules.order.service.InsOrdersService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; @Api(tags = "财务-车险结算") @RequestMapping("/fnc/carSettle") @RestController public class CarSettleController extends BaseController { private final InsOrdersService insOrdersService; private final InsAreaCompanyService insAreaCompanyService; private final InsFeeAuditService insFeeAuditService; private final FeeRuleSchemeService feeRuleSchemeService; private final InsFeeAuditHistoryService insFeeAuditHistoryService; public CarSettleController(InsAreaCompanyService insAreaCompanyService, InsOrdersService insOrdersService, InsFeeAuditService insFeeAuditService, FeeRuleSchemeService feeRuleSchemeService, InsFeeAuditHistoryService insFeeAuditHistoryService) { this.insAreaCompanyService = insAreaCompanyService; this.insOrdersService = insOrdersService; this.insFeeAuditService = insFeeAuditService; this.feeRuleSchemeService = feeRuleSchemeService; this.insFeeAuditHistoryService = insFeeAuditHistoryService; } /** * 根据费用审核状态查询订单 auditStatus * * @param orderQueryVo * @return */ @PostMapping("/queryPageOrder") @ApiOperation(value = "[1]分页查询订单接口") public HttpResult> queryPageOrder(@RequestBody OrderQueryVo orderQueryVo) { orderQueryVo.setOrderStatus("3");//3已承保 BasePageResult quoteResult = this.insOrdersService.queryPageOrder(orderQueryVo); return HttpResult.ok("success", quoteResult); } /** * 根据订单号查询费用明细 * * @param orderNo * @return */ @PostMapping("/feeDetail") @ApiOperation(value = "[2]根据订单号查询费用明细") public HttpResult queryFeeDetail(@RequestSingleParam(value = "orderNo") @Valid String orderNo) { return insOrdersService.getByCompanyId(orderNo, "accountingUser"); } /** * 费用审核 * * @param * @return */ @PostMapping("/auditFee") @ApiOperation(value = "[3]费用审核") public HttpResult auditFee(@RequestBody @Valid AuditOrderFeeVo auditOrderFeeVo) { // 订单号 String orderNo = auditOrderFeeVo.getOrderNo(); //查询改订单是已审核 List feeList = insFeeAuditService.lambdaQuery() .eq(InsFeeAudit::getOrderno, orderNo) .eq(InsFeeAudit::getAuditstatus, FeeAuditAuditstatus.PASSED.getCode()) .list(); if (feeList != null && !feeList.isEmpty()) { return HttpResult.error("该订单已审核"); } //查询已承保的子订单号 List areaList = insAreaCompanyService.lambdaQuery() .eq(StringUtils.isNotEmpty(orderNo), InsAreaCompany::getOrderno, orderNo) .eq(InsAreaCompany::getOrderstatus, InsOrderStatusEnum.ACCEPT_INSURANCE.getCode()) .list();//3已承保 if (areaList != null && !areaList.isEmpty()) { try { if ("1".equals(auditOrderFeeVo.getUpdateFlag())) { String userId = getUserId(); feeRuleSchemeService.compareAndUpdateFeeOrderInfo(areaList.get(0).getId(), auditOrderFeeVo.getJqCostsProportionStr(), auditOrderFeeVo.getSyCostsProportionStr(), userId); } insFeeAuditService.feeAudit(orderNo, areaList.get(0).getId(), false,FeeAuditAuditstatus.PASSED.getCode()); } catch (Exception e) { e.printStackTrace(); return HttpResult.error("系统异常"); } return HttpResult.ok("审核成功"); } else { return HttpResult.error("订单号有误-未承保"); } } @GetMapping("/getFeeAuditHistory/{orderno}") @ApiOperation(value = "获取费用审核轨迹") public HttpResult> getFeeAuditHistory(@PathVariable("orderno") String orderno) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(InsFeeAuditHistory::getInsOrderNo, orderno); wrapper.orderByAsc(InsFeeAuditHistory::getOperatorTime); List list = insFeeAuditHistoryService.list(wrapper); return HttpResult.ok("success", list); } }