wzy 22 часов назад
Родитель
Сommit
4a159947e8
1 измененных файлов с 40 добавлено и 27 удалено
  1. 40 27
      mjava-siku/src/main/java/com/malk/siku/service/impl/SikuServiceImpl.java

+ 40 - 27
mjava-siku/src/main/java/com/malk/siku/service/impl/SikuServiceImpl.java

@@ -933,8 +933,12 @@ public class SikuServiceImpl implements SikuService {
             for (Map expenseValue : expenseValueList) {
             for (Map expenseValue : expenseValueList) {
                 Map deductionList = UtilMap.getMap(expenseValue, "deductionList");//当前对公费用核销的数据(当前到票核销场景核销了哪些“预付未到票”记录)
                 Map deductionList = UtilMap.getMap(expenseValue, "deductionList");//当前对公费用核销的数据(当前到票核销场景核销了哪些“预付未到票”记录)
 
 
-                Map expenseDeductionTaxAmount = UtilMap.getMap(expenseValue, "expenseDeductionTaxAmount");//费用级抵扣税额(消费币种)
-                Double sj = UtilMap.getDouble(expenseDeductionTaxAmount, "amount");//每刻实际税金
+                List<Map> invoiceList = getMkListValue(expenseValue, "invoiceList");//发票列表
+                Map invoice = invoiceList.get(0);
+                Double totalTaxAmount = UtilMap.getDouble(invoice, "totalTaxAmount");//每刻实际税金
+
+                /*Map expenseDeductionTaxAmount = UtilMap.getMap(expenseValue, "expenseDeductionTaxAmount");//费用级抵扣税额(消费币种)
+                Double sj = UtilMap.getDouble(expenseDeductionTaxAmount, "amount");//每刻实际税金*/
 
 
                 List<Map> deductionValueList = UtilMap.getList(deductionList, "value");
                 List<Map> deductionValueList = UtilMap.getList(deductionList, "value");
 
 
@@ -945,7 +949,7 @@ public class SikuServiceImpl implements SikuService {
 
 
                 if (targetFormCode.contains("需求") || targetFormCode.contains("采购")){
                 if (targetFormCode.contains("需求") || targetFormCode.contains("采购")){
                     //更新宜搭核销金额及税金
                     //更新宜搭核销金额及税金
-                    updateYdDeduction(targetFormCode,deductionAmount,sj);
+                    updateYdDeduction(targetFormCode,deductionAmount,totalTaxAmount);
                 }
                 }
             }
             }
 
 
@@ -1158,18 +1162,20 @@ public class SikuServiceImpl implements SikuService {
                         Double yhxje = UtilMap.getDouble(detail, "numberField_mniatky8");//已核销金额
                         Double yhxje = UtilMap.getDouble(detail, "numberField_mniatky8");//已核销金额
                         Double ythje = UtilMap.getDouble(detail, "numberField_mn4g182f");//已退回金额
                         Double ythje = UtilMap.getDouble(detail, "numberField_mn4g182f");//已退回金额
                         Double mksjsj = UtilMap.getDouble(detail, "numberField_mob8gv4p");//每刻实际税金
                         Double mksjsj = UtilMap.getDouble(detail, "numberField_mob8gv4p");//每刻实际税金
-                        Double ydsj = UtilMap.getDouble(detail, "numberField_mmsvi56x");//税金
+                        Double kdksj = UtilMap.getDouble(detail, "numberField_mmsvi56x");//可抵扣税金
                         Double ydcgje = UtilMap.getDouble(detail, "numberField_mkkmij5e");//采购金额
                         Double ydcgje = UtilMap.getDouble(detail, "numberField_mkkmij5e");//采购金额
 
 
                         detailMap.put("numberField_mniatky8",yhxje + deductionAmount);
                         detailMap.put("numberField_mniatky8",yhxje + deductionAmount);
                         detailMap.put("numberField_mob8gv4p",mksjsj + sj);//每刻实际税金
                         detailMap.put("numberField_mob8gv4p",mksjsj + sj);//每刻实际税金
 
 
-                        //若采购金额等于已核销金额+本次核销金额+已退回金额
-                        if (ydcgje == yhxje + deductionAmount + ythje){
-                            Double totalSj = UtilMap.getDouble(ydFormData, "numberField_mkkmij6k");//总税金
+                        Double totalSj = UtilMap.getDouble(ydFormData, "numberField_mkkmij6k");//总可抵扣税金
 
 
-                            updateFormData.put("numberField_mkkmij6k",totalSj - ydsj + sj);//总税金
-                            updateFormData.put("numberField_mob8gv4v",-ydsj + sj);//最新税金插值
+                        if (mksjsj > 0){
+                            updateFormData.put("numberField_mkkmij6k",totalSj + sj);//总可抵扣税金
+                            updateFormData.put("numberField_mob8gv4v",sj);//最新税金差值
+                        }else {
+                            updateFormData.put("numberField_mkkmij6k",totalSj - kdksj + sj);//总可抵扣税金
+                            updateFormData.put("numberField_mob8gv4v",-kdksj + sj);//最新税金差值
                         }
                         }
                     }
                     }
                     updateDetailList.add(detailMap);
                     updateDetailList.add(detailMap);
@@ -1184,18 +1190,20 @@ public class SikuServiceImpl implements SikuService {
                         Double yhxje = UtilMap.getDouble(detail, "numberField_mniatkya");//已核销金额
                         Double yhxje = UtilMap.getDouble(detail, "numberField_mniatkya");//已核销金额
                         Double ythje = UtilMap.getDouble(detail, "numberField_mn4g182g");//已退回金额
                         Double ythje = UtilMap.getDouble(detail, "numberField_mn4g182g");//已退回金额
                         Double mksjsj = UtilMap.getDouble(detail, "numberField_mob8gv4q");//每刻实际税金
                         Double mksjsj = UtilMap.getDouble(detail, "numberField_mob8gv4q");//每刻实际税金
-                        Double ydsj = UtilMap.getDouble(detail, "numberField_mn3zekbx");//税金
+                        Double kdksj = UtilMap.getDouble(detail, "numberField_mn3zekbx");//税金
                         Double ydcgje = UtilMap.getDouble(detail, "numberField_mkkmij6p");//采购金额
                         Double ydcgje = UtilMap.getDouble(detail, "numberField_mkkmij6p");//采购金额
 
 
                         detailMap.put("numberField_mniatkya",yhxje + deductionAmount);
                         detailMap.put("numberField_mniatkya",yhxje + deductionAmount);
                         detailMap.put("numberField_mob8gv4q",mksjsj + sj);//每刻实际税金
                         detailMap.put("numberField_mob8gv4q",mksjsj + sj);//每刻实际税金
 
 
-                        //若采购金额等于已核销金额+本次核销金额+已退回金额
-                        if (ydcgje == yhxje + deductionAmount + ythje){
-                            Double totalSj = UtilMap.getDouble(ydFormData, "numberField_mkkmij6k");//总税金
+                        Double totalSj = UtilMap.getDouble(ydFormData, "numberField_mkkmij6k");//总可抵扣税金
 
 
-                            updateFormData.put("numberField_mkkmij6k",totalSj - ydsj + sj);//总税金
-                            updateFormData.put("numberField_mob8gv4v",-ydsj + sj);//最新税金插值
+                        if (mksjsj > 0){
+                            updateFormData.put("numberField_mkkmij6k",totalSj + sj);//总可抵扣税金
+                            updateFormData.put("numberField_mob8gv4v",sj);//最新税金差值
+                        }else {
+                            updateFormData.put("numberField_mkkmij6k",totalSj - kdksj + sj);//总可抵扣税金
+                            updateFormData.put("numberField_mob8gv4v",-kdksj + sj);//最新税金差值
                         }
                         }
                     }
                     }
                     updateDetailList.add(detailMap);
                     updateDetailList.add(detailMap);
