package com.mes.order.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mes.glassinfo.entity.GlassInfo; import com.mes.glassinfo.mapper.GlassInfoMapper; import com.mes.glassinfo.service.GlassInfoService; import com.mes.order.entity.Orderdetail; import com.mes.order.entity.Orders; import com.mes.order.mapper.OrderdetailMapper; import com.mes.order.mapper.OrdersMapper; import com.mes.order.service.OrdersService; import com.mes.pp.entity.OrderChange; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Collections; import java.util.List; /** *

* 服务实现类 *

* * @author wu * @since 2024-06-17 */ @Service @DS("sd") @Slf4j public class OrdersServiceImpl extends ServiceImpl implements OrdersService { @Resource private OrderdetailMapper orderdetailMapper; @Resource private GlassInfoService glassInfoService; @Resource private GlassInfoMapper glassInfoMapper; @Override public List selectOrders() { //获取所有未完成的订单 QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.ne("warehousing", "2"); return baseMapper.selectList(queryWrapper); } @Override public List selectOrderdetail(Orders orders) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("order_id", orders.getOrderId()); return orderdetailMapper.selectList(queryWrapper); } @Override public List orderChange(List orderChanges) { for (OrderChange orderChange : orderChanges) { glassInfoService.update( new LambdaUpdateWrapper() .set(GlassInfo::getProductionStatus, 3) .eq(GlassInfo::getFlowCardId, orderChange.getOldProcessId()) .eq(GlassInfo::getGlassType, orderChange.getOldOrderNumber()) .eq(GlassInfo::getLayer, orderChange.getOldTechnologyNumber()) ); int affectedRows = glassInfoMapper.update(null, new LambdaUpdateWrapper() .eq(GlassInfo::getFlowCardId, orderChange.getOldProcessId()) .eq(GlassInfo::getGlassType, orderChange.getOldOrderNumber()) .eq(GlassInfo::getLayer, orderChange.getOldTechnologyNumber()) .set(GlassInfo::getFlowCardId, orderChange.getNewProcessId()) .set(GlassInfo::getGlassType, orderChange.getNewOrderNumber()) .set(GlassInfo::getLayer, orderChange.getNewTechnologyNumber()) .set(GlassInfo::getProductionStatus, 2) .orderByDesc(GlassInfo::getTemperingLayoutId, GlassInfo::getTemperingLayoutId) .last("limit " + orderChange.getChangeNumber()) .inSql(GlassInfo::getGlassId, "select glass_id from edg_storage_cage_details where flow_card_id ='" + orderChange.getOldProcessId() + "' and glass_id not in (select glass_id from damage where (type=8 or type=9) and process_id='" + orderChange.getOldProcessId() + "')")); orderChange.setChangedNumber(affectedRows); } log.info("订单变更:" + orderChanges); return orderChanges; } }