| | |
| | | package com.yuanchu.mom.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.yuanchu.mom.mapper.DeviceMapper; |
| | | import com.yuanchu.mom.mapper.ManualTechnologyMapper; |
| | | import com.yuanchu.mom.mapper.ManufactureOrderMapper; |
| | | import com.yuanchu.mom.pojo.ManualTechnology; |
| | | import com.yuanchu.mom.pojo.ManufactureOrder; |
| | | import com.yuanchu.mom.pojo.dto.ManualTechnologyDto1; |
| | | import com.yuanchu.mom.pojo.dto.ManufactureOrderDto; |
| | | import com.yuanchu.mom.pojo.ManufactureScheduling; |
| | | import com.yuanchu.mom.service.ManufactureOrderService; |
| | | import com.yuanchu.mom.service.ManufactureSchedulingService; |
| | | import com.yuanchu.mom.utils.MyUtil; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 生产订单表(ManufactureOrder)表服务实现类 |
| | |
| | | @Resource |
| | | ManualTechnologyMapper manualTechnologyMapper; |
| | | |
| | | @Resource |
| | | DeviceMapper deviceMapper; |
| | | @Autowired |
| | | private ManufactureSchedulingService manufactureSchedulingService; |
| | | |
| | | //查询生产订单的列表 |
| | | @Override |
| | |
| | | return manufactureOrderMapper.selectAllManord(page,downTime,delTime,customerCode,type); |
| | | } |
| | | |
| | | |
| | | //查看排产详情 |
| | | @Override |
| | | public ManufactureOrderDto sePros(Integer manOrdId) { |
| | | ManufactureOrderDto manufactureOrderDto = new ManufactureOrderDto(); |
| | | public Map<String, Object> sePros(Integer schedulingId) { |
| | | //基本信息 |
| | | ManufactureOrder manufactureOrder = manufactureOrderMapper.selectById(manOrdId); |
| | | BeanUtils.copyProperties(manufactureOrder,manufactureOrderDto); |
| | | Map<String, Object> manufactureOrder = manufactureSchedulingService.sePros(schedulingId); |
| | | //计划编制 |
| | | List<ManualTechnology> manualTechnologies = manualTechnologyMapper.selectList(Wrappers.<ManualTechnology>query().eq("manufacture_order_id", manOrdId)); |
| | | MyUtil.PrintLog(manualTechnologies.toString()); |
| | | |
| | | // List<ManualTechnologyDto1> manualTechnologyDto1s = manualTechnologies.stream().map(manualTechnology -> { |
| | | // ManualTechnologyDto1 manualTechnologyDto1 = new ManualTechnologyDto1(); |
| | | // BeanUtils.copyProperties(manualTechnology, manualTechnologyDto1); |
| | | // manualTechnologyDto1.setMtechId(manualTechnology.getId()); |
| | | // manualTechnologyDto1.setDeviceName(deviceMapper.selectById(manualTechnology.getDeviceId()).getName()); |
| | | // return manualTechnologyDto1; |
| | | // }).collect(Collectors.toList()); |
| | | // manufactureOrderDto.setMessage(manualTechnologyDto1s); |
| | | return manufactureOrderDto; |
| | | List<Map<String, Object>> mapList = manualTechnologyMapper.selectListTowTree(schedulingId); |
| | | manufactureOrder.put("message",mapList); |
| | | return manufactureOrder; |
| | | } |
| | | |
| | | //下达 |
| | | @Override |
| | | public void down(Integer manOrdId) { |
| | | ManufactureOrder manufactureOrder = new ManufactureOrder().setId(manOrdId).setGoState(1).setType(0); |
| | | manufactureOrderMapper.updateById(manufactureOrder); |
| | | public void down(Integer manufactureOrderId, Integer schedulingId) { |
| | | // 先更新排产 |
| | | LambdaUpdateWrapper<ManufactureScheduling> updateWrapperScheduling = Wrappers.<ManufactureScheduling>lambdaUpdate() |
| | | .eq(ManufactureScheduling::getId, schedulingId) |
| | | .set(ManufactureScheduling::getGoState, 1); |
| | | manufactureSchedulingService.update(updateWrapperScheduling); |
| | | |
| | | |
| | | // 然后更新订单表的状态 |
| | | LambdaQueryWrapper<ManufactureScheduling> queryWrapper = Wrappers.<ManufactureScheduling>lambdaQuery() |
| | | .eq(ManufactureScheduling::getManufactureOrderId, manufactureOrderId) |
| | | .select(ManufactureScheduling::getGoState); |
| | | List<ManufactureScheduling> list = manufactureSchedulingService.list(queryWrapper); |
| | | boolean goStateAll = false; |
| | | for (int i = 0; i <= list.size() - 1; i++){ |
| | | if (list.get(i).getGoState() == 0) { |
| | | goStateAll = true; |
| | | break; |
| | | } |
| | | } |
| | | LambdaUpdateWrapper<ManufactureOrder> updateWrapperOrder = new LambdaUpdateWrapper<>(); |
| | | updateWrapperOrder.eq(ManufactureOrder::getId, manufactureOrderId); |
| | | // 如果排产表中有一个是待下达,那么订单表中就为待下达 |
| | | if (goStateAll){ |
| | | // 待下达 |
| | | updateWrapperOrder.set(ManufactureOrder::getGoState, 0); |
| | | } else { |
| | | // 已下达 |
| | | updateWrapperOrder.set(ManufactureOrder::getGoState, 1); |
| | | } |
| | | manufactureOrderMapper.update(new ManufactureOrder(), updateWrapperOrder); |
| | | } |
| | | |
| | | @Override |
| | |
| | | public List<Map<String, Object>> towTree() { |
| | | return manufactureOrderMapper.towTree(); |
| | | } |
| | | |
| | | @Override |
| | | public Integer checkScheduled(Integer manOrdId, Integer schedulingNumber) { |
| | | LambdaQueryWrapper<ManufactureOrder> queryWrapper = Wrappers.<ManufactureOrder>lambdaQuery() |
| | | .eq(ManufactureOrder::getId, manOrdId) |
| | | .eq(ManufactureOrder::getState, 1) |
| | | .select(ManufactureOrder::getNumber, ManufactureOrder::getScheduledProduction); |
| | | ManufactureOrder manufactureOrder = manufactureOrderMapper.selectOne(queryWrapper); |
| | | if (ObjectUtils.isEmpty(manufactureOrder.getScheduledProduction())){ |
| | | manufactureOrder.setScheduledProduction(0); |
| | | } |
| | | return manufactureOrder.getNumber() - (manufactureOrder.getScheduledProduction() + schedulingNumber); |
| | | } |
| | | } |
| | | |