应收账单保存科目信息和nc推送修改

This commit is contained in:
hjx
2026-01-14 17:24:20 +08:00
parent 14cfad6b50
commit 1708b4384c
9 changed files with 96 additions and 51 deletions
@@ -1,13 +1,11 @@
package com.linke.finance.interfaces.dto.reconciliationAccount; package com.mhd.common.core.domain.dto;
import com.mhd.common.core.annotation.Excel; import com.mhd.common.core.annotation.Excel;
import lombok.Data;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.math.BigDecimal;
import io.swagger.annotations.ApiModelProperty;
import com.mhd.common.core.web.domain.BaseVOEntity; import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
/** /**
@@ -42,7 +40,7 @@ public class ReconciliationAccountDTO extends BaseVOEntity{
@ApiModelProperty("应收账单id") @ApiModelProperty("应收账单id")
@Excel(name = "应收账单id") @Excel(name = "应收账单id")
private String reconciliationId; private Long reconciliationId;
@ApiModelProperty("科目id") @ApiModelProperty("科目id")
@Excel(name = "科目id") @Excel(name = "科目id")
@@ -233,4 +233,7 @@ public class ReconciliationDTO extends BaseVOEntity{
@ApiModelProperty("nc同步状态 0-未同步 1-已同步") @ApiModelProperty("nc同步状态 0-未同步 1-已同步")
private Integer skSynchronousStatus; private Integer skSynchronousStatus;
@ApiModelProperty(value = "账单科目明细")
public List<ReconciliationAccountDTO> reconciliationAccountDTOList;
} }
@@ -1,5 +1,6 @@
package com.linke.finance.application.server.reconciliation; package com.linke.finance.application.server.reconciliation;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.aliyun.dingtalkworkflow_1_0.models.StartProcessInstanceResponse; import com.aliyun.dingtalkworkflow_1_0.models.StartProcessInstanceResponse;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -13,6 +14,9 @@ import com.linke.finance.domain.reconciliation.repository.po.ReconciliationOrder
import com.linke.finance.domain.reconciliation.repository.po.ReconciliationPO; import com.linke.finance.domain.reconciliation.repository.po.ReconciliationPO;
import com.linke.finance.domain.reconciliation.repository.todo.ReconciliationDO; import com.linke.finance.domain.reconciliation.repository.todo.ReconciliationDO;
import com.linke.finance.domain.reconciliation.service.ReconciliationDomainService; import com.linke.finance.domain.reconciliation.service.ReconciliationDomainService;
import com.linke.finance.domain.reconciliationAccount.entity.ReconciliationAccount;
import com.linke.finance.domain.reconciliationAccount.repository.todo.ReconciliationAccountDO;
import com.linke.finance.domain.reconciliationAccount.service.ReconciliationAccountDomainService;
import com.linke.finance.domain.revenueExpensesRecord.entity.RevenueExpensesRecord; import com.linke.finance.domain.revenueExpensesRecord.entity.RevenueExpensesRecord;
import com.linke.finance.domain.revenueExpensesRecord.service.RevenueExpensesRecordDomainService; import com.linke.finance.domain.revenueExpensesRecord.service.RevenueExpensesRecordDomainService;
import com.linke.finance.domain.tmsReceipt.repository.mapper.TmsReceiptMapper; import com.linke.finance.domain.tmsReceipt.repository.mapper.TmsReceiptMapper;
@@ -21,7 +25,9 @@ import com.linke.finance.domain.tmsReceipt.service.TmsReceiptDomainService;
import com.linke.finance.domain.verification.service.VerificationDomainService; import com.linke.finance.domain.verification.service.VerificationDomainService;
import com.linke.finance.infrastructure.feign.ProductServiceFeign; import com.linke.finance.infrastructure.feign.ProductServiceFeign;
import com.linke.finance.infrastructure.feign.WlhyServiceFeign; import com.linke.finance.infrastructure.feign.WlhyServiceFeign;
import com.linke.finance.interfaces.assembler.reconciliationAccount.ReconciliationAccountAssembler;
import com.mhd.common.core.constant.SubjectConstants; import com.mhd.common.core.constant.SubjectConstants;
import com.mhd.common.core.domain.dto.ReconciliationAccountDTO;
import com.mhd.common.core.domain.dto.ReconciliationDTO; import com.mhd.common.core.domain.dto.ReconciliationDTO;
import com.mhd.common.core.domain.entity.TmsOrder; import com.mhd.common.core.domain.entity.TmsOrder;
import com.mhd.common.core.domain.entity.Verification; import com.mhd.common.core.domain.entity.Verification;
@@ -75,7 +81,11 @@ public class ReconciliationApplicationService {
@Resource @Resource
private TmsReceiptMapper tmsReceiptMapper; private TmsReceiptMapper tmsReceiptMapper;
@Autowired
private ReconciliationAccountDomainService reconciliationAccountDomainService;
@Resource
private ReconciliationAccountAssembler reconciliationAccountAssembler;
/** /**
* 分页查询对账单列表 * 分页查询对账单列表
@@ -327,6 +337,20 @@ public class ReconciliationApplicationService {
if(!flag){ if(!flag){
throw new ServiceException("订单出账-生成应收账单明细失败!"); throw new ServiceException("订单出账-生成应收账单明细失败!");
} }
List<ReconciliationAccountDTO> reconciliationAccountDTOList=reconciliationDO.getReconciliationAccountDTOList();
if(ObjectUtil.isNotNull(reconciliationAccountDTOList)&&reconciliationAccountDTOList.size()>0){
for (ReconciliationAccountDTO reconciliationAccountDTO:reconciliationAccountDTOList){
reconciliationAccountDTO.setReconciliationId(reconciliationDO.getReconciliationId());
reconciliationAccountDTO.setDelFlag(1);
reconciliationAccountDTO.setCreateTime(new Date());
reconciliationAccountDTO.setCreateBy(loginUser.getUserid());
reconciliationAccountDTO.setOrganizationId(reconciliationDO.getOrganizationId());
reconciliationAccountDTO.setTopOrganizationId(reconciliationDO.getTopOrganizationId());
//转换实体
ReconciliationAccountDO reconciliationAccountDO = reconciliationAccountAssembler.toDO(reconciliationAccountDTO);
reconciliationAccountDomainService.insert(reconciliationAccountDO);
}
}
} }
@@ -22,6 +22,8 @@ import com.linke.finance.domain.reconciliation.repository.facade.IReconciliation
import com.linke.finance.domain.reconciliation.repository.mapper.ReconciliationMapper; import com.linke.finance.domain.reconciliation.repository.mapper.ReconciliationMapper;
import com.linke.finance.domain.reconciliation.repository.po.ReconciliationPO; import com.linke.finance.domain.reconciliation.repository.po.ReconciliationPO;
import com.linke.finance.domain.reconciliation.repository.todo.ReconciliationDO; import com.linke.finance.domain.reconciliation.repository.todo.ReconciliationDO;
import com.linke.finance.domain.reconciliationAccount.entity.ReconciliationAccount;
import com.linke.finance.domain.reconciliationAccount.repository.mapper.ReconciliationAccountMapper;
import com.mhd.common.core.domain.dto.ReconciliationDTO; import com.mhd.common.core.domain.dto.ReconciliationDTO;
import com.mhd.common.core.domain.dto.nc.*; import com.mhd.common.core.domain.dto.nc.*;
import com.mhd.common.core.domain.entity.R; import com.mhd.common.core.domain.entity.R;
@@ -96,6 +98,8 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
private ApprovalDocumentMapper approvalDocumentMapper; private ApprovalDocumentMapper approvalDocumentMapper;
@Autowired @Autowired
private ApprovalDocumentDomainService approvalDocumentDomainService; private ApprovalDocumentDomainService approvalDocumentDomainService;
@Autowired
private ReconciliationAccountMapper reconciliationAccountMapper;
//nc测试环境地址 //nc测试环境地址
private String url="http://10.0.0.212/service/XChangeServlet?account=NKNC&groupcode=CNK"; private String url="http://10.0.0.212/service/XChangeServlet?account=NKNC&groupcode=CNK";
@@ -604,6 +608,12 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
if(result.getCode()==200){ if(result.getCode()==200){
List<TmsOrder> list=result.getData(); List<TmsOrder> list=result.getData();
if(ObjectUtil.isNotNull(list)){ if(ObjectUtil.isNotNull(list)){
makerCodeNc=list.get(0).getMakerCodeNc();
String salesmanCodeNc=list.get(0).getSalesmanCodeNc();
String customerCodeNc=list.get(0).getCustomerCodeNc();
String appointShipper=list.get(0).getAppointShipper();
String settlementCurrency=list.get(0).getSettlementCurrency();
String goodsNumber=list.get(0).getGoodsName();
for(TmsOrder tmsOrder:list){ for(TmsOrder tmsOrder:list){
R<TmsTransportNote> ajaxResult1=wlhyServiceFeign.selectByOrderNum(tmsOrder.getGoodsNumber()); R<TmsTransportNote> ajaxResult1=wlhyServiceFeign.selectByOrderNum(tmsOrder.getGoodsNumber());
if(ajaxResult1.getCode()==200){ if(ajaxResult1.getCode()==200){
@@ -623,45 +633,50 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
} }
} }
/* if(null==reconciliation.getSettlementPartyId()){
throw new ServiceException("没有结算方,请核对");
}*/
/* if (org.apache.commons.lang.StringUtils.isBlank(tmsOrder.getSalesmanCodeNc())) {
throw new ServiceException("请先维护业务员编码");
} }
if (org.apache.commons.lang.StringUtils.isBlank(tmsOrder.getMakerCodeNc())) { List<ReconciliationAccount> reconciliationAccountList=reconciliationAccountMapper.selectList(new QueryWrapper<ReconciliationAccount>().lambda()
throw new ServiceException("请先维护制单员编码"); .eq(ReconciliationAccount::getReconciliationId,businessDocumentDetaliId)
} .eq(ReconciliationAccount::getDelFlag,0));
if (org.apache.commons.lang.StringUtils.isBlank(tmsOrder.getCustomsCodeNc())) { if (ObjectUtil.isNotNull(reconciliationAccountList)&&reconciliationAccountList.size()>0){
throw new ServiceException("请先维护制单员编码"); for (ReconciliationAccount reconciliationAccount:reconciliationAccountList){
}*/
makerCodeNc=tmsOrder.getMakerCodeNc();
Ysitem item=new Ysitem(); Ysitem item=new Ysitem();
item.setSo_deptid("NG0408"); item.setSo_deptid("NG0408");
item.setPk_deptid("NG0408"); item.setPk_deptid("NG0408");
item.setPk_psndoc(tmsOrder.getSalesmanCodeNc()); item.setPk_psndoc(salesmanCodeNc);
item.setCustomer(tmsOrder.getCustomerCodeNc()); item.setCustomer(customerCodeNc);
item.setObjtype("0"); item.setObjtype("0");
item.setDirection("1"); item.setDirection("1");
item.setScomment(tmsOrder.getAppointShipper()); item.setScomment("业务部:应收"+appointShipper+reconciliationAccount.getSubjectName()+reconciliation.getApplyNumber());
// item.setPk_currtype("CNY"); // item.setPk_currtype("CNY");
item.setPk_currtype(tmsOrder.getSettlementCurrency()); item.setPk_currtype(settlementCurrency);
item.setPurchaseorder(tmsOrder.getGoodsNumber()); item.setPurchaseorder("");
item.setTaxrate("0"); item.setTaxrate("0");
item.setQuantity_de("0"); item.setQuantity_de("0");
item.setMoney_de(String.valueOf(tmsOrder.getDeliveryFreight())); item.setMoney_de(String.valueOf(reconciliationAccount.getAmount()));
item.setMoney_bal(String.valueOf(tmsOrder.getDeliveryFreight())); item.setMoney_bal(String.valueOf(reconciliationAccount.getAmount()));
BigDecimal tax_de=tmsOrder.getDeliveryFreight().multiply(tmsOrder.getTaxRate().divide(BigDecimal.valueOf(100))).setScale(2,BigDecimal.ROUND_HALF_UP); if(reconciliationAccount.getRate().compareTo(BigDecimal.ZERO)>0){
BigDecimal notax_de=tmsOrder.getDeliveryFreight().subtract(tax_de); BigDecimal tax_de=reconciliationAccount.getAmount().multiply(reconciliationAccount.getRate().divide(BigDecimal.valueOf(100))).setScale(2,BigDecimal.ROUND_HALF_UP);
BigDecimal notax_de=reconciliationAccount.getAmount().subtract(tax_de);
item.setNotax_de(String.valueOf(notax_de)); item.setNotax_de(String.valueOf(notax_de));
item.setLocal_tax_de(String.valueOf(notax_de)); item.setLocal_tax_de(String.valueOf(notax_de));
item.setTax_de(String.valueOf(tax_de)); item.setTax_de(String.valueOf(tax_de));
item.setPrice(String.valueOf(tmsOrder.getDeliveryFreight())); }else{
item.setTaxprice(String.valueOf(tmsOrder.getDeliveryFreight())); BigDecimal tax_de=BigDecimal.ZERO;
BigDecimal notax_de=reconciliationAccount.getAmount().subtract(tax_de);
item.setNotax_de(String.valueOf(notax_de));
item.setLocal_tax_de(String.valueOf(notax_de));
item.setTax_de(String.valueOf(tax_de));
}
item.setPrice(String.valueOf(reconciliationAccount.getAmount()));
item.setTaxprice(String.valueOf(reconciliationAccount.getAmount()));
item.setDef75("T10"); item.setDef75("T10");
item.setInvoiceno(""); item.setInvoiceno("");
ysitemList.add(item); ysitemList.add(item);
} }
}
Ysbodys bodys=new Ysbodys(); Ysbodys bodys=new Ysbodys();
bodys.setItem(ysitemList); bodys.setItem(ysitemList);
Ysbillhead billhead=new Ysbillhead(); Ysbillhead billhead=new Ysbillhead();
@@ -2,6 +2,7 @@ package com.linke.finance.domain.reconciliation.repository.todo;
import com.linke.finance.domain.reconciliation.entity.ReconciliationOrderDetail; import com.linke.finance.domain.reconciliation.entity.ReconciliationOrderDetail;
import com.mhd.common.core.annotation.Excel; import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.domain.dto.ReconciliationAccountDTO;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
@@ -270,4 +271,8 @@ public class ReconciliationDO extends BaseVOEntity{
@ApiModelProperty(value = "nc唯一标识") @ApiModelProperty(value = "nc唯一标识")
private String skNcId; private String skNcId;
@ApiModelProperty(value = "账单科目明细")
public List<ReconciliationAccountDTO> reconciliationAccountDTOList;
} }
@@ -44,7 +44,7 @@ public class ReconciliationAccount extends BaseVOEntity{
@ApiModelProperty("应收账单id") @ApiModelProperty("应收账单id")
@Excel(name = "应收账单id") @Excel(name = "应收账单id")
private String reconciliationId; private Long reconciliationId;
@ApiModelProperty("科目id") @ApiModelProperty("科目id")
@Excel(name = "科目id") @Excel(name = "科目id")
@@ -43,7 +43,7 @@ public class ReconciliationAccountDO extends BaseVOEntity{
@ApiModelProperty("应收账单id") @ApiModelProperty("应收账单id")
@Excel(name = "应收账单id") @Excel(name = "应收账单id")
private String reconciliationId; private Long reconciliationId;
@ApiModelProperty("科目id") @ApiModelProperty("科目id")
@Excel(name = "科目id") @Excel(name = "科目id")
@@ -2,7 +2,7 @@ package com.linke.finance.interfaces.assembler.reconciliationAccount;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.linke.finance.domain.reconciliationAccount.repository.todo.ReconciliationAccountDO; import com.linke.finance.domain.reconciliationAccount.repository.todo.ReconciliationAccountDO;
import com.linke.finance.interfaces.dto.reconciliationAccount.ReconciliationAccountDTO; import com.mhd.common.core.domain.dto.ReconciliationAccountDTO;
import com.mhd.common.core.exception.digitalLogisticsException.DigitalLogisticsException; import com.mhd.common.core.exception.digitalLogisticsException.DigitalLogisticsException;
import com.mhd.common.core.exception.digitalLogisticsException.UserError; import com.mhd.common.core.exception.digitalLogisticsException.UserError;
import com.mhd.common.core.utils.bean.BeanUtils; import com.mhd.common.core.utils.bean.BeanUtils;
@@ -2,6 +2,7 @@ package com.linke.finance.interfaces.facade.reconciliationAccount;
import java.util.List; import java.util.List;
import com.mhd.common.core.domain.dto.ReconciliationAccountDTO;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@@ -11,7 +12,6 @@ import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.linke.finance.interfaces.dto.reconciliationAccount.ReconciliationAccountDTO;
import com.linke.finance.domain.reconciliationAccount.repository.todo.ReconciliationAccountDO; import com.linke.finance.domain.reconciliationAccount.repository.todo.ReconciliationAccountDO;
import com.linke.finance.domain.reconciliationAccount.repository.po.ReconciliationAccountPO; import com.linke.finance.domain.reconciliationAccount.repository.po.ReconciliationAccountPO;
import com.linke.finance.application.server.reconciliationAccount.ReconciliationAccountApplicationService; import com.linke.finance.application.server.reconciliationAccount.ReconciliationAccountApplicationService;