|
@@ -462,10 +462,199 @@ public class FinanceInvoiceService extends ServiceImpl<FinanceInvoiceMapper, Fin
|
|
|
return financeInvoiceDTO;
|
|
return financeInvoiceDTO;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public String saveForm(FinanceInvoiceDTO financeInvoiceDTO) throws Exception{
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 仅作为单独保存发票数据接口使用
|
|
|
|
|
+ * @param financeInvoiceDTO
|
|
|
|
|
+ * @return
|
|
|
|
|
+ * @throws Exception
|
|
|
|
|
+ */
|
|
|
|
|
+ public String saveFormOnly(FinanceInvoiceDTO financeInvoiceDTO) throws Exception{
|
|
|
|
|
+ //添加钉钉通知处理
|
|
|
|
|
+ boolean isDDNotice = false;
|
|
|
|
|
+ String isOms = "0";
|
|
|
|
|
|
|
|
|
|
+ FinanceInvoice financeInvoice = FinanceInvoiceWrapper.INSTANCE.toEntity(financeInvoiceDTO);
|
|
|
|
|
+ if(StringUtils.isNotBlank(financeInvoiceDTO.getRelatedInvoice())){
|
|
|
|
|
+ financeInvoice.setRelatedInvoice(financeInvoiceDTO.getRelatedInvoice());
|
|
|
|
|
+ }
|
|
|
|
|
+ if(StringUtils.isNotBlank(financeInvoiceDTO.getSituationDetail())){
|
|
|
|
|
+ financeInvoice.setSituationDetail(financeInvoiceDTO.getSituationDetail());
|
|
|
|
|
+ }
|
|
|
|
|
+ if(StringUtils.isNotBlank(financeInvoiceDTO.getRedFlushReason())){
|
|
|
|
|
+ financeInvoice.setRedFlushReason(financeInvoiceDTO.getRedFlushReason());
|
|
|
|
|
+ }
|
|
|
|
|
+ if(StringUtils.isNotBlank(financeInvoiceDTO.getIsSmsNotice())){
|
|
|
|
|
+ financeInvoice.setIsSmsNotice(financeInvoiceDTO.getIsSmsNotice());
|
|
|
|
|
+ }
|
|
|
|
|
+ if(StringUtils.isNotBlank(financeInvoiceDTO.getIsOmsBilling())){
|
|
|
|
|
+ financeInvoice.setIsOmsBilling(financeInvoiceDTO.getIsOmsBilling());
|
|
|
|
|
+ }
|
|
|
|
|
+ if (ObjectUtil.isNotEmpty(financeInvoice)) {
|
|
|
|
|
+ if(StringUtils.isBlank(financeInvoice.getId())){
|
|
|
|
|
+ //获取当前登录人信息
|
|
|
|
|
+ UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
|
|
|
|
|
+ //发票编号生成
|
|
|
|
|
+ String serialNum = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), FinanceInvoiceDTO.BIZ_CODE, TokenProvider.getCurrentToken());
|
|
|
|
|
+ financeInvoice.setNo(serialNum);
|
|
|
|
|
+ if (StringUtils.isBlank(financeInvoice.getInvalidStatus())){
|
|
|
|
|
+ financeInvoice.setInvalidStatus("0");
|
|
|
|
|
+ }
|
|
|
|
|
+ if (StringUtils.isBlank(financeInvoice.getReceivablesStatus())){
|
|
|
|
|
+ financeInvoice.setReceivablesStatus("0");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if(StringUtils.isNotEmpty(financeInvoiceDTO.getActualDrawerEmailAddress())){
|
|
|
|
|
+ financeInvoice.setActualDrawerEmailAddress(financeInvoiceDTO.getActualDrawerEmailAddress());
|
|
|
|
|
+ }
|
|
|
|
|
+ financeInvoice.setRedInvoiceFlag(financeInvoiceDTO.getRedInvoiceFlag());
|
|
|
|
|
+ financeInvoice.setRedInvoiceRelevancyId(financeInvoiceDTO.getRedInvoiceRelevancyId());
|
|
|
|
|
+ financeInvoice.setRedInvoiceRelevancyNumber(financeInvoiceDTO.getRedInvoiceRelevancyNumber());
|
|
|
|
|
+ }
|
|
|
|
|
+ this.saveOrUpdate(financeInvoice);
|
|
|
|
|
+ if (ObjectUtil.isNotEmpty(financeInvoiceDTO)) {
|
|
|
|
|
+ // 如果当前是执行的是收款页面的保存方法
|
|
|
|
|
+ if ("1".equals(financeInvoiceDTO.getIsReceivables())) {
|
|
|
|
|
+ // 如果传过来的收款日期为空,则将本条发票的收款日期置空
|
|
|
|
|
+ if (ObjectUtil.isEmpty(financeInvoiceDTO.getReceivablesDate())) {
|
|
|
|
|
+ // 根据发票id,置空发票的收款日期
|
|
|
|
|
+ financeInvoiceMapper.setReceivablesDateNull(financeInvoice.getId());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // 基本信息保存
|
|
|
|
|
+ if(CollectionUtil.isNotEmpty(financeInvoiceDTO.getFinanceInvoiceBaseDTOList())){
|
|
|
|
|
+ List<String> delIds = financeInvoiceDTO.getFinanceInvoiceBaseDTOList().stream().distinct().filter(item->{
|
|
|
|
|
+ if(StringUtils.isNotBlank(item.getId())){
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }).map(FinanceInvoiceBaseDTO::getId).collect(Collectors.toList());
|
|
|
|
|
+ if(CollectionUtil.isNotEmpty(delIds)){
|
|
|
|
|
+ financeInvoiceBaseMapper.delete(new QueryWrapper<FinanceInvoiceBase>().lambda()
|
|
|
|
|
+ .eq(FinanceInvoiceBase::getInvoiceId,financeInvoice.getId()).notIn(FinanceInvoiceBase::getId,delIds));
|
|
|
|
|
+ }else{
|
|
|
|
|
+ financeInvoiceBaseMapper.delete(new QueryWrapper<FinanceInvoiceBase>().lambda()
|
|
|
|
|
+ .eq(FinanceInvoiceBase::getInvoiceId,financeInvoice.getId()));
|
|
|
|
|
+ }
|
|
|
|
|
+ financeInvoiceDTO.getFinanceInvoiceBaseDTOList().stream().forEach(item->{
|
|
|
|
|
+ FinanceInvoiceBase financeInvoiceBase = FinanceInvoiceBaseWrapper.INSTANCE.toEntity(item);
|
|
|
|
|
+ if(StringUtils.isNotBlank(financeInvoiceBase.getId())){
|
|
|
|
|
+ financeInvoiceBaseMapper.updateById(financeInvoiceBase);
|
|
|
|
|
+ }else{
|
|
|
|
|
+ financeInvoiceBase.setInvoiceId(financeInvoice.getId());
|
|
|
|
|
+ financeInvoiceBaseMapper.insert(financeInvoiceBase);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ }else{
|
|
|
|
|
+ financeInvoiceBaseMapper.delete(new QueryWrapper<FinanceInvoiceBase>().lambda()
|
|
|
|
|
+ .eq(FinanceInvoiceBase::getInvoiceId,financeInvoice.getId()));
|
|
|
|
|
+ }
|
|
|
|
|
+ // 附件保存
|
|
|
|
|
+ if(CollectionUtil.isNotEmpty(financeInvoiceDTO.getWorkAttachmentDtoList())){
|
|
|
|
|
+ List<String> delIds = financeInvoiceDTO.getWorkAttachmentDtoList().stream().distinct().filter(item -> {
|
|
|
|
|
+ if (StringUtils.isNotBlank(item.getId())) {
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }).map(WorkAttachmentInfo::getId).collect(Collectors.toList());
|
|
|
|
|
+ if(CollectionUtil.isNotEmpty(delIds)){
|
|
|
|
|
+ SpringUtil.getBean ( IWorkAttachmentApi.class ).deleteByAttachmentIdNotInIds(financeInvoice.getId(),delIds);
|
|
|
|
|
+ }else{
|
|
|
|
|
+ SpringUtil.getBean ( IWorkAttachmentApi.class ).deleteByAttachmentId(financeInvoice.getId());
|
|
|
|
|
+ }
|
|
|
|
|
+ //获取当前登录人信息
|
|
|
|
|
+ UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
|
|
|
|
|
+ AtomicInteger j = new AtomicInteger(1);
|
|
|
|
|
+ List<WorkAttachmentInfo> collect = financeInvoiceDTO.getWorkAttachmentDtoList().stream().filter(item -> {
|
|
|
|
|
+ if (StringUtils.isNotBlank(item.getId())) {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
|
+ collect.forEach(item->{
|
|
|
|
|
+ this.saveFiles(item,financeInvoice.getId(),userDTO,j);
|
|
|
|
|
+ j.getAndIncrement();
|
|
|
|
|
+ });
|
|
|
|
|
+ }else{
|
|
|
|
|
+ SpringUtil.getBean ( IWorkAttachmentApi.class ).deleteByAttachmentId(financeInvoice.getId());
|
|
|
|
|
+ }
|
|
|
|
|
+ // 发票明细保存
|
|
|
|
|
+ if(CollectionUtil.isNotEmpty(financeInvoiceDTO.getFinanceInvoiceDetailDTOList())){
|
|
|
|
|
+ List<String> delIds = financeInvoiceDTO.getFinanceInvoiceDetailDTOList().stream().distinct().filter(item -> {
|
|
|
|
|
+ if (StringUtils.isNotBlank(item.getId())) {
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }).map(FinanceInvoiceDetailDTO::getId).collect(Collectors.toList());
|
|
|
|
|
+ if(CollectionUtil.isNotEmpty(delIds)){
|
|
|
|
|
+ financeInvoiceDetailMapper.delete(new QueryWrapper<FinanceInvoiceDetail>().lambda()
|
|
|
|
|
+ .eq(FinanceInvoiceDetail::getInvoiceId,financeInvoice.getId())
|
|
|
|
|
+ .notIn(FinanceInvoiceDetail::getId,delIds));
|
|
|
|
|
+ }else{
|
|
|
|
|
+ financeInvoiceDetailMapper.delete(new QueryWrapper<FinanceInvoiceDetail>().lambda().eq(FinanceInvoiceDetail::getInvoiceId,financeInvoice.getId()));
|
|
|
|
|
+ }
|
|
|
|
|
+ financeInvoiceDTO.getFinanceInvoiceDetailDTOList().stream().forEach(item->{
|
|
|
|
|
+ FinanceInvoiceDetail financeInvoiceDetail = FinanceInvoiceDetailWrapper.INSTANCE.toEntity(item);
|
|
|
|
|
+ if(StringUtils.isNotBlank(financeInvoiceDetail.getId())){
|
|
|
|
|
+ financeInvoiceDetailMapper.updateById(financeInvoiceDetail);
|
|
|
|
|
+ }else{
|
|
|
|
|
+ financeInvoiceDetail.setInvoiceId(financeInvoice.getId());
|
|
|
|
|
+ financeInvoiceDetailMapper.insert(financeInvoiceDetail);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ }else{
|
|
|
|
|
+ financeInvoiceDetailMapper.delete(new QueryWrapper<FinanceInvoiceDetail>().lambda().eq(FinanceInvoiceDetail::getInvoiceId,financeInvoice.getId()));
|
|
|
|
|
+ }
|
|
|
|
|
+ // 收款明细保存
|
|
|
|
|
+ if(CollectionUtil.isNotEmpty(financeInvoiceDTO.getFinanceInvoiceReceivablesDTOList())){
|
|
|
|
|
+ List<String> delIds = financeInvoiceDTO.getFinanceInvoiceReceivablesDTOList().stream().distinct().filter(item -> {
|
|
|
|
|
+ if (StringUtils.isNotBlank(item.getId())) {
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }).map(FinanceInvoiceReceivablesDTO::getId).collect(Collectors.toList());
|
|
|
|
|
+ if(CollectionUtil.isNotEmpty(delIds)){
|
|
|
|
|
+ financeInvoiceReceivablesMapper.delete(new QueryWrapper<FinanceInvoiceReceivables>().lambda()
|
|
|
|
|
+ .eq(FinanceInvoiceReceivables::getInvoiceId,financeInvoice.getId())
|
|
|
|
|
+ .notIn(FinanceInvoiceReceivables::getId,delIds));
|
|
|
|
|
+ }else{
|
|
|
|
|
+ financeInvoiceReceivablesMapper.delete(new QueryWrapper<FinanceInvoiceReceivables>().lambda().eq(FinanceInvoiceReceivables::getInvoiceId,financeInvoice.getId()));
|
|
|
|
|
+ }
|
|
|
|
|
+ financeInvoiceDTO.getFinanceInvoiceReceivablesDTOList().stream().forEach(item->{
|
|
|
|
|
+ FinanceInvoiceReceivables financeInvoiceReceivables = FinanceInvoiceReceivablesWrapper.INSTANCE.toEntity(item);
|
|
|
|
|
+ if(StringUtils.isNotBlank(financeInvoiceReceivables.getId())){
|
|
|
|
|
+ financeInvoiceReceivablesMapper.updateById(financeInvoiceReceivables);
|
|
|
|
|
+ }else{
|
|
|
|
|
+ financeInvoiceReceivables.setInvoiceId(financeInvoice.getId());
|
|
|
|
|
+ financeInvoiceReceivablesMapper.insert(financeInvoiceReceivables);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ }else{
|
|
|
|
|
+ financeInvoiceReceivablesMapper.delete(new QueryWrapper<FinanceInvoiceReceivables>().lambda().eq(FinanceInvoiceReceivables::getInvoiceId,financeInvoice.getId()));
|
|
|
|
|
+ }
|
|
|
|
|
+ // 作废信息保存
|
|
|
|
|
+ if(ObjectUtil.isNotEmpty(financeInvoiceDTO.getFinanceInvoiceInvalidDTO())){
|
|
|
|
|
+ FinanceInvoiceInvalid financeInvoiceInvalid = FinanceInvoiceInvalidWrapper.INSTANCE.toEntity(financeInvoiceDTO.getFinanceInvoiceInvalidDTO());
|
|
|
|
|
+ if(StringUtils.isNotBlank(financeInvoiceInvalid.getId())){
|
|
|
|
|
+ financeInvoiceInvalidMapper.update(financeInvoiceInvalid,
|
|
|
|
|
+ new QueryWrapper<FinanceInvoiceInvalid>().lambda().eq(FinanceInvoiceInvalid::getId,financeInvoiceInvalid.getId()));
|
|
|
|
|
+ }else{
|
|
|
|
|
+ financeInvoiceInvalid.setInvalidStatus("0");
|
|
|
|
|
+ financeInvoiceInvalid.setInvoiceId(financeInvoice.getId());
|
|
|
|
|
+ financeInvoiceInvalidMapper.insert(financeInvoiceInvalid);
|
|
|
|
|
+ }
|
|
|
|
|
+ }else{
|
|
|
|
|
+ financeInvoiceInvalidMapper.delete(new QueryWrapper<FinanceInvoiceInvalid>().lambda().eq(FinanceInvoiceInvalid::getInvoiceId,financeInvoice.getId()));
|
|
|
|
|
+ FinanceInvoiceInvalid financeInvoiceInvalid = new FinanceInvoiceInvalid();
|
|
|
|
|
+ financeInvoiceInvalid.setInvalidStatus("0");
|
|
|
|
|
+ financeInvoiceInvalid.setInvoiceId(financeInvoice.getId());
|
|
|
|
|
+ financeInvoiceInvalidMapper.insert(financeInvoiceInvalid);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return financeInvoice.getId();
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ public String saveForm(FinanceInvoiceDTO financeInvoiceDTO) throws Exception{
|
|
|
//添加钉钉通知处理
|
|
//添加钉钉通知处理
|
|
|
boolean isDDNotice = false;
|
|
boolean isDDNotice = false;
|
|
|
if(financeInvoiceDTO.getStatus().equals("2")){
|
|
if(financeInvoiceDTO.getStatus().equals("2")){
|
|
@@ -689,6 +878,7 @@ public class FinanceInvoiceService extends ServiceImpl<FinanceInvoiceMapper, Fin
|
|
|
return "ok";
|
|
return "ok";
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 判断是否开票逻辑
|
|
* 判断是否开票逻辑
|
|
|
*/
|
|
*/
|