| 
					
				 | 
			
			
				@@ -748,7 +748,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //实际应付金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         BigDecimal totalPayable = getTotalPayable(mzChargeDetailList, feeMap, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //实际应付金额  四舍五入后的值 收费员收的钱小数点后只有一位有效值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        BigDecimal totalPayableRound = totalPayable.setScale(1, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        BigDecimal totalPayableRound = totalPayable.setScale(2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //单病种收费不设置金额,所以自动设置金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (Constants.DBZJF_CODE.equals(opId)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             mzDepositFileVo.getMzDepositFiles().get(0).setAmount(totalPayableRound); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1044,10 +1044,10 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     mzChargeDetail.setDoctorCode(doctorCode == null ? "" : doctorCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (mzChargeDetail.getAmount() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    mzChargeDetail.setAmount(mzChargeDetail.getAmount().setScale(1, BigDecimal.ROUND_HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    mzChargeDetail.setAmount(mzChargeDetail.getAmount().setScale(2, BigDecimal.ROUND_HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (mzChargeDetail.getNotDiscountAmount() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        mzChargeDetail.setNotDiscountAmount(mzChargeDetail.getNotDiscountAmount().setScale(1, BigDecimal.ROUND_HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        mzChargeDetail.setDiscountAmount(mzChargeDetail.getNotDiscountAmount().subtract(mzChargeDetail.getAmount()).setScale(1, BigDecimal.ROUND_HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        mzChargeDetail.setNotDiscountAmount(mzChargeDetail.getNotDiscountAmount().setScale(2, BigDecimal.ROUND_HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        mzChargeDetail.setDiscountAmount(mzChargeDetail.getNotDiscountAmount().subtract(mzChargeDetail.getAmount()).setScale(2, BigDecimal.ROUND_HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -3039,7 +3039,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             amountList.add((BigDecimal) resultMap.get(String.valueOf(i))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             resultMap.remove(String.valueOf(i)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        discountAmount = notDiscountAmount.subtract(amount).setScale(1, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        discountAmount = notDiscountAmount.subtract(amount).setScale(2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         resultMap.put("amount", amount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         resultMap.put("notDiscountAmount", notDiscountAmount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         resultMap.put("discountAmount", discountAmount); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -5122,58 +5122,58 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Map<String, BigDecimal> feeMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //实际应付金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             getTotalPayable(temp, feeMap, needDiscount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (String key : feeMap.keySet()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                BigDecimal amount = feeMap.get(key).setScale(2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                totalFee = totalFee.add(amount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            totalFee = totalFee.setScale(2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            BigDecimal realTotal = totalFee.setScale(1, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            BigDecimal sZero = realTotal.subtract(totalFee); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (sZero.compareTo(BigDecimal.ZERO) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                MzChargeDetail newMzChargeDetail = new MzChargeDetail(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setPatientId(mzChargeDetail.getPatientId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setTimes(mzChargeDetail.getTimes()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setReceiptNo(receiptNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setOrderNo(maxOrderNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setItemNo(itemNo++); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setChargeItemCode(Constants.SSWR_CHARGE_ITEM_CODE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setBillItemCode(Constants.SSWRF); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setQuantity(1D); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setUnitPrice(sZero); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setPayMark(PayMarkEnum.NO_CHARGE.code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setSerial(Constants.YJ_GROUP_NO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setSerialNo(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setName(mzPatientMi != null ? mzPatientMi.getName() : ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setGroupNo(Constants.YJ_GROUP_NO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setDrugWin(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setPriceId(temp.get(0).getPriceId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setPriceTime(temp.get(0).getPriceTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setExecDept(temp.get(0).getExecDept()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setPrintFlag(YesNoEnum.NO.code.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setConfirmFlag(ConfirmFlagEnum.NOT_CONFIRM.code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setWarnDept(temp.get(0).getWarnDept()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setJzFlag(temp.get(0).getJzFlag()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setDoctorCode(temp.get(0).getDoctorCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setDoctorFlag(YesNoEnum.YES.code.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setInjectRes(Double.valueOf(YesNoEnum.YES.code)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setRealNo(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setYbbxFlag(YesNoEnum.NO.code.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setDetailFlag(YesNoEnum.NO.code.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setOrderType(YesNoEnum.YES.code.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setSupplyNo("Y"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setReqNo(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setGroupType(GroupTypeEnum.DIAGNOSIS.code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setOrderBill(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setChargeBillCode(Constants.SSWR_BILL_ITEM_CODE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setSelfFlag(YesNoEnum.NO.code.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setResponceType(mzPatientMi == null ? Constants.SELF_PAYING_RESPONCE_TYPE : mzPatientMi.getResponseType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setGlPercentFt(BigDecimal.ONE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setOrigPrice(newMzChargeDetail.getUnitPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setTcName("四舍五入"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setReqYj(YesNoEnum.YES.code.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMzChargeDetail.setGroupId(YesNoEnum.NO.code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                mzChargeDetails.add(newMzChargeDetail); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            for (String key : feeMap.keySet()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                BigDecimal amount = feeMap.get(key).setScale(2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                totalFee = totalFee.add(amount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            totalFee = totalFee.setScale(2, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            BigDecimal realTotal = totalFee.setScale(1, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            BigDecimal sZero = realTotal.subtract(totalFee); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            if (sZero.compareTo(BigDecimal.ZERO) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                MzChargeDetail newMzChargeDetail = new MzChargeDetail(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setPatientId(mzChargeDetail.getPatientId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setTimes(mzChargeDetail.getTimes()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setReceiptNo(receiptNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setOrderNo(maxOrderNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setItemNo(itemNo++); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setChargeItemCode(Constants.SSWR_CHARGE_ITEM_CODE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setBillItemCode(Constants.SSWRF); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setQuantity(1D); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setUnitPrice(sZero); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setPayMark(PayMarkEnum.NO_CHARGE.code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setSerial(Constants.YJ_GROUP_NO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setSerialNo(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setName(mzPatientMi != null ? mzPatientMi.getName() : ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setGroupNo(Constants.YJ_GROUP_NO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setDrugWin(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setPriceId(temp.get(0).getPriceId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setPriceTime(temp.get(0).getPriceTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setExecDept(temp.get(0).getExecDept()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setPrintFlag(YesNoEnum.NO.code.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setConfirmFlag(ConfirmFlagEnum.NOT_CONFIRM.code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setWarnDept(temp.get(0).getWarnDept()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setJzFlag(temp.get(0).getJzFlag()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setDoctorCode(temp.get(0).getDoctorCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setDoctorFlag(YesNoEnum.YES.code.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setInjectRes(Double.valueOf(YesNoEnum.YES.code)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setRealNo(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setYbbxFlag(YesNoEnum.NO.code.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setDetailFlag(YesNoEnum.NO.code.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setOrderType(YesNoEnum.YES.code.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setSupplyNo("Y"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setReqNo(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setGroupType(GroupTypeEnum.DIAGNOSIS.code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setOrderBill(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setChargeBillCode(Constants.SSWR_BILL_ITEM_CODE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setSelfFlag(YesNoEnum.NO.code.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setResponceType(mzPatientMi == null ? Constants.SELF_PAYING_RESPONCE_TYPE : mzPatientMi.getResponseType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setGlPercentFt(BigDecimal.ONE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setOrigPrice(newMzChargeDetail.getUnitPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setTcName("四舍五入"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setReqYj(YesNoEnum.YES.code.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                newMzChargeDetail.setGroupId(YesNoEnum.NO.code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                mzChargeDetails.add(newMzChargeDetail); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |