XJ项目关于新增保险时输入各类保险金额后计算总和插入到总费用后查询显示
返回本版】  【发表帖子】  【回复帖子 浏览量  1049      回帖数 0
lanlan123    等级  

0 楼 发表于  2019/8/6 9:54:46    编 辑   

第一种情况
新增框内既有各类保险金额,也有保险总费用。当输入一类保险金额时,保险总费用自动累加显示,点击保存之后将所有数据插入数据库。然后查询查询显示在结果列表即可。如下图:

第一种情况可以在前端js中写一个计费方法。获取每个不同类的保险金额,值取到之后在点击保存之前将变量中的值赋值给保险总费用,然后点击保存。代码如下(js中计费的方法写在代码一开始中的method{}中,也就是新增,查询,删除,修改下方即可):

//计费方法
 Vehicle_sum:function(){
 var sum  = /^[0-9]\d{0,5}$/;
 var trafficCompulsoryInsuranceCost=$("#vehicleInsurance_add_trafficCompulsoryInsuranceCost").textbox(''getvalue'');
 trafficCompulsoryInsuranceCost=parseInt(trafficCompulsoryInsuranceCost);
 if(!trafficCompulsoryInsuranceCost == ''''){
 if(!sum.test(trafficCompulsoryInsuranceCost)){
 Message.error("请输入正确的保险!");
 return;
 }
 }
 var commercialInsuranceCost=$("#vehicleInsurance_add_commercialInsuranceCost").textbox(''getvalue'');
 commercialInsuranceCost=parseInt(commercialInsuranceCost);
 if(!commercialInsuranceCost == ''''){
 if(!sum.test(commercialInsuranceCost)){
 Message.error("请输入正确的保险!");
 return;
 }
 }
 var carrierInsuranceCost=$("#vehicleInsurance_add_carrierInsuranceCost").textbox(''getvalue'');
 carrierInsuranceCost=parseInt(carrierInsuranceCost);
 if(!carrierInsuranceCost == ''''){
 if(!sum.test(carrierInsuranceCost)){
 Message.error("请输入正确的保险!");
 return;
 }
 }
 var vehicleAndVesselTaxCost=$("#vehicleInsurance_add_vehicleAndVesselTaxCost").textbox(''getvalue'');
 vehicleAndVesselTaxCost=parseInt(vehicleAndVesselTaxCost);
 if(!vehicleAndVesselTaxCost == ''''){
 if(!sum.test(vehicleAndVesselTaxCost)){
 Message.error("请输入正确的保险!");
 return;
 }
 }
 var total = trafficCompulsoryInsuranceCost+commercialInsuranceCost+carrierInsuranceCost+vehicleAndVesselTaxCost;
 $("#vehicleInsurance_add_totalCost").textbox("setvalue",total);
 },

第二种情况
新增的表单中只有各种类别的保险费用,并没有保险费用合计的字段。意思是在新增时只输入各种类别的保险金额,后台拿到各种类型的保险金额之后,在后台将各类保险金额累加,用set方法给totalcost(保险总费用)赋值,插入数据库中。查询是从数据库查询显示在结果列表即可。如下图


第二种情况可以在后台中写一个计费的累加方法。用BigDecimal的add方法进行累加。首先实例化一个BigDecimal的对象totalCost,赋一个初始值为0,然后用保险的对象insurance的get方法获取各种保险的金额,然后用totalCost.add方法将获取每个不同类的保险金额一次加到totalCost中,然后将totalCost用insurance的set方法set到保险总费用的字段中,然后进行插入操作。代码如下(后台中计费的方法写在Service中的新增方法中):

/**
  * 车辆保险新增
  * 陈通
  * @param insurance
  * @param request
  * @return
  * @throws IOException
  */
 public Result insertVehicleInsurance(VehicleInsurance insurance,HttpServletRequest request) throws IOException{
 Result result = Result.getInstance();
 insurance.setKeyID(IDGenerator.uuid());
 //计费方法开始
 BigDecimal totalCost = new BigDecimal("0");
        if(insurance.getTrafficCompulsoryInsuranceCost()!=null){
         totalCost=totalCost.add(insurance.getTrafficCompulsoryInsuranceCost());
        }
        if(insurance.getCommercialInsuranceCost()!=null){
         totalCost=totalCost.add(insurance.getCommercialInsuranceCost());
        }
        if(insurance.getCarrierInsuranceCost()!=null){
         totalCost=totalCost.add(insurance.getCarrierInsuranceCost());
        }
        if(insurance.getVehicleAndVesselTaxCost()!=null){
         totalCost=totalCost.add(insurance.getVehicleAndVesselTaxCost());
        }
        insurance.setTotalCost(totalCost);
        //计费方法结束
 //插入车辆保险信息,返回受影响的行数
 int count=vehicleInsuranceDao.insertVehicleInsurance(insurance);
 //插入附件
 sysFileService.saveFile(insurance.getKeyID(), Enums.FILE_CATALOG.INSURANCEFILE.getvalue(), request);
 if (count>0) {
 result.setFlag(true);
 result.setMessage("车辆保险新增成功!");
 }else{
 result.setFlag(false);
 result.setMessage("车辆保险新增失败!");
 }
 return result;
 }

以上是两种计费方法(前台和后台)。
--------------------- 
作者:ct_?? 
来源:CSDN 
原文:https://blog.csdn.net/weixin_40418595/article/details/94736305 
版权声明:本文为博主原创文章,转载请附上博文链接!
1
表情
所有内容均为会员自愿发表,并不代表本站立场.