|
@@ -18,9 +18,7 @@ import org.sky.scientific.mapper.XmMapper;
|
|
|
import org.sky.scientific.pojo.dto.XmCostDetailsDTO;
|
|
import org.sky.scientific.pojo.dto.XmCostDetailsDTO;
|
|
|
import org.sky.scientific.pojo.entity.SubjectEnterprise;
|
|
import org.sky.scientific.pojo.entity.SubjectEnterprise;
|
|
|
import org.sky.scientific.pojo.entity.XmCostDetailsEntity;
|
|
import org.sky.scientific.pojo.entity.XmCostDetailsEntity;
|
|
|
-import org.sky.scientific.pojo.vo.FinanceCostDetailVO;
|
|
|
|
|
-import org.sky.scientific.pojo.vo.FinanceCostItemVO;
|
|
|
|
|
-import org.sky.scientific.pojo.vo.FinanceCostSummary;
|
|
|
|
|
|
|
+import org.sky.scientific.pojo.vo.*;
|
|
|
import org.sky.scientific.service.IXmCostDetailsService;
|
|
import org.sky.scientific.service.IXmCostDetailsService;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
@@ -333,7 +331,94 @@ public class XmCostDetailsServiceImpl extends BaseServiceImpl<XmCostDetailsMappe
|
|
|
return page.setRecords(summaryList);
|
|
return page.setRecords(summaryList);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public static void judgeDate(Date date, String yearAndMonth) {
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<DeductionCostDetailVO> deductionCostDetail(XmCostDetailsDTO dto) {
|
|
|
|
|
+ if (Func.isBlank(dto.getYearAndMonth())) {
|
|
|
|
|
+ throw new ServiceException("参数yearAndMonth不能为空");
|
|
|
|
|
+ }
|
|
|
|
|
+ if(dto.getType()==null){
|
|
|
|
|
+ throw new ServiceException("参数type不能为空");
|
|
|
|
|
+ }
|
|
|
|
|
+ if(!Arrays.asList(1,2).contains(dto.getType())){
|
|
|
|
|
+ throw new ServiceException("参数type的值只能是1:费用化,2:资本化");
|
|
|
|
|
+ }
|
|
|
|
|
+ dto.setTenantId(SecureUtil.getTenantId());
|
|
|
|
|
+ List<DeductionCostDetailVO> list = baseMapper.deductionCostDetail(dto);
|
|
|
|
|
+ for (DeductionCostDetailVO tmp : list) {
|
|
|
|
|
+ List<DeductionCostItemVO> vos = tmp.getCostList();
|
|
|
|
|
+ for (DeductionCostItemVO vo : vos) {
|
|
|
|
|
+ if(vo.getAdSubjectEnable() == 0){
|
|
|
|
|
+ //四级科目 不是加计扣除研发费用科目,费用不归集
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ if(dto.getType()==1){
|
|
|
|
|
+ //费用化
|
|
|
|
|
+ if(Func.equals(vo.getL3Code(),"53010101")){
|
|
|
|
|
+ //人员人工费用
|
|
|
|
|
+ vo.setRyrgfy(vo.getAmount().doubleValue());
|
|
|
|
|
+ }else if(Func.equals(vo.getL3Code(),"53010102")){
|
|
|
|
|
+ //直接投入费用
|
|
|
|
|
+ vo.setZjtrfy(vo.getAmount().doubleValue());
|
|
|
|
|
+ }else if(Func.equals(vo.getL3Code(),"53010103")){
|
|
|
|
|
+ //折旧费用
|
|
|
|
|
+ vo.setZjfy(vo.getAmount().doubleValue());
|
|
|
|
|
+ }else if(Func.equals(vo.getL3Code(),"53010104")){
|
|
|
|
|
+ //无形资产摊销
|
|
|
|
|
+ vo.setWxzctx(vo.getAmount().doubleValue());
|
|
|
|
|
+ }else if(Arrays.asList("5301010501","5301010502","5301010602","5301010603").contains(vo.getL4Code())){
|
|
|
|
|
+ //新产品设计费等
|
|
|
|
|
+ //三级科目中的“设计费用”-新产品设计费,新工艺规程制定费;和"装备调试费用与试验费用"-新药研制的临床试验费,勘探开发的现场试验费;归集到新产品设计费等
|
|
|
|
|
+ vo.setXcpsjfd(vo.getAmount().doubleValue());
|
|
|
|
|
+ }else if(Func.equals(vo.getL3Code(),"53010108")){
|
|
|
|
|
+ //其他相关费用
|
|
|
|
|
+ vo.setQtxgfy(vo.getAmount().doubleValue());
|
|
|
|
|
+ }else if(Func.equals(vo.getL4Code(),"5301010701")){
|
|
|
|
|
+ //委托境内机构或个人进行研发活动所发生的费用
|
|
|
|
|
+ vo.setWtjnjgfy(vo.getAmount().doubleValue());
|
|
|
|
|
+ }else if(Func.equals(vo.getL4Code(),"5301010702")){
|
|
|
|
|
+ //委托境外机构进行研发活动所发生的费用
|
|
|
|
|
+ vo.setWtjwjgfy(vo.getAmount().doubleValue());
|
|
|
|
|
+ }else {
|
|
|
|
|
+ throw new ServiceException("费用归集出错啦");
|
|
|
|
|
+ }
|
|
|
|
|
+ }else if(dto.getType() == 2){
|
|
|
|
|
+ //资本化
|
|
|
|
|
+ if(Func.equals(vo.getL3Code(),"53010201")){
|
|
|
|
|
+ //人员人工费用
|
|
|
|
|
+ vo.setRyrgfy(vo.getAmount().doubleValue());
|
|
|
|
|
+ }else if(Func.equals(vo.getL3Code(),"53010202")){
|
|
|
|
|
+ //直接投入费用
|
|
|
|
|
+ vo.setZjtrfy(vo.getAmount().doubleValue());
|
|
|
|
|
+ }else if(Func.equals(vo.getL3Code(),"53010203")){
|
|
|
|
|
+ //折旧费用
|
|
|
|
|
+ vo.setZjfy(vo.getAmount().doubleValue());
|
|
|
|
|
+ }else if(Func.equals(vo.getL3Code(),"53010204")){
|
|
|
|
|
+ //无形资产摊销
|
|
|
|
|
+ vo.setWxzctx(vo.getAmount().doubleValue());
|
|
|
|
|
+ }else if(Arrays.asList("5301020501","5301020502","5301020602","5301020603").contains(vo.getL4Code())){
|
|
|
|
|
+ //新产品设计费等
|
|
|
|
|
+ //三级科目中的“设计费用”-新产品设计费,新工艺规程制定费;和"装备调试费用与试验费用"-新药研制的临床试验费,勘探开发的现场试验费;归集到新产品设计费等
|
|
|
|
|
+ vo.setXcpsjfd(vo.getAmount().doubleValue());
|
|
|
|
|
+ }else if(Func.equals(vo.getL3Code(),"53010208")){
|
|
|
|
|
+ //其他相关费用
|
|
|
|
|
+ vo.setQtxgfy(vo.getAmount().doubleValue());
|
|
|
|
|
+ }else if(Func.equals(vo.getL4Code(),"5301020701")){
|
|
|
|
|
+ //委托境内机构或个人进行研发活动所发生的费用
|
|
|
|
|
+ vo.setWtjnjgfy(vo.getAmount().doubleValue());
|
|
|
|
|
+ }else if(Func.equals(vo.getL4Code(),"5301020702")){
|
|
|
|
|
+ //委托境外机构进行研发活动所发生的费用
|
|
|
|
|
+ vo.setWtjwjgfy(vo.getAmount().doubleValue());
|
|
|
|
|
+ }else {
|
|
|
|
|
+ throw new ServiceException("费用归集出错啦");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return list;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public static void judgeDate(Date date, String yearAndMonth) {
|
|
|
//日期,必须时当月日期
|
|
//日期,必须时当月日期
|
|
|
if (date != null) {
|
|
if (date != null) {
|
|
|
String format = DateUtil.format(date, DateUtil.PATTERN_YYYYMM);
|
|
String format = DateUtil.format(date, DateUtil.PATTERN_YYYYMM);
|