From ec4e20fbe72710bdeb13d5cfc5330070f8c28a3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Thu, 26 Feb 2026 11:29:00 +0800 Subject: [PATCH 1/4] =?UTF-8?q?BMS=E5=88=97=E8=A1=A8=E2=80=9C=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E4=BA=BA=E3=80=81=E4=BF=AE=E6=94=B9=E4=BA=BA=E2=80=9D?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E7=94=A8=E6=88=B7=E5=A7=93=E5=90=8D=EF=BC=8C?= =?UTF-8?q?=E4=B8=8D=E4=BF=9D=E5=AD=98=E8=B4=A6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ExpenseAccountAssembler.java | 10 ++++- .../ServiceItemsManageAssembler.java | 10 ++++- .../expenseAccount/ExpenseAccountApi.java | 11 ++---- .../ServiceItemsManageApi.java | 12 ++---- .../mapper/basic/ExpenseAccountMapper.xml | 2 +- .../ConditionalMappingApplicationService.java | 38 +++++++++++++++++-- .../MappingMethodApplicationService.java | 38 +++++++++++++++++-- .../billingRules/BillingRulesAssembler.java | 10 ++++- .../BillingStatementAssembler.java | 20 +++++++++- .../ConditionalMappingAssembler.java | 10 ++++- .../documentType/DocumentTypeAssembler.java | 10 ++++- .../mappingMethod/MappingMethodAssembler.java | 10 ++++- .../SettlementCustomersAssembler.java | 10 ++++- .../facadeApi/ConditionalMappingApi.java | 6 ++- .../interfaces/facadeApi/DocumentTypeApi.java | 5 ++- .../mapper/ConditionalMappingMapper.xml | 4 ++ .../resources/mapper/MappingMethodMapper.xml | 4 ++ 17 files changed, 172 insertions(+), 38 deletions(-) diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/assember/expenseAccount/ExpenseAccountAssembler.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/assember/expenseAccount/ExpenseAccountAssembler.java index 830767dbe..02f610808 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/assember/expenseAccount/ExpenseAccountAssembler.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/assember/expenseAccount/ExpenseAccountAssembler.java @@ -35,7 +35,15 @@ public class ExpenseAccountAssembler { if (ObjectUtil.isNull(loginUser)) { throw new DigitalLogisticsException(UserError.TIMEOUT); } - String userName = loginUser.getUsername(); + // 获取用户姓名,优先使用userPo中的userName,如果为空则使用realname,最后使用username + String userName = null; + if (loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null) { + userName = loginUser.getUserPo().getUserName(); + } else if (loginUser.getRealname() != null) { + userName = loginUser.getRealname(); + } else { + userName = loginUser.getUsername(); + } // 获取登录人id Long userId = loginUser.getUserid(); diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/assember/serviceItemsManage/ServiceItemsManageAssembler.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/assember/serviceItemsManage/ServiceItemsManageAssembler.java index d3b340d79..766d4b5ef 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/assember/serviceItemsManage/ServiceItemsManageAssembler.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/assember/serviceItemsManage/ServiceItemsManageAssembler.java @@ -35,7 +35,15 @@ public class ServiceItemsManageAssembler { if (ObjectUtil.isNull(loginUser)) { throw new DigitalLogisticsException(UserError.TIMEOUT); } - String userName = loginUser.getUsername(); + // 获取用户姓名,优先使用userPo中的userName,如果为空则使用realname,最后使用username + String userName = null; + if (loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null) { + userName = loginUser.getUserPo().getUserName(); + } else if (loginUser.getRealname() != null) { + userName = loginUser.getRealname(); + } else { + userName = loginUser.getUsername(); + } // 获取登录人id Long userId = loginUser.getUserid(); diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/expenseAccount/ExpenseAccountApi.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/expenseAccount/ExpenseAccountApi.java index d1f0baa38..3679d7509 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/expenseAccount/ExpenseAccountApi.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/expenseAccount/ExpenseAccountApi.java @@ -57,18 +57,13 @@ public class ExpenseAccountApi extends BaseController{ { logger.info("收到查询费用科目列表请求,参数:{}", expenseAccountDTO); try { - //转换实体,如果 expenseAccountDTO 为 null,创建一个新的对象 + //转换实体(查询时不需要设置创建人和更新人信息) if (expenseAccountDTO == null) { expenseAccountDTO = new ExpenseAccountDTO(); logger.info("expenseAccountDTO 为 null,创建新对象"); } - ExpenseAccountDO expenseAccountDO = expenseAccountAssembler.toDO(expenseAccountDTO); - if(StringUtils.isBlank(expenseAccountDTO.getCreateByName())){ - expenseAccountDO.setCreateByName(null); - } - if(StringUtils.isBlank(expenseAccountDTO.getUpdateByName())){ - expenseAccountDO.setUpdateByName(null); - } + ExpenseAccountDO expenseAccountDO = new ExpenseAccountDO(); + BeanUtils.copyProperties(expenseAccountDTO, expenseAccountDO); logger.info("转换后的 ExpenseAccountDO:{}", expenseAccountDO); startPage(); logger.info("分页参数已设置"); diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/serviceItemsManage/ServiceItemsManageApi.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/serviceItemsManage/ServiceItemsManageApi.java index b862613d7..60b213989 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/serviceItemsManage/ServiceItemsManageApi.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/serviceItemsManage/ServiceItemsManageApi.java @@ -9,6 +9,7 @@ import com.mhd.basic.interfaces.assember.serviceItemsManage.ServiceItemsManageAs import com.mhd.basic.interfaces.dto.serviceItemsManage.ServiceItemsManageDTO; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang.StringUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -39,14 +40,9 @@ public class ServiceItemsManageApi extends BaseController{ @GetMapping("/list") public TableDataInfo list(ServiceItemsManageDTO serviceItemsManageDTO) { - //转换实体 - ServiceItemsManageDO serviceItemsManageDO = serviceItemsManageAssembler.toDO(serviceItemsManageDTO); - if(StringUtils.isBlank(serviceItemsManageDTO.getCreateByName())){ - serviceItemsManageDO.setCreateByName(null); - } - if(StringUtils.isBlank(serviceItemsManageDTO.getUpdateByName())){ - serviceItemsManageDO.setUpdateByName(null); - } + //转换实体(查询时不需要设置创建人和更新人信息) + ServiceItemsManageDO serviceItemsManageDO = new ServiceItemsManageDO(); + BeanUtils.copyProperties(serviceItemsManageDTO, serviceItemsManageDO); startPage(); List list = serviceItemsManageApplicationService.queryList(serviceItemsManageDO); return getDataTable(list); diff --git a/mhd-modules/mhd-system/src/main/resources/mapper/basic/ExpenseAccountMapper.xml b/mhd-modules/mhd-system/src/main/resources/mapper/basic/ExpenseAccountMapper.xml index 41cf1fdd0..c1cfa8aee 100644 --- a/mhd-modules/mhd-system/src/main/resources/mapper/basic/ExpenseAccountMapper.xml +++ b/mhd-modules/mhd-system/src/main/resources/mapper/basic/ExpenseAccountMapper.xml @@ -102,7 +102,7 @@ WHERE a.del_flag = 1 - order by a.update_time DESC + order by a.create_time DESC AND top_organization_id = #{conditionalMappingDO.topOrganizationId} + + AND organization_id = #{conditionalMappingDO.organizationId} + AND source_content like concat('%', #{conditionalMappingDO.sourceContent}, '%') diff --git a/mhd_bms/src/main/resources/mapper/MappingMethodMapper.xml b/mhd_bms/src/main/resources/mapper/MappingMethodMapper.xml index b757f6179..bd5cc8a84 100644 --- a/mhd_bms/src/main/resources/mapper/MappingMethodMapper.xml +++ b/mhd_bms/src/main/resources/mapper/MappingMethodMapper.xml @@ -14,12 +14,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from mapping_method where del_flag = 1 + ORDER BY create_time DESC AND top_organization_id = #{mappingMethodDO.topOrganizationId} + + AND organization_id = #{mappingMethodDO.organizationId} + and method_name like concat('%', #{mappingMethodDO.methodName}, '%') From fbecd9d970bad83ab776427e575c30801c2cb554 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Thu, 26 Feb 2026 11:44:08 +0800 Subject: [PATCH 2/4] =?UTF-8?q?bms=E5=BA=94=E6=94=B6=E8=B4=A6=E5=8D=95?= =?UTF-8?q?=E5=8F=91=E7=A5=A8=E5=8F=8Anc=E7=9B=B8=E5=85=B3=E4=BF=AE?= =?UTF-8?q?=E6=94=B9;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BillManageApplicationService.java | 9 +++- .../domain/billManage/entity/BillManage.java | 44 ++++++++++++++++- .../repository/facade/IBillManageService.java | 4 +- .../persistence/BillManageImpl.java | 49 ++++++++++++++++++- .../repository/po/BillManagePO.java | 44 ++++++++++++++++- .../repository/todo/BillManageDO.java | 44 ++++++++++++++++- .../service/BillManageDomainService.java | 8 ++- .../dto/billManage/BillManageDTO.java | 44 ++++++++++++++++- .../interfaces/facadeApi/BillManageApi.java | 29 ++++++++--- 9 files changed, 259 insertions(+), 16 deletions(-) diff --git a/mhd_bms/src/main/java/com/mhd/bms/application/server/billManage/BillManageApplicationService.java b/mhd_bms/src/main/java/com/mhd/bms/application/server/billManage/BillManageApplicationService.java index a141ccd3d..55eb16375 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/application/server/billManage/BillManageApplicationService.java +++ b/mhd_bms/src/main/java/com/mhd/bms/application/server/billManage/BillManageApplicationService.java @@ -265,6 +265,13 @@ public class BillManageApplicationService { return billManageDomainService.confirmBilling(billManageDO); } + + public int editIsInvoice(String billNumber, Integer isInvoice, String invoiceId, String invoiceMakeTime,String applyNumber) + { + return billManageDomainService.editIsInvoice(billNumber,isInvoice,invoiceId,invoiceMakeTime,applyNumber); + } + + /** * 查询对账详情 */ @@ -529,4 +536,4 @@ public class BillManageApplicationService { -} +} \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/entity/BillManage.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/entity/BillManage.java index 08d4e0691..456267ccd 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/entity/BillManage.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/entity/BillManage.java @@ -9,6 +9,7 @@ import java.math.BigDecimal; import lombok.Data; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; /** @@ -183,4 +184,45 @@ public class BillManage extends BaseVOEntity{ @ApiModelProperty("结算单优惠金额") private BigDecimal settlementDiscountsAmount; -} + + @ApiModelProperty(value = "运单发票开具状态(0-未索取,1-已索取,2-已开票,3-部分索取)") + private Integer isInvoice; + + + @ApiModelProperty(value = "发票表ID") + private String invoiceId; + + @ApiModelProperty(value = "开票时间") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private java.util.Date invoiceMakeTime; + + + @ApiModelProperty(value = "申请发票单号") + private String applyNumber; + + + @ApiModelProperty("nc同步状态 0-未同步 1-已同步") + private Integer synchronousStatus; + + + @ApiModelProperty(value = "nc同步时间") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private java.util.Date synchronousTime; + + @ApiModelProperty(value = "nc唯一标识") + private String ncId; + + @ApiModelProperty("nc同步状态 0-未同步 1-已同步") + private Integer skSynchronousStatus; + + + @ApiModelProperty(value = "nc同步时间") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private java.util.Date skSynchronousTime; + + @ApiModelProperty(value = "nc唯一标识") + private String skNcId; +} \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/facade/IBillManageService.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/facade/IBillManageService.java index 7320eaa64..86fb377e2 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/facade/IBillManageService.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/facade/IBillManageService.java @@ -40,4 +40,6 @@ public interface IBillManageService extends IService * 查询账单管理 */ public BillManagePO getInfo(Long billManageId); -} + + public int editIsInvoice(String billNumber, Integer isInvoice, String invoiceId, String invoiceMakeTime,String applyNumber); +} \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/persistence/BillManageImpl.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/persistence/BillManageImpl.java index 3f54433ef..9a43ec743 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/persistence/BillManageImpl.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/persistence/BillManageImpl.java @@ -1,5 +1,7 @@ package com.mhd.bms.domain.billManage.repository.persistence; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mhd.bms.domain.billManage.entity.BillManage; import com.mhd.bms.domain.billManage.repository.facade.IBillManageService; @@ -10,6 +12,8 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; @@ -78,4 +82,47 @@ public class BillManageImpl extends ServiceImpl im BeanUtils.copyProperties(billManage,billManagePO); return billManagePO; } -} + + @Override + public int editIsInvoice(String billNumber, Integer isInvoice, String invoiceId, String invoiceMakeTime,String applyNumber) { + if(org.apache.commons.lang3.StringUtils.isNotBlank(billNumber)){ + BillManage billManage= billManageMapper.selectOne(new QueryWrapper().lambda() + .eq(BillManage::getBillNumber,billNumber) + .eq(BillManage::getDelFlag,1)); + if(ObjectUtil.isNotNull(billManage)){ + billManage.setIsInvoice(isInvoice); + billManage.setInvoiceId(invoiceId); + billManage.setApplyNumber(applyNumber); + if(org.apache.commons.lang3.StringUtils.isNotBlank(invoiceMakeTime)){ + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + try { + billManage.setInvoiceMakeTime(formatter.parse(invoiceMakeTime)); + } catch (ParseException e) { + e.printStackTrace(); + } + } + return billManageMapper.updateById(billManage); + } + }else if(org.apache.commons.lang3.StringUtils.isNotBlank(invoiceId)){ + BillManage billManage= billManageMapper.selectOne(new QueryWrapper().lambda() + .eq(BillManage::getInvoiceId,invoiceId) + .eq(BillManage::getDelFlag,1)); + if(ObjectUtil.isNotNull(billManage)){ + billManage.setIsInvoice(isInvoice); + billManage.setInvoiceId(invoiceId); + billManage.setApplyNumber(applyNumber); + if(org.apache.commons.lang3.StringUtils.isNotBlank(invoiceMakeTime)){ + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + try { + billManage.setInvoiceMakeTime(formatter.parse(invoiceMakeTime)); + } catch (ParseException e) { + e.printStackTrace(); + } + } + return billManageMapper.updateById(billManage); + } + } + + return 0; + } +} \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/po/BillManagePO.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/po/BillManagePO.java index 938556f17..aedc20879 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/po/BillManagePO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/po/BillManagePO.java @@ -11,6 +11,7 @@ import java.math.BigDecimal; import java.util.List; import com.mhd.common.core.web.domain.BaseVOEntity; +import org.springframework.format.annotation.DateTimeFormat; /** @@ -194,4 +195,45 @@ public class BillManagePO extends BaseVOEntity{ @ApiModelProperty("流水ids") private String billingStatementIds; -} + + @ApiModelProperty(value = "运单发票开具状态(0-未索取,1-已索取,2-已开票,3-部分索取)") + private Integer isInvoice; + + + @ApiModelProperty(value = "发票表ID") + private String invoiceId; + + @ApiModelProperty(value = "开票时间") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private java.util.Date invoiceMakeTime; + + + @ApiModelProperty(value = "申请发票单号") + private String applyNumber; + + + @ApiModelProperty("nc同步状态 0-未同步 1-已同步") + private Integer synchronousStatus; + + + @ApiModelProperty(value = "nc同步时间") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private java.util.Date synchronousTime; + + @ApiModelProperty(value = "nc唯一标识") + private String ncId; + + @ApiModelProperty("nc同步状态 0-未同步 1-已同步") + private Integer skSynchronousStatus; + + + @ApiModelProperty(value = "nc同步时间") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private java.util.Date skSynchronousTime; + + @ApiModelProperty(value = "nc唯一标识") + private String skNcId; +} \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/todo/BillManageDO.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/todo/BillManageDO.java index 3bd8d7858..89d749056 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/todo/BillManageDO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/todo/BillManageDO.java @@ -7,6 +7,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import java.math.BigDecimal; import io.swagger.annotations.ApiModelProperty; import com.mhd.common.core.web.domain.BaseVOEntity; +import org.springframework.format.annotation.DateTimeFormat; import java.util.List; import java.util.Set; @@ -205,4 +206,45 @@ public class BillManageDO extends BaseVOEntity{ @ApiModelProperty("结算单优惠金额") private BigDecimal settlementDiscountsAmount; -} + + @ApiModelProperty(value = "运单发票开具状态(0-未索取,1-已索取,2-已开票,3-部分索取)") + private Integer isInvoice; + + + @ApiModelProperty(value = "发票表ID") + private String invoiceId; + + @ApiModelProperty(value = "开票时间") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private java.util.Date invoiceMakeTime; + + + @ApiModelProperty(value = "申请发票单号") + private String applyNumber; + + + @ApiModelProperty("nc同步状态 0-未同步 1-已同步") + private Integer synchronousStatus; + + + @ApiModelProperty(value = "nc同步时间") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private java.util.Date synchronousTime; + + @ApiModelProperty(value = "nc唯一标识") + private String ncId; + + @ApiModelProperty("nc同步状态 0-未同步 1-已同步") + private Integer skSynchronousStatus; + + + @ApiModelProperty(value = "nc同步时间") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private java.util.Date skSynchronousTime; + + @ApiModelProperty(value = "nc唯一标识") + private String skNcId; +} \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/service/BillManageDomainService.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/service/BillManageDomainService.java index 65150c8ba..39d7b759f 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/service/BillManageDomainService.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/service/BillManageDomainService.java @@ -297,6 +297,12 @@ public class BillManageDomainService { return flag && three; } + + public int editIsInvoice(String billNumber, Integer isInvoice, String invoiceId, String invoiceMakeTime,String applyNumber) + { + return billManageService.editIsInvoice(billNumber,isInvoice,invoiceId,invoiceMakeTime,applyNumber); + } + /** * 处理数据 */ @@ -503,4 +509,4 @@ public class BillManageDomainService { public List billAnalysisList(QueryWrapper queryWrapper) { return billManageService.list(queryWrapper); } -} +} \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/billManage/BillManageDTO.java b/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/billManage/BillManageDTO.java index 7cb79e109..ac4b7be25 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/billManage/BillManageDTO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/billManage/BillManageDTO.java @@ -8,6 +8,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import java.math.BigDecimal; import io.swagger.annotations.ApiModelProperty; import com.mhd.common.core.web.domain.BaseVOEntity; +import org.springframework.format.annotation.DateTimeFormat; import java.util.List; import java.util.Set; @@ -211,4 +212,45 @@ public class BillManageDTO extends BaseVOEntity{ @ApiModelProperty("结算单优惠金额") private BigDecimal settlementDiscountsAmount; -} + + @ApiModelProperty(value = "运单发票开具状态(0-未索取,1-已索取,2-已开票,3-部分索取)") + private Integer isInvoice; + + + @ApiModelProperty(value = "发票表ID") + private String invoiceId; + + @ApiModelProperty(value = "开票时间") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private java.util.Date invoiceMakeTime; + + + @ApiModelProperty(value = "申请发票单号") + private String applyNumber; + + + @ApiModelProperty("nc同步状态 0-未同步 1-已同步") + private Integer synchronousStatus; + + + @ApiModelProperty(value = "nc同步时间") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private java.util.Date synchronousTime; + + @ApiModelProperty(value = "nc唯一标识") + private String ncId; + + @ApiModelProperty("nc同步状态 0-未同步 1-已同步") + private Integer skSynchronousStatus; + + + @ApiModelProperty(value = "nc同步时间") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private java.util.Date skSynchronousTime; + + @ApiModelProperty(value = "nc唯一标识") + private String skNcId; +} \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/interfaces/facadeApi/BillManageApi.java b/mhd_bms/src/main/java/com/mhd/bms/interfaces/facadeApi/BillManageApi.java index 5b161eafe..a40d553e7 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/interfaces/facadeApi/BillManageApi.java +++ b/mhd_bms/src/main/java/com/mhd/bms/interfaces/facadeApi/BillManageApi.java @@ -13,6 +13,8 @@ import com.mhd.bms.domain.billingStatement.repository.todo.BillingStatementDO; import com.mhd.bms.infrastructure.utils.UniqueKeyUtil; import com.mhd.bms.interfaces.dto.billingStatement.BillingStatementDTO; import com.mhd.common.core.exception.ServiceException; +import com.mhd.common.log.annotation.Log; +import com.mhd.common.log.enums.BusinessType; import com.mhd.common.redis.enums.RedisLockTypeEnum; import com.mhd.common.redis.service.RedisLock; import io.swagger.annotations.ApiOperation; @@ -22,13 +24,7 @@ import org.redisson.api.RLock; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -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 org.springframework.web.bind.annotation.*; import com.mhd.bms.interfaces.dto.billManage.BillManageDTO; import com.mhd.bms.domain.billManage.repository.todo.BillManageDO; import com.mhd.bms.domain.billManage.repository.po.BillManagePO; @@ -157,6 +153,23 @@ public class BillManageApi extends BaseController{ } } + /** + * 发票开票修改对账单的开票状态 + */ + @Log(title = "对账单", description = "开票修改对账单的开票状态)", businessType = BusinessType.OTHER) + @ApiOperation("开票修改对账单的开票状态") + @GetMapping("/editIsInvoice") + public AjaxResult editIsInvoice(@RequestParam(name="billNumber") String billNumber, + @RequestParam(name="isInvoice") Integer isInvoice, + @RequestParam(name="invoiceId") String invoiceId, + @RequestParam(name="invoiceMakeTime") String invoiceMakeTime, + @RequestParam(name="applyNumber") String applyNumber) + { + + billManageApplicationService.editIsInvoice(billNumber,isInvoice,invoiceId,invoiceMakeTime,applyNumber); + return AjaxResult.success("发票开票修改对账单的开票状态成功"); + } + /** @@ -281,4 +294,4 @@ public class BillManageApi extends BaseController{ -} +} \ No newline at end of file From 83470dbf643666f4168498cf870cd36f560717a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Thu, 26 Feb 2026 13:44:41 +0800 Subject: [PATCH 3/4] =?UTF-8?q?pda=E6=94=B6=E8=B4=A7=E6=8A=A5=E9=94=99?= =?UTF-8?q?=E4=BF=AE=E6=94=B9;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StockReceiptOrderApplicationService.java | 60 ++++++++++--------- 1 file changed, 32 insertions(+), 28 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java index 9c0001448..d25ed4add 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java @@ -665,18 +665,20 @@ public class StockReceiptOrderApplicationService { List receiptMaterialDetailDOList = stockReceiptOrderDO.getMaterialDetailList(); receiptMaterialDetailDOList.forEach(receiptMaterialDetailDO -> { List receiptMaterialDetailDOChildrenList1 = receiptMaterialDetailDO.getChildren(); - ReceiptMaterialDetailDO receiptMaterialDetailDOChildren = receiptMaterialDetailDOChildrenList1.stream().filter(p -> 1 == p.getLevel()).collect(Collectors.toList()).get(0); - receiptMaterialDetailDO.setMaterialDetailId(receiptMaterialDetailDOChildren.getMaterialDetailId()); - receiptMaterialDetailDO.setReceiptQuantity(receiptMaterialDetailDOChildren.getReceiptQuantity()); - receiptMaterialDetailDO.setMaterialStatusCode(receiptMaterialDetailDOChildren.getMaterialStatusCode()); - receiptMaterialDetailDO.setBatchNumber(receiptMaterialDetailDOChildren.getBatchNumber()); - receiptMaterialDetailDO.setContainerId(receiptMaterialDetailDOChildren.getContainerId()); - receiptMaterialDetailDO.setLevel(receiptMaterialDetailDOChildren.getLevel()); - receiptMaterialDetailDO.setMaterialMoreDetailList(receiptMaterialDetailDOChildren.getMaterialMoreDetailList()); - receiptMaterialDetailDO.setMaterialDetailSerialNumberList(receiptMaterialDetailDOChildren.getMaterialDetailSerialNumberList()); - //只留二级 - List receiptMaterialDetailDOChildrenList2 = receiptMaterialDetailDOChildrenList1.stream().filter(p -> 2 == p.getLevel()).collect(Collectors.toList()); - receiptMaterialDetailDO.setChildren(receiptMaterialDetailDOChildrenList2); + if (receiptMaterialDetailDOChildrenList1 != null && receiptMaterialDetailDOChildrenList1.size() > 0) { + ReceiptMaterialDetailDO receiptMaterialDetailDOChildren = receiptMaterialDetailDOChildrenList1.stream().filter(p -> 1 == p.getLevel()).collect(Collectors.toList()).get(0); + receiptMaterialDetailDO.setMaterialDetailId(receiptMaterialDetailDOChildren.getMaterialDetailId()); + receiptMaterialDetailDO.setReceiptQuantity(receiptMaterialDetailDOChildren.getReceiptQuantity()); + receiptMaterialDetailDO.setMaterialStatusCode(receiptMaterialDetailDOChildren.getMaterialStatusCode()); + receiptMaterialDetailDO.setBatchNumber(receiptMaterialDetailDOChildren.getBatchNumber()); + receiptMaterialDetailDO.setContainerId(receiptMaterialDetailDOChildren.getContainerId()); + receiptMaterialDetailDO.setLevel(receiptMaterialDetailDOChildren.getLevel()); + receiptMaterialDetailDO.setMaterialMoreDetailList(receiptMaterialDetailDOChildren.getMaterialMoreDetailList()); + receiptMaterialDetailDO.setMaterialDetailSerialNumberList(receiptMaterialDetailDOChildren.getMaterialDetailSerialNumberList()); + //只留二级 + List receiptMaterialDetailDOChildrenList2 = receiptMaterialDetailDOChildrenList1.stream().filter(p -> 2 == p.getLevel()).collect(Collectors.toList()); + receiptMaterialDetailDO.setChildren(receiptMaterialDetailDOChildrenList2); + } }); //收货装配参数 StockReceiptOrderDO assembleStockReceiptOrderDO = assembleParamByReceipt(stockReceiptOrderDO); @@ -727,24 +729,26 @@ public class StockReceiptOrderApplicationService { List receiptMaterialDetailDOList = stockReceiptOrderDO.getMaterialDetailList(); receiptMaterialDetailDOList.forEach(receiptMaterialDetailDO -> { List receiptMaterialDetailDOChildrenList1 = receiptMaterialDetailDO.getChildren(); - ReceiptMaterialDetailDO receiptMaterialDetailDOChildren = receiptMaterialDetailDOChildrenList1.get(0); - receiptMaterialDetailDO.setMaterialDetailId(receiptMaterialDetailDOChildren.getMaterialDetailId()); - receiptMaterialDetailDO.setReceiptQuantity(receiptMaterialDetailDOChildren.getReceiptQuantity()); - receiptMaterialDetailDO.setMaterialStatusCode(receiptMaterialDetailDOChildren.getMaterialStatusCode()); - receiptMaterialDetailDO.setBatchNumber(receiptMaterialDetailDOChildren.getBatchNumber()); - receiptMaterialDetailDO.setContainerId(receiptMaterialDetailDOChildren.getContainerId()); - receiptMaterialDetailDO.setLevel(receiptMaterialDetailDOChildren.getLevel()); - receiptMaterialDetailDO.setMaterialMoreDetailList(receiptMaterialDetailDOChildren.getMaterialMoreDetailList()); - receiptMaterialDetailDO.setMaterialDetailSerialNumberList(receiptMaterialDetailDOChildren.getMaterialDetailSerialNumberList()); - //只留二级 - List receiptMaterialDetailDOChildrenList2 = new ArrayList<>(); - for (int i = 0; i < receiptMaterialDetailDOChildrenList1.size(); i++){ - if (i == 0){ - continue; + if (receiptMaterialDetailDOChildrenList1 != null && receiptMaterialDetailDOChildrenList1.size() > 0) { + ReceiptMaterialDetailDO receiptMaterialDetailDOChildren = receiptMaterialDetailDOChildrenList1.get(0); + receiptMaterialDetailDO.setMaterialDetailId(receiptMaterialDetailDOChildren.getMaterialDetailId()); + receiptMaterialDetailDO.setReceiptQuantity(receiptMaterialDetailDOChildren.getReceiptQuantity()); + receiptMaterialDetailDO.setMaterialStatusCode(receiptMaterialDetailDOChildren.getMaterialStatusCode()); + receiptMaterialDetailDO.setBatchNumber(receiptMaterialDetailDOChildren.getBatchNumber()); + receiptMaterialDetailDO.setContainerId(receiptMaterialDetailDOChildren.getContainerId()); + receiptMaterialDetailDO.setLevel(receiptMaterialDetailDOChildren.getLevel()); + receiptMaterialDetailDO.setMaterialMoreDetailList(receiptMaterialDetailDOChildren.getMaterialMoreDetailList()); + receiptMaterialDetailDO.setMaterialDetailSerialNumberList(receiptMaterialDetailDOChildren.getMaterialDetailSerialNumberList()); + //只留二级 + List receiptMaterialDetailDOChildrenList2 = new ArrayList<>(); + for (int i = 0; i < receiptMaterialDetailDOChildrenList1.size(); i++){ + if (i == 0){ + continue; + } + receiptMaterialDetailDOChildrenList2.add(receiptMaterialDetailDOChildrenList1.get(i)); } - receiptMaterialDetailDOChildrenList2.add(receiptMaterialDetailDOChildrenList1.get(i)); + receiptMaterialDetailDO.setChildren(receiptMaterialDetailDOChildrenList2); } - receiptMaterialDetailDO.setChildren(receiptMaterialDetailDOChildrenList2); }); NoReceiptOrderDO noReceiptOrderDO = assembleParamByNoOrderReceipt(stockReceiptOrderDO); return stockReceiptOrderDomainService.noOrderReceipt(noReceiptOrderDO); From 33575a102ccfe33f67f6cf6c4417be006372c4b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Thu, 26 Feb 2026 14:39:59 +0800 Subject: [PATCH 4/4] =?UTF-8?q?WMS=E6=8B=A3=E8=B4=A7=E5=8D=95=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E6=8B=A3=E8=B4=A7=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/basic/ContractManageMapper.xml | 2 +- .../mapper/basic/ExpenseAccountMapper.xml | 9 +++- .../PickingOrderApplicationService.java | 47 +++++++++++++++++-- 3 files changed, 52 insertions(+), 6 deletions(-) diff --git a/mhd-modules/mhd-system/src/main/resources/mapper/basic/ContractManageMapper.xml b/mhd-modules/mhd-system/src/main/resources/mapper/basic/ContractManageMapper.xml index e30db65c0..14d09a526 100644 --- a/mhd-modules/mhd-system/src/main/resources/mapper/basic/ContractManageMapper.xml +++ b/mhd-modules/mhd-system/src/main/resources/mapper/basic/ContractManageMapper.xml @@ -11,7 +11,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from contract_manage where del_flag = 1 - order by create_time desc @@ -116,6 +115,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" resultType="com.mhd.basic.domain.contractManage.repository.po.ContractManagePO"> + order by create_time desc diff --git a/mhd-modules/mhd-system/src/main/resources/mapper/basic/ExpenseAccountMapper.xml b/mhd-modules/mhd-system/src/main/resources/mapper/basic/ExpenseAccountMapper.xml index c1cfa8aee..88cf0987e 100644 --- a/mhd-modules/mhd-system/src/main/resources/mapper/basic/ExpenseAccountMapper.xml +++ b/mhd-modules/mhd-system/src/main/resources/mapper/basic/ExpenseAccountMapper.xml @@ -145,7 +145,14 @@ - + + + + + and organization_id = #{expenseAccountDO.organizationId} + + + and top_organization_id = #{expenseAccountDO.topOrganizationId} diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java index eec9a2bd5..e803c68e9 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java @@ -24,6 +24,10 @@ import com.mhd.wms.domain.pickingMaterialDetail.service.PickingMaterialDetailDom import com.mhd.wms.domain.pickingOrder.repository.po.PickingOrderPO; import com.mhd.wms.domain.pickingOrder.repository.todo.PickingOrderDO; import com.mhd.wms.domain.pickingOrder.service.PickingOrderDomainService; +import com.mhd.wms.domain.outMaterialDetail.repository.facade.IOutMaterialDetailService; +import com.mhd.wms.domain.outMaterialDetail.entity.OutMaterialDetail; +import com.mhd.wms.domain.outMaterialDetail.repository.po.OutMaterialDetailPO; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -53,6 +57,8 @@ public class PickingOrderApplicationService { private UserServiceFeign userServiceFeign; @Autowired private SystemServiceFeign systemServiceFeign; + @Autowired + private IOutMaterialDetailService outMaterialDetailService; /** @@ -611,10 +617,43 @@ public class PickingOrderApplicationService { PickingMaterialDetailDO returnPickingMaterialDetailDO = new PickingMaterialDetailDO(); BeanUtils.copyProperties(pickingMaterialDetailPO, returnPickingMaterialDetailDO); returnPickingMaterialDetailDO.setActualQuantity(pickingMaterialDetailDO.getActualQuantity()); - returnPickingMaterialDetailDO.setTotalArea(pickingMaterialDetailDO.getTotalArea()); - returnPickingMaterialDetailDO.setTotalVolume(pickingMaterialDetailDO.getTotalVolume()); - returnPickingMaterialDetailDO.setTotalGrossWeight(pickingMaterialDetailDO.getTotalGrossWeight()); - returnPickingMaterialDetailDO.setTotalNetWeight(pickingMaterialDetailDO.getTotalNetWeight()); + + // 毛重、净重、面积、体积:如果前端传递了值,使用前端传递的值(允许修改);否则从出库单明细中自动带出 + Long outUniqueId = pickingMaterialDetailPO.getOutUniqueId(); + OutMaterialDetail outMaterialDetail = null; + if (outUniqueId != null) { + outMaterialDetail = outMaterialDetailService.getOne(new QueryWrapper().lambda() + .eq(OutMaterialDetail::getUniqueId, outUniqueId) + .eq(OutMaterialDetail::getDelFlag, 1)); + } + + // 总面积:优先使用前端传递的值,如果为空则从出库单明细中获取 + if (pickingMaterialDetailDO.getTotalArea() != null) { + returnPickingMaterialDetailDO.setTotalArea(pickingMaterialDetailDO.getTotalArea()); + } else if (outMaterialDetail != null && outMaterialDetail.getTotalArea() != null) { + returnPickingMaterialDetailDO.setTotalArea(outMaterialDetail.getTotalArea()); + } + + // 总体积:优先使用前端传递的值,如果为空则从出库单明细中获取 + if (pickingMaterialDetailDO.getTotalVolume() != null) { + returnPickingMaterialDetailDO.setTotalVolume(pickingMaterialDetailDO.getTotalVolume()); + } else if (outMaterialDetail != null && outMaterialDetail.getTotalVolume() != null) { + returnPickingMaterialDetailDO.setTotalVolume(outMaterialDetail.getTotalVolume()); + } + + // 总毛重:优先使用前端传递的值,如果为空则从出库单明细中获取 + if (pickingMaterialDetailDO.getTotalGrossWeight() != null) { + returnPickingMaterialDetailDO.setTotalGrossWeight(pickingMaterialDetailDO.getTotalGrossWeight()); + } else if (outMaterialDetail != null && outMaterialDetail.getTotalGrossWeight() != null) { + returnPickingMaterialDetailDO.setTotalGrossWeight(outMaterialDetail.getTotalGrossWeight()); + } + + // 总净重:优先使用前端传递的值,如果为空则从出库单明细中获取 + if (pickingMaterialDetailDO.getTotalNetWeight() != null) { + returnPickingMaterialDetailDO.setTotalNetWeight(pickingMaterialDetailDO.getTotalNetWeight()); + } else if (outMaterialDetail != null && outMaterialDetail.getTotalNetWeight() != null) { + returnPickingMaterialDetailDO.setTotalNetWeight(outMaterialDetail.getTotalNetWeight()); + } //是否开启了序列号管理 if (pickingMaterialDetailPO.getSerialNumberManage() == 1){ if (CollectionUtils.isEmpty(pickingMaterialDetailDO.getMaterialDetailSerialNumberList())){