diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/mapper/ReceiptHeaderMapper.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/mapper/ReceiptHeaderMapper.java index b44454a..9153024 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/mapper/ReceiptHeaderMapper.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/mapper/ReceiptHeaderMapper.java @@ -1,11 +1,11 @@ package org.jeecg.modules.wms.receipt.receiptHeader.mapper; -import java.util.List; - import org.apache.ibatis.annotations.Param; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptHeader; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + /** * @Description: 入库表主表 * @Author: jeecg-boot @@ -14,4 +14,8 @@ import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptHeader; */ public interface ReceiptHeaderMapper extends BaseMapper<ReceiptHeader> { + @Select("select code from (select r.id, r.code from receipt_header r where r.type = #{receiptType} " + + "union all select h.id, h.code from receipt_header_history h where h.type = #{receiptType}) t order by t.id desc limit 1") + ReceiptHeader getMaxReceiptHeaderCode(@Param("receiptType") String receiptType); + } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/IReceiptHeaderService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/IReceiptHeaderService.java index da8d7a1..4679b22 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/IReceiptHeaderService.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/IReceiptHeaderService.java @@ -31,8 +31,6 @@ public interface IReceiptHeaderService extends IService<ReceiptHeader> { */ public Result<ReceiptHeader> saveReceiptHeader(ReceiptHeader receiptHeader); - public String createCode(String receiptType); - public boolean updateReceiptHeaderStatus(Integer id); public boolean updateReceiptHeader(Integer id); @@ -41,4 +39,6 @@ public interface IReceiptHeaderService extends IService<ReceiptHeader> { public ReceiptHeader getReceiptHeaderByReferCode(String referCode, String warehouseCode); + String createReceiptCode(String receiptType); + } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java index f7277ea..982443c 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java @@ -3,7 +3,6 @@ package org.jeecg.modules.wms.receipt.receiptHeader.service.impl; import java.io.Serializable; import java.math.BigDecimal; import java.text.SimpleDateFormat; -import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.List; @@ -12,11 +11,9 @@ import javax.annotation.Resource; import org.jeecg.common.api.vo.Result; import org.jeecg.common.exception.JeecgBootException; -import org.jeecg.modules.wms.audit.entity.Audit; import org.jeecg.modules.wms.audit.service.IAuditService; import org.jeecg.modules.wms.config.receiptType.entity.ReceiptType; import org.jeecg.modules.wms.config.receiptType.service.IReceiptTypeService; -import org.jeecg.modules.wms.flow.entity.FlowDetail; import org.jeecg.modules.wms.flow.service.IFlowDetailService; import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptDetail; import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptHeader; @@ -112,7 +109,7 @@ public class ReceiptHeaderServiceImpl extends ServiceImpl<ReceiptHeaderMapper, R return Result.error("上游单号" + referCode + ",已经存在"); } } - String code = createCode(receiptHeader.getType()); + String code = createReceiptCode(receiptHeader.getType()); if (StringUtils.isEmpty(code)) { throw new JeecgBootException("根据入库单据类型" + receiptHeader.getType() + "生成单号失败"); } @@ -128,14 +125,12 @@ public class ReceiptHeaderServiceImpl extends ServiceImpl<ReceiptHeaderMapper, R @Override @Transactional - public String createCode(String receiptType) { + public String createReceiptCode(String receiptType) { String code = null; Date now = new Date(); SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd"); - LambdaQueryWrapper<ReceiptHeader> receiptHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(); - receiptHeaderLambdaQueryWrapper.eq(ReceiptHeader::getType, receiptType).select(ReceiptHeader::getCode).orderByDesc(ReceiptHeader::getId).last("Limit 1"); String maxCode = null; - ReceiptHeader receiptHeader = this.getOne(receiptHeaderLambdaQueryWrapper); + ReceiptHeader receiptHeader = receiptHeaderMapper.getMaxReceiptHeaderCode(receiptType); if (receiptHeader != null) { maxCode = receiptHeader.getCode(); }