@@ -1230,19 +1238,22 @@ public class SikuServiceImpl implements SikuService {
                         Double yhxje = UtilMap.getDouble(detail, "numberField_mniatky8");//已核销金额
                         Double yhxje = UtilMap.getDouble(detail, "numberField_mniatky8");//已核销金额
                         Double ythje = UtilMap.getDouble(detail, "numberField_mn4g182f");//已退回金额
                         Double ythje = UtilMap.getDouble(detail, "numberField_mn4g182f");//已退回金额
                         Double mksjsj = UtilMap.getDouble(detail, "numberField_mob8gv4p");//每刻实际税金
                         Double mksjsj = UtilMap.getDouble(detail, "numberField_mob8gv4p");//每刻实际税金
-                        Double ydsj = UtilMap.getDouble(detail, "numberField_mmsvi56x");//税金
+                        Double kdksj = UtilMap.getDouble(detail, "numberField_mmsvi56x");//可抵扣税金
                         Double ydcgje = UtilMap.getDouble(detail, "numberField_mkkmij5e");//采购金额
                         Double ydcgje = UtilMap.getDouble(detail, "numberField_mkkmij5e");//采购金额
 
 
                         detailMap.put("numberField_mniatky8",yhxje + deductionAmount);
                         detailMap.put("numberField_mniatky8",yhxje + deductionAmount);
                         detailMap.put("numberField_mob8gv4p",mksjsj + sj);//每刻实际税金
                         detailMap.put("numberField_mob8gv4p",mksjsj + sj);//每刻实际税金
 
 
-                        //若采购金额等于已核销金额+本次核销金额+已退回金额
-                        if (ydcgje == yhxje + deductionAmount + ythje){
-                            Double totalSj = UtilMap.getDouble(ydFormData, "numberField_mkkmij6k");//总税金
+                        Double totalSj = UtilMap.getDouble(ydFormData, "numberField_mkkmij6k");//总可抵扣税金
 
 
-                            updateFormData.put("numberField_mkkmij6k",totalSj - ydsj + sj);//总税金
-                            updateFormData.put("numberField_mob8gv4v",-ydsj + sj);//最新税金插值
+                        if (mksjsj > 0){
+                            updateFormData.put("numberField_mkkmij6k",totalSj + sj);//总可抵扣税金
+                            updateFormData.put("numberField_mob8gv4v",sj);//最新税金差值
+                        }else {
+                            updateFormData.put("numberField_mkkmij6k",totalSj - kdksj + sj);//总可抵扣税金
+                            updateFormData.put("numberField_mob8gv4v",-kdksj + sj);//最新税金差值
                         }
                         }
+
                     }
                     }
                     updateDetailList.add(detailMap);
                     updateDetailList.add(detailMap);
                 }
                 }
@@ -1256,18 +1267,20 @@ public class SikuServiceImpl implements SikuService {
                         Double yhxje = UtilMap.getDouble(detail, "numberField_mniatkya");//已核销金额
                         Double yhxje = UtilMap.getDouble(detail, "numberField_mniatkya");//已核销金额
                         Double ythje = UtilMap.getDouble(detail, "numberField_mn4g182g");//已退回金额
                         Double ythje = UtilMap.getDouble(detail, "numberField_mn4g182g");//已退回金额
                         Double mksjsj = UtilMap.getDouble(detail, "numberField_mob8gv4q");//每刻实际税金
                         Double mksjsj = UtilMap.getDouble(detail, "numberField_mob8gv4q");//每刻实际税金
-                        Double ydsj = UtilMap.getDouble(detail, "numberField_mn3zekbx");//税金
+                        Double kdksj = UtilMap.getDouble(detail, "numberField_mn3zekbx");//可抵扣税金
                         Double ydcgje = UtilMap.getDouble(detail, "numberField_mkkmij6p");//采购金额
                         Double ydcgje = UtilMap.getDouble(detail, "numberField_mkkmij6p");//采购金额
 
 
                         detailMap.put("numberField_mniatkya",yhxje + deductionAmount);
                         detailMap.put("numberField_mniatkya",yhxje + deductionAmount);
                         detailMap.put("numberField_mob8gv4q",mksjsj + sj);//每刻实际税金
                         detailMap.put("numberField_mob8gv4q",mksjsj + sj);//每刻实际税金
 
 
-                        //若采购金额等于已核销金额+本次核销金额+已退回金额
-                        if (ydcgje == yhxje + deductionAmount + ythje){
-                            Double totalSj = UtilMap.getDouble(ydFormData, "numberField_mkkmij6k");//总税金
+                        Double totalSj = UtilMap.getDouble(ydFormData, "numberField_mkkmij6k");//总可抵扣税金
 
 
-                            updateFormData.put("numberField_mkkmij6k",totalSj - ydsj + sj);//总税金
-                            updateFormData.put("numberField_mob8gv4v",-ydsj + sj);//最新税金插值
+                        if (mksjsj > 0){
+                            updateFormData.put("numberField_mkkmij6k",totalSj + sj);//总可抵扣税金
+                            updateFormData.put("numberField_mob8gv4v",sj);//最新税金差值
+                        }else {
+                            updateFormData.put("numberField_mkkmij6k",totalSj - kdksj + sj);//总可抵扣税金
+                            updateFormData.put("numberField_mob8gv4v",-kdksj + sj);//最新税金差值
                         }
                         }
                     }
                     }
                     updateDetailList.add(detailMap);
                     updateDetailList.add(detailMap);