| | |
| | | package com.jcdm.main.bs.orderScheduling.service.impl; |
| | | |
| | | import java.util.List; |
| | | |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import com.jcdm.common.utils.DateUtils; |
| | | import com.jcdm.common.utils.StringUtils; |
| | | import com.jcdm.main.bs.orderScheduling.Query.PrepareOnlineQuery; |
| | | import com.jcdm.main.bs.orderScheduling.common.Constants; |
| | | import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling; |
| | | import com.jcdm.main.bs.orderScheduling.mapper.BsOrderSchedulingMapper; |
| | | import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService; |
| | | import com.jcdm.main.bs.orderScheduling.vo.FollowReportVO; |
| | | import com.jcdm.main.bs.orderScheduling.vo.LineChartVO; |
| | | import com.jcdm.main.da.paramCollection.domain.DaParamCollection; |
| | | import com.jcdm.main.da.paramCollection.mapper.DaParamCollectionMapper; |
| | | import com.jcdm.main.da.paramCollection.service.impl.DaParamCollectionServiceImpl; |
| | | import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection; |
| | | import com.jcdm.main.da.passingStationCollection.mapper.DaPassingStationCollectionMapper; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import com.jcdm.main.bs.orderScheduling.mapper.BsOrderSchedulingMapper; |
| | | import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling; |
| | | import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 订单排产Service业务层处理 |
| | |
| | | * @date 2024-01-13 |
| | | */ |
| | | @Service |
| | | public class BsOrderSchedulingServiceImpl implements IBsOrderSchedulingService |
| | | public class BsOrderSchedulingServiceImpl implements IBsOrderSchedulingService |
| | | { |
| | | @Autowired |
| | | private BsOrderSchedulingMapper bsOrderSchedulingMapper; |
| | | |
| | | @Resource |
| | | private DaParamCollectionMapper daParamCollectionMapper; |
| | | |
| | | @Resource |
| | | private DaPassingStationCollectionMapper daPassingStationCollectionMapper; |
| | | |
| | | /** |
| | | * 查询订单排产 |
| | |
| | | } |
| | | |
| | | /** |
| | | * 查询订单排产 |
| | | * |
| | | * @param sncode 订单排产发动机号 |
| | | * @return 订单排产 |
| | | */ |
| | | @Override |
| | | public BsOrderScheduling selectBsOrderSchedulingSNCode(String sncode) |
| | | { |
| | | return bsOrderSchedulingMapper.selectBsOrderSchedulingSNCode(sncode); |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 查询订单排产列表 |
| | | * |
| | | * @param bsOrderScheduling 订单排产 |
| | |
| | | @Override |
| | | public List<BsOrderScheduling> selectBsOrderSchedulingList(BsOrderScheduling bsOrderScheduling) |
| | | { |
| | | |
| | | // if(bsOrderScheduling.getOperateTime()!=null){ |
| | | // ObjectMapper objectMapper = new ObjectMapper(); |
| | | // try { |
| | | // String[] dateArray = objectMapper.readValue(bsOrderScheduling.getOperateTime(), String[].class); |
| | | // }catch (Exception e){ |
| | | // |
| | | // } |
| | | // |
| | | // } |
| | | if(bsOrderScheduling.getDateConditions()!=null){ |
| | | String[] conditions = bsOrderScheduling.getDateConditions(); |
| | | bsOrderScheduling.setStartTime(conditions[0]); |
| | | bsOrderScheduling.setEndTime(conditions[1]); |
| | | } |
| | | return bsOrderSchedulingMapper.selectBsOrderSchedulingList(bsOrderScheduling); |
| | | } |
| | | |
| | | @Override |
| | | public FollowReportVO getFollowReportList(BsOrderScheduling bsOrderScheduling) |
| | | { |
| | | FollowReportVO vo = new FollowReportVO(); |
| | | if(bsOrderScheduling.getDateConditions()!=null){ |
| | | String[] conditions = bsOrderScheduling.getDateConditions(); |
| | | bsOrderScheduling.setStartTime(conditions[0]); |
| | | bsOrderScheduling.setEndTime(conditions[1]); |
| | | } |
| | | //主表数据 |
| | | List<BsOrderScheduling> mainList = bsOrderSchedulingMapper.selectBsOrderSchedulingList(bsOrderScheduling); |
| | | vo.setMainList(mainList); |
| | | List<String> engineNoList = mainList.stream().map(BsOrderScheduling::getEngineNo).distinct().collect(Collectors.toList()); |
| | | List<DaParamCollection> allChildList = new ArrayList<>(); |
| | | List<DaPassingStationCollection> collect5 = new ArrayList<>(); |
| | | if (CollUtil.isNotEmpty(engineNoList)){ |
| | | allChildList = daParamCollectionMapper.getListBySfcCode(engineNoList); |
| | | collect5 = daPassingStationCollectionMapper.getListBySfcCode(engineNoList); |
| | | } |
| | | if (CollUtil.isNotEmpty(allChildList)){ |
| | | //拿到所有子数据 |
| | | List<DaParamCollection> collect1 = allChildList.stream().filter(x -> Constants.DATA1.equals(x.getType())).collect(Collectors.toList()); |
| | | List<DaParamCollection> collect2 = allChildList.stream().filter(x -> Constants.DATA2.equals(x.getType())).collect(Collectors.toList()); |
| | | List<DaParamCollection> collect3 = allChildList.stream().filter(x -> Constants.DATA3.equals(x.getType())).collect(Collectors.toList()); |
| | | List<DaParamCollection> collect4 = allChildList.stream().filter(x -> Constants.DATA4.equals(x.getType())).collect(Collectors.toList()); |
| | | vo.setList1(collect1); |
| | | vo.setList2(collect2); |
| | | vo.setList3(collect3); |
| | | vo.setList4(collect4); |
| | | } |
| | | vo.setList5(collect5); |
| | | return vo; |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public List<LineChartVO> getOffLineNum() |
| | | { |
| | | List<LineChartVO> result = new ArrayList<>(); |
| | | BsOrderScheduling bsOrderScheduling = new BsOrderScheduling(); |
| | | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); |
| | | LocalDateTime now = LocalDateTime.now(); |
| | | LocalDateTime startTime = LocalDateTime.of(now.getYear(),now.getMonthValue(),now.getDayOfMonth(),8,0,0); |
| | | LocalDateTime endTime = LocalDateTime.of(now.getYear(),now.getMonthValue(),now.plusDays(1).getDayOfMonth(),22,0,0); |
| | | String s1 = startTime.format(formatter); |
| | | String s2 = endTime.format(formatter); |
| | | bsOrderScheduling.setStartTime(s1); |
| | | bsOrderScheduling.setEndTime(s2); |
| | | List<BsOrderScheduling> todayList = bsOrderSchedulingMapper.selectBsOrderSchedulingList(bsOrderScheduling); |
| | | todayList = todayList.stream().filter(x -> ObjectUtil.isNotEmpty(x.getFinalAssemblyOfflineTime())).collect(Collectors.toList()); |
| | | if (CollUtil.isNotEmpty(todayList)){ |
| | | List<String> allModel = todayList.stream().map(BsOrderScheduling::getModel).distinct().collect(Collectors.toList()); |
| | | Map<String, List<BsOrderScheduling>> collect = new HashMap<>(); |
| | | for (String s : allModel) { |
| | | LineChartVO vo = new LineChartVO(); |
| | | List<Integer> arr = new ArrayList<>(); |
| | | vo.setName(s); |
| | | collect = todayList.stream().filter(x -> s.equals(x.getModel())).collect(Collectors.groupingBy(item -> new SimpleDateFormat("yyyy-MM-dd HH").format(item |
| | | .getFinalAssemblyOfflineTime()))); |
| | | Map<Integer,Integer> temp = new HashMap<>(); |
| | | if (CollUtil.isNotEmpty(collect)){ |
| | | for (String string : collect.keySet()) { |
| | | int size = collect.get(string).size(); |
| | | String s3 = string.split(StringUtils.SPACE)[1]; |
| | | if (StringUtils.isNotEmpty(s3)){ |
| | | int i = Integer.parseInt(s3); |
| | | temp.put(i+1,size); |
| | | } |
| | | } |
| | | } |
| | | for (int i = 8; i < 23; i++) { |
| | | if (i==8){ |
| | | arr.add(0); |
| | | }else { |
| | | arr.add(temp.getOrDefault(i, 0)); |
| | | } |
| | | } |
| | | vo.setData(arr); |
| | | vo.setType("line"); |
| | | result.add(vo); |
| | | } |
| | | |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 查询合箱上线列表 |
| | | * @param prepareOnlineQuery |
| | | * @return list |
| | | */ |
| | | public List<BsOrderScheduling> getPrepareOnlineList(PrepareOnlineQuery prepareOnlineQuery){ |
| | | return bsOrderSchedulingMapper.getPrepareOnlineList(prepareOnlineQuery); |
| | | } |
| | | /** |
| | | * 新增订单排产 |
| | | * |