add 入库单单号生成规则

dev
wanghao 2 months ago
parent 2340f948c0
commit 8665a58f77

@ -1,9 +1,12 @@
package org.dromara.wms.domain; package org.dromara.wms.domain;
import org.dromara.common.tenant.core.TenantEntity; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.dromara.common.tenant.core.TenantEntity;
import java.io.Serial; import java.io.Serial;
@ -72,5 +75,28 @@ public class WmsInStockDetails extends TenantEntity {
*/ */
private String delFlag; 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 = "更新时间") @ExcelProperty(value = "更新时间")
private Date updateTime; 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> { 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.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.RequiredArgsConstructor; 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.MapstructUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery; 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.dromara.wms.service.IWmsInStockBillService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -83,7 +86,8 @@ public class WmsInStockBillServiceImpl implements IWmsInStockBillService {
.eq(StringUtils.isNotBlank(bo.getFlowStatus()), WmsInStockBill::getFlowStatus, bo.getFlowStatus()) .eq(StringUtils.isNotBlank(bo.getFlowStatus()), WmsInStockBill::getFlowStatus, bo.getFlowStatus())
.eq(bo.getWarehouseId() != null, WmsInStockBill::getWarehouseId, bo.getWarehouseId()) .eq(bo.getWarehouseId() != null, WmsInStockBill::getWarehouseId, bo.getWarehouseId())
.between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null, .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 @Override
public Boolean insertByBo(WmsInStockBillBo bo) { public Boolean insertByBo(WmsInStockBillBo bo) {
WmsInStockBill add = MapstructUtils.convert(bo, WmsInStockBill.class); 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("就绪"); add.setFlowStatus("就绪");
boolean flag = baseMapper.insert(add) > 0; boolean flag = baseMapper.insert(add) > 0;
if (flag) { if (flag) {

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

@ -11,4 +11,11 @@
${ew.getCustomSqlSegment} ${ew.getCustomSqlSegment}
</select> </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> </mapper>

Loading…
Cancel
Save