`

贴段java代码

 
阅读更多
最近在做一个项目时对有个地方一直有点迷惑,背景是这样:
model类:Doctor,PriceStandard
Doctor字段:
   List<PriceStandard> feeList;
   //扣费方式,1表示代扣,2表示不代扣
   String recoupWay;
   .....

PriceStandard字段:
   //Y表示系统收费,N非系统收费
   String isSystem;
   //费用
   double priceAmount;

   .....
目的:判断当前doctor所收费用是否为0?(不代扣表示收费为0).

代扣费用条件:recoupWay=="1"&&isSystem=="N"
不代扣条件:recoupWay=="2"&&isSystem=="N"
系统费用: recoupWay=="1"||"2"+isSystem=="Y"即isSystem=="Y"
(其中代扣与不代扣只会出现其一)
总费用:代扣费或不代扣费+系统费用
代码:
//计算挂号实际收取费用
		List<PriceStandard> feeList = doctor.getFeeList();
		// 费用总数
		double hs_price = 0;
		double ad_price = 0;
		//不代扣费用
		double site_price = 0;
		
		for (PriceStandard ps:feeList) {
			double priceTemp = ps.getPriceAmount();
			//代扣费用
			if(doctor.getRecoupWay().equals("1")&&ps.getIsSystem().equals("N")){
				hs_price += priceTemp;
			}
			//不代扣费用
			if(doctor.getRecoupWay().equals("2")&&ps.getIsSystem().equals("N")){
				site_price += priceTemp;
			}
			
			if(ps.getIsSystem().equals("Y")){
				ad_price += priceTemp;
			}
		}


这段代码看起来非常的别扭,那个doctor.getRecoupWay()明明是外部的变量却不得不放在for循环内部来比较,因此很多人一看见这段代码就有想改一改的冲动,我也不例外:
//计算挂号实际收取费用
		List<PriceStandard> feeList = doctor.getFeeList();
		// 费用总数
		double hs_price = 0;
		double ad_price = 0;
		//不代扣费用
		double site_price = 0;
		
		for (PriceStandard ps:feeList) {
			if(ps.getIsSystem().equals("Y")){//系统费用
				ad_price += ps.getPriceAmount();
			}else if(ps.getIsSystem().equals("N")){//非系统收费
				if(doctor.getRecoupWay().equals("1")){//代扣费用
					hs_price += ps.getPriceAmount();
				}else if(doctor.getRecoupWay().equals("2")){//不代扣费用
					site_price += ps.getPriceAmount();
				}
			}
		}

个人觉得这个recoupWay放在PriceStandard类可能更清晰一些。
分享到:
评论

相关推荐

    教你如何将java代码拷贝到有道云笔记

    将你的java代码美化到有道云笔记中。喜欢使用云笔记的同学记住关键性代码的可以下载哟

    Java猜拳游戏 Java源代码

    人机对战,自定义用户名,选择电脑角色,电脑随机出拳。结束后,公布结果。提示:这是一个Java包,解压后,直接粘贴到新建的工程里,然后运行GOthegame.java即可.如果出现错误,改下包名

    魔方java源代码

    魔方java源代码 直接粘贴到myeclipse里 挺有意思的 大家可以练习一下

    Java编程超级马里奥全代码

    可自定义的超级马里奥源代码,导入到eclipse中可以运行

    Java script脚本常用代码

    Java script脚本常用代码,比较全,供JS初学者参考。

    自动生成java代码

    利用freemarker生成MVC代码,避免做大量重复的复制黏贴替换工作,更专注在业务代码实现和难度更大的技术问题上,提高工作效率

    JAVA写的windows记事本源代码

    所用工具:Jcreator 一.新建(ctrl+n)→判断:1.保存了,直接新建,框架名为:“新建 文本文档.txt--★海龙记事本★” 2.未保存:提示未保存,要求选则是否保存 选是,保存后新建;选否,不保存直接新建。...

    sm4js与java代码.zip

    包含js sm4 加密代码、java sm4加解密代码直接可用,代码已上线运行,亲测可用,粘贴即用 包含js sm4 加密代码、java sm4加解密代码直接可用

    记事本java程序代码

    记事本的java程序代码,包括的功能有文件,编辑,帮助,文件:新建,打开,保存,退出。编辑:复制、粘贴、查找、替换。

    java黑白棋源代码

    java源代码写的黑白棋游戏程序.直接贴到eclipse里就能看到结果

    在Java应用程序的窗口中贴图的技术

    在Java应用程序的窗口中贴图的技术.所有程序在j2sdk1.4.2_03环境下调试完成。所以需要首先安装J2sdk,而且要配置J2SDK的环境变量,如果没配置,就需要将所有代码都复制到J2SDK的bin目录下才可保证正常运行。

    使用java代码操作本地打印机

    使用java代码获取本地网络中的打印机,封装标签格式数据,调用计算机默认打印机打印热贴标签

    AutoCode代码生成器(JAVA版)

    您是不是因为java的开发和维护繁琐而烦恼,目前政府机关、企业大都要求用java来开发项目,本软件将彻底解决您的后顾之忧,通过本软件的自动生成功能,生成的java代码规范、全部开源,不存在用隐含的内容,全部代码...

    一键贴java、xml、html等代码到txt、word(bat命令合并代码)

    查看文章教程 https://blog.csdn.net/qq_37604915/article/details/80116801

    课程设计java EE酒店管理系统源代码.zip

    创建数据库,根目录下有hotel2.sql文件,我的数据库版本是mysql 5.5,有点老,版本不同的可以一段一段粘贴执行,反正不多 根据自己数据库版本信息在pom.xml中修改数据库连接jar包版本 修改src/main/resources/db....

    redhat.java-0.64.1.vsix Java VScode的语言支持离线安装包

    支持从Java 1.5到Java 14的代码 Maven pom.xml项目支持 基本Gradle Java项目支持(不支持Android) 独立Java文件支持 键入时报告解析和编译错误 ...代码段 注释处理支持(对于Maven项目自动) 语义选择 诊断标签

    java 编写的记事本 源代码

    该程序是用myeclipse 自己编的 可以实现修改 字体大小颜色 保存,复制 粘贴,剪切 添加系统时间 可以打开 txt文件,功能还算可以 一部分代码是抄袭的 不是原创,

    java简单实现复制 粘贴 剪切功能代码分享

    本文给大家分享了一段java编写的简单实现复制粘贴剪切功能的代码,需要的小伙伴可以直接拿走使用。如有更好的方案,也可以告之本人。

    java代码统计工具

    java写的代码统计工具,可以统计代码量,注释,空行等。其他的语言 统计不了!贴出我的源码:http://blog.csdn.net/sxhs1986/archive/2011/04/29/6372766.aspx

    Java文本编辑器-源代码

    Java开发文本编辑器详细注释版。功能包括实现创建、浏览、编辑文件(剪贴、复制、粘贴),保存以及另存为等基本功能,以及字符(字母、汉字、数字)统计,帮助,关于等功能的实现。用到的主要知识:GUI图形界面基础...

Global site tag (gtag.js) - Google Analytics