Merge remote-tracking branch 'origin/0.8.X' into 0.8.X

This commit is contained in:
2025-07-19 10:49:54 +08:00
25 changed files with 1702 additions and 203 deletions

View File

@@ -74,6 +74,7 @@ public class WmsPurchasePlanDetailServiceImpl implements IWmsPurchasePlanDetailS
*/
@Override
public Boolean insertByBo(WmsPurchasePlanDetailBo bo) {
WmsPurchasePlanDetail add = BeanUtil.toBean(bo, WmsPurchasePlanDetail.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;

View File

@@ -7,21 +7,22 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.klp.common.utils.StringUtils;
import com.klp.domain.WmsOrderDetail;
import com.klp.domain.WmsProductBom;
import com.klp.domain.WmsPurchasePlanDetail;
import com.klp.domain.vo.WmsOrderDetailVo;
import com.klp.domain.vo.WmsPurchasePlanDetailVo;
import com.klp.service.IWmsOrderDetailService;
import com.klp.service.IWmsProductBomService;
import com.klp.service.IWmsStockService;
import com.klp.mapper.WmsPurchasePlanDetailMapper;
import com.klp.service.*;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import com.klp.domain.bo.WmsPurchasePlanBo;
import com.klp.domain.vo.WmsPurchasePlanVo;
import com.klp.domain.WmsPurchasePlan;
import com.klp.mapper.WmsPurchasePlanMapper;
import com.klp.service.IWmsPurchasePlanService;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
@@ -43,6 +44,28 @@ public class WmsPurchasePlanServiceImpl implements IWmsPurchasePlanService {
private final IWmsStockService wmsStockService;
@Resource
private WmsPurchasePlanDetailMapper wmsPurchasePlanDetailMapper;
@Transactional
@Override
public Boolean insertWithDetails(WmsPurchasePlanVo planVo) {
// 1. 保存主表
WmsPurchasePlan plan = new WmsPurchasePlan();
BeanUtils.copyProperties(planVo, plan);
int flag = 0;
flag += baseMapper.insert(plan);
// 2. 保存明细表
for (WmsPurchasePlanDetailVo detailVo : planVo.getDetailList()) {
WmsPurchasePlanDetail detail = new WmsPurchasePlanDetail();
BeanUtils.copyProperties(detailVo, detail);
detail.setPlanId(plan.getPlanId()); // 关联主表ID
flag += wmsPurchasePlanDetailMapper.insert(detail);
}
return flag > 0;
}
@Override
public WmsPurchasePlanVo recommendPurchasePlanByOrder(Long orderId) {
// 1. 查询订单明细

View File

@@ -74,6 +74,16 @@ public class WmsSchedulePlanDetailServiceImpl implements IWmsSchedulePlanDetailS
*/
@Override
public Boolean insertByBo(WmsSchedulePlanDetailBo bo) {
// 校验产线时间段是否已排产
List<WmsSchedulePlanDetail> existList = baseMapper.selectList(
Wrappers.lambdaQuery(WmsSchedulePlanDetail.class)
.eq(WmsSchedulePlanDetail::getLineId, bo.getLineId())
.le(WmsSchedulePlanDetail::getStartDate, bo.getEndDate())
.ge(WmsSchedulePlanDetail::getEndDate, bo.getStartDate())
);
if (existList != null && !existList.isEmpty()) {
throw new RuntimeException("该产线该时间段已排产,请选择其他时间或产线!");
}
WmsSchedulePlanDetail add = BeanUtil.toBean(bo, WmsSchedulePlanDetail.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;