应收账单保存科目信息和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 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 io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
@@ -42,7 +40,7 @@ public class ReconciliationAccountDTO extends BaseVOEntity{
@ApiModelProperty("应收账单id")
@Excel(name = "应收账单id")
private String reconciliationId;
private Long reconciliationId;
@ApiModelProperty("科目id")
@Excel(name = "科目id")
@@ -233,4 +233,7 @@ public class ReconciliationDTO extends BaseVOEntity{
@ApiModelProperty("nc同步状态 0-未同步 1-已同步")
private Integer skSynchronousStatus;
@ApiModelProperty(value = "账单科目明细")
public List<ReconciliationAccountDTO> reconciliationAccountDTOList;
}
@@ -1,5 +1,6 @@
package com.linke.finance.application.server.reconciliation;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.aliyun.dingtalkworkflow_1_0.models.StartProcessInstanceResponse;
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.todo.ReconciliationDO;
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.service.RevenueExpensesRecordDomainService;
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.infrastructure.feign.ProductServiceFeign;
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.domain.dto.ReconciliationAccountDTO;
import com.mhd.common.core.domain.dto.ReconciliationDTO;
import com.mhd.common.core.domain.entity.TmsOrder;
import com.mhd.common.core.domain.entity.Verification;
@@ -75,7 +81,11 @@ public class ReconciliationApplicationService {
@Resource
private TmsReceiptMapper tmsReceiptMapper;
@Autowired
private ReconciliationAccountDomainService reconciliationAccountDomainService;
@Resource
private ReconciliationAccountAssembler reconciliationAccountAssembler;
/**
* 分页查询对账单列表
@@ -327,6 +337,20 @@ public class ReconciliationApplicationService {
if(!flag){
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.po.ReconciliationPO;
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.nc.*;
import com.mhd.common.core.domain.entity.R;
@@ -96,6 +98,8 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
private ApprovalDocumentMapper approvalDocumentMapper;
@Autowired
private ApprovalDocumentDomainService approvalDocumentDomainService;
@Autowired
private ReconciliationAccountMapper reconciliationAccountMapper;
//nc测试环境地址
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){
List<TmsOrder> list=result.getData();
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){
R<TmsTransportNote> ajaxResult1=wlhyServiceFeign.selectByOrderNum(tmsOrder.getGoodsNumber());
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())) {
throw new ServiceException("请先维护制单员编码");
}
if (org.apache.commons.lang.StringUtils.isBlank(tmsOrder.getCustomsCodeNc())) {
throw new ServiceException("请先维护制单员编码");
}*/
makerCodeNc=tmsOrder.getMakerCodeNc();
List<ReconciliationAccount> reconciliationAccountList=reconciliationAccountMapper.selectList(new QueryWrapper<ReconciliationAccount>().lambda()
.eq(ReconciliationAccount::getReconciliationId,businessDocumentDetaliId)
.eq(ReconciliationAccount::getDelFlag,0));
if (ObjectUtil.isNotNull(reconciliationAccountList)&&reconciliationAccountList.size()>0){
for (ReconciliationAccount reconciliationAccount:reconciliationAccountList){
Ysitem item=new Ysitem();
item.setSo_deptid("NG0408");
item.setPk_deptid("NG0408");
item.setPk_psndoc(tmsOrder.getSalesmanCodeNc());
item.setCustomer(tmsOrder.getCustomerCodeNc());
item.setPk_psndoc(salesmanCodeNc);
item.setCustomer(customerCodeNc);
item.setObjtype("0");
item.setDirection("1");
item.setScomment(tmsOrder.getAppointShipper());
item.setScomment("业务部:应收"+appointShipper+reconciliationAccount.getSubjectName()+reconciliation.getApplyNumber());
// item.setPk_currtype("CNY");
item.setPk_currtype(tmsOrder.getSettlementCurrency());
item.setPurchaseorder(tmsOrder.getGoodsNumber());
item.setPk_currtype(settlementCurrency);
item.setPurchaseorder("");
item.setTaxrate("0");
item.setQuantity_de("0");
item.setMoney_de(String.valueOf(tmsOrder.getDeliveryFreight()));
item.setMoney_bal(String.valueOf(tmsOrder.getDeliveryFreight()));
BigDecimal tax_de=tmsOrder.getDeliveryFreight().multiply(tmsOrder.getTaxRate().divide(BigDecimal.valueOf(100))).setScale(2,BigDecimal.ROUND_HALF_UP);
BigDecimal notax_de=tmsOrder.getDeliveryFreight().subtract(tax_de);
item.setMoney_de(String.valueOf(reconciliationAccount.getAmount()));
item.setMoney_bal(String.valueOf(reconciliationAccount.getAmount()));
if(reconciliationAccount.getRate().compareTo(BigDecimal.ZERO)>0){
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.setLocal_tax_de(String.valueOf(notax_de));
item.setTax_de(String.valueOf(tax_de));
item.setPrice(String.valueOf(tmsOrder.getDeliveryFreight()));
item.setTaxprice(String.valueOf(tmsOrder.getDeliveryFreight()));
}else{
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.setInvoiceno("");
ysitemList.add(item);
}
}
Ysbodys bodys=new Ysbodys();
bodys.setItem(ysitemList);
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.mhd.common.core.annotation.Excel;
import com.mhd.common.core.domain.dto.ReconciliationAccountDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.util.Date;
@@ -270,4 +271,8 @@ public class ReconciliationDO extends BaseVOEntity{
@ApiModelProperty(value = "nc唯一标识")
private String skNcId;
@ApiModelProperty(value = "账单科目明细")
public List<ReconciliationAccountDTO> reconciliationAccountDTOList;
}
@@ -44,7 +44,7 @@ public class ReconciliationAccount extends BaseVOEntity{
@ApiModelProperty("应收账单id")
@Excel(name = "应收账单id")
private String reconciliationId;
private Long reconciliationId;
@ApiModelProperty("科目id")
@Excel(name = "科目id")
@@ -43,7 +43,7 @@ public class ReconciliationAccountDO extends BaseVOEntity{
@ApiModelProperty("应收账单id")
@Excel(name = "应收账单id")
private String reconciliationId;
private Long reconciliationId;
@ApiModelProperty("科目id")
@Excel(name = "科目id")
@@ -2,7 +2,7 @@ package com.linke.finance.interfaces.assembler.reconciliationAccount;
import cn.hutool.core.util.ObjectUtil;
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.UserError;
import com.mhd.common.core.utils.bean.BeanUtils;
@@ -2,6 +2,7 @@ package com.linke.finance.interfaces.facade.reconciliationAccount;
import java.util.List;
import com.mhd.common.core.domain.dto.ReconciliationAccountDTO;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
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.RequestMapping;
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.po.ReconciliationAccountPO;
import com.linke.finance.application.server.reconciliationAccount.ReconciliationAccountApplicationService;