|
@@ -2,8 +2,10 @@ package com.rongwei.bscommon.sys.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.rongwei.bscommon.sys.dao.QcsMainCostDao;
|
|
|
+import com.rongwei.bscommon.sys.service.QcsColumnConfigService;
|
|
|
import com.rongwei.bscommon.sys.service.QcsMainCostService;
|
|
|
import com.rongwei.bscommon.sys.service.QcsMainDetailService;
|
|
|
+import com.rongwei.bsentity.domain.QcsColumnConfigDo;
|
|
|
import com.rongwei.bsentity.domain.QcsMainCostDo;
|
|
|
import com.rongwei.bsentity.domain.QcsMainDetailDo;
|
|
|
import com.rongwei.bsentity.domain.QcsSubjectConfigDo;
|
|
@@ -31,21 +33,27 @@ public class QcsMainCostServiceImpl extends ServiceImpl<QcsMainCostDao, QcsMainC
|
|
|
@Autowired
|
|
|
QcsMainDetailService qcsMainDetailService;
|
|
|
@Autowired
|
|
|
+ QcsColumnConfigService qcsColumnConfigService;
|
|
|
+ @Autowired
|
|
|
QcsMainCostDao qcsMainCostDao;
|
|
|
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public R setOtherCost(Map<String, String> params) {
|
|
|
String costId = params.get("formId");
|
|
|
+ String insertFlag = params.get("insertFlag");
|
|
|
BigDecimal qualitycosttotal = BigDecimal.ZERO;
|
|
|
|
|
|
//要创建的实例
|
|
|
List<QcsMainCostDo> qcsMainCostDoList = new ArrayList<>();
|
|
|
List<QcsMainDetailDo> qcsMainDetailDoList = new ArrayList<>();
|
|
|
+ List<QcsColumnConfigDo> qcsColumnConfigDoList = new ArrayList<>();
|
|
|
|
|
|
QcsMainCostDo qcsMainCostDo = qcsMainCostService.getById(costId);
|
|
|
Map<String, Object> detailMap = qcsMainCostDao.getAmountSum(costId);
|
|
|
- qcsMainCostDo.setCosttotal((BigDecimal) detailMap.get("AMOUNTSUM"));
|
|
|
+ if (detailMap != null) {
|
|
|
+ qcsMainCostDo.setCosttotal((BigDecimal) detailMap.get("AMOUNTSUM"));
|
|
|
+ }
|
|
|
if (qcsMainCostDo.getStatus().equals("已提交")) {
|
|
|
qualitycosttotal = qualitycosttotal.add(qcsMainCostDo.getCosttotal());
|
|
|
}
|
|
@@ -148,6 +156,28 @@ public class QcsMainCostServiceImpl extends ServiceImpl<QcsMainCostDao, QcsMainC
|
|
|
qcsMainCostDo4.setCosttype("4");
|
|
|
}
|
|
|
|
|
|
+ //内外部损失存字段初始化
|
|
|
+ if (insertFlag.equals("1")) {
|
|
|
+ List<QcsSubjectConfigDo> subjectConfigDos = new ArrayList<>();
|
|
|
+ if (qcsMainCostDo.getCosttype().equals("3")) {
|
|
|
+ subjectConfigDos = qcsSubjectConfigDos.stream().filter(s -> s.getSecsubject().equals("内部损失")).collect(Collectors.toList());
|
|
|
+ } else if (qcsMainCostDo.getCosttype().equals("4")) {
|
|
|
+ subjectConfigDos = qcsSubjectConfigDos.stream().filter(s -> s.getSecsubject().equals("外部损失")).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ int subjectno = 1;
|
|
|
+ for (QcsSubjectConfigDo subjectConfigDo : subjectConfigDos) {
|
|
|
+ QcsColumnConfigDo qcsColumnConfigDo = new QcsColumnConfigDo();
|
|
|
+ qcsColumnConfigDo.setId(SecurityUtil.getUUID());
|
|
|
+ qcsColumnConfigDo.setLossid(costId);
|
|
|
+ qcsColumnConfigDo.setThrsubject(subjectConfigDo.getThrsubject());
|
|
|
+ qcsColumnConfigDo.setFousubject(subjectConfigDo.getFousubject());
|
|
|
+ qcsColumnConfigDo.setSort(subjectConfigDo.getSort());
|
|
|
+ qcsColumnConfigDo.setSubjectno("SUBJECT" + subjectno);
|
|
|
+ qcsColumnConfigDoList.add(qcsColumnConfigDo);
|
|
|
+ subjectno++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if (qualitycosttotal.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
qcsMainCostDo1.setQualitycosttotal(qualitycosttotal);
|
|
|
qcsMainCostDo2.setQualitycosttotal(qualitycosttotal);
|
|
@@ -162,10 +192,14 @@ public class QcsMainCostServiceImpl extends ServiceImpl<QcsMainCostDao, QcsMainC
|
|
|
boolean bool1 = qcsMainCostService.updateById(qcsMainCostDo);
|
|
|
boolean bool2 = qcsMainCostService.saveOrUpdateBatch(qcsMainCostDoList);
|
|
|
boolean bool3 = true;
|
|
|
+ boolean bool4 = true;
|
|
|
if (qcsMainDetailDoList.size() > 0) {
|
|
|
bool3 = qcsMainDetailService.saveBatch(qcsMainDetailDoList);
|
|
|
}
|
|
|
- if (bool1 && bool2 && bool3) {
|
|
|
+ if (qcsColumnConfigDoList.size() > 0) {
|
|
|
+ bool4 = qcsColumnConfigService.saveBatch(qcsColumnConfigDoList);
|
|
|
+ }
|
|
|
+ if (bool1 && bool2 && bool3 && bool4) {
|
|
|
return R.ok();
|
|
|
} else {
|
|
|
return R.error();
|