chenlu
2025-03-05 54faafd8252079de27ca75e9ccb825a0fccd9c43
Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override
6个文件已修改
543 ■■■■■ 已修改文件
north-glass-erp/northglass-erp/package-lock.json 456 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/package.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/main.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizePrint.vue 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/AddProcessCard.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/package-lock.json
@@ -21,6 +21,7 @@
        "sortablejs": "^1.15.1",
        "vue": "^3.3.4",
        "vue-draggable-plus": "^0.5.0",
        "vue-grid-layout": "^3.0.0-beta1",
        "vue-i18n": "^9.10.1",
        "vue-plugin-hiprint": "^0.0.56",
        "vue-router": "^4.2.4",
@@ -491,6 +492,231 @@
      "version": "0.1.6",
      "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz",
      "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A=="
    },
    "node_modules/@interactjs/actions": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/actions/-/actions-1.10.2.tgz",
      "integrity": "sha512-BHJcW84WCMf/LsKmha/1Yog7aH3+QBXbLvowvZvwYvgjdUIb3xCa1a7FUYXuWAeKNMyKPVjFun+WPce75B+1tA==",
      "license": "MIT",
      "optionalDependencies": {
        "@interactjs/interact": "1.10.2"
      },
      "peerDependencies": {
        "@interactjs/core": "1.10.2",
        "@interactjs/utils": "1.10.2"
      }
    },
    "node_modules/@interactjs/arrange": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/arrange/-/arrange-1.10.2.tgz",
      "integrity": "sha512-pPLA9o4RWMFN0VfalklOFSRLL4WqqXcD9no4XEuqV00goZPCxLBbMTztaWwnutlRy7evtOhUjUH+pZVsS+dZ4Q==",
      "license": "MIT"
    },
    "node_modules/@interactjs/auto-scroll": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/auto-scroll/-/auto-scroll-1.10.2.tgz",
      "integrity": "sha512-yYqzOawwvWd1NNnlqZdzrXoOMFafQ2/ws85erpJqdaNMQE221z2uP+QYhFRLQRgYUlTbHFfmjDpzhuJgq4uA8Q==",
      "license": "MIT",
      "optionalDependencies": {
        "@interactjs/interact": "1.10.2"
      },
      "peerDependencies": {
        "@interactjs/utils": "1.10.2"
      }
    },
    "node_modules/@interactjs/auto-start": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/auto-start/-/auto-start-1.10.2.tgz",
      "integrity": "sha512-nZudj8VzJzz+uEyDHqXwtKpvUYr+Oj1+xBrJEu21CywroHQWM2J4fCIiCgeCo3d5/p/TrzFk5b+YfAWePKiLxA==",
      "license": "MIT",
      "optionalDependencies": {
        "@interactjs/interact": "1.10.2"
      },
      "peerDependencies": {
        "@interactjs/core": "1.10.2",
        "@interactjs/utils": "1.10.2"
      }
    },
    "node_modules/@interactjs/clone": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/clone/-/clone-1.10.2.tgz",
      "integrity": "sha512-XzA8BRHSCwvysOegZ1kopg+IJF3erh4qzY6DRoZsIJovKAXawoa176E58IAzDbgYPJ2yoaSGT+XyzT2C0wa3pQ==",
      "license": "MIT"
    },
    "node_modules/@interactjs/core": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/core/-/core-1.10.2.tgz",
      "integrity": "sha512-SA5KRGo+gFJOhBj1Z2dLHhAf0/2nyHNd4SQ460aIQ3jj/QhqbJW6kGzmh7hBa2FzVGgxLhcQu7NZaP4rnDfUNw==",
      "license": "MIT",
      "peerDependencies": {
        "@interactjs/utils": "1.10.2"
      }
    },
    "node_modules/@interactjs/dev-tools": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/dev-tools/-/dev-tools-1.10.2.tgz",
      "integrity": "sha512-aAd9NgTAGA3yVdFCYcAAYrM4TYQFuVqEvsF+xj+g5SlGyrJ7+GTjPZ2rScOyAsABY4Tz64L2pXvWmXMG87dncA==",
      "license": "MIT",
      "dependencies": {
        "@interactjs/utils": "1.10.2"
      },
      "optionalDependencies": {
        "@interactjs/interact": "1.10.2"
      }
    },
    "node_modules/@interactjs/feedback": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/feedback/-/feedback-1.10.2.tgz",
      "integrity": "sha512-XlcoICGrFeUwwRtDgOpstOOvlU42WZoEg7gJHK3LwF7j0IctPd1+3blXofFlBeVvodle8MvUMepm5CRXz741fA==",
      "license": "MIT"
    },
    "node_modules/@interactjs/inertia": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/inertia/-/inertia-1.10.2.tgz",
      "integrity": "sha512-ZmN1joN6J36Q6SOp3V0iZOisXZOBMSAUj0STo8wbwCKy7K8IrC9vjUBbO2JM52cT6o7hg5ebHsp5c8FrebSHlg==",
      "license": "MIT",
      "dependencies": {
        "@interactjs/offset": "1.10.2"
      },
      "optionalDependencies": {
        "@interactjs/interact": "1.10.2"
      },
      "peerDependencies": {
        "@interactjs/core": "1.10.2",
        "@interactjs/modifiers": "1.10.2",
        "@interactjs/utils": "1.10.2"
      }
    },
    "node_modules/@interactjs/interact": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/interact/-/interact-1.10.2.tgz",
      "integrity": "sha512-Ms5uVCY9IobVYpQyBnBdkP6Bk6iDY7TkC7GupsdUPUxzAvYSQCTEAGr/1PwxSrSS6dN/8O8TuyUWPbCaylr/JA==",
      "license": "MIT",
      "dependencies": {
        "@interactjs/core": "1.10.2",
        "@interactjs/types": "1.10.2",
        "@interactjs/utils": "1.10.2"
      }
    },
    "node_modules/@interactjs/interactjs": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/interactjs/-/interactjs-1.10.2.tgz",
      "integrity": "sha512-OwLl70af6lfZOOg/bvWKSNm1DS1nDI72QnzDYljSKfc2D8stqLIGDO1wPY2rhZudUG5q3t50EhmMUQF76yll/g==",
      "license": "MIT",
      "dependencies": {
        "@interactjs/actions": "1.10.2",
        "@interactjs/arrange": "1.10.2",
        "@interactjs/auto-scroll": "1.10.2",
        "@interactjs/auto-start": "1.10.2",
        "@interactjs/clone": "1.10.2",
        "@interactjs/core": "1.10.2",
        "@interactjs/dev-tools": "1.10.2",
        "@interactjs/feedback": "1.10.2",
        "@interactjs/inertia": "1.10.2",
        "@interactjs/interact": "1.10.2",
        "@interactjs/modifiers": "1.10.2",
        "@interactjs/multi-target": "1.10.2",
        "@interactjs/offset": "1.10.2",
        "@interactjs/pointer-events": "1.10.2",
        "@interactjs/react": "1.10.2",
        "@interactjs/reflow": "1.10.2",
        "@interactjs/utils": "1.10.2",
        "@interactjs/vue": "1.10.2"
      }
    },
    "node_modules/@interactjs/modifiers": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/modifiers/-/modifiers-1.10.2.tgz",
      "integrity": "sha512-3wYEucvZF2NTIslnVIKw5MWhkn9LM42cGCQaC19o3LZeWnbps7NnHJCyQp6zylJrCbwt7f+CSt4Oj2/s0f6XEA==",
      "license": "MIT",
      "dependencies": {
        "@interactjs/snappers": "1.10.2"
      },
      "optionalDependencies": {
        "@interactjs/interact": "1.10.2"
      },
      "peerDependencies": {
        "@interactjs/core": "1.10.2",
        "@interactjs/utils": "1.10.2"
      }
    },
    "node_modules/@interactjs/multi-target": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/multi-target/-/multi-target-1.10.2.tgz",
      "integrity": "sha512-O2GiIqgZBzjAVTOpL8doTnAcM9AtM3+H/Bb+An12wWKtNutVK7JbqUAO2nYueOk55/PP3yDLY9Qdr15RJns3lQ==",
      "license": "MIT"
    },
    "node_modules/@interactjs/offset": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/offset/-/offset-1.10.2.tgz",
      "integrity": "sha512-xLgQqinFUY7ZqSX9d9on7XRcxvQdHNEAktj2QFwxMsEwrA6zbKROpPVwt8WQ1yBAeJSFjgYGcmCMPW5K41dT0w==",
      "license": "MIT",
      "optionalDependencies": {
        "@interactjs/interact": "1.10.2"
      },
      "peerDependencies": {
        "@interactjs/core": "1.10.2",
        "@interactjs/utils": "1.10.2"
      }
    },
    "node_modules/@interactjs/pointer-events": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/pointer-events/-/pointer-events-1.10.2.tgz",
      "integrity": "sha512-O8s3N399hkGIzWGlcJVy0LJyDn5YWDh6XKjyowh/QivtlZSWPY8eglmlN2uZX0lmiqUYghbKI4CpQYP/cE0ZDA==",
      "license": "MIT",
      "optionalDependencies": {
        "@interactjs/interact": "1.10.2"
      },
      "peerDependencies": {
        "@interactjs/core": "1.10.2",
        "@interactjs/utils": "1.10.2"
      }
    },
    "node_modules/@interactjs/react": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/react/-/react-1.10.2.tgz",
      "integrity": "sha512-JXzPdANft+W2vq3SCSzprCwom5UuC8TaiAAhVdt8R+/P6xHbOeAX93XLS5YmDwT8e0Zh9J9jYvz55tkTdwjFZQ==",
      "license": "MIT"
    },
    "node_modules/@interactjs/reflow": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/reflow/-/reflow-1.10.2.tgz",
      "integrity": "sha512-pc6o6RRhSCYQC4auZexRb7z5FQkdSVev5HzlRfUAjfw4C076qgbcs63ESRKy4YXdSBtUTvARQZxpuWUNGquzJw==",
      "license": "MIT",
      "optionalDependencies": {
        "@interactjs/interact": "1.10.2"
      },
      "peerDependencies": {
        "@interactjs/core": "1.10.2",
        "@interactjs/utils": "1.10.2"
      }
    },
    "node_modules/@interactjs/snappers": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/snappers/-/snappers-1.10.2.tgz",
      "integrity": "sha512-wQ41Vn5GRn6VavjIEUtTkd9d5QgdKgC4+CPW0fjKkiQclLBmaic7VibNETO8twN0Jx5e73EoPj9K2nAVHIA0hA==",
      "license": "MIT",
      "peerDependencies": {
        "@interactjs/utils": "1.10.2"
      }
    },
    "node_modules/@interactjs/types": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/types/-/types-1.10.2.tgz",
      "integrity": "sha512-l0T1bU8OHRv716ztQOYwP+K7b/lA76C0T3r/cdabbUv6CKeAFdFRRFlmNxYOM36SxMGWAiq5VWrN3SeXlB7Fow==",
      "license": "MIT"
    },
    "node_modules/@interactjs/utils": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/utils/-/utils-1.10.2.tgz",
      "integrity": "sha512-sOr+pu7XGAN4qv+ikajMo3RJygbkbMLegmx0Tv5Qf6e80sF42FjkmHeMGuV7fL98nwat0VmDiWerOFBnKctXow==",
      "license": "MIT"
    },
    "node_modules/@interactjs/vue": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/vue/-/vue-1.10.2.tgz",
      "integrity": "sha512-msLdc42DFsCPQZt6YBGZrw8Ro23kQcNnj+iLz2OUQcOrp/lma7WjorUuAwwfyFna2DevLtiYlMLbT0dpO/cVhg==",
      "license": "MIT"
    },
    "node_modules/@intlify/core-base": {
      "version": "9.10.1",
@@ -971,6 +1197,12 @@
        "node": ">= 0.6.0"
      }
    },
    "node_modules/batch-processor": {
      "version": "1.0.0",
      "resolved": "https://registry.npmmirror.com/batch-processor/-/batch-processor-1.0.0.tgz",
      "integrity": "sha512-xoLQD8gmmR32MeuBHgH0Tzd5PuSZx71ZsbhVxOCRbgktZEPe4SQy7s9Z50uPp0F/f7iw2XmkHN2xkgbMfckMDA==",
      "license": "MIT"
    },
    "node_modules/binary-extensions": {
      "version": "2.2.0",
      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
@@ -1234,6 +1466,15 @@
      },
      "peerDependencies": {
        "vue": "^3.2.0"
      }
    },
    "node_modules/element-resize-detector": {
      "version": "1.2.4",
      "resolved": "https://registry.npmmirror.com/element-resize-detector/-/element-resize-detector-1.2.4.tgz",
      "integrity": "sha512-Fl5Ftk6WwXE0wqCgNoseKWndjzZlDCwuPTcoVZfCP9R3EHQF8qUtr3YUPNETegRBOKqQKPW3n4kiIWngGi8tKg==",
      "license": "MIT",
      "dependencies": {
        "batch-processor": "1.0.0"
      }
    },
    "node_modules/emoji-regex": {
@@ -1590,6 +1831,12 @@
      "engines": {
        "node": ">= 0.6"
      }
    },
    "node_modules/mitt": {
      "version": "2.1.0",
      "resolved": "https://registry.npmmirror.com/mitt/-/mitt-2.1.0.tgz",
      "integrity": "sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg==",
      "license": "MIT"
    },
    "node_modules/moment": {
      "version": "2.30.1",
@@ -7098,6 +7345,21 @@
        }
      }
    },
    "node_modules/vue-grid-layout": {
      "version": "3.0.0-beta1",
      "resolved": "https://registry.npmmirror.com/vue-grid-layout/-/vue-grid-layout-3.0.0-beta1.tgz",
      "integrity": "sha512-MsW0yfYNtnAO/uDhfZvkP6effxSJxvhAFbIL37x6Rn3vW9xf0WHVefKaSbQMLpSq3mXnR6ut0pg2Cd5lqIIZzg==",
      "license": "MIT",
      "dependencies": {
        "@interactjs/actions": "^1.10.2",
        "@interactjs/auto-start": "^1.10.2",
        "@interactjs/dev-tools": "^1.10.2",
        "@interactjs/interactjs": "^1.10.2",
        "@interactjs/modifiers": "^1.10.2",
        "element-resize-detector": "^1.2.1",
        "mitt": "^2.1.0"
      }
    },
    "node_modules/vue-i18n": {
      "version": "9.10.1",
      "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.10.1.tgz",
@@ -7544,6 +7806,168 @@
      "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz",
      "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A=="
    },
    "@interactjs/actions": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/actions/-/actions-1.10.2.tgz",
      "integrity": "sha512-BHJcW84WCMf/LsKmha/1Yog7aH3+QBXbLvowvZvwYvgjdUIb3xCa1a7FUYXuWAeKNMyKPVjFun+WPce75B+1tA==",
      "requires": {
        "@interactjs/interact": "1.10.2"
      }
    },
    "@interactjs/arrange": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/arrange/-/arrange-1.10.2.tgz",
      "integrity": "sha512-pPLA9o4RWMFN0VfalklOFSRLL4WqqXcD9no4XEuqV00goZPCxLBbMTztaWwnutlRy7evtOhUjUH+pZVsS+dZ4Q=="
    },
    "@interactjs/auto-scroll": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/auto-scroll/-/auto-scroll-1.10.2.tgz",
      "integrity": "sha512-yYqzOawwvWd1NNnlqZdzrXoOMFafQ2/ws85erpJqdaNMQE221z2uP+QYhFRLQRgYUlTbHFfmjDpzhuJgq4uA8Q==",
      "requires": {
        "@interactjs/interact": "1.10.2"
      }
    },
    "@interactjs/auto-start": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/auto-start/-/auto-start-1.10.2.tgz",
      "integrity": "sha512-nZudj8VzJzz+uEyDHqXwtKpvUYr+Oj1+xBrJEu21CywroHQWM2J4fCIiCgeCo3d5/p/TrzFk5b+YfAWePKiLxA==",
      "requires": {
        "@interactjs/interact": "1.10.2"
      }
    },
    "@interactjs/clone": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/clone/-/clone-1.10.2.tgz",
      "integrity": "sha512-XzA8BRHSCwvysOegZ1kopg+IJF3erh4qzY6DRoZsIJovKAXawoa176E58IAzDbgYPJ2yoaSGT+XyzT2C0wa3pQ=="
    },
    "@interactjs/core": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/core/-/core-1.10.2.tgz",
      "integrity": "sha512-SA5KRGo+gFJOhBj1Z2dLHhAf0/2nyHNd4SQ460aIQ3jj/QhqbJW6kGzmh7hBa2FzVGgxLhcQu7NZaP4rnDfUNw==",
      "requires": {}
    },
    "@interactjs/dev-tools": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/dev-tools/-/dev-tools-1.10.2.tgz",
      "integrity": "sha512-aAd9NgTAGA3yVdFCYcAAYrM4TYQFuVqEvsF+xj+g5SlGyrJ7+GTjPZ2rScOyAsABY4Tz64L2pXvWmXMG87dncA==",
      "requires": {
        "@interactjs/interact": "1.10.2",
        "@interactjs/utils": "1.10.2"
      }
    },
    "@interactjs/feedback": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/feedback/-/feedback-1.10.2.tgz",
      "integrity": "sha512-XlcoICGrFeUwwRtDgOpstOOvlU42WZoEg7gJHK3LwF7j0IctPd1+3blXofFlBeVvodle8MvUMepm5CRXz741fA=="
    },
    "@interactjs/inertia": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/inertia/-/inertia-1.10.2.tgz",
      "integrity": "sha512-ZmN1joN6J36Q6SOp3V0iZOisXZOBMSAUj0STo8wbwCKy7K8IrC9vjUBbO2JM52cT6o7hg5ebHsp5c8FrebSHlg==",
      "requires": {
        "@interactjs/interact": "1.10.2",
        "@interactjs/offset": "1.10.2"
      }
    },
    "@interactjs/interact": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/interact/-/interact-1.10.2.tgz",
      "integrity": "sha512-Ms5uVCY9IobVYpQyBnBdkP6Bk6iDY7TkC7GupsdUPUxzAvYSQCTEAGr/1PwxSrSS6dN/8O8TuyUWPbCaylr/JA==",
      "requires": {
        "@interactjs/core": "1.10.2",
        "@interactjs/types": "1.10.2",
        "@interactjs/utils": "1.10.2"
      }
    },
    "@interactjs/interactjs": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/interactjs/-/interactjs-1.10.2.tgz",
      "integrity": "sha512-OwLl70af6lfZOOg/bvWKSNm1DS1nDI72QnzDYljSKfc2D8stqLIGDO1wPY2rhZudUG5q3t50EhmMUQF76yll/g==",
      "requires": {
        "@interactjs/actions": "1.10.2",
        "@interactjs/arrange": "1.10.2",
        "@interactjs/auto-scroll": "1.10.2",
        "@interactjs/auto-start": "1.10.2",
        "@interactjs/clone": "1.10.2",
        "@interactjs/core": "1.10.2",
        "@interactjs/dev-tools": "1.10.2",
        "@interactjs/feedback": "1.10.2",
        "@interactjs/inertia": "1.10.2",
        "@interactjs/interact": "1.10.2",
        "@interactjs/modifiers": "1.10.2",
        "@interactjs/multi-target": "1.10.2",
        "@interactjs/offset": "1.10.2",
        "@interactjs/pointer-events": "1.10.2",
        "@interactjs/react": "1.10.2",
        "@interactjs/reflow": "1.10.2",
        "@interactjs/utils": "1.10.2",
        "@interactjs/vue": "1.10.2"
      }
    },
    "@interactjs/modifiers": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/modifiers/-/modifiers-1.10.2.tgz",
      "integrity": "sha512-3wYEucvZF2NTIslnVIKw5MWhkn9LM42cGCQaC19o3LZeWnbps7NnHJCyQp6zylJrCbwt7f+CSt4Oj2/s0f6XEA==",
      "requires": {
        "@interactjs/interact": "1.10.2",
        "@interactjs/snappers": "1.10.2"
      }
    },
    "@interactjs/multi-target": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/multi-target/-/multi-target-1.10.2.tgz",
      "integrity": "sha512-O2GiIqgZBzjAVTOpL8doTnAcM9AtM3+H/Bb+An12wWKtNutVK7JbqUAO2nYueOk55/PP3yDLY9Qdr15RJns3lQ=="
    },
    "@interactjs/offset": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/offset/-/offset-1.10.2.tgz",
      "integrity": "sha512-xLgQqinFUY7ZqSX9d9on7XRcxvQdHNEAktj2QFwxMsEwrA6zbKROpPVwt8WQ1yBAeJSFjgYGcmCMPW5K41dT0w==",
      "requires": {
        "@interactjs/interact": "1.10.2"
      }
    },
    "@interactjs/pointer-events": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/pointer-events/-/pointer-events-1.10.2.tgz",
      "integrity": "sha512-O8s3N399hkGIzWGlcJVy0LJyDn5YWDh6XKjyowh/QivtlZSWPY8eglmlN2uZX0lmiqUYghbKI4CpQYP/cE0ZDA==",
      "requires": {
        "@interactjs/interact": "1.10.2"
      }
    },
    "@interactjs/react": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/react/-/react-1.10.2.tgz",
      "integrity": "sha512-JXzPdANft+W2vq3SCSzprCwom5UuC8TaiAAhVdt8R+/P6xHbOeAX93XLS5YmDwT8e0Zh9J9jYvz55tkTdwjFZQ=="
    },
    "@interactjs/reflow": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/reflow/-/reflow-1.10.2.tgz",
      "integrity": "sha512-pc6o6RRhSCYQC4auZexRb7z5FQkdSVev5HzlRfUAjfw4C076qgbcs63ESRKy4YXdSBtUTvARQZxpuWUNGquzJw==",
      "requires": {
        "@interactjs/interact": "1.10.2"
      }
    },
    "@interactjs/snappers": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/snappers/-/snappers-1.10.2.tgz",
      "integrity": "sha512-wQ41Vn5GRn6VavjIEUtTkd9d5QgdKgC4+CPW0fjKkiQclLBmaic7VibNETO8twN0Jx5e73EoPj9K2nAVHIA0hA==",
      "requires": {}
    },
    "@interactjs/types": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/types/-/types-1.10.2.tgz",
      "integrity": "sha512-l0T1bU8OHRv716ztQOYwP+K7b/lA76C0T3r/cdabbUv6CKeAFdFRRFlmNxYOM36SxMGWAiq5VWrN3SeXlB7Fow=="
    },
    "@interactjs/utils": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/utils/-/utils-1.10.2.tgz",
      "integrity": "sha512-sOr+pu7XGAN4qv+ikajMo3RJygbkbMLegmx0Tv5Qf6e80sF42FjkmHeMGuV7fL98nwat0VmDiWerOFBnKctXow=="
    },
    "@interactjs/vue": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/@interactjs/vue/-/vue-1.10.2.tgz",
      "integrity": "sha512-msLdc42DFsCPQZt6YBGZrw8Ro23kQcNnj+iLz2OUQcOrp/lma7WjorUuAwwfyFna2DevLtiYlMLbT0dpO/cVhg=="
    },
    "@intlify/core-base": {
      "version": "9.10.1",
      "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.10.1.tgz",
@@ -7892,6 +8316,11 @@
      "resolved": "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz",
      "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ=="
    },
    "batch-processor": {
      "version": "1.0.0",
      "resolved": "https://registry.npmmirror.com/batch-processor/-/batch-processor-1.0.0.tgz",
      "integrity": "sha512-xoLQD8gmmR32MeuBHgH0Tzd5PuSZx71ZsbhVxOCRbgktZEPe4SQy7s9Z50uPp0F/f7iw2XmkHN2xkgbMfckMDA=="
    },
    "binary-extensions": {
      "version": "2.2.0",
      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
@@ -8082,6 +8511,14 @@
        "lodash-unified": "^1.0.2",
        "memoize-one": "^6.0.0",
        "normalize-wheel-es": "^1.2.0"
      }
    },
    "element-resize-detector": {
      "version": "1.2.4",
      "resolved": "https://registry.npmmirror.com/element-resize-detector/-/element-resize-detector-1.2.4.tgz",
      "integrity": "sha512-Fl5Ftk6WwXE0wqCgNoseKWndjzZlDCwuPTcoVZfCP9R3EHQF8qUtr3YUPNETegRBOKqQKPW3n4kiIWngGi8tKg==",
      "requires": {
        "batch-processor": "1.0.0"
      }
    },
    "emoji-regex": {
@@ -8344,6 +8781,11 @@
      "requires": {
        "mime-db": "1.52.0"
      }
    },
    "mitt": {
      "version": "2.1.0",
      "resolved": "https://registry.npmmirror.com/mitt/-/mitt-2.1.0.tgz",
      "integrity": "sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg=="
    },
    "moment": {
      "version": "2.30.1",
@@ -13790,6 +14232,20 @@
        "@types/sortablejs": "^1.15.8"
      }
    },
    "vue-grid-layout": {
      "version": "3.0.0-beta1",
      "resolved": "https://registry.npmmirror.com/vue-grid-layout/-/vue-grid-layout-3.0.0-beta1.tgz",
      "integrity": "sha512-MsW0yfYNtnAO/uDhfZvkP6effxSJxvhAFbIL37x6Rn3vW9xf0WHVefKaSbQMLpSq3mXnR6ut0pg2Cd5lqIIZzg==",
      "requires": {
        "@interactjs/actions": "^1.10.2",
        "@interactjs/auto-start": "^1.10.2",
        "@interactjs/dev-tools": "^1.10.2",
        "@interactjs/interactjs": "^1.10.2",
        "@interactjs/modifiers": "^1.10.2",
        "element-resize-detector": "^1.2.1",
        "mitt": "^2.1.0"
      }
    },
    "vue-i18n": {
      "version": "9.10.1",
      "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.10.1.tgz",
north-glass-erp/northglass-erp/package.json
@@ -21,6 +21,7 @@
    "sortablejs": "^1.15.1",
    "vue": "^3.3.4",
    "vue-draggable-plus": "^0.5.0",
    "vue-grid-layout": "^3.0.0-beta1",
    "vue-i18n": "^9.10.1",
    "vue-plugin-hiprint": "^0.0.56",
    "vue-router": "^4.2.4",
north-glass-erp/northglass-erp/src/main.js
@@ -18,7 +18,12 @@
import i18n from "@/lang"
import print from 'vue3-print-nb'
import { hiPrintPlugin } from "vue-plugin-hiprint"
// 优化 玻璃布局拖拉
import gridLayout  from 'vue-grid-layout'
hiPrintPlugin.disAutoConnect()
@@ -35,5 +40,6 @@
app.use(i18n)
app.use(print)
app.use(hiPrintPlugin)
app.use(gridLayout)
app.mount('#app')
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizePrint.vue
@@ -1,9 +1,55 @@
<script setup>
 const layout=[
   {"x":0,"y":0,"w":2,"h":2,"i":"0"},
   {"x":2,"y":0,"w":2,"h":4,"i":"1"},
   {"x":4,"y":0,"w":2,"h":5,"i":"2"},
   {"x":6,"y":0,"w":2,"h":3,"i":"3"},
   {"x":8,"y":0,"w":2,"h":3,"i":"4"},
   {"x":10,"y":0,"w":2,"h":3,"i":"5"},
   {"x":0,"y":5,"w":2,"h":5,"i":"6"},
   {"x":2,"y":5,"w":2,"h":5,"i":"7"},
   {"x":4,"y":5,"w":2,"h":5,"i":"8"},
   {"x":6,"y":3,"w":2,"h":4,"i":"9"},
   {"x":8,"y":4,"w":2,"h":4,"i":"10"},
   {"x":10,"y":4,"w":2,"h":4,"i":"11"},
   {"x":0,"y":10,"w":2,"h":5,"i":"12"},
   {"x":2,"y":10,"w":2,"h":5,"i":"13"},
   {"x":4,"y":8,"w":2,"h":4,"i":"14"},
   {"x":6,"y":8,"w":2,"h":4,"i":"15"},
   {"x":8,"y":10,"w":2,"h":5,"i":"16"},
   {"x":10,"y":4,"w":2,"h":2,"i":"17"},
   {"x":0,"y":9,"w":2,"h":3,"i":"18"},
   {"x":2,"y":6,"w":2,"h":2,"i":"19"}
 ]
</script>
<template>
  111
  <grid-layout
      style="border:1px solid black;height: 100%;width: 100%"
      :layout.sync="layout"
      :col-num="12"
      :row-height="30"
      :is-draggable="true"
      :is-resizable="false"
      :is-mirrored="false"
      :vertical-compact="true"
      :margin="[2, 2]"
      :use-css-transforms="true"
      :autoSize="false"
  >
    <grid-item v-for="item in layout"
               :x="item.x"
               :y="item.y"
               :w="item.w"
               :h="item.h"
               :i="item.i"
               :key="item.i"
               style="background-color: white"
    >
      {{item.i}}
    </grid-item>
  </grid-layout>
</template>
<style scoped>
north-glass-erp/northglass-erp/src/views/pp/processCard/AddProcessCard.vue
@@ -147,7 +147,7 @@
  },
  formConfig: {
    data: {
      shelfThickness: 2000,
      shelfThickness: 800,
      spacerThickness: 0,
      inWeight: 4000,
      inMaxQuantity: 20,
@@ -165,6 +165,9 @@
      ],
      inWeight: [
        { required: true, message: t('basicData.msg.greater0'),type:'number',pattern:/^[1-9]\d*$/ }
      ],
      inMaxQuantity: [
        { required: true, message: t('basicData.msg.greater0'),type:'number',pattern:/^[1-9]\d*$/ }
      ]
    },
    items:[
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -29,6 +29,7 @@
import java.sql.Date;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import static com.example.erp.service.sd.OrderService.getOrderProcessDetails;
@@ -895,11 +896,14 @@
        }
        String[] processCardList = processCard.split("/");
        List<String> result = IntStream.range(0, processCardList[1].length())
                .mapToObj(i -> String.valueOf(processCardList[1].charAt(i)))
                .collect(Collectors.toList());
        List<FlowCard> flowCardList = flowCardMapper.selectList(
                new QueryWrapper<FlowCard>()
                        .eq("process_id", processCardList[0])
                        .eq("technology_number", processCardList[1])
                        .in("technology_number", result)
        );
        for (FlowCard flowCard : flowCardList) {
            flowCard.setOrderGlassDetail(
@@ -1125,11 +1129,13 @@
                }
                if(flowCardWeight>0){
                    flowCardWeight = inWeight - flowCardWeight;
                    shelfQuantity = (int) (flowCardWeight /
                    //按照当前流程卡剩余重量,计算当前流程卡剩余数量
                    int remainingQuantity = (int) (flowCardWeight /
                            (orderDetail.getHeight()
                                    * orderDetail.getWidth()
                                    * glassThickness
                                    * 2.5 / 1000000));
                    shelfQuantity =Math.min(Math.min(Math.min(shelfQuantityByWeight, Math.min(inMaxQuantity, shelfMaxQuantityByThickness)),shelfQuantity),remainingQuantity);
                    if (shelfQuantity == 0) {
                        shelfQuantity = Math.min(shelfQuantityByWeight, Math.min(inMaxQuantity, shelfMaxQuantityByThickness));
                        flowCardNo += 1;
@@ -1138,7 +1144,7 @@
            }
            //取最小值
            Integer maxQuantity = 0;
            //Integer maxQuantity = 0;
            while (orderDetail.getQuantity() > 0) {
                OrderDetail newOrderDetail = new OrderDetail();
                //当死循环中,当前架子剩余数量为0时,重新计算架子剩余数量
@@ -1147,26 +1153,29 @@
                }
                String processId = productionId + String.format("%03d", flowCardNo);
                //取最小值
                maxQuantity = Math.min(shelfQuantity, Math.min(inMaxQuantity, shelfMaxQuantityByThickness));
                //maxQuantity = Math.min(shelfQuantity, Math.min(inMaxQuantity, shelfMaxQuantityByThickness));
                //maxQuantity = Math.min(shelfQuantity,  shelfMaxQuantityByThickness);
                /*System.out.println("订单序号:"+orderDetail.getOrderNumber());
                System.out.println(shelfQuantity + ","  + "," + shelfMaxQuantityByThickness);
                System.out.println(flowCardNo + "," + maxQuantity);
                System.out.println("------");*/
                if(shelfQuantity<=0){
                    return false;
                }
                if (orderDetail.getQuantity() > maxQuantity) {
                if (orderDetail.getQuantity() > shelfQuantity) {
                    newOrderDetail.setProcessId(processId);
                    newOrderDetail.setQuantity(Long.valueOf(maxQuantity));
                    newOrderDetail.setQuantity(Long.valueOf(shelfQuantity));
                    newOrderDetail.setHeight(orderDetail.getHeight());
                    newOrderDetail.setWidth(orderDetail.getWidth());
                    newOrderDetail.setOrderNumber(orderDetail.getOrderNumber());
                    newOrderDetail.setShape(orderDetail.getShape());
                    newOrderDetail.setLandingSequence(flowCardNo);
                    orderDetailList.add(newOrderDetail);
                    orderDetail.setQuantity(orderDetail.getQuantity() - maxQuantity);
                    orderDetail.setQuantity(orderDetail.getQuantity() - shelfQuantity);
                    flowCardNo += 1;
                    shelfQuantity = shelfQuantity - maxQuantity;
                    shelfQuantity = shelfQuantity - shelfQuantity;
                } else {
                    newOrderDetail.setProcessId(processId);
                    newOrderDetail.setQuantity(orderDetail.getQuantity());