|
|
@@ -100,11 +100,13 @@ public class XmServiceImpl extends BaseServiceImpl<XmMapper, XmEntity> implement
|
|
|
selDate = DateUtil.parse(dateStr, DateUtil.PATTERN_YYYYMMDD);
|
|
|
} else if (dateStr.length() == 6) {
|
|
|
selDate = DateUtil.parse(dateStr, DateUtil.PATTERN_YYYYMM);
|
|
|
+ } else if (dateStr.length() == 10 && dateStr.split("-").length == 3) {
|
|
|
+ selDate = DateUtil.parse(dateStr, DateUtil.PATTERN_YYYY_MM_DD);
|
|
|
}
|
|
|
}
|
|
|
Integer status = byXmId.getInteger("status");
|
|
|
- Date xmjssj = byXmId.getDate("xmjssj");
|
|
|
- if (Func.equals(status, XmStatusEnum.已结题.getCode()) || xmjssj.compareTo(selDate) < 0) {
|
|
|
+ Date xmjssj = byXmId.getDate("xmjssj");
|
|
|
+ if (Func.equals(status, XmStatusEnum.已结题.getCode()) || xmjssj.compareTo(selDate) < 0) {
|
|
|
if (isThrowEx) {
|
|
|
String xmbh = byXmId.getString("xmbh");
|
|
|
throw new ServiceException("项目【" + xmbh + "】已结题/已结束,不可操作");
|
|
|
@@ -147,7 +149,7 @@ public class XmServiceImpl extends BaseServiceImpl<XmMapper, XmEntity> implement
|
|
|
if (Func.isNotEmpty(validate)) {
|
|
|
throw new ServiceException(String.join("\n", validate));
|
|
|
}
|
|
|
- if (xm.getXmyszemx() != null) {
|
|
|
+ if (xm.getXmyszemx() != null) {
|
|
|
List<JSONObject> list = JSONObject.parseArray(xm.getXmyszemx(), JSONObject.class);
|
|
|
BigDecimal total = list.stream().map(item -> item.getBigDecimal("amount")).reduce(BigDecimal.valueOf(0.00), BigDecimal::add).setScale(2, RoundingMode.UP);
|
|
|
if (total.compareTo(BigDecimal.ZERO) <= 0) {
|
|
|
@@ -260,7 +262,7 @@ public class XmServiceImpl extends BaseServiceImpl<XmMapper, XmEntity> implement
|
|
|
if (xmVO.getQzqygj() == null || xmVO.getQzqygj().compareTo(BigDecimal.ZERO) <= 0 || xmVO.getXmysze() == null || xmVO.getXmysze().compareTo(BigDecimal.ZERO) <= 0) {
|
|
|
xmVO.setZyswcl(BigDecimal.valueOf(0.00));
|
|
|
} else {
|
|
|
- xmVO.setZyswcl(xmVO.getQzqygj().multiply(BigDecimal.valueOf(100)).divide(xmVO.getXmysze(), 2, RoundingMode.HALF_UP));
|
|
|
+ xmVO.setZyswcl(xmVO.getQzqygj().multiply(BigDecimal.valueOf(100)).divide(xmVO.getXmysze(), 2, RoundingMode.HALF_UP));
|
|
|
}
|
|
|
|
|
|
//本年度已归集研发费用(万元)
|
|
|
@@ -339,20 +341,20 @@ public class XmServiceImpl extends BaseServiceImpl<XmMapper, XmEntity> implement
|
|
|
vo.setWtwbyjkffyRate(0.00);
|
|
|
vo.setQtfyRate(0.00);
|
|
|
} else {
|
|
|
- vo.setRyrgfyRate(vo.getRyrgfy().divide(vo.getTotal(),2, RoundingMode.HALF_UP).doubleValue());
|
|
|
- vo.setZjtrfyRate(vo.getZjtrfy().divide(vo.getTotal(),2, RoundingMode.HALF_UP).doubleValue());
|
|
|
- vo.setZjfyycqdtfyRate(vo.getZjfyycqdtfy().divide(vo.getTotal(),2, RoundingMode.HALF_UP).doubleValue());
|
|
|
- vo.setWxzctxfyRate(vo.getWxzctxfy().divide(vo.getTotal(),2, RoundingMode.HALF_UP).doubleValue());
|
|
|
- vo.setSjfyRate(vo.getSjfy().divide(vo.getTotal(),2, RoundingMode.HALF_UP).doubleValue());
|
|
|
- vo.setZbtsysyfyRate(vo.getZbtsysyfy().divide(vo.getTotal(),2, RoundingMode.HALF_UP).doubleValue());
|
|
|
- vo.setWtwbyjkffyRate(vo.getWtwbyjkffy().divide(vo.getTotal(),2, RoundingMode.HALF_UP).doubleValue());
|
|
|
- vo.setQtfyRate(vo.getQtfy().divide(vo.getTotal(),2, RoundingMode.HALF_UP).doubleValue());
|
|
|
+ vo.setRyrgfyRate(vo.getRyrgfy().divide(vo.getTotal(), 2, RoundingMode.HALF_UP).doubleValue());
|
|
|
+ vo.setZjtrfyRate(vo.getZjtrfy().divide(vo.getTotal(), 2, RoundingMode.HALF_UP).doubleValue());
|
|
|
+ vo.setZjfyycqdtfyRate(vo.getZjfyycqdtfy().divide(vo.getTotal(), 2, RoundingMode.HALF_UP).doubleValue());
|
|
|
+ vo.setWxzctxfyRate(vo.getWxzctxfy().divide(vo.getTotal(), 2, RoundingMode.HALF_UP).doubleValue());
|
|
|
+ vo.setSjfyRate(vo.getSjfy().divide(vo.getTotal(), 2, RoundingMode.HALF_UP).doubleValue());
|
|
|
+ vo.setZbtsysyfyRate(vo.getZbtsysyfy().divide(vo.getTotal(), 2, RoundingMode.HALF_UP).doubleValue());
|
|
|
+ vo.setWtwbyjkffyRate(vo.getWtwbyjkffy().divide(vo.getTotal(), 2, RoundingMode.HALF_UP).doubleValue());
|
|
|
+ vo.setQtfyRate(vo.getQtfy().divide(vo.getTotal(), 2, RoundingMode.HALF_UP).doubleValue());
|
|
|
}
|
|
|
|
|
|
- BigDecimal totalRate = BigDecimal.ZERO;
|
|
|
- if(StringUtil.isNotBlank(vo.getXmyszemx())){
|
|
|
- BigDecimal temp = JSONObject.parseArray(vo.getXmyszemx(), JSONObject.class).stream().map(item -> item.getBigDecimal("amount")).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(4, RoundingMode.UP);
|
|
|
- totalRate = vo.getTotal().divide(BigDecimal.valueOf(10000L)).divide(temp,4, RoundingMode.UP).multiply(BigDecimal.valueOf(100)) ;
|
|
|
+ BigDecimal totalRate = BigDecimal.ZERO;
|
|
|
+ if (StringUtil.isNotBlank(vo.getXmyszemx())) {
|
|
|
+ BigDecimal temp = JSONObject.parseArray(vo.getXmyszemx(), JSONObject.class).stream().map(item -> item.getBigDecimal("amount")).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(4, RoundingMode.UP);
|
|
|
+ totalRate = vo.getTotal().divide(BigDecimal.valueOf(10000L)).divide(temp, 4, RoundingMode.UP).multiply(BigDecimal.valueOf(100));
|
|
|
}
|
|
|
vo.setTotalRate(Math.min(totalRate.doubleValue(), 100.0));
|
|
|
vo.setXmsqdw(departmentMapper.getFullNameById(vo.getXmsqdwid()));
|
|
|
@@ -374,14 +376,14 @@ public class XmServiceImpl extends BaseServiceImpl<XmMapper, XmEntity> implement
|
|
|
vo.setQtfy(vo.getQtfy().divide(BigDecimal.valueOf(10000L), 4, RoundingMode.UP));
|
|
|
vo.setTotal(vo.getTotal().divide(BigDecimal.valueOf(10000L), 4, RoundingMode.UP));
|
|
|
|
|
|
- vo.setRyrgfyRate(vo.getRyrgfyRate()*100.00);
|
|
|
- vo.setZjtrfyRate(vo.getZjtrfyRate()*100.00);
|
|
|
- vo.setZjfyycqdtfyRate(vo.getZjfyycqdtfyRate()*100.00);
|
|
|
- vo.setWxzctxfyRate(vo.getWxzctxfyRate()*100.00);
|
|
|
- vo.setSjfyRate(vo.getSjfyRate()*100.00);
|
|
|
- vo.setZbtsysyfyRate(vo.getZbtsysyfyRate()*100.00);
|
|
|
- vo.setWtwbyjkffyRate(vo.getWtwbyjkffyRate()*100.00);
|
|
|
- vo.setQtfyRate(vo.getQtfyRate()*100.00);
|
|
|
+ vo.setRyrgfyRate(vo.getRyrgfyRate() * 100.00);
|
|
|
+ vo.setZjtrfyRate(vo.getZjtrfyRate() * 100.00);
|
|
|
+ vo.setZjfyycqdtfyRate(vo.getZjfyycqdtfyRate() * 100.00);
|
|
|
+ vo.setWxzctxfyRate(vo.getWxzctxfyRate() * 100.00);
|
|
|
+ vo.setSjfyRate(vo.getSjfyRate() * 100.00);
|
|
|
+ vo.setZbtsysyfyRate(vo.getZbtsysyfyRate() * 100.00);
|
|
|
+ vo.setWtwbyjkffyRate(vo.getWtwbyjkffyRate() * 100.00);
|
|
|
+ vo.setQtfyRate(vo.getQtfyRate() * 100.00);
|
|
|
|
|
|
vo.setXmkssjStr(Func.notNull(vo.getXmkssj()) ? DateUtil.format(vo.getXmkssj(), "yyyy年MM月dd日") : null);
|
|
|
vo.setXmjssjStr(Func.notNull(vo.getXmjssj()) ? DateUtil.format(vo.getXmjssj(), "yyyy年MM月dd日") : null);
|
|
|
@@ -460,7 +462,7 @@ public class XmServiceImpl extends BaseServiceImpl<XmMapper, XmEntity> implement
|
|
|
List<String> errorWords = Arrays.asList("技改", "技术改造", "推广", "打样", "翻新", "产业化", "生产线", "改造", "年产", "示范");
|
|
|
//xmmc包含errorWords,则报错
|
|
|
for (String errorWord : errorWords) {
|
|
|
- if(xmmc.contains(errorWord)){
|
|
|
+ if (xmmc.contains(errorWord)) {
|
|
|
throw new ServiceException("研发项目名称,不符合统计部门的命名要求!");
|
|
|
}
|
|
|
}
|