|
@@ -17,10 +17,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
@@ -43,6 +40,7 @@ public class QcsMainCostServiceImpl extends ServiceImpl<QcsMainCostDao, QcsMainC
|
|
|
public R setOtherCost(Map<String, String> params) {
|
|
|
String costId = params.get("formId");
|
|
|
String insertFlag = params.get("insertFlag");
|
|
|
+ String tjFlag = params.get("tjFlag");
|
|
|
BigDecimal qualitycosttotal = BigDecimal.ZERO;
|
|
|
|
|
|
//要创建的实例
|
|
@@ -54,9 +52,10 @@ public class QcsMainCostServiceImpl extends ServiceImpl<QcsMainCostDao, QcsMainC
|
|
|
QcsMainCostDo qcsMainCostDo = qcsMainCostService.getById(costId);
|
|
|
Map<String, Object> detailMap = new HashMap<>();
|
|
|
List<QcsLossDetailDo> qcsLossDetailDos = new ArrayList<>();
|
|
|
- if (qcsMainCostDo.getCosttype().equals("1") || qcsMainCostDo.getCosttype().equals("2")) {
|
|
|
+ String costType = qcsMainCostDo.getCosttype();
|
|
|
+ if (costType.equals("1") || costType.equals("2")) {
|
|
|
detailMap = qcsMainCostDao.getAmountSum(costId);
|
|
|
- } else if (qcsMainCostDo.getCosttype().equals("3") || qcsMainCostDo.getCosttype().equals("4")) {
|
|
|
+ } else if (costType.equals("3") || costType.equals("4")) {
|
|
|
qcsLossDetailDos = qcsMainCostDao.getCostSum(costId);
|
|
|
}
|
|
|
|
|
@@ -137,6 +136,7 @@ public class QcsMainCostServiceImpl extends ServiceImpl<QcsMainCostDao, QcsMainC
|
|
|
if (qcsMainCostDo3 != null) {
|
|
|
if (qcsMainCostDo3.getId().equals(costId) && qcsLossDetailDos.size() > 0) {
|
|
|
BigDecimal allCostTotal = BigDecimal.ZERO;
|
|
|
+ Date submitDate = new Date();
|
|
|
for (QcsLossDetailDo lossDetailDo : qcsLossDetailDos) {
|
|
|
BigDecimal costTotal = sumCostTotal(lossDetailDo);
|
|
|
if (costTotal.compareTo(BigDecimal.ZERO) > 0) {
|
|
@@ -146,6 +146,10 @@ public class QcsMainCostServiceImpl extends ServiceImpl<QcsMainCostDao, QcsMainC
|
|
|
if (lossDetailDo.getSubmitdate() != null) {
|
|
|
qualitycosttotal = qualitycosttotal.add(costTotal);
|
|
|
} else {
|
|
|
+ if (tjFlag.equals("1")) {
|
|
|
+ qualitycosttotal = qualitycosttotal.add(costTotal);
|
|
|
+ lossDetailDo.setSubmitdate(submitDate);
|
|
|
+ }
|
|
|
qcsLossDetailDoList.add(lossDetailDo);
|
|
|
}
|
|
|
}
|
|
@@ -179,6 +183,7 @@ public class QcsMainCostServiceImpl extends ServiceImpl<QcsMainCostDao, QcsMainC
|
|
|
BigDecimal allCostTotal = BigDecimal.ZERO;
|
|
|
for (QcsLossDetailDo lossDetailDo : qcsLossDetailDos) {
|
|
|
BigDecimal costTotal = sumCostTotal(lossDetailDo);
|
|
|
+ Date submitDate = new Date();
|
|
|
if (costTotal.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
lossDetailDo.setTotalcost(costTotal);
|
|
|
allCostTotal = allCostTotal.add(costTotal);
|
|
@@ -186,6 +191,10 @@ public class QcsMainCostServiceImpl extends ServiceImpl<QcsMainCostDao, QcsMainC
|
|
|
if (lossDetailDo.getSubmitdate() != null) {
|
|
|
qualitycosttotal = qualitycosttotal.add(costTotal);
|
|
|
} else {
|
|
|
+ if (tjFlag.equals("1")) {
|
|
|
+ qualitycosttotal = qualitycosttotal.add(costTotal);
|
|
|
+ lossDetailDo.setSubmitdate(submitDate);
|
|
|
+ }
|
|
|
qcsLossDetailDoList.add(lossDetailDo);
|
|
|
}
|
|
|
}
|
|
@@ -215,9 +224,9 @@ public class QcsMainCostServiceImpl extends ServiceImpl<QcsMainCostDao, QcsMainC
|
|
|
//内外部损失存字段初始化
|
|
|
if (insertFlag.equals("1")) {
|
|
|
List<QcsSubjectConfigDo> subjectConfigDos = new ArrayList<>();
|
|
|
- if (qcsMainCostDo.getCosttype().equals("3")) {
|
|
|
+ if (costType.equals("3")) {
|
|
|
subjectConfigDos = qcsSubjectConfigDos.stream().filter(s -> s.getSecsubject().equals("内部损失")).collect(Collectors.toList());
|
|
|
- } else if (qcsMainCostDo.getCosttype().equals("4")) {
|
|
|
+ } else if (costType.equals("4")) {
|
|
|
subjectConfigDos = qcsSubjectConfigDos.stream().filter(s -> s.getSecsubject().equals("外部损失")).collect(Collectors.toList());
|
|
|
}
|
|
|
int subjectno = 1;
|