XJ项目关于新增保险时输入各类保险金额后计算总和插入到总费用后查询显示

第一种情况

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

以上是两种计费方法(前台和后台)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值