InsFeeAuditServiceImpl.java 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413
  1. package com.ydtech.modules.fnc.service.impl;
  2. import cn.dev33.satoken.stp.StpUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.ydtech.modules.admin.model.SysDept;
  5. import com.ydtech.modules.admin.model.SysUser;
  6. import com.ydtech.modules.admin.service.SysDeptService;
  7. import com.ydtech.modules.admin.service.SysUserService;
  8. import com.ydtech.modules.esm.service.EsmUserReferrerService;
  9. import com.ydtech.modules.fnc.dao.FncInsAreaCompanyMapper;
  10. import com.ydtech.modules.fnc.dao.InsPlyIncomeMapper;
  11. import com.ydtech.modules.fnc.entity.InsFeeAudit;
  12. import com.ydtech.modules.fnc.dao.InsFeeAuditMapper;
  13. import com.ydtech.modules.fnc.entity.InsPlyIncome;
  14. import com.ydtech.modules.fnc.service.InsFeeAuditService;
  15. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  16. import com.ydtech.modules.ins.model.InsCommission;
  17. import com.ydtech.modules.ins.model.InsCompanyFee;
  18. import com.ydtech.modules.ins.model.InsDeptFee;
  19. import com.ydtech.modules.ins.service.InsCommissionService;
  20. import com.ydtech.modules.ins.service.InsCompanyFeeService;
  21. import com.ydtech.modules.ins.service.InsDeptFeeService;
  22. import com.ydtech.modules.order.dao.InsOrdersMapper;
  23. import com.ydtech.modules.fnc.entity.InsAreaCompany;
  24. import com.ydtech.modules.order.entity.InsFeeOrder;
  25. import com.ydtech.modules.order.entity.InsOrders;
  26. import com.ydtech.modules.order.service.InsFeeOrderService;
  27. import com.ydtech.modules.order.service.InsOrdersService;
  28. import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
  29. import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
  30. import com.ydtech.utils.DateUtil;
  31. import com.ydtech.utils.StringUtils;
  32. import org.springframework.beans.factory.annotation.Autowired;
  33. import org.springframework.stereotype.Service;
  34. import org.springframework.transaction.annotation.Transactional;
  35. import java.math.BigDecimal;
  36. import java.time.LocalDateTime;
  37. import java.util.ArrayList;
  38. import java.util.Date;
  39. import java.util.List;
  40. /**
  41. * <p>
  42. * 服务实现类
  43. * </p>
  44. *
  45. * @author gws
  46. * @since 2023-11-22
  47. */
  48. @Service
  49. public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFeeAudit> implements InsFeeAuditService {
  50. private final InsOrdersMapper insOrdersMapper;
  51. private final InsPlyIncomeMapper insPlyIncomeMapper;
  52. private final InsFeeOrderService insFeeOrderService;
  53. private final FncInsAreaCompanyMapper insAreaCompanyMapper;
  54. private final InsDeptFeeService insDeptFeeService;
  55. private final InsCommissionService insCommissionService;
  56. private final InsCompanyFeeService insCompanyFeeService;
  57. private final EsmUserReferrerService esmUserReferrerService;
  58. private final SysUserService sysUserService;
  59. @Autowired
  60. private InsFeeOrderNewService insFeeOrderNewService;
  61. @Autowired
  62. private SysDeptService sysDeptService;
  63. public InsFeeAuditServiceImpl(FncInsAreaCompanyMapper insAreaCompanyMapper, InsOrdersMapper insOrdersMapper, InsFeeOrderService insFeeOrderService,InsDeptFeeService insDeptFeeService,EsmUserReferrerService esmUserReferrerService,SysUserService sysUserService,InsCommissionService insCommissionService,InsCompanyFeeService insCompanyFeeService,InsPlyIncomeMapper insPlyIncomeMapper) {
  64. this.insAreaCompanyMapper = insAreaCompanyMapper;
  65. this.insOrdersMapper = insOrdersMapper;
  66. this.insFeeOrderService=insFeeOrderService;
  67. this.insDeptFeeService=insDeptFeeService;
  68. this.esmUserReferrerService=esmUserReferrerService;
  69. this.sysUserService=sysUserService;
  70. this.insCommissionService=insCommissionService;
  71. this.insCompanyFeeService=insCompanyFeeService;
  72. this.insPlyIncomeMapper=insPlyIncomeMapper;
  73. }
  74. @Override
  75. @Transactional
  76. public void feeAudit(String orderNo, String insOrderNo) throws Exception{
  77. //保存审核表
  78. InsFeeAudit insFeeAudit=new InsFeeAudit();
  79. insFeeAudit.setOrderno(orderNo);
  80. insFeeAudit.setInsOrderNo(insOrderNo);
  81. insFeeAudit.setAuditstatus("1");
  82. insFeeAudit.setAudittime(LocalDateTime.now());
  83. insFeeAudit.setAudituser(StpUtil.getLoginId().toString());
  84. this.save(insFeeAudit);
  85. InsOrders order=insOrdersMapper.selectById(orderNo);
  86. InsFeeOrder insFeeOrder=insFeeOrderService.getByInsOrderNo(insFeeAudit.getInsOrderNo());
  87. InsAreaCompany insAreaCompany=insAreaCompanyMapper.selectById(insFeeAudit.getInsOrderNo());
  88. //获取该订单的费用
  89. InsFeeOrderNew insFeeOrderNew = insFeeOrderNewService.getOne(new LambdaQueryWrapper<InsFeeOrderNew>()
  90. .eq(InsFeeOrderNew::getInsOrderNo, insFeeAudit.getInsOrderNo()));
  91. //获取操作人员的机构来源
  92. String deptId=order.getDeptid();
  93. List<SysDept> teamList = sysDeptService.findTeamList(deptId);
  94. teamList.forEach(sysDept -> {
  95. if(sysDept.getComlevel().equals("1")){
  96. BigDecimal jqDeptPremiumsLevel1 = insFeeOrderNew.getJqDeptPremiumsLevel1();
  97. }
  98. });
  99. //bigdecimal为null时设置为0
  100. // handleBigdecimal(insFeeOrder);
  101. //生成保司费用(应收费用)
  102. gene_orderIncome( order, insFeeOrder,insAreaCompany);
  103. //生成机构费用
  104. gene_deptfee( order, insFeeOrder,insAreaCompany);
  105. //生成分销费用
  106. saveRetail(order,insFeeOrder,insAreaCompany);
  107. //个代费用生成
  108. saveInsCompanyFee(order,insFeeOrder,insAreaCompany);
  109. }
  110. /**
  111. * 生成保司费用(应收费用)
  112. * @param order
  113. * @param insFeeOrder
  114. * @throws Exception
  115. */
  116. private void gene_orderIncome( InsOrders order, InsFeeOrder insFeeOrder,InsAreaCompany plyDto) throws Exception{
  117. InsPlyIncome insPlyIncome =new InsPlyIncome();
  118. insPlyIncome.setOrderno(order.getOrderno());
  119. insPlyIncome.setDeptId(order.getDeptid());
  120. insPlyIncome.setCompanyId(plyDto.getCompanyId());
  121. insPlyIncome.setAgreementId(String.valueOf(plyDto.getAgreementId()));
  122. insPlyIncome.setLicenseno(order.getLicenseno());
  123. insPlyIncome.setPayDate(StringUtils.isNullOrEmpty(plyDto.getPayDate())?plyDto.getCreatetime():plyDto.getPayDate());
  124. insPlyIncome.setSignDate(StringUtils.isNullOrEmpty(plyDto.getInsidePayTime())?plyDto.getPayDate():plyDto.getInsidePayTime());
  125. insPlyIncome.setCreateTime(LocalDateTime.now() );
  126. if(StringUtils.isNotEmpty(plyDto.getJqpolicyno())){
  127. insPlyIncome.setPolicyno(plyDto.getJqpolicyno());
  128. insPlyIncome.setRiskcode("交强");
  129. insPlyIncome.setTaxamount(plyDto.getTaxamount());
  130. insPlyIncome.setNoTaxPremium(insFeeOrder.getJqNoTaxPremium());
  131. insPlyIncome.setCommissionFeerate(insFeeOrder.getJqSuperviseCostsProportion());
  132. insPlyIncome.setOtherFeerate(insFeeOrder.getJqCostsProportion().subtract(insFeeOrder.getJqSuperviseCostsProportion()));
  133. insPlyIncome.setCommissionFeevalue(insFeeOrder.getJqSuperviseCostsPremiums());
  134. insPlyIncome.setOtherFeevalue(insFeeOrder.getJqCostsPremiums().subtract(insFeeOrder.getJqSuperviseCostsPremiums()));
  135. insPlyIncome.setAllFeeValue(insFeeOrder.getJqCostsPremiums());
  136. insPlyIncomeMapper.insert(insPlyIncome);
  137. }
  138. if(StringUtils.isNotEmpty(plyDto.getSypolicyno())){
  139. insPlyIncome.setPolicyno(plyDto.getSypolicyno());
  140. insPlyIncome.setRiskcode("商业");
  141. insPlyIncome.setTaxamount(new BigDecimal(0));
  142. insPlyIncome.setNoTaxPremium(insFeeOrder.getSyNoTaxPremium());
  143. insPlyIncome.setCommissionFeerate(insFeeOrder.getSySuperviseCostsProportion());
  144. insPlyIncome.setOtherFeerate(insFeeOrder.getSyCostsProportion().subtract(insFeeOrder.getSySuperviseCostsProportion()));
  145. insPlyIncome.setCommissionFeevalue(insFeeOrder.getSySuperviseCostsPremiums());
  146. insPlyIncome.setOtherFeevalue(insFeeOrder.getSyCostsPremiums().subtract(insFeeOrder.getSySuperviseCostsPremiums()));
  147. insPlyIncome.setAllFeeValue(insFeeOrder.getSyCostsPremiums());
  148. insPlyIncomeMapper.insert(insPlyIncome);
  149. }
  150. }
  151. /**
  152. * 生成机构费用
  153. * @param order
  154. * @param insFeeOrder
  155. * @throws Exception
  156. */
  157. private void gene_deptfee( InsOrders order, InsFeeOrder insFeeOrder,InsAreaCompany plyDto) throws Exception{
  158. InsDeptFee deptFee = new InsDeptFee();
  159. deptFee.setOrderno(order.getOrderno());
  160. deptFee.setQuoteno(insFeeOrder.getInsOrderNo());
  161. deptFee.setAgreeid(String.valueOf(plyDto.getAgreementId()));
  162. deptFee.setAuditstatus("1");
  163. deptFee.setSettlestatus("0");
  164. deptFee.setSignDate(DateUtil.formatFullTime(plyDto.getInsidePayTime(),DateUtil.FULL_TIME_SPLIT_PATTERN));
  165. deptFee.setInscompany(plyDto.getCompanyId());
  166. if(StringUtils.isNotEmpty(plyDto.getJqpolicyno())){
  167. deptFee.setPolicyno(plyDto.getJqpolicyno());
  168. deptFee.setRiskcode("交强");
  169. deptFee.setLicenseno(order.getLicenseno());
  170. geneInsDeptFee(order, insFeeOrder, deptFee);
  171. }
  172. if(StringUtils.isNotEmpty(plyDto.getSypolicyno())){
  173. deptFee.setPolicyno(plyDto.getSypolicyno());
  174. deptFee.setRiskcode("商业");
  175. deptFee.setLicenseno(order.getLicenseno());
  176. geneInsDeptFee(order, insFeeOrder, deptFee);
  177. }
  178. }
  179. private void geneInsDeptFee(InsOrders order, InsFeeOrder insFeeOrder, InsDeptFee deptFee) {
  180. if (insFeeOrder.getFirstDeptPremiums().doubleValue() > 0) {
  181. deptFee.setComcode(order.getDeptid().substring(0, 2)); //99140302M01D01
  182. deptFee.setComlevel("一级");
  183. insDeptFeeService.insert(deptFee);
  184. }
  185. if (insFeeOrder.getSecondDeptPremiums().doubleValue() > 0) {
  186. deptFee.setComcode(order.getDeptid().substring(0, 4)); //99140302M01D01
  187. deptFee.setComlevel("二级");
  188. insDeptFeeService.insert(deptFee);
  189. }
  190. if (insFeeOrder.getThirdDeptPremiums().doubleValue() > 0) {
  191. deptFee.setComcode(order.getDeptid().substring(0, 6)); //99140302M01D01
  192. deptFee.setComlevel("三级");
  193. insDeptFeeService.insert(deptFee);
  194. }
  195. if (insFeeOrder.getForthDeptPremiums().doubleValue() > 0) {
  196. deptFee.setComcode(order.getDeptid().substring(0, 8)); //99140302M01D01
  197. deptFee.setComlevel("四级");
  198. insDeptFeeService.insert(deptFee);
  199. }
  200. if (insFeeOrder.getFifthDeptPremiums().doubleValue() > 0) {
  201. deptFee.setComcode(order.getDeptid().substring(0, 11)); //99140302M01D01
  202. deptFee.setComlevel("五级");
  203. insDeptFeeService.insert(deptFee);
  204. }
  205. }
  206. /**
  207. * 三级分销费用保存
  208. *
  209. * @param order
  210. * @return
  211. */
  212. public void saveRetail(InsOrders order,InsFeeOrder insFeeOrder,InsAreaCompany plyDto) throws Exception{
  213. List<String> userlist=new ArrayList<>();
  214. esmUserReferrerService.getUpUser(order.getUserid(),userlist);
  215. //userlist:包括本人在内向上所有人
  216. if(userlist.size()-1>0){
  217. if(userlist.size()-1>=1
  218. &&insFeeOrder.getThirdRetailPremiums().doubleValue()>0)
  219. {//三级分销
  220. SysUser user=sysUserService.getById(userlist.get(1));
  221. InsCommission commission = new InsCommission();
  222. commission.setOrderno(order.getOrderno());
  223. commission.setQuoteno(insFeeOrder.getInsOrderNo());
  224. commission.setDeptid(order.getDeptid());
  225. commission.setDeptname(order.getDeptname());
  226. commission.setInscompany(plyDto.getCompanyId());
  227. commission.setAgreeid(String.valueOf(plyDto.getAgreementId()));
  228. commission.setRefereescode(user.getId());
  229. commission.setRefereesname(user.getName());
  230. commission.setLevel("3");
  231. commission.setAuditstatus("1"); //0未审核 1已审核
  232. commission.setSettlestatus("0"); //0未结算 1已结算
  233. commission.setInsuredtime(DateUtil.formatFullTime(plyDto.getPayDate(),DateUtil.FULL_TIME_SPLIT_PATTERN));
  234. commission.setSignDate(DateUtil.formatFullTime(plyDto.getInsidePayTime(),DateUtil.FULL_TIME_SPLIT_PATTERN));
  235. if(StringUtils.isNotEmpty(plyDto.getJqpolicyno())){
  236. commission.setPolicyno(plyDto.getJqpolicyno());
  237. commission.setRiskcode("交强");
  238. commission.setLicenseno(order.getLicenseno());
  239. commission.setCommissionrate(insFeeOrder.getThirdRetailProportion().doubleValue());
  240. commission.setCommissionamount(insFeeOrder.getJqNoTaxPremium().multiply(insFeeOrder.getThirdRetailProportion()).divide(new BigDecimal(100)).doubleValue());
  241. insCommissionService.insert(commission);
  242. }
  243. if(StringUtils.isNotEmpty(plyDto.getSypolicyno())){
  244. commission.setPolicyno(plyDto.getSypolicyno());
  245. commission.setRiskcode("商业");
  246. commission.setLicenseno(order.getLicenseno());
  247. commission.setCommissionrate(insFeeOrder.getThirdRetailProportion().doubleValue());
  248. commission.setCommissionamount(insFeeOrder.getSyNoTaxPremium().multiply(insFeeOrder.getThirdRetailProportion()).divide(new BigDecimal(100)).doubleValue());
  249. insCommissionService.insert(commission);
  250. }
  251. }
  252. if(userlist.size()-1>=2
  253. &&insFeeOrder.getSecondRetailPremiums().doubleValue()>0)
  254. {//二级分销
  255. SysUser user=sysUserService.getById(userlist.get(2));
  256. InsCommission commission = new InsCommission();
  257. commission.setOrderno(order.getOrderno());
  258. commission.setQuoteno(insFeeOrder.getInsOrderNo());
  259. commission.setDeptid(order.getDeptid());
  260. commission.setDeptname(order.getDeptname());
  261. commission.setInscompany(plyDto.getCompanyId());
  262. commission.setAgreeid(String.valueOf(plyDto.getAgreementId()));
  263. commission.setRefereescode(user.getId());
  264. commission.setRefereesname(user.getName());
  265. // commission.setCommissionrate(insFeeOrder.getSecondRetailProportion().doubleValue());
  266. // commission.setCommissionamount(insFeeOrder.getSecondRetailPremiums().doubleValue());
  267. commission.setLevel("2");
  268. commission.setAuditstatus("1"); //0未审核 1已审核
  269. commission.setSettlestatus("0"); //0未结算 1已结算
  270. commission.setInsuredtime(DateUtil.formatFullTime(plyDto.getPayDate(),DateUtil.FULL_TIME_SPLIT_PATTERN));
  271. commission.setSignDate(DateUtil.formatFullTime(plyDto.getInsidePayTime(),DateUtil.FULL_TIME_SPLIT_PATTERN));
  272. if(StringUtils.isNotEmpty(plyDto.getJqpolicyno())){
  273. commission.setPolicyno(plyDto.getJqpolicyno());
  274. commission.setRiskcode("交强");
  275. commission.setLicenseno(order.getLicenseno());
  276. commission.setCommissionrate(insFeeOrder.getSecondRetailProportion().doubleValue());
  277. commission.setCommissionamount(insFeeOrder.getJqNoTaxPremium().multiply(insFeeOrder.getSecondRetailProportion()).divide(new BigDecimal(100)).doubleValue());
  278. insCommissionService.insert(commission);
  279. }
  280. if(StringUtils.isNotEmpty(plyDto.getSypolicyno())){
  281. commission.setPolicyno(plyDto.getSypolicyno());
  282. commission.setRiskcode("商业");
  283. commission.setLicenseno(order.getLicenseno());
  284. commission.setCommissionrate(insFeeOrder.getSecondRetailProportion().doubleValue());
  285. commission.setCommissionamount(insFeeOrder.getSyNoTaxPremium().multiply(insFeeOrder.getSecondRetailProportion()).divide(new BigDecimal(100)).doubleValue());
  286. insCommissionService.insert(commission);
  287. }
  288. }
  289. if(userlist.size()-1>=3
  290. &&insFeeOrder.getFirstRetailPremiums().doubleValue()>0)
  291. {//一级分销
  292. SysUser user=sysUserService.getById(userlist.get(3));
  293. InsCommission commission = new InsCommission();
  294. commission.setOrderno(order.getOrderno());
  295. commission.setQuoteno(insFeeOrder.getInsOrderNo());
  296. commission.setDeptid(order.getDeptid());
  297. commission.setDeptname(order.getDeptname());
  298. commission.setInscompany(plyDto.getCompanyId());
  299. commission.setAgreeid(String.valueOf(plyDto.getAgreementId()));
  300. commission.setRefereescode(user.getId());
  301. commission.setRefereesname(user.getName());
  302. // commission.setCommissionrate(insFeeOrder.getFirstRetailProportion().doubleValue());
  303. // commission.setCommissionamount(insFeeOrder.getFirstRetailPremiums().doubleValue());
  304. commission.setLevel("1");
  305. commission.setAuditstatus("1"); //0未审核 1已审核
  306. commission.setSettlestatus("0"); //0未结算 1已结算
  307. commission.setInsuredtime(DateUtil.formatFullTime(plyDto.getPayDate(),DateUtil.FULL_TIME_SPLIT_PATTERN));
  308. commission.setSignDate(DateUtil.formatFullTime(plyDto.getInsidePayTime(),DateUtil.FULL_TIME_SPLIT_PATTERN));
  309. if(StringUtils.isNotEmpty(plyDto.getJqpolicyno())){
  310. commission.setPolicyno(plyDto.getJqpolicyno());
  311. commission.setRiskcode("交强");
  312. commission.setLicenseno(order.getLicenseno());
  313. commission.setCommissionrate(insFeeOrder.getFirstRetailProportion().doubleValue());
  314. commission.setCommissionamount(insFeeOrder.getJqNoTaxPremium().multiply(insFeeOrder.getFirstRetailProportion()).divide(new BigDecimal(100)).doubleValue());
  315. insCommissionService.insert(commission);
  316. }
  317. if(StringUtils.isNotEmpty(plyDto.getSypolicyno())){
  318. commission.setPolicyno(plyDto.getSypolicyno());
  319. commission.setRiskcode("商业");
  320. commission.setLicenseno(order.getLicenseno());
  321. commission.setCommissionrate(insFeeOrder.getFirstRetailProportion().doubleValue());
  322. commission.setCommissionamount(insFeeOrder.getSyNoTaxPremium().multiply(insFeeOrder.getFirstRetailProportion()).divide(new BigDecimal(100)).doubleValue());
  323. insCommissionService.insert(commission);
  324. }
  325. }
  326. }
  327. }
  328. /**
  329. * 生成个代费用
  330. * @param order
  331. * @param insFeeOrder
  332. * @throws Exception
  333. */
  334. public void saveInsCompanyFee(InsOrders order,InsFeeOrder insFeeOrder,InsAreaCompany plyDto) throws Exception {
  335. InsCompanyFee insCompanyFee = new InsCompanyFee();
  336. insCompanyFee.setOrderno(order.getOrderno());
  337. insCompanyFee.setFrameNo(order.getFrameno());
  338. insCompanyFee.setLicenseNo(order.getLicenseno());
  339. insCompanyFee.setInscompany(plyDto.getCompanyId());
  340. insCompanyFee.setAgreeid(String.valueOf(plyDto.getAgreementId()));
  341. insCompanyFee.setUserid(order.getUserid());
  342. insCompanyFee.setUsername(order.getUsername());
  343. insCompanyFee.setDeptid(order.getDeptid());
  344. insCompanyFee.setDeptname(order.getDeptname());
  345. insCompanyFee.setSettletype("B");
  346. insCompanyFee.setSettlestatus("0");
  347. insCompanyFee.setCreatetime(DateUtil.getDateFormat(new Date(),DateUtil.FULL_TIME_SPLIT_PATTERN));
  348. insCompanyFee.setSignDate(DateUtil.formatFullTime(plyDto.getInsidePayTime(),DateUtil.FULL_TIME_SPLIT_PATTERN));
  349. BigDecimal dept_rate=insFeeOrder.getFirstDeptProportion()
  350. .add(insFeeOrder.getSecondDeptProportion())
  351. .add(insFeeOrder.getThirdDeptProportion())
  352. .add(insFeeOrder.getForthDeptProportion())
  353. .add(insFeeOrder.getFifthDeptProportion());
  354. BigDecimal retail_rate=insFeeOrder.getFirstRetailProportion()
  355. .add(insFeeOrder.getSecondRetailProportion())
  356. .add(insFeeOrder.getThirdRetailProportion());
  357. if(StringUtils.isNotEmpty(plyDto.getJqpolicyno())){
  358. insCompanyFee.setPolicyno(plyDto.getJqpolicyno());
  359. insCompanyFee.setRiskcode("交强");
  360. //交强费用比例=交强险费用比例-五级机构管理费比例-三级分销比例
  361. insCompanyFee.setFeerate(insFeeOrder.getJqCostsProportion().subtract(dept_rate).subtract(retail_rate).doubleValue());
  362. insCompanyFee.setFeeamount(insFeeOrder.getJqNoTaxPremium().multiply(insFeeOrder.getJqCostsProportion().subtract(dept_rate).subtract(retail_rate)).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
  363. insCompanyFee.setJqpremium(insFeeOrder.getJqNoTaxPremium().doubleValue());
  364. //保存业务员费用
  365. insCompanyFeeService.insert(insCompanyFee);
  366. }
  367. if(StringUtils.isNotEmpty(plyDto.getSypolicyno())){
  368. insCompanyFee.setPolicyno(plyDto.getSypolicyno());
  369. insCompanyFee.setRiskcode("商业");
  370. insCompanyFee.setFeerate(0);
  371. insCompanyFee.setFeeamount(0);
  372. insCompanyFee.setJqpremium(0);
  373. //商业费用比例=商业险费用比例-五级机构管理费比例-三级分销比例
  374. insCompanyFee.setDisrate(insFeeOrder.getSyCostsProportion().subtract(dept_rate).subtract(retail_rate).doubleValue());
  375. insCompanyFee.setDisamount(insFeeOrder.getSyNoTaxPremium().multiply(insFeeOrder.getSyCostsProportion().subtract(dept_rate).subtract(retail_rate)).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
  376. insCompanyFee.setSypremium(insFeeOrder.getSyNoTaxPremium().doubleValue());
  377. //保存业务员费用
  378. insCompanyFeeService.insert(insCompanyFee);
  379. }
  380. }
  381. }