diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java
index a855cffd9..091a772e5 100644
--- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java
+++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java
@@ -164,11 +164,25 @@ public class ContractManageApplicationService {
* 处理数据
*/
private void handleData(ContractManageDO contractManageDO) {
- //根据合同生效时间判断合同是否生效
- if (DateUtil.compare(contractManageDO.getEffectiveDate(), new Date()) > 0) {
- contractManageDO.setContractState(2);
- } else {
- contractManageDO.setContractState(1);
+ // 如果前端未传合同状态,则根据生效/到期时间自动计算;
+ // 如果前端已经传了 contractState,则尊重前端值
+ if (contractManageDO.getContractState() == null) {
+ // 合同状态(1-未生效,2-使用中,3-已过期,4-已作废)
+ Date now = DateUtil.beginOfDay(new Date());
+ Date effectiveDate = contractManageDO.getEffectiveDate();
+ Date expirationDate = contractManageDO.getExpirationDate();
+ if (effectiveDate != null && expirationDate != null) {
+ if (DateUtil.compare(now, effectiveDate) < 0) {
+ // 当前时间早于生效日期:未生效
+ contractManageDO.setContractState(1);
+ } else if (DateUtil.compare(now, expirationDate) > 0) {
+ // 当前时间晚于到期日期:已过期
+ contractManageDO.setContractState(3);
+ } else {
+ // 生效日期 <= 当前时间 <= 到期日期:使用中
+ contractManageDO.setContractState(2);
+ }
+ }
}
if(StringUtils.isNotEmpty(contractManageDO.getSettlementCustomersCode())){
AjaxResult ajaxResult = bmsServiceFeign.getCustomersInfoByCode(contractManageDO.getSettlementCustomersCode());
@@ -190,11 +204,19 @@ public class ContractManageApplicationService {
* @param contractManageDO
*/
private void checkContract(ContractManageDO contractManageDO) {
+ // 通用/特殊合同的唯一性应在“同一组织”内生效,不同组织之间互不影响
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (ObjectUtil.isNull(loginUser) || loginUser.getUserPo() == null) {
+ throw new DigitalLogisticsException(UserError.TIMEOUT);
+ }
ContractManageDO commonQueryParam = new ContractManageDO();
commonQueryParam.setContractType(contractManageDO.getContractType());
commonQueryParam.setSettlementCustomersCode(contractManageDO.getSettlementCustomersCode());
commonQueryParam.setEffectiveDateString(DateUtil.format(contractManageDO.getEffectiveDate(),"yyyy-MM-dd"));
commonQueryParam.setExpirationDateString(DateUtil.format(contractManageDO.getExpirationDate(),"yyyy-MM-dd"));
+ // 按当前登录人的组织维度进行唯一性校验:不同组织下的通用/特殊合同互不影响
+ commonQueryParam.setOrganizationId(loginUser.getUserPo().getOrganizationId());
+ commonQueryParam.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
//通用合同
if(contractManageDO.getCommonContractFlag()==1){
commonQueryParam.setCommonContractFlag(1);
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 14d09a526..76d2a0d1d 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
@@ -178,11 +178,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
AND date_format(expiration_date,'%Y-%m-%d') #{contractManageDO.expirationDateEnd}
+
AND (
- date_format(effective_date,'%Y-%m-%d') =]]> #{contractManageDO.effectiveDateString}
- OR date_format(expiration_date,'%Y-%m-%d') #{contractManageDO.expirationDateString}
+ date_format(effective_date,'%Y-%m-%d') #{contractManageDO.expirationDateString}
+ AND date_format(expiration_date,'%Y-%m-%d') =]]> #{contractManageDO.effectiveDateString}
)
diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/bmsInvoiceList/repository/persistence/BmsInvoiceListServiceImpl.java b/mhd_bms/src/main/java/com/mhd/bms/domain/bmsInvoiceList/repository/persistence/BmsInvoiceListServiceImpl.java
index 71282f12d..1f88bd48c 100644
--- a/mhd_bms/src/main/java/com/mhd/bms/domain/bmsInvoiceList/repository/persistence/BmsInvoiceListServiceImpl.java
+++ b/mhd_bms/src/main/java/com/mhd/bms/domain/bmsInvoiceList/repository/persistence/BmsInvoiceListServiceImpl.java
@@ -162,6 +162,7 @@ public class BmsInvoiceListServiceImpl extends ServiceImpl 0) {
for (BillManage billManage : billManages) {
billManage.setIsInvoice(2);
+ billManage.setInvoiceId(bmsInvoiceList.getId().toString());
+ billManage.setApplyNumber(bmsInvoiceList.getApplyNumber());
billManageMapper.updateById(billManage);
}
}
diff --git a/mhd_bms/src/main/resources/mapper/BmsInvoiceInfoMapper.xml b/mhd_bms/src/main/resources/mapper/BmsInvoiceInfoMapper.xml
index 1e12d8390..1811f8b19 100644
--- a/mhd_bms/src/main/resources/mapper/BmsInvoiceInfoMapper.xml
+++ b/mhd_bms/src/main/resources/mapper/BmsInvoiceInfoMapper.xml
@@ -14,13 +14,13 @@
and a.id = #{tmsInvoiceInfoDTO.id}
and instr(a.id ,#{tmsInvoiceInfoDTO.id}) > 0
and a.create_by = #{tmsInvoiceInfoDTO.createBy}
-
+
and a.invoice_title LIKE CONCAT('%',#{tmsInvoiceInfoDTO.invoiceTitle},'%')
-
+
and a.tax_reg_account LIKE CONCAT('%',#{tmsInvoiceInfoDTO.taxRegAccount},'%')
-
+
and a.create_by_name LIKE CONCAT('%',#{tmsInvoiceInfoDTO.createByName},'%')
diff --git a/mhd_bms/src/main/resources/mapper/BmsInvoiceListMapper.xml b/mhd_bms/src/main/resources/mapper/BmsInvoiceListMapper.xml
index 97c87bbd0..8dfe34756 100644
--- a/mhd_bms/src/main/resources/mapper/BmsInvoiceListMapper.xml
+++ b/mhd_bms/src/main/resources/mapper/BmsInvoiceListMapper.xml
@@ -6,7 +6,7 @@
FROM
bms_invoice_list a
- LEFT JOIN bms_waybill_invoiced b ON a.id = b.invoice_list_id
+
where a.is_delete = 0
group by a.id
@@ -48,19 +48,19 @@
and a.sys_org_code = #{bmsInvoiceListQueryDTO.sysOrgCode}
-
+
and a.apply_number LIKE CONCAT('%',#{bmsInvoiceListQueryDTO.applyNumber},'%')
-
+
and a.shipper_name LIKE CONCAT('%',#{bmsInvoiceListQueryDTO.shipperName},'%')
-
+
and a.shipper_id = #{bmsInvoiceListQueryDTO.shipperId}
-
+
and a.company_name LIKE CONCAT('%',#{bmsInvoiceListQueryDTO.companyName},'%')
-
+
and a.invoice_title LIKE CONCAT('%',#{bmsInvoiceListQueryDTO.invoiceTitle},'%')
diff --git a/mhd_transport/src/main/resources/mapper/inventory/InventoryMapper.xml b/mhd_transport/src/main/resources/mapper/inventory/InventoryMapper.xml
index f2073d406..9b199f4f8 100644
--- a/mhd_transport/src/main/resources/mapper/inventory/InventoryMapper.xml
+++ b/mhd_transport/src/main/resources/mapper/inventory/InventoryMapper.xml
@@ -80,7 +80,7 @@
AND m.code_managed = #{query.codeManaged}
-
+
and DATE_FORMAT(i.created_at,'%Y-%m-%d') =]]> DATE_FORMAT(#{query.createdAtStart},'%Y-%m-%d')
and DATE_FORMAT(i.created_at,'%Y-%m-%d') DATE_FORMAT(#{query.createdAtEnd},'%Y-%m-%d')
@@ -118,4 +118,4 @@
ORDER BY i.updated_at DESC
-
+
\ No newline at end of file
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java
index 7144d5d33..7b14e15b6 100644
--- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java
@@ -815,6 +815,10 @@ public class StockOutOrderApplicationService {
//未进行分配直接跳过
continue;
}
+ BigDecimal alreadyAllocationQuantity = outMaterialDetailDO.getAlreadyAllocationQuantity();
+ BigDecimal allocationQuantity = outMaterialDetailDO.getAllocationQuantity();
+ BigDecimal nowAllocationQuantity = allocationQuantity.subtract(alreadyAllocationQuantity);
+ outMaterialDetailDO.setNowAllocationQuantity(nowAllocationQuantity);
BigDecimal totalAllocationQuantity = BigDecimal.ZERO;//当前作业分配数量
//判断收否分配 第一次分配 修改分配数量
// if (outMaterialDetailPO.getAllocationQuantity().compareTo(BigDecimal.ZERO) == 0){
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/entity/OutMaterialDetail.java b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/entity/OutMaterialDetail.java
index 2e62c68fa..e3b250160 100644
--- a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/entity/OutMaterialDetail.java
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/entity/OutMaterialDetail.java
@@ -73,6 +73,11 @@ public class OutMaterialDetail extends BaseVOEntity {
@Excel(name = "已分配数量")
private BigDecimal alreadyAllocationQuantity;
+ @ApiModelProperty("本次分配数量")
+ @Excel(name = "本次分配数量")
+ @TableField(exist = false)
+ private BigDecimal nowAllocationQuantity;
+
@ApiModelProperty("分配数量")
@Excel(name = "分配数量")
private BigDecimal allocationQuantity;
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/persistence/OutMaterialDetailImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/persistence/OutMaterialDetailImpl.java
index c04941607..705b85016 100644
--- a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/persistence/OutMaterialDetailImpl.java
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/persistence/OutMaterialDetailImpl.java
@@ -418,15 +418,14 @@ public class OutMaterialDetailImpl extends ServiceImpl outMaterialDetailList,String outOrderNumber,LoginUser loginUser) {
StockOutOrder stockOutOrder = stockOutOrderMapper.selectOne(new QueryWrapper().lambda().eq(StockOutOrder::getOutOrderNumber, outOrderNumber));
for (OutMaterialDetail outMaterialDetail : outMaterialDetailList) {
- Long materialDetailId = outMaterialDetail.getMaterialDetailId();
- OutMaterialDetail isAllocatedDetail = outMaterialDetailMapper.selectById(materialDetailId);
- String isAllocated = isAllocatedDetail.getIsAllocated();
- // 如果已经分配过,则跳过本次循环(该明细已分配过,不再重复处理)
- if (isAllocated != null && "1".equals(isAllocated)) {
+ BigDecimal nowAllocationQuantity = outMaterialDetail.getNowAllocationQuantity();
+ if (nowAllocationQuantity == null && nowAllocationQuantity.compareTo(BigDecimal.ZERO) <= 0) {
continue;
}
Long materialInventoryId = outMaterialDetail.getMaterialInventoryId();
- BigDecimal allocationQuantity = outMaterialDetail.getAllocationQuantity();
+
+ //分配数量为本次分配数量
+ BigDecimal allocationQuantity = outMaterialDetail.getNowAllocationQuantity();
if (ObjectUtils.isEmpty(allocationQuantity)) {
allocationQuantity = BigDecimal.ZERO;
}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/po/OutMaterialDetailPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/po/OutMaterialDetailPO.java
index 932903cf6..dae5b327e 100644
--- a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/po/OutMaterialDetailPO.java
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/po/OutMaterialDetailPO.java
@@ -80,6 +80,11 @@ public class OutMaterialDetailPO extends StockOutOrderBaseDO {
@Excel(name = "分配数量")
private BigDecimal allocationQuantity;
+ @ApiModelProperty("本次分配数量")
+ @Excel(name = "本次分配数量")
+ @TableField(exist = false)
+ private BigDecimal nowAllocationQuantity;
+
@ApiModelProperty("拣货数量")
@Excel(name = "拣货数量")
private BigDecimal pickingQuantity;
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/todo/OutMaterialDetailDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/todo/OutMaterialDetailDO.java
index 2b17ee536..a4d1eaee0 100644
--- a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/todo/OutMaterialDetailDO.java
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/todo/OutMaterialDetailDO.java
@@ -1,5 +1,6 @@
package com.mhd.wms.domain.outMaterialDetail.repository.todo;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.mhd.common.core.annotation.Excel;
@@ -70,6 +71,12 @@ public class OutMaterialDetailDO extends BaseVOEntity {
@Excel(name = "已分配数量")
private BigDecimal alreadyAllocationQuantity;
+
+ @ApiModelProperty("本次分配数量")
+ @Excel(name = "本次分配数量")
+ @TableField(exist = false)
+ private BigDecimal nowAllocationQuantity;
+
@ApiModelProperty("分配数量")
@Excel(name = "分配数量")
private BigDecimal allocationQuantity;