|
|
|
|
@ -2,20 +2,25 @@ package org.springblade.desk.order.service.impl; |
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl; |
|
|
|
|
import org.springblade.core.tool.utils.ObjectUtil; |
|
|
|
|
import org.springblade.desk.order.pojo.entity.YieldPlan; |
|
|
|
|
import org.springblade.desk.dashboard.pojo.entity.DsPartEntity; |
|
|
|
|
import org.springblade.desk.dashboard.service.IDsPartService; |
|
|
|
|
import org.springblade.desk.order.mapper.YieldPlanMapper; |
|
|
|
|
import org.springblade.desk.order.pojo.entity.YieldPlan; |
|
|
|
|
import org.springblade.desk.order.pojo.enums.YieldPlanEnum; |
|
|
|
|
import org.springblade.desk.order.service.IYieldOrderService; |
|
|
|
|
import org.springblade.desk.order.service.IYieldPlanService; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.Date; |
|
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
@ -29,6 +34,10 @@ public class YieldPlanServiceImpl extends BaseServiceImpl<YieldPlanMapper, Yield |
|
|
|
|
|
|
|
|
|
private final IYieldOrderService yieldOrderService; |
|
|
|
|
|
|
|
|
|
private final IDsPartService dsPartService; |
|
|
|
|
|
|
|
|
|
//private final IStRealtimeStockService stRealtimeStockService;
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public IPage<YieldPlan> selectPageElectroplate(IPage<YieldPlan> page, YieldPlan entity) { |
|
|
|
|
List<YieldPlanEnum> planTypeList = new ArrayList<>(); |
|
|
|
|
@ -105,4 +114,62 @@ public class YieldPlanServiceImpl extends BaseServiceImpl<YieldPlanMapper, Yield |
|
|
|
|
YieldPlan yieldPlan = baseMapper.selectOne(queryWrapper); |
|
|
|
|
return ObjectUtil.isNotEmpty(yieldPlan); |
|
|
|
|
} |
|
|
|
|
/** |
|
|
|
|
* 同步玻璃饼 |
|
|
|
|
*/ |
|
|
|
|
@Override |
|
|
|
|
public void synGlassCake() { |
|
|
|
|
List<YieldPlan> yieldPlanList=baseMapper.selectList(new QueryWrapper<YieldPlan>().lambda() |
|
|
|
|
.eq(YieldPlan::getIsDeleted, 0).eq(YieldPlan::getPlanType, 12002) |
|
|
|
|
.eq(YieldPlan::getGenerateGlassCake, 0));; |
|
|
|
|
List<String> partCodeList=yieldPlanList.stream().map(x->x.getPartCode()).toList(); |
|
|
|
|
//b1. 查询该计划的零件是否是玻璃相关的零件列表(sub_cursor)
|
|
|
|
|
List<DsPartEntity> dsPartList=dsPartService.list(new QueryWrapper<DsPartEntity>().lambda() |
|
|
|
|
.in(DsPartEntity::getPartCode, partCodeList) |
|
|
|
|
.like(DsPartEntity::getPartName, "玻璃"));// 获取零件信息
|
|
|
|
|
List<String> partList=dsPartList.stream().map(x->x.getPartCode()).toList(); |
|
|
|
|
yieldPlanList.forEach(yieldPlan -> { |
|
|
|
|
if(!partList.contains(yieldPlan.getPartCode())){ |
|
|
|
|
yieldPlan.setGenerateGlassCake(1); |
|
|
|
|
yieldPlan.setId(yieldPlan.getId()); |
|
|
|
|
baseMapper.updateById(yieldPlan); |
|
|
|
|
} |
|
|
|
|
//b3.1 生成流程卡号、批次号
|
|
|
|
|
//查询RB相关的流程卡号
|
|
|
|
|
String cardNo=yieldOrderService.getMaxCardNo();; |
|
|
|
|
Long num; |
|
|
|
|
if(StringUtils.isEmpty(cardNo)){ |
|
|
|
|
num=1L; |
|
|
|
|
}else { |
|
|
|
|
num=Long.valueOf(cardNo.replace("RB"+new SimpleDateFormat("yyMMdd").format(new Date()), ""))+1; |
|
|
|
|
} |
|
|
|
|
cardNo="RB"+new SimpleDateFormat("yyMMdd").format(new Date())+String.format("%05d", num); |
|
|
|
|
String bathNo="Y"+new SimpleDateFormat("yyMMdd").format(new Date())+String.format("%05d", num); |
|
|
|
|
//调用公共保存方法 todo
|
|
|
|
|
// dsPartList.forEach(dsPart -> {
|
|
|
|
|
// List<StRealtimeStock> stockList=stRealtimeStockService.getGoodsByPartCode(dsPart.getPartCode());
|
|
|
|
|
// StGoodStatisVO statisVO=stRealtimeStockService.getGoodsByCode(dsPart.getPartCode());
|
|
|
|
|
// Double subPorqty=dsPart.getQuota()*yieldPlan.getDeliveryQty() ;
|
|
|
|
|
// if(statisVO.getTotalQuantity()-statisVO.getZyQuantity()>=subPorqty){
|
|
|
|
|
// stockList.forEach(stock -> {
|
|
|
|
|
// if(stock.getQuantity()-stock.getOccupyQuantity()>=subPorqty){
|
|
|
|
|
// StRealtimeStock rs=new StRealtimeStock();
|
|
|
|
|
// rs.setId(stock.getId());
|
|
|
|
|
// rs.setOccupyQuantity(rs.getOccupyQuantity()+subPorqty);
|
|
|
|
|
// stRealtimeStockService.updateById(rs);
|
|
|
|
|
// }else {
|
|
|
|
|
// StRealtimeStock rs=new StRealtimeStock();
|
|
|
|
|
// rs.setId(stock.getId());
|
|
|
|
|
// rs.setOccupyQuantity(rs.getQuantity());
|
|
|
|
|
// stRealtimeStockService.updateById(rs);
|
|
|
|
|
// }
|
|
|
|
|
// });
|
|
|
|
|
// }
|
|
|
|
|
// });
|
|
|
|
|
//更新状态标记为已读`update MES_YIELD_PLAN set GENERATE_GLASS_CAKE = 1 where id = ?`
|
|
|
|
|
yieldPlan.setGenerateGlassCake(1); |
|
|
|
|
yieldPlan.setId(yieldPlan.getId()); |
|
|
|
|
baseMapper.updateById(yieldPlan); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|