add 入库单单号生成规则

dev
wanghao 2 months ago
parent 2340f948c0
commit 8665a58f77

@ -1,9 +1,12 @@
package org.dromara.wms.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.tenant.core.TenantEntity;
import java.io.Serial;
@ -72,5 +75,28 @@ public class WmsInStockDetails extends TenantEntity {
*/
private String delFlag;
@TableField(exist = false)
/**
* SAP
*/
private String materialCode;
@TableField(exist = false)
/**
* SAP
*/
private String materialName;
@TableField(exist = false)
/**
*
*/
private String materialBrand;
@TableField(exist = false)
private String materialModel;
@TableField(exist = false)
/**
*
*/
private String warehouseName;
}

@ -94,5 +94,27 @@ public class WmsInStockDetailsVo implements Serializable {
@ExcelProperty(value = "更新时间")
private Date updateTime;
/**
* SAP
*/
private String materialCode;
/**
* SAP
*/
private String materialName;
/**
*
*/
private String materialBrand;
/**
*
*/
private String materialModel;
/**
*
*/
private String warehouseName;
}

@ -18,4 +18,5 @@ import org.springframework.stereotype.Repository;
*/
public interface WmsInStockBillMapper extends BaseMapperPlus<WmsInStockBill, WmsInStockBillVo> {
int selectCountNowInStore();
}

@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.enums.FormatsType;
import org.dromara.common.core.utils.DateUtils;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
@ -17,6 +19,7 @@ import org.dromara.wms.mapper.WmsInStockDetailsMapper;
import org.dromara.wms.service.IWmsInStockBillService;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@ -83,7 +86,8 @@ public class WmsInStockBillServiceImpl implements IWmsInStockBillService {
.eq(StringUtils.isNotBlank(bo.getFlowStatus()), WmsInStockBill::getFlowStatus, bo.getFlowStatus())
.eq(bo.getWarehouseId() != null, WmsInStockBill::getWarehouseId, bo.getWarehouseId())
.between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null,
WmsInStockBill::getCreateTime, params.get("beginCreateTime"), params.get("endCreateTime"));
WmsInStockBill::getCreateTime, params.get("beginCreateTime"), params.get("endCreateTime"))
.orderByDesc(WmsInStockBill::getCreateTime);
}
/**
@ -95,6 +99,17 @@ public class WmsInStockBillServiceImpl implements IWmsInStockBillService {
@Override
public Boolean insertByBo(WmsInStockBillBo bo) {
WmsInStockBill add = MapstructUtils.convert(bo, WmsInStockBill.class);
// 查询创建时间为今天的入库单条数
int count = baseMapper.selectCountNowInStore();
String dateTimeNow = DateUtils.dateTimeNow(FormatsType.YYYYMMDD);
if (count > 0) {
String tag = String.format("%03d", count + 1);
add.setInStockCode("RK" + dateTimeNow + "-" + tag);
} else {
add.setInStockCode("RK" + dateTimeNow + "-" + "001");
}
add.setFlowStatus("就绪");
boolean flag = baseMapper.insert(add) > 0;
if (flag) {

@ -1,24 +1,25 @@
package org.dromara.wms.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.wms.domain.BaseMaterialInfo;
import org.dromara.wms.domain.WmsInStockDetails;
import org.dromara.wms.domain.WmsWarehouseInfo;
import org.dromara.wms.domain.bo.WmsInStockDetailsBo;
import org.dromara.wms.domain.vo.WmsInStockDetailsVo;
import org.dromara.wms.domain.WmsInStockDetails;
import org.dromara.wms.mapper.WmsInStockDetailsMapper;
import org.dromara.wms.service.IWmsInStockDetailsService;
import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* Service
@ -39,23 +40,23 @@ public class WmsInStockDetailsServiceImpl implements IWmsInStockDetailsService {
* @return
*/
@Override
public WmsInStockDetailsVo queryById(Long inStockDetailsId){
public WmsInStockDetailsVo queryById(Long inStockDetailsId) {
return baseMapper.selectVoById(inStockDetailsId);
}
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<WmsInStockDetailsVo> queryPageList(WmsInStockDetailsBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<WmsInStockDetails> lqw = buildQueryWrapper(bo);
Page<WmsInStockDetailsVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<WmsInStockDetailsVo> queryPageList(WmsInStockDetailsBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<WmsInStockDetails> lqw = buildQueryWrapper(bo);
Page<WmsInStockDetailsVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
*
@ -72,12 +73,15 @@ public class WmsInStockDetailsServiceImpl implements IWmsInStockDetailsService {
private MPJLambdaWrapper<WmsInStockDetails> buildQueryWrapper(WmsInStockDetailsBo bo) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<WmsInStockDetails> lqw = JoinWrappers.lambda(WmsInStockDetails.class)
.selectAll(WmsInStockDetails.class)
.eq(bo.getInStockBillId() != null, WmsInStockDetails::getInStockBillId, bo.getInStockBillId())
.eq(bo.getWarehouseId() != null, WmsInStockDetails::getWarehouseId, bo.getWarehouseId())
.eq(bo.getMaterialId() != null, WmsInStockDetails::getMaterialId, bo.getMaterialId())
.eq(StringUtils.isNotBlank(bo.getBatchNumber()), WmsInStockDetails::getBatchNumber, bo.getBatchNumber())
;
.selectAll(WmsInStockDetails.class)
.leftJoin(BaseMaterialInfo.class, BaseMaterialInfo::getMaterialId, WmsInStockDetails::getMaterialId)
.select(BaseMaterialInfo::getMaterialCode, BaseMaterialInfo::getMaterialName, BaseMaterialInfo::getMaterialModel)
.leftJoin(WmsWarehouseInfo.class, WmsWarehouseInfo::getWarehouseId, WmsInStockDetails::getWarehouseId)
.select(WmsWarehouseInfo::getWarehouseName)
.eq(bo.getInStockBillId() != null, WmsInStockDetails::getInStockBillId, bo.getInStockBillId())
.eq(bo.getWarehouseId() != null, WmsInStockDetails::getWarehouseId, bo.getWarehouseId())
.eq(bo.getMaterialId() != null, WmsInStockDetails::getMaterialId, bo.getMaterialId())
.eq(StringUtils.isNotBlank(bo.getBatchNumber()), WmsInStockDetails::getBatchNumber, bo.getBatchNumber());
return lqw;
}
@ -114,7 +118,7 @@ public class WmsInStockDetailsServiceImpl implements IWmsInStockDetailsService {
/**
*
*/
private void validEntityBeforeSave(WmsInStockDetails entity){
private void validEntityBeforeSave(WmsInStockDetails entity) {
//TODO 做一些数据校验,如唯一约束
}
@ -127,7 +131,7 @@ public class WmsInStockDetailsServiceImpl implements IWmsInStockDetailsService {
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;

@ -11,4 +11,11 @@
${ew.getCustomSqlSegment}
</select>
<select id="selectCountNowInStore" resultType="int">
select count(in_stock_bill_id)
from wms_in_stock_bill
where date(create_time) = date(now())
and del_flag = '0'
</select>
</mapper>

Loading…
Cancel
Save