diff --git a/mhd_finance/src/main/java/com/linke/finance/interfaces/dto/reconciliationAccount/ReconciliationAccountDTO.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/ReconciliationAccountDTO.java similarity index 91% rename from mhd_finance/src/main/java/com/linke/finance/interfaces/dto/reconciliationAccount/ReconciliationAccountDTO.java rename to mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/ReconciliationAccountDTO.java index d75ebe978..a5f8c272f 100644 --- a/mhd_finance/src/main/java/com/linke/finance/interfaces/dto/reconciliationAccount/ReconciliationAccountDTO.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/ReconciliationAccountDTO.java @@ -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") diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/ReconciliationDTO.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/ReconciliationDTO.java index e9bee9abf..67192707f 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/ReconciliationDTO.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/ReconciliationDTO.java @@ -233,4 +233,7 @@ public class ReconciliationDTO extends BaseVOEntity{ @ApiModelProperty("nc同步状态 0-未同步 1-已同步") private Integer skSynchronousStatus; + @ApiModelProperty(value = "账单科目明细") + public List reconciliationAccountDTOList; + } diff --git a/mhd_finance/src/main/java/com/linke/finance/application/server/reconciliation/ReconciliationApplicationService.java b/mhd_finance/src/main/java/com/linke/finance/application/server/reconciliation/ReconciliationApplicationService.java index 2e5629f26..436726126 100644 --- a/mhd_finance/src/main/java/com/linke/finance/application/server/reconciliation/ReconciliationApplicationService.java +++ b/mhd_finance/src/main/java/com/linke/finance/application/server/reconciliation/ReconciliationApplicationService.java @@ -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 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); + } + } } @@ -715,4 +739,4 @@ public class ReconciliationApplicationService { { return reconciliationDomainService.editIsInvoice(innerNumber,isInvoice,invoiceId,invoiceMakeTime,applyNumber); } -} \ No newline at end of file +} diff --git a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/persistence/ReconciliationImpl.java b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/persistence/ReconciliationImpl.java index 5809929b0..5a0ca4865 100644 --- a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/persistence/ReconciliationImpl.java +++ b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/persistence/ReconciliationImpl.java @@ -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 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 ajaxResult1=wlhyServiceFeign.selectByOrderNum(tmsOrder.getGoodsNumber()); if(ajaxResult1.getCode()==200){ @@ -623,45 +633,50 @@ public class ReconciliationImpl extends ServiceImpl reconciliationAccountList=reconciliationAccountMapper.selectList(new QueryWrapper().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(salesmanCodeNc); + item.setCustomer(customerCodeNc); + item.setObjtype("0"); + item.setDirection("1"); + item.setScomment("业务部:应收"+appointShipper+reconciliationAccount.getSubjectName()+reconciliation.getApplyNumber()); + // item.setPk_currtype("CNY"); + item.setPk_currtype(settlementCurrency); + item.setPurchaseorder(""); + item.setTaxrate("0"); + item.setQuantity_de("0"); + 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)); + }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(); diff --git a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/todo/ReconciliationDO.java b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/todo/ReconciliationDO.java index bd758ac84..1054ec73e 100644 --- a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/todo/ReconciliationDO.java +++ b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/todo/ReconciliationDO.java @@ -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 reconciliationAccountDTOList; } diff --git a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliationAccount/entity/ReconciliationAccount.java b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliationAccount/entity/ReconciliationAccount.java index f527d578a..d14ecead7 100644 --- a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliationAccount/entity/ReconciliationAccount.java +++ b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliationAccount/entity/ReconciliationAccount.java @@ -13,7 +13,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; /** * 【请填写功能名称】对象 reconciliation_account - * + * * @author gen * @date 2026-01-14 */ @@ -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") diff --git a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliationAccount/repository/todo/ReconciliationAccountDO.java b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliationAccount/repository/todo/ReconciliationAccountDO.java index 18f4c960b..59b7bbd97 100644 --- a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliationAccount/repository/todo/ReconciliationAccountDO.java +++ b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliationAccount/repository/todo/ReconciliationAccountDO.java @@ -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") diff --git a/mhd_finance/src/main/java/com/linke/finance/interfaces/assembler/reconciliationAccount/ReconciliationAccountAssembler.java b/mhd_finance/src/main/java/com/linke/finance/interfaces/assembler/reconciliationAccount/ReconciliationAccountAssembler.java index 8e90ef162..904dc684e 100644 --- a/mhd_finance/src/main/java/com/linke/finance/interfaces/assembler/reconciliationAccount/ReconciliationAccountAssembler.java +++ b/mhd_finance/src/main/java/com/linke/finance/interfaces/assembler/reconciliationAccount/ReconciliationAccountAssembler.java @@ -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; @@ -62,4 +62,4 @@ public class ReconciliationAccountAssembler { return reconciliationAccountDO; } -} \ No newline at end of file +} diff --git a/mhd_finance/src/main/java/com/linke/finance/interfaces/facade/reconciliationAccount/ReconciliationAccountApi.java b/mhd_finance/src/main/java/com/linke/finance/interfaces/facade/reconciliationAccount/ReconciliationAccountApi.java index 4bdc20a89..559fe5671 100644 --- a/mhd_finance/src/main/java/com/linke/finance/interfaces/facade/reconciliationAccount/ReconciliationAccountApi.java +++ b/mhd_finance/src/main/java/com/linke/finance/interfaces/facade/reconciliationAccount/ReconciliationAccountApi.java @@ -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;