123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- package cn.mrdear.controller;
- import cn.mrdear.entity.dto.ManuOrderDTO;
- import cn.mrdear.entity.dto.MesJobOrderDTO;
- import cn.mrdear.entity.dto.ProductDTO;
- import cn.mrdear.entity.vo.JobOrderListVO;
- import cn.mrdear.mapper.ManuOrderMapper;
- import cn.mrdear.mapper.MesJobOrderMapper;
- import cn.mrdear.mapper.ProductMapper;
- import cn.mrdear.util.DateUtil;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.format.annotation.DateTimeFormat;
- import org.springframework.web.bind.annotation.*;
- import java.util.*;
- import java.util.stream.Collectors;
- /**
- * @Author: zxy
- * @Date: create in 2025/4/9 16:10
- */
- @RestController()
- @RequestMapping("jobOrder")
- public class JobOrderController {
- @Autowired
- MesJobOrderMapper mesJobOrderMapper;
- @Autowired
- ProductMapper productMapper;
- @Autowired
- ManuOrderMapper manuOrderMapper;
- @GetMapping("getList")
- public Map<String,Object> getJobOrderList() {
- HashMap<String, Object> resultMap = new HashMap<>();
- List<JobOrderListVO> jobOrderListVOS = new ArrayList<>();
- List<MesJobOrderDTO> jobOrderDTOList = mesJobOrderMapper.getListByDate();
- if(jobOrderDTOList.size() == 0) {
- resultMap.put("data",jobOrderListVOS);
- return resultMap;
- }
- Map<Integer, List<MesJobOrderDTO>> ordersByYear = jobOrderDTOList.stream()
- // 过滤掉 code 太短或格式不对的项(可选)
- .filter(dto -> dto.getCode() != null && dto.getCode().length() >= 4)
- .collect(Collectors.groupingBy(dto -> {
- String yy = dto.getCode().substring(2, 4); // e.g. "25"
- int year = 2000 + Integer.parseInt(yy); // 转成 2025
- return year;
- }));
- // 将map按年份倒序
- Map<Integer, List<MesJobOrderDTO>> descByYear = new TreeMap<>(Comparator.reverseOrder());
- descByYear.putAll(ordersByYear);
- for (Map.Entry<Integer, List<MesJobOrderDTO>> entry : descByYear.entrySet()) {
- Integer year = entry.getKey();
- List<MesJobOrderDTO> listForYear = entry.getValue();
- // 获取订单详情
- List<String> manuOrderIds = listForYear.stream().map(MesJobOrderDTO::getEmesoManuorderId)
- .collect(Collectors.toList());
- // 获取形体
- List<String> productIds = listForYear.stream().map(MesJobOrderDTO::getmProductId).distinct()
- .collect(Collectors.toList());
- List<ProductDTO> productDTOList = productMapper.getProductMap(productIds);
- Map<String, String> productMap = productDTOList.stream().collect(Collectors.toMap(ProductDTO::getmProductId, ProductDTO::getValue));
- String tableName = "emeso_manuorder_" + year;
- List<ManuOrderDTO> manuOrderList = manuOrderMapper.getManuOrderList(tableName, manuOrderIds);
- Map<String, ManuOrderDTO> manuOrderDTOMap = manuOrderList.stream().collect(Collectors.toMap(ManuOrderDTO::getManuOrderId, o -> o));
- for (MesJobOrderDTO mesJobOrderDTO : listForYear) {
- JobOrderListVO jobOrderListVO = new JobOrderListVO();
- jobOrderListVO.setJobOrderId(mesJobOrderDTO.getEmesoJobOrderId());
- jobOrderListVO.setCode(mesJobOrderDTO.getCode()); // 工单号
- jobOrderListVO.setQty(mesJobOrderDTO.getQty()); // 数量
- jobOrderListVO.setDescription(mesJobOrderDTO.getDescription());
- jobOrderListVO.setColor(mesJobOrderDTO.getColor());
- jobOrderListVO.setType(mesJobOrderDTO.getType());
- jobOrderListVO.setCreateTime(DateUtil.timeFormat(mesJobOrderDTO.getCreated()));
- String mProductId = mesJobOrderDTO.getmProductId();
- if(productMap.containsKey(mProductId)) {
- jobOrderListVO.setGoodsCode(productMap.get(mProductId));
- }
- String emesoManuorderId = mesJobOrderDTO.getEmesoManuorderId();
- if(manuOrderDTOMap.containsKey(emesoManuorderId)) {
- ManuOrderDTO manuOrderDTO = manuOrderDTOMap.get(emesoManuorderId);
- jobOrderListVO.setOrderCode(manuOrderDTO.getOrderCode());
- String sizeCode2 = manuOrderDTO.getSizeCode2();
- jobOrderListVO.setShoesSize(sizeCode2);
- }
- jobOrderListVOS.add(jobOrderListVO);
- }
- }
- resultMap.put("data",jobOrderListVOS);
- return resultMap;
- }
- }
|