yangyang
2025-03-17 9cf4ac9c3f8301f5697f6d12ac4bf32855f0b044
#新增
添加质检单管理
1个文件已添加
9个文件已修改
643 ■■■■ 已修改文件
rsf-admin/.env 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/package-lock.json 460 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/QlyInspectController.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/QlyInspectAndItem.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItem.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/QlyInspectService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyInspectServiceImpl.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/resources/application.yml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/.env
@@ -1,3 +1,3 @@
VITE_BASE_IP=192.168.4.24
VITE_BASE_IP=localhost
# VITE_BASE_IP=47.76.147.249
VITE_BASE_PORT=8080
rsf-admin/package-lock.json
@@ -10,18 +10,25 @@
        "@hello-pangea/dnd": "^16.3.0",
        "@mui/icons-material": "^5.16.7",
        "@mui/material": "^5.16.7",
        "@mui/system": "^6.4.7",
        "@mui/x-data-grid": "^7.27.3",
        "@mui/x-tree-view": "^7.16.0",
        "@tweenjs/tween.js": "^21.0.0",
        "axios": "^1.7.4",
        "date-fns": "^3.6.0",
        "framer-motion": "^12.4.10",
        "lodash": "^4.17.21",
        "motion": "^12.4.1",
        "papaparse": "^5.4.1",
        "pixi.js": "^7.4.0",
        "prop-types": "^15.8.1",
        "ra-i18n-polyglot": "^5.6.2",
        "ra-language-english": "^5.6.2",
        "react": "^18.3.0",
        "react-admin": "^5.1.0",
        "react-dom": "^18.3.0",
        "react-hook-form": "^7.53.0",
        "react-router": "^6.22.0",
        "react-router-dom": "^6.26.1",
        "react-syntax-highlighter": "^15.5.0",
        "three": "^0.155.0",
@@ -304,9 +311,10 @@
      }
    },
    "node_modules/@babel/runtime": {
      "version": "7.25.6",
      "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.25.6.tgz",
      "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==",
      "version": "7.26.10",
      "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz",
      "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==",
      "license": "MIT",
      "dependencies": {
        "regenerator-runtime": "^0.14.0"
      },
@@ -392,13 +400,14 @@
      }
    },
    "node_modules/@emotion/cache": {
      "version": "11.13.1",
      "resolved": "https://registry.npmmirror.com/@emotion/cache/-/cache-11.13.1.tgz",
      "integrity": "sha512-iqouYkuEblRcXmylXIwwOodiEK5Ifl7JcX7o6V4jI3iW4mLXX3dmt5xwBtIkJiQEXFAI+pC8X0i67yiPkH9Ucw==",
      "version": "11.14.0",
      "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz",
      "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==",
      "license": "MIT",
      "dependencies": {
        "@emotion/memoize": "^0.9.0",
        "@emotion/sheet": "^1.4.0",
        "@emotion/utils": "^1.4.0",
        "@emotion/utils": "^1.4.2",
        "@emotion/weak-memoize": "^0.4.0",
        "stylis": "4.2.0"
      }
@@ -445,14 +454,15 @@
      }
    },
    "node_modules/@emotion/serialize": {
      "version": "1.3.1",
      "resolved": "https://registry.npmmirror.com/@emotion/serialize/-/serialize-1.3.1.tgz",
      "integrity": "sha512-dEPNKzBPU+vFPGa+z3axPRn8XVDetYORmDC0wAiej+TNcOZE70ZMJa0X7JdeoM6q/nWTMZeLpN/fTnD9o8MQBA==",
      "version": "1.3.3",
      "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz",
      "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==",
      "license": "MIT",
      "dependencies": {
        "@emotion/hash": "^0.9.2",
        "@emotion/memoize": "^0.9.0",
        "@emotion/unitless": "^0.10.0",
        "@emotion/utils": "^1.4.0",
        "@emotion/utils": "^1.4.2",
        "csstype": "^3.0.2"
      }
    },
@@ -497,9 +507,10 @@
      }
    },
    "node_modules/@emotion/utils": {
      "version": "1.4.0",
      "resolved": "https://registry.npmmirror.com/@emotion/utils/-/utils-1.4.0.tgz",
      "integrity": "sha512-spEnrA1b6hDR/C68lC2M7m6ALPUHZC0lIY7jAS/B/9DuuO1ZP04eov8SMv/6fwRd8pzmsn2AuJEznRREWlQrlQ=="
      "version": "1.4.2",
      "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz",
      "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==",
      "license": "MIT"
    },
    "node_modules/@emotion/weak-memoize": {
      "version": "0.4.0",
@@ -1124,18 +1135,14 @@
        }
      }
    },
    "node_modules/@mui/material/node_modules/react-is": {
      "version": "18.3.1",
      "resolved": "https://registry.npmmirror.com/react-is/-/react-is-18.3.1.tgz",
      "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="
    },
    "node_modules/@mui/private-theming": {
      "version": "5.16.6",
      "resolved": "https://registry.npmmirror.com/@mui/private-theming/-/private-theming-5.16.6.tgz",
      "integrity": "sha512-rAk+Rh8Clg7Cd7shZhyt2HGTTE5wYKNSJ5sspf28Fqm/PZ69Er9o6KX25g03/FG2dfpg5GCwZh/xOojiTfm3hw==",
    "node_modules/@mui/material/node_modules/@mui/private-theming": {
      "version": "5.16.14",
      "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.16.14.tgz",
      "integrity": "sha512-12t7NKzvYi819IO5IapW2BcR33wP/KAVrU8d7gLhGHoAmhDxyXlRoKiRij3TOD8+uzk0B6R9wHUNKi4baJcRNg==",
      "license": "MIT",
      "dependencies": {
        "@babel/runtime": "^7.23.9",
        "@mui/utils": "^5.16.6",
        "@mui/utils": "^5.16.14",
        "prop-types": "^15.8.1"
      },
      "engines": {
@@ -1146,8 +1153,8 @@
        "url": "https://opencollective.com/mui-org"
      },
      "peerDependencies": {
        "@types/react": "^17.0.0 || ^18.0.0",
        "react": "^17.0.0 || ^18.0.0"
        "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
        "react": "^17.0.0 || ^18.0.0 || ^19.0.0"
      },
      "peerDependenciesMeta": {
        "@types/react": {
@@ -1155,13 +1162,14 @@
        }
      }
    },
    "node_modules/@mui/styled-engine": {
      "version": "5.16.6",
      "resolved": "https://registry.npmmirror.com/@mui/styled-engine/-/styled-engine-5.16.6.tgz",
      "integrity": "sha512-zaThmS67ZmtHSWToTiHslbI8jwrmITcN93LQaR2lKArbvS7Z3iLkwRoiikNWutx9MBs8Q6okKvbZq1RQYB3v7g==",
    "node_modules/@mui/material/node_modules/@mui/styled-engine": {
      "version": "5.16.14",
      "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.16.14.tgz",
      "integrity": "sha512-UAiMPZABZ7p8mUW4akDV6O7N3+4DatStpXMZwPlt+H/dA0lt67qawN021MNND+4QTpjaiMYxbhKZeQcyWCbuKw==",
      "license": "MIT",
      "dependencies": {
        "@babel/runtime": "^7.23.9",
        "@emotion/cache": "^11.11.0",
        "@emotion/cache": "^11.13.5",
        "csstype": "^3.1.3",
        "prop-types": "^15.8.1"
      },
@@ -1175,7 +1183,7 @@
      "peerDependencies": {
        "@emotion/react": "^11.4.1",
        "@emotion/styled": "^11.3.0",
        "react": "^17.0.0 || ^18.0.0"
        "react": "^17.0.0 || ^18.0.0 || ^19.0.0"
      },
      "peerDependenciesMeta": {
        "@emotion/react": {
@@ -1186,16 +1194,17 @@
        }
      }
    },
    "node_modules/@mui/system": {
      "version": "5.16.7",
      "resolved": "https://registry.npmmirror.com/@mui/system/-/system-5.16.7.tgz",
      "integrity": "sha512-Jncvs/r/d/itkxh7O7opOunTqbbSSzMTHzZkNLM+FjAOg+cYAZHrPDlYe1ZGKUYORwwb2XexlWnpZp0kZ4AHuA==",
    "node_modules/@mui/material/node_modules/@mui/system": {
      "version": "5.16.14",
      "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.16.14.tgz",
      "integrity": "sha512-KBxMwCb8mSIABnKvoGbvM33XHyT+sN0BzEBG+rsSc0lLQGzs7127KWkCA6/H8h6LZ00XpBEME5MAj8mZLiQ1tw==",
      "license": "MIT",
      "dependencies": {
        "@babel/runtime": "^7.23.9",
        "@mui/private-theming": "^5.16.6",
        "@mui/styled-engine": "^5.16.6",
        "@mui/private-theming": "^5.16.14",
        "@mui/styled-engine": "^5.16.14",
        "@mui/types": "^7.2.15",
        "@mui/utils": "^5.16.6",
        "@mui/utils": "^5.16.14",
        "clsx": "^2.1.0",
        "csstype": "^3.1.3",
        "prop-types": "^15.8.1"
@@ -1210,8 +1219,8 @@
      "peerDependencies": {
        "@emotion/react": "^11.5.0",
        "@emotion/styled": "^11.3.0",
        "@types/react": "^17.0.0 || ^18.0.0",
        "react": "^17.0.0 || ^18.0.0"
        "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
        "react": "^17.0.0 || ^18.0.0 || ^19.0.0"
      },
      "peerDependenciesMeta": {
        "@emotion/react": {
@@ -1225,12 +1234,191 @@
        }
      }
    },
    "node_modules/@mui/types": {
      "version": "7.2.15",
      "resolved": "https://registry.npmmirror.com/@mui/types/-/types-7.2.15.tgz",
      "integrity": "sha512-nbo7yPhtKJkdf9kcVOF8JZHPZTmqXjJ/tI0bdWgHg5tp9AnIN4Y7f7wm9T+0SyGYJk76+GYZ8Q5XaTYAsUHN0Q==",
    "node_modules/@mui/material/node_modules/react-is": {
      "version": "18.3.1",
      "resolved": "https://registry.npmmirror.com/react-is/-/react-is-18.3.1.tgz",
      "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="
    },
    "node_modules/@mui/private-theming": {
      "version": "6.4.6",
      "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-6.4.6.tgz",
      "integrity": "sha512-T5FxdPzCELuOrhpA2g4Pi6241HAxRwZudzAuL9vBvniuB5YU82HCmrARw32AuCiyTfWzbrYGGpZ4zyeqqp9RvQ==",
      "license": "MIT",
      "dependencies": {
        "@babel/runtime": "^7.26.0",
        "@mui/utils": "^6.4.6",
        "prop-types": "^15.8.1"
      },
      "engines": {
        "node": ">=14.0.0"
      },
      "funding": {
        "type": "opencollective",
        "url": "https://opencollective.com/mui-org"
      },
      "peerDependencies": {
        "@types/react": "^17.0.0 || ^18.0.0"
        "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
        "react": "^17.0.0 || ^18.0.0 || ^19.0.0"
      },
      "peerDependenciesMeta": {
        "@types/react": {
          "optional": true
        }
      }
    },
    "node_modules/@mui/private-theming/node_modules/@mui/utils": {
      "version": "6.4.6",
      "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-6.4.6.tgz",
      "integrity": "sha512-43nZeE1pJF2anGafNydUcYFPtHwAqiBiauRtaMvurdrZI3YrUjHkAu43RBsxef7OFtJMXGiHFvq43kb7lig0sA==",
      "license": "MIT",
      "dependencies": {
        "@babel/runtime": "^7.26.0",
        "@mui/types": "^7.2.21",
        "@types/prop-types": "^15.7.14",
        "clsx": "^2.1.1",
        "prop-types": "^15.8.1",
        "react-is": "^19.0.0"
      },
      "engines": {
        "node": ">=14.0.0"
      },
      "funding": {
        "type": "opencollective",
        "url": "https://opencollective.com/mui-org"
      },
      "peerDependencies": {
        "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
        "react": "^17.0.0 || ^18.0.0 || ^19.0.0"
      },
      "peerDependenciesMeta": {
        "@types/react": {
          "optional": true
        }
      }
    },
    "node_modules/@mui/private-theming/node_modules/react-is": {
      "version": "19.0.0",
      "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.0.0.tgz",
      "integrity": "sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==",
      "license": "MIT"
    },
    "node_modules/@mui/styled-engine": {
      "version": "6.4.6",
      "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-6.4.6.tgz",
      "integrity": "sha512-vSWYc9ZLX46be5gP+FCzWVn5rvDr4cXC5JBZwSIkYk9xbC7GeV+0kCvB8Q6XLFQJy+a62bbqtmdwS4Ghi9NBlQ==",
      "license": "MIT",
      "dependencies": {
        "@babel/runtime": "^7.26.0",
        "@emotion/cache": "^11.13.5",
        "@emotion/serialize": "^1.3.3",
        "@emotion/sheet": "^1.4.0",
        "csstype": "^3.1.3",
        "prop-types": "^15.8.1"
      },
      "engines": {
        "node": ">=14.0.0"
      },
      "funding": {
        "type": "opencollective",
        "url": "https://opencollective.com/mui-org"
      },
      "peerDependencies": {
        "@emotion/react": "^11.4.1",
        "@emotion/styled": "^11.3.0",
        "react": "^17.0.0 || ^18.0.0 || ^19.0.0"
      },
      "peerDependenciesMeta": {
        "@emotion/react": {
          "optional": true
        },
        "@emotion/styled": {
          "optional": true
        }
      }
    },
    "node_modules/@mui/system": {
      "version": "6.4.7",
      "resolved": "https://registry.npmjs.org/@mui/system/-/system-6.4.7.tgz",
      "integrity": "sha512-7wwc4++Ak6tGIooEVA9AY7FhH2p9fvBMORT4vNLMAysH3Yus/9B9RYMbrn3ANgsOyvT3Z7nE+SP8/+3FimQmcg==",
      "license": "MIT",
      "dependencies": {
        "@babel/runtime": "^7.26.0",
        "@mui/private-theming": "^6.4.6",
        "@mui/styled-engine": "^6.4.6",
        "@mui/types": "^7.2.21",
        "@mui/utils": "^6.4.6",
        "clsx": "^2.1.1",
        "csstype": "^3.1.3",
        "prop-types": "^15.8.1"
      },
      "engines": {
        "node": ">=14.0.0"
      },
      "funding": {
        "type": "opencollective",
        "url": "https://opencollective.com/mui-org"
      },
      "peerDependencies": {
        "@emotion/react": "^11.5.0",
        "@emotion/styled": "^11.3.0",
        "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
        "react": "^17.0.0 || ^18.0.0 || ^19.0.0"
      },
      "peerDependenciesMeta": {
        "@emotion/react": {
          "optional": true
        },
        "@emotion/styled": {
          "optional": true
        },
        "@types/react": {
          "optional": true
        }
      }
    },
    "node_modules/@mui/system/node_modules/@mui/utils": {
      "version": "6.4.6",
      "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-6.4.6.tgz",
      "integrity": "sha512-43nZeE1pJF2anGafNydUcYFPtHwAqiBiauRtaMvurdrZI3YrUjHkAu43RBsxef7OFtJMXGiHFvq43kb7lig0sA==",
      "license": "MIT",
      "dependencies": {
        "@babel/runtime": "^7.26.0",
        "@mui/types": "^7.2.21",
        "@types/prop-types": "^15.7.14",
        "clsx": "^2.1.1",
        "prop-types": "^15.8.1",
        "react-is": "^19.0.0"
      },
      "engines": {
        "node": ">=14.0.0"
      },
      "funding": {
        "type": "opencollective",
        "url": "https://opencollective.com/mui-org"
      },
      "peerDependencies": {
        "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
        "react": "^17.0.0 || ^18.0.0 || ^19.0.0"
      },
      "peerDependenciesMeta": {
        "@types/react": {
          "optional": true
        }
      }
    },
    "node_modules/@mui/system/node_modules/react-is": {
      "version": "19.0.0",
      "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.0.0.tgz",
      "integrity": "sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==",
      "license": "MIT"
    },
    "node_modules/@mui/types": {
      "version": "7.2.21",
      "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.21.tgz",
      "integrity": "sha512-6HstngiUxNqLU+/DPqlUJDIPbzUBxIVHb1MmXP0eTWDIROiCR2viugXpEif0PPe2mLqqakPzzRClWAnK+8UJww==",
      "license": "MIT",
      "peerDependencies": {
        "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0"
      },
      "peerDependenciesMeta": {
        "@types/react": {
@@ -1239,16 +1427,17 @@
      }
    },
    "node_modules/@mui/utils": {
      "version": "5.16.6",
      "resolved": "https://registry.npmmirror.com/@mui/utils/-/utils-5.16.6.tgz",
      "integrity": "sha512-tWiQqlhxAt3KENNiSRL+DIn9H5xNVK6Jjf70x3PnfQPz1MPBdh7yyIcAyVBT9xiw7hP3SomRhPR7hzBMBCjqEA==",
      "version": "5.16.14",
      "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.14.tgz",
      "integrity": "sha512-wn1QZkRzSmeXD1IguBVvJJHV3s6rxJrfb6YuC9Kk6Noh9f8Fb54nUs5JRkKm+BOerRhj5fLg05Dhx/H3Ofb8Mg==",
      "license": "MIT",
      "dependencies": {
        "@babel/runtime": "^7.23.9",
        "@mui/types": "^7.2.15",
        "@types/prop-types": "^15.7.12",
        "clsx": "^2.1.1",
        "prop-types": "^15.8.1",
        "react-is": "^18.3.1"
        "react-is": "^19.0.0"
      },
      "engines": {
        "node": ">=12.0.0"
@@ -1258,8 +1447,8 @@
        "url": "https://opencollective.com/mui-org"
      },
      "peerDependencies": {
        "@types/react": "^17.0.0 || ^18.0.0",
        "react": "^17.0.0 || ^18.0.0"
        "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
        "react": "^17.0.0 || ^18.0.0 || ^19.0.0"
      },
      "peerDependenciesMeta": {
        "@types/react": {
@@ -1268,9 +1457,68 @@
      }
    },
    "node_modules/@mui/utils/node_modules/react-is": {
      "version": "18.3.1",
      "resolved": "https://registry.npmmirror.com/react-is/-/react-is-18.3.1.tgz",
      "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="
      "version": "19.0.0",
      "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.0.0.tgz",
      "integrity": "sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==",
      "license": "MIT"
    },
    "node_modules/@mui/x-data-grid": {
      "version": "7.27.3",
      "resolved": "https://registry.npmjs.org/@mui/x-data-grid/-/x-data-grid-7.27.3.tgz",
      "integrity": "sha512-7zbDbFrhV6ODjyn3ImOZG34nbMbCvmHgqYTYP273TNAj8hMy4BiLyiKFFZTzVddIj3KQ6qLzBpByhqifGgEDOg==",
      "license": "MIT",
      "dependencies": {
        "@babel/runtime": "^7.25.7",
        "@mui/utils": "^5.16.6 || ^6.0.0",
        "@mui/x-internals": "7.26.0",
        "clsx": "^2.1.1",
        "prop-types": "^15.8.1",
        "reselect": "^5.1.1",
        "use-sync-external-store": "^1.0.0"
      },
      "engines": {
        "node": ">=14.0.0"
      },
      "funding": {
        "type": "opencollective",
        "url": "https://opencollective.com/mui-org"
      },
      "peerDependencies": {
        "@emotion/react": "^11.9.0",
        "@emotion/styled": "^11.8.1",
        "@mui/material": "^5.15.14 || ^6.0.0",
        "@mui/system": "^5.15.14 || ^6.0.0",
        "react": "^17.0.0 || ^18.0.0 || ^19.0.0",
        "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
      },
      "peerDependenciesMeta": {
        "@emotion/react": {
          "optional": true
        },
        "@emotion/styled": {
          "optional": true
        }
      }
    },
    "node_modules/@mui/x-data-grid/node_modules/@mui/x-internals": {
      "version": "7.26.0",
      "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-7.26.0.tgz",
      "integrity": "sha512-VxTCYQcZ02d3190pdvys2TDg9pgbvewAVakEopiOgReKAUhLdRlgGJHcOA/eAuGLyK1YIo26A6Ow6ZKlSRLwMg==",
      "license": "MIT",
      "dependencies": {
        "@babel/runtime": "^7.25.7",
        "@mui/utils": "^5.16.6 || ^6.0.0"
      },
      "engines": {
        "node": ">=14.0.0"
      },
      "funding": {
        "type": "opencollective",
        "url": "https://opencollective.com/mui-org"
      },
      "peerDependencies": {
        "react": "^17.0.0 || ^18.0.0 || ^19.0.0"
      }
    },
    "node_modules/@mui/x-internals": {
      "version": "7.16.0",
@@ -1721,9 +1969,10 @@
      }
    },
    "node_modules/@remix-run/router": {
      "version": "1.19.1",
      "resolved": "https://registry.npmmirror.com/@remix-run/router/-/router-1.19.1.tgz",
      "integrity": "sha512-S45oynt/WH19bHbIXjtli6QmwNYvaz+vtnubvNpNDvUOoA/OWh6j1OikIP3G+v5GHdxyC6EXoChG3HgYGEUfcg==",
      "version": "1.23.0",
      "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.0.tgz",
      "integrity": "sha512-O3rHJzAQKamUz1fvE0Qaw0xSFqsA/yafi2iqeE0pvdFtCO1viYx8QL6f3Ln/aCCTLxs68SLf0KPM9eSeM8yBnA==",
      "license": "MIT",
      "engines": {
        "node": ">=14.0.0"
      }
@@ -2060,9 +2309,10 @@
      "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw=="
    },
    "node_modules/@types/prop-types": {
      "version": "15.7.12",
      "resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.12.tgz",
      "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q=="
      "version": "15.7.14",
      "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz",
      "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==",
      "license": "MIT"
    },
    "node_modules/@types/react": {
      "version": "18.3.4",
@@ -3789,13 +4039,13 @@
      }
    },
    "node_modules/framer-motion": {
      "version": "12.4.1",
      "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.4.1.tgz",
      "integrity": "sha512-5Ijbea3topSZjadQ0hgc/TcWj2ldMZmNREM7RvAhvsThYOA1HHOA8TT1yKvMu1YXP3jWaFwoZ6Vo9Nw+DUZrzA==",
      "version": "12.5.0",
      "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.5.0.tgz",
      "integrity": "sha512-buPlioFbH9/W7rDzYh1C09AuZHAk2D1xTA1BlounJ2Rb9aRg84OXexP0GLd+R83v0khURdMX7b5MKnGTaSg5iA==",
      "license": "MIT",
      "dependencies": {
        "motion-dom": "^12.0.0",
        "motion-utils": "^12.0.0",
        "motion-dom": "^12.5.0",
        "motion-utils": "^12.5.0",
        "tslib": "^2.4.0"
      },
      "peerDependencies": {
@@ -4888,18 +5138,18 @@
      }
    },
    "node_modules/motion-dom": {
      "version": "12.0.0",
      "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.0.0.tgz",
      "integrity": "sha512-CvYd15OeIR6kHgMdonCc1ihsaUG4MYh/wrkz8gZ3hBX/uamyZCXN9S9qJoYF03GqfTt7thTV/dxnHYX4+55vDg==",
      "version": "12.5.0",
      "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.5.0.tgz",
      "integrity": "sha512-uH2PETDh7m+Hjd1UQQ56yHqwn83SAwNjimNPE/kC+Kds0t4Yh7+29rfo5wezVFpPOv57U4IuWved5d1x0kNhbQ==",
      "license": "MIT",
      "dependencies": {
        "motion-utils": "^12.0.0"
        "motion-utils": "^12.5.0"
      }
    },
    "node_modules/motion-utils": {
      "version": "12.0.0",
      "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.0.0.tgz",
      "integrity": "sha512-MNFiBKbbqnmvOjkPyOKgHUp3Q6oiokLkI1bEwm5QA28cxMZrv0CbbBGDNmhF6DIXsi1pCQBSs0dX8xjeER1tmA==",
      "version": "12.5.0",
      "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.5.0.tgz",
      "integrity": "sha512-+hFFzvimn0sBMP9iPxBa9OtRX35ZQ3py0UHnb8U29VD+d8lQ8zH3dTygJWqK7av2v6yhg7scj9iZuvTS0f4+SA==",
      "license": "MIT"
    },
    "node_modules/motion/node_modules/tslib": {
@@ -5416,28 +5666,28 @@
      ]
    },
    "node_modules/ra-core": {
      "version": "5.1.2",
      "resolved": "https://registry.npmmirror.com/ra-core/-/ra-core-5.1.2.tgz",
      "integrity": "sha512-WWv1wAsxTjUvC1Od+QA+CjlMI2qhhVAXrTmyrV/EgKvxY8uXIjjWVm0FEczNiiYXvFRGMTDPuqL1d6xKC/0OHA==",
      "version": "5.6.3",
      "resolved": "https://registry.npmjs.org/ra-core/-/ra-core-5.6.3.tgz",
      "integrity": "sha512-Z22rKk+CXnTFvCIeKzCf6ic9I48WQotx4EzX16PS47IgrD/Wq/PH+J8YLlTzakoGyEqyxnp+KI/SveLx0QBmww==",
      "license": "MIT",
      "dependencies": {
        "@tanstack/react-query": "^5.8.4",
        "@tanstack/react-query": "^5.21.7",
        "clsx": "^2.1.1",
        "date-fns": "^3.6.0",
        "eventemitter3": "^5.0.1",
        "hotscript": "^1.0.12",
        "inflection": "^3.0.0",
        "jsonexport": "^3.2.0",
        "lodash": "~4.17.5",
        "lodash": "^4.17.21",
        "query-string": "^7.1.3",
        "react-error-boundary": "^4.0.13",
        "react-is": "^18.2.0"
        "react-is": "^18.2.0 || ^19.0.0"
      },
      "peerDependencies": {
        "react": "^18.0.0 || ^19.0.0",
        "react-dom": "^18.0.0 || ^19.0.0",
        "react-hook-form": "^7.52.0",
        "react-router": "^6.22.0",
        "react-router-dom": "^6.22.0"
        "react-hook-form": "^7.53.0",
        "react-router": "^6.28.1 || ^7.1.1",
        "react-router-dom": "^6.28.1 || ^7.1.1"
      }
    },
    "node_modules/ra-core/node_modules/react-is": {
@@ -5446,20 +5696,22 @@
      "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="
    },
    "node_modules/ra-i18n-polyglot": {
      "version": "5.1.2",
      "resolved": "https://registry.npmmirror.com/ra-i18n-polyglot/-/ra-i18n-polyglot-5.1.2.tgz",
      "integrity": "sha512-47zgzyPgdlwimsFyqZJtglTZB1auVgOwuqbXd0OfruW+OUhSY4pLvk1rJNMUJrl3QjGbybb2DtjDbPFRO84u+Q==",
      "version": "5.6.3",
      "resolved": "https://registry.npmjs.org/ra-i18n-polyglot/-/ra-i18n-polyglot-5.6.3.tgz",
      "integrity": "sha512-tuzq//7wVA6+A1gsQB+WXhVCNS622YdkHDGNEFjp9sXezFhNdeak1zh7vWGuny6ssrbiWn2ItgjEGgw9dItYRQ==",
      "license": "MIT",
      "dependencies": {
        "node-polyglot": "^2.2.2",
        "ra-core": "^5.1.2"
        "ra-core": "^5.6.3"
      }
    },
    "node_modules/ra-language-english": {
      "version": "5.1.2",
      "resolved": "https://registry.npmmirror.com/ra-language-english/-/ra-language-english-5.1.2.tgz",
      "integrity": "sha512-d4+bvLDQxo4WVd9oYM4eg/xQwjWttwWT96uA6d6eO+w2ldtlL0dLMOFRz6Mv5v7b0/vlZFKFSNgchaT8L1anSw==",
      "version": "5.6.3",
      "resolved": "https://registry.npmjs.org/ra-language-english/-/ra-language-english-5.6.3.tgz",
      "integrity": "sha512-pmtcOP94QS61QuXVLF4uusBe08h47Td4rQbcEiJ7o/ZoUG/VHcY52nJBXheURFyKM7LXwV4mbIBeyoT58x7MdQ==",
      "license": "MIT",
      "dependencies": {
        "ra-core": "^5.1.2"
        "ra-core": "^5.6.3"
      }
    },
    "node_modules/raf-schd": {
@@ -5649,11 +5901,12 @@
      }
    },
    "node_modules/react-router": {
      "version": "6.26.1",
      "resolved": "https://registry.npmmirror.com/react-router/-/react-router-6.26.1.tgz",
      "integrity": "sha512-kIwJveZNwp7teQRI5QmwWo39A5bXRyqpH0COKKmPnyD2vBvDwgFXSqDUYtt1h+FEyfnE8eXr7oe0MxRzVwCcvQ==",
      "version": "6.30.0",
      "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.0.tgz",
      "integrity": "sha512-D3X8FyH9nBcTSHGdEKurK7r8OYE1kKFn3d/CF+CoxbSHkxU7o37+Uh7eAHRXr6k2tSExXYO++07PeXJtA/dEhQ==",
      "license": "MIT",
      "dependencies": {
        "@remix-run/router": "1.19.1"
        "@remix-run/router": "1.23.0"
      },
      "engines": {
        "node": ">=14.0.0"
@@ -5663,12 +5916,13 @@
      }
    },
    "node_modules/react-router-dom": {
      "version": "6.26.1",
      "resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.26.1.tgz",
      "integrity": "sha512-veut7m41S1fLql4pLhxeSW3jlqs+4MtjRLj0xvuCEXsxusJCbs6I8yn9BxzzDX2XDgafrccY6hwjmd/bL54tFw==",
      "version": "6.30.0",
      "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.0.tgz",
      "integrity": "sha512-x30B78HV5tFk8ex0ITwzC9TTZMua4jGyA9IUlH1JLQYQTFyxr/ZxwOJq7evg1JX1qGVUcvhsmQSKdPncQrjTgA==",
      "license": "MIT",
      "dependencies": {
        "@remix-run/router": "1.19.1",
        "react-router": "6.26.1"
        "@remix-run/router": "1.23.0",
        "react-router": "6.30.0"
      },
      "engines": {
        "node": ">=14.0.0"
@@ -5787,6 +6041,12 @@
      "resolved": "https://registry.npmmirror.com/remove-accents/-/remove-accents-0.4.4.tgz",
      "integrity": "sha512-EpFcOa/ISetVHEXqu+VwI96KZBmq+a8LJnGkaeFw45epGlxIZz5dhEEnNZMsQXgORu3qaMoLX4qJCzOik6ytAg=="
    },
    "node_modules/reselect": {
      "version": "5.1.1",
      "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz",
      "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==",
      "license": "MIT"
    },
    "node_modules/resolve": {
      "version": "2.0.0-next.5",
      "resolved": "https://registry.npmmirror.com/resolve/-/resolve-2.0.0-next.5.tgz",
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
@@ -156,6 +156,7 @@
            throw new CoolException("库区标识不能为空!!");
        }
        WarehouseAreas areasItem = warehouseAreasService.getOne(new LambdaQueryWrapper<WarehouseAreas>().eq(WarehouseAreas::getId, params.getWhAreaId()));
        if (Objects.isNull(areasItem)) {
            throw new CoolException("数据错误:当前库区不存在!!");
@@ -164,12 +165,43 @@
        List<Fields> fields = fieldsMapper.selectList(new LambdaQueryWrapper<Fields>().eq(Fields::getFlagEnable, 1).eq(Fields::getStatus, 1));
        List<ReceiptDetlsDto> receipts = params.getReceipts();
        List<WarehouseAreasItem> allOrders =   new ArrayList<>();
        List<WarehouseAreasItem> allOrders = new ArrayList<>();
        double receiptQty = receipts.stream().mapToDouble(ReceiptDetlsDto::getReceiptQty).sum();
        String asnCode = receipts.stream().findFirst().get().getAsnCode();
        AsnOrder asnOrder = asnOrderMapper.selectOne(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getCode, asnCode));
        asnOrder.setQty(receiptQty);
        if (asnOrderMapper.updateById(asnOrder) < 1) {
            throw new CoolException("已收货数量修改失败!!");
        }
        receipts.forEach(dto -> {
            Matnr matnr = matnrMapper.selectById(dto.getMatnrId());
            if (Objects.isNull(matnr)) {
                throw new CoolException("数据错误:当前物料不存在!!");
            }
            if (Objects.isNull(dto.getReceiptQty())) {
                throw new CoolException("收货数据不能为空!!");
            }
            if (dto.getReceiptQty() < dto.getPurQty()) {
                throw new CoolException("收货数量不能大于采购数量!!");
            }
            AsnOrderItem orderItem = asnOrderItemMapper.selectOne(new LambdaQueryWrapper<AsnOrderItem>()
                    .eq(AsnOrderItem::getAsnCode, asnCode)
                    .eq(AsnOrderItem::getMatnrId, dto.getMatnrId()));
            if (Objects.isNull(orderItem)) {
                throw new CoolException("通知单明细不存在!!");
            }
            orderItem.setQty(dto.getReceiptQty());
            if (asnOrderItemMapper.updateById(orderItem) < 1) {
                throw new CoolException("通知单明细数量修改失败!!");
            }
            WarehouseAreasItem item = new WarehouseAreasItem();
            item.setBarcode(dto.getBarcode())
                    .setAreaName(areasItem.getName())
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/QlyInspectController.java
@@ -4,15 +4,18 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.vincent.rsf.framework.common.Cools;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.common.utils.ExcelUtil;
import com.vincent.rsf.server.common.annotation.OperationLog;
import com.vincent.rsf.server.common.domain.BaseParam;
import com.vincent.rsf.server.common.domain.KeyValVo;
import com.vincent.rsf.server.common.domain.PageParam;
import com.vincent.rsf.server.manager.controller.params.QlyInspectAndItem;
import com.vincent.rsf.server.manager.entity.QlyInspect;
import com.vincent.rsf.server.manager.service.QlyInspectService;
import com.vincent.rsf.server.system.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
@@ -20,7 +23,7 @@
import javax.servlet.http.HttpServletResponse;
import java.util.*;
@Api(tags = "质检")
@Api(tags = "质检信息")
@RestController
public class QlyInspectController extends BaseController {
@@ -35,6 +38,26 @@
        return R.ok().add(qlyInspectService.page(pageParam, pageParam.buildWrapper(true)));
    }
    @PostMapping("/qlyInspect/all/save")
    @PreAuthorize("'manager:qlyInspect:save'")
    @ApiOperation("单据及明细保存")
    public R allSvae(@RequestBody QlyInspectAndItem params) {
        if (Objects.isNull(params)) {
            return R.error("参数不能为空!!");
        }
        return R.ok(qlyInspectService.allSave(params));
    }
    @PostMapping("/qlyInspect/reports")
    @ApiOperation("获取已上报单据明细")
    @PreAuthorize("hasAuthority('manager:qlyInspect:list')")
    public R listByAsnCode(@RequestBody Map<String, Object> map) {
        if (Objects.isNull(map)) {
            throw new CoolException("参数不能为空!!");
        }
        return R.ok(qlyInspectService.listByAsn(map));
    }
    @PreAuthorize("hasAuthority('manager:qlyInspect:list')")
    @PostMapping("/qlyInspect/list")
    public R list(@RequestBody Map<String, Object> map) {
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/QlyInspectAndItem.java
New file
@@ -0,0 +1,23 @@
package com.vincent.rsf.server.manager.controller.params;
import com.vincent.rsf.server.manager.entity.QlyInspect;
import com.vincent.rsf.server.manager.entity.QlyIsptItem;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
@Data
@Accessors(chain = true)
@ApiModel(value = "QlyInspectAndItem", description = "质检单及明细")
public class QlyInspectAndItem {
    @ApiModelProperty("主单数据")
    private QlyInspect qlyInspect;
    @ApiModelProperty("明细数据")
    private List<QlyIsptItem> qlyIsptItems;
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItem.java
@@ -164,6 +164,9 @@
    @ApiModelProperty(value= "包装名称")
    private String packName;
    @ApiModelProperty("上报状态 0: 未上报, 1: 已上报")
    private Integer ntyStatus;
    /**
     * 状态 1: 正常  0: 冻结  
     */
@@ -217,7 +220,7 @@
    public AsnOrderItem() {}
    public AsnOrderItem(Long asnId,String asnCode,Long poDetlId, String matnrCode, String poCode,String matnrId,String matnk,Double anfme,String stockUnit,Double purQty,String purUnit,Double qty,String splrCode,String splrName,String qrcode,String barcode,String packName,Integer status,Integer deleted,Integer tenantId,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
    public AsnOrderItem(Long asnId,String asnCode,Long poDetlId, String matnrCode, String poCode,String matnrId,String matnk,Double anfme,String stockUnit,Double purQty,String purUnit,Double qty,String splrCode,String splrName,String qrcode,String barcode,String packName,Integer status, Integer ntyStatus,Integer deleted,Integer tenantId,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
        this.asnId = asnId;
        this.asnCode = asnCode;
        this.poDetlId = poDetlId;
@@ -230,6 +233,7 @@
        this.purQty = purQty;
        this.purUnit = purUnit;
        this.qty = qty;
        this.ntyStatus = ntyStatus;
        this.splrCode = splrCode;
        this.splrName = splrName;
        this.qrcode = qrcode;
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/QlyInspectService.java
@@ -1,8 +1,17 @@
package com.vincent.rsf.server.manager.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.server.manager.controller.params.QlyInspectAndItem;
import com.vincent.rsf.server.manager.entity.AsnOrderItem;
import com.vincent.rsf.server.manager.entity.QlyInspect;
import java.util.List;
import java.util.Map;
public interface QlyInspectService extends IService<QlyInspect> {
    List<AsnOrderItem> listByAsn(Map<String, Object> map);
    R allSave(QlyInspectAndItem params);
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyInspectServiceImpl.java
@@ -1,12 +1,90 @@
package com.vincent.rsf.server.manager.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.manager.controller.params.QlyInspectAndItem;
import com.vincent.rsf.server.manager.entity.AsnOrder;
import com.vincent.rsf.server.manager.entity.AsnOrderItem;
import com.vincent.rsf.server.manager.entity.QlyIsptItem;
import com.vincent.rsf.server.manager.mapper.QlyInspectMapper;
import com.vincent.rsf.server.manager.entity.QlyInspect;
import com.vincent.rsf.server.manager.service.AsnOrderItemService;
import com.vincent.rsf.server.manager.service.AsnOrderService;
import com.vincent.rsf.server.manager.service.QlyInspectService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.vincent.rsf.server.manager.service.QlyIsptItemService;
import com.vincent.rsf.server.system.constant.SerialRuleCode;
import com.vincent.rsf.server.system.utils.SerialRuleUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@Service("qlyInspectService")
public class QlyInspectServiceImpl extends ServiceImpl<QlyInspectMapper, QlyInspect> implements QlyInspectService {
    @Autowired
    private AsnOrderItemService asnOrderItemService;
    @Autowired
    private AsnOrderService asnOrderService;
    @Autowired
    private QlyIsptItemService qlyIsptItemService;
    @Override
    public List<AsnOrderItem> listByAsn(Map<String, Object> map) {
        if (Objects.isNull(map.get("asnCode"))) {
            throw new CoolException("收货单据明细编码不能为空!!");
        }
        AsnOrder asnOrder = asnOrderService.getOne(new LambdaQueryWrapper<AsnOrder>()
                .eq(AsnOrder::getCode, map.get("asnCode"))
                .ne(AsnOrder::getNtyStatus, 0));
        if (Objects.isNull(asnOrder)) {
            throw new CoolException("单据不存在!!");
        }
        List<AsnOrderItem> asnOrderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>()
                .eq(AsnOrderItem::getAsnCode, map.get("asnCode"))
                .eq(AsnOrderItem::getNtyStatus, 1));
        if (asnOrderItems.isEmpty()) {
            return new ArrayList<>();
        }
        return asnOrderItems;
    }
    @Override
    public R allSave(QlyInspectAndItem params) {
        if (Objects.isNull(params.getQlyInspect())) {
            throw new CoolException("质检单据不能为空!!");
        }
        QlyInspect inspect = params.getQlyInspect();
        if (Objects.isNull(inspect.getWkType())) {
            throw new CoolException("业务类型不能为空!!");
        }
        String code = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_INSPECT_WK_TYPE, inspect);
        inspect.setCode(code);
        if (!this.saveOrUpdate(inspect)) {
            throw new CoolException("质检单保存失败!!");
        }
        List<QlyIsptItem> isptItems = params.getQlyIsptItems();
        if (isptItems.isEmpty()) {
            return R.ok("保存成功!!");
        }
        List<QlyIsptItem> items = new ArrayList<>();
        for (QlyIsptItem isptItem : isptItems) {
            if (Objects.isNull(isptItem.getMatnrCode())) {
                continue;
            }
            isptItem.setIspectId(inspect.getId());
            items.add(isptItem);
        }
        if (!qlyIsptItemService.saveOrUpdateBatch(items)) {
            throw new CoolException("质检明细保存失败!!");
        }
        return R.ok("保存成功!!");
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java
@@ -28,4 +28,9 @@
     * ASN标签生成规则
     */
    public final static String SYS_LABEL_CODE = "sys_label_code";
    /**
     * 质检单业务类型
     */
    public final static String SYS_INSPECT_WK_TYPE = "sys_inspect_wk_type";
}
rsf-server/src/main/resources/application.yml
@@ -26,7 +26,6 @@
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    map-underscore-to-camel-case: true
    cache-enabled: true
#    object-wrapper-factory: com.baomidou.mybatisplus.extension.MybatisMapWrapperFactory
  global-config:
    :banner: false
    db-config: