Merge branch 'master' of http://bore.pub:10439/r/ERP_override
| | |
| | | } |
| | | } |
| | | |
| | | function updateProjectStateAndHandleResponse(row, projectNumber, targetState,targetStates,code, successMsg) { |
| | | function updateProjectStateAndHandleResponse(row, projectNumber, targetState, targetStates, code, successMsg) { |
| | | const updateParams = { |
| | | projectNumber: projectNumber, |
| | | stateToUpdate: targetState, |
| | |
| | | '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 { |
| | |
| | | }).catch((error) => { |
| | | console.error('请求出错,操作未完成,详细错误信息:', error); |
| | | //const errorMsg = (res.data && res.data.errorMessage) ? res.data.errorMessage : '操作失败,未获取到具体原因,请联系管理员'; |
| | | ElMessage.error(`请求出错,操作未完成`); |
| | | ElMessage.error(`请求出错,操作未完成 `+error); |
| | | rollbackStateAndReloadGrid(row, targetState); // 调用回滚函数 |
| | | }); |
| | | } |
| | |
| | | localStorage.setItem('projectNo', projectNo.value); |
| | | }); |
| | | |
| | | const saveOptimizeData = () => { |
| | | if(orderInfo.optimizeData!==null){ |
| | | if(quantitys.value===orderInfo.optimizeData.optimalResults.glassTotalQuantity){ |
| | | console.log("保存数据1",orderInfo.optimizeData) |
| | | request.post(`/glassOptimize/saveOptimizeData/${projectNo.value}`,orderInfo.optimizeData).then((res) => { |
| | | if ((Number(res.code) === 200)) { |
| | | ElMessage.success("保存成功"); |
| | | } else { |
| | | ElMessage.warning(res.msg); |
| | | } |
| | | const saveOptimizeData = async () => { |
| | | try { |
| | | // 先从后端查询工程状态 |
| | | const stateRes = await request.post(`/glassOptimize/getProjectState/${projectNo.value}`); |
| | | if (Number(stateRes.code) === 200) { |
| | | const projectData = stateRes.data.data; |
| | | |
| | | }).catch((error) => { |
| | | console.error("获取数据出错:", error); |
| | | }); |
| | | }else{ |
| | | ElMessage.warning("原片不足,小片未全部优化"); |
| | | // 检查 optimize_state 状态 |
| | | if (projectData.optimize_state === 1) { |
| | | // 如果已完成优化,提示用户并阻止继续执行 |
| | | ElMessage.warning('已完成优化保存,不允许重复提交'); |
| | | return; |
| | | } |
| | | } else { |
| | | ElMessage.warning(stateRes.msg); |
| | | return; |
| | | } |
| | | |
| | | }else { |
| | | ElMessage.warning("数据未优化"); |
| | | if(orderInfo.optimizeData!==null){ |
| | | if(quantitys.value===orderInfo.optimizeData.optimalResults.glassTotalQuantity){ |
| | | console.log("保存数据1",orderInfo.optimizeData) |
| | | request.post(`/glassOptimize/saveOptimizeData/${projectNo.value}`,orderInfo.optimizeData).then((res) => { |
| | | if ((Number(res.code) === 200)) { |
| | | ElMessage.success("保存成功"); |
| | | } 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 = () => { |
| New file |
| | |
| | | <script setup lang="ts"> |
| | | import { MlCadViewer } from '@mlightcad/cad-viewer' |
| | | </script> |
| | | |
| | | <template> |
| | | <MlCadViewer locale="zh" url="Drawing1.dwg" /> |
| | | </template> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
| | |
| | | @PathVariable Integer states, |
| | | @PathVariable Integer code |
| | | ) throws JsonProcessingException { |
| | | if (glassOptimizeService.updateProjectState(projectNumber, state,states,code)) { |
| | | return Result.success(); |
| | | } else { |
| | | throw new ServiceException(Constants.Code_500, "修改失败"); |
| | | |
| | | 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()); |
| | | } |
| | | } |
| | | |
| | |
| | | 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; |
| | |
| | | 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; |
| | | |
| | |
| | | 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 |
| | |
| | | } |
| | | |
| | | 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(); |
| | |
| | | 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; |
| | |
| | | GlassOptimizeMapper glassOptimizeMapper; |
| | | @Autowired |
| | | SysErrorService sysErrorService; |
| | | |
| | | @Value("${mesIp:localhost}") // 注入mesIp配置,默认值为10.153.19.31 |
| | | private String mesIp; |
| | | |
| | | RabbitMQUtil rabbitMQUtil; |
| | | //模拟计算 |
| | |
| | | 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 { |
| | | } else if (responseCode.equals(201)) { |
| | | // 当返回201时,抛出自定义异常或返回错误信息 |
| | | throw new RuntimeException(responseData.get("message").toString()); |
| | | } else { |
| | | return false; |
| | | } |
| | | } else { |
| | |
| | | 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(); |
| | |
| | | |
| | | 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. 打开连接 |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | |
| | | FlowCardMapper flowCardMapper; |
| | | private ReportingWorkMapper reportingWorkMapper; |
| | | private final OrderMapper orderMapper; |
| | | |
| | | @Resource |
| | | private AsyncQueryExecutor asyncExecutor; |
| | |
| | | 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; |
| | |
| | | this.orderDetailMapper = orderDetailMapper; |
| | | this.reportingWorkMapper = reportingWorkMapper; |
| | | this.damageDetailsMapper = damageDetailsMapper; |
| | | this.orderMapper = orderMapper; |
| | | } |
| | | |
| | | //流程卡进度方法 |
| | |
| | | dataList.get(i).put("reportWorkQuantityShow",JSON.toJSONString(dataShow)); |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | map.put("data",dataList ); |
| | |
| | | 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; |
| | | } |
| | |
| | | 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); |
| | |
| | | ip: localhost |
| | | port: 3309 |
| | | |
| | | #mesIp: 10.153.19.31 |
| | | mesIp: localhost |
| | | #sa-token: |
| | | # timeout: 86400 |
| | | |
| | |
| | | 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> |
| | | |