| | |
| | | import com.ruoyi.project.service.IServiceFunddetailService; |
| | | import com.ruoyi.project.service.IServiceFunddetailSharedService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.ObjectUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | |
| | | if (serviceFund.getUploadtime() != null) { |
| | | wrappers.eq(ServiceFund::getUploadtime, serviceFund.getUploadtime()); |
| | | } |
| | | if (serviceFund.getFlowlevel() != null) { |
| | | wrappers.eq(ServiceFund::getFlowlevel, serviceFund.getFlowlevel()); |
| | | } |
| | | return this.list(wrappers); |
| | | } |
| | | |
| | |
| | | //数据发送给财务 |
| | | uploadOAFileAndUpdateDb(serviceFunddetailShareds.get(i)); |
| | | } |
| | | boolean result = detailSharedService.saveBatch(serviceFunddetailShareds); |
| | | boolean result = false; |
| | | for (ServiceFunddetailShared serviceFunddetailShared : serviceFunddetailShareds) { |
| | | if (ObjectUtils.isNotEmpty(serviceFunddetailShared)) { |
| | | result = detailSharedService.save(serviceFunddetailShared); |
| | | } else { |
| | | log.info("serviceFunddetailShared为空了!!!"); |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<SpFinancialExpensesFundOut> getListBypower(String PAUSERNO, Integer PAFUNDTYPE, String PAAPPLICANT, String PAAPPLICATIONBEGTIME, String PAAPPLICATIONENDTIME, String PADEPARTMENT, Integer CHECKFLAG, Integer APPLYTYPE) { |
| | | return serviceFundMapper.getListBypower(PAUSERNO, PAFUNDTYPE, PAAPPLICANT, PAAPPLICATIONBEGTIME, PAAPPLICATIONENDTIME, PADEPARTMENT, CHECKFLAG, APPLYTYPE); |
| | | public List<SpFinancialExpensesFundOut> getListBypower(String PAUSERNO, Integer PAFUNDTYPE, String PAAPPLICANT, String PAAPPLICATIONBEGTIME, String PAAPPLICATIONENDTIME, String PADEPARTMENT, Integer CHECKFLAG, Integer APPLYTYPE,Integer CHECKSTATUS) { |
| | | return serviceFundMapper.getListBypower(PAUSERNO, PAFUNDTYPE, PAAPPLICANT, PAAPPLICATIONBEGTIME, PAAPPLICATIONENDTIME, PADEPARTMENT, CHECKFLAG, APPLYTYPE,CHECKSTATUS); |
| | | } |
| | | |
| | | @Override |
| | |
| | | @Transactional |
| | | public Long addOrUpdateNew(ServiceFundVO serviceFundVO) { |
| | | Long id = null; |
| | | if (serviceFundVO.getId() == null) { |
| | | save(serviceFundVO); |
| | | id = serviceFundVO.getId(); |
| | | } else { |
| | | updateById(serviceFundVO); |
| | | id = serviceFundVO.getId(); |
| | | } |
| | | //将数据保存到fund表 |
| | | id = saveFund(serviceFundVO); |
| | | |
| | | List<ServiceFunddetailVO> serviceFunddetails = serviceFundVO.getServiceFunddetails(); |
| | | if (CollectionUtils.isEmpty(serviceFunddetails)) { |
| | | System.out.println("serviceFunddetails为空喽"); |
| | | return null; |
| | | } |
| | | // 用于记录税前、税后的总和 |
| | | double taxBefore = 0.0; |
| | | double taxAfter = 0.0; |
| | | |
| | | // 保存详情数据 |
| | | for (ServiceFunddetailVO serviceFunddetailVO : serviceFunddetails) { |
| | | serviceFunddetailVO.setFundid(id); |
| | | //將附件转成json |
| | | if (!CollectionUtils.isEmpty(serviceFunddetailVO.getAnnexfilesList())) { |
| | | serviceFunddetailVO.setAnnexfiles(JSON.toJSONString(serviceFunddetailVO.getAnnexfilesList())); |
| | | } |
| | | if (serviceFunddetailVO.getTaxedamount() != null && serviceFunddetailVO.getAmount() != null && serviceFunddetailVO.getTaxedamount() != 0.0 && serviceFunddetailVO.getAmount() != 0.0) { |
| | | // 税前税后都不为空 |
| | | ServiceFunddetail serviceFunddetail = DtoConversionUtils.sourceToTarget(serviceFunddetailVO, ServiceFunddetail.class); |
| | | if (serviceFunddetailVO.getId() == null) { |
| | | serviceFunddetailService.save(serviceFunddetail); |
| | | } else { |
| | | serviceFunddetailService.updateById(serviceFunddetail); |
| | | } |
| | | //计算税金 |
| | | if (serviceFunddetail.getAmount() != null) { |
| | | taxBefore = taxBefore + serviceFunddetail.getAmount(); |
| | | } |
| | | if (serviceFunddetail.getTaxedamount() != null) { |
| | | taxAfter = taxAfter + serviceFunddetail.getTaxedamount(); |
| | | } |
| | | continue; |
| | | } else if (serviceFunddetailVO.getTaxedamount() != null && serviceFunddetailVO.getTaxedamount() != 0.0) { |
| | | // 税后求税前,如果是专家费申请 或 伦理专家费申请 才会计算税前税后 |
| | | if (StringUtils.isNotEmpty(serviceFundVO.getApplytype()) && serviceFundVO.getApplytype().equals("1") || serviceFundVO.getApplytype().equals("2")) { |
| | | Double taxationBefore = Double.valueOf(TaxtUtils.getTaxationBefore(BigDecimal.valueOf(serviceFunddetailVO.getTaxedamount()))); |
| | | // 税金 |
| | | String taxation = TaxtUtils.getTaxation(BigDecimal.valueOf(taxationBefore)); |
| | | serviceFunddetailVO.setAmount(Double.valueOf(taxationBefore)); |
| | | serviceFunddetailVO.setTaxamount(Double.parseDouble(taxation)); |
| | | } |
| | | } else if (serviceFunddetailVO.getAmount() != null && serviceFunddetailVO.getAmount() != 0.0) { |
| | | // 税前求税后,如果是专家费申请 或 伦理专家费申请 才会计算税前税后 |
| | | if (StringUtils.isNotEmpty(serviceFundVO.getApplytype()) && serviceFundVO.getApplytype().equals("1") || serviceFundVO.getApplytype().equals("2")) { |
| | | double tax = Double.parseDouble(TaxtUtils.getTaxation(BigDecimal.valueOf(serviceFunddetailVO.getAmount()))); |
| | | BigDecimal taxAfterMoney = BigDecimal.valueOf(serviceFunddetailVO.getAmount()).subtract(BigDecimal.valueOf(tax)); |
| | | serviceFunddetailVO.setTaxamount(tax); |
| | | serviceFunddetailVO.setTaxedamount(taxAfterMoney.doubleValue()); |
| | | } |
| | | if (!CollectionUtils.isEmpty(serviceFunddetailVO.getInvoiceFilesList())) { |
| | | serviceFunddetailVO.setInvoiceFiles(JSON.toJSONString(serviceFunddetailVO.getInvoiceFilesList())); |
| | | } |
| | | |
| | | //根据id判断是新增还是修改 |
| | | ServiceFunddetail serviceFunddetail = DtoConversionUtils.sourceToTarget(serviceFunddetailVO, ServiceFunddetail.class); |
| | | |
| | | if (serviceFunddetailVO.getId() == null) { |
| | | serviceFunddetailService.save(serviceFunddetail); |
| | | } else { |
| | | serviceFunddetailService.updateById(serviceFunddetail); |
| | | } |
| | | // if (serviceFundVO.getApplytype().equals("1") || serviceFundVO.getApplytype().equals("2")) { |
| | | //如果是专家费申请 或 伦理专家费申请 才会计算税前税后 |
| | | if (serviceFunddetail.getAmount() != null) { |
| | | taxBefore = taxBefore + serviceFunddetail.getAmount(); |
| | | } |
| | | if (serviceFunddetail.getTaxedamount() != null) { |
| | | taxAfter = taxAfter + serviceFunddetail.getTaxedamount(); |
| | | } |
| | | } |
| | | //将税前、税后金额更新到fund表中 |
| | | serviceFundVO.setPretaxcost(taxBefore); |
| | | serviceFundVO.setTaxedcost(taxAfter); |
| | | updateById(serviceFundVO); |
| | | |
| | | return id; |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, Long> performance(ServiceFundVO serviceFundVO) { |
| | | Long id = null; |
| | | //将数据保存到fund表 |
| | | id = saveFund(serviceFundVO); |
| | | |
| | | List<ServiceFunddetailVO> serviceFunddetails = serviceFundVO.getServiceFunddetails(); |
| | | if (CollectionUtils.isEmpty(serviceFunddetails)) { |
| | | System.out.println("serviceFunddetails为空喽"); |
| | | return null; |
| | | } |
| | | |
| | | //总税前 |
| | | Double pretaxcosts = 0.00; |
| | | //总税后 |
| | | Double taxedcosts = 0.00; |
| | | for (ServiceFunddetailVO serviceFunddetailVO : serviceFunddetails) { |
| | | serviceFunddetailVO.setFundid(id); |
| | | |
| | | ServiceFunddetail serviceFunddetail = DtoConversionUtils.sourceToTarget(serviceFunddetailVO, ServiceFunddetail.class); |
| | | Map<String, Double> performance = serviceFunddetailService.performance(serviceFunddetail); |
| | | if (!performance.isEmpty()) { |
| | | Double amount = performance.get("amount"); |
| | | Double taxedamount = performance.get("taxedamount"); |
| | | pretaxcosts = pretaxcosts + amount; |
| | | taxedcosts = taxedcosts + taxedamount; |
| | | } |
| | | serviceFundVO.setPretaxcost(pretaxcosts); |
| | | serviceFundVO.setTaxedcost(taxedcosts); |
| | | updateById(serviceFundVO); |
| | | } |
| | | Map map = new HashMap(); |
| | | map.put("fundId", id); |
| | | return map; |
| | | } |
| | | |
| | | int uploadOAFileAndUpdateDb(ServiceFunddetailShared remShare) { |
| | |
| | | // return 0; |
| | | // } |
| | | |
| | | public long saveFund(ServiceFundVO serviceFundVO) { |
| | | Long id = null; |
| | | //将数据保存到fund表 |
| | | if (ObjectUtils.isNotEmpty(serviceFundVO) && serviceFundVO.getId() == null) { |
| | | serviceFundVO.setCheckstatus(serviceFundVO.getCheckstatus() == null ? 1 : 2); |
| | | save(serviceFundVO); |
| | | id = serviceFundVO.getId(); |
| | | } else { |
| | | updateById(serviceFundVO); |
| | | id = serviceFundVO.getId(); |
| | | } |
| | | return id; |
| | | } |
| | | |
| | | } |