chenlu
2025-11-07 2abec00842a87162186406af7c2014aae948af49
Merge branch 'master' of http://bore.pub:10439/r/ERP_override
1个文件已添加
9个文件已修改
109 ■■■■■ 已修改文件
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectMange.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/order/CADDraw.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/application-prod.yml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectMange.vue
@@ -582,6 +582,11 @@
      'Content-Type': 'application/json'
    }
  }).then((res) => {
    // 检查业务状态码,如果是201则抛出错误以在catch中处理
    if (Number(res.code) === 201) {
      // 抛出自定义错误对象,包含后端返回的msg信息
      throw new Error(res.msg || '操作失败');
    }
    if (Number(res.code) === 200 && (res.msg === "" || res.msg === null)) {
      ElMessage.success(successMsg);
    } else {
@@ -594,7 +599,7 @@
  }).catch((error) => {
    console.error('请求出错,操作未完成,详细错误信息:', error);
    //const errorMsg = (res.data && res.data.errorMessage) ? res.data.errorMessage : '操作失败,未获取到具体原因,请联系管理员';
    ElMessage.error(`请求出错,操作未完成`);
    ElMessage.error(`请求出错,操作未完成  `+error);
    rollbackStateAndReloadGrid(row, targetState); // 调用回滚函数
  });
}
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue
@@ -683,7 +683,23 @@
  localStorage.setItem('projectNo', projectNo.value);
});
const saveOptimizeData = () => {
const saveOptimizeData = async () => {
  try {
    // 先从后端查询工程状态
    const stateRes = await request.post(`/glassOptimize/getProjectState/${projectNo.value}`);
    if (Number(stateRes.code) === 200) {
      const projectData = stateRes.data.data;
      // 检查 optimize_state 状态
      if (projectData.optimize_state === 1) {
        // 如果已完成优化,提示用户并阻止继续执行
        ElMessage.warning('已完成优化保存,不允许重复提交');
        return;
      }
    } else {
      ElMessage.warning(stateRes.msg);
      return;
    }
  if(orderInfo.optimizeData!==null){
    if(quantitys.value===orderInfo.optimizeData.optimalResults.glassTotalQuantity){
      console.log("保存数据1",orderInfo.optimizeData)
@@ -693,18 +709,19 @@
        } else {
          ElMessage.warning(res.msg);
        }
      }).catch((error) => {
        console.error("获取数据出错:", error);
      });
    }else{
      ElMessage.warning("原片不足,小片未全部优化");
    }
  }else {
    ElMessage.warning("数据未优化");
  }
  } catch (error) {
    ElMessage.error('检查工程状态失败,请稍后重试');
    console.error('检查工程状态失败:', error);
  }
}
const fetchData = () => {
north-glass-erp/northglass-erp/src/views/sd/order/CADDraw.vue
New file
@@ -0,0 +1,11 @@
<script setup lang="ts">
import { MlCadViewer } from '@mlightcad/cad-viewer'
</script>
<template>
  <MlCadViewer locale="zh" url="Drawing1.dwg" />
</template>
<style scoped>
</style>
north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java
@@ -130,11 +130,14 @@
            @PathVariable Integer states,
            @PathVariable Integer code
    ) throws JsonProcessingException {
        try {
        if (glassOptimizeService.updateProjectState(projectNumber, state,states,code)) {
            return Result.success();
        } else {
            throw new ServiceException(Constants.Code_500, "修改失败");
            }
        } catch (Exception e) {
            return Result.error("201", e.getMessage());
        }
    }
north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java
@@ -1,23 +1,14 @@
package com.example.erp.service.mm;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.example.erp.common.Constants;
import com.example.erp.dto.mm.FinishedOperateLogDTO;
import com.example.erp.dto.mm.MaterialLogDTO;
import com.example.erp.entity.mm.*;
import com.example.erp.entity.pp.*;
import com.example.erp.entity.sd.Delivery;
import com.example.erp.entity.sd.DeliveryDetail;
import com.example.erp.entity.sd.OrderDetail;
import com.example.erp.entity.sd.OrderProcessDetail;
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.BasicWarehouseTypeMapper;
import com.example.erp.mapper.mm.MaterialInventoryMapper;
import com.example.erp.mapper.mm.MaterialLogMapper;
@@ -29,8 +20,6 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.ArrayList;
@@ -38,6 +27,9 @@
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
@Service
@@ -1317,12 +1309,20 @@
    }
    public Object appGetStockList() {
        List<MaterialInventory> materialInventoryList = materialInventoryMapper.selectGetStockList();
        ExecutorService executor = Executors.newFixedThreadPool(2);
        AtomicReference<List<MaterialInventory>> materialInventoryList = new AtomicReference<>(new ArrayList<MaterialInventory>());
        executor.execute(() -> {
            materialInventoryList.set(materialInventoryMapper.selectGetStockList());
        });
        List<Object> list = new ArrayList<>();
        executor.shutdown();
        Map<String, Object> totalSum  = new HashMap<>();
        Integer inventoryQuantity = 0;
        Integer availableQuantity = 0;
        Double totalArea = 0.00;
        for (MaterialInventory materialInventory : materialInventoryList) {
        for (MaterialInventory materialInventory : materialInventoryList.get()) {
            inventoryQuantity += materialInventory.getInventoryQuantity();
            availableQuantity += materialInventory.getAvailableQuantity();
            totalArea += materialInventory.getTotalArea();
north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java
@@ -18,6 +18,7 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -45,6 +46,9 @@
    GlassOptimizeMapper glassOptimizeMapper;
    @Autowired
    SysErrorService sysErrorService;
    @Value("${mesIp:localhost}")  // 注入mesIp配置,默认值为10.153.19.31
    private String mesIp;
    RabbitMQUtil rabbitMQUtil;
    //模拟计算
@@ -772,12 +776,14 @@
                Map<String, Object> cancelResult = issuingCancelProject(projectNumber);
                // 获取返回结果中的data字段
                Map<String, Object> responseData = (Map<String, Object>) cancelResult.get("data");
                // 检查响应中的code字段,只有当code为200或202时才允许更新状态
                if (responseData != null && responseData.containsKey("code")) {
                    Object responseCode = responseData.get("code");
                    if (responseCode.equals(200) || responseCode.equals(202)) {
                        glassOptimizeMapper.updateProjectStateMp(projectNumber, state);
                    } else if (responseCode.equals(201)) {
                        // 当返回201时,抛出自定义异常或返回错误信息
                        throw new RuntimeException(responseData.get("message").toString());
                    }else {
                        return false;
                    }
@@ -1241,8 +1247,7 @@
        boolean  saveState=false;
        try {
            // 1. 创建URL对象
//            URL url = new URL("http://10.153.19.31:88/api/loadGlass/engineering/importEngineer");
            URL url = new URL("http://localhost:88/api/loadGlass/engineering/importEngineer");
            URL url = new URL("http://" + mesIp + ":88/api/loadGlass/engineering/importEngineer");
            // 2. 打开连接
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
@@ -1480,8 +1485,8 @@
        try {
            // 1. 创建URL对象
//            URL url = new URL("http://10.153.19.31:88/api/loadGlass/engineering/optimizeCancelTask");
            URL url = new URL("http://localhost:88/api/loadGlass/engineering/optimizeCancelTask");
            URL url = new URL("http://" + mesIp + ":88/api/loadGlass/engineering/optimizeCancelTask");
//            URL url = new URL("http://localhost:88/api/loadGlass/engineering/optimizeCancelTask");
            // 2. 打开连接
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
@@ -5,6 +5,7 @@
import com.alibaba.fastjson.TypeReference;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.example.erp.common.AsyncQueryExecutor;
import com.example.erp.entity.sd.*;
import com.example.erp.tools.AreaComputed.*;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -12,10 +13,6 @@
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.*;
import com.example.erp.mapper.sd.*;
import org.springframework.beans.factory.annotation.Autowired;
@@ -53,6 +50,7 @@
    FlowCardMapper flowCardMapper;
    private ReportingWorkMapper reportingWorkMapper;
    private final OrderMapper orderMapper;
    @Resource
    private AsyncQueryExecutor asyncExecutor;
@@ -136,7 +134,7 @@
                         ProductionSchedulingMapper productionSchedulingMapper, FlowCardMapper flowCardMapper,
                         OrderGlassDetailMapper orderGlassDetailMapper, BasicDataMapper basicDataMapper,
                         ProductDetailMapper productDetailMapper, OrderDetailMapper orderDetailMapper,
                         ReportingWorkMapper reportingWorkMapper, DamageDetailsMapper damageDetailsMapper) {
                         ReportingWorkMapper reportingWorkMapper, DamageDetailsMapper damageDetailsMapper, OrderMapper orderMapper) {
        this.reportMapper = reportMapper;
        this.orderProcessDetailMapper = orderProcessDetailMapper;
        this.productionSchedulingMapper = productionSchedulingMapper;
@@ -147,6 +145,7 @@
        this.orderDetailMapper = orderDetailMapper;
        this.reportingWorkMapper = reportingWorkMapper;
        this.damageDetailsMapper = damageDetailsMapper;
        this.orderMapper = orderMapper;
    }
    //流程卡进度方法
@@ -303,8 +302,6 @@
            dataList.get(i).put("reportWorkQuantityShow",JSON.toJSONString(dataShow));
        }
        map.put("data",dataList );
@@ -1445,11 +1442,10 @@
            dataList.get(i).put("reportWorkQuantityShow",JSON.toJSONString(dataShow));
        }
        Order order = orderMapper.selectOrderId(orderId);
        map.put("mergeCells", rowCount);
        map.put("data",dataList);
        map.put("order",order);
        return  map;
    }
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
@@ -1061,6 +1061,7 @@
        totalSum.put("perimeter", df.format(perimeter));
        totalSum.put("count", list.size());
        Map<String,Object> map = new HashMap<>();
        map.put("data",list);
        map.put("date",date);
north-glass-erp/src/main/resources/application-prod.yml
@@ -7,6 +7,8 @@
ip: localhost
port: 3309
#mesIp: 10.153.19.31
mesIp: localhost
#sa-token:
#  timeout: 86400
north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml
@@ -1393,6 +1393,7 @@
        left join mm.material_store ms
            on mi.material_code=ms.id
        where inventory_quantity>0
        and mi.inventory_organization = '原片库'
        order by mi.id desc
    </select>