package com.ydtech.modules.fnc.controller; import com.ydtech.aop.request.RequestSingleParam; 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.service.InsFeeAuditService; import com.ydtech.modules.order.entity.*; import com.ydtech.modules.order.entity.vo.*; 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; public CarSettleController(InsAreaCompanyService insAreaCompanyService, InsOrdersService insOrdersService, InsFeeAuditService insFeeAuditService,FeeRuleSchemeService feeRuleSchemeService) { this.insAreaCompanyService = insAreaCompanyService; this.insOrdersService = insOrdersService; this.insFeeAuditService = insFeeAuditService; this.feeRuleSchemeService = feeRuleSchemeService; } /** * 根据费用审核状态查询订单 auditStatus * @param orderQueryVo * @return */ @PostMapping("/queryPageOrder") @ApiOperation(value = "[1]分页查询订单接口") public HttpResult> queryPageOrder(@RequestBody @Valid 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) { //查询已承保的子订单号 List areaList =insAreaCompanyService.query() .eq(StringUtils.isNotEmpty(orderNo),"orderno",orderNo) .eq("orderstatus","2").list();//3已承保 // List areaList = insAreaCompanyService.query() // .eq("orderno", orderNo) // .and(wrapper -> wrapper.eq("orderstatus", "3").or().eq("orderstatus", "2")) // .list();//3已承保 if(areaList!=null && areaList.size()>0){ return insOrdersService.getByCompanyId(areaList.get(0).getId(),"accountingUser"); }else{ return HttpResult.error("订单号有误-未承保"); } } /** * 费用审核 * @param * @return */ @PostMapping("/auditFee") @ApiOperation(value = "[3]费用审核") public HttpResult auditFee(@RequestBody @Valid AuditOrderFeeVo auditOrderFeeVo) { // 订单号 String orderNo = auditOrderFeeVo.getOrderNo(); //查询改订单是已审核 List feeList =insFeeAuditService.query().eq("orderno",orderNo).list(); if(feeList!=null &&feeList.size()>0){ return HttpResult.error("该订单已审核"); } //查询已承保的子订单号 List areaList =insAreaCompanyService.query() .eq(StringUtils.isNotEmpty(orderNo),"orderno",orderNo) .eq("orderstatus","3").list();//3已承保 if(areaList!=null && areaList.size()>0){ 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()); }catch (Exception e){ e.printStackTrace(); return HttpResult.error("系统异常"); } return HttpResult.ok(); }else{ return HttpResult.error("订单号有误-未承保"); } } }