|
|
@@ -3,6 +3,7 @@ package com.ydtech.modules.protocols.service.impl;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.ydtech.constants.enums.dict.FeeAuditAuditstatus;
|
|
|
import com.ydtech.constants.enums.dict.agreement.ProductsType;
|
|
|
import com.ydtech.exception.SystemException;
|
|
|
import com.ydtech.modules.admin.model.SysUser;
|
|
|
@@ -18,8 +19,11 @@ import com.ydtech.modules.fee.service.CostsCalcService;
|
|
|
import com.ydtech.modules.fee.service.FeeRuleSchemeNewService;
|
|
|
import com.ydtech.modules.fee.service.FeeRuleSchemeService;
|
|
|
import com.ydtech.modules.fee.service.impl.InsFeeOrderConfigServiceImpl;
|
|
|
+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.fnc.service.impl.InsFeeAuditServiceImpl;
|
|
|
import com.ydtech.modules.order.entity.InsAreaCompany;
|
|
|
import com.ydtech.modules.order.entity.InsOrders;
|
|
|
import com.ydtech.modules.order.entity.vo.FeeOrderNewRecordVo;
|
|
|
@@ -95,6 +99,8 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
|
|
|
@Autowired
|
|
|
private InsFeeAuditHistoryService insFeeAuditHistoryService;
|
|
|
private InsFeeOrderConfigServiceImpl insFeeOrderConfigServiceImpl;
|
|
|
+ @Autowired
|
|
|
+ private InsFeeAuditServiceImpl insFeeAuditServiceImpl;
|
|
|
|
|
|
|
|
|
@Override
|
|
|
@@ -355,10 +361,10 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
|
|
|
desc += ptlAgreementUndwrtRulesAttr.getAttrName() + "包含" + v.get(i).getMin() + "\n";
|
|
|
}
|
|
|
if ("input".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
|
|
|
- if(ptlAgreementUndwrtRulesAttr.getAttrCode().equals("BrandandModel")){
|
|
|
+ if (ptlAgreementUndwrtRulesAttr.getAttrCode().equals("BrandandModel")) {
|
|
|
String operatorDesc = !Objects.isNull(v.get(i).getOperator()) && v.get(i).getOperator().equals("1") ? "包含" : "不包含";
|
|
|
desc += ptlAgreementUndwrtRulesAttr.getAttrName() + operatorDesc + v.get(i).getMin() + "\n";
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
desc += ptlAgreementUndwrtRulesAttr.getAttrName() + "为" + v.get(i).getMin() + "\n";
|
|
|
}
|
|
|
}
|
|
|
@@ -758,11 +764,11 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
|
|
|
// }
|
|
|
// }
|
|
|
//单交
|
|
|
- if(agreementProductCosts.getProductId().get(0).equals(ProductsType.PT_0330.getCode())){
|
|
|
+ if (agreementProductCosts.getProductId().get(0).equals(ProductsType.PT_0330.getCode())) {
|
|
|
//清空商业险信息
|
|
|
agreementProductCosts.clearSyInfo();
|
|
|
- }else if(agreementProductCosts.getProductId().get(0).equals(ProductsType.PT_034001.getCode()) ||
|
|
|
- agreementProductCosts.getProductId().get(0).equals(ProductsType.PT_034002.getCode())){
|
|
|
+ } else if (agreementProductCosts.getProductId().get(0).equals(ProductsType.PT_034001.getCode()) ||
|
|
|
+ agreementProductCosts.getProductId().get(0).equals(ProductsType.PT_034002.getCode())) {
|
|
|
//清空交强险信息
|
|
|
agreementProductCosts.clearJqInfo();
|
|
|
}
|
|
|
@@ -1074,36 +1080,36 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
|
|
|
public boolean costsDateBatch(AgreementProductCostsVo agreementProductCostsVo) {
|
|
|
// 更新每个费用项目的起止期
|
|
|
for (String id : agreementProductCostsVo.getIds()) {
|
|
|
- PtlAgreementProductCostsNew ptlAgreementProductCostsNew = this.getById(id);
|
|
|
- if (ptlAgreementProductCostsNew == null) {
|
|
|
- throw new SystemException("费用不存在");
|
|
|
- }
|
|
|
- if (agreementProductCostsVo.getCostsEndDate() != null) {
|
|
|
- ptlAgreementProductCostsNew.setCostsEndDate(agreementProductCostsVo.getCostsEndDate());
|
|
|
- }
|
|
|
- if (agreementProductCostsVo.getCostsStartDate() != null) {
|
|
|
- ptlAgreementProductCostsNew.setCostsStartDate(agreementProductCostsVo.getCostsStartDate());
|
|
|
- }
|
|
|
- ptlAgreementProductCostsNew.setIsAudit(0);
|
|
|
- String desc = "修改费用因子";
|
|
|
- //添加费用因子轨迹
|
|
|
- ptlAgreementProductCostsTrajectoryService.addCostsTrajectory(ptlAgreementProductCostsNew.getId(), desc, BaseController.getUser().getId());
|
|
|
- //保存产品费用历史记录
|
|
|
- PtlAgreementProductCostsNewHistory ptlAgreementProductCostsNewHistory = new PtlAgreementProductCostsNewHistory();
|
|
|
- //添加费用ID
|
|
|
- ptlAgreementProductCostsNewHistory.setId(IdGenerate.nextId());
|
|
|
- ptlAgreementProductCostsNewHistory.setCostsId(ptlAgreementProductCostsNew.getId());
|
|
|
- //生成批次ID
|
|
|
- String uuid = IdGenerate.nextId();
|
|
|
- ptlAgreementProductCostsNewHistory.setBatch(uuid);
|
|
|
- ptlAgreementProductCostsNewHistory.setAgreementId(ptlAgreementProductCostsNew.getAgreementId());
|
|
|
- ptlAgreementProductCostsNewHistory.setProductId(ptlAgreementProductCostsNew.getProductId());
|
|
|
- ptlAgreementProductCostsNewHistory.setProductName(ptlAgreementProductCostsNew.getProductName());
|
|
|
- ptlAgreementProductCostsNewHistory.setOperatorType("update");
|
|
|
- ptlAgreementProductCostsNewHistory.setModifier(BaseController.getUser().getId());
|
|
|
- ptlAgreementProductCostsNewHistory.setOperatorTime(LocalDateTime.now());
|
|
|
- ptlAgreementProductCostsNewHistoryService.save(ptlAgreementProductCostsNewHistory);
|
|
|
- baseMapper.updateById(ptlAgreementProductCostsNew);
|
|
|
+ PtlAgreementProductCostsNew ptlAgreementProductCostsNew = this.getById(id);
|
|
|
+ if (ptlAgreementProductCostsNew == null) {
|
|
|
+ throw new SystemException("费用不存在");
|
|
|
+ }
|
|
|
+ if (agreementProductCostsVo.getCostsEndDate() != null) {
|
|
|
+ ptlAgreementProductCostsNew.setCostsEndDate(agreementProductCostsVo.getCostsEndDate());
|
|
|
+ }
|
|
|
+ if (agreementProductCostsVo.getCostsStartDate() != null) {
|
|
|
+ ptlAgreementProductCostsNew.setCostsStartDate(agreementProductCostsVo.getCostsStartDate());
|
|
|
+ }
|
|
|
+ ptlAgreementProductCostsNew.setIsAudit(0);
|
|
|
+ String desc = "修改费用因子";
|
|
|
+ //添加费用因子轨迹
|
|
|
+ ptlAgreementProductCostsTrajectoryService.addCostsTrajectory(ptlAgreementProductCostsNew.getId(), desc, BaseController.getUser().getId());
|
|
|
+ //保存产品费用历史记录
|
|
|
+ PtlAgreementProductCostsNewHistory ptlAgreementProductCostsNewHistory = new PtlAgreementProductCostsNewHistory();
|
|
|
+ //添加费用ID
|
|
|
+ ptlAgreementProductCostsNewHistory.setId(IdGenerate.nextId());
|
|
|
+ ptlAgreementProductCostsNewHistory.setCostsId(ptlAgreementProductCostsNew.getId());
|
|
|
+ //生成批次ID
|
|
|
+ String uuid = IdGenerate.nextId();
|
|
|
+ ptlAgreementProductCostsNewHistory.setBatch(uuid);
|
|
|
+ ptlAgreementProductCostsNewHistory.setAgreementId(ptlAgreementProductCostsNew.getAgreementId());
|
|
|
+ ptlAgreementProductCostsNewHistory.setProductId(ptlAgreementProductCostsNew.getProductId());
|
|
|
+ ptlAgreementProductCostsNewHistory.setProductName(ptlAgreementProductCostsNew.getProductName());
|
|
|
+ ptlAgreementProductCostsNewHistory.setOperatorType("update");
|
|
|
+ ptlAgreementProductCostsNewHistory.setModifier(BaseController.getUser().getId());
|
|
|
+ ptlAgreementProductCostsNewHistory.setOperatorTime(LocalDateTime.now());
|
|
|
+ ptlAgreementProductCostsNewHistoryService.save(ptlAgreementProductCostsNewHistory);
|
|
|
+ baseMapper.updateById(ptlAgreementProductCostsNew);
|
|
|
}
|
|
|
|
|
|
return true;
|
|
|
@@ -1151,6 +1157,7 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
|
|
|
|
|
|
return true;
|
|
|
}
|
|
|
+
|
|
|
private void validateItems(PtlAgreementProductCostsNew costs, PtlAgreementProductCostsExport export) {
|
|
|
if (costs == null || export == null) {
|
|
|
throw new SystemException("费用不存在");
|
|
|
@@ -1176,37 +1183,37 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
|
|
|
BigDecimal updatedValue = current.add(add);
|
|
|
// 检查更新后的值是否小于零
|
|
|
if (updatedValue.compareTo(BigDecimal.ZERO) < 0) {
|
|
|
- throw new SystemException("id为"+ item.getId() + desc + "比例值不能小于零");
|
|
|
+ throw new SystemException("id为" + item.getId() + desc + "比例值不能小于零");
|
|
|
}
|
|
|
- switch(desc) {
|
|
|
+ switch (desc) {
|
|
|
case "交强险总费用":
|
|
|
BigDecimal totalJqExportRadio = export.getJqExportRadioLevel1()
|
|
|
- .add(export.getJqExportRadioLevel2())
|
|
|
- .add(export.getJqExportRadioLevel3())
|
|
|
- .add(export.getJqExportRadioLevel4())
|
|
|
- .add(export.getJqExportRadioLevel5());
|
|
|
+ .add(export.getJqExportRadioLevel2())
|
|
|
+ .add(export.getJqExportRadioLevel3())
|
|
|
+ .add(export.getJqExportRadioLevel4())
|
|
|
+ .add(export.getJqExportRadioLevel5());
|
|
|
if (updatedValue.compareTo(totalJqExportRadio) < 0) {
|
|
|
- throw new SystemException("id为"+ item.getId() + desc + "比例值不能小于交强险管理比例1-5级的总和");
|
|
|
+ throw new SystemException("id为" + item.getId() + desc + "比例值不能小于交强险管理比例1-5级的总和");
|
|
|
}
|
|
|
break;
|
|
|
case "商业险总费用":
|
|
|
BigDecimal totalSyExportRadio = export.getSyExportRadioLevel1()
|
|
|
- .add(export.getSyExportRadioLevel2())
|
|
|
- .add(export.getSyExportRadioLevel3())
|
|
|
- .add(export.getSyExportRadioLevel4())
|
|
|
- .add(export.getSyExportRadioLevel5());
|
|
|
+ .add(export.getSyExportRadioLevel2())
|
|
|
+ .add(export.getSyExportRadioLevel3())
|
|
|
+ .add(export.getSyExportRadioLevel4())
|
|
|
+ .add(export.getSyExportRadioLevel5());
|
|
|
if (updatedValue.compareTo(totalSyExportRadio) < 0) {
|
|
|
- throw new SystemException("id为"+ item.getId() + desc + "比例值不能小于商业险管理比例1-5级的总和");
|
|
|
+ throw new SystemException("id为" + item.getId() + desc + "比例值不能小于商业险管理比例1-5级的总和");
|
|
|
}
|
|
|
break;
|
|
|
case "非车险总费用":
|
|
|
BigDecimal totalNoCarExportRadio = export.getNoCarExportRadioLevel1()
|
|
|
- .add(export.getNoCarExportRadioLevel2())
|
|
|
- .add(export.getNoCarExportRadioLevel3())
|
|
|
- .add(export.getNoCarExportRadioLevel4())
|
|
|
- .add(export.getNoCarExportRadioLevel5());
|
|
|
+ .add(export.getNoCarExportRadioLevel2())
|
|
|
+ .add(export.getNoCarExportRadioLevel3())
|
|
|
+ .add(export.getNoCarExportRadioLevel4())
|
|
|
+ .add(export.getNoCarExportRadioLevel5());
|
|
|
if (updatedValue.compareTo(totalNoCarExportRadio) < 0) {
|
|
|
- throw new SystemException("id为"+ item.getId() + desc + "比例值不能小于非车险管理比例1-5级的总和");
|
|
|
+ throw new SystemException("id为" + item.getId() + desc + "比例值不能小于非车险管理比例1-5级的总和");
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
@@ -1231,13 +1238,13 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
|
|
|
// 计算费用比例需要减少的值
|
|
|
BigDecimal subtractValue = addOther.abs().subtract(currentOther); // 取绝对值,因为是负数
|
|
|
// 根据描述符更新对应的总费用比例
|
|
|
- switch(desc) {
|
|
|
+ switch (desc) {
|
|
|
case "交强险其他费用":
|
|
|
// 获得现在费用比例的值
|
|
|
BigDecimal jqCarCostsProportion = new BigDecimal(item.getJqCarCostsProportion());
|
|
|
BigDecimal currentJqCarCostsProportion = jqCarCostsProportion.subtract(subtractValue);
|
|
|
if (currentJqCarCostsProportion.compareTo(BigDecimal.ZERO) < 0) {
|
|
|
- throw new SystemException("id为"+ item.getId() + desc + "比例值不能小于零");
|
|
|
+ throw new SystemException("id为" + item.getId() + desc + "比例值不能小于零");
|
|
|
}
|
|
|
item.setJqCarCostsProportion(currentJqCarCostsProportion.toString());
|
|
|
break;
|
|
|
@@ -1245,7 +1252,7 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
|
|
|
BigDecimal syCarCostsProportion = new BigDecimal(item.getSyCarCostsProportion());
|
|
|
BigDecimal currentSyCarCostsProportion = syCarCostsProportion.subtract(subtractValue);
|
|
|
if (currentSyCarCostsProportion.compareTo(BigDecimal.ZERO) < 0) {
|
|
|
- throw new SystemException("id为"+ item.getId() + desc + "比例值不能小于零");
|
|
|
+ throw new SystemException("id为" + item.getId() + desc + "比例值不能小于零");
|
|
|
}
|
|
|
item.setSyCostsProportion(currentSyCarCostsProportion.toString());
|
|
|
break;
|
|
|
@@ -1253,7 +1260,7 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
|
|
|
BigDecimal noCarCostsProportion = new BigDecimal(item.getNoCarCostsProportion());
|
|
|
BigDecimal currentNoCarCostsProportion = noCarCostsProportion.subtract(subtractValue);
|
|
|
if (currentNoCarCostsProportion.compareTo(BigDecimal.ZERO) < 0) {
|
|
|
- throw new SystemException("id为"+ item.getId() + desc + "比例值不能小于零");
|
|
|
+ throw new SystemException("id为" + item.getId() + desc + "比例值不能小于零");
|
|
|
}
|
|
|
item.setNoCarCostsProportion(currentNoCarCostsProportion.toString());
|
|
|
break;
|
|
|
@@ -1289,7 +1296,7 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
|
|
|
// }
|
|
|
|
|
|
//更新1-5级比例
|
|
|
- private void updateExportItem(AgreementProductCostsVo vo, PtlAgreementProductCostsExport item,PtlAgreementProductCostsNew costsItem) {
|
|
|
+ private void updateExportItem(AgreementProductCostsVo vo, PtlAgreementProductCostsExport item, PtlAgreementProductCostsNew costsItem) {
|
|
|
updateExportRadios(item, vo.getJqExportRadioLevel1(), item::getJqExportRadioLevel1, item::setJqExportRadioLevel1, "交强险一级比例", costsItem);
|
|
|
updateExportRadios(item, vo.getJqExportRadioLevel2(), item::getJqExportRadioLevel2, item::setJqExportRadioLevel2, "交强险二级比例", costsItem);
|
|
|
updateExportRadios(item, vo.getJqExportRadioLevel3(), item::getJqExportRadioLevel3, item::setJqExportRadioLevel3, "交强险三级比例", costsItem);
|
|
|
@@ -1308,7 +1315,7 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
|
|
|
}
|
|
|
|
|
|
//更新1-5级比例
|
|
|
- private void updateExportRadios(PtlAgreementProductCostsExport item, BigDecimal valueToAdd, Supplier<BigDecimal> getter, Consumer<BigDecimal> setter,String desc,PtlAgreementProductCostsNew costsItem) {
|
|
|
+ private void updateExportRadios(PtlAgreementProductCostsExport item, BigDecimal valueToAdd, Supplier<BigDecimal> getter, Consumer<BigDecimal> setter, String desc, PtlAgreementProductCostsNew costsItem) {
|
|
|
if (valueToAdd != null) {
|
|
|
BigDecimal currentValue = getter.get();
|
|
|
BigDecimal updatedValue = currentValue.add(valueToAdd);
|
|
|
@@ -1326,9 +1333,9 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
|
|
|
}
|
|
|
// 检查更新后的值是否小于零
|
|
|
if (updatedValue.compareTo(BigDecimal.ZERO) < 0) {
|
|
|
- throw new SystemException("id为"+ item.getCostsId() + desc + "比例值不能小于零");
|
|
|
+ throw new SystemException("id为" + item.getCostsId() + desc + "比例值不能小于零");
|
|
|
}
|
|
|
- switch(desc) {
|
|
|
+ switch (desc) {
|
|
|
case "交强险一级比例":
|
|
|
BigDecimal totalJqCostsExportRadio1 = updatedValue.add(item.getJqExportRadioLevel2())
|
|
|
.add(item.getJqExportRadioLevel3())
|
|
|
@@ -1579,6 +1586,8 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
|
|
|
@Autowired
|
|
|
private SysSwitchConfigService sysSwitchConfigService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private InsFeeAuditService insFeeAuditService;
|
|
|
|
|
|
@Transactional
|
|
|
@Override
|
|
|
@@ -1612,6 +1621,10 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
|
|
|
InsFeeOrderNew insFeeOrderNew = insFeeOrderNewService.getById(feeId);
|
|
|
InsAreaCompany insAreaCompany = insAreaCompanyService.getById(insFeeOrderNew.getInsOrderNo());
|
|
|
|
|
|
+ InsFeeAudit insFeeAudit = insFeeAuditService.lambdaQuery().eq(InsFeeAudit::getInsOrderNo, insAreaCompany.getId()).one();
|
|
|
+ if (FeeAuditAuditstatus.PASSED.getCode().equals(insFeeAudit.getAuditstatus())) {
|
|
|
+ throw new SystemException("审核通过的订单无法进行修改费用!!");
|
|
|
+ }
|
|
|
|
|
|
InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
|
|
|
SysUser sysUser = sysUserService.findByUserId(insOrders.getUserid());
|
|
|
@@ -1619,7 +1632,7 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
|
|
|
// 外部订单比例
|
|
|
BigDecimal enterProportion = sysSwitchConfigService.getEnterProportion(insOrders.getDeptid(), insOrders.getEntryStatus());
|
|
|
|
|
|
- //查询协议是否包含税
|
|
|
+ //查询协议是否包含税
|
|
|
PtlAgreement ptlAgreement = ptlAgreementService.getById(insFeeOrderNew.getAgreementId());
|
|
|
BigDecimal taxRadio = new BigDecimal("1.00");
|
|
|
if (ptlAgreement.getWithTax().equals("否")) {
|