guoyujie
2025-07-14 57ef26e3e7a054da64569b4dec84c86bca7a9ad3
提交在制品显示在制品名称
14个文件已修改
3 文件已重命名
236 ■■■■ 已修改文件
north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheetLuoyang.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgress.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/mm/BasicWarehouseTypeController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/sd/BasicDataController.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/dto/pp/WorkInProgressDTO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/sd/BasicDataMapper.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderGlassDetailMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/sd/ProductDetailMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/mm/BasicWarehouseTypeService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/sd/BasicDataService.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/sd/BasicDataMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/sd/OrderGlassDetailMapper.xml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/sd/ProductDetailMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/test/java/com/example/erp/service/sd/BasicDataServiceTest.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheetLuoyang.vue
@@ -45,7 +45,11 @@
      produceList.value = deepClone(res.data)
      for(let i=0;i<produceList.value.length;i++){
        produceList.value[i].data.forEach(item =>{
          item.DeliveryDetail.orderId=takeCare.value+item.DeliveryDetail.orderDetail.edgingType+item.DeliveryDetail.orderDetail.shape
          item.DeliveryDetail.orderId=
              takeCare.value+
              item.DeliveryDetail.orderDetail.edgingType
              +'\n'
              +item.DeliveryDetail.orderDetail.shape || ''
        })
        let produceList1= ({
          data:null,
north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgress.vue
@@ -172,6 +172,7 @@
  request.post(`/report/workInProgress/${pageNum.value}/${total.pageSize}/${inputVal}/${inputProject}/${selectProcesses}/${optionVal}`, filterData.value).then((res) => {
    if (res.code == 200) {
      console.log(res.data.data)
      total.dataTotal = res.data.total.total * 1
      total.pageTotal = res.data.total.pageTotal
      pageTotal.value = res.data.total
@@ -314,6 +315,7 @@
    {field: 'stockArea', width: 120, title: t('report.inventoryArea'),visible: true},
    {field: 'workProcessName', width: 120, title: t('report.workProcessName')},
    {field: 'productName', width: 120, title:  t('order.product'),visible: true},
    {field: 'glassName', width: 120, title:  t('order.product'),visible: true},
    {field: 'bendRadius', width: 120, title: t('order.bendRadius'),visible: true},
    {field: 'teamsGroupsName', width: 110,title: t('report.teamsGroupsName'),showOverflow:"ellipsis",filters: [{data: ''}],
      slots: {filter: 'num1_filter'}},
north-glass-erp/src/main/java/com/example/erp/controller/mm/BasicWarehouseTypeController.java
@@ -3,9 +3,7 @@
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.example.erp.common.Result;
import com.example.erp.entity.mm.BasicWarehouseType;
import com.example.erp.entity.sd.BasicData;
import com.example.erp.service.mm.BasicWarehouseTypeService;
import com.example.erp.service.sd.BasicDateService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
north-glass-erp/src/main/java/com/example/erp/controller/sd/BasicDataController.java
@@ -3,7 +3,7 @@
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.example.erp.common.Result;
import com.example.erp.entity.sd.BasicData;
import com.example.erp.service.sd.BasicDateService;
import com.example.erp.service.sd.BasicDataService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
@@ -15,23 +15,23 @@
@Api(value="订单基础controller",tags={"订单基础数据操作接口"})
public class BasicDataController {
    final
    BasicDateService basicDateService;
    BasicDataService basicDataService;
    public BasicDataController(BasicDateService basicDateService) {
        this.basicDateService = basicDateService;
    public BasicDataController(BasicDataService basicDataService) {
        this.basicDataService = basicDataService;
    }
    @GetMapping("/orderBasicData")
    public Result getOrderBasicData(){
        return Result.seccess(basicDateService.getOrderBasicData());
        return Result.seccess(basicDataService.getOrderBasicData());
    }
    @GetMapping("/BasicDataByType/{type}")
    public Result getBasicDataByType(@PathVariable String type){
        return Result.seccess(basicDateService.getBasicDataByType(type));
        return Result.seccess(basicDataService.getBasicDataByType(type));
    }
    @GetMapping("/BasicDataByType/{type}/{childType}")
    public Result getBasicDataByTypeAndChildType(@PathVariable String type,@PathVariable String childType){
        return Result.seccess(basicDateService.getBasicDataByTypeAndChildType(type,childType));
        return Result.seccess(basicDataService.getBasicDataByTypeAndChildType(type,childType));
    }
@@ -39,32 +39,32 @@
    @SaCheckPermission("searchOrderBasicData.search")
    @GetMapping("/getBasicData")
    public Result getBasicData(){
        return Result.seccess(basicDateService.getBasicData());
        return Result.seccess(basicDataService.getBasicData());
    }
    @ApiOperation("查询基础数据类型")
    @SaCheckPermission("searchOrderBasicData.search")
    @GetMapping("/getBasicDataType")
    public Result getBasicDataType(){
        return Result.seccess(basicDateService.getBasicDataType());
        return Result.seccess(basicDataService.getBasicDataType());
    }
    @ApiOperation("新增基础数据")
    @SaCheckPermission("searchOrderBasicData.add")
    @PostMapping("addBasicData")
    public Result addBasicData(@RequestBody Map<String,Object> map){
        return  Result.seccess(basicDateService.addBasicData(map));
        return  Result.seccess(basicDataService.addBasicData(map));
    }
    @ApiOperation("更新基础数据")
    @SaCheckPermission("searchOrderBasicData.update")
    @PostMapping("updateBasicData")
    public Result updateBasicData(@RequestBody BasicData basicData){
        return  Result.seccess(basicDateService.updateBasicData(basicData));
        return  Result.seccess(basicDataService.updateBasicData(basicData));
    }
    @ApiOperation("删除基础数据")
    @SaCheckPermission("searchOrderBasicData.delete")
    @PostMapping("deleteBasicData")
    public Result deleteBasicData(@RequestBody BasicData basicData){
        return  Result.seccess(basicDateService.deleteBasicData(basicData));
        return  Result.seccess(basicDataService.deleteBasicData(basicData));
    }
}
north-glass-erp/src/main/java/com/example/erp/dto/pp/WorkInProgressDTO.java
@@ -37,6 +37,8 @@
    private Double stockArea;
    @ExcelProperty("成品名称")
    private String productName;
    @ExcelProperty("在制品名称")
    private String glassName;
    @ExcelProperty("弯钢半径")
    private String bendRadius;
    @ExcelProperty("编号")
north-glass-erp/src/main/java/com/example/erp/mapper/sd/BasicDataMapper.java
File was renamed from north-glass-erp/src/main/java/com/example/erp/mapper/sd/BasicDateMapper.java
@@ -2,16 +2,12 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.erp.entity.sd.BasicData;
import com.example.erp.entity.sd.Order;
import com.example.erp.service.sd.BasicDateService;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
import java.util.Map;
@Mapper
public interface BasicDateMapper extends BaseMapper<BasicData> {
public interface BasicDataMapper extends BaseMapper<BasicData> {
    List<BasicData> getOrderBasicData(String type);
    List<String> getOrderBasicDataType(String type);
north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderGlassDetailMapper.java
@@ -26,4 +26,9 @@
    List<OrderGlassDetail> getOrderGlassDetailByProductIdGlassChild(String orderId, Integer orderNumber);
    Integer getMinIdByGroup(String orderId, String orderNumber, String group);
    Integer getMaxIdByGroup(String orderId, String orderNumber, String group);
    Integer getMinTechnologyNumberByGroup(String orderId, String orderNumber, String group);
    Integer getMaxTechnologyNumberByGroup(String orderId, String orderNumber, String group);
}
north-glass-erp/src/main/java/com/example/erp/mapper/sd/ProductDetailMapper.java
@@ -11,4 +11,6 @@
    List<ProductDetail> getGlassDetailList();
    boolean insertList(List<ProductDetail> getProductDetails);
    String getGlassNameByGroup(Integer productId, Integer minTechnologyNumberByGroup, Integer maxTechnologyNumberByGroup);
}
north-glass-erp/src/main/java/com/example/erp/service/mm/BasicWarehouseTypeService.java
@@ -2,11 +2,7 @@
import com.baomidou.dynamic.datasource.annotation.DS;
import com.example.erp.entity.mm.BasicWarehouseType;
import com.example.erp.entity.sd.BasicData;
import com.example.erp.entity.sd.Customer;
import com.example.erp.mapper.mm.BasicWarehouseTypeMapper;
import com.example.erp.mapper.sd.BasicDateMapper;
import com.example.erp.mapper.sd.CustomerMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
@@ -3,13 +3,18 @@
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.erp.dto.pp.*;
import com.example.erp.entity.pp.DamageDetails;
import com.example.erp.entity.pp.Report;
import com.example.erp.entity.sd.BasicData;
import com.example.erp.entity.sd.OrderDetail;
import com.example.erp.entity.sd.OrderGlassDetail;
import com.example.erp.entity.sd.ProductDetail;
import com.example.erp.mapper.pp.FlowCardMapper;
import com.example.erp.mapper.pp.ProductionSchedulingMapper;
import com.example.erp.mapper.pp.ReportMapper;
import com.example.erp.mapper.sd.OrderProcessDetailMapper;
import com.example.erp.mapper.sd.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
@@ -31,13 +36,63 @@
    private final OrderProcessDetailMapper orderProcessDetailMapper;
    private final ProductionSchedulingMapper productionSchedulingMapper;
    private final OrderGlassDetailMapper orderGlassDetailMapper;
    private final BasicDataMapper basicDataMapper;
    private final ProductDetailMapper productDetailMapper;
    private final OrderDetailMapper orderDetailMapper;
    FlowCardMapper flowCardMapper;
    private void mergeTeamsGroupsName(
            List<WorkInProgressDTO> dataList1,
            List<WorkInProgressDTO> dataList2
    ) {
    //上工序报工班组
    private void mergeTeamsGroupsName( List<WorkInProgressDTO> dataList1,List<WorkInProgressDTO> dataList2) {
        for (WorkInProgressDTO dto1 : dataList1) {
            //根据当前工序获取 是否为单片、夹胶、或者全部
          BasicData basicData =  basicDataMapper.
                  selectOne(new QueryWrapper<BasicData>()
                          .eq("basic_name", dto1.getThisProcess())
                          .last("limit 1")
                  );
          OrderDetail orderDetail = orderDetailMapper
                .selectOne(
                        new QueryWrapper<OrderDetail>()
                                .eq("order_id", dto1.getOrderId())
                                .eq("order_number", dto1.getOrderNumber())
                );
          //如果为单片,则根据产品名称和工艺编号获取玻璃名称
          if(basicData.getNickname()==null || basicData.getNickname().isEmpty()){
              ProductDetail productDetail = productDetailMapper.
                      selectOne(new QueryWrapper<ProductDetail>()
                              .eq("prod_id", orderDetail.getProductId())
                              .eq("glass_sort",dto1.getTechnologyNumber())
                      );
              dto1.setGlassName(productDetail.getDetail());
          }else if(basicData.getNickname().equals("stepC")){
              OrderGlassDetail orderGlassDetailGroup = orderGlassDetailMapper
                      .selectOne(new QueryWrapper<OrderGlassDetail>()
                              .eq("order_id", dto1.getOrderId())
                              .eq("order_number", dto1.getOrderNumber())
                              .eq("technology_number",dto1.getTechnologyNumber())
                      );
              System.out.println(orderGlassDetailGroup.getGroup());
              String glassName = productDetailMapper.getGlassNameByGroup(
                      orderDetail.getProductId(),
                      orderGlassDetailMapper.getMinTechnologyNumberByGroup(dto1.getOrderId(),dto1.getOrderNumber(), String.valueOf(orderGlassDetailGroup.getGroup())),
                      orderGlassDetailMapper.getMaxTechnologyNumberByGroup(dto1.getOrderId(),dto1.getOrderNumber(), String.valueOf(orderGlassDetailGroup.getGroup()))
              );
              dto1.setGlassName(glassName);
          }else{
              dto1.setGlassName(dto1.getProductName());
          }
        }
        Function<WorkInProgressDTO, String> keyFn = dto ->
                dto.getProcessId() + "|" +
                        dto.getOrderNumber() + "|" +
@@ -62,11 +117,15 @@
    }
    public ReportService(ReportMapper reportMapper, OrderProcessDetailMapper orderProcessDetailMapper, ProductionSchedulingMapper productionSchedulingMapper,FlowCardMapper flowCardMapper) {
    public ReportService(ReportMapper reportMapper, OrderProcessDetailMapper orderProcessDetailMapper, ProductionSchedulingMapper productionSchedulingMapper, FlowCardMapper flowCardMapper, OrderGlassDetailMapper orderGlassDetailMapper, BasicDataMapper basicDataMapper, ProductDetailMapper productDetailMapper, OrderDetailMapper orderDetailMapper) {
        this.reportMapper = reportMapper;
        this.orderProcessDetailMapper = orderProcessDetailMapper;
        this.productionSchedulingMapper = productionSchedulingMapper;
        this.flowCardMapper = flowCardMapper;
        this.orderGlassDetailMapper = orderGlassDetailMapper;
        this.basicDataMapper = basicDataMapper;
        this.productDetailMapper = productDetailMapper;
        this.orderDetailMapper = orderDetailMapper;
    }
    //流程卡进度方法
@@ -183,6 +242,7 @@
        Map<String, Object> map = new HashMap<>();
        List<WorkInProgressDTO> dataList2  =reportMapper.workInProgressMpdataList2(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO);
        if (optionVal.equals("1")){
            System.out.println(1);
            /* 根据销售单号汇总*/
            //map.put("data", reportMapper.workInProgressOrderMp(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
            List<WorkInProgressDTO> dataList1  =reportMapper.workInProgressOrderMpList1(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO);
@@ -191,6 +251,7 @@
            // map.put("total", reportMapper.workInProgressOrderTotal(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
            map.put("total" ,reportMapper.workInProgressOrderFootSum(offset, pageSize,orderId, inputProject, selectProcesses, workInProgressDTO));
        }else if(optionVal.equals("2")){
            System.out.println(2);
            /* 根据流程卡号汇总*/
            //map.put("data", reportMapper.workInProgressProcessMp(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
            List<WorkInProgressDTO> dataList1  =reportMapper.workInProgressProcessMpList1(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO);
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -17,7 +17,6 @@
import com.example.erp.entity.userInfo.Log;
import com.example.erp.entity.userInfo.SysError;
import com.example.erp.exception.ServiceException;
import com.example.erp.mapper.mm.FinishedGoodsInventoryMapper;
import com.example.erp.mapper.mm.FinishedOperateLogMapper;
import com.example.erp.mapper.pp.*;
import com.baomidou.dynamic.datasource.annotation.DS;
@@ -71,7 +70,7 @@
    private final RestTemplate restTemplate;
    private final PatchLogMapper patchLogMapper;
    private final ReworkMapper reworkMapper;
    private final BasicDateMapper basicDataMapper;
    private final BasicDataMapper basicDataMapper;
    private final FinishedGoodsInventoryService finishedGoodsInventoryService;
north-glass-erp/src/main/java/com/example/erp/service/sd/BasicDataService.java
File was renamed from north-glass-erp/src/main/java/com/example/erp/service/sd/BasicDateService.java
@@ -5,24 +5,23 @@
import com.example.erp.entity.sd.BasicData;
import com.example.erp.entity.sd.BasicOtherMoney;
import com.example.erp.entity.sd.Customer;
import com.example.erp.mapper.sd.BasicDateMapper;
import com.example.erp.mapper.sd.BasicDataMapper;
import com.example.erp.mapper.sd.BasicOtherMoneyMapper;
import com.example.erp.mapper.sd.CustomerMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
@Service
@DS("sd")
public class BasicDateService {
    private final BasicDateMapper basicDateMapper;
public class BasicDataService {
    private final BasicDataMapper basicDataMapper;
    private final CustomerMapper customerMapper;
    private final BasicOtherMoneyMapper basicOtherMoneyMapper;
    public BasicDateService(BasicDateMapper basicDateMapper, CustomerMapper customerMapper, BasicOtherMoneyMapper basicOtherMoneyMapper) {
        this.basicDateMapper = basicDateMapper;
    public BasicDataService(BasicDataMapper basicDataMapper, CustomerMapper customerMapper, BasicOtherMoneyMapper basicOtherMoneyMapper) {
        this.basicDataMapper = basicDataMapper;
        this.customerMapper = customerMapper;
        this.basicOtherMoneyMapper = basicOtherMoneyMapper;
    }
@@ -79,9 +78,9 @@
    public Map<String, List<Object>> getBasicDataByType(String type){
        //返回基础数据里的所有类型
        List<String> orderBasicDataType = basicDateMapper.getOrderBasicDataType(type);
        List<String> orderBasicDataType = basicDataMapper.getOrderBasicDataType(type);
        //返回此类型基础数据所有数据
        List<BasicData> orderBasicData = basicDateMapper.getOrderBasicData(type);
        List<BasicData> orderBasicData = basicDataMapper.getOrderBasicData(type);
        Map<String, List<Object>> BasicDataMap = new HashMap<>();
        //创建List对象
@@ -102,17 +101,17 @@
    public List<BasicData> getBasicDataByTypeAndChildType(String type, String childType) {
        Map<String, List<Object>> BasicDataMap = new HashMap<>();
        return basicDateMapper.getOrderBasicDataByTypeAndChildType(type, childType);
        return basicDataMapper.getOrderBasicDataByTypeAndChildType(type, childType);
    }
    public List<BasicData> getBasicData() {
        return basicDateMapper.getBasicData();
        return basicDataMapper.getBasicData();
    }
    public Object getBasicDataType() {
       List<BasicData> lastType =  basicDateMapper.getBasicDataLastType();
       List<BasicData> firstType= basicDateMapper.getBasicDataFirstType();
       List<BasicData> lastType =  basicDataMapper.getBasicDataLastType();
       List<BasicData> firstType= basicDataMapper.getBasicDataFirstType();
       List<Map<String,Object>> list = new ArrayList<>();
       if(!firstType.isEmpty()){
           firstType.forEach(item->{
@@ -143,17 +142,17 @@
            basicData.setBasicCategory(basicTypeList.get(1));
            basicData.setBasicName(map.get("input").toString());
            basicData.setNickname(map.get("nickname").toString());
            basicDateMapper.insert(basicData);
            basicDataMapper.insert(basicData);
        }
        return true;
    }
    public int deleteBasicData(BasicData basicData) {
        return  basicDateMapper.deleteById(basicData.getId());
        return  basicDataMapper.deleteById(basicData.getId());
    }
    public int updateBasicData(BasicData basicData) {
        return  basicDateMapper.updateById(basicData);
        return  basicDataMapper.updateById(basicData);
    }
}
north-glass-erp/src/main/resources/mapper/sd/BasicDataMapper.xml
@@ -2,7 +2,7 @@
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.erp.mapper.sd.BasicDateMapper">
<mapper namespace="com.example.erp.mapper.sd.BasicDataMapper">
    <select id="getOrderBasicData">
        select
            id,basic_type,if(basic_category='icon',null,nickname) as 'nickname',basic_name,basic_category,create_time,update_time
north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml
@@ -1050,23 +1050,23 @@
                                       WHEN width &lt; 3660 THEN
                                           ' '
                                       WHEN width &lt; 4000 AND width >= 3660 THEN
                                           '3660&lt;H&lt;4000'
                                           '3660&lt;W&lt;4000'
                                       WHEN width &lt; 5000 AND width >= 4000 THEN
                                           '4000&lt;H&lt;5000'
                                           '4000&lt;W&lt;5000'
                                       WHEN width &lt; 6000 AND width >= 5000 THEN
                                           '5000&lt;H&lt;6000'
                                           '5000&lt;W&lt;6000'
                                       WHEN width &lt; 7000 AND width >= 6000 THEN
                                           '6000&lt;H&lt;7000'
                                           '6000&lt;W&lt;7000'
                                       WHEN width &lt; 8000 AND width >= 7000 THEN
                                           '7000&lt;H&lt;8000'
                                           '7000&lt;W&lt;8000'
                                       WHEN width &lt; 9000 AND width >= 8000 THEN
                                           '8000&lt;H&lt;9000'
                                           '8000&lt;W&lt;9000'
                                       WHEN width &lt; 10000 AND width >= 9000 THEN
                                           '9000&lt;H&lt;10000'
                                           '9000&lt;W&lt;10000'
                                       WHEN width &lt; 11000 AND width >= 10000 THEN
                                           '10000&lt;H&lt;11000'
                                           '10000&lt;W&lt;11000'
                                       WHEN width &lt; 12000 AND width >= 11000 THEN
                                           '11000&lt;H&lt;12000'
                                           '11000&lt;W&lt;12000'
                                       END width
                            from order_detail) as od on dd.order_id = od.order_id and dd.order_number = od.order_number
                 left join product pt on pt.id = od.product_id
@@ -1120,23 +1120,23 @@
                                       WHEN width &lt; 3660 THEN
                                           ' '
                                       WHEN width &lt; 4000 AND width >= 3660 THEN
                                           '3660&lt;H&lt;4000'
                                           '3660&lt;W&lt;4000'
                                       WHEN width &lt; 5000 AND width >= 4000 THEN
                                           '4000&lt;H&lt;5000'
                                           '4000&lt;W&lt;5000'
                                       WHEN width &lt; 6000 AND width >= 5000 THEN
                                           '5000&lt;H&lt;6000'
                                           '5000&lt;W&lt;6000'
                                       WHEN width &lt; 7000 AND width >= 6000 THEN
                                           '6000&lt;H&lt;7000'
                                           '6000&lt;W&lt;7000'
                                       WHEN width &lt; 8000 AND width >= 7000 THEN
                                           '7000&lt;H&lt;8000'
                                           '7000&lt;W&lt;8000'
                                       WHEN width &lt; 9000 AND width >= 8000 THEN
                                           '8000&lt;H&lt;9000'
                                           '8000&lt;W&lt;9000'
                                       WHEN width &lt; 10000 AND width >= 9000 THEN
                                           '9000&lt;H&lt;10000'
                                           '9000&lt;W&lt;10000'
                                       WHEN width &lt; 11000 AND width >= 10000 THEN
                                           '10000&lt;H&lt;11000'
                                           '10000&lt;W&lt;11000'
                                       WHEN width &lt; 12000 AND width >= 11000 THEN
                                           '11000&lt;H&lt;12000'
                                           '11000&lt;W&lt;12000'
                                       END width
                            from order_detail) as od on dd.order_id = od.order_id and dd.order_number = od.order_number
                 left join product pt on pt.id = od.product_id
north-glass-erp/src/main/resources/mapper/sd/OrderGlassDetailMapper.xml
@@ -202,4 +202,29 @@
    </select>
    <select id="getMaxIdByGroup" >
        select max(id) from sd.order_glass_detail as a
        where a.order_id = #{orderId}
          and a.order_number = #{orderNumber}
          and a.`group` = #{group}
    </select>
    <select id="getMinTechnologyNumberByGroup" >
        select min(technology_number) from sd.order_glass_detail as a
        where a.order_id = #{orderId}
          and a.order_number = #{orderNumber}
          and a.`group` = #{group}
    </select>
    <select id="getMaxTechnologyNumberByGroup" >
        select min(technology_number) from sd.order_glass_detail as a
        where a.order_id = #{orderId}
          and a.order_number = #{orderNumber}
          and a.`group` = #{group}
    </select>
</mapper>
north-glass-erp/src/main/resources/mapper/sd/ProductDetailMapper.xml
@@ -25,4 +25,12 @@
                )
        </foreach>
    </insert>
    <select id="getGlassNameByGroup">
    SELECT GROUP_CONCAT(detail SEPARATOR '+')
    from sd.product_detail
    where prod_id = #{productId}
      and glass_sort >= #{minTechnologyNumberByGroup}
      and glass_sort &gt;= #{minTechnologyNumberByGroup}
    </select>
</mapper>
north-glass-erp/src/test/java/com/example/erp/service/sd/BasicDataServiceTest.java
File was renamed from north-glass-erp/src/test/java/com/example/erp/service/sd/BasicDateServiceTest.java
@@ -4,13 +4,12 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import static org.junit.jupiter.api.Assertions.*;
@SpringBootTest
class BasicDateServiceTest {
class BasicDataServiceTest {
    @Autowired
    private BasicDateService basicDateService;
    private BasicDataService basicDataService;
    @Test
    void  getOrderBasicData() {
        basicDateService.getOrderBasicData();
        basicDataService.getOrderBasicData();
    }
}