|
|
@@ -2,22 +2,21 @@
|
|
|
package org.sky.scientific.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
-import io.swagger.v3.core.util.Json;
|
|
|
+import jakarta.annotation.Resource;
|
|
|
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.core.mp.base.BaseServiceImpl;
|
|
|
import org.sky.scientific.excel.XmExcel;
|
|
|
-import org.sky.scientific.mapper.XmMapper;
|
|
|
+import org.sky.scientific.mapper.*;
|
|
|
+import org.sky.scientific.pojo.dto.XmDTO;
|
|
|
+import org.sky.scientific.pojo.entity.*;
|
|
|
+import org.sky.scientific.pojo.vo.XmSummary;
|
|
|
import org.sky.scientific.service.IXmService;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-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;
|
|
|
|
|
|
@@ -30,11 +29,23 @@ import java.util.List;
|
|
|
@Service
|
|
|
public class XmServiceImpl extends BaseServiceImpl<XmMapper, XmEntity> implements IXmService {
|
|
|
|
|
|
- @Override
|
|
|
- public IPage<XmVO> selectXmPage(IPage<XmVO> page, XmVO xm) {
|
|
|
- return page.setRecords(baseMapper.selectXmPage(page, xm));
|
|
|
- }
|
|
|
-
|
|
|
+ @Resource
|
|
|
+ private TechnicianMapper technicianMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private XmJtbMapper jtbMapper;
|
|
|
+ @Resource
|
|
|
+ private XmJdxbgMapper jdxbgMapper;
|
|
|
+ @Resource
|
|
|
+ private CgZlMapper cgZlMapper;
|
|
|
+ @Resource
|
|
|
+ private CgRjzzqMapper cgRjzzqMapper;
|
|
|
+ @Resource
|
|
|
+ private CgJsbzMapper cgJsbzMapper;
|
|
|
+ @Resource
|
|
|
+ private CgQtMapper cgQtMapper;
|
|
|
+ @Resource
|
|
|
+ private CgKylwMapper cgKylwMapper;
|
|
|
|
|
|
@Override
|
|
|
public List<XmExcel> exportXm(Wrapper<XmEntity> queryWrapper) {
|
|
|
@@ -45,43 +56,71 @@ public class XmServiceImpl extends BaseServiceImpl<XmMapper, XmEntity> implement
|
|
|
return xmList;
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public boolean approval(XmDTO xm) {
|
|
|
+ @Override
|
|
|
+ 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){
|
|
|
+ if (baseMapper.selectCount(queryWrapper) > 0) {
|
|
|
throw new ServiceException("研发项目名称已存在");
|
|
|
}
|
|
|
|
|
|
queryWrapper = Wrappers.<XmEntity>lambdaQuery().eq(XmEntity::getXmbh, xm.getXmbh());
|
|
|
- if (baseMapper.selectCount(queryWrapper) > 0){
|
|
|
+ if (baseMapper.selectCount(queryWrapper) > 0) {
|
|
|
throw new ServiceException("研发项目编号已存在");
|
|
|
}
|
|
|
|
|
|
- if(xm.getYearAmountList() != null && xm.getXmysze().floatValue() > 0){
|
|
|
+ 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()){
|
|
|
+ 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;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public IPage<XmSummary> summaryPage(IPage<XmSummary> page, XmDTO xm) {
|
|
|
+ List<XmSummary> xmList = baseMapper.summaryPage(page, xm);
|
|
|
+ for (XmSummary xmVO : xmList) {
|
|
|
+ xmVO.setXmfzrxm(technicianMapper.selectLastedOneByTechnicianId(xmVO.getXmfzr()).getName());
|
|
|
+ //立项报告
|
|
|
+ xmVO.setLxbgList(null);
|
|
|
+ //阶段性报告
|
|
|
+ xmVO.setJdxbgList(jdxbgMapper.selectList(Wrappers.<XmJdxbgEntity>lambdaQuery().eq(XmJdxbgEntity::getXmId, xmVO.getId())));
|
|
|
+ //验收报告
|
|
|
+ xmVO.setYsbgList(jtbMapper.selectList(Wrappers.<XmJtbEntity>lambdaQuery().eq(XmJtbEntity::getXmId, xmVO.getId()).isNotNull(XmJtbEntity::getYsbg)));
|
|
|
+ //发明专利
|
|
|
+ xmVO.setFmzlList(cgZlMapper.selectList(Wrappers.<CgZlEntity>lambdaQuery().eq(CgZlEntity::getXmbh, xmVO.getXmbh()).eq(CgZlEntity::getZllx, "发明专利")));
|
|
|
+ //实用新型专利
|
|
|
+ xmVO.setSyxxzlList(cgZlMapper.selectList(Wrappers.<CgZlEntity>lambdaQuery().eq(CgZlEntity::getXmbh, xmVO.getXmbh()).eq(CgZlEntity::getZllx, "实用新型专利")));
|
|
|
+ //软著
|
|
|
+ xmVO.setRzList(cgRjzzqMapper.selectList(Wrappers.<CgRjzzqEntity>lambdaQuery().eq(CgRjzzqEntity::getXmbh, xmVO.getXmbh())));
|
|
|
+ //标准
|
|
|
+ xmVO.setBzList(cgJsbzMapper.selectList(Wrappers.<CgJsbzEntity>lambdaQuery().eq(CgJsbzEntity::getXmbh, xmVO.getXmbh())));
|
|
|
+ //论文
|
|
|
+ xmVO.setLwList(cgKylwMapper.selectList(Wrappers.<CgKylwEntity>lambdaQuery().eq(CgKylwEntity::getXmbh, xmVO.getXmbh())));
|
|
|
+ //其他
|
|
|
+ xmVO.setQtList(cgQtMapper.selectList(Wrappers.<CgQtEntity>lambdaQuery().eq(CgQtEntity::getXmbh, xmVO.getXmbh())));
|
|
|
+ }
|
|
|
+ return page.setRecords(xmList);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 判断项目名称是否有效
|
|
|
+ *
|
|
|
* @param xmmc
|
|
|
*/
|
|
|
- private void judgeXmmcAvailable(String xmmc){
|
|
|
+ private void judgeXmmcAvailable(String xmmc) {
|
|
|
//技改、技术改造、推广、打样、翻新、产业化、生产线、改造、年产、示范
|
|
|
List<String> errorWords = Arrays.asList("技改", "技术改造", "推广", "打样", "翻新", "产业化", "生产线", "改造", "年产", "示范");
|
|
|
int index = -1;
|
|
|
@@ -89,7 +128,7 @@ public class XmServiceImpl extends BaseServiceImpl<XmMapper, XmEntity> implement
|
|
|
index = xmmc.indexOf(errorWord);
|
|
|
break;
|
|
|
}
|
|
|
- if(index != -1){
|
|
|
+ if (index != -1) {
|
|
|
throw new ServiceException("研发项目名称,不符合统计部门的命名要求!");
|
|
|
}
|
|
|
}
|