|
|
@@ -1,9 +1,12 @@
|
|
|
|
|
|
package org.sky.scientific.service.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import io.swagger.v3.core.util.Json;
|
|
|
import org.sky.core.log.exception.ServiceException;
|
|
|
+import org.sky.scientific.pojo.dto.XmDTO;
|
|
|
import org.sky.scientific.pojo.entity.XmEntity;
|
|
|
import org.sky.scientific.pojo.vo.XmVO;
|
|
|
import org.sky.scientific.excel.XmExcel;
|
|
|
@@ -14,6 +17,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import org.sky.core.mp.base.BaseServiceImpl;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.List;
|
|
|
|
|
|
@@ -42,25 +46,52 @@ public class XmServiceImpl extends BaseServiceImpl<XmMapper, XmEntity> implement
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public boolean approval(XmEntity xm) {
|
|
|
+ public boolean approval(XmDTO xm) {
|
|
|
|
|
|
+ this.judgeXmmcAvailable(xm.getXmmc());
|
|
|
+
|
|
|
+ //检查项目名称是否重复(xm);
|
|
|
+ LambdaQueryWrapper<XmEntity> queryWrapper = Wrappers.<XmEntity>lambdaQuery().eq(XmEntity::getXmmc, xm.getXmmc());
|
|
|
+ if (baseMapper.selectCount(queryWrapper) > 0){
|
|
|
+ throw new ServiceException("研发项目名称已存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ queryWrapper = Wrappers.<XmEntity>lambdaQuery().eq(XmEntity::getXmbh, xm.getXmbh());
|
|
|
+ if (baseMapper.selectCount(queryWrapper) > 0){
|
|
|
+ throw new ServiceException("研发项目编号已存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ if(xm.getYearAmountList() != null && xm.getXmysze().floatValue() > 0){
|
|
|
+ double total = xm.getYearAmountList().stream().mapToDouble(t -> ((Float) t.get("amount"))).sum();
|
|
|
+ if(total != xm.getXmysze().doubleValue()){
|
|
|
+ throw new ServiceException("项目预算总额明细不对");
|
|
|
+ }
|
|
|
+ xm.setXmyszemx(JSON.toJSONString(xm.getYearAmountList()));
|
|
|
+ }
|
|
|
+
|
|
|
+ return this.save(xm);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean updateXm(XmEntity xm) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 判断项目名称是否有效
|
|
|
+ * @param xmmc
|
|
|
+ */
|
|
|
+ private void judgeXmmcAvailable(String xmmc){
|
|
|
//技改、技术改造、推广、打样、翻新、产业化、生产线、改造、年产、示范
|
|
|
List<String> errorWords = Arrays.asList("技改", "技术改造", "推广", "打样", "翻新", "产业化", "生产线", "改造", "年产", "示范");
|
|
|
int index = -1;
|
|
|
for (String errorWord : errorWords) {
|
|
|
- index = xm.getXmmc().indexOf(errorWord);
|
|
|
+ index = xmmc.indexOf(errorWord);
|
|
|
break;
|
|
|
}
|
|
|
if(index != -1){
|
|
|
throw new ServiceException("研发项目名称,不符合统计部门的命名要求!");
|
|
|
}
|
|
|
-
|
|
|
- //检查项目名称是否重复(xm);
|
|
|
- LambdaQueryWrapper<XmEntity> queryWrapper = Wrappers.<XmEntity>lambdaQuery().eq(XmEntity::getXmmc, xm.getXmmc());
|
|
|
- if (baseMapper.selectCount(queryWrapper) > 0){
|
|
|
- throw new ServiceException("研发项目名称已存在");
|
|
|
- }
|
|
|
- return this.save(xm);
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
}
|