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;