Browse Source

导出的分摊数据中人员金额精确到小数点后6位

seyason 2 years ago
parent
commit
6690efe7ba

+ 38 - 73
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/FinanceServiceImpl.java

@@ -957,17 +957,7 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                     p.field1 = p.field1.setScale(2, BigDecimal.ROUND_HALF_UP);
                     p.field2 = p.field2.setScale(2, BigDecimal.ROUND_HALF_UP);
                     p.field3 = p.field3.setScale(2, BigDecimal.ROUND_HALF_UP);
-                    BigDecimal pActual=new BigDecimal(0).add(p.salary.setScale(2, BigDecimal.ROUND_HALF_UP))
-                            .add(p.bonus.setScale(2, BigDecimal.ROUND_HALF_UP))
-                            .add(p.allowance.setScale(2, BigDecimal.ROUND_HALF_UP))
-                            .add(p.old.setScale(2, BigDecimal.ROUND_HALF_UP))
-                            .add(p.medical.setScale(2, BigDecimal.ROUND_HALF_UP))
-                            .add(p.loseJob.setScale(2, BigDecimal.ROUND_HALF_UP))
-                            .add(p.injury.setScale(2, BigDecimal.ROUND_HALF_UP))
-                            .add(p.house.setScale(2, BigDecimal.ROUND_HALF_UP))
-                            .add(p.field1.setScale(2, BigDecimal.ROUND_HALF_UP))
-                            .add(p.field2.setScale(2, BigDecimal.ROUND_HALF_UP))
-                            .add(p.field3.setScale(2, BigDecimal.ROUND_HALF_UP));
+
                     //组装写入excel文件的数据,从项目开始,项目下面挂成员
                     List<String> rowData = new ArrayList<String>();
                     rowData.add(p.projectCode);
@@ -992,8 +982,7 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                     if (cusColList.size() > 2) {
                         rowData.add(p.field3.toPlainString());
                     }
-                    rowData.add(pActual.toPlainString());
-                    /*rowData.add(p.cost.toPlainString());*/
+                    rowData.add(p.cost.toPlainString());
                     allList.add(rowData);
 
                     //获取成员
@@ -1014,18 +1003,18 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                             }
                             Finance userFinance = first.get();
 
-                            BigDecimal cost = userFinance.getTotalCost().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal salary = userFinance.getMonthCost().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal bonus = userFinance.getBonus().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal allowance = userFinance.getAllowance().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal old = userFinance.getInsuranceOld().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal medical = userFinance.getInsuranceMedical().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal loseJob = userFinance.getInsuranceLosejob().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal injury = userFinance.getInsuranceInjury().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal house = userFinance.getHouseFund().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal field1 = userFinance.getCustomField1() == null? new BigDecimal(0):userFinance.getCustomField1().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal field2 = userFinance.getCustomField2() == null? new BigDecimal(0):userFinance.getCustomField2().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
-                            BigDecimal field3 = userFinance.getCustomField3() == null? new BigDecimal(0):userFinance.getCustomField3().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
+                            BigDecimal cost = userFinance.getTotalCost().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                            BigDecimal salary = userFinance.getMonthCost().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                            BigDecimal bonus = userFinance.getBonus().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                            BigDecimal allowance = userFinance.getAllowance().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                            BigDecimal old = userFinance.getInsuranceOld().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                            BigDecimal medical = userFinance.getInsuranceMedical().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                            BigDecimal loseJob = userFinance.getInsuranceLosejob().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                            BigDecimal injury = userFinance.getInsuranceInjury().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                            BigDecimal house = userFinance.getHouseFund().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                            BigDecimal field1 = userFinance.getCustomField1() == null? new BigDecimal(0):userFinance.getCustomField1().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                            BigDecimal field2 = userFinance.getCustomField2() == null? new BigDecimal(0):userFinance.getCustomField2().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
+                            BigDecimal field3 = userFinance.getCustomField3() == null? new BigDecimal(0):userFinance.getCustomField3().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 6, BigDecimal.ROUND_HALF_UP);
                             if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
                                 membRowData.add("$userName="+(us.getCorpwxUserid()==null?"":us.getCorpwxUserid())+"$");
                             }else {
@@ -1051,37 +1040,25 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                                 }
                             }
                             membRowData.add(workingTime+"");
-                            membRowData.add(salary.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
-                            membRowData.add(bonus.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
-                            membRowData.add(allowance.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
-                            membRowData.add(old.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
-                            membRowData.add(medical.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
-                            membRowData.add(loseJob.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
-                            membRowData.add(injury.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
-                            membRowData.add(house.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
+                            membRowData.add(salary.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                            membRowData.add(bonus.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                            membRowData.add(allowance.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                            membRowData.add(old.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                            membRowData.add(medical.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                            membRowData.add(loseJob.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                            membRowData.add(injury.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                            membRowData.add(house.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
                             //自定义字段
                             if (cusColList.size() > 0) {
-                                membRowData.add(field1.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                membRowData.add(field1.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
                             }
                             if (cusColList.size() > 1) {
-                                membRowData.add(field2.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                membRowData.add(field2.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
                             }
                             if (cusColList.size() > 2) {
-                                membRowData.add(field3.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                membRowData.add(field3.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
                             }
-                            BigDecimal actual=new BigDecimal(0).add(salary.setScale(2, BigDecimal.ROUND_HALF_UP))
-                                    .add(bonus.setScale(2, BigDecimal.ROUND_HALF_UP))
-                                    .add(allowance.setScale(2, BigDecimal.ROUND_HALF_UP))
-                                    .add(old.setScale(2, BigDecimal.ROUND_HALF_UP))
-                                    .add(medical.setScale(2, BigDecimal.ROUND_HALF_UP))
-                                    .add(loseJob.setScale(2, BigDecimal.ROUND_HALF_UP))
-                                    .add(injury.setScale(2, BigDecimal.ROUND_HALF_UP))
-                                    .add(house.setScale(2, BigDecimal.ROUND_HALF_UP))
-                                    .add(field1.setScale(2, BigDecimal.ROUND_HALF_UP))
-                                    .add(field2.setScale(2, BigDecimal.ROUND_HALF_UP))
-                                    .add(field3.setScale(2, BigDecimal.ROUND_HALF_UP));
-                            /*membRowData.add(cost.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());*/
-                            membRowData.add(actual.toPlainString());
+                            membRowData.add(cost.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
                             allList.add(membRowData);
                         }
                     }
@@ -1141,37 +1118,25 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                                         }
                                     }
                                     membRowData.add(workingTime+"");
-                                    membRowData.add(salary.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
-                                    membRowData.add(bonus.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
-                                    membRowData.add(allowance.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
-                                    membRowData.add(old.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
-                                    membRowData.add(medical.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
-                                    membRowData.add(loseJob.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
-                                    membRowData.add(injury.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
-                                    membRowData.add(house.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                    membRowData.add(salary.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                    membRowData.add(bonus.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                    membRowData.add(allowance.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                    membRowData.add(old.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                    membRowData.add(medical.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                    membRowData.add(loseJob.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                    membRowData.add(injury.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                    membRowData.add(house.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
                                     //自定义字段
                                     if (cusColList.size() > 0) {
-                                        membRowData.add(field1.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                        membRowData.add(field1.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
                                     }
                                     if (cusColList.size() > 1) {
-                                        membRowData.add(field2.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                        membRowData.add(field2.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
                                     }
                                     if (cusColList.size() > 2) {
-                                        membRowData.add(field3.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
+                                        membRowData.add(field3.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
                                     }
-                                    BigDecimal actual=new BigDecimal(0).add(salary.setScale(2, BigDecimal.ROUND_HALF_UP))
-                                            .add(bonus.setScale(2, BigDecimal.ROUND_HALF_UP))
-                                            .add(allowance.setScale(2, BigDecimal.ROUND_HALF_UP))
-                                            .add(old.setScale(2, BigDecimal.ROUND_HALF_UP))
-                                            .add(medical.setScale(2, BigDecimal.ROUND_HALF_UP))
-                                            .add(loseJob.setScale(2, BigDecimal.ROUND_HALF_UP))
-                                            .add(injury.setScale(2, BigDecimal.ROUND_HALF_UP))
-                                            .add(house.setScale(2, BigDecimal.ROUND_HALF_UP))
-                                            .add(field1.setScale(2, BigDecimal.ROUND_HALF_UP))
-                                            .add(field2.setScale(2, BigDecimal.ROUND_HALF_UP))
-                                            .add(field3.setScale(2, BigDecimal.ROUND_HALF_UP));
-                                    /*membRowData.add(cost.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());*/
-                                    membRowData.add(actual.toPlainString());
+                                    membRowData.add(cost.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
                                     allList.add(membRowData);
                                 }
                             }