feat: 完成好水川 MOM 需求1/2/4/5/8(装箱、BOM成本、销售合同、劳动合同、留样)
| | |
| | | { |
| | | "flows": [ |
| | | {"id": "sales", "name": "é宿µç¨", "mermaid": "mermaid/02-sales-flow.mmd", "color": "#4f9cff", |
| | | "summary": "线索转åå®¢æ· â åæºæ¨è¿ â æ¥ä»·(å¯AIè¯å«) â åå BPM å®¡æ¹ â çæ ERP éå®è®¢åå¹¶å®¡æ¹ â éç产è¡èªå¨å»º MPS â åè´§éç¥ â éå®åºåº(OQC)åå â å¼ç¥¨(BPM) â 忬¾(å
å¼ç¥¨æ ¡éª)ã", |
| | | "summary": "线索转åå®¢æ· â åæºæ¨è¿ â æ¥ä»·(å¯AIè¯å«) â åå BPM å®¡æ¹ â çæ ERP éå®è®¢å并审æ¹ï¼æ å
³èååæ¶èªå¨ååçæè稿ååï¼ â éç产è¡èªå¨å»º MPS â åè´§éç¥ â éå®åºåº(OQC)åå â å¼ç¥¨(BPM) â 忬¾(å
å¼ç¥¨æ ¡éª)ã", |
| | | "steps": [ |
| | | {"stage": "è·å®¢", "action": "线索转å客æ·ã建è系人ãç«é¡¹åæº", "roles": ["éå®å
å¤"]}, |
| | | {"stage": "æ¥ä»·", "action": "åæºèµ¢åå建æ¥ä»·å(AI OCR é¢å¡«)ï¼è½¬åå", "roles": ["éå®å
å¤"]}, |
| | | {"stage": "ç¾çº¦", "action": "å忥æºï¼æå·¥æ°å»º / æ¥ä»·å转å
¥ / Excel 导å
¥(ä¸ååå¤äº§åæç»è¡)ï¼æäº¤ BPM 审æ¹(å¯éæµç¨å®ä¹)ï¼éè¿=20", "roles": ["éå®", "审æ¹äºº"]}, |
| | | {"stage": "æ¥å", "action": "ååä¸é®çæéå®è®¢å(XSDD)ï¼éå®è®¢ååèµ° BPMï¼å®¡æ¹éè¿èªå¨ä¸º needProduction æç»å建 MPS", "roles": ["éå®", "计åå"]}, |
| | | {"stage": "æ¥å", "action": "ååä¸é®çæéå®è®¢å(XSDD)ï¼éå®è®¢ååèµ° BPMï¼å®¡æ¹éè¿èªå¨ä¸º needProduction æç»å建 MPSï¼è®¢åæ å
³èååæ¶æå®¢æ·åç§°-éå®åå-订åå·èªå¨çæ CRM è稿åå(è稿ä¸å起审æ¹ï¼è´è´£äººåéå®åï¼åååªçæä¸ä»½ï¼çæå¤±è´¥ä¸é»å¡è®¢å审æ¹)", "roles": ["éå®", "计åå"]}, |
| | | {"stage": "交ä»", "action": "åè´§éç¥å®¡æ ¸(å ç¨)â éå®åºåº OQC â åè¿ â åºåºååé¨å/å
¨é¨åºåº", "roles": ["ä»ç®¡", "è´¨æ£"]}, |
| | | {"stage": "忬¾", "action": "å¼ç¥¨ BPM(累计â¤ååé¢) â 忬¾å¼ºå¶å
å¼ç¥¨(累计â¤ååå©ä½ä¸å¼ç¥¨å©ä½)", "roles": ["è´¢å¡", "éå®"]}]}, |
| | | {"id": "purchase", "name": "éè´æµç¨", "mermaid": "mermaid/03-purchase-flow.mmd", "color": "#5fc79e", |
| | |
| | | {"stage": "éè´§", "action": "IQC ä¸åæ ¼éè´§âä¾åºåéè´§åºåº(éæéå®å°è®¢åè¡)ï¼æ¥åºèµ° NCR", "roles": ["ä»ç®¡"]}, |
| | | {"stage": "仿¬¾", "action": "éè´æ¥ç¥¨(FPD, AI OCR, â¤è®¢åæ»ä»·) â 仿¬¾å(FKD å
³èæ¥ç¥¨+éä»¶, â¤æ¥ç¥¨éé¢) BPM 审æ¹", "roles": ["è´¢å¡", "审æ¹äºº"]}]}, |
| | | {"id": "production", "name": "ç产æµç¨", "mermaid": "mermaid/04-production-flow.mmd", "color": "#e0b34f", |
| | | "summary": "éå®è®¢åé©±å¨ MPS â ä¸åå·¥å â æå·¥èºè·¯çº¿æå·¥åºä»»å¡ â 颿/çº¿è¾¹å¤æ â æ¥å·¥(å·¥åºé¡ºåºç¡¬æ ¡éª+BPM) â å岿¶è/产åºå
¥åº/IPQC â æ«éå·¥åºååè¿åº¦ â èªå¨å®å·¥ â ProductionFinishedEvent ååéå®è®¢åã", |
| | | "summary": "éå®è®¢åé©±å¨ MPS â ä¸åå·¥å â æå·¥èºè·¯çº¿æå·¥åºä»»å¡ â ç®æ(产åBOMÃ工忰é·带åä»·/éé¢) â 颿/çº¿è¾¹å¤æ â æ¥å·¥(å·¥åºé¡ºåºç¡¬æ ¡éª+BPM) â å岿¶è/产åºå
¥åº/IPQC â 审æ¹åèªå¨éç®å·¥åç©æææ¬å¹¶å¯¹è¶
èç©æç«å
ä¿¡æ¥è¦ â æ«éå·¥åºååè¿åº¦ â èªå¨å®å·¥ â ProductionFinishedEvent ååéå®è®¢åï¼MPS ææ¬æè®¡åæ°éå 工忰éåæã", |
| | | "steps": [ |
| | | {"stage": "计å", "action": "MPS å建(æå·¥æéå®è®¢åèªå¨)âä¸åæåå¹¶ä¸å为工å", "roles": ["计åå"]}, |
| | | {"stage": "派工", "action": "å·¥å确认æå·¥èºè·¯çº¿éå·¥åºçæä»»å¡ï¼å¯ææ´¾/æå/åæ¶", "roles": ["车é´ä¸»ä»»"]}, |
| | | {"stage": "夿", "action": "çäº§é¢æååºåºæçº¿è¾¹èæåºå¤æ", "roles": ["ä»ç®¡"]}, |
| | | {"stage": "æ¥å·¥", "action": "æäº¤æ¥å·¥ï¼ä¸ä¸éå·¥åºæªæ¥æ»¡ç´æ¥æ¦æªï¼å¯ç¨ BPM 走审æ¹", "roles": ["æä½å·¥"]}, |
| | | {"stage": "èå¨", "action": "审æ¹éè¿æå·¥åºæ è®°: åå²âèªå¨ç©ææ¶èæ£çº¿è¾¹åº(å
许è´åºå)ï¼è´¨æ£â产åºå¾
æ£è¡ç IPQCï¼å
³é®éæ£âç´æ¥äº§åºå
¥åº", "roles": ["ç³»ç»èªå¨"]}, |
| | | {"stage": "å®å·¥", "action": "ä»
æ«éå·¥åºååå·¥åå·²ç产æ°éï¼è¾¾æ èªå¨å®æï¼MPS ç´¯è®¡å¤æå®æå¹¶åäºä»¶ç»éå®è®¢å", "roles": ["ç³»ç»èªå¨"]}]}, |
| | | {"stage": "æ ¸ç®", "action": "ç®æï¼äº§å BOM åä½ç¨éÃ工忰éå±å¼åææï¼æ 产åBOMåé路线产åºé¾/å·¥åBOMï¼ï¼å¸¦éæ±æ°é/å·²æ¶è/åä»·/éæ±éé¢ï¼ä»·æ ¼åç©æéè´ä»·å¦ååå·²å®¡æ ¸éè´è®¢åå æåä»·ï¼åæ åéé¢ä¸º0å¹¶æ è®°ç¼ºä»·ï¼ææ¬ï¼æ¥å·¥å®¡æ¹åèªå¨éç®å·¥åæ å/å®é
/è¶
èç©æææ¬ä¸å®é
å使æ¬ï¼å®é
æ¶èåå岿¶èè®°å½ï¼å·²æ¥å·¥æ°éåå·¥å产éä¸åå·¥åºå®¡æ¹æ¥å·¥ç´¯è®¡çæå¤§å¼ï¼ï¼è¶
èé弿 å·¥åâ产åâå
¨å±åæ°(é»è®¤5%) åå¼ï¼åæå®é
æ¶è>æ åç¨éÃ(1+éå¼%)å³çææ¥è¦è®°å½å¹¶æåæ°é
ç½®çæ¥æ¶äººåç«å
ä¿¡ï¼åå·¥ååç©æä»
æ¥ä¸æ¬¡ï¼MPS ææ¬æ MPSè®¡åæ°éÃ·å·¥åæ°é åæ", "roles": ["ç³»ç»èªå¨", "计åå"]}, |
| | | {"stage": "å®å·¥", "action": "ä»
æ«éå·¥åºååå·¥åå·²ç产æ°éï¼è¾¾æ èªå¨å®æï¼äººå·¥å®æè¦æ±å·²ç产æ°é>0ï¼ä¸º 0 æ¦æªï¼ï¼å®å·¥åå¿
须已ç»è®°çæ ·è®°å½ï¼æå·¥å®æä¸èªå¨å®å·¥ä¸è´ï¼æªç»è®°æ¦æªï¼ï¼å®å·¥æ¶åæ¥å
³è MPS ä¸ºå·²å®æå¹¶åå产éä¸å®ææ¥æï¼MPS ç´¯è®¡å¤æå®æå¹¶åäºä»¶ç»éå®è®¢å", "roles": ["ç³»ç»èªå¨"]}]}, |
| | | {"id": "quality", "name": "è´¨éæµç¨", "mermaid": "mermaid/05-quality-flow.mmd", "color": "#e06c6c", |
| | | "summary": "å鿣éªé¸å£(IQC/IPQC/OQC/RQCï¼äºæ 0â4) + å¤å®åæ(åæ ¼/ç¹é/éè´§/æ¥åº) + NCR è¯å®¡å¤ç½®å
³éï¼AI æä¾å¤å®å»ºè®®ï¼NCR å½åä»
å°è´¦ä¸è§¦åè¿å·¥åï¼æ£éªåå¯ç±æºè½è´¨æ£æ¥åå¹³å°ä¸é®åºä»¶ï¼generate-from-qcï¼æ°æ®ä» MES åï¼äºéæ ¡éªå渲æè½åºï¼ã", |
| | | "summary": "å鿣éªé¸å£(IQC/IPQC/OQC/RQCï¼äºæ 0â4) + å¤å®åæ(åæ ¼/ç¹é/éè´§/æ¥åº) + NCR è¯å®¡å¤ç½®å
³é + å®å·¥çæ ·ç»è®°ï¼AI æä¾å¤å®å»ºè®®ï¼NCR å½åä»
å°è´¦ä¸è§¦åè¿å·¥åï¼æ£éªåå¯ç±æºè½è´¨æ£æ¥åå¹³å°ä¸é®åºä»¶ï¼generate-from-qcï¼æ°æ®ä» MES åï¼äºéæ ¡éªå渲æè½åºï¼ã", |
| | | "steps": [ |
| | | {"stage": "æ¥æ", "action": "å°è´§éç¥/å¤åå
¥åºâIQCï¼ç»è®ºå忍è¿å¾
å
¥åºæè§¦åéè´§", "roles": ["IQC è´¨æ£å"]}, |
| | | {"stage": "è¿ç¨", "action": "æ¥å·¥è´¨æ£å·¥åºäº§åºè¡âIPQCï¼åæ ¼æè¡å
¥åºãä¸åæ ¼çæ NCR", "roles": ["IPQC è´¨æ£å"]}, |
| | |
| | | {"stage": "éè´§", "action": "éæ/éå®éè´§/å®åéè´§âRQCï¼ç»è®ºåè°åæ®ä¸å®å", "roles": ["RQC è´¨æ£å"]}, |
| | | {"stage": "导å
¥", "action": "IQC/IPQC/OQC ä¸åè¡¨åæ¯æ Excel æ¹é导å
¥(æé®å¨ãæ°å¢ãä¸ã导åºãä¹é´ï¼çº¯æ°å¢ä¸åæ´æ°è¦ç)ï¼ä¸è¡ä¸å¼ åï¼ç¼å·ç空èªå¨çæï¼è´¨æ£æ¹æ¡ç空æç©æ+æ£éªç±»åèªå¨å¹é
ï¼æ£æµäººåç空åå½åç»å½ç¨æ·ï¼ç©æ/ä¾åºå/客æ·/å·¥å/工使ç¼ç æå称精确å¹é
(IPQC ç©æç±å·¥åæ¨å¯¼ï¼æ¨¡æ¿ä¸å¡«)ï¼åæ ¼+ä¸åæ ¼=æ£æµ/æ¥æ¶æ°éãIPQC å·¥åº+æåº+å
¶ä»åºåâ¤ä¸åæ ¼ãOQC 客æ·é¡»å¨æ¬äººæ°æ®æéå
ï¼éè¡å¯¼å
¥é¨åæåï¼å¤±è´¥è¡è¿ failureList 带è¡å·ä¸å¯æ§è¡å¨ä½ï¼æååä¸å¾å¾
æ£éª0ï¼å䏿¹æ°æ®ä¸å¯éå¤å¯¼å
¥ï¼æä»¶å
éå¤è¡ä¸åºå
å·²åå¨åä¸å¡é®åæ®ï¼IQC ç©æ+ä¾åºå+ä¾åºåæ¹æ¬¡+æ¥ææ¥æãIPQC ç产工å+æ£éªç±»å+å·¥ä½+æ£æµæ¥æãOQC ç©æ+客æ·+æ¹æ¬¡å·+åºè´§æ¥æï¼åæè¯¥è¡ï¼æç¤ºå«ç»´åº¦ãåæ¹å®é
å¼ä¸ãå
å é¤è¯¥åæ®åéè¯ãå¨ä½", "roles": ["è´¨æ£å", "IQC è´¨æ£å", "IPQC è´¨æ£å", "OQC è´¨æ£å"]}, |
| | | {"stage": "ä¸åæ ¼", "action": "NCR: å¾
è¯å®¡âè¯å®¡âå¤ç½®(éè´§/æ¥åº/è¿å·¥/è®©æ¥æ¥æ¶/é级)âå
³é", "roles": ["è´¨éå·¥ç¨å¸"]}, |
| | | {"stage": "çæ ·", "action": "ç产工åå®å·¥åå¿
é¡»ç»è®°çæ ·è®°å½ï¼ä¸å¼ å·¥å䏿¡ï¼ç¼å· LY+æ¥æ+4使µæ°´ï¼çæ ·æ°éé»è®¤ 2 ä»¶ï¼å°æ=çæ ·æ¥æ+6个æï¼ï¼éå®è®¢åæ MPS èªå¨ç»å®ãåå¹¶ä¸åå¤åéæå®ã客æ·è®¢åæ¥æºææ¥æºåå·æ ¡éªãåºåå¤è´§å¯ä¸ç»å®ï¼MPS è®°å½çéå®è®¢åå¨ç³»ç»ä¸ä¸å卿¶æç¤ºå¹¶é»æä¿åï¼æå·¥å®æä¸æ¥å·¥è¾¾æ èªå¨å®å·¥åæ ¡éªï¼æªç»è®°æ¦æªï¼å·¥å已宿ä¸å
许å é¤çæ ·", "roles": ["è´¨æ£å", "çæ ·ç®¡çå"]}, |
| | | {"stage": "åºä»¶", "action": "两æ¡åºä»¶å
¥å£ï¼â éç¨ generate/preview(è°ç¨æ¹èªå¸¦ä¸ä¸æ) 渲æ HTML å¹¶å»ç»æ°æ®å¿«ç
§ï¼ç¼å· QR+æ¥æ+4使µæ°´æå¤©ç¬ç«ï¼preview åªæ¸²æä¸è½åºä¸æ¶èç¼å·ï¼regenerate ç¨å»ç»å¿«ç
§éæ¸²ä¸æ°æ®ä¸ç¼å·ä¸åå¹¶ä½åºå·²å½æ¡£ PDFï¼å¯¼åº PDF ç±åç«¯è° Chromium æå°å®ä¾å·²åç HTML å彿¡£éä»¶ä¸å¿ï¼â¡generate-from-qc ç±è´¨æ£åç´æ¥åºä»¶(æ°æ®ç» MesQcReportApi ä» MES åï¼åç«¯ä¸æ¼ä¸ä¸æ)ï¼åºä»¶åäºéæ ¡éªæä¸å¡ä¼å
çº§åªæ¥ç¬¬ä¸å¤ï¼ç±»åéæ³/åæ®ä¸åå¨/æªå®ææ£éª/æªå¡«å¤å®/模æ¿ç±»åä¸ç¬¦/æ å¯ç¨æ£éªé¡¹ï¼æ¥å头å¦å¸¦åæ®åå¤å® qcResult+qcResultText ä¸å¼æå¤å®å¹¶åï¼ååºå undecidableCount å¾
å¤å®é¡¹æ°ä¸ warnings(åç»æ é¢è·³è¿/ææ å·²å /æªå½å®æµå¼/æ ·åè¶
3)ï¼åä¸å¼ åæ®å¯åå¤åºå¤ä»½", "roles": ["è´¨æ£å"]}, |
| | | {"stage": "建模æ¿", "action": "AI 导å
¥ï¼ä¸ä¼ æ¢ææ£éªæ¥åæä»¶(æ«æä»¶/ç
§çãçµåç PDFãWord/Excel) â è¯å«ææ¨¡æ¿è稿(ä¸è½åº) â 人工å¨è®¾è®¡å¨ç¡®è®¤è°æ´åä¿åä¸ºçæ¬ï¼.doc/.xls æ§æ ¼å¼ä¸æ¯æ", "roles": ["è´¨æ£å", "è´¨éå·¥ç¨å¸"]}]}, |
| | | {"id": "warehouse", "name": "ä»å¨æµç¨", "mermaid": "mermaid/06-warehouse-flow.mmd", "color": "#7e6bd6", |
| | |
| | | {"key": "pro", "name": "ç产管ç", "color": "#e0b34f", "tag": "MES-PRO", "flow": "production", |
| | | "positioning": "ç产æ§è¡æ ¸å¿ï¼è®¡å-å·¥å-ä»»å¡-æ¥å·¥", |
| | | "problem": "订åå°è½¦é´æ§è¡çéå±æè§£ä¸è¿ç¨å¯æ§", |
| | | "features": ["MPS主ç产计å(å¯ç±éå®è®¢åèªå¨å建·åå¹¶ä¸å)", "å·¥å(æå·¥èºè·¯çº¿èªå¨çæå·¥åºä»»å¡)", "æ¥å·¥(æå·¥åºé¡ºåºæ§å¶Â·BPM审æ¹)", "å岿£çº¿è¾¹åº/产åºå
¥åº", "å®ç¯", "å·¥èºè·¯çº¿Â·å·¥åºÂ·å·¥åBOM", "ç å设计项ç®(PD·审æ¹å½æ¡£)", "AI åç±»é¢æµ"], |
| | | "objects": ["MPS", "ç产工å", "ç产任å¡", "æ¥å·¥å", "å·¥èºè·¯çº¿", "å·¥åBOM", "设计项ç®"], |
| | | "features": ["MPS主ç产计å(å¯ç±éå®è®¢åèªå¨å建·åå¹¶ä¸å)", "å·¥å(æå·¥èºè·¯çº¿èªå¨çæå·¥åºä»»å¡)", "æ¥å·¥(æå·¥åºé¡ºåºæ§å¶Â·BPM审æ¹)", "å岿£çº¿è¾¹åº/产åºå
¥åº", "å®ç¯", "å·¥èºè·¯çº¿Â·å·¥åºÂ·å·¥åBOM", "å·¥åç®æ(产åBOMÃæ°é·åä»·åéè´ä»·/å·²å®¡æ ¸éè´å æå价·缺价æ è®°)", "å·¥åç©æææ¬(æ å/å®é
/è¶
è/å®é
å使æ¬Â·æ¥å·¥å®¡æ¹åèªå¨éç®)", "è¶
èæ¥è¦(å·¥åâ产åâå
¨å±éå¼Â·ç«å
ä¿¡æå®æ¥æ¶äººÂ·åå·¥ååç©æä¸æ¬¡)", "MPSææ¬æè®¡åæ°éå 工忰éåæ", "ç å设计项ç®(PD·审æ¹å½æ¡£)", "AI åç±»é¢æµ"], |
| | | "objects": ["MPS", "ç产工å", "ç产任å¡", "æ¥å·¥å", "å·¥èºè·¯çº¿", "å·¥åBOM", "è¶
èæ¥è¦", "设计项ç®"], |
| | | "roles": ["计åå", "车é´ä¸»ä»»", "æä½å·¥", "å·¥èºå"], |
| | | "upstream": ["è¿éå(éå®è®¢å)"], "downstream": ["ä»å¨(颿/å
¥åº)", "è´¨é(IPQC)"], |
| | | "coreTables": ["mes_pro_mps", "mes_pro_work_order", "mes_pro_task", "mes_pro_feedback", "mes_pro_route", "mes_pro_process", "mes_pro_work_order_bom", "mes_pd_project"]}, |
| | |
| | | {"key": "qc", "name": "è´¨é管ç", "color": "#e06c6c", "tag": "MES-QC", "flow": "quality", |
| | | "positioning": "å鿣éªé¸å£ + ä¸åæ ¼åéç¯å¤ç½®", |
| | | "problem": "æ¥æ/è¿ç¨/åºè´§/éè´§æ£éªæ ååï¼ä¸åæ ¼å¯è¿½æº¯å¤ç½®", |
| | | "features": ["IQC æ¥æ(å°è´§/å¤å)", "IPQC è¿ç¨(è卿¥å·¥)", "OQC åºè´§(èå¨éå®åºåº)", "RQC éè´§(èå¨éæ/å®å)", "è´¨æ£æ¹æ¡Â·ææ ·缺é·åº", "æ£æµç»æ:åæ ¼/ç¹é/éè´§/æ¥åº", "NCR:è¯å®¡âå¤ç½®(éè´§/æ¥åº/è¿å·¥/让æ¥/é级)âå
³é", "AI å¤å®å»ºè®®"], |
| | | "objects": ["IQC", "IPQC", "OQC", "RQC", "è´¨æ£æ¹æ¡", "NCR", "缺é·è®°å½"], |
| | | "features": ["IQC æ¥æ(å°è´§/å¤å)", "IPQC è¿ç¨(è卿¥å·¥)", "OQC åºè´§(èå¨éå®åºåº)", "RQC éè´§(èå¨éæ/å®å)", "è´¨æ£æ¹æ¡Â·ææ ·缺é·åº", "æ£æµç»æ:åæ ¼/ç¹é/éè´§/æ¥åº", "NCR:è¯å®¡âå¤ç½®(éè´§/æ¥åº/è¿å·¥/让æ¥/é级)âå
³é", "çæ ·ç®¡ç(å·¥åå®å·¥åå¿
ç»Â·ä¸å·¥å䏿¡Â·ç»å®éå®è®¢åÂ·å°æ=çæ ·æ¥æ+6个æ)", "AI å¤å®å»ºè®®"], |
| | | "objects": ["IQC", "IPQC", "OQC", "RQC", "è´¨æ£æ¹æ¡", "NCR", "缺é·è®°å½", "çæ ·è®°å½"], |
| | | "roles": ["è´¨æ£å(IQC/IPQC/OQC)", "è´¨éå·¥ç¨å¸"], |
| | | "upstream": ["ä»å¨(å°è´§)", "ç产(æ¥å·¥)", "éå®(åºåº)", "å®å(éè´§)"], "downstream": ["ä»å¨(åæ ¼å
¥åº/æ¥åºåºåº)", "ç产(NCRè¿å·¥)"], |
| | | "coreTables": ["mes_qc_iqc", "mes_qc_ipqc", "mes_qc_oqc", "mes_qc_rqc", "mes_qc_template", "mes_qc_indicator", "mes_qc_defect", "mes_qc_ncr"]}, |
| | | "coreTables": ["mes_qc_iqc", "mes_qc_ipqc", "mes_qc_oqc", "mes_qc_rqc", "mes_qc_template", "mes_qc_indicator", "mes_qc_defect", "mes_qc_ncr", "mes_qc_retention_sample"]}, |
| | | {"key": "qcreport", "name": "æºè½è´¨æ£æ¥å", "color": "#b06ce0", "tag": "QC-REPORT", "flow": "quality", |
| | | "positioning": "å¯è§å设计æ¥åæ¨¡æ¿ â ä¸é®åºä»¶å¹¶å»ç»å岿¥å", |
| | | "problem": "åè¡ä¸è´¨æ£æ¥åæ ¼å¼åå¼ï¼æç硬ç¼ç æ¹ä¸æ¬¡å䏿¬¡çï¼ä¸å岿¥åå¿
é¡»å¯å¤ç°ãä¸éä¸å¡æ°æ®åå", |
| | |
| | | {"key": "hrm", "name": "人åèµæº", "color": "#9db85a", "tag": "HRM", "flow": null, |
| | | "positioning": "åå·¥å
¥è½¬è°ç¦»ä¸èå¤èªé
¬", |
| | | "problem": "äººäºæµç¨å®¡æ¹åãç¦»èæ°æ®ä¸ä¸¢(交æ¥)ãç®èªèªå¨å", |
| | | "features": ["å工档æ¡(å
¥èèªå¨å»ºç³»ç»è´¦å·)", "请å/å ç/è°å²/离è BPM 审æ¹", "离èäº¤æ¥æ å° expandUserIds", "èå¤(ç§»å¨ç«¯æçèå¤ç¶æÂ·æå¡Â·è§å·æç·补å¡å®¡æ¹Â·æåº¦æ±æ»)", "èªé
¬(åºå-社ä¿å
¬ç§¯é-个ç¨-è¯·åæ£æ¬¾Â·1.5/2/3åå çè´¹Â·åæ¾å°è´¦)", "å¹è®è¯ä¹¦(SQLå
è¡å¾
å®ç°)"], |
| | | "objects": ["åå·¥", "请åå", "离èç³è¯·", "äº¤æ¥æ å°", "èå¤è®°å½", "èªé
¬æ ¸ç®"], |
| | | "features": ["å工档æ¡(å
¥èèªå¨å»ºç³»ç»è´¦å·)", "请å/å ç/è°å²/离è BPM 审æ¹", "离èäº¤æ¥æ å° expandUserIds", "åå·¥ååå°è´¦(ç»ç¾é¾Â·å°ææé·Excel导å
¥Â·å°æç¶æå¨æè®¡ç®)", "ååææ¡£çæ(Word模æ¿å ä½ç¬¦å¡«å
âç³»ç»æä»¶åºâååé件彿¡£)", "èå¤(ç§»å¨ç«¯æçèå¤ç¶æÂ·æå¡Â·è§å·æç·补å¡å®¡æ¹Â·æåº¦æ±æ»)", "èªé
¬(åºå-社ä¿å
¬ç§¯é-个ç¨-è¯·åæ£æ¬¾Â·1.5/2/3åå çè´¹Â·åæ¾å°è´¦)", "å¹è®è¯ä¹¦(SQLå
è¡å¾
å®ç°)"], |
| | | "objects": ["åå·¥", "åå·¥åå", "请åå", "离èç³è¯·", "äº¤æ¥æ å°", "èå¤è®°å½", "èªé
¬æ ¸ç®"], |
| | | "roles": ["HR", "é¨é¨ä¸»ç®¡", "åå·¥æ¬äºº"], |
| | | "upstream": [], "downstream": ["忍¡å(æ°æ®å¯è§æ§æ©å±)", "system(è´¦å·)"], |
| | | "coreTables": ["hrm_employee", "hrm_leave_application", "hrm_resignation_application", "hrm_user_handover", "hrm_attendance_record", "hrm_salary_calculation", "hrm_salary_payment"]}, |
| | | "coreTables": ["hrm_employee", "hrm_employee_contract", "hrm_leave_application", "hrm_resignation_application", "hrm_user_handover", "hrm_attendance_record", "hrm_salary_calculation", "hrm_salary_payment"]}, |
| | | {"key": "bpm", "name": "åå审æ¹", "color": "#e6a23c", "tag": "BPM", "flow": null, |
| | | "positioning": "å
¨ç³»ç»åæ®å®¡æ¹ä¸æ¢ï¼Flowableï¼", |
| | | "problem": "夿¨¡ååæ®éè¦çµæ´»å¯é
çå¤çº§å®¡æ¹", |
| | |
| | | {"name": "è系人", "module": "éå®ç®¡ç", "table": "crm_contact", "doc": "客æ·ä¸è系人ï¼ä¸åæºå¤å¯¹å¤", "upstream": ["客æ·"], "downstream": ["åæº"], "keywords": "è系人 contact"}, |
| | | {"name": "åæº", "module": "éå®ç®¡ç", "table": "crm_business", "doc": "é宿ºä¼ï¼DB é
ç½®å¼é¶æ®µæ¨è¿ï¼ç»ææ: èµ¢/è¾/æ æ", "upstream": ["客æ·"], "downstream": ["æ¥ä»·å", "åå"], "keywords": "åæº business èµ¢å è¾å é¶æ®µ"}, |
| | | {"name": "æ¥ä»·å", "module": "éå®ç®¡ç", "table": "crm_sale_quotation", "doc": "QTç¼å·ï¼é MDM ç©ææ¥ä»·ï¼AI OCR å½å
¥ï¼è稿â已转åå", "upstream": ["åæº"], "downstream": ["åå"], "keywords": "æ¥ä»· quotation QT"}, |
| | | {"name": "åå", "module": "éå®ç®¡ç", "table": "crm_contract", "doc": "HTç¼å·ï¼BPM 审æ¹(0è稿/10审æ¹ä¸/20éè¿/30驳å/40åæ¶/50ä½åº)ï¼éè¿åå¯çæéå®è®¢åï¼æ¯æ Excel 导å
¥ï¼ä¸ååå¤äº§åæç»è¡ãåå¹¶åå
æ ¼èªå¨æå¹³ï¼å®¢æ·ä¸ç©ææåç§°/ç¼ç æ ¡éªï¼ï¼äº§åæç»å¸¦åºç©æåç§°/ç¼ç /æ¡ç /è§æ ¼åå·/计éåä½ï¼å é¤ååæ¶è¿å¸¦å é¤äº§åæç»ï¼ä¸çå¤å¿æ°æ®", "upstream": ["æ¥ä»·å"], "downstream": ["éå®è®¢å", "忬¾è®¡å", "å¼ç¥¨"], "keywords": "åå contract å®¡æ¹ å¯¼å
¥"}, |
| | | {"name": "åå", "module": "éå®ç®¡ç", "table": "crm_contract", "doc": "HTç¼å·ï¼BPM 审æ¹(0è稿/10审æ¹ä¸/20éè¿/30驳å/40åæ¶/50ä½åº)ï¼éè¿åå¯çæéå®è®¢åï¼æ¯æ Excel 导å
¥ï¼ä¸ååå¤äº§åæç»è¡ãåå¹¶åå
æ ¼èªå¨æå¹³ï¼å®¢æ·ä¸ç©ææåç§°/ç¼ç æ ¡éªï¼ï¼äº§åæç»å¸¦åºç©æåç§°/ç¼ç /æ¡ç /è§æ ¼åå·/计éåä½ï¼å é¤ååæ¶è¿å¸¦å é¤äº§åæç»ï¼ä¸çå¤å¿æ°æ®ï¼éå®è®¢å审æ¹éè¿ä¸è®¢åæ å
³èååæ¶ï¼ç³»ç»æã客æ·åç§°-éå®åå-订åå·ãèªå¨ååçæè稿ååï¼ä¸èªå¨æäº¤å®¡æ¹ï¼åä¸è®¢åä»
ä¸ä»½ï¼å¤±è´¥ä¸å½±å订å审æ¹ï¼", "upstream": ["æ¥ä»·å", "éå®è®¢å(èªå¨çæ)"], "downstream": ["éå®è®¢å", "忬¾è®¡å", "å¼ç¥¨"], "keywords": "åå contract å®¡æ¹ å¯¼å
¥ èªå¨çæ"}, |
| | | {"name": "å票", "module": "éå®ç®¡ç", "table": "crm_invoice", "doc": "KPç¼å·ï¼å¯ç空èªå¨çæãç³»ç»å
å¯ä¸ï¼ï¼BPM 审æ¹ï¼ç´¯è®¡å¼ç¥¨â¤ååé¢ï¼éä»¶å¿
ä¼ ï¼æ¯æ Excel 导å
¥ï¼ä»
æ°å¢ä¸æ´æ°ï¼ååé¡»å®¡æ ¸éè¿ä¸æ¬æ¬¡éé¢â¤ååå©ä½å¯å¼ç¥¨é¢ï¼å䏿¹æ°æ®ä¸å¯éå¤å¯¼å
¥ââåååä¸å票å·ç ç¸åãæå票å·ç ç空æ¶å¼ç¥¨éé¢+å票æ¬å¤´+å¼ç¥¨æ¥æç¸åå³å¤éå¤ï¼æä»¶å
éå¤è¡ä¸åºå
å·²æåé½æè¯¥è¡å¹¶åæ¾ç»´åº¦ä¸å®é
å¼ï¼", "upstream": ["åå"], "downstream": ["忬¾"], "keywords": "å¼ç¥¨ å票 invoice 导å
¥ å»é"}, |
| | | {"name": "忬¾", "module": "éå®ç®¡ç", "table": "crm_receivable", "doc": "HKç¼å·ï¼å建å³å®¡æ¹ä¸(æå¨å®¡æ ¸)ï¼å¼ºå¶å
å¼ç¥¨ï¼éé¢åæ ¡éª", "upstream": ["åå", "å票"], "downstream": ["æ¶æ¬¾å(å
³è)"], "keywords": "忬¾ æ¶æ¬¾è®¡å receivable"}, |
| | | {"name": "éå®ç®æ ", "module": "éå®ç®¡ç", "table": "crm_sales_target", "doc": "å¹´/å£/æÃ个人/é¨é¨/产å维度çåå忬¾çç®æ ", "upstream": [], "downstream": ["ä¸ç»©ç»è®¡"], "keywords": "ç®æ target ä¸ç»©"}, |
| | |
| | | {"name": "éè´æ¥ç¥¨", "module": "è¿éå", "table": "erp_purchase_invoice", "doc": "FPDç¼å·ï¼AI OCR é¢å¡«ï¼ç´¯è®¡â¤è®¢åæ»ä»·ï¼ä»æ¬¾åçåç½®", "upstream": ["éè´è®¢å"], "downstream": ["仿¬¾å"], "keywords": "æ¥ç¥¨ å票 éè´å票"}, |
| | | {"name": "仿¬¾å", "module": "è´¢å¡", "table": "erp_finance_payment", "doc": "FKDç¼å·ï¼å¿
é¡»å
³èæ¥ç¥¨+éä»¶ï¼ç´¯è®¡â¤æ¥ç¥¨éé¢ï¼BPM 审æ¹", "upstream": ["éè´æ¥ç¥¨"], "downstream": ["ç»ç®è´¦æ·"], "keywords": "仿¬¾ åºä» payment"}, |
| | | {"name": "æ¶æ¬¾å", "module": "è´¢å¡", "table": "erp_finance_receipt", "doc": "SKDç¼å·ï¼å
³è CRM å®¢æ·æ ¡éªï¼æ BPM(æå¨å®¡æ ¸)", "upstream": ["éå®(å¼±å
³è)"], "downstream": ["ç»ç®è´¦æ·"], "keywords": "æ¶æ¬¾ åºæ¶ receipt"}, |
| | | {"name": "éå®è®¢å", "module": "è¿éå", "table": "erp_sale_order", "doc": "XSDDç¼å·ï¼BPM 审æ¹ï¼éç产è¡èªå¨å»º MPSï¼åºåºç¶æ:æª0å·²é¢ç1é¨å2å
¨é¨3ï¼çäº§å®æäºä»¶åå", "upstream": ["åå"], "downstream": ["MPS", "åè´§éç¥", "éå®åºåº", "å®åå·¥å"], "keywords": "éå®è®¢å sale"}, |
| | | {"name": "主ç产计å", "module": "ç产", "table": "mes_pro_mps", "doc": "MPS计åï¼è稿0âå·²ä¸å1â宿2/åæ¶3ï¼å¯åå¹¶ä¸å", "upstream": ["éå®è®¢å"], "downstream": ["ç产工å"], "keywords": "MPS 主计å ç产计å"}, |
| | | {"name": "ç产工å", "module": "ç产", "table": "mes_pro_work_order", "doc": "è稿0â已确认1â宿2/åæ¶3ï¼ç¡®è®¤æ¶æå·¥èºè·¯çº¿çæä»»å¡ï¼æåä¸éå·¥åºæ¥å·¥ååå·²ç产æ°é", "upstream": ["MPS"], "downstream": ["ç产任å¡", "颿", "å®å·¥å
¥åº"], "keywords": "å·¥å ç产工å work order"}, |
| | | {"name": "éå®è®¢å", "module": "è¿éå", "table": "erp_sale_order", "doc": "XSDDç¼å·ï¼BPM 审æ¹ï¼éç产è¡èªå¨å»º MPSï¼å®¡æ¹éè¿ä¸è®¢åæ å
³èååæ¶èªå¨çæ CRM è稿ååå¹¶åå contractId/contractNoï¼è®¢åæ¥èªååæ¶è·³è¿ï¼ï¼ååçæå¤±è´¥ä¸é»å¡å®¡æ¹ï¼åºåºç¶æ:æª0å·²é¢ç1é¨å2å
¨é¨3ï¼çäº§å®æäºä»¶åå", "upstream": ["åå", "æå·¥æ°å»º"], "downstream": ["MPS", "åå(èªå¨çæ)", "åè´§éç¥", "éå®åºåº", "å®åå·¥å"], "keywords": "éå®è®¢å sale èªå¨åå"}, |
| | | {"name": "主ç产计å", "module": "ç产", "table": "mes_pro_mps", "doc": "MPS计åï¼è稿0âå·²ä¸å1â宿2/åæ¶3ï¼å¯åå¹¶ä¸åï¼å
³èå·¥å宿æ¶èªå¨ååå®æç¶æã产éä¸å®ææ¥æ", "upstream": ["éå®è®¢å"], "downstream": ["ç产工å"], "keywords": "MPS 主计å ç产计å"}, |
| | | {"name": "ç产工å", "module": "ç产", "table": "mes_pro_work_order", "doc": "è稿0â已确认1â宿2/åæ¶3ï¼ç¡®è®¤æ¶æå·¥èºè·¯çº¿çæä»»å¡ï¼æåä¸éå·¥åºæ¥å·¥ååå·²ç产æ°éï¼äººå·¥å®æè¦æ±å·²ç产æ°é>0ï¼å®å·¥æ¶åæ¥å
³è MPS 已宿ï¼è®°å½è¶
èæ¥è¦æ¯ä¾(å·¥åè¦ç)䏿 å/å®é
/è¶
èç©æææ¬ãç©æå使æ¬ãææ¬æ´æ°æ¶é´ï¼æ¥å·¥å®¡æ¹åèªå¨éç®", "upstream": ["MPS"], "downstream": ["ç产任å¡", "颿", "å®å·¥å
¥åº", "è¶
èæ¥è¦"], "keywords": "å·¥å ç产工å work order ææ¬ ç®æ"}, |
| | | {"name": "ç产任å¡", "module": "ç产", "table": "mes_pro_task", "doc": "å·¥åºç²åº¦ï¼é¢å¤0âç产ä¸1âé¨å2â宿4ï¼å¯æå9åæ¶5", "upstream": ["ç产工å"], "downstream": ["æ¥å·¥"], "keywords": "ä»»å¡ task å·¥åº"}, |
| | | {"name": "æ¥å·¥å", "module": "ç产", "table": "mes_pro_feedback", "doc": "è稿0â审æ¹ä¸2âå¾
æ£3/宿4ï¼æå·¥åºé¡ºåºæ ¡éª(ä¸éå·¥åºæ¥æ»¡æå¯æ¥)ï¼èå¨å岿¶è/产åºå
¥åº/IPQC", "upstream": ["ç产任å¡"], "downstream": ["产å产åº", "ç©ææ¶è", "IPQC"], "keywords": "æ¥å·¥ feedback"}, |
| | | {"name": "æ¥å·¥å", "module": "ç产", "table": "mes_pro_feedback", "doc": "è稿0â审æ¹ä¸2âå¾
æ£3/宿4ï¼æå·¥åºé¡ºåºæ ¡éª(ä¸éå·¥åºæ¥æ»¡æå¯æ¥)ï¼èå¨å岿¶è/产åºå
¥åº/IPQCï¼å®¡æ¹éè¿å触åå·¥åç©æææ¬éç®ä¸è¶
èæ¥è¦æ£æ¥", "upstream": ["ç产任å¡"], "downstream": ["产å产åº", "ç©ææ¶è", "IPQC", "工忿¬", "è¶
èæ¥è¦"], "keywords": "æ¥å·¥ feedback"}, |
| | | {"name": "è¶
èæ¥è¦", "module": "ç产", "table": "mes_pro_over_consume_alert", "doc": "æ¥å·¥å®¡æ¹åæ å·¥åâ产åâå
¨å±åæ° éå¼å¤å®ï¼å®é
æ¶è>æ åç¨éÃ(1+éå¼%)æ¶çæï¼è®°å½æ å/å®é
/è¶
èæ°éãè¶
èæ¯ä¾ãåä»·ä¸è¶
èéé¢ï¼åä¸å·¥ååç©æä»
䏿¡ï¼åéç«å
ä¿¡ç»åæ°æå®ç¨æ·ï¼ç¶æ SENT/FAILED", "upstream": ["æ¥å·¥å", "ç©ææ¶è"], "downstream": ["ç«å
ä¿¡"], "keywords": "è¶
è æ¥è¦ ææ¬ over consume alert"}, |
| | | {"name": "å·¥èºè·¯çº¿", "module": "ç产", "table": "mes_pro_route", "doc": "å·¥åºé¡ºåº+è´¨æ£/å
³é®/å岿 è®°ï¼é©±å¨å·¥åä»»å¡ä¸æ¥å·¥è§å", "upstream": [], "downstream": ["ç产工å"], "keywords": "å·¥èº è·¯çº¿ route å·¥åº"}, |
| | | {"name": "å°è´§éç¥å", "module": "ä»å¨", "table": "mes_wm_arrival_notice", "doc": "éè´è®¢å确认æ¶è´§çæï¼è稿0âå¾
è´¨æ£2âå¾
å
¥åº3â宿4", "upstream": ["éè´è®¢å"], "downstream": ["IQC", "éè´å
¥åº"], "keywords": "å°è´§ æ¶è´§ arrival"}, |
| | | {"name": "éè´å
¥åºå", "module": "ä»å¨", "table": "mes_wm_item_receipt", "doc": "è稿0âå¾
䏿¶2âå¾
æ§è¡3â宿4ï¼å®æååºå+å¹¶åå ERP inCount/inStatus", "upstream": ["å°è´§éç¥"], "downstream": ["åºåå°è´¦", "éè´è®¢å(åå)"], "keywords": "éè´å
¥åº æ¶è´§å
¥åº receipt"}, |
| | |
| | | {"name": "OQCåºè´§æ£éª", "module": "è´¨é", "table": "mes_qc_oqc", "doc": "éå®åºåºæäº¤è§¦åï¼å®ææ¨è¿åºåºåå¾
æ£è´§ï¼è¡æä½ãåºæ¥åãä»
å¨å·²å®ææ¶å¯è§ï¼æ¯æ Excel æ¹é导å
¥ï¼å®¢æ·é¡»å¨å½åç»å½ç¨æ·çå®¢æ·æ°æ®æéèå´å
ï¼ï¼å䏿¹æ°æ®ä¸å¯éå¤å¯¼å
¥ï¼ç©æ+客æ·+æ¹æ¬¡å·+åºè´§æ¥æï¼æä»¶å
éå¤è¡ä¸åºå
å·²æåé½æè¯¥è¡ï¼", "upstream": ["éå®åºåºå", "Excel æ¹é导å
¥"], "downstream": ["éå®åºåºå(æ¨è¿)", "æ¥åå®ä¾(åºæ¥å)"], "keywords": "OQC åºè´§æ£éª åºåæ£éª åºæ¥å æ¹é导å
¥ 导å
¥æ¨¡æ¿"}, |
| | | {"name": "RQCéè´§æ£éª", "module": "è´¨é", "table": "mes_qc_rqc", "doc": "ç产éæ/éå®éè´§/å®åé货触åï¼ç»è®ºåè°å®åï¼è¡æä½ãåºæ¥åãä»
å¨å·²å®ææ¶å¯è§ãæªè¾å·²ç»ä¸ä¸ºãéè´§æ£éªãï¼åèåç¶é¡¹ä¸ mes_qc_type åå
¸åãéææ£éªãï¼ä¸å端æä¸¾/表注é/èåæéå项ä¸ä¸è´ï¼RQC ä¸è
é½è¦çï¼æ
åãéè´§æ£éªãï¼", "upstream": ["éæ", "éè´§"], "downstream": ["éè´§å
¥åº", "å®ååè°", "æ¥åå®ä¾(åºæ¥å)"], "keywords": "RQC éè´§æ£éª éææ£éª åºæ¥å"}, |
| | | {"name": "NCRä¸åæ ¼å", "module": "è´¨é", "table": "mes_qc_ncr", "doc": "å¾
è¯å®¡0âå·²è¯å®¡6âå·²å¤ç½®7âå·²å
³é8ï¼å¤ç½®:éè´§/æ¥åº/è¿å·¥/è®©æ¥æ¥æ¶/é级", "upstream": ["IQC/IPQC/OQC/RQC"], "downstream": ["éè´§/æ¥åº/è¿å·¥(å°è´¦)"], "keywords": "NCR ä¸åæ ¼ å¤ç½® ç¹é æ¥åº"}, |
| | | {"name": "çæ ·è®°å½", "module": "è´¨é", "table": "mes_qc_retention_sample", "doc": "ç产工åå®å·¥åå¿
é¡»ç»è®°ï¼ä¸å¼ å·¥ååªè½ä¸æ¡ï¼work_order_id å¯ä¸ï¼ï¼ç¼å· LY+yyyyMMdd+4使µæ°´æå¤©çæï¼çæ ·æ°éé»è®¤ 2 ä»¶ï¼å°ææ¥æé»è®¤çæ ·æ¥æ+6个æï¼éå®è®¢åæ MPS ä¸åè®°å½èªå¨ç»å®ï¼åå¹¶ä¸åå¤å¼ è®¢åæ¶éæå®æ¬æ¬¡çæ ·å¯¹åºè®¢åï¼å®¢æ·è®¢åæ¥æºå·¥åææ¥æºåå·æ ¡éªï¼åºåå¤è´§å·¥åå¯ä¸ç»å®ï¼MPS è®°å½çéå®è®¢åå¨ç³»ç»ä¸ä¸å卿¶æç¤ºå¹¶é»æä¿åï¼æå·¥å®æä¸æ¥å·¥è¾¾æ èªå¨å®å·¥åæ ¡éªçæ ·ï¼æªç»è®°æ¦æªï¼å·¥å已宿ä¸å
许å é¤çæ ·", "upstream": ["ç产工å", "MPS(éå®è®¢å)"], "downstream": ["å·¥åå®ææ ¡éª", "éå®è®¢å(追溯)"], "keywords": "çæ · çæ ·è®°å½ retention sample å®å·¥çæ · éå®è®¢åç»å®"}, |
| | | {"name": "设å¤", "module": "设å¤", "table": "mes_dv_machinery", "doc": "å°è´¦ç¶æ:åæº/ç产ä¸/ä¿å
»ä¸ï¼ç¹æ£Â·ä¿å
»Â·ç»´ä¿®å·¥åï¼AI é£é©é¢æµæ¶è´¹å
¶æ°æ®", "upstream": [], "downstream": ["ç¹æ£", "ç»´ä¿®", "ç产é£é©é¢æµ"], "keywords": "è®¾å¤ ç¹æ£ ä¿å
» ç»´ä¿® machinery"}, |
| | | {"name": "å®åå·¥å", "module": "å®å", "table": "after_sale_ticket", "doc": "è稿0âå¤çä¸10âå¾
å
¥åº30âå¾
鿬¾40âå®ç»50âå
³é60/åæ¶99ï¼å¤å®:ä¸è¬/ç»´ä¿®/éè´§", "upstream": ["客æ·åé¦(人工å½å
¥)"], "downstream": ["维修记å½", "éè´§ç³è¯·"], "keywords": "å®å å·¥å ticket ç»´ä¿®"}, |
| | | {"name": "éè´§ç³è¯·", "module": "å®å", "table": "after_sale_return", "doc": "è稿0âå·²å®¡æ ¸20(èªå¨å»ºMESéè´§å)â已质æ£40âå·²å
¥åº50â已鿬¾60âå
³é70ï¼ç±»å:鿬¾éè´§/æ¢è´§/ä»
鿬¾", "upstream": ["å®åå·¥å"], "downstream": ["éå®éè´§å", "鿬¾"], "keywords": "å®åéè´§ return"}, |
| | | {"name": "åå·¥", "module": "人å", "table": "hrm_employee", "doc": "å¨è1/è¯ç¨2/离è3ï¼å
¥èèªå¨å»ºç³»ç»è´¦å·", "upstream": [], "downstream": ["äº¤æ¥æ å°", "èå¤", "èªé
¬"], "keywords": "åå·¥ å
¥è employee"}, |
| | | {"name": "åå·¥", "module": "人å", "table": "hrm_employee", "doc": "å¨è1/è¯ç¨2/离è3ï¼å
¥èèªå¨å»ºç³»ç»è´¦å·", "upstream": [], "downstream": ["äº¤æ¥æ å°", "åå·¥åå", "èå¤", "èªé
¬"], "keywords": "åå·¥ å
¥è employee"}, |
| | | {"name": "åå·¥åå", "module": "人å", "table": "hrm_employee_contract", "doc": "ä¸ä¸ªåå·¥å¤ä»½åå(ç»ç¾é¾ parentIdãå½ååå isCurrent)ï¼ååç±»å/æéç±»åèµ°åå
¸ï¼åºå®æéå¿
é¡»å¡«ç»ææ¥æãååå·¥æ¶é´ä¸å¾éå ï¼æ¯ææ¨¡æ¿å¯¼å
¥ï¼å¯æååè®°å½èªå¨çæ Word å³å¨åå(å ä½ç¬¦å¡«å
åå·¥/é¨é¨/å²ä½/ååä¿¡æ¯)å¹¶åç³»ç»æä»¶åºç»å®ä¸ºååéä»¶ï¼æ¯æ¬¡çæä¿çåå²çæ¬ï¼è§£é¤/ç»æ¢éå¡«æ¥æä¸åå ", "upstream": ["åå·¥"], "downstream": ["ååææ¡£éä»¶", "å°ææé"], "keywords": "åå·¥åå å³å¨åå ååææ¡£ çæåå éä»¶ contract"}, |
| | | {"name": "离è交æ¥", "module": "人å", "table": "hrm_user_handover", "doc": "fromâto æ å°ï¼å·²å®æ20 å expandUserIds æ©å±äº¤æ¥äººå¯è§æ°æ®ï¼å½ååä¸å¡æ¨¡åå°æªå®é
æ¥å
¥è°ç¨ï¼", "upstream": ["离èç³è¯·"], "downstream": ["忍¡åæçæ°æ®æ¥è¯¢"], "keywords": "äº¤æ¥ ç¦»è handover expandUserIds"}, |
| | | {"name": "æç计å", "module": "设å¤", "table": "mes_cal_plan", "doc": "çç»Ãçæ¬¡Ãæ¥ææçï¼ä¾ç产ä¸èå¤å¼ç¨", "upstream": [], "downstream": ["ç产任å¡", "èå¤"], "keywords": "æç çç» çæ¬¡ æ¥å"}, |
| | | {"name": "æ¥å模æ¿", "module": "è´¨æ£æ¥å", "table": "qc_report_template", "doc": "æºè½è´¨æ£æ¥å模æ¿ï¼å¯ç¨0/åç¨1ï¼ç»å¸å
容åå¨ qc_report_template_versionï¼è稿0/å·²åå¸1/å·²åç¨2ï¼å·²åå¸ä¸å¯è¦çï¼ï¼currentVersion æåå½åå·²åå¸çæ¬ï¼æºæä»¶ç» AI 导å
¥è¯å«æè稿åç±äººå·¥ç¡®è®¤ææä¸ºçæ¬ï¼å䏿¨¡æ¿éå¤å¯¼å
¥æãæ¿æ¢ãå¤çââå
å æ§éä»¶ï¼è¿å¸¦ blob è¡ä¸ç£çæä»¶ï¼åç»æ°çï¼ä¸çå¤å¿æä»¶ï¼å 餿¨¡æ¿ä¼è¿å¸¦æ¸
éä»¶", "upstream": ["人工设计(GrapesJS 设计å¨)", "AI 导å
¥è稿(qc-report/ai-import/draft)"], "downstream": ["模æ¿çæ¬", "æ¥åå®ä¾"], "keywords": "æ¥åæ¨¡æ¿ è´¨æ£æ¥å template è®¾è®¡å¨ çæ¬ AI导å
¥ è¯å« è稿 æºæä»¶æ¿æ¢"}, |
| | |
| | | {"key": "pro", "name": "ç产管ç", "color": "#e0b34f", "tag": "MES-PRO", "flow": "production", |
| | | "positioning": "ç产æ§è¡æ ¸å¿ï¼è®¡å-å·¥å-ä»»å¡-æ¥å·¥", |
| | | "problem": "订åå°è½¦é´æ§è¡çéå±æè§£ä¸è¿ç¨å¯æ§", |
| | | "features": ["MPS主ç产计å(å¯ç±éå®è®¢åèªå¨å建·åå¹¶ä¸å)", "å·¥å(æå·¥èºè·¯çº¿èªå¨çæå·¥åºä»»å¡)", "æ¥å·¥(æå·¥åºé¡ºåºæ§å¶Â·BPM审æ¹)", "å岿£çº¿è¾¹åº/产åºå
¥åº", "å®ç¯", "å·¥èºè·¯çº¿Â·å·¥åºÂ·å·¥åBOM", "ç å设计项ç®(PD·审æ¹å½æ¡£)", "AI åç±»é¢æµ"], |
| | | "objects": ["MPS", "ç产工å", "ç产任å¡", "æ¥å·¥å", "å·¥èºè·¯çº¿", "å·¥åBOM", "设计项ç®"], |
| | | "features": ["MPS主ç产计å(å¯ç±éå®è®¢åèªå¨å建·åå¹¶ä¸å)", "å·¥å(æå·¥èºè·¯çº¿èªå¨çæå·¥åºä»»å¡)", "æ¥å·¥(æå·¥åºé¡ºåºæ§å¶Â·BPM审æ¹)", "å岿£çº¿è¾¹åº/产åºå
¥åº", "å®ç¯", "å·¥èºè·¯çº¿Â·å·¥åºÂ·å·¥åBOM", "å·¥åç®æ(产åBOMÃæ°é·åä»·åéè´ä»·/å·²å®¡æ ¸éè´å æå价·缺价æ è®°)", "å·¥åç©æææ¬(æ å/å®é
/è¶
è/å®é
å使æ¬Â·æ¥å·¥å®¡æ¹åèªå¨éç®)", "è¶
èæ¥è¦(å·¥åâ产åâå
¨å±éå¼Â·ç«å
ä¿¡æå®æ¥æ¶äººÂ·åå·¥ååç©æä¸æ¬¡)", "MPSææ¬æè®¡åæ°éå 工忰éåæ", "ç å设计项ç®(PD·审æ¹å½æ¡£)", "AI åç±»é¢æµ"], |
| | | "objects": ["MPS", "ç产工å", "ç产任å¡", "æ¥å·¥å", "å·¥èºè·¯çº¿", "å·¥åBOM", "è¶
èæ¥è¦", "设计项ç®"], |
| | | "roles": ["计åå", "车é´ä¸»ä»»", "æä½å·¥", "å·¥èºå"], |
| | | "upstream": ["è¿éå(éå®è®¢å)"], "downstream": ["ä»å¨(颿/å
¥åº)", "è´¨é(IPQC)"], |
| | | "coreTables": ["mes_pro_mps", "mes_pro_work_order", "mes_pro_task", "mes_pro_feedback", "mes_pro_route", "mes_pro_process", "mes_pro_work_order_bom", "mes_pd_project"]}, |
| | |
| | | {"key": "qc", "name": "è´¨é管ç", "color": "#e06c6c", "tag": "MES-QC", "flow": "quality", |
| | | "positioning": "å鿣éªé¸å£ + ä¸åæ ¼åéç¯å¤ç½®", |
| | | "problem": "æ¥æ/è¿ç¨/åºè´§/éè´§æ£éªæ ååï¼ä¸åæ ¼å¯è¿½æº¯å¤ç½®", |
| | | "features": ["IQC æ¥æ(å°è´§/å¤å)", "IPQC è¿ç¨(è卿¥å·¥)", "OQC åºè´§(èå¨éå®åºåº)", "RQC éè´§(èå¨éæ/å®å)", "è´¨æ£æ¹æ¡Â·ææ ·缺é·åº", "æ£æµç»æ:åæ ¼/ç¹é/éè´§/æ¥åº", "NCR:è¯å®¡âå¤ç½®(éè´§/æ¥åº/è¿å·¥/让æ¥/é级)âå
³é", "AI å¤å®å»ºè®®"], |
| | | "objects": ["IQC", "IPQC", "OQC", "RQC", "è´¨æ£æ¹æ¡", "NCR", "缺é·è®°å½"], |
| | | "features": ["IQC æ¥æ(å°è´§/å¤å)", "IPQC è¿ç¨(è卿¥å·¥)", "OQC åºè´§(èå¨éå®åºåº)", "RQC éè´§(èå¨éæ/å®å)", "è´¨æ£æ¹æ¡Â·ææ ·缺é·åº", "æ£æµç»æ:åæ ¼/ç¹é/éè´§/æ¥åº", "NCR:è¯å®¡âå¤ç½®(éè´§/æ¥åº/è¿å·¥/让æ¥/é级)âå
³é", "çæ ·ç®¡ç(å·¥åå®å·¥åå¿
ç»Â·ä¸å·¥å䏿¡Â·ç»å®éå®è®¢åÂ·å°æ=çæ ·æ¥æ+6个æ)", "AI å¤å®å»ºè®®"], |
| | | "objects": ["IQC", "IPQC", "OQC", "RQC", "è´¨æ£æ¹æ¡", "NCR", "缺é·è®°å½", "çæ ·è®°å½"], |
| | | "roles": ["è´¨æ£å(IQC/IPQC/OQC)", "è´¨éå·¥ç¨å¸"], |
| | | "upstream": ["ä»å¨(å°è´§)", "ç产(æ¥å·¥)", "éå®(åºåº)", "å®å(éè´§)"], "downstream": ["ä»å¨(åæ ¼å
¥åº/æ¥åºåºåº)", "ç产(NCRè¿å·¥)"], |
| | | "coreTables": ["mes_qc_iqc", "mes_qc_ipqc", "mes_qc_oqc", "mes_qc_rqc", "mes_qc_template", "mes_qc_indicator", "mes_qc_defect", "mes_qc_ncr"]}, |
| | | "coreTables": ["mes_qc_iqc", "mes_qc_ipqc", "mes_qc_oqc", "mes_qc_rqc", "mes_qc_template", "mes_qc_indicator", "mes_qc_defect", "mes_qc_ncr", "mes_qc_retention_sample"]}, |
| | | {"key": "qcreport", "name": "æºè½è´¨æ£æ¥å", "color": "#b06ce0", "tag": "QC-REPORT", "flow": "quality", |
| | | "positioning": "å¯è§å设计æ¥åæ¨¡æ¿ â ä¸é®åºä»¶å¹¶å»ç»å岿¥å", |
| | | "problem": "åè¡ä¸è´¨æ£æ¥åæ ¼å¼åå¼ï¼æç硬ç¼ç æ¹ä¸æ¬¡å䏿¬¡çï¼ä¸å岿¥åå¿
é¡»å¯å¤ç°ãä¸éä¸å¡æ°æ®åå", |
| | |
| | | {"key": "hrm", "name": "人åèµæº", "color": "#9db85a", "tag": "HRM", "flow": null, |
| | | "positioning": "åå·¥å
¥è½¬è°ç¦»ä¸èå¤èªé
¬", |
| | | "problem": "äººäºæµç¨å®¡æ¹åãç¦»èæ°æ®ä¸ä¸¢(交æ¥)ãç®èªèªå¨å", |
| | | "features": ["å工档æ¡(å
¥èèªå¨å»ºç³»ç»è´¦å·)", "请å/å ç/è°å²/离è BPM 审æ¹", "离èäº¤æ¥æ å° expandUserIds", "èå¤(ç§»å¨ç«¯æçèå¤ç¶æÂ·æå¡Â·è§å·æç·补å¡å®¡æ¹Â·æåº¦æ±æ»)", "èªé
¬(åºå-社ä¿å
¬ç§¯é-个ç¨-è¯·åæ£æ¬¾Â·1.5/2/3åå çè´¹Â·åæ¾å°è´¦)", "å¹è®è¯ä¹¦(SQLå
è¡å¾
å®ç°)"], |
| | | "objects": ["åå·¥", "请åå", "离èç³è¯·", "äº¤æ¥æ å°", "èå¤è®°å½", "èªé
¬æ ¸ç®"], |
| | | "features": ["å工档æ¡(å
¥èèªå¨å»ºç³»ç»è´¦å·)", "请å/å ç/è°å²/离è BPM 审æ¹", "离èäº¤æ¥æ å° expandUserIds", "åå·¥ååå°è´¦(ç»ç¾é¾Â·å°ææé·Excel导å
¥Â·å°æç¶æå¨æè®¡ç®)", "ååææ¡£çæ(Word模æ¿å ä½ç¬¦å¡«å
âç³»ç»æä»¶åºâååé件彿¡£)", "èå¤(ç§»å¨ç«¯æçèå¤ç¶æÂ·æå¡Â·è§å·æç·补å¡å®¡æ¹Â·æåº¦æ±æ»)", "èªé
¬(åºå-社ä¿å
¬ç§¯é-个ç¨-è¯·åæ£æ¬¾Â·1.5/2/3åå çè´¹Â·åæ¾å°è´¦)", "å¹è®è¯ä¹¦(SQLå
è¡å¾
å®ç°)"], |
| | | "objects": ["åå·¥", "åå·¥åå", "请åå", "离èç³è¯·", "äº¤æ¥æ å°", "èå¤è®°å½", "èªé
¬æ ¸ç®"], |
| | | "roles": ["HR", "é¨é¨ä¸»ç®¡", "åå·¥æ¬äºº"], |
| | | "upstream": [], "downstream": ["忍¡å(æ°æ®å¯è§æ§æ©å±)", "system(è´¦å·)"], |
| | | "coreTables": ["hrm_employee", "hrm_leave_application", "hrm_resignation_application", "hrm_user_handover", "hrm_attendance_record", "hrm_salary_calculation", "hrm_salary_payment"]}, |
| | | "coreTables": ["hrm_employee", "hrm_employee_contract", "hrm_leave_application", "hrm_resignation_application", "hrm_user_handover", "hrm_attendance_record", "hrm_salary_calculation", "hrm_salary_payment"]}, |
| | | {"key": "bpm", "name": "åå审æ¹", "color": "#e6a23c", "tag": "BPM", "flow": null, |
| | | "positioning": "å
¨ç³»ç»åæ®å®¡æ¹ä¸æ¢ï¼Flowableï¼", |
| | | "problem": "夿¨¡ååæ®éè¦çµæ´»å¯é
çå¤çº§å®¡æ¹", |
| | |
| | | {"name": "è系人", "module": "éå®ç®¡ç", "table": "crm_contact", "doc": "客æ·ä¸è系人ï¼ä¸åæºå¤å¯¹å¤", "upstream": ["客æ·"], "downstream": ["åæº"], "keywords": "è系人 contact"}, |
| | | {"name": "åæº", "module": "éå®ç®¡ç", "table": "crm_business", "doc": "é宿ºä¼ï¼DB é
ç½®å¼é¶æ®µæ¨è¿ï¼ç»ææ: èµ¢/è¾/æ æ", "upstream": ["客æ·"], "downstream": ["æ¥ä»·å", "åå"], "keywords": "åæº business èµ¢å è¾å é¶æ®µ"}, |
| | | {"name": "æ¥ä»·å", "module": "éå®ç®¡ç", "table": "crm_sale_quotation", "doc": "QTç¼å·ï¼é MDM ç©ææ¥ä»·ï¼AI OCR å½å
¥ï¼è稿â已转åå", "upstream": ["åæº"], "downstream": ["åå"], "keywords": "æ¥ä»· quotation QT"}, |
| | | {"name": "åå", "module": "éå®ç®¡ç", "table": "crm_contract", "doc": "HTç¼å·ï¼BPM 审æ¹(0è稿/10审æ¹ä¸/20éè¿/30驳å/40åæ¶/50ä½åº)ï¼éè¿åå¯çæéå®è®¢åï¼æ¯æ Excel 导å
¥ï¼ä¸ååå¤äº§åæç»è¡ãåå¹¶åå
æ ¼èªå¨æå¹³ï¼å®¢æ·ä¸ç©ææåç§°/ç¼ç æ ¡éªï¼ï¼äº§åæç»å¸¦åºç©æåç§°/ç¼ç /æ¡ç /è§æ ¼åå·/计éåä½ï¼å é¤ååæ¶è¿å¸¦å é¤äº§åæç»ï¼ä¸çå¤å¿æ°æ®", "upstream": ["æ¥ä»·å"], "downstream": ["éå®è®¢å", "忬¾è®¡å", "å¼ç¥¨"], "keywords": "åå contract å®¡æ¹ å¯¼å
¥"}, |
| | | {"name": "åå", "module": "éå®ç®¡ç", "table": "crm_contract", "doc": "HTç¼å·ï¼BPM 审æ¹(0è稿/10审æ¹ä¸/20éè¿/30驳å/40åæ¶/50ä½åº)ï¼éè¿åå¯çæéå®è®¢åï¼æ¯æ Excel 导å
¥ï¼ä¸ååå¤äº§åæç»è¡ãåå¹¶åå
æ ¼èªå¨æå¹³ï¼å®¢æ·ä¸ç©ææåç§°/ç¼ç æ ¡éªï¼ï¼äº§åæç»å¸¦åºç©æåç§°/ç¼ç /æ¡ç /è§æ ¼åå·/计éåä½ï¼å é¤ååæ¶è¿å¸¦å é¤äº§åæç»ï¼ä¸çå¤å¿æ°æ®ï¼éå®è®¢å审æ¹éè¿ä¸è®¢åæ å
³èååæ¶ï¼ç³»ç»æã客æ·åç§°-éå®åå-订åå·ãèªå¨ååçæè稿ååï¼ä¸èªå¨æäº¤å®¡æ¹ï¼åä¸è®¢åä»
ä¸ä»½ï¼å¤±è´¥ä¸å½±å订å审æ¹ï¼", "upstream": ["æ¥ä»·å", "éå®è®¢å(èªå¨çæ)"], "downstream": ["éå®è®¢å", "忬¾è®¡å", "å¼ç¥¨"], "keywords": "åå contract å®¡æ¹ å¯¼å
¥ èªå¨çæ"}, |
| | | {"name": "å票", "module": "éå®ç®¡ç", "table": "crm_invoice", "doc": "KPç¼å·ï¼å¯ç空èªå¨çæãç³»ç»å
å¯ä¸ï¼ï¼BPM 审æ¹ï¼ç´¯è®¡å¼ç¥¨â¤ååé¢ï¼éä»¶å¿
ä¼ ï¼æ¯æ Excel 导å
¥ï¼ä»
æ°å¢ä¸æ´æ°ï¼ååé¡»å®¡æ ¸éè¿ä¸æ¬æ¬¡éé¢â¤ååå©ä½å¯å¼ç¥¨é¢ï¼å䏿¹æ°æ®ä¸å¯éå¤å¯¼å
¥ââåååä¸å票å·ç ç¸åãæå票å·ç ç空æ¶å¼ç¥¨éé¢+å票æ¬å¤´+å¼ç¥¨æ¥æç¸åå³å¤éå¤ï¼æä»¶å
éå¤è¡ä¸åºå
å·²æåé½æè¯¥è¡å¹¶åæ¾ç»´åº¦ä¸å®é
å¼ï¼", "upstream": ["åå"], "downstream": ["忬¾"], "keywords": "å¼ç¥¨ å票 invoice 导å
¥ å»é"}, |
| | | {"name": "忬¾", "module": "éå®ç®¡ç", "table": "crm_receivable", "doc": "HKç¼å·ï¼å建å³å®¡æ¹ä¸(æå¨å®¡æ ¸)ï¼å¼ºå¶å
å¼ç¥¨ï¼éé¢åæ ¡éª", "upstream": ["åå", "å票"], "downstream": ["æ¶æ¬¾å(å
³è)"], "keywords": "忬¾ æ¶æ¬¾è®¡å receivable"}, |
| | | {"name": "éå®ç®æ ", "module": "éå®ç®¡ç", "table": "crm_sales_target", "doc": "å¹´/å£/æÃ个人/é¨é¨/产å维度çåå忬¾çç®æ ", "upstream": [], "downstream": ["ä¸ç»©ç»è®¡"], "keywords": "ç®æ target ä¸ç»©"}, |
| | |
| | | {"name": "éè´æ¥ç¥¨", "module": "è¿éå", "table": "erp_purchase_invoice", "doc": "FPDç¼å·ï¼AI OCR é¢å¡«ï¼ç´¯è®¡â¤è®¢åæ»ä»·ï¼ä»æ¬¾åçåç½®", "upstream": ["éè´è®¢å"], "downstream": ["仿¬¾å"], "keywords": "æ¥ç¥¨ å票 éè´å票"}, |
| | | {"name": "仿¬¾å", "module": "è´¢å¡", "table": "erp_finance_payment", "doc": "FKDç¼å·ï¼å¿
é¡»å
³èæ¥ç¥¨+éä»¶ï¼ç´¯è®¡â¤æ¥ç¥¨éé¢ï¼BPM 审æ¹", "upstream": ["éè´æ¥ç¥¨"], "downstream": ["ç»ç®è´¦æ·"], "keywords": "仿¬¾ åºä» payment"}, |
| | | {"name": "æ¶æ¬¾å", "module": "è´¢å¡", "table": "erp_finance_receipt", "doc": "SKDç¼å·ï¼å
³è CRM å®¢æ·æ ¡éªï¼æ BPM(æå¨å®¡æ ¸)", "upstream": ["éå®(å¼±å
³è)"], "downstream": ["ç»ç®è´¦æ·"], "keywords": "æ¶æ¬¾ åºæ¶ receipt"}, |
| | | {"name": "éå®è®¢å", "module": "è¿éå", "table": "erp_sale_order", "doc": "XSDDç¼å·ï¼BPM 审æ¹ï¼éç产è¡èªå¨å»º MPSï¼åºåºç¶æ:æª0å·²é¢ç1é¨å2å
¨é¨3ï¼çäº§å®æäºä»¶åå", "upstream": ["åå"], "downstream": ["MPS", "åè´§éç¥", "éå®åºåº", "å®åå·¥å"], "keywords": "éå®è®¢å sale"}, |
| | | {"name": "主ç产计å", "module": "ç产", "table": "mes_pro_mps", "doc": "MPS计åï¼è稿0âå·²ä¸å1â宿2/åæ¶3ï¼å¯åå¹¶ä¸å", "upstream": ["éå®è®¢å"], "downstream": ["ç产工å"], "keywords": "MPS 主计å ç产计å"}, |
| | | {"name": "ç产工å", "module": "ç产", "table": "mes_pro_work_order", "doc": "è稿0â已确认1â宿2/åæ¶3ï¼ç¡®è®¤æ¶æå·¥èºè·¯çº¿çæä»»å¡ï¼æåä¸éå·¥åºæ¥å·¥ååå·²ç产æ°é", "upstream": ["MPS"], "downstream": ["ç产任å¡", "颿", "å®å·¥å
¥åº"], "keywords": "å·¥å ç产工å work order"}, |
| | | {"name": "éå®è®¢å", "module": "è¿éå", "table": "erp_sale_order", "doc": "XSDDç¼å·ï¼BPM 审æ¹ï¼éç产è¡èªå¨å»º MPSï¼å®¡æ¹éè¿ä¸è®¢åæ å
³èååæ¶èªå¨çæ CRM è稿ååå¹¶åå contractId/contractNoï¼è®¢åæ¥èªååæ¶è·³è¿ï¼ï¼ååçæå¤±è´¥ä¸é»å¡å®¡æ¹ï¼åºåºç¶æ:æª0å·²é¢ç1é¨å2å
¨é¨3ï¼çäº§å®æäºä»¶åå", "upstream": ["åå", "æå·¥æ°å»º"], "downstream": ["MPS", "åå(èªå¨çæ)", "åè´§éç¥", "éå®åºåº", "å®åå·¥å"], "keywords": "éå®è®¢å sale èªå¨åå"}, |
| | | {"name": "主ç产计å", "module": "ç产", "table": "mes_pro_mps", "doc": "MPS计åï¼è稿0âå·²ä¸å1â宿2/åæ¶3ï¼å¯åå¹¶ä¸åï¼å
³èå·¥å宿æ¶èªå¨ååå®æç¶æã产éä¸å®ææ¥æ", "upstream": ["éå®è®¢å"], "downstream": ["ç产工å"], "keywords": "MPS 主计å ç产计å"}, |
| | | {"name": "ç产工å", "module": "ç产", "table": "mes_pro_work_order", "doc": "è稿0â已确认1â宿2/åæ¶3ï¼ç¡®è®¤æ¶æå·¥èºè·¯çº¿çæä»»å¡ï¼æåä¸éå·¥åºæ¥å·¥ååå·²ç产æ°éï¼äººå·¥å®æè¦æ±å·²ç产æ°é>0ï¼å®å·¥æ¶åæ¥å
³è MPS 已宿ï¼è®°å½è¶
èæ¥è¦æ¯ä¾(å·¥åè¦ç)䏿 å/å®é
/è¶
èç©æææ¬ãç©æå使æ¬ãææ¬æ´æ°æ¶é´ï¼æ¥å·¥å®¡æ¹åèªå¨éç®", "upstream": ["MPS"], "downstream": ["ç产任å¡", "颿", "å®å·¥å
¥åº", "è¶
èæ¥è¦"], "keywords": "å·¥å ç产工å work order ææ¬ ç®æ"}, |
| | | {"name": "ç产任å¡", "module": "ç产", "table": "mes_pro_task", "doc": "å·¥åºç²åº¦ï¼é¢å¤0âç产ä¸1âé¨å2â宿4ï¼å¯æå9åæ¶5", "upstream": ["ç产工å"], "downstream": ["æ¥å·¥"], "keywords": "ä»»å¡ task å·¥åº"}, |
| | | {"name": "æ¥å·¥å", "module": "ç产", "table": "mes_pro_feedback", "doc": "è稿0â审æ¹ä¸2âå¾
æ£3/宿4ï¼æå·¥åºé¡ºåºæ ¡éª(ä¸éå·¥åºæ¥æ»¡æå¯æ¥)ï¼èå¨å岿¶è/产åºå
¥åº/IPQC", "upstream": ["ç产任å¡"], "downstream": ["产å产åº", "ç©ææ¶è", "IPQC"], "keywords": "æ¥å·¥ feedback"}, |
| | | {"name": "æ¥å·¥å", "module": "ç产", "table": "mes_pro_feedback", "doc": "è稿0â审æ¹ä¸2âå¾
æ£3/宿4ï¼æå·¥åºé¡ºåºæ ¡éª(ä¸éå·¥åºæ¥æ»¡æå¯æ¥)ï¼èå¨å岿¶è/产åºå
¥åº/IPQCï¼å®¡æ¹éè¿å触åå·¥åç©æææ¬éç®ä¸è¶
èæ¥è¦æ£æ¥", "upstream": ["ç产任å¡"], "downstream": ["产å产åº", "ç©ææ¶è", "IPQC", "工忿¬", "è¶
èæ¥è¦"], "keywords": "æ¥å·¥ feedback"}, |
| | | {"name": "è¶
èæ¥è¦", "module": "ç产", "table": "mes_pro_over_consume_alert", "doc": "æ¥å·¥å®¡æ¹åæ å·¥åâ产åâå
¨å±åæ° éå¼å¤å®ï¼å®é
æ¶è>æ åç¨éÃ(1+éå¼%)æ¶çæï¼è®°å½æ å/å®é
/è¶
èæ°éãè¶
èæ¯ä¾ãåä»·ä¸è¶
èéé¢ï¼åä¸å·¥ååç©æä»
䏿¡ï¼åéç«å
ä¿¡ç»åæ°æå®ç¨æ·ï¼ç¶æ SENT/FAILED", "upstream": ["æ¥å·¥å", "ç©ææ¶è"], "downstream": ["ç«å
ä¿¡"], "keywords": "è¶
è æ¥è¦ ææ¬ over consume alert"}, |
| | | {"name": "å·¥èºè·¯çº¿", "module": "ç产", "table": "mes_pro_route", "doc": "å·¥åºé¡ºåº+è´¨æ£/å
³é®/å岿 è®°ï¼é©±å¨å·¥åä»»å¡ä¸æ¥å·¥è§å", "upstream": [], "downstream": ["ç产工å"], "keywords": "å·¥èº è·¯çº¿ route å·¥åº"}, |
| | | {"name": "å°è´§éç¥å", "module": "ä»å¨", "table": "mes_wm_arrival_notice", "doc": "éè´è®¢å确认æ¶è´§çæï¼è稿0âå¾
è´¨æ£2âå¾
å
¥åº3â宿4", "upstream": ["éè´è®¢å"], "downstream": ["IQC", "éè´å
¥åº"], "keywords": "å°è´§ æ¶è´§ arrival"}, |
| | | {"name": "éè´å
¥åºå", "module": "ä»å¨", "table": "mes_wm_item_receipt", "doc": "è稿0âå¾
䏿¶2âå¾
æ§è¡3â宿4ï¼å®æååºå+å¹¶åå ERP inCount/inStatus", "upstream": ["å°è´§éç¥"], "downstream": ["åºåå°è´¦", "éè´è®¢å(åå)"], "keywords": "éè´å
¥åº æ¶è´§å
¥åº receipt"}, |
| | |
| | | {"name": "OQCåºè´§æ£éª", "module": "è´¨é", "table": "mes_qc_oqc", "doc": "éå®åºåºæäº¤è§¦åï¼å®ææ¨è¿åºåºåå¾
æ£è´§ï¼è¡æä½ãåºæ¥åãä»
å¨å·²å®ææ¶å¯è§ï¼æ¯æ Excel æ¹é导å
¥ï¼å®¢æ·é¡»å¨å½åç»å½ç¨æ·çå®¢æ·æ°æ®æéèå´å
ï¼ï¼å䏿¹æ°æ®ä¸å¯éå¤å¯¼å
¥ï¼ç©æ+客æ·+æ¹æ¬¡å·+åºè´§æ¥æï¼æä»¶å
éå¤è¡ä¸åºå
å·²æåé½æè¯¥è¡ï¼", "upstream": ["éå®åºåºå", "Excel æ¹é导å
¥"], "downstream": ["éå®åºåºå(æ¨è¿)", "æ¥åå®ä¾(åºæ¥å)"], "keywords": "OQC åºè´§æ£éª åºåæ£éª åºæ¥å æ¹é导å
¥ 导å
¥æ¨¡æ¿"}, |
| | | {"name": "RQCéè´§æ£éª", "module": "è´¨é", "table": "mes_qc_rqc", "doc": "ç产éæ/éå®éè´§/å®åé货触åï¼ç»è®ºåè°å®åï¼è¡æä½ãåºæ¥åãä»
å¨å·²å®ææ¶å¯è§ãæªè¾å·²ç»ä¸ä¸ºãéè´§æ£éªãï¼åèåç¶é¡¹ä¸ mes_qc_type åå
¸åãéææ£éªãï¼ä¸å端æä¸¾/表注é/èåæéå项ä¸ä¸è´ï¼RQC ä¸è
é½è¦çï¼æ
åãéè´§æ£éªãï¼", "upstream": ["éæ", "éè´§"], "downstream": ["éè´§å
¥åº", "å®ååè°", "æ¥åå®ä¾(åºæ¥å)"], "keywords": "RQC éè´§æ£éª éææ£éª åºæ¥å"}, |
| | | {"name": "NCRä¸åæ ¼å", "module": "è´¨é", "table": "mes_qc_ncr", "doc": "å¾
è¯å®¡0âå·²è¯å®¡6âå·²å¤ç½®7âå·²å
³é8ï¼å¤ç½®:éè´§/æ¥åº/è¿å·¥/è®©æ¥æ¥æ¶/é级", "upstream": ["IQC/IPQC/OQC/RQC"], "downstream": ["éè´§/æ¥åº/è¿å·¥(å°è´¦)"], "keywords": "NCR ä¸åæ ¼ å¤ç½® ç¹é æ¥åº"}, |
| | | {"name": "çæ ·è®°å½", "module": "è´¨é", "table": "mes_qc_retention_sample", "doc": "ç产工åå®å·¥åå¿
é¡»ç»è®°ï¼ä¸å¼ å·¥ååªè½ä¸æ¡ï¼work_order_id å¯ä¸ï¼ï¼ç¼å· LY+yyyyMMdd+4使µæ°´æå¤©çæï¼çæ ·æ°éé»è®¤ 2 ä»¶ï¼å°ææ¥æé»è®¤çæ ·æ¥æ+6个æï¼éå®è®¢åæ MPS ä¸åè®°å½èªå¨ç»å®ï¼åå¹¶ä¸åå¤å¼ è®¢åæ¶éæå®æ¬æ¬¡çæ ·å¯¹åºè®¢åï¼å®¢æ·è®¢åæ¥æºå·¥åææ¥æºåå·æ ¡éªï¼åºåå¤è´§å·¥åå¯ä¸ç»å®ï¼MPS è®°å½çéå®è®¢åå¨ç³»ç»ä¸ä¸å卿¶æç¤ºå¹¶é»æä¿åï¼æå·¥å®æä¸æ¥å·¥è¾¾æ èªå¨å®å·¥åæ ¡éªçæ ·ï¼æªç»è®°æ¦æªï¼å·¥å已宿ä¸å
许å é¤çæ ·", "upstream": ["ç产工å", "MPS(éå®è®¢å)"], "downstream": ["å·¥åå®ææ ¡éª", "éå®è®¢å(追溯)"], "keywords": "çæ · çæ ·è®°å½ retention sample å®å·¥çæ · éå®è®¢åç»å®"}, |
| | | {"name": "设å¤", "module": "设å¤", "table": "mes_dv_machinery", "doc": "å°è´¦ç¶æ:åæº/ç产ä¸/ä¿å
»ä¸ï¼ç¹æ£Â·ä¿å
»Â·ç»´ä¿®å·¥åï¼AI é£é©é¢æµæ¶è´¹å
¶æ°æ®", "upstream": [], "downstream": ["ç¹æ£", "ç»´ä¿®", "ç产é£é©é¢æµ"], "keywords": "è®¾å¤ ç¹æ£ ä¿å
» ç»´ä¿® machinery"}, |
| | | {"name": "å®åå·¥å", "module": "å®å", "table": "after_sale_ticket", "doc": "è稿0âå¤çä¸10âå¾
å
¥åº30âå¾
鿬¾40âå®ç»50âå
³é60/åæ¶99ï¼å¤å®:ä¸è¬/ç»´ä¿®/éè´§", "upstream": ["客æ·åé¦(人工å½å
¥)"], "downstream": ["维修记å½", "éè´§ç³è¯·"], "keywords": "å®å å·¥å ticket ç»´ä¿®"}, |
| | | {"name": "éè´§ç³è¯·", "module": "å®å", "table": "after_sale_return", "doc": "è稿0âå·²å®¡æ ¸20(èªå¨å»ºMESéè´§å)â已质æ£40âå·²å
¥åº50â已鿬¾60âå
³é70ï¼ç±»å:鿬¾éè´§/æ¢è´§/ä»
鿬¾", "upstream": ["å®åå·¥å"], "downstream": ["éå®éè´§å", "鿬¾"], "keywords": "å®åéè´§ return"}, |
| | | {"name": "åå·¥", "module": "人å", "table": "hrm_employee", "doc": "å¨è1/è¯ç¨2/离è3ï¼å
¥èèªå¨å»ºç³»ç»è´¦å·", "upstream": [], "downstream": ["äº¤æ¥æ å°", "èå¤", "èªé
¬"], "keywords": "åå·¥ å
¥è employee"}, |
| | | {"name": "åå·¥", "module": "人å", "table": "hrm_employee", "doc": "å¨è1/è¯ç¨2/离è3ï¼å
¥èèªå¨å»ºç³»ç»è´¦å·", "upstream": [], "downstream": ["äº¤æ¥æ å°", "åå·¥åå", "èå¤", "èªé
¬"], "keywords": "åå·¥ å
¥è employee"}, |
| | | {"name": "åå·¥åå", "module": "人å", "table": "hrm_employee_contract", "doc": "ä¸ä¸ªåå·¥å¤ä»½åå(ç»ç¾é¾ parentIdãå½ååå isCurrent)ï¼ååç±»å/æéç±»åèµ°åå
¸ï¼åºå®æéå¿
é¡»å¡«ç»ææ¥æãååå·¥æ¶é´ä¸å¾éå ï¼æ¯ææ¨¡æ¿å¯¼å
¥ï¼å¯æååè®°å½èªå¨çæ Word å³å¨åå(å ä½ç¬¦å¡«å
åå·¥/é¨é¨/å²ä½/ååä¿¡æ¯)å¹¶åç³»ç»æä»¶åºç»å®ä¸ºååéä»¶ï¼æ¯æ¬¡çæä¿çåå²çæ¬ï¼è§£é¤/ç»æ¢éå¡«æ¥æä¸åå ", "upstream": ["åå·¥"], "downstream": ["ååææ¡£éä»¶", "å°ææé"], "keywords": "åå·¥åå å³å¨åå ååææ¡£ çæåå éä»¶ contract"}, |
| | | {"name": "离è交æ¥", "module": "人å", "table": "hrm_user_handover", "doc": "fromâto æ å°ï¼å·²å®æ20 å expandUserIds æ©å±äº¤æ¥äººå¯è§æ°æ®ï¼å½ååä¸å¡æ¨¡åå°æªå®é
æ¥å
¥è°ç¨ï¼", "upstream": ["离èç³è¯·"], "downstream": ["忍¡åæçæ°æ®æ¥è¯¢"], "keywords": "äº¤æ¥ ç¦»è handover expandUserIds"}, |
| | | {"name": "æç计å", "module": "设å¤", "table": "mes_cal_plan", "doc": "çç»Ãçæ¬¡Ãæ¥ææçï¼ä¾ç产ä¸èå¤å¼ç¨", "upstream": [], "downstream": ["ç产任å¡", "èå¤"], "keywords": "æç çç» çæ¬¡ æ¥å"}, |
| | | {"name": "æ¥å模æ¿", "module": "è´¨æ£æ¥å", "table": "qc_report_template", "doc": "æºè½è´¨æ£æ¥å模æ¿ï¼å¯ç¨0/åç¨1ï¼ç»å¸å
容åå¨ qc_report_template_versionï¼è稿0/å·²åå¸1/å·²åç¨2ï¼å·²åå¸ä¸å¯è¦çï¼ï¼currentVersion æåå½åå·²åå¸çæ¬ï¼æºæä»¶ç» AI 导å
¥è¯å«æè稿åç±äººå·¥ç¡®è®¤ææä¸ºçæ¬ï¼å䏿¨¡æ¿éå¤å¯¼å
¥æãæ¿æ¢ãå¤çââå
å æ§éä»¶ï¼è¿å¸¦ blob è¡ä¸ç£çæä»¶ï¼åç»æ°çï¼ä¸çå¤å¿æä»¶ï¼å 餿¨¡æ¿ä¼è¿å¸¦æ¸
éä»¶", "upstream": ["人工设计(GrapesJS 设计å¨)", "AI 导å
¥è稿(qc-report/ai-import/draft)"], "downstream": ["模æ¿çæ¬", "æ¥åå®ä¾"], "keywords": "æ¥åæ¨¡æ¿ è´¨æ£æ¥å template è®¾è®¡å¨ çæ¬ AI导å
¥ è¯å« è稿 æºæä»¶æ¿æ¢"}, |
| | |
| | | <script type="application/json" id="data-flows">{ |
| | | "flows": [ |
| | | {"id": "sales", "name": "é宿µç¨", "mermaid": "mermaid/02-sales-flow.mmd", "color": "#4f9cff", |
| | | "summary": "线索转åå®¢æ· â åæºæ¨è¿ â æ¥ä»·(å¯AIè¯å«) â åå BPM å®¡æ¹ â çæ ERP éå®è®¢åå¹¶å®¡æ¹ â éç产è¡èªå¨å»º MPS â åè´§éç¥ â éå®åºåº(OQC)åå â å¼ç¥¨(BPM) â 忬¾(å
å¼ç¥¨æ ¡éª)ã", |
| | | "summary": "线索转åå®¢æ· â åæºæ¨è¿ â æ¥ä»·(å¯AIè¯å«) â åå BPM å®¡æ¹ â çæ ERP éå®è®¢å并审æ¹ï¼æ å
³èååæ¶èªå¨ååçæè稿ååï¼ â éç产è¡èªå¨å»º MPS â åè´§éç¥ â éå®åºåº(OQC)åå â å¼ç¥¨(BPM) â 忬¾(å
å¼ç¥¨æ ¡éª)ã", |
| | | "steps": [ |
| | | {"stage": "è·å®¢", "action": "线索转å客æ·ã建è系人ãç«é¡¹åæº", "roles": ["éå®å
å¤"]}, |
| | | {"stage": "æ¥ä»·", "action": "åæºèµ¢åå建æ¥ä»·å(AI OCR é¢å¡«)ï¼è½¬åå", "roles": ["éå®å
å¤"]}, |
| | | {"stage": "ç¾çº¦", "action": "å忥æºï¼æå·¥æ°å»º / æ¥ä»·å转å
¥ / Excel 导å
¥(ä¸ååå¤äº§åæç»è¡)ï¼æäº¤ BPM 审æ¹(å¯éæµç¨å®ä¹)ï¼éè¿=20", "roles": ["éå®", "审æ¹äºº"]}, |
| | | {"stage": "æ¥å", "action": "ååä¸é®çæéå®è®¢å(XSDD)ï¼éå®è®¢ååèµ° BPMï¼å®¡æ¹éè¿èªå¨ä¸º needProduction æç»å建 MPS", "roles": ["éå®", "计åå"]}, |
| | | {"stage": "æ¥å", "action": "ååä¸é®çæéå®è®¢å(XSDD)ï¼éå®è®¢ååèµ° BPMï¼å®¡æ¹éè¿èªå¨ä¸º needProduction æç»å建 MPSï¼è®¢åæ å
³èååæ¶æå®¢æ·åç§°-éå®åå-订åå·èªå¨çæ CRM è稿åå(è稿ä¸å起审æ¹ï¼è´è´£äººåéå®åï¼åååªçæä¸ä»½ï¼çæå¤±è´¥ä¸é»å¡è®¢å审æ¹)", "roles": ["éå®", "计åå"]}, |
| | | {"stage": "交ä»", "action": "åè´§éç¥å®¡æ ¸(å ç¨)â éå®åºåº OQC â åè¿ â åºåºååé¨å/å
¨é¨åºåº", "roles": ["ä»ç®¡", "è´¨æ£"]}, |
| | | {"stage": "忬¾", "action": "å¼ç¥¨ BPM(累计â¤ååé¢) â 忬¾å¼ºå¶å
å¼ç¥¨(累计â¤ååå©ä½ä¸å¼ç¥¨å©ä½)", "roles": ["è´¢å¡", "éå®"]}]}, |
| | | {"id": "purchase", "name": "éè´æµç¨", "mermaid": "mermaid/03-purchase-flow.mmd", "color": "#5fc79e", |
| | |
| | | {"stage": "éè´§", "action": "IQC ä¸åæ ¼éè´§âä¾åºåéè´§åºåº(éæéå®å°è®¢åè¡)ï¼æ¥åºèµ° NCR", "roles": ["ä»ç®¡"]}, |
| | | {"stage": "仿¬¾", "action": "éè´æ¥ç¥¨(FPD, AI OCR, â¤è®¢åæ»ä»·) â 仿¬¾å(FKD å
³èæ¥ç¥¨+éä»¶, â¤æ¥ç¥¨éé¢) BPM 审æ¹", "roles": ["è´¢å¡", "审æ¹äºº"]}]}, |
| | | {"id": "production", "name": "ç产æµç¨", "mermaid": "mermaid/04-production-flow.mmd", "color": "#e0b34f", |
| | | "summary": "éå®è®¢åé©±å¨ MPS â ä¸åå·¥å â æå·¥èºè·¯çº¿æå·¥åºä»»å¡ â 颿/çº¿è¾¹å¤æ â æ¥å·¥(å·¥åºé¡ºåºç¡¬æ ¡éª+BPM) â å岿¶è/产åºå
¥åº/IPQC â æ«éå·¥åºååè¿åº¦ â èªå¨å®å·¥ â ProductionFinishedEvent ååéå®è®¢åã", |
| | | "summary": "éå®è®¢åé©±å¨ MPS â ä¸åå·¥å â æå·¥èºè·¯çº¿æå·¥åºä»»å¡ â ç®æ(产åBOMÃ工忰é·带åä»·/éé¢) â 颿/çº¿è¾¹å¤æ â æ¥å·¥(å·¥åºé¡ºåºç¡¬æ ¡éª+BPM) â å岿¶è/产åºå
¥åº/IPQC â 审æ¹åèªå¨éç®å·¥åç©æææ¬å¹¶å¯¹è¶
èç©æç«å
ä¿¡æ¥è¦ â æ«éå·¥åºååè¿åº¦ â èªå¨å®å·¥ â ProductionFinishedEvent ååéå®è®¢åï¼MPS ææ¬æè®¡åæ°éå 工忰éåæã", |
| | | "steps": [ |
| | | {"stage": "计å", "action": "MPS å建(æå·¥æéå®è®¢åèªå¨)âä¸åæåå¹¶ä¸å为工å", "roles": ["计åå"]}, |
| | | {"stage": "派工", "action": "å·¥å确认æå·¥èºè·¯çº¿éå·¥åºçæä»»å¡ï¼å¯ææ´¾/æå/åæ¶", "roles": ["车é´ä¸»ä»»"]}, |
| | | {"stage": "夿", "action": "çäº§é¢æååºåºæçº¿è¾¹èæåºå¤æ", "roles": ["ä»ç®¡"]}, |
| | | {"stage": "æ¥å·¥", "action": "æäº¤æ¥å·¥ï¼ä¸ä¸éå·¥åºæªæ¥æ»¡ç´æ¥æ¦æªï¼å¯ç¨ BPM 走审æ¹", "roles": ["æä½å·¥"]}, |
| | | {"stage": "èå¨", "action": "审æ¹éè¿æå·¥åºæ è®°: åå²âèªå¨ç©ææ¶èæ£çº¿è¾¹åº(å
许è´åºå)ï¼è´¨æ£â产åºå¾
æ£è¡ç IPQCï¼å
³é®éæ£âç´æ¥äº§åºå
¥åº", "roles": ["ç³»ç»èªå¨"]}, |
| | | {"stage": "å®å·¥", "action": "ä»
æ«éå·¥åºååå·¥åå·²ç产æ°éï¼è¾¾æ èªå¨å®æï¼MPS ç´¯è®¡å¤æå®æå¹¶åäºä»¶ç»éå®è®¢å", "roles": ["ç³»ç»èªå¨"]}]}, |
| | | {"stage": "æ ¸ç®", "action": "ç®æï¼äº§å BOM åä½ç¨éÃ工忰éå±å¼åææï¼æ 产åBOMåé路线产åºé¾/å·¥åBOMï¼ï¼å¸¦éæ±æ°é/å·²æ¶è/åä»·/éæ±éé¢ï¼ä»·æ ¼åç©æéè´ä»·å¦ååå·²å®¡æ ¸éè´è®¢åå æåä»·ï¼åæ åéé¢ä¸º0å¹¶æ è®°ç¼ºä»·ï¼ææ¬ï¼æ¥å·¥å®¡æ¹åèªå¨éç®å·¥åæ å/å®é
/è¶
èç©æææ¬ä¸å®é
å使æ¬ï¼å®é
æ¶èåå岿¶èè®°å½ï¼å·²æ¥å·¥æ°éåå·¥å产éä¸åå·¥åºå®¡æ¹æ¥å·¥ç´¯è®¡çæå¤§å¼ï¼ï¼è¶
èé弿 å·¥åâ产åâå
¨å±åæ°(é»è®¤5%) åå¼ï¼åæå®é
æ¶è>æ åç¨éÃ(1+éå¼%)å³çææ¥è¦è®°å½å¹¶æåæ°é
ç½®çæ¥æ¶äººåç«å
ä¿¡ï¼åå·¥ååç©æä»
æ¥ä¸æ¬¡ï¼MPS ææ¬æ MPSè®¡åæ°éÃ·å·¥åæ°é åæ", "roles": ["ç³»ç»èªå¨", "计åå"]}, |
| | | {"stage": "å®å·¥", "action": "ä»
æ«éå·¥åºååå·¥åå·²ç产æ°éï¼è¾¾æ èªå¨å®æï¼äººå·¥å®æè¦æ±å·²ç产æ°é>0ï¼ä¸º 0 æ¦æªï¼ï¼å®å·¥åå¿
须已ç»è®°çæ ·è®°å½ï¼æå·¥å®æä¸èªå¨å®å·¥ä¸è´ï¼æªç»è®°æ¦æªï¼ï¼å®å·¥æ¶åæ¥å
³è MPS ä¸ºå·²å®æå¹¶åå产éä¸å®ææ¥æï¼MPS ç´¯è®¡å¤æå®æå¹¶åäºä»¶ç»éå®è®¢å", "roles": ["ç³»ç»èªå¨"]}]}, |
| | | {"id": "quality", "name": "è´¨éæµç¨", "mermaid": "mermaid/05-quality-flow.mmd", "color": "#e06c6c", |
| | | "summary": "å鿣éªé¸å£(IQC/IPQC/OQC/RQCï¼äºæ 0â4) + å¤å®åæ(åæ ¼/ç¹é/éè´§/æ¥åº) + NCR è¯å®¡å¤ç½®å
³éï¼AI æä¾å¤å®å»ºè®®ï¼NCR å½åä»
å°è´¦ä¸è§¦åè¿å·¥åï¼æ£éªåå¯ç±æºè½è´¨æ£æ¥åå¹³å°ä¸é®åºä»¶ï¼generate-from-qcï¼æ°æ®ä» MES åï¼äºéæ ¡éªå渲æè½åºï¼ã", |
| | | "summary": "å鿣éªé¸å£(IQC/IPQC/OQC/RQCï¼äºæ 0â4) + å¤å®åæ(åæ ¼/ç¹é/éè´§/æ¥åº) + NCR è¯å®¡å¤ç½®å
³é + å®å·¥çæ ·ç»è®°ï¼AI æä¾å¤å®å»ºè®®ï¼NCR å½åä»
å°è´¦ä¸è§¦åè¿å·¥åï¼æ£éªåå¯ç±æºè½è´¨æ£æ¥åå¹³å°ä¸é®åºä»¶ï¼generate-from-qcï¼æ°æ®ä» MES åï¼äºéæ ¡éªå渲æè½åºï¼ã", |
| | | "steps": [ |
| | | {"stage": "æ¥æ", "action": "å°è´§éç¥/å¤åå
¥åºâIQCï¼ç»è®ºå忍è¿å¾
å
¥åºæè§¦åéè´§", "roles": ["IQC è´¨æ£å"]}, |
| | | {"stage": "è¿ç¨", "action": "æ¥å·¥è´¨æ£å·¥åºäº§åºè¡âIPQCï¼åæ ¼æè¡å
¥åºãä¸åæ ¼çæ NCR", "roles": ["IPQC è´¨æ£å"]}, |
| | |
| | | {"stage": "éè´§", "action": "éæ/éå®éè´§/å®åéè´§âRQCï¼ç»è®ºåè°åæ®ä¸å®å", "roles": ["RQC è´¨æ£å"]}, |
| | | {"stage": "导å
¥", "action": "IQC/IPQC/OQC ä¸åè¡¨åæ¯æ Excel æ¹é导å
¥(æé®å¨ãæ°å¢ãä¸ã导åºãä¹é´ï¼çº¯æ°å¢ä¸åæ´æ°è¦ç)ï¼ä¸è¡ä¸å¼ åï¼ç¼å·ç空èªå¨çæï¼è´¨æ£æ¹æ¡ç空æç©æ+æ£éªç±»åèªå¨å¹é
ï¼æ£æµäººåç空åå½åç»å½ç¨æ·ï¼ç©æ/ä¾åºå/客æ·/å·¥å/工使ç¼ç æå称精确å¹é
(IPQC ç©æç±å·¥åæ¨å¯¼ï¼æ¨¡æ¿ä¸å¡«)ï¼åæ ¼+ä¸åæ ¼=æ£æµ/æ¥æ¶æ°éãIPQC å·¥åº+æåº+å
¶ä»åºåâ¤ä¸åæ ¼ãOQC 客æ·é¡»å¨æ¬äººæ°æ®æéå
ï¼éè¡å¯¼å
¥é¨åæåï¼å¤±è´¥è¡è¿ failureList 带è¡å·ä¸å¯æ§è¡å¨ä½ï¼æååä¸å¾å¾
æ£éª0ï¼å䏿¹æ°æ®ä¸å¯éå¤å¯¼å
¥ï¼æä»¶å
éå¤è¡ä¸åºå
å·²åå¨åä¸å¡é®åæ®ï¼IQC ç©æ+ä¾åºå+ä¾åºåæ¹æ¬¡+æ¥ææ¥æãIPQC ç产工å+æ£éªç±»å+å·¥ä½+æ£æµæ¥æãOQC ç©æ+客æ·+æ¹æ¬¡å·+åºè´§æ¥æï¼åæè¯¥è¡ï¼æç¤ºå«ç»´åº¦ãåæ¹å®é
å¼ä¸ãå
å é¤è¯¥åæ®åéè¯ãå¨ä½", "roles": ["è´¨æ£å", "IQC è´¨æ£å", "IPQC è´¨æ£å", "OQC è´¨æ£å"]}, |
| | | {"stage": "ä¸åæ ¼", "action": "NCR: å¾
è¯å®¡âè¯å®¡âå¤ç½®(éè´§/æ¥åº/è¿å·¥/è®©æ¥æ¥æ¶/é级)âå
³é", "roles": ["è´¨éå·¥ç¨å¸"]}, |
| | | {"stage": "çæ ·", "action": "ç产工åå®å·¥åå¿
é¡»ç»è®°çæ ·è®°å½ï¼ä¸å¼ å·¥å䏿¡ï¼ç¼å· LY+æ¥æ+4使µæ°´ï¼çæ ·æ°éé»è®¤ 2 ä»¶ï¼å°æ=çæ ·æ¥æ+6个æï¼ï¼éå®è®¢åæ MPS èªå¨ç»å®ãåå¹¶ä¸åå¤åéæå®ã客æ·è®¢åæ¥æºææ¥æºåå·æ ¡éªãåºåå¤è´§å¯ä¸ç»å®ï¼MPS è®°å½çéå®è®¢åå¨ç³»ç»ä¸ä¸å卿¶æç¤ºå¹¶é»æä¿åï¼æå·¥å®æä¸æ¥å·¥è¾¾æ èªå¨å®å·¥åæ ¡éªï¼æªç»è®°æ¦æªï¼å·¥å已宿ä¸å
许å é¤çæ ·", "roles": ["è´¨æ£å", "çæ ·ç®¡çå"]}, |
| | | {"stage": "åºä»¶", "action": "两æ¡åºä»¶å
¥å£ï¼â éç¨ generate/preview(è°ç¨æ¹èªå¸¦ä¸ä¸æ) 渲æ HTML å¹¶å»ç»æ°æ®å¿«ç
§ï¼ç¼å· QR+æ¥æ+4使µæ°´æå¤©ç¬ç«ï¼preview åªæ¸²æä¸è½åºä¸æ¶èç¼å·ï¼regenerate ç¨å»ç»å¿«ç
§éæ¸²ä¸æ°æ®ä¸ç¼å·ä¸åå¹¶ä½åºå·²å½æ¡£ PDFï¼å¯¼åº PDF ç±åç«¯è° Chromium æå°å®ä¾å·²åç HTML å彿¡£éä»¶ä¸å¿ï¼â¡generate-from-qc ç±è´¨æ£åç´æ¥åºä»¶(æ°æ®ç» MesQcReportApi ä» MES åï¼åç«¯ä¸æ¼ä¸ä¸æ)ï¼åºä»¶åäºéæ ¡éªæä¸å¡ä¼å
çº§åªæ¥ç¬¬ä¸å¤ï¼ç±»åéæ³/åæ®ä¸åå¨/æªå®ææ£éª/æªå¡«å¤å®/模æ¿ç±»åä¸ç¬¦/æ å¯ç¨æ£éªé¡¹ï¼æ¥å头å¦å¸¦åæ®åå¤å® qcResult+qcResultText ä¸å¼æå¤å®å¹¶åï¼ååºå undecidableCount å¾
å¤å®é¡¹æ°ä¸ warnings(åç»æ é¢è·³è¿/ææ å·²å /æªå½å®æµå¼/æ ·åè¶
3)ï¼åä¸å¼ åæ®å¯åå¤åºå¤ä»½", "roles": ["è´¨æ£å"]}, |
| | | {"stage": "建模æ¿", "action": "AI 导å
¥ï¼ä¸ä¼ æ¢ææ£éªæ¥åæä»¶(æ«æä»¶/ç
§çãçµåç PDFãWord/Excel) â è¯å«ææ¨¡æ¿è稿(ä¸è½åº) â 人工å¨è®¾è®¡å¨ç¡®è®¤è°æ´åä¿åä¸ºçæ¬ï¼.doc/.xls æ§æ ¼å¼ä¸æ¯æ", "roles": ["è´¨æ£å", "è´¨éå·¥ç¨å¸"]}]}, |
| | | {"id": "warehouse", "name": "ä»å¨æµç¨", "mermaid": "mermaid/06-warehouse-flow.mmd", "color": "#7e6bd6", |
| | |
| | | G -->|BPM审æ¹éè¿20| H[çæ ERP éå®è®¢å XSDD] |
| | | H -->|æäº¤BPM| I[éå®è®¢å审æ¹Â·å®¡æ¹ä¸15âå·²å®¡æ ¸20] |
| | | I -->|æç»éç产·èªå¨å建| J[MES 主ç产计å MPS] |
| | | I -->|审æ¹éè¿ä¸è®¢åæ å
³èåå·èªå¨çæè稿ååå¹¶ååå
³è| G2[åå HT·è稿0·å
³è订å] |
| | | I -.->|订åå·²å
³èåå·跳è¿èªå¨çæ| G2 |
| | | I --> K[åè´§éç¥å] |
| | | K -->|å®¡æ ¸éè¿| L[éå®åºåºå·OQCâæ£è´§âåè¿âåºåºå®æ] |
| | | L -->|åååºåºæ°éä¸ç¶æ| M[éå®è®¢å é¨ååºåº2/å
¨é¨åºåº3] |
| | |
| | | P0[éå®è®¢åæç» needProduction=1] -->|审æ¹éè¿èªå¨å建| P1[MPS 主ç产计å·è稿0âå·²ä¸å1] |
| | | P1 -->|ä¸åæåå¹¶ä¸å| P2[ç产工å·è稿0â已确认1] |
| | | P2 -->|æå·¥èºè·¯çº¿å·¥åºèªå¨çæ| P3[ç产任å¡ÃN·é¢å¤0âç产ä¸1âé¨å宿2â宿4Â·å¯æå9] |
| | | P2 -->|ç®æ:产åBOMÃ工忰é(åé路线产åºé¾/å·¥åBOM)| C0[å·¥åç©æéæ±åè¡¨Â·éæ±/å·²æ¶è/åä»·/éé¢Â·ä»·æ ¼ç¼ºå¤±æ è®°] |
| | | P3 --> P4[çäº§é¢æ æ 线边èæåºå¤æ] |
| | | P4 --> P5[æ¥å·¥æäº¤Â·è稿0] |
| | | P5 -->|æ ¡éª:ä¸ä¸éå·¥åºæªæ¥æ»¡åæ¦æª| P5 |
| | | P5 -->|å¯ç¨BPMåæäº¤å®¡æ¹| P6{æ¥å·¥å®¡æ¹} |
| | | P6 -->|驳å| P5 |
| | | P6 -->|éè¿Â·æè·¯ä¸å½±å审æ¹ç»æ| C1[éç®å·¥åç©æææ¬:æ å/å®é
/è¶
è/å®é
å使æ¬] |
| | | C1 --> C2{åæå®é
æ¶è>æ åç¨éÃ(1+éå¼%)?} |
| | | C2 -->|æ¯| C3[çæè¶
èæ¥è¦è®°å½+ç«å
ä¿¡éç¥æå®ç¨æ·Â·åå·¥ååç©æä»
䏿¬¡] |
| | | C2 -->|å¦| C4[ä»
æ´æ°ææ¬å段] |
| | | P6 -->|éè¿ä¸åå²å·¥åº| P7[æå·¥åBOMèªå¨çæç©ææ¶è·æ£çº¿è¾¹èæåºFIFOå
许è´åºå] |
| | | P6 -->|éè¿ä¸è´¨æ£å·¥åº| P8[产åºè¡å¾
æ£âIPQC è¿ç¨æ£éª] |
| | | P6 -->|éè¿ä¸éè´¨æ£å
³é®å·¥åº| P9[产å产åºç´æ¥å®å·¥å
¥åº] |
| | |
| | | P8 -->|ä¸åæ ¼| P11[NCR ä¸åæ ¼å] |
| | | P9 --> P12[è¿åº¦åå·ä»
æåä¸éå·¥åºæ¥å·¥ææ´æ°å·¥åå·²ç产æ°é] |
| | | P10 --> P12 |
| | | P12 -->|å·²ç产æ°éâ¥è®¡åæ°é·èªå¨| P13[å·¥å宿2] |
| | | P12 -->|å·²ç产æ°éâ¥è®¡åæ°é·èªå¨ æ äººå·¥å®æ(äººå·¥å®æé¡»å·²ç产æ°é>0·为0æ¦æª)| P16{该工åå·²ç»è®°çæ ·?} |
| | | P16 -->|å¦| P17[æ¦æªå®æÂ·å
å»çæ ·ç®¡çç»è®°] |
| | | P16 -->|æ¯| P13[å·¥å宿2Â·åæ¥å
³èMPSä¸ºå·²å®æå¹¶åå产éä¸å®ææ¥æ] |
| | | P12 -->|累计| P14[MPS ååå·²ç产æ°é并夿宿2] |
| | | P14 -->|å
¨é¨å®æ| P15[åå¸ ProductionFinishedEventâååéå®è®¢åçäº§ç¶æ] |
| | | P2 -.->|MPS å表| C5[MPS ææ¬æ è®¡åæ°éÃ·å·¥åæ°é åæå·¥åææ¬Â·å使æ¬ä¸åæ] |
| | | </pre> |
| | | <pre style="display:none" class="mmd-src" data-mmd="05-quality-flow"> |
| | | flowchart TD |
| | |
| | | A2 -->|åæ ¼æ°é| Q5[æ¥å·¥è½¬å®æÂ·äº§åºæè¡å
¥åº] |
| | | A3 -->|宿| Q6[éå®åºåºåæ¨è¿å¾
æ£è´§] |
| | | A4 -->|宿| Q7[éè´§åæ¨è¿ä¸æ¶æå
¥åºÂ·å®ååè°ç»è®º] |
| | | S0[çæ ·ç®¡ç·æ°å¢çæ ·è®°å½] --> S1[mes_qc_retention_sample·ä¸å¼ å·¥å䏿¡Â·ç¼å· LY+yyyyMMdd+4使µæ°´] |
| | | S1 --> S2["éå®è®¢åç»å®ï¼MPS ä¸å以 MPS 为åï¼åå¹¶ä¸åå¤åå¿
é¡»æå®ï¼å®¢æ·è®¢åæ¥æºææ¥æºåå·æ ¡éªï¼åºåå¤è´§å¯ä¸ç»ï¼MPS è®°å½çéå®è®¢åå¨ç³»ç»ä¸ä¸å卿¶æç¤ºå¹¶é»æä¿å"] |
| | | S1 --> S3[çæ ·æ°éé»è®¤ 2 ä»¶Â·å°ææ¥æé»è®¤çæ ·æ¥æ+6个æ] |
| | | S1 -.->|å®å·¥åå¿
须已åå¨| SG{å·¥åå®å·¥æ ¡éªÂ·æå·¥å®æä¸æ¥å·¥è¾¾æ èªå¨å®å·¥ä¸è´} |
| | | SG -->|æªç»è®°| SE[æ¦æªå®å·¥Â·æç¤ºå
å»è´¨é管çâçæ ·ç®¡çç»è®°] |
| | | SG -->|å·²ç»è®°| SC[å
许å®å·¥Â·çº§è宿任å¡] |
| | | S1 --> S4[å·¥å已宿ä¸å
许å é¤çæ ·Â·å¯ä¿®æ¹] |
| | | N1[NCR å¾
è¯å®¡0] -->|è¯å®¡| N2[å·²è¯å®¡6] |
| | | N2 -->|å¤ç½®æ¹å¼:éè´§1æ¥åº2è¿å·¥3è®©æ¥æ¥æ¶4é级使ç¨5| N3[å·²å¤ç½®7] |
| | | N3 -->|å
³é| N4[å·²å
³é8] |
| | |
| | | PI[éè´æ¥ç¥¨] --> PA[仿¬¾å] |
| | | end |
| | | CT -->|generateSaleOrder 带å
¥å®¢æ·äº§åææ£å®é·ååorderId| SO |
| | | SO -->|审æ¹éè¿ä¸æ å
³èåå·èªå¨çæè稿åå·ååcontractId contractNo| CT |
| | | SO -->|审æ¹éè¿å¸¦å
¥ saleOrderId è¡ID æ°é å®¢æ· äº¤æ| MP |
| | | PO -->|确认æ¶è´§å¸¦å
¥è®¢åè¡ç©æä¾åºåæ°é| AN |
| | | AN -->|IQC宿åçæÂ·å¸¦å
¥åæ ¼è¡| IR |
| | |
| | | mes_pro_work_order ||--o{ mes_pro_task : "æå·¥åºæä»»å¡" |
| | | mes_pro_task ||--o{ mes_pro_feedback : "æ¥å·¥" |
| | | mes_pro_work_order ||--o{ mes_pro_work_order_bom : "å·¥åºææBOM" |
| | | mes_pro_work_order ||--o| mes_qc_retention_sample : "å®å·¥å¿
ç»çæ ·" |
| | | erp_sale_order ||--o{ mes_qc_retention_sample : "çæ ·å¯¹åºéå®è®¢å" |
| | | erp_purchase_request ||--o{ erp_purchase_order : "çæéè´è®¢å" |
| | | erp_purchase_order ||--o| mes_wm_arrival_notice : "确认æ¶è´§" |
| | | mes_wm_arrival_notice ||--o| mes_qc_iqc : "触åIQC" |
| | |
| | | erp_purchase_order ||--o{ erp_purchase_invoice : "æ¥ç¥¨" |
| | | erp_purchase_invoice ||--o{ erp_finance_payment : "仿¬¾" |
| | | hrm_employee ||--o| hrm_user_handover : "离èäº¤æ¥æ å°" |
| | | hrm_employee ||--o{ hrm_employee_contract : "ç¾è®¢åå(èªå¨çæååææ¡£)" |
| | | qc_report_template ||--o{ qc_report_template_version : "å¤çæ¬" |
| | | qc_report_template_version ||--o{ qc_report_instance : "å»ç»åºä»¶çæ¬" |
| | | </pre> |
| | |
| | | KB4 -.-> KB5[ææªæ¥å
¥ä¸å¡é®çæµç¨Â·å¾
确认] |
| | | MODE[模åå±:éä¹åé®ä¸ºä¸»Â·é¢çDeepSeek/OpenAI/Ollamaæªå®ç°] --- O2 |
| | | NOTE[å
¨é¡¹ç®æ Function Calling·AIåªè¾åºç»æåJSONç±ä¸å¡ä¾§è§£æ] --- J2 |
| | | MODEL[模å管ç:æ¯ç±»åæ¯è½ååªå
许ä¸ä¸ªå¯ç¨Â·å¯ç¨å³èªå¨å
³éåç»å
¶ä»æ¨¡å·å表æç±»ååç»å±ç¤º] --> MODEL2[对è¯å text è½åå¯ç¨æ¨¡å·å¾çè¯å«å vision è½åå¯ç¨æ¨¡å·åéåºåå¯ç¨æ¨¡å] |
| | | MODEL2 -.-> O2 |
| | | MODEL2 -.-> W3 |
| | | MODEL2 -.-> KB3 |
| | | MODEL3[æªå¯ç¨å¯¹åºè½åæ¨¡åæ¶ç´æ¥æ¥éå¹¶æç¤ºå»æ¨¡å管çå¯ç¨Â·ä¸åéé»åé] --- MODEL2 |
| | | A1[ç©æç®¡çåä¸ä¼ ç©æCSV/XLSXâå建补å½ä¼è¯å¹¶ç»å®éä»¶] --> A2[Javaæ¡¥æ¥ææ:ç¨æ·token+æå¡ä»¤ç+mdm:item:import] |
| | | A2 --> A3[Pythonè§£æåé·è¯å«å
¬å¼/æ°åç¼ç /缺失åç±»æåä½] |
| | | A3 --> A4[Javaåªè¯»é¢æ£Â·åç±»åä½ç¼ç å卿§âCREATE/SKIP/BLOCKED+ç¡®å®æ§æè¦] |
| | |
| | | A6 --> A7[éè¡åæ§Â·SUCCESS/SKIPPED/FAILED+ç®æ ç©æID] |
| | | A6 --> A8[è¶
æ¶æä¸æâæ¥è¯¢å½ä»¤åæ§å¯¹è´¦Â·ä¸ç²ç®éè¯] |
| | | A9[åªæ°å»ºä¸æ´æ°Â·syncMes=false·ä¸è§¦åMES忥] --- A6 |
| | | AIENV[AI æ»å¼å
³ VITE_APP_AI_ENABLE=false] --> AHIDE[éè /ai 模åè·¯ç±ä¸å
¨é¨ä¸å¡ AI å
¥å£ï¼å票/æ¥ä»·è¯å«å½å
¥Â·åç±»é¢æµÂ·è´¨æ£å¤å®Â·è´¨æ£å©æÂ·æºè½ä½å¯¼å
¥] |
| | | AHIDE -.-> O6 |
| | | AHIDE -.-> Q4 |
| | | AHIDE -.-> J5 |
| | | AHIDE -.-> W11 |
| | | AHIDE -.-> A1 |
| | | AHIDE -.-> R2 |
| | | </pre> |
| | | |
| | | <script type="module"> |
| | |
| | | G -->|BPM审æ¹éè¿20| H[çæ ERP éå®è®¢å XSDD] |
| | | H -->|æäº¤BPM| I[éå®è®¢å审æ¹Â·å®¡æ¹ä¸15âå·²å®¡æ ¸20] |
| | | I -->|æç»éç产·èªå¨å建| J[MES 主ç产计å MPS] |
| | | I -->|审æ¹éè¿ä¸è®¢åæ å
³èåå·èªå¨çæè稿ååå¹¶ååå
³è| G2[åå HT·è稿0·å
³è订å] |
| | | I -.->|订åå·²å
³èåå·跳è¿èªå¨çæ| G2 |
| | | I --> K[åè´§éç¥å] |
| | | K -->|å®¡æ ¸éè¿| L[éå®åºåºå·OQCâæ£è´§âåè¿âåºåºå®æ] |
| | | L -->|åååºåºæ°éä¸ç¶æ| M[éå®è®¢å é¨ååºåº2/å
¨é¨åºåº3] |
| | |
| | | P0[éå®è®¢åæç» needProduction=1] -->|审æ¹éè¿èªå¨å建| P1[MPS 主ç产计å·è稿0âå·²ä¸å1] |
| | | P1 -->|ä¸åæåå¹¶ä¸å| P2[ç产工å·è稿0â已确认1] |
| | | P2 -->|æå·¥èºè·¯çº¿å·¥åºèªå¨çæ| P3[ç产任å¡ÃN·é¢å¤0âç产ä¸1âé¨å宿2â宿4Â·å¯æå9] |
| | | P2 -->|ç®æ:产åBOMÃ工忰é(åé路线产åºé¾/å·¥åBOM)| C0[å·¥åç©æéæ±åè¡¨Â·éæ±/å·²æ¶è/åä»·/éé¢Â·ä»·æ ¼ç¼ºå¤±æ è®°] |
| | | P3 --> P4[çäº§é¢æ æ 线边èæåºå¤æ] |
| | | P4 --> P5[æ¥å·¥æäº¤Â·è稿0] |
| | | P5 -->|æ ¡éª:ä¸ä¸éå·¥åºæªæ¥æ»¡åæ¦æª| P5 |
| | | P5 -->|å¯ç¨BPMåæäº¤å®¡æ¹| P6{æ¥å·¥å®¡æ¹} |
| | | P6 -->|驳å| P5 |
| | | P6 -->|éè¿Â·æè·¯ä¸å½±å审æ¹ç»æ| C1[éç®å·¥åç©æææ¬:æ å/å®é
/è¶
è/å®é
å使æ¬] |
| | | C1 --> C2{åæå®é
æ¶è>æ åç¨éÃ(1+éå¼%)?} |
| | | C2 -->|æ¯| C3[çæè¶
èæ¥è¦è®°å½+ç«å
ä¿¡éç¥æå®ç¨æ·Â·åå·¥ååç©æä»
䏿¬¡] |
| | | C2 -->|å¦| C4[ä»
æ´æ°ææ¬å段] |
| | | P6 -->|éè¿ä¸åå²å·¥åº| P7[æå·¥åBOMèªå¨çæç©ææ¶è·æ£çº¿è¾¹èæåºFIFOå
许è´åºå] |
| | | P6 -->|éè¿ä¸è´¨æ£å·¥åº| P8[产åºè¡å¾
æ£âIPQC è¿ç¨æ£éª] |
| | | P6 -->|éè¿ä¸éè´¨æ£å
³é®å·¥åº| P9[产å产åºç´æ¥å®å·¥å
¥åº] |
| | |
| | | P8 -->|ä¸åæ ¼| P11[NCR ä¸åæ ¼å] |
| | | P9 --> P12[è¿åº¦åå·ä»
æåä¸éå·¥åºæ¥å·¥ææ´æ°å·¥åå·²ç产æ°é] |
| | | P10 --> P12 |
| | | P12 -->|å·²ç产æ°éâ¥è®¡åæ°é·èªå¨| P13[å·¥å宿2] |
| | | P12 -->|å·²ç产æ°éâ¥è®¡åæ°é·èªå¨ æ äººå·¥å®æ(äººå·¥å®æé¡»å·²ç产æ°é>0·为0æ¦æª)| P16{该工åå·²ç»è®°çæ ·?} |
| | | P16 -->|å¦| P17[æ¦æªå®æÂ·å
å»çæ ·ç®¡çç»è®°] |
| | | P16 -->|æ¯| P13[å·¥å宿2Â·åæ¥å
³èMPSä¸ºå·²å®æå¹¶åå产éä¸å®ææ¥æ] |
| | | P12 -->|累计| P14[MPS ååå·²ç产æ°é并夿宿2] |
| | | P14 -->|å
¨é¨å®æ| P15[åå¸ ProductionFinishedEventâååéå®è®¢åçäº§ç¶æ] |
| | | P2 -.->|MPS å表| C5[MPS ææ¬æ è®¡åæ°éÃ·å·¥åæ°é åæå·¥åææ¬Â·å使æ¬ä¸åæ] |
| | |
| | | A2 -->|åæ ¼æ°é| Q5[æ¥å·¥è½¬å®æÂ·äº§åºæè¡å
¥åº] |
| | | A3 -->|宿| Q6[éå®åºåºåæ¨è¿å¾
æ£è´§] |
| | | A4 -->|宿| Q7[éè´§åæ¨è¿ä¸æ¶æå
¥åºÂ·å®ååè°ç»è®º] |
| | | S0[çæ ·ç®¡ç·æ°å¢çæ ·è®°å½] --> S1[mes_qc_retention_sample·ä¸å¼ å·¥å䏿¡Â·ç¼å· LY+yyyyMMdd+4使µæ°´] |
| | | S1 --> S2["éå®è®¢åç»å®ï¼MPS ä¸å以 MPS 为åï¼åå¹¶ä¸åå¤åå¿
é¡»æå®ï¼å®¢æ·è®¢åæ¥æºææ¥æºåå·æ ¡éªï¼åºåå¤è´§å¯ä¸ç»ï¼MPS è®°å½çéå®è®¢åå¨ç³»ç»ä¸ä¸å卿¶æç¤ºå¹¶é»æä¿å"] |
| | | S1 --> S3[çæ ·æ°éé»è®¤ 2 ä»¶Â·å°ææ¥æé»è®¤çæ ·æ¥æ+6个æ] |
| | | S1 -.->|å®å·¥åå¿
须已åå¨| SG{å·¥åå®å·¥æ ¡éªÂ·æå·¥å®æä¸æ¥å·¥è¾¾æ èªå¨å®å·¥ä¸è´} |
| | | SG -->|æªç»è®°| SE[æ¦æªå®å·¥Â·æç¤ºå
å»è´¨é管çâçæ ·ç®¡çç»è®°] |
| | | SG -->|å·²ç»è®°| SC[å
许å®å·¥Â·çº§è宿任å¡] |
| | | S1 --> S4[å·¥å已宿ä¸å
许å é¤çæ ·Â·å¯ä¿®æ¹] |
| | | N1[NCR å¾
è¯å®¡0] -->|è¯å®¡| N2[å·²è¯å®¡6] |
| | | N2 -->|å¤ç½®æ¹å¼:éè´§1æ¥åº2è¿å·¥3è®©æ¥æ¥æ¶4é级使ç¨5| N3[å·²å¤ç½®7] |
| | | N3 -->|å
³é| N4[å·²å
³é8] |
| | |
| | | PI[éè´æ¥ç¥¨] --> PA[仿¬¾å] |
| | | end |
| | | CT -->|generateSaleOrder 带å
¥å®¢æ·äº§åææ£å®é·ååorderId| SO |
| | | SO -->|审æ¹éè¿ä¸æ å
³èåå·èªå¨çæè稿åå·ååcontractId contractNo| CT |
| | | SO -->|审æ¹éè¿å¸¦å
¥ saleOrderId è¡ID æ°é å®¢æ· äº¤æ| MP |
| | | PO -->|确认æ¶è´§å¸¦å
¥è®¢åè¡ç©æä¾åºåæ°é| AN |
| | | AN -->|IQC宿åçæÂ·å¸¦å
¥åæ ¼è¡| IR |
| | |
| | | mes_pro_work_order ||--o{ mes_pro_task : "æå·¥åºæä»»å¡" |
| | | mes_pro_task ||--o{ mes_pro_feedback : "æ¥å·¥" |
| | | mes_pro_work_order ||--o{ mes_pro_work_order_bom : "å·¥åºææBOM" |
| | | mes_pro_work_order ||--o| mes_qc_retention_sample : "å®å·¥å¿
ç»çæ ·" |
| | | erp_sale_order ||--o{ mes_qc_retention_sample : "çæ ·å¯¹åºéå®è®¢å" |
| | | erp_purchase_request ||--o{ erp_purchase_order : "çæéè´è®¢å" |
| | | erp_purchase_order ||--o| mes_wm_arrival_notice : "确认æ¶è´§" |
| | | mes_wm_arrival_notice ||--o| mes_qc_iqc : "触åIQC" |
| | |
| | | erp_purchase_order ||--o{ erp_purchase_invoice : "æ¥ç¥¨" |
| | | erp_purchase_invoice ||--o{ erp_finance_payment : "仿¬¾" |
| | | hrm_employee ||--o| hrm_user_handover : "离èäº¤æ¥æ å°" |
| | | hrm_employee ||--o{ hrm_employee_contract : "ç¾è®¢åå(èªå¨çæååææ¡£)" |
| | | qc_report_template ||--o{ qc_report_template_version : "å¤çæ¬" |
| | | qc_report_template_version ||--o{ qc_report_instance : "å»ç»åºä»¶çæ¬" |
| | |
| | | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT 'æ¯å¦å é¤', |
| | | PRIMARY KEY (`id`) USING BTREE |
| | | ) ENGINE=InnoDB AUTO_INCREMENT=1065503 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='åå
¸æ°æ®è¡¨'; |
| | | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1,1,'ç·','1','system_user_sex',0,'primary','A','æ§å«ç·','admin','2021-01-05 17:03:48','1','2025-12-10 13:19:26',0x00),(2,2,'女','2','system_user_sex',0,'success','','æ§å«å¥³','admin','2021-01-05 17:03:48','1','2023-11-15 23:30:37',0x00),(8,1,'æ£å¸¸','1','infra_job_status',0,'success','','æ£å¸¸ç¶æ','admin','2021-01-05 17:03:48','1','2022-02-16 19:33:38',0x00),(9,2,'æå','2','infra_job_status',0,'danger','','åç¨ç¶æ','admin','2021-01-05 17:03:48','1','2022-02-16 19:33:45',0x00),(12,1,'ç³»ç»å
ç½®','1','infra_config_type',0,'danger','','åæ°ç±»å - ç³»ç»å
ç½®','admin','2021-01-05 17:03:48','1','2022-02-16 19:06:02',0x00),(13,2,'èªå®ä¹','2','infra_config_type',0,'primary','','åæ°ç±»å - èªå®ä¹','admin','2021-01-05 17:03:48','1','2022-02-16 19:06:07',0x00),(14,1,'éç¥','1','system_notice_type',0,'success','','éç¥','admin','2021-01-05 17:03:48','1','2022-02-16 13:05:57',0x00),(15,2,'å
¬å','2','system_notice_type',0,'info','','å
¬å','admin','2021-01-05 17:03:48','1','2022-02-16 13:06:01',0x00),(16,0,'å
¶å®','0','infra_operate_type',0,'default','','å
¶å®æä½','admin','2021-01-05 17:03:48','1','2024-03-14 12:44:19',0x00),(17,1,'æ¥è¯¢','1','infra_operate_type',0,'info','','æ¥è¯¢æä½','admin','2021-01-05 17:03:48','1','2024-03-14 12:44:20',0x00),(18,2,'æ°å¢','2','infra_operate_type',0,'primary','','æ°å¢æä½','admin','2021-01-05 17:03:48','1','2024-03-14 12:44:21',0x00),(19,3,'ä¿®æ¹','3','infra_operate_type',0,'warning','','ä¿®æ¹æä½','admin','2021-01-05 17:03:48','1','2024-03-14 12:44:22',0x00),(20,4,'å é¤','4','infra_operate_type',0,'danger','','å 餿ä½','admin','2021-01-05 17:03:48','1','2024-03-14 12:44:23',0x00),(22,5,'导åº','5','infra_operate_type',0,'default','','å¯¼åºæä½','admin','2021-01-05 17:03:48','1','2024-03-14 12:44:24',0x00),(23,6,'导å
¥','6','infra_operate_type',0,'default','','导å
¥æä½','admin','2021-01-05 17:03:48','1','2024-03-14 12:44:25',0x00),(27,1,'å¼å¯','0','common_status',0,'primary','','å¼å¯ç¶æ','admin','2021-01-05 17:03:48','1','2022-02-16 08:00:39',0x00),(28,2,'å
³é','1','common_status',0,'info','','å
³éç¶æ','admin','2021-01-05 17:03:48','1','2022-02-16 08:00:44',0x00),(29,1,'ç®å½','1','system_menu_type',0,'','','ç®å½','admin','2021-01-05 17:03:48','','2022-02-01 16:43:45',0x00),(30,2,'èå','2','system_menu_type',0,'','','èå','admin','2021-01-05 17:03:48','','2022-02-01 16:43:41',0x00),(31,3,'æé®','3','system_menu_type',0,'','','æé®','admin','2021-01-05 17:03:48','','2022-02-01 16:43:39',0x00),(32,1,'å
ç½®','1','system_role_type',0,'danger','','å
ç½®è§è²','admin','2021-01-05 17:03:48','1','2022-02-16 13:02:08',0x00),(33,2,'èªå®ä¹','2','system_role_type',0,'primary','','èªå®ä¹è§è²','admin','2021-01-05 17:03:48','1','2022-02-16 13:02:12',0x00),(34,1,'å
¨é¨æ°æ®æé','1','system_data_scope',0,'','','å
¨é¨æ°æ®æé','admin','2021-01-05 17:03:48','','2022-02-01 16:47:17',0x00),(35,2,'æå®é¨é¨æ°æ®æé','2','system_data_scope',0,'','','æå®é¨é¨æ°æ®æé','admin','2021-01-05 17:03:48','','2022-02-01 16:47:18',0x00),(36,3,'æ¬é¨é¨æ°æ®æé','3','system_data_scope',0,'','','æ¬é¨é¨æ°æ®æé','admin','2021-01-05 17:03:48','','2022-02-01 16:47:16',0x00),(37,4,'æ¬é¨é¨å以䏿°æ®æé','4','system_data_scope',0,'','','æ¬é¨é¨å以䏿°æ®æé','admin','2021-01-05 17:03:48','','2022-02-01 16:47:21',0x00),(38,5,'ä»
æ¬äººæ°æ®æé','5','system_data_scope',0,'','','ä»
æ¬äººæ°æ®æé','admin','2021-01-05 17:03:48','','2022-02-01 16:47:23',0x00),(39,0,'æå','0','system_login_result',0,'success','','ç»éç»æ - æå','','2021-01-18 06:17:36','1','2022-02-16 13:23:49',0x00),(40,10,'è´¦å·æå¯ç 䏿£ç¡®','10','system_login_result',0,'primary','','ç»éç»æ - è´¦å·æå¯ç 䏿£ç¡®','','2021-01-18 06:17:54','1','2022-02-16 13:24:27',0x00),(41,20,'ç¨æ·è¢«ç¦ç¨','20','system_login_result',0,'warning','','ç»éç»æ - ç¨æ·è¢«ç¦ç¨','','2021-01-18 06:17:54','1','2022-02-16 13:23:57',0x00),(42,30,'éªè¯ç ä¸åå¨','30','system_login_result',0,'info','','ç»éç»æ - éªè¯ç ä¸åå¨','','2021-01-18 06:17:54','1','2022-02-16 13:24:07',0x00),(43,31,'éªè¯ç 䏿£ç¡®','31','system_login_result',0,'info','','ç»éç»æ - éªè¯ç 䏿£ç¡®','','2021-01-18 06:17:54','1','2022-02-16 13:24:11',0x00),(44,100,'æªç¥å¼å¸¸','100','system_login_result',0,'danger','','ç»éç»æ - æªç¥å¼å¸¸','','2021-01-18 06:17:54','1','2022-02-16 13:24:23',0x00),(45,1,'æ¯','true','infra_boolean_string',0,'danger','','Boolean æ¯å¦ç±»å - æ¯','','2021-01-19 03:20:55','1','2022-03-15 23:01:45',0x00),(46,1,'å¦','false','infra_boolean_string',0,'info','','Boolean æ¯å¦ç±»å - å¦','','2021-01-19 03:20:55','1','2022-03-15 23:09:45',0x00),(50,1,'å表ï¼å¢å æ¹æ¥ï¼','1','infra_codegen_template_type',0,'','',NULL,'','2021-02-05 07:09:06','','2022-03-10 16:33:15',0x00),(51,2,'æ 表ï¼å¢å æ¹æ¥ï¼','2','infra_codegen_template_type',0,'','',NULL,'','2021-02-05 07:14:46','','2022-03-10 16:33:19',0x00),(53,0,'åå§åä¸','0','infra_job_status',0,'primary','',NULL,'','2021-02-07 07:46:49','1','2022-02-16 19:33:29',0x00),(57,0,'è¿è¡ä¸','0','infra_job_log_status',0,'primary','','RUNNING','','2021-02-08 10:04:24','1','2022-02-16 19:07:48',0x00),(58,1,'æå','1','infra_job_log_status',0,'success','',NULL,'','2021-02-08 10:06:57','1','2022-02-16 19:07:52',0x00),(59,2,'失败','2','infra_job_log_status',0,'warning','','失败','','2021-02-08 10:07:38','1','2022-02-16 19:07:56',0x00),(60,1,'ä¼å','1','user_type',0,'primary','',NULL,'','2021-02-26 00:16:27','1','2022-02-16 10:22:19',0x00),(61,2,'管çå','2','user_type',0,'success','',NULL,'','2021-02-26 00:16:34','1','2025-04-06 18:37:43',0x00),(62,0,'æªå¤ç','0','infra_api_error_log_process_status',0,'primary','',NULL,'','2021-02-26 07:07:19','1','2022-02-16 20:14:17',0x00),(63,1,'å·²å¤ç','1','infra_api_error_log_process_status',0,'success','',NULL,'','2021-02-26 07:07:26','1','2022-02-16 20:14:08',0x00),(64,2,'已忽ç¥','2','infra_api_error_log_process_status',0,'danger','',NULL,'','2021-02-26 07:07:34','1','2022-02-16 20:14:14',0x00),(66,1,'é¿éäº','ALIYUN','system_sms_channel_code',0,'primary','',NULL,'1','2021-04-05 01:05:26','1','2024-07-22 22:23:25',0x00),(67,1,'éªè¯ç ','1','system_sms_template_type',0,'warning','',NULL,'1','2021-04-05 21:50:57','1','2022-02-16 12:48:30',0x00),(68,2,'éç¥','2','system_sms_template_type',0,'primary','',NULL,'1','2021-04-05 21:51:08','1','2022-02-16 12:48:27',0x00),(69,0,'è¥é','3','system_sms_template_type',0,'danger','',NULL,'1','2021-04-05 21:51:15','1','2022-02-16 12:48:22',0x00),(70,0,'åå§å','0','system_sms_send_status',0,'primary','',NULL,'1','2021-04-11 20:18:33','1','2022-02-16 10:26:07',0x00),(71,1,'åéæå','10','system_sms_send_status',0,'success','',NULL,'1','2021-04-11 20:18:43','1','2022-02-16 10:25:56',0x00),(72,2,'åé失败','20','system_sms_send_status',0,'danger','',NULL,'1','2021-04-11 20:18:49','1','2022-02-16 10:26:03',0x00),(73,3,'ä¸åé','30','system_sms_send_status',0,'info','',NULL,'1','2021-04-11 20:19:44','1','2022-02-16 10:26:10',0x00),(74,0,'çå¾
ç»æ','0','system_sms_receive_status',0,'primary','',NULL,'1','2021-04-11 20:27:43','1','2022-02-16 10:28:24',0x00),(75,1,'æ¥æ¶æå','10','system_sms_receive_status',0,'success','',NULL,'1','2021-04-11 20:29:25','1','2022-02-16 10:28:28',0x00),(76,2,'æ¥æ¶å¤±è´¥','20','system_sms_receive_status',0,'danger','',NULL,'1','2021-04-11 20:29:31','1','2022-02-16 10:28:32',0x00),(77,0,'è°è¯(éé)','DEBUG_DING_TALK','system_sms_channel_code',0,'info','',NULL,'1','2021-04-13 00:20:37','1','2022-02-16 10:10:00',0x00),(80,100,'è´¦å·ç»å½','100','system_login_type',0,'primary','','è´¦å·ç»å½','1','2021-10-06 00:52:02','1','2022-02-16 13:11:34',0x00),(81,101,'社交ç»å½','101','system_login_type',0,'info','','社交ç»å½','1','2021-10-06 00:52:17','1','2022-02-16 13:11:40',0x00),(83,200,'主å¨ç»åº','200','system_login_type',0,'primary','','主å¨ç»åº','1','2021-10-06 00:52:58','1','2022-02-16 13:11:49',0x00),(85,202,'强å¶ç»åº','202','system_login_type',0,'danger','','强å¶éåº','1','2021-10-06 00:53:41','1','2022-02-16 13:11:57',0x00),(86,0,'ç
å','1','bpm_oa_leave_type',0,'primary','',NULL,'1','2021-09-21 22:35:28','1','2022-02-16 10:00:41',0x00),(87,1,'äºå','2','bpm_oa_leave_type',0,'info','',NULL,'1','2021-09-21 22:36:11','1','2022-02-16 10:00:49',0x00),(88,2,'å©å','3','bpm_oa_leave_type',0,'warning','',NULL,'1','2021-09-21 22:36:38','1','2022-02-16 10:00:53',0x00),(112,0,'微信 Wap ç½ç«æ¯ä»','wx_wap','pay_channel_code',0,'success','','微信 Wap ç½ç«æ¯ä»','1','2023-07-19 20:08:06','1','2023-07-19 20:09:08',0x00),(113,1,'微信å
¬ä¼å·æ¯ä»','wx_pub','pay_channel_code',0,'success','','微信å
¬ä¼å·æ¯ä»','1','2021-12-03 10:40:24','1','2023-07-19 20:08:47',0x00),(114,2,'微信å°ç¨åºæ¯ä»','wx_lite','pay_channel_code',0,'success','','微信å°ç¨åºæ¯ä»','1','2021-12-03 10:41:06','1','2023-07-19 20:08:50',0x00),(115,3,'微信 App æ¯ä»','wx_app','pay_channel_code',0,'success','','微信 App æ¯ä»','1','2021-12-03 10:41:20','1','2023-07-19 20:08:56',0x00),(116,10,'æ¯ä»å® PC ç½ç«æ¯ä»','alipay_pc','pay_channel_code',0,'primary','','æ¯ä»å® PC ç½ç«æ¯ä»','1','2021-12-03 10:42:09','1','2023-07-19 20:09:12',0x00),(117,11,'æ¯ä»å® Wap ç½ç«æ¯ä»','alipay_wap','pay_channel_code',0,'primary','','æ¯ä»å® Wap ç½ç«æ¯ä»','1','2021-12-03 10:42:26','1','2023-07-19 20:09:16',0x00),(118,12,'æ¯ä»å® App æ¯ä»','alipay_app','pay_channel_code',0,'primary','','æ¯ä»å® App æ¯ä»','1','2021-12-03 10:42:55','1','2023-07-19 20:09:20',0x00),(119,14,'æ¯ä»å®æ«ç æ¯ä»','alipay_qr','pay_channel_code',0,'primary','','æ¯ä»å®æ«ç æ¯ä»','1','2021-12-03 10:43:10','1','2023-07-19 20:09:28',0x00),(120,10,'éç¥æå','10','pay_notify_status',0,'success','','éç¥æå','1','2021-12-03 11:02:41','1','2023-07-19 10:08:19',0x00),(121,20,'éç¥å¤±è´¥','20','pay_notify_status',0,'danger','','éç¥å¤±è´¥','1','2021-12-03 11:02:59','1','2023-07-19 10:08:21',0x00),(122,0,'çå¾
éç¥','0','pay_notify_status',0,'info','','æªéç¥','1','2021-12-03 11:03:10','1','2023-07-19 10:08:24',0x00),(123,10,'æ¯ä»æå','10','pay_order_status',0,'success','','æ¯ä»æå','1','2021-12-03 11:18:29','1','2023-07-19 18:04:28',0x00),(124,30,'æ¯ä»å
³é','30','pay_order_status',0,'info','','æ¯ä»å
³é','1','2021-12-03 11:18:42','1','2023-07-19 18:05:07',0x00),(125,0,'çå¾
æ¯ä»','0','pay_order_status',0,'info','','æªæ¯ä»','1','2021-12-03 11:18:18','1','2023-07-19 18:04:15',0x00),(600,5,'é¦é¡µ','1','promotion_banner_position',0,'warning','','','1','2023-10-11 07:45:24','1','2023-10-11 07:45:38',0x00),(601,4,'ç§ææ´»å¨é¡µ','2','promotion_banner_position',0,'warning','','','1','2023-10-11 07:45:24','1','2023-10-11 07:45:38',0x00),(602,3,'ç ä»·æ´»å¨é¡µ','3','promotion_banner_position',0,'warning','','','1','2023-10-11 07:45:24','1','2023-10-11 07:45:38',0x00),(603,2,'éæ¶ææ£é¡µ','4','promotion_banner_position',0,'warning','','','1','2023-10-11 07:45:24','1','2023-10-11 07:45:38',0x00),(604,1,'满åé页','5','promotion_banner_position',0,'warning','','','1','2023-10-11 07:45:24','1','2023-10-11 07:45:38',0x00),(1118,0,'çå¾
鿬¾','0','pay_refund_status',0,'info','','çå¾
鿬¾','1','2021-12-10 16:44:59','1','2023-07-19 10:14:39',0x00),(1119,20,'鿬¾å¤±è´¥','20','pay_refund_status',0,'danger','','鿬¾å¤±è´¥','1','2021-12-10 16:45:10','1','2023-07-19 10:15:10',0x00),(1124,10,'鿬¾æå','10','pay_refund_status',0,'success','','鿬¾æå','1','2021-12-10 16:46:26','1','2023-07-19 10:15:00',0x00),(1127,1,'审æ¹ä¸','1','bpm_process_instance_status',0,'default','','æµç¨å®ä¾çç¶æ - è¿è¡ä¸','1','2022-01-07 23:47:22','1','2024-03-16 16:11:45',0x00),(1128,2,'审æ¹éè¿','2','bpm_process_instance_status',0,'success','','æµç¨å®ä¾çç¶æ - 已宿','1','2022-01-07 23:47:49','1','2024-03-16 16:11:54',0x00),(1129,1,'审æ¹ä¸','1','bpm_task_status',0,'primary','','æµç¨å®ä¾çç»æ - å¤çä¸','1','2022-01-07 23:48:32','1','2024-03-08 22:41:37',0x00),(1130,2,'审æ¹éè¿','2','bpm_task_status',0,'success','','æµç¨å®ä¾çç»æ - éè¿','1','2022-01-07 23:48:45','1','2024-03-08 22:41:38',0x00),(1131,3,'审æ¹ä¸éè¿','3','bpm_task_status',0,'danger','','æµç¨å®ä¾çç»æ - ä¸éè¿','1','2022-01-07 23:48:55','1','2024-03-08 22:41:38',0x00),(1132,4,'已忶','4','bpm_task_status',0,'info','','æµç¨å®ä¾çç»æ - æ¤é','1','2022-01-07 23:49:06','1','2024-03-08 22:41:39',0x00),(1133,10,'æµç¨è¡¨å','10','bpm_model_form_type',0,'','','æµç¨ç表åç±»å - æµç¨è¡¨å','103','2022-01-11 23:51:30','103','2022-01-11 23:51:30',0x00),(1134,20,'ä¸å¡è¡¨å','20','bpm_model_form_type',0,'','','æµç¨ç表åç±»å - ä¸å¡è¡¨å','103','2022-01-11 23:51:47','103','2022-01-11 23:51:47',0x00),(1135,10,'è§è²','10','bpm_task_candidate_strategy',0,'info','','ä»»å¡åé
è§åçç±»å - è§è²','103','2022-01-12 23:21:22','1','2024-03-06 02:53:16',0x00),(1136,20,'é¨é¨çæå','20','bpm_task_candidate_strategy',0,'primary','','ä»»å¡åé
è§åçç±»å - é¨é¨çæå','103','2022-01-12 23:21:47','1','2024-03-06 02:53:17',0x00),(1137,21,'é¨é¨çè´è´£äºº','21','bpm_task_candidate_strategy',0,'primary','','ä»»å¡åé
è§åçç±»å - é¨é¨çè´è´£äºº','103','2022-01-12 23:33:36','1','2024-03-06 02:53:18',0x00),(1138,30,'ç¨æ·','30','bpm_task_candidate_strategy',0,'info','','ä»»å¡åé
è§åçç±»å - ç¨æ·','103','2022-01-12 23:34:02','1','2024-03-06 02:53:19',0x00),(1139,40,'ç¨æ·ç»','40','bpm_task_candidate_strategy',0,'warning','','ä»»å¡åé
è§åçç±»å - ç¨æ·ç»','103','2022-01-12 23:34:21','1','2024-03-06 02:53:20',0x00),(1140,60,'æµç¨è¡¨è¾¾å¼','60','bpm_task_candidate_strategy',0,'danger','','ä»»å¡åé
è§åçç±»å - æµç¨è¡¨è¾¾å¼','103','2022-01-12 23:34:43','1','2024-03-06 02:53:20',0x00),(1141,22,'å²ä½','22','bpm_task_candidate_strategy',0,'success','','ä»»å¡åé
è§åçç±»å - å²ä½','103','2022-01-14 18:41:55','1','2024-03-06 02:53:21',0x00),(1145,1,'管çåå°','1','infra_codegen_scene',0,'','','代ç çæçåºæ¯æä¸¾ - 管çåå°','1','2022-02-02 13:15:06','1','2022-03-10 16:32:59',0x00),(1146,2,'ç¨æ· APP','2','infra_codegen_scene',0,'','','代ç çæçåºæ¯æä¸¾ - ç¨æ· APP','1','2022-02-02 13:15:19','1','2022-03-10 16:33:03',0x00),(1150,1,'æ°æ®åº','1','infra_file_storage',0,'default','',NULL,'1','2022-03-15 00:25:28','1','2022-03-15 00:25:28',0x00),(1151,10,'æ¬å°ç£ç','10','infra_file_storage',0,'default','',NULL,'1','2022-03-15 00:25:41','1','2022-03-15 00:25:56',0x00),(1152,11,'FTP æå¡å¨','11','infra_file_storage',0,'default','',NULL,'1','2022-03-15 00:26:06','1','2022-03-15 00:26:10',0x00),(1153,12,'SFTP æå¡å¨','12','infra_file_storage',0,'default','',NULL,'1','2022-03-15 00:26:22','1','2022-03-15 00:26:22',0x00),(1154,20,'S3 对象åå¨','20','infra_file_storage',0,'default','',NULL,'1','2022-03-15 00:26:31','1','2022-03-15 00:26:45',0x00),(1155,103,'çä¿¡ç»å½','103','system_login_type',0,'default','',NULL,'1','2022-05-09 23:57:58','1','2022-05-09 23:58:09',0x00),(1156,1,'password','password','system_oauth2_grant_type',0,'default','','å¯ç 模å¼','1','2022-05-12 00:22:05','1','2022-05-11 16:26:01',0x00),(1157,2,'authorization_code','authorization_code','system_oauth2_grant_type',0,'primary','','ææç 模å¼','1','2022-05-12 00:22:59','1','2022-05-11 16:26:02',0x00),(1158,3,'implicit','implicit','system_oauth2_grant_type',0,'success','','ç®å模å¼','1','2022-05-12 00:23:40','1','2022-05-11 16:26:05',0x00),(1159,4,'client_credentials','client_credentials','system_oauth2_grant_type',0,'default','','客æ·ç«¯æ¨¡å¼','1','2022-05-12 00:23:51','1','2022-05-11 16:26:08',0x00),(1160,5,'refresh_token','refresh_token','system_oauth2_grant_type',0,'info','','å·æ°æ¨¡å¼','1','2022-05-12 00:24:02','1','2022-05-11 16:26:11',0x00),(1162,1,'éå®ä¸','1','product_spu_status',0,'success','','åå SPU ç¶æ - éå®ä¸','1','2022-10-24 21:19:47','1','2022-10-24 21:20:38',0x00),(1163,0,'ä»åºä¸','0','product_spu_status',0,'info','','åå SPU ç¶æ - ä»åºä¸','1','2022-10-24 21:20:54','1','2022-10-24 21:21:22',0x00),(1164,0,'åæ¶ç«','-1','product_spu_status',0,'default','','åå SPU ç¶æ - åæ¶ç«','1','2022-10-24 21:21:11','1','2022-10-24 21:21:11',0x00),(1165,1,'满å','1','promotion_discount_type',0,'success','','伿 ç±»å - 满å','1','2022-11-01 12:46:41','1','2022-11-01 12:50:11',0x00),(1166,2,'ææ£','2','promotion_discount_type',0,'primary','','伿 ç±»å - ææ£','1','2022-11-01 12:46:51','1','2022-11-01 12:50:08',0x00),(1167,1,'åºå®æ¥æ','1','promotion_coupon_template_validity_type',0,'default','','伿 嵿¨¡æ¿çæéæç±»å - åºå®æ¥æ','1','2022-11-02 00:07:34','1','2022-11-04 00:07:49',0x00),(1168,2,'é¢åä¹å','2','promotion_coupon_template_validity_type',0,'default','','伿 嵿¨¡æ¿çæéæç±»å - é¢åä¹å','1','2022-11-02 00:07:54','1','2022-11-04 00:07:52',0x00),(1169,1,'éç¨åµ','1','promotion_product_scope',0,'default','','è¥éçååèå´ - å
¨é¨åååä¸','1','2022-11-02 00:28:22','1','2023-09-28 00:27:42',0x00),(1170,2,'åååµ','2','promotion_product_scope',0,'default','','è¥éçååèå´ - æå®åååä¸','1','2022-11-02 00:28:34','1','2023-09-28 00:27:44',0x00),(1171,1,'æªä½¿ç¨','1','promotion_coupon_status',0,'primary','','伿 åµçç¶æ - å·²é¢å','1','2022-11-04 00:15:08','1','2023-10-03 12:54:38',0x00),(1172,2,'已使ç¨','2','promotion_coupon_status',0,'success','','伿 åµçç¶æ - 已使ç¨','1','2022-11-04 00:15:21','1','2022-11-04 19:16:08',0x00),(1173,3,'å·²è¿æ','3','promotion_coupon_status',0,'info','','伿 åµçç¶æ - å·²è¿æ','1','2022-11-04 00:15:43','1','2022-11-04 19:16:12',0x00),(1174,1,'ç´æ¥é¢å','1','promotion_coupon_take_type',0,'primary','','伿 åµçé¢åæ¹å¼ - ç´æ¥é¢å','1','2022-11-04 19:13:00','1','2022-11-04 19:13:25',0x00),(1175,2,'æå®åæ¾','2','promotion_coupon_take_type',0,'success','','伿 åµçé¢åæ¹å¼ - æå®åæ¾','1','2022-11-04 19:13:13','1','2022-11-04 19:14:48',0x00),(1176,10,'æªå¼å§','10','promotion_activity_status',0,'primary','','ä¿éæ´»å¨çç¶ææä¸¾ - æªå¼å§','1','2022-11-04 22:54:49','1','2022-11-04 22:55:53',0x00),(1177,20,'è¿è¡ä¸','20','promotion_activity_status',0,'success','','ä¿éæ´»å¨çç¶ææä¸¾ - è¿è¡ä¸','1','2022-11-04 22:55:06','1','2022-11-04 22:55:20',0x00),(1178,30,'å·²ç»æ','30','promotion_activity_status',0,'info','','ä¿éæ´»å¨çç¶ææä¸¾ - å·²ç»æ','1','2022-11-04 22:55:41','1','2022-11-04 22:55:41',0x00),(1179,40,'å·²å
³é','40','promotion_activity_status',0,'warning','','ä¿éæ´»å¨çç¶ææä¸¾ - å·²å
³é','1','2022-11-04 22:56:10','1','2022-11-04 22:56:18',0x00),(1180,10,'满 N å
','10','promotion_condition_type',0,'primary','','è¥éçæ¡ä»¶ç±»å - 满 N å
','1','2022-11-04 22:59:45','1','2022-11-04 22:59:45',0x00),(1181,20,'满 N ä»¶','20','promotion_condition_type',0,'success','','è¥éçæ¡ä»¶ç±»å - 满 N ä»¶','1','2022-11-04 23:00:02','1','2022-11-04 23:00:02',0x00),(1182,10,'ç³è¯·å®å','10','trade_after_sale_status',0,'primary','','交æå®åç¶æ - ç³è¯·å®å','1','2022-11-19 20:53:33','1','2022-11-19 20:54:42',0x00),(1183,20,'ååå¾
éè´§','20','trade_after_sale_status',0,'primary','','交æå®åç¶æ - ååå¾
éè´§','1','2022-11-19 20:54:36','1','2022-11-19 20:58:58',0x00),(1184,30,'åå®¶å¾
æ¶è´§','30','trade_after_sale_status',0,'primary','','交æå®åç¶æ - åå®¶å¾
æ¶è´§','1','2022-11-19 20:56:56','1','2022-11-19 20:59:20',0x00),(1185,40,'çå¾
鿬¾','40','trade_after_sale_status',0,'primary','','交æå®åç¶æ - çå¾
鿬¾','1','2022-11-19 20:59:54','1','2022-11-19 21:00:01',0x00),(1186,50,'鿬¾æå','50','trade_after_sale_status',0,'default','','交æå®åç¶æ - 鿬¾æå','1','2022-11-19 21:00:33','1','2022-11-19 21:00:33',0x00),(1187,61,'ä¹°å®¶åæ¶','61','trade_after_sale_status',0,'info','','交æå®åç¶æ - ä¹°å®¶åæ¶','1','2022-11-19 21:01:29','1','2022-11-19 21:01:29',0x00),(1188,62,'åå®¶æç»','62','trade_after_sale_status',0,'info','','交æå®åç¶æ - åå®¶æç»','1','2022-11-19 21:02:17','1','2022-11-19 21:02:17',0x00),(1189,63,'åå®¶ææ¶è´§','63','trade_after_sale_status',0,'info','','交æå®åç¶æ - åå®¶ææ¶è´§','1','2022-11-19 21:02:37','1','2022-11-19 21:03:07',0x00),(1190,10,'å®ä¸é款','10','trade_after_sale_type',0,'success','','交æå®åçç±»å - å®ä¸é款','1','2022-11-19 21:05:05','1','2022-11-19 21:38:23',0x00),(1191,20,'å®å鿬¾','20','trade_after_sale_type',0,'primary','','交æå®åçç±»å - å®å鿬¾','1','2022-11-19 21:05:32','1','2022-11-19 21:38:32',0x00),(1192,10,'ä»
鿬¾','10','trade_after_sale_way',0,'primary','','交æå®åçæ¹å¼ - ä»
鿬¾','1','2022-11-19 21:39:19','1','2022-11-19 21:39:19',0x00),(1193,20,'éè´§éæ¬¾','20','trade_after_sale_way',0,'success','','交æå®åçæ¹å¼ - éè´§éæ¬¾','1','2022-11-19 21:39:38','1','2022-11-19 21:39:49',0x00),(1194,10,'微信å°ç¨åº','10','terminal',0,'default','','ç»ç«¯ - 微信å°ç¨åº','1','2022-12-10 10:51:11','1','2022-12-10 10:51:57',0x00),(1195,20,'H5 ç½é¡µ','20','terminal',0,'default','','ç»ç«¯ - H5 ç½é¡µ','1','2022-12-10 10:51:30','1','2022-12-10 10:51:59',0x00),(1196,11,'微信å
¬ä¼å·','11','terminal',0,'default','','ç»ç«¯ - 微信å
¬ä¼å·','1','2022-12-10 10:54:16','1','2022-12-10 10:52:01',0x00),(1197,31,'è¹æ App','31','terminal',0,'default','','ç»ç«¯ - è¹æ App','1','2022-12-10 10:54:42','1','2022-12-10 10:52:18',0x00),(1198,32,'å®å App','32','terminal',0,'default','','ç»ç«¯ - å®å App','1','2022-12-10 10:55:02','1','2022-12-10 10:59:17',0x00),(1199,0,'æ®é订å','0','trade_order_type',0,'default','','交æè®¢åçç±»å - æ®é订å','1','2022-12-10 16:34:14','1','2022-12-10 16:34:14',0x00),(1200,1,'ç§æè®¢å','1','trade_order_type',0,'default','','交æè®¢åçç±»å - ç§æè®¢å','1','2022-12-10 16:34:26','1','2022-12-10 16:34:26',0x00),(1201,2,'ç 价订å','2','trade_order_type',0,'default','','交æè®¢åçç±»å - æ¼å¢è®¢å','1','2022-12-10 16:34:36','1','2024-09-07 14:18:39',0x00),(1202,3,'æ¼å¢è®¢å','3','trade_order_type',0,'default','','交æè®¢åçç±»å - ç 价订å','1','2022-12-10 16:34:48','1','2024-09-07 14:18:32',0x00),(1203,0,'å¾
æ¯ä»','0','trade_order_status',0,'default','','交æè®¢åç¶æ - å¾
æ¯ä»','1','2022-12-10 16:49:29','1','2022-12-10 16:49:29',0x00),(1204,10,'å¾
åè´§','10','trade_order_status',0,'primary','','交æè®¢åç¶æ - å¾
åè´§','1','2022-12-10 16:49:53','1','2022-12-10 16:51:17',0x00),(1205,20,'å·²åè´§','20','trade_order_status',0,'primary','','交æè®¢åç¶æ - å·²åè´§','1','2022-12-10 16:50:13','1','2022-12-10 16:51:31',0x00),(1206,30,'已宿','30','trade_order_status',0,'success','','交æè®¢åç¶æ - 已宿','1','2022-12-10 16:50:30','1','2022-12-10 16:51:06',0x00),(1207,40,'已忶','40','trade_order_status',0,'danger','','交æè®¢åç¶æ - 已忶','1','2022-12-10 16:50:50','1','2022-12-10 16:51:00',0x00),(1208,0,'æªå®å','0','trade_order_item_after_sale_status',0,'info','','交æè®¢å项çå®åç¶æ - æªå®å','1','2022-12-10 20:58:42','1','2022-12-10 20:59:29',0x00),(1209,10,'å®åä¸','10','trade_order_item_after_sale_status',0,'primary','','交æè®¢å项çå®åç¶æ - å®åä¸','1','2022-12-10 20:59:21','1','2024-07-21 17:01:24',0x00),(1210,20,'已鿬¾','20','trade_order_item_after_sale_status',0,'success','','交æè®¢å项çå®åç¶æ - 已鿬¾','1','2022-12-10 20:59:46','1','2024-07-21 17:01:35',0x00),(1211,1,'å®å
¨å¹é
','1','mp_auto_reply_request_match',0,'primary','','å
¬ä¼å·èªå¨åå¤ç请æ±å
³é®åå¹é
æ¨¡å¼ - å®å
¨å¹é
','1','2023-01-16 23:30:39','1','2023-01-16 23:31:00',0x00),(1212,2,'åå¹é
','2','mp_auto_reply_request_match',0,'success','','å
¬ä¼å·èªå¨åå¤ç请æ±å
³é®åå¹é
æ¨¡å¼ - åå¹é
','1','2023-01-16 23:30:55','1','2023-01-16 23:31:10',0x00),(1213,1,'ææ¬','text','mp_message_type',0,'default','','å
¬ä¼å·çæ¶æ¯ç±»å - ææ¬','1','2023-01-17 22:17:32','1','2023-01-17 22:17:39',0x00),(1214,2,'å¾ç','image','mp_message_type',0,'default','','å
¬ä¼å·çæ¶æ¯ç±»å - å¾ç','1','2023-01-17 22:17:32','1','2023-01-17 14:19:47',0x00),(1215,3,'è¯é³','voice','mp_message_type',0,'default','','å
¬ä¼å·çæ¶æ¯ç±»å - è¯é³','1','2023-01-17 22:17:32','1','2023-01-17 14:20:08',0x00),(1216,4,'è§é¢','video','mp_message_type',0,'default','','å
¬ä¼å·çæ¶æ¯ç±»å - è§é¢','1','2023-01-17 22:17:32','1','2023-01-17 14:21:08',0x00),(1217,5,'å°è§é¢','shortvideo','mp_message_type',0,'default','','å
¬ä¼å·çæ¶æ¯ç±»å - å°è§é¢','1','2023-01-17 22:17:32','1','2023-01-17 14:19:59',0x00),(1218,6,'徿','news','mp_message_type',0,'default','','å
¬ä¼å·çæ¶æ¯ç±»å - 徿','1','2023-01-17 22:17:32','1','2023-01-17 14:22:54',0x00),(1219,7,'é³ä¹','music','mp_message_type',0,'default','','å
¬ä¼å·çæ¶æ¯ç±»å - é³ä¹','1','2023-01-17 22:17:32','1','2023-01-17 14:22:54',0x00),(1220,8,'å°çä½ç½®','location','mp_message_type',0,'default','','å
¬ä¼å·çæ¶æ¯ç±»å - å°çä½ç½®','1','2023-01-17 22:17:32','1','2023-01-17 14:23:51',0x00),(1221,9,'龿¥','link','mp_message_type',0,'default','','å
¬ä¼å·çæ¶æ¯ç±»å - 龿¥','1','2023-01-17 22:17:32','1','2023-01-17 14:24:49',0x00),(1222,10,'äºä»¶','event','mp_message_type',0,'default','','å
¬ä¼å·çæ¶æ¯ç±»å - äºä»¶','1','2023-01-17 22:17:32','1','2023-01-17 14:24:49',0x00),(1223,0,'åå§å','0','system_mail_send_status',0,'primary','','é®ä»¶åéç¶æ - åå§å\n','1','2023-01-26 09:53:49','1','2023-01-26 16:36:14',0x00),(1224,10,'åéæå','10','system_mail_send_status',0,'success','','é®ä»¶åéç¶æ - åéæå','1','2023-01-26 09:54:28','1','2023-01-26 16:36:22',0x00),(1225,20,'åé失败','20','system_mail_send_status',0,'danger','','é®ä»¶åéç¶æ - åé失败','1','2023-01-26 09:54:50','1','2023-01-26 16:36:26',0x00),(1226,30,'ä¸åé','30','system_mail_send_status',0,'info','','é®ä»¶åéç¶æ - ä¸åé','1','2023-01-26 09:55:06','1','2023-01-26 16:36:36',0x00),(1227,1,'éç¥å
¬å','1','system_notify_template_type',0,'primary','','ç«å
信模ççç±»å - éç¥å
¬å','1','2023-01-28 10:35:59','1','2023-01-28 10:35:59',0x00),(1228,2,'ç³»ç»æ¶æ¯','2','system_notify_template_type',0,'success','','ç«å
信模ççç±»å - ç³»ç»æ¶æ¯','1','2023-01-28 10:36:20','1','2023-01-28 10:36:25',0x00),(1230,13,'æ¯ä»å®æ¡ç æ¯ä»','alipay_bar','pay_channel_code',0,'primary','','æ¯ä»å®æ¡ç æ¯ä»','1','2023-02-18 23:32:24','1','2023-07-19 20:09:23',0x00),(1231,10,'Vue2 Element UI æ 忍¡ç','10','infra_codegen_front_type',0,'','','','1','2023-04-13 00:03:55','1','2023-04-13 00:03:55',0x00),(1232,20,'Vue3 Element Plus æ 忍¡ç','20','infra_codegen_front_type',0,'','','','1','2023-04-13 00:04:08','1','2023-04-13 00:04:08',0x00),(1234,30,'Vben2.0 Ant Design Schema 模ç','30','infra_codegen_front_type',1,'','','','1','2023-04-13 00:04:26','1','2025-07-27 10:55:14',0x00),(1244,0,'æä»¶','1','trade_delivery_express_charge_mode',0,'','','','1','2023-05-21 22:46:40','1','2023-05-21 22:46:40',0x00),(1245,1,'æéé','2','trade_delivery_express_charge_mode',0,'','','','1','2023-05-21 22:46:58','1','2023-05-21 22:46:58',0x00),(1246,2,'æä½ç§¯','3','trade_delivery_express_charge_mode',0,'','','','1','2023-05-21 22:47:18','1','2023-05-21 22:47:18',0x00),(1335,11,'订åç§¯åæµæ£','11','member_point_biz_type',0,'','','','1','2023-06-10 12:15:27','1','2023-10-11 07:41:43',0x00),(1336,1,'ç¾å°','1','member_point_biz_type',0,'','','','1','2023-06-10 12:15:48','1','2023-08-20 11:59:53',0x00),(1341,20,'已鿬¾','20','pay_order_status',0,'danger','','已鿬¾','1','2023-07-19 18:05:37','1','2023-07-19 18:05:37',0x00),(1342,21,'è¯·æ±æåï¼ä½æ¯ç»æå¤±è´¥','21','pay_notify_status',0,'warning','','è¯·æ±æåï¼ä½æ¯ç»æå¤±è´¥','1','2023-07-19 18:10:47','1','2023-07-19 18:11:38',0x00),(1343,22,'请æ±å¤±è´¥','22','pay_notify_status',0,'warning','',NULL,'1','2023-07-19 18:11:05','1','2023-07-19 18:11:27',0x00),(1344,4,'微信æ«ç æ¯ä»','wx_native','pay_channel_code',0,'success','','微信æ«ç æ¯ä»','1','2023-07-19 20:07:47','1','2023-07-19 20:09:03',0x00),(1345,5,'微信æ¡ç æ¯ä»','wx_bar','pay_channel_code',0,'success','','微信æ¡ç æ¯ä»\n','1','2023-07-19 20:08:06','1','2023-07-19 20:09:08',0x00),(1346,1,'æ¯ä»å','1','pay_notify_type',0,'primary','','æ¯ä»å','1','2023-07-20 12:23:17','1','2023-07-20 12:23:17',0x00),(1347,2,'鿬¾å','2','pay_notify_type',0,'danger','',NULL,'1','2023-07-20 12:23:26','1','2023-07-20 12:23:26',0x00),(1348,20,'æ¨¡ææ¯ä»','mock','pay_channel_code',0,'default','','æ¨¡ææ¯ä»','1','2023-07-29 11:10:51','1','2023-07-29 03:14:10',0x00),(1349,12,'订åç§¯åæµæ£ï¼æ´ååæ¶ï¼','12','member_point_biz_type',0,'','','','1','2023-08-20 12:00:03','1','2023-10-11 07:42:01',0x00),(1350,0,'管çåè°æ´','0','member_experience_biz_type',0,'','',NULL,'','2023-08-22 12:41:01','','2023-08-22 12:41:01',0x00),(1351,1,'éæ°å¥å±','1','member_experience_biz_type',0,'','',NULL,'','2023-08-22 12:41:01','','2023-08-22 12:41:01',0x00),(1352,11,'ä¸åå¥å±','11','member_experience_biz_type',0,'success','',NULL,'','2023-08-22 12:41:01','1','2023-10-11 07:45:09',0x00),(1353,12,'ä¸åå¥å±ï¼æ´ååæ¶ï¼','12','member_experience_biz_type',0,'warning','',NULL,'','2023-08-22 12:41:01','1','2023-10-11 07:45:01',0x00),(1354,4,'ç¾å°å¥å±','4','member_experience_biz_type',0,'','',NULL,'','2023-08-22 12:41:01','','2023-08-22 12:41:01',0x00),(1355,5,'æ½å¥å¥å±','5','member_experience_biz_type',0,'','',NULL,'','2023-08-22 12:41:01','','2023-08-22 12:41:01',0x00),(1356,1,'å¿«éåè´§','1','trade_delivery_type',0,'','','','1','2023-08-23 00:04:55','1','2023-08-23 00:04:55',0x00),(1357,2,'ç¨æ·èªæ','2','trade_delivery_type',0,'','','','1','2023-08-23 00:05:05','1','2023-08-23 00:05:05',0x00),(1358,3,'åç±»åµ','3','promotion_product_scope',0,'default','','','1','2023-09-01 23:43:07','1','2023-09-28 00:27:47',0x00),(1359,1,'人人åé','1','brokerage_enabled_condition',0,'','','ææç¨æ·é½å¯ä»¥åé','','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1360,2,'æå®åé','2','brokerage_enabled_condition',0,'','','ä»
å¯åå°æå¨è®¾ç½®æ¨å¹¿å','','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1361,1,'馿¬¡ç»å®','1','brokerage_bind_mode',0,'','','åªè¦ç¨æ·æ²¡ææ¨å¹¿äººï¼éæ¶é½å¯ä»¥ç»å®æ¨å¹¿å
³ç³»','','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1362,2,'注åç»å®','2','brokerage_bind_mode',0,'','','ä»
æ°ç¨æ·æ³¨åæ¶æè½ç»å®æ¨å¹¿å
³ç³»','','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1363,3,'è¦çç»å®','3','brokerage_bind_mode',0,'','','å¦æç¨æ·å·²ç»ææ¨å¹¿äººï¼æ¨å¹¿äººä¼è¢«åæ´','','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1364,1,'é±å
','1','brokerage_withdraw_type',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1365,2,'é¶è¡å¡','2','brokerage_withdraw_type',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1366,3,'å¾®ä¿¡æ¶æ¬¾ç ','3','brokerage_withdraw_type',0,'','','æå¨ææ¬¾','','2023-09-28 02:46:05','1','2025-05-10 08:24:25',0x00),(1367,4,'æ¯ä»å®æ¶æ¬¾ç ','4','brokerage_withdraw_type',0,'','','æå¨ææ¬¾','','2023-09-28 02:46:05','1','2025-05-10 08:24:37',0x00),(1368,1,'订åè¿ä½£','1','brokerage_record_biz_type',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1369,2,'ç³è¯·æç°','2','brokerage_record_biz_type',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1370,3,'ç³è¯·æç°é©³å','3','brokerage_record_biz_type',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1371,0,'å¾
ç»ç®','0','brokerage_record_status',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1372,1,'å·²ç»ç®','1','brokerage_record_status',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1373,2,'已忶','2','brokerage_record_status',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1374,0,'å®¡æ ¸ä¸','0','brokerage_withdraw_status',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1375,10,'å®¡æ ¸éè¿','10','brokerage_withdraw_status',0,'success','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1376,11,'æç°æå','11','brokerage_withdraw_status',0,'success','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1377,20,'å®¡æ ¸ä¸éè¿','20','brokerage_withdraw_status',0,'danger','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1378,21,'æç°å¤±è´¥','21','brokerage_withdraw_status',0,'danger','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1379,0,'å·¥åé¶è¡','0','brokerage_bank_name',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1380,1,'建设é¶è¡','1','brokerage_bank_name',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1381,2,'åä¸é¶è¡','2','brokerage_bank_name',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1382,3,'ä¸å½é¶è¡','3','brokerage_bank_name',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1383,4,'交éé¶è¡','4','brokerage_bank_name',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1384,5,'æåé¶è¡','5','brokerage_bank_name',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1385,21,'é±å
','wallet','pay_channel_code',0,'primary','','','1','2023-10-01 21:46:19','1','2023-10-01 21:48:01',0x00),(1386,1,'ç ä»·ä¸','1','promotion_bargain_record_status',0,'default','','','1','2023-10-05 10:41:26','1','2023-10-05 10:41:26',0x00),(1387,2,'ç ä»·æå','2','promotion_bargain_record_status',0,'success','','','1','2023-10-05 10:41:39','1','2023-10-05 10:41:39',0x00),(1388,3,'ç 价失败','3','promotion_bargain_record_status',0,'warning','','','1','2023-10-05 10:41:57','1','2023-10-05 10:41:57',0x00),(1389,0,'æ¼å¢ä¸','0','promotion_combination_record_status',0,'','','','1','2023-10-08 07:24:44','1','2024-10-13 10:08:17',0x00),(1390,1,'æ¼å¢æå','1','promotion_combination_record_status',0,'success','','','1','2023-10-08 07:24:56','1','2024-10-13 10:08:20',0x00),(1391,2,'æ¼å¢å¤±è´¥','2','promotion_combination_record_status',0,'warning','','','1','2023-10-08 07:25:11','1','2024-10-13 10:08:24',0x00),(1392,2,'管çåä¿®æ¹','2','member_point_biz_type',0,'default','','','1','2023-10-11 07:41:34','1','2023-10-11 07:41:34',0x00),(1393,13,'订åç§¯åæµæ£ï¼åä¸ªéæ¬¾ï¼','13','member_point_biz_type',0,'','','','1','2023-10-11 07:42:29','1','2023-10-11 07:42:29',0x00),(1394,21,'订å积åå¥å±','21','member_point_biz_type',0,'default','','','1','2023-10-11 07:42:44','1','2023-10-11 07:42:44',0x00),(1395,22,'订å积åå¥å±ï¼æ´ååæ¶ï¼','22','member_point_biz_type',0,'default','','','1','2023-10-11 07:42:55','1','2023-10-11 07:43:01',0x00),(1396,23,'订å积åå¥å±ï¼åä¸ªéæ¬¾ï¼','23','member_point_biz_type',0,'default','','','1','2023-10-11 07:43:16','1','2023-10-11 07:43:16',0x00),(1397,13,'ä¸åå¥å±ï¼åä¸ªéæ¬¾ï¼','13','member_experience_biz_type',0,'warning','','','1','2023-10-11 07:45:24','1','2023-10-11 07:45:38',0x00),(1398,5,'ç½ä¸è½¬è´¦','5','crm_receivable_return_type',0,'default','','','1','2023-10-18 21:55:24','1','2023-10-18 21:55:24',0x00),(1399,6,'æ¯ä»å®','6','crm_receivable_return_type',0,'default','','','1','2023-10-18 21:55:38','1','2023-10-18 21:55:38',0x00),(1400,7,'微信æ¯ä»','7','crm_receivable_return_type',0,'default','','','1','2023-10-18 21:55:53','1','2023-10-18 21:55:53',0x00),(1401,8,'å
¶ä»','8','crm_receivable_return_type',0,'default','','','1','2023-10-18 21:56:06','1','2023-10-18 21:56:06',0x00),(1402,1,'IT','1','crm_customer_industry',0,'default','','','1','2023-10-28 23:02:15','1','2024-02-18 23:30:38',0x00),(1403,2,'éèä¸','2','crm_customer_industry',0,'default','','','1','2023-10-28 23:02:29','1','2024-02-18 23:30:43',0x00),(1404,3,'æ¿å°äº§','3','crm_customer_industry',0,'default','','','1','2023-10-28 23:02:41','1','2024-02-18 23:30:48',0x00),(1405,4,'å䏿å¡','4','crm_customer_industry',0,'default','','','1','2023-10-28 23:02:54','1','2024-02-18 23:30:54',0x00),(1406,5,'è¿è¾/ç©æµ','5','crm_customer_industry',0,'default','','','1','2023-10-28 23:03:03','1','2024-02-18 23:31:00',0x00),(1407,6,'ç产','6','crm_customer_industry',0,'default','','','1','2023-10-28 23:03:13','1','2024-02-18 23:31:08',0x00),(1408,7,'æ¿åº','7','crm_customer_industry',0,'default','','','1','2023-10-28 23:03:27','1','2024-02-18 23:31:13',0x00),(1409,8,'æåä¼ åª','8','crm_customer_industry',0,'default','','','1','2023-10-28 23:03:37','1','2024-02-18 23:31:20',0x00),(1422,1,'A ï¼éç¹å®¢æ·ï¼','1','crm_customer_level',0,'primary','','','1','2023-10-28 23:07:13','1','2023-10-28 23:07:13',0x00),(1423,2,'B ï¼æ®é客æ·ï¼','2','crm_customer_level',0,'info','','','1','2023-10-28 23:07:35','1','2023-10-28 23:07:35',0x00),(1424,3,'C ï¼éä¼å
客æ·ï¼','3','crm_customer_level',0,'default','','','1','2023-10-28 23:07:53','1','2023-10-28 23:07:53',0x00),(1425,1,'ä¿é','1','crm_customer_source',0,'default','','','1','2023-10-28 23:08:29','1','2023-10-28 23:08:29',0x00),(1426,2,'æç´¢å¼æ','2','crm_customer_source',0,'default','','','1','2023-10-28 23:08:39','1','2023-10-28 23:08:39',0x00),(1427,3,'广å','3','crm_customer_source',0,'default','','','1','2023-10-28 23:08:47','1','2023-10-28 23:08:47',0x00),(1428,4,'转ä»ç»','4','crm_customer_source',0,'default','','','1','2023-10-28 23:08:58','1','2023-10-28 23:08:58',0x00),(1429,5,'çº¿ä¸æ³¨å','5','crm_customer_source',0,'default','','','1','2023-10-28 23:09:12','1','2023-10-28 23:09:12',0x00),(1430,6,'线ä¸å¨è¯¢','6','crm_customer_source',0,'default','','','1','2023-10-28 23:09:22','1','2023-10-28 23:09:22',0x00),(1431,7,'é¢çº¦ä¸é¨','7','crm_customer_source',0,'default','','','1','2023-10-28 23:09:39','1','2023-10-28 23:09:39',0x00),(1432,8,'éæ','8','crm_customer_source',0,'default','','','1','2023-10-28 23:10:04','1','2023-10-28 23:10:04',0x00),(1433,9,'çµè¯å¨è¯¢','9','crm_customer_source',0,'default','','','1','2023-10-28 23:10:18','1','2023-10-28 23:10:18',0x00),(1434,10,'é®ä»¶å¨è¯¢','10','crm_customer_source',0,'default','','','1','2023-10-28 23:10:33','1','2023-10-28 23:10:33',0x00),(1435,10,'Gitee','10','system_social_type',0,'','','','1','2023-11-04 13:04:42','1','2023-11-04 13:04:42',0x00),(1436,20,'éé','20','system_social_type',0,'','','','1','2023-11-04 13:04:54','1','2023-11-04 13:04:54',0x00),(1437,30,'ä¼ä¸å¾®ä¿¡','30','system_social_type',0,'','','','1','2023-11-04 13:05:09','1','2023-11-04 13:05:09',0x00),(1438,31,'微信å
¬ä¼å¹³å°','31','system_social_type',0,'','','','1','2023-11-04 13:05:18','1','2023-11-04 13:05:18',0x00),(1439,32,'å¾®ä¿¡å¼æ¾å¹³å°','32','system_social_type',0,'','','','1','2023-11-04 13:05:30','1','2023-11-04 13:05:30',0x00),(1440,34,'微信å°ç¨åº','34','system_social_type',0,'','','','1','2023-11-04 13:05:38','1','2023-11-04 13:07:16',0x00),(1441,1,'䏿¶','1','crm_product_status',0,'success','','','1','2023-10-30 21:49:34','1','2023-10-30 21:49:34',0x00),(1442,0,'䏿¶','0','crm_product_status',0,'success','','','1','2023-10-30 21:49:13','1','2023-10-30 21:49:13',0x00),(1443,15,'å表','15','infra_codegen_template_type',0,'default','','','1','2023-11-13 23:06:16','1','2023-11-13 23:06:16',0x00),(1444,10,'ä¸»è¡¨ï¼æ 忍¡å¼ï¼','10','infra_codegen_template_type',0,'default','','','1','2023-11-14 12:32:49','1','2023-11-14 12:32:49',0x00),(1445,11,'主表ï¼ERP 模å¼ï¼','11','infra_codegen_template_type',0,'default','','','1','2023-11-14 12:33:05','1','2023-11-14 12:33:05',0x00),(1446,12,'主表ï¼å
嵿¨¡å¼ï¼','12','infra_codegen_template_type',0,'','','','1','2023-11-14 12:33:31','1','2023-11-14 12:33:31',0x00),(1447,1,'è´è´£äºº','1','crm_permission_level',0,'default','','','1','2023-11-30 09:53:12','1','2023-11-30 09:53:12',0x00),(1448,2,'åªè¯»','2','crm_permission_level',0,'','','','1','2023-11-30 09:53:29','1','2023-11-30 09:53:29',0x00),(1449,3,'读å','3','crm_permission_level',0,'','','','1','2023-11-30 09:53:36','1','2023-11-30 09:53:36',0x00),(1450,0,'æªæäº¤','0','crm_audit_status',0,'','','','1','2023-11-30 18:56:59','1','2023-11-30 18:56:59',0x00),(1451,10,'审æ¹ä¸','10','crm_audit_status',0,'','','','1','2023-11-30 18:57:10','1','2023-11-30 18:57:10',0x00),(1452,20,'å®¡æ ¸éè¿','20','crm_audit_status',0,'','','','1','2023-11-30 18:57:24','1','2023-11-30 18:57:24',0x00),(1453,30,'å®¡æ ¸ä¸éè¿','30','crm_audit_status',0,'','','','1','2023-11-30 18:57:32','1','2023-11-30 18:57:32',0x00),(1454,40,'已忶','40','crm_audit_status',0,'','','','1','2023-11-30 18:57:42','1','2023-11-30 18:57:42',0x00),(1456,1,'æ¯ç¥¨','1','crm_receivable_return_type',0,'default','','','1','2023-10-18 21:54:29','1','2023-10-18 21:54:29',0x00),(1457,2,'ç°é','2','crm_receivable_return_type',0,'default','','','1','2023-10-18 21:54:41','1','2023-10-18 21:54:41',0x00),(1458,3,'鮿¿æ±æ¬¾','3','crm_receivable_return_type',0,'default','','','1','2023-10-18 21:54:53','1','2023-10-18 21:54:53',0x00),(1459,4,'çµæ±','4','crm_receivable_return_type',0,'default','','','1','2023-10-18 21:55:07','1','2023-10-18 21:55:07',0x00),(1461,1,'个','1','crm_product_unit',0,'','','','1','2023-12-05 23:02:26','1','2023-12-05 23:02:26',0x00),(1462,2,'å','2','crm_product_unit',0,'','','','1','2023-12-05 23:02:34','1','2023-12-05 23:02:34',0x00),(1463,3,'åª','3','crm_product_unit',0,'','','','1','2023-12-05 23:02:57','1','2023-12-05 23:02:57',0x00),(1464,4,'æ','4','crm_product_unit',0,'','','','1','2023-12-05 23:03:05','1','2023-12-05 23:03:05',0x00),(1465,5,'æ','5','crm_product_unit',0,'','','','1','2023-12-05 23:03:14','1','2023-12-05 23:03:14',0x00),(1466,6,'ç¶','6','crm_product_unit',0,'','','','1','2023-12-05 23:03:20','1','2023-12-05 23:03:20',0x00),(1467,7,'ç','7','crm_product_unit',0,'','','','1','2023-12-05 23:03:30','1','2023-12-05 23:03:30',0x00),(1468,8,'å°','8','crm_product_unit',0,'','','','1','2023-12-05 23:03:41','1','2023-12-05 23:03:41',0x00),(1469,9,'å¨','9','crm_product_unit',0,'','','','1','2023-12-05 23:03:48','1','2023-12-05 23:03:48',0x00),(1470,10,'åå
','10','crm_product_unit',0,'','','','1','2023-12-05 23:04:03','1','2023-12-05 23:04:03',0x00),(1471,11,'ç±³','11','crm_product_unit',0,'','','','1','2023-12-05 23:04:12','1','2023-12-05 23:04:12',0x00),(1472,12,'ç®±','12','crm_product_unit',0,'','','','1','2023-12-05 23:04:25','1','2023-12-05 23:04:25',0x00),(1473,13,'å¥','13','crm_product_unit',0,'','','','1','2023-12-05 23:04:34','1','2023-12-05 23:04:34',0x00),(1474,1,'æçµè¯','1','crm_follow_up_type',0,'','','','1','2024-01-15 20:48:20','1','2024-01-15 20:48:20',0x00),(1475,2,'åçä¿¡','2','crm_follow_up_type',0,'','','','1','2024-01-15 20:48:31','1','2024-01-15 20:48:31',0x00),(1476,3,'ä¸é¨æè®¿','3','crm_follow_up_type',0,'','','','1','2024-01-15 20:49:07','1','2024-01-15 20:49:07',0x00),(1477,4,'微信æ²é','4','crm_follow_up_type',0,'','','','1','2024-01-15 20:49:15','1','2024-01-15 20:49:15',0x00),(1482,4,'转账失败','20','pay_transfer_status',0,'warning','','','1','2023-10-28 16:24:16','1','2025-05-08 12:59:01',0x00),(1483,3,'转账æå','10','pay_transfer_status',0,'success','','','1','2023-10-28 16:23:50','1','2025-05-08 12:58:58',0x00),(1484,2,'转账è¿è¡ä¸','5','pay_transfer_status',0,'info','','','1','2023-10-28 16:23:12','1','2025-05-08 12:58:54',0x00),(1485,1,'çå¾
转账','0','pay_transfer_status',0,'default','','','1','2023-10-28 16:21:43','1','2023-10-28 16:23:22',0x00),(1486,10,'å
¶å®å
¥åº','10','erp_stock_record_biz_type',0,'','','','1','2024-02-05 18:07:25','1','2024-02-05 18:07:43',0x00),(1487,11,'å
¶å®å
¥åºï¼ä½åºï¼','11','erp_stock_record_biz_type',0,'danger','','','1','2024-02-05 18:08:07','1','2024-02-05 19:20:16',0x00),(1488,20,'å
¶å®åºåº','20','erp_stock_record_biz_type',0,'','','','1','2024-02-05 18:08:51','1','2024-02-05 18:08:51',0x00),(1489,21,'å
¶å®åºåºï¼ä½åºï¼','21','erp_stock_record_biz_type',0,'danger','','','1','2024-02-05 18:09:00','1','2024-02-05 19:20:10',0x00),(1490,10,'审æ¹ä¸','10','erp_audit_status',0,'default','','','1','2024-02-06 00:00:21','1','2026-06-26 08:46:48',0x00),(1491,20,'审æ¹éè¿','20','erp_audit_status',0,'success','','','1','2024-02-06 00:00:35','1','2026-06-26 08:46:48',0x00),(1492,30,'è°æ¨å
¥åº','30','erp_stock_record_biz_type',0,'','','','1','2024-02-07 20:34:19','1','2024-02-07 12:36:31',0x00),(1493,31,'è°æ¨å
¥åºï¼ä½åºï¼','31','erp_stock_record_biz_type',0,'danger','','','1','2024-02-07 20:34:29','1','2024-02-07 20:37:11',0x00),(1494,32,'è°æ¨åºåº','32','erp_stock_record_biz_type',0,'','','','1','2024-02-07 20:34:38','1','2024-02-07 12:36:33',0x00),(1495,33,'è°æ¨åºåºï¼ä½åºï¼','33','erp_stock_record_biz_type',0,'danger','','','1','2024-02-07 20:34:49','1','2024-02-07 20:37:06',0x00),(1496,40,'ççå
¥åº','40','erp_stock_record_biz_type',0,'','','','1','2024-02-08 08:53:00','1','2024-02-08 08:53:09',0x00),(1497,41,'ççå
¥åºï¼ä½åºï¼','41','erp_stock_record_biz_type',0,'danger','','','1','2024-02-08 08:53:39','1','2024-02-16 19:40:54',0x00),(1498,42,'çäºåºåº','42','erp_stock_record_biz_type',0,'','','','1','2024-02-08 08:54:16','1','2024-02-08 08:54:16',0x00),(1499,43,'çäºåºåºï¼ä½åºï¼','43','erp_stock_record_biz_type',0,'danger','','','1','2024-02-08 08:54:31','1','2024-02-16 19:40:46',0x00),(1500,50,'éå®åºåº','50','erp_stock_record_biz_type',0,'','','','1','2024-02-11 21:47:25','1','2024-02-11 21:50:40',0x00),(1501,51,'éå®åºåºï¼ä½åºï¼','51','erp_stock_record_biz_type',0,'danger','','','1','2024-02-11 21:47:37','1','2024-02-11 21:51:12',0x00),(1502,60,'éå®éè´§å
¥åº','60','erp_stock_record_biz_type',0,'','','','1','2024-02-12 06:51:05','1','2024-02-12 06:51:05',0x00),(1503,61,'éå®éè´§å
¥åºï¼ä½åºï¼','61','erp_stock_record_biz_type',0,'danger','','','1','2024-02-12 06:51:18','1','2024-02-12 06:51:18',0x00),(1504,70,'éè´å
¥åº','70','erp_stock_record_biz_type',0,'','','','1','2024-02-16 13:10:02','1','2024-02-16 13:10:02',0x00),(1505,71,'éè´å
¥åºï¼ä½åºï¼','71','erp_stock_record_biz_type',0,'danger','','','1','2024-02-16 13:10:10','1','2024-02-16 19:40:40',0x00),(1506,80,'éè´éè´§åºåº','80','erp_stock_record_biz_type',0,'','','','1','2024-02-16 13:10:17','1','2024-02-16 13:10:17',0x00),(1507,81,'éè´éè´§åºåºï¼ä½åºï¼','81','erp_stock_record_biz_type',0,'danger','','','1','2024-02-16 13:10:26','1','2024-02-16 19:40:33',0x00),(1509,3,'审æ¹ä¸éè¿','3','bpm_process_instance_status',0,'danger','','','1','2024-03-16 16:12:06','1','2024-03-16 16:12:06',0x00),(1510,4,'已忶','4','bpm_process_instance_status',0,'warning','','','1','2024-03-16 16:12:22','1','2024-03-16 16:12:22',0x00),(1511,5,'å·²éå','5','bpm_task_status',0,'warning','','','1','2024-03-16 19:10:46','1','2024-03-08 22:41:40',0x00),(1512,6,'å§æ´¾ä¸','6','bpm_task_status',0,'primary','','','1','2024-03-17 10:06:22','1','2024-03-08 22:41:40',0x00),(1513,7,'审æ¹éè¿ä¸','7','bpm_task_status',0,'success','','','1','2024-03-17 10:06:47','1','2024-03-08 22:41:41',0x00),(1514,0,'å¾
审æ¹','0','bpm_task_status',0,'info','','','1','2024-03-17 10:07:11','1','2024-03-08 22:41:42',0x00),(1515,35,'å起人èªé','35','bpm_task_candidate_strategy',0,'','','','1','2024-03-22 19:45:16','1','2024-03-22 19:45:16',0x00),(1516,1,'æ§è¡çå¬å¨','execution','bpm_process_listener_type',0,'primary','','','1','2024-03-23 12:54:03','1','2024-03-23 19:14:19',0x00),(1517,1,'ä»»å¡çå¬å¨','task','bpm_process_listener_type',0,'success','','','1','2024-03-23 12:54:13','1','2024-03-23 19:14:24',0x00),(1526,1,'Java ç±»','class','bpm_process_listener_value_type',0,'primary','','','1','2024-03-23 15:08:45','1','2024-03-23 19:14:32',0x00),(1527,2,'表达å¼','expression','bpm_process_listener_value_type',0,'success','','','1','2024-03-23 15:09:06','1','2024-03-23 19:14:38',0x00),(1528,3,'代ç表达å¼','delegateExpression','bpm_process_listener_value_type',0,'info','','','1','2024-03-23 15:11:23','1','2024-03-23 19:14:41',0x00),(1529,1,'天','1','date_interval',0,'','','','1','2024-03-29 22:50:26','1','2024-03-29 22:50:26',0x00),(1530,2,'å¨','2','date_interval',0,'','','','1','2024-03-29 22:50:36','1','2024-03-29 22:50:36',0x00),(1531,3,'æ','3','date_interval',0,'','','','1','2024-03-29 22:50:46','1','2024-03-29 22:50:54',0x00),(1532,4,'å£åº¦','4','date_interval',0,'','','','1','2024-03-29 22:51:01','1','2024-03-29 22:51:01',0x00),(1533,5,'å¹´','5','date_interval',0,'','','','1','2024-03-29 22:51:07','1','2024-03-29 22:51:07',0x00),(1537,1,'OpenAI','OpenAI','ai_platform',0,'','','','1','2024-05-09 22:33:47','1','2024-05-09 22:58:46',0x00),(1538,2,'Ollama','Ollama','ai_platform',0,'','','','1','2024-05-17 23:02:55','1','2024-05-17 23:02:55',0x00),(1539,3,'æå¿ä¸è¨','YiYan','ai_platform',0,'','','','1','2024-05-18 09:24:20','1','2024-05-18 09:29:01',0x00),(1540,4,'è®¯é£æç«','XingHuo','ai_platform',0,'','','','1','2024-05-18 10:08:56','1','2024-05-18 10:08:56',0x00),(1541,5,'éä¹åé®','TongYi','ai_platform',0,'','','','1','2024-05-18 10:32:29','1','2024-07-06 15:42:29',0x00),(1542,6,'StableDiffusion','StableDiffusion','ai_platform',0,'','','','1','2024-06-01 15:09:31','1','2024-06-01 15:10:25',0x00),(1543,10,'è¿è¡ä¸','10','ai_image_status',0,'primary','','','1','2024-06-26 20:51:41','1','2024-06-26 20:52:48',0x00),(1544,20,'已宿','20','ai_image_status',0,'success','','','1','2024-06-26 20:52:07','1','2024-06-26 20:52:41',0x00),(1545,30,'已失败','30','ai_image_status',0,'warning','','','1','2024-06-26 20:52:25','1','2024-06-26 20:52:35',0x00),(1546,7,'Midjourney','Midjourney','ai_platform',0,'','','','1','2024-06-26 22:14:46','1','2024-06-26 22:14:46',0x00),(1547,10,'è¿è¡ä¸','10','ai_music_status',0,'primary','','','1','2024-06-27 22:45:22','1','2024-06-28 00:56:17',0x00),(1548,20,'已宿','20','ai_music_status',0,'success','','','1','2024-06-27 22:45:33','1','2024-06-28 00:56:18',0x00),(1549,30,'已失败','30','ai_music_status',0,'danger','','','1','2024-06-27 22:45:44','1','2024-06-28 00:56:19',0x00),(1550,1,'æè¯æ¨¡å¼','1','ai_generate_mode',0,'','','','1','2024-06-27 22:46:31','1','2024-06-28 01:22:25',0x00),(1551,2,'æè¿°æ¨¡å¼','2','ai_generate_mode',0,'','','','1','2024-06-27 22:46:37','1','2024-06-28 01:22:24',0x00),(1552,8,'Suno','Suno','ai_platform',0,'','','','1','2024-06-29 09:13:36','1','2024-06-29 09:13:41',0x00),(1553,9,'DeepSeek','DeepSeek','ai_platform',0,'','','','1','2024-07-06 12:04:30','1','2024-07-06 12:05:20',0x00),(1554,13,'æºè°±','ZhiPu','ai_platform',0,'','','','1','2024-07-06 18:00:35','1','2025-02-24 20:18:41',0x00),(1555,4,'é¿','4','ai_write_length',0,'','','','1','2024-07-07 15:49:03','1','2024-07-07 15:49:03',0x00),(1556,5,'段è½','5','ai_write_format',0,'','','','1','2024-07-07 15:49:54','1','2024-07-07 15:49:54',0x00),(1557,6,'æç« ','6','ai_write_format',0,'','','','1','2024-07-07 15:50:05','1','2024-07-07 15:50:05',0x00),(1558,7,'å客æç« ','7','ai_write_format',0,'','','','1','2024-07-07 15:50:23','1','2024-07-07 15:50:23',0x00),(1559,8,'æ³æ³','8','ai_write_format',0,'','','','1','2024-07-07 15:50:31','1','2024-07-07 15:50:31',0x00),(1560,9,'大纲','9','ai_write_format',0,'','','','1','2024-07-07 15:50:37','1','2024-07-07 15:50:37',0x00),(1561,1,'èªå¨','1','ai_write_tone',0,'','','','1','2024-07-07 15:51:06','1','2024-07-07 15:51:06',0x00),(1562,2,'åå','2','ai_write_tone',0,'','','','1','2024-07-07 15:51:19','1','2024-07-07 15:51:19',0x00),(1563,3,'éæ','3','ai_write_tone',0,'','','','1','2024-07-07 15:51:27','1','2024-07-07 15:51:27',0x00),(1564,4,'å好','4','ai_write_tone',0,'','','','1','2024-07-07 15:51:37','1','2024-07-07 15:51:37',0x00),(1565,5,'ä¸ä¸','5','ai_write_tone',0,'','','','1','2024-07-07 15:51:49','1','2024-07-07 15:52:02',0x00),(1566,6,'è¯è°','6','ai_write_tone',0,'','','','1','2024-07-07 15:52:15','1','2024-07-07 15:52:15',0x00),(1567,7,'æè¶£','7','ai_write_tone',0,'','','','1','2024-07-07 15:52:24','1','2024-07-07 15:52:24',0x00),(1568,8,'æ£å¼','8','ai_write_tone',0,'','','','1','2024-07-07 15:54:33','1','2024-07-07 15:54:33',0x00),(1570,1,'èªå¨','1','ai_write_format',0,'','','','1','2024-07-07 15:19:34','1','2024-07-07 15:19:34',0x00),(1571,2,'çµåé®ä»¶','2','ai_write_format',0,'','','','1','2024-07-07 15:19:50','1','2024-07-07 15:49:30',0x00),(1572,3,'æ¶æ¯','3','ai_write_format',0,'','','','1','2024-07-07 15:20:01','1','2024-07-07 15:49:38',0x00),(1573,4,'è¯è®º','4','ai_write_format',0,'','','','1','2024-07-07 15:20:13','1','2024-07-07 15:49:45',0x00),(1574,1,'èªå¨','1','ai_write_language',0,'','','','1','2024-07-07 15:44:18','1','2024-07-07 15:44:18',0x00),(1575,2,'䏿','2','ai_write_language',0,'','','','1','2024-07-07 15:44:28','1','2024-07-07 15:44:28',0x00),(1576,3,'è±æ','3','ai_write_language',0,'','','','1','2024-07-07 15:44:37','1','2024-07-07 15:44:37',0x00),(1577,4,'é©è¯','4','ai_write_language',0,'','','','1','2024-07-07 15:46:28','1','2024-07-07 15:46:28',0x00),(1578,5,'æ¥è¯','5','ai_write_language',0,'','','','1','2024-07-07 15:46:44','1','2024-07-07 15:46:44',0x00),(1579,1,'èªå¨','1','ai_write_length',0,'','','','1','2024-07-07 15:48:34','1','2024-07-07 15:48:34',0x00),(1580,2,'ç','2','ai_write_length',0,'','','','1','2024-07-07 15:48:44','1','2024-07-07 15:48:44',0x00),(1581,3,'ä¸ç','3','ai_write_length',0,'','','','1','2024-07-07 15:48:52','1','2024-07-07 15:48:52',0x00),(1584,1,'æ°å','1','ai_write_type',0,'','','','1','2024-07-10 21:26:00','1','2024-07-10 21:26:00',0x00),(1585,2,'åå¤','2','ai_write_type',0,'','','','1','2024-07-10 21:26:06','1','2024-07-10 21:26:06',0x00),(1586,2,'è
¾è®¯äº','TENCENT','system_sms_channel_code',0,'','','','1','2024-07-22 22:23:16','1','2024-07-22 22:23:16',0x00),(1587,3,'å为äº','HUAWEI','system_sms_channel_code',0,'','','','1','2024-07-22 22:23:46','1','2024-07-22 22:23:53',0x00),(1588,1,'OpenAI 微软','AzureOpenAI','ai_platform',0,'','','','1','2024-08-10 14:07:41','1','2024-08-10 14:07:41',0x00),(1589,10,'BPMN 设计å¨','10','bpm_model_type',0,'primary','','','1','2024-08-26 15:22:17','1','2024-08-26 16:46:02',0x00),(1590,20,'SIMPLE 设计å¨','20','bpm_model_type',0,'success','','','1','2024-08-26 15:22:27','1','2024-08-26 16:45:58',0x00),(1591,4,'ä¸çäº','QINIU','system_sms_channel_code',0,'','','','1','2024-08-31 08:45:03','1','2024-08-31 08:45:24',0x00),(1592,3,'æ°äººå¸','3','promotion_coupon_take_type',0,'info','','æ°äººæ³¨ååï¼èªå¨åæ¾','1','2024-09-03 11:57:16','1','2024-09-03 11:57:28',0x00),(1593,5,'微信é¶é±','5','brokerage_withdraw_type',0,'','','API ææ¬¾','1','2024-10-13 11:06:48','1','2025-05-10 08:24:55',0x00),(1683,10,'åèè±å
','DouBao','ai_platform',0,'','','','1','2025-02-23 19:51:40','1','2025-02-23 19:52:02',0x00),(1684,11,'è
¾è®¯æ··å
','HunYuan','ai_platform',0,'','','','1','2025-02-23 20:58:04','1','2025-02-23 20:58:04',0x00),(1685,12,'ç¡
åºæµå¨','SiliconFlow','ai_platform',0,'','','','1','2025-02-24 20:19:09','1','2025-02-24 20:19:09',0x00),(1686,1,'è天','1','ai_model_type',0,'','','','1','2025-03-03 12:26:34','1','2025-03-03 12:26:34',0x00),(1687,2,'å¾å','2','ai_model_type',0,'','','','1','2025-03-03 12:27:23','1','2025-03-03 12:27:23',0x00),(1688,3,'é³é¢','3','ai_model_type',0,'','','','1','2025-03-03 12:27:51','1','2025-03-03 12:27:51',0x00),(1689,4,'è§é¢','4','ai_model_type',0,'','','','1','2025-03-03 12:28:03','1','2025-03-03 12:28:03',0x00),(1690,5,'åé','5','ai_model_type',0,'','','','1','2025-03-03 12:28:15','1','2025-03-03 12:28:15',0x00),(1691,6,'éæ','6','ai_model_type',0,'','','','1','2025-03-03 12:28:26','1','2025-03-03 12:28:26',0x00),(1692,14,'MiniMax','MiniMax','ai_platform',0,'','','','1','2025-03-11 20:04:51','1','2025-03-11 20:04:51',0x00),(1693,15,'æä¹æé¢','Moonshot','ai_platform',0,'','','','1','2025-03-11 20:05:08','1','2025-11-24 07:17:39',0x00),(2002,0,'ç´è¿è®¾å¤','0','iot_product_device_type',0,'default','','','1','2024-08-10 11:54:58','1','2025-03-17 09:28:22',0x00),(2003,2,'ç½å
³è®¾å¤','2','iot_product_device_type',0,'default','','','1','2024-08-10 11:55:08','1','2025-03-17 09:28:28',0x00),(2004,1,'ç½å
³å设å¤','1','iot_product_device_type',0,'default','','','1','2024-08-10 11:55:20','1','2025-03-17 09:28:31',0x00),(2005,1,'å·²åå¸','1','iot_product_status',0,'success','','','1','2024-08-10 12:10:33','1','2025-03-17 09:28:34',0x00),(2006,0,'å¼åä¸','0','iot_product_status',0,'default','','','1','2024-08-10 14:19:18','1','2025-03-17 09:28:39',0x00),(2009,0,'Wi-Fi','0','iot_net_type',0,'','','','1','2024-09-06 22:04:47','1','2025-03-17 09:28:47',0x00),(2010,1,'ç§»å¨ç½ç»','1','iot_net_type',0,'','','','1','2024-09-06 22:05:14','1','2025-06-12 23:27:19',0x00),(2011,2,'以太ç½','2','iot_net_type',0,'','','','1','2024-09-06 22:05:35','1','2025-03-17 09:28:51',0x00),(2012,3,'å
¶ä»','3','iot_net_type',0,'','','','1','2024-09-06 22:05:52','1','2025-03-17 09:28:54',0x00),(2018,0,'æªæ¿æ´»','0','iot_device_state',0,'','','','1','2024-09-21 08:13:34','1','2025-03-17 09:29:09',0x00),(2019,1,'å¨çº¿','1','iot_device_state',0,'','','','1','2024-09-21 08:13:48','1','2025-03-17 09:29:12',0x00),(2020,2,'离线','2','iot_device_state',0,'','','','1','2024-09-21 08:13:59','1','2025-03-17 09:29:14',0x00),(2021,1,'屿§','1','iot_thing_model_type',0,'','','','1','2024-09-29 20:03:01','1','2025-03-17 09:29:24',0x00),(2022,2,'æå¡','2','iot_thing_model_type',0,'','','','1','2024-09-29 20:03:11','1','2025-03-17 09:29:27',0x00),(2023,3,'äºä»¶','3','iot_thing_model_type',0,'','','','1','2024-09-29 20:03:20','1','2025-03-17 09:29:29',0x00),(2030,1,'忝åé','L/min','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:34:24',0x00),(2031,2,'毫å
æ¯åå
','mg/kg','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:34:27',0x00),(2032,3,'æµåº¦','NTU','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:34:31',0x00),(2033,4,'PHå¼','pH','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:34:36',0x00),(2034,5,'å壤ECå¼','dS/m','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:34:43',0x00),(2035,6,'å¤ªé³æ»è¾å°','W/ã¡','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:36:20',0x00),(2036,7,'éé¨é','mm/hour','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:36:24',0x00),(2037,8,'ä¹','var','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:36:27',0x00),(2038,9,'åæ³','cP','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:36:33',0x00),(2039,10,'饱å度','aw','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:37:11',0x00),(2040,11,'个','pcs','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:37:19',0x00),(2041,12,'忝','cst','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:37:22',0x00),(2042,13,'å·´','bar','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:37:24',0x00),(2043,14,'纳å
æ¯å','ppt','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:37:27',0x00),(2044,15,'å亿åä¹ä¸','ppb','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2026-04-05 15:53:29',0x00),(2045,16,'微西æ¯åç±³','uS/cm','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:37:34',0x00),(2046,17,'çé¡¿æ¯åºä»','N/C','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:37:38',0x00),(2047,18,'ä¼ç¹æ¯ç±³','V/m','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:37:43',0x00),(2048,19,'æ»´é','ml/min','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:37:46',0x00),(2049,20,'æ¯«ç±³æ±æ±','mmHg','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:37:48',0x00),(2050,21,'è¡ç³','mmol/L','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:37:54',0x00),(2051,22,'毫米æ¯ç§','mm/s','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:38:02',0x00),(2052,23,'转æ¯ç±³','turn/m','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2026-04-05 15:53:29',0x00),(2053,24,'次','count','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:38:09',0x00),(2054,25,'æ¡£','gear','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:38:11',0x00),(2055,26,'æ¥','stepCount','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:38:13',0x00),(2056,27,'æ åç«æ¹ç±³æ¯å°æ¶','Nm3/h','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:38:15',0x00),(2057,28,'åä¼','kV','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:38:20',0x00),(2058,29,'åä¼å®','kVA','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:38:24',0x00),(2060,30,'åä¹','kVar','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2061,31,'å¾®ç¦æ¯å¹³æ¹åç±³','uw/cm2','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2062,32,'åª','åª','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2063,33,'ç¸å¯¹æ¹¿åº¦','%RH','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2064,34,'ç«æ¹ç±³æ¯ç§','m³/s','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2065,35,'å
¬æ¤æ¯ç§','kg/s','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2066,36,'转æ¯åé','r/min','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2067,37,'卿¯å°æ¶','t/h','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2068,38,'å塿¯å°æ¶','KCL/h','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2069,39,'忝ç§','L/s','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2070,40,'å
å¸','MPa','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2026-04-05 15:53:29',0x00),(2071,41,'ç«æ¹ç±³æ¯å°æ¶','m³/h','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2072,42,'å乿¶','kvarh','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2073,43,'å¾®å
æ¯å','μg/L','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2074,44,'åå¡è·¯é','kcal','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2075,45,'ååè','GB','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2076,46,'å
åè','MB','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2077,47,'ååè','KB','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2078,48,'åè','B','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2079,49,'å¾®å
æ¯å¹³æ¹åç±³æ¯å¤©','μg/(dã¡Â·d)','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2080,50,'æ ','','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2081,51,'ç¾ä¸åç','ppm','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2082,52,'åç´ ','pixel','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2083,53,'ç
§åº¦','Lux','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2084,54,'éåå é度','grav','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2085,55,'åè´','dB','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2086,56,'ç¾åæ¯','%','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2087,57,'æµæ','lm','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2088,58,'æ¯ç¹','bit','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2089,59,'å
æ¯æ¯«å','g/mL','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2090,60,'å
æ¯å','g/L','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2091,61,'毫å
æ¯å','mg/L','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2092,62,'å¾®å
æ¯ç«æ¹ç±³','μg/m³','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2093,63,'毫å
æ¯ç«æ¹ç±³','mg/m³','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2094,64,'å
æ¯ç«æ¹ç±³','g/m³','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2095,65,'åå
æ¯ç«æ¹ç±³','kg/m³','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2096,66,'纳æ³','nF','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2097,67,'ç®æ³','pF','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2098,68,'å¾®æ³','μF','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2099,69,'æ³æ','F','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2100,70,'欧å§','Ω','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2101,71,'å¾®å®','μA','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2102,72,'毫å®','mA','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2103,73,'åå®','kA','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2104,74,'å®å¹','A','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2105,75,'毫ä¼','mV','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2106,76,'ä¼ç¹','V','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2107,77,'毫ç§','ms','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2108,78,'ç§','s','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2109,79,'åé','min','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2110,80,'å°æ¶','h','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2111,81,'æ¥','day','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2112,82,'å¨','week','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2113,83,'æ','month','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2114,84,'å¹´','year','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2115,85,'è','kn','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2116,86,'åç±³æ¯å°æ¶','km/h','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2117,87,'ç±³æ¯ç§','m/s','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2118,88,'è§ç§','â³','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2026-04-05 15:53:29',0x00),(2119,89,'å','â²','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2120,90,'度','°','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2121,91,'弧度','rad','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2122,92,'赫å
¹','Hz','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2123,93,'å¾®ç¦','μW','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2124,94,'毫ç¦','mW','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2125,95,'åç¦ç¹','kW','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2126,96,'ç¦ç¹','W','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2127,97,'å¡è·¯é','cal','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2128,98,'åç¦æ¶','kW·h','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2129,99,'ç¦æ¶','Wh','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2130,100,'çµåä¼','eV','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2131,101,'åç¦','kJ','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2132,102,'ç¦è³','J','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2133,103,'åæ°åº¦','â','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2134,104,'å¼å°æ','K','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2135,105,'å¨','t','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2136,106,'ææ°åº¦','°C','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2137,107,'毫å¸','1e-3Pa','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2026-04-05 15:53:29',0x00),(2138,108,'ç¾å¸','hPa','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2139,109,'åå¸','kPa','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2140,110,'叿¯å¡','Pa','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2141,111,'毫å
','mg','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2142,112,'å
','g','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2143,113,'åå
','kg','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2144,114,'ç','N','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2145,115,'毫å','mL','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2146,116,'å','L','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2147,117,'ç«æ¹æ¯«ç±³','mm³','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2148,118,'ç«æ¹åç±³','cm³','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2149,119,'ç«æ¹åç±³','km³','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2150,120,'ç«æ¹ç±³','m³','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2151,121,'å
¬é¡·','hã¡','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2152,122,'å¹³æ¹åç±³','cã¡','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2153,123,'å¹³æ¹æ¯«ç±³','mã¡','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2154,124,'å¹³æ¹åç±³','kã¡','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2155,125,'å¹³æ¹ç±³','ã¡','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2156,126,'纳米','nm','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2157,127,'微米','μm','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2158,128,'毫米','mm','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2159,129,'åç±³','cm','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2160,130,'åç±³','dm','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2161,131,'åç±³','km','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2162,132,'ç±³','m','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2165,1,'HTTP','1','iot_data_sink_type_enum',0,'default','','','1','2025-03-09 12:39:54','1','2025-06-24 12:44:47',0x00),(2166,2,'TCP','2','iot_data_sink_type_enum',0,'default','','','1','2025-03-09 12:40:06','1','2025-06-24 12:44:46',0x00),(2167,3,'WebSocket','3','iot_data_sink_type_enum',0,'default','','','1','2025-03-09 12:40:24','1','2025-06-24 12:44:45',0x00),(2168,10,'MQTT','10','iot_data_sink_type_enum',0,'default','','','1','2025-03-09 12:40:37','1','2025-06-24 12:44:44',0x00),(2169,20,'Database','20','iot_data_sink_type_enum',0,'default','','','1','2025-03-09 12:41:05','1','2025-06-24 12:44:44',0x00),(2170,21,'Redis Stream','21','iot_data_sink_type_enum',0,'default','','','1','2025-03-09 12:41:18','1','2025-06-24 12:44:43',0x00),(2171,30,'RocketMQ','30','iot_data_sink_type_enum',0,'default','','','1','2025-03-09 12:41:30','1','2025-06-24 12:44:42',0x00),(2172,31,'RabbitMQ','31','iot_data_sink_type_enum',0,'default','','','1','2025-03-09 12:41:47','1','2025-06-24 12:44:41',0x00),(2173,32,'Kafka','32','iot_data_sink_type_enum',0,'default','','','1','2025-03-09 12:41:59','1','2025-06-24 12:44:39',0x00),(2174,1,'设å¤ä¸ä¸çº¿åæ´','1','iot_rule_scene_trigger_type_enum',0,'primary','','','1','2025-03-20 15:00:01','\"1\"','2025-07-06 10:28:16',0x00),(2175,2,'ç©æ¨¡å屿§ä¸æ¥','2','iot_rule_scene_trigger_type_enum',0,'primary','','','1','2025-03-20 15:00:09','\"1\"','2025-07-06 10:28:22',0x00),(2176,1,'设å¤ç¶æ','state','iot_device_message_type_enum',0,'primary','','','1','2025-03-20 15:24:58','1','2025-03-20 15:24:58',0x00),(2177,2,'设å¤å±æ§','property','iot_device_message_type_enum',0,'primary','','','1','2025-03-20 15:25:09','1','2025-03-20 15:25:09',0x00),(2178,3,'设å¤äºä»¶','event','iot_device_message_type_enum',0,'primary','','','1','2025-03-20 15:25:23','1','2025-03-20 15:25:23',0x00),(2179,4,'è®¾å¤æå¡','service','iot_device_message_type_enum',0,'primary','','','1','2025-03-20 15:25:39','1','2025-03-20 15:25:39',0x00),(2180,5,'设å¤é
ç½®','config','iot_device_message_type_enum',0,'primary','','','1','2025-03-20 15:25:51','1','2025-03-20 15:25:57',0x00),(2181,6,'è®¾å¤ OTA','ota','iot_device_message_type_enum',0,'primary','','','1','2025-03-20 15:26:17','1','2025-03-20 15:26:17',0x00),(2182,7,'è®¾å¤æ³¨å','register','iot_device_message_type_enum',0,'primary','','','1','2025-03-20 15:26:35','1','2025-03-20 15:26:35',0x00),(2183,8,'è®¾å¤ææ','topology','iot_device_message_type_enum',0,'primary','','','1','2025-03-20 15:26:46','1','2025-03-20 15:26:46',0x00),(2184,1,'设å¤å±æ§è®¾ç½®','1','iot_rule_scene_action_type_enum',0,'primary','','','1','2025-03-28 15:27:12','\"1\"','2025-07-06 10:37:33',0x00),(2185,2,'è®¾å¤æå¡è°ç¨','2','iot_rule_scene_action_type_enum',0,'primary','','','1','2025-03-28 15:27:25','\"1\"','2025-07-06 10:37:41',0x00),(2186,100,'åè¦è§¦å','100','iot_rule_scene_action_type_enum',0,'primary','','','1','2025-03-28 15:27:35','\"1\"','2025-07-06 10:37:50',0x00),(3000,16,'ç¾å·æºè½','BaiChuan','ai_platform',0,'','','','1','2025-03-23 12:15:46','1','2025-03-23 12:15:46',0x00),(3001,40,'Vben5.0 Ant Design Schema 模ç','40','infra_codegen_front_type',0,'','',NULL,'1','2025-04-23 21:47:47','1','2025-09-04 23:25:12',0x00),(3002,6,'æ¯ä»å®ä½é¢','6','brokerage_withdraw_type',0,'','','API ææ¬¾','1','2025-05-10 08:24:49','1','2025-05-10 08:24:49',0x00),(3004,3,'WARN','3','iot_alert_level',0,'warning','','','1','2025-06-27 20:32:22','1','2025-06-27 20:34:31',0x00),(3005,1,'INFO','1','iot_alert_level',0,'primary','','','1','2025-06-27 20:33:28','1','2025-06-27 20:34:35',0x00),(3006,5,'ERROR','5','iot_alert_level',0,'danger','','','1','2025-06-27 20:33:50','1','2025-06-27 20:33:50',0x00),(3007,1,'çä¿¡','1','iot_alert_receive_type',0,'','','','1','2025-06-27 22:49:30','1','2025-06-27 22:49:30',0x00),(3008,2,'é®ç®±','2','iot_alert_receive_type',0,'','','','1','2025-06-27 22:49:39','1','2025-06-27 22:50:07',0x00),(3009,3,'ç«å
ä¿¡','3','iot_alert_receive_type',0,'','','','1','2025-06-27 22:50:20','1','2025-06-27 22:50:20',0x00),(3010,1,'å
¨é¨è®¾å¤','1','iot_ota_task_device_scope',0,'','','','1','2025-07-02 09:43:09','1','2025-07-02 09:43:09',0x00),(3011,2,'æå®è®¾å¤','2','iot_ota_task_device_scope',0,'','','','1','2025-07-02 09:43:15','1','2025-07-02 09:43:15',0x00),(3012,10,'è¿è¡ä¸','10','iot_ota_task_status',0,'primary','','','1','2025-07-02 09:44:01','\"1\"','2025-07-02 09:44:21',0x00),(3013,20,'å·²ç»æ','20','iot_ota_task_status',0,'success','','','1','2025-07-02 09:44:14','\"1\"','2025-07-02 23:56:12',0x00),(3014,30,'已忶','30','iot_ota_task_status',0,'danger','','','1','2025-07-02 09:44:36','1','2025-07-02 09:44:36',0x00),(3015,0,'å¾
æ¨é','0','iot_ota_task_record_status',0,'','','','1','2025-07-02 09:45:16','1','2025-07-02 09:45:16',0x00),(3016,10,'å·²æ¨é','10','iot_ota_task_record_status',0,'','','','1','2025-07-02 09:45:25','1','2025-07-02 09:45:25',0x00),(3017,20,'å级ä¸','20','iot_ota_task_record_status',0,'primary','','','1','2025-07-02 09:45:37','1','2025-07-02 09:45:37',0x00),(3018,30,'å级æå','30','iot_ota_task_record_status',0,'success','','','1','2025-07-02 09:45:47','1','2025-07-02 09:45:47',0x00),(3019,40,'å级失败','40','iot_ota_task_record_status',0,'danger','','','1','2025-07-02 09:46:02','1','2025-07-02 09:46:02',0x00),(3020,50,'åçº§åæ¶','50','iot_ota_task_record_status',0,'warning','','','1','2025-07-02 09:46:09','\"1\"','2025-07-02 09:46:27',0x00),(3024,3,'设å¤äºä»¶ä¸æ¥','3','iot_rule_scene_trigger_type_enum',0,'','','','1','2025-07-06 10:28:29','1','2025-07-06 10:28:29',0x00),(3025,4,'è®¾å¤æå¡è°ç¨','4','iot_rule_scene_trigger_type_enum',0,'','','','1','2025-07-06 10:28:35','1','2025-07-06 10:28:35',0x00),(3026,100,'宿¶è§¦å','100','iot_rule_scene_trigger_type_enum',0,'','','','1','2025-07-06 10:28:48','1','2025-07-06 10:28:48',0x00),(3027,101,'åè¦æ¢å¤','101','iot_rule_scene_action_type_enum',0,'','','','1','2025-07-06 10:37:57','1','2025-07-06 10:37:57',0x00),(3028,2,'Anthropic','Anthropic','ai_platform',0,'','','','1','2025-08-21 22:54:24','1','2025-08-21 22:57:58',0x00),(3029,2,'è°·æ Gemini','Gemini','ai_platform',0,'','','','1','2025-08-22 22:39:35','1','2025-08-22 22:44:49',0x00),(3030,1,'æä»¶ç³»ç»','filesystem','ai_mcp_client_name',0,'','','','1','2025-08-28 13:58:43','1','2025-08-28 21:19:42',0x00),(3031,41,'Vben5.0 Ant Design æ 忍¡ç','41','infra_codegen_front_type',0,'','','','1','2025-09-04 23:26:07','1','2025-09-04 23:26:07',0x00),(3032,50,'Vben5.0 Element Plus Schema 模ç','50','infra_codegen_front_type',0,'','','','1','2025-09-04 23:26:38','1','2025-09-04 23:26:38',0x00),(3033,51,'Vben5.0 Element Plus æ 忍¡ç','51','infra_codegen_front_type',0,'','','','1','2025-09-04 23:26:49','1','2025-09-04 23:26:49',0x00),(3034,1,'ttt','tt','iot_ota_task_record_status',0,'success','',NULL,'1','2025-09-06 00:02:21','1','2025-09-06 00:02:31',0x00),(3035,40,'æ¯ä»å®å°ç¨åº','40','system_social_type',0,'','','','1','2023-11-04 13:05:38','1','2023-11-04 13:07:16',0x00),(3036,60,'Admin Uniapp ç§»å¨ç«¯','60','infra_codegen_front_type',0,'','',NULL,'1','2025-12-16 19:25:51','1','2025-12-17 09:46:15',0x00),(3037,42,'Vben5.0 Antdv Next Schema 模ç','42','infra_codegen_front_type',0,'','','','1','2026-05-23 13:52:25','1','2026-05-23 13:52:25',0x00),(3038,43,'Vben5.0 Antdv Next æ 忍¡ç','43','infra_codegen_front_type',0,'','','','1','2026-05-23 13:52:25','1','2026-05-23 13:52:25',0x00),(3040,1,'UDP','udp','iot_protocol_type',0,'','','UDP åè®®','1','2026-02-04 00:32:47','1','2026-02-04 00:32:47',0x00),(3041,2,'WebSocket','websocket','iot_protocol_type',0,'','','WebSocket åè®®','1','2026-02-04 00:32:55','1','2026-02-04 00:32:55',0x00),(3042,3,'HTTP','http','iot_protocol_type',0,'','','HTTP åè®®','1','2026-02-04 00:32:55','1','2026-02-04 00:32:55',0x00),(3043,4,'MQTT','mqtt','iot_protocol_type',0,'success','','MQTT åè®®','1','2026-02-04 00:32:55','1','2026-02-04 00:32:55',0x00),(3044,5,'EMQX','emqx','iot_protocol_type',0,'success','','EMQX åè®®','1','2026-02-04 00:32:55','1','2026-02-04 00:32:55',0x00),(3045,6,'CoAP','coap','iot_protocol_type',0,'','','CoAP åè®®','1','2026-02-04 00:32:55','1','2026-02-04 00:32:55',0x00),(3046,7,'Modbus TCP Server','modbus_tcp_server','iot_protocol_type',0,'','','Modbus TCP Server åè®®','1','2026-02-04 00:32:55','1','2026-02-12 15:16:45',0x00),(3047,0,'JSON','json','iot_serialize_type',0,'success','','JSON æ ¼å¼','1','2026-02-04 00:33:19','1','2026-02-04 00:33:19',0x00),(3048,1,'äºè¿å¶','binary','iot_serialize_type',0,'warning','','äºè¿å¶æ ¼å¼','1','2026-02-04 00:33:19','1','2026-02-04 00:33:19',0x00),(3049,8,'Modbus TCP Client','modbus_tcp_client','iot_protocol_type',0,'','','Modbus TCP Client åè®®','1','2026-02-08 18:29:46','1','2026-02-12 15:16:32',0x00),(3050,2,'è¾¹ç¼éé','2','iot_modbus_mode',0,'success','','设å¤ä¸»å¨ä¸æ¥æ°æ®ï¼æ é轮询','1','2025-06-12 22:56:06','1','2026-02-09 13:03:23',0x00),(3051,1,'Modbus TCP','1','iot_modbus_frame_format',0,'default','','MBAP 头鍿 ¼å¼','1','2025-06-12 22:56:06','1','2025-06-12 22:56:06',0x00),(3052,2,'Modbus RTU','2','iot_modbus_frame_format',0,'warning','','CRC16 æ ¡éªæ ¼å¼','1','2025-06-12 22:56:06','1','2025-06-12 22:56:06',0x00),(3053,1,'äºç«¯è½®è¯¢','1','iot_modbus_mode',0,'primary','','ç½å
³ä¸»å¨è½®è¯¢è¯»å设å¤å¯åå¨','1','2025-06-12 22:56:06','1','2025-06-12 22:56:06',0x00),(3054,1,'ä¼ä¸å®¢æ·','1','mes_client_type',0,'primary','','','1','2026-02-15 14:38:25','1','2026-02-15 14:38:25',0x00),(3055,2,'个人','2','mes_client_type',0,'success','','','1','2026-02-15 14:38:25','1','2026-02-15 14:38:25',0x00),(3056,1,'ä¼è´¨ä¾åºå','A','mes_vendor_level',0,'success','','','1','2026-02-15 15:59:15','1','2026-02-15 15:59:15',0x00),(3057,2,'æ£å¸¸','B','mes_vendor_level',0,'primary','','','1','2026-02-15 15:59:15','1','2026-02-15 15:59:15',0x00),(3058,3,'éç¹å
³æ³¨','C','mes_vendor_level',0,'warning','','','1','2026-02-15 15:59:15','1','2026-02-15 15:59:15',0x00),(3059,4,'å£è´¨ä¾åºå','D','mes_vendor_level',0,'danger','','','1','2026-02-15 15:59:15','1','2026-02-15 15:59:15',0x00),(3060,5,'é»åå','E','mes_vendor_level',0,'info','','','1','2026-02-15 15:59:15','1','2026-02-15 15:59:15',0x00),(3061,1,'åæ','2','mes_cal_holiday_type',0,'success','','','1','2026-02-16 07:35:58','1','2026-02-16 11:20:42',0x00),(3062,2,'工使¥','1','mes_cal_holiday_type',0,'primary','','','1','2026-02-16 07:35:58','1','2026-02-16 11:20:40',0x00),(3063,1,'å¨åº','1','mes_tm_tool_status',0,'success','','','1','2026-02-16 11:10:55','1','2026-02-16 11:10:55',0x00),(3064,2,'é¢ç¨ä¸','2','mes_tm_tool_status',0,'primary','','','1','2026-02-16 11:10:55','1','2026-02-16 11:10:55',0x00),(3065,3,'ç»´ä¿®ä¸','3','mes_tm_tool_status',0,'warning','','','1','2026-02-16 11:10:55','1','2026-02-16 11:10:55',0x00),(3066,4,'æ¥åº','4','mes_tm_tool_status',0,'danger','','','1','2026-02-16 11:10:55','1','2026-02-16 11:10:55',0x00),(3067,1,'å®æç»´æ¤','1','mes_tm_mainten_type',0,'primary','','','1','2026-02-16 11:10:55','1','2026-02-16 11:10:55',0x00),(3068,2,'æä½¿ç¨æ¬¡æ°ç»´æ¤','2','mes_tm_mainten_type',0,'success','','','1','2026-02-16 11:10:55','1','2026-02-16 11:10:55',0x00),(3069,1,'åæº','1','mes_dv_machinery_status',0,'success','','','1','2026-02-17 01:00:06','1','2026-02-17 03:28:27',0x00),(3070,2,'ç产ä¸','2','mes_dv_machinery_status',0,'info','','','1','2026-02-17 01:00:06','1','2026-02-17 03:28:33',0x00),(3071,3,'ç»´æ¤ä¸','3','mes_dv_machinery_status',0,'danger','','','1','2026-02-17 01:00:06','1','2026-02-17 03:28:41',0x00),(3072,1,'尺寸','1','mes_indicator_type',0,'','','','1','2026-02-17 02:18:18','1','2026-04-09 14:38:53',0x00),(3073,2,'å¤è§','2','mes_indicator_type',0,'','','','1','2026-02-17 02:18:18','1','2026-04-09 14:38:53',0x00),(3074,3,'éé','3','mes_indicator_type',0,'','','','1','2026-02-17 02:18:18','1','2026-04-09 14:38:53',0x00),(3075,4,'æ§è½','4','mes_indicator_type',0,'','','','1','2026-02-17 02:18:18','1','2026-04-09 14:38:53',0x00),(3076,5,'æå','5','mes_indicator_type',0,'','','','1','2026-02-17 02:18:18','1','2026-04-09 14:38:53',0x00),(3077,1,'è´å½ç¼ºé·','1','mes_defect_level',0,'danger','','','1','2026-02-17 02:18:18','1','2026-02-21 12:21:12',0x00),(3078,2,'严é缺é·','2','mes_defect_level',0,'warning','','','1','2026-02-17 02:18:18','1','2026-02-21 12:21:15',0x00),(3079,3,'轻微缺é·','3','mes_defect_level',0,'info','','','1','2026-02-17 02:18:18','1','2026-02-21 12:21:19',0x00),(3080,1,'åç½ç','1','mes_cal_shift_type',0,'primary','','','1','2026-02-17 03:40:09','1','2026-02-17 03:40:09',0x00),(3081,2,'两çå','2','mes_cal_shift_type',0,'success','','','1','2026-02-17 03:40:09','1','2026-02-17 03:40:09',0x00),(3082,3,'ä¸çå','3','mes_cal_shift_type',0,'warning','','','1','2026-02-17 03:40:09','1','2026-02-17 03:40:09',0x00),(3083,1,'æå£åº¦','1','mes_cal_shift_method',0,'','','','1','2026-02-17 03:40:09','1','2026-02-17 03:40:09',0x00),(3084,2,'ææ','2','mes_cal_shift_method',0,'','','','1','2026-02-17 03:40:09','1','2026-02-17 03:40:09',0x00),(3085,3,'æå¨','3','mes_cal_shift_method',0,'','','','1','2026-02-17 03:40:09','1','2026-02-17 03:40:09',0x00),(3086,4,'æå¤©','4','mes_cal_shift_method',0,'','','','1','2026-02-17 03:40:09','1','2026-02-17 03:40:09',0x00),(3089,0,'è稿','0','mes_cal_plan_status',0,'info','','','1','2026-02-17 03:40:09','1','2026-02-17 03:40:09',0x00),(3090,1,'已确认','1','mes_cal_plan_status',0,'success','','','1','2026-02-17 03:40:09','1','2026-02-17 03:40:09',0x00),(3100,0,'è稿','0','mes_pro_work_order_status',0,'info','','','1','2026-02-17 11:43:47','1','2026-02-17 11:43:47',0x00),(3101,1,'已确认','1','mes_pro_work_order_status',0,'primary','','','1','2026-02-17 11:43:47','1','2026-02-17 11:43:47',0x00),(3102,2,'已宿','2','mes_pro_work_order_status',0,'success','','','1','2026-02-17 11:43:47','1','2026-02-17 11:43:47',0x00),(3103,3,'已忶','3','mes_pro_work_order_status',0,'warning','','','1','2026-02-17 11:43:47','1','2026-02-17 11:43:47',0x00),(3104,1,'客æ·è®¢å','1','mes_pro_work_order_source_type',0,'primary','','','1','2026-02-17 11:43:47','1','2026-02-17 11:43:47',0x00),(3105,2,'åºåå¤è´§','2','mes_pro_work_order_source_type',0,'success','','','1','2026-02-17 11:43:47','1','2026-02-17 11:43:47',0x00),(3106,1,'èªè¡ç产','1','mes_pro_work_order_type',0,'primary','','','1','2026-02-17 11:43:47','1','2026-02-17 11:43:47',0x00),(3107,2,'代工','2','mes_pro_work_order_type',0,'warning','','','1','2026-02-17 11:43:47','1','2026-02-17 11:43:47',0x00),(3108,3,'éè´','3','mes_pro_work_order_type',0,'info','','','1','2026-02-17 11:43:47','1','2026-02-17 11:43:47',0x00),(3121,1,'IQCï¼æ¥ææ£éªï¼','1','mes_qc_type',0,'primary','','æ¥æè´¨éæ£éª','1','2026-02-18 14:12:05','1','2026-02-18 14:12:05',0x00),(3122,2,'IPQCï¼è¿ç¨æ£éªï¼','2','mes_qc_type',0,'warning','','ç产å¶ç¨è´¨éæ£éª','1','2026-02-18 14:12:05','1','2026-03-24 15:21:34',0x00),(3123,3,'OQCï¼åºè´§æ£éªï¼','3','mes_qc_type',0,'success','','åºè´§è´¨éæ£éª','1','2026-02-18 14:12:05','1','2026-02-18 14:12:05',0x00),(3124,4,'RQCï¼éè´§æ£éªï¼','4','mes_qc_type',0,'danger','','éè´§è´¨éæ£éª','1','2026-02-18 14:12:05','1','2026-09-18 18:10:21',0x00),(3125,0,'å¼å§-å¼å§(SS)','0','mes_pro_link_type',0,'default','','ååºå¼å§åï¼ååºå¯ä»¥å¼å§','1','2026-02-19 04:24:53','1','2026-02-19 04:24:53',0x00),(3126,1,'ç»æ-ç»æ(FF)','1','mes_pro_link_type',0,'default','','ååºç»æåï¼ååºæè½ç»æ','1','2026-02-19 04:24:53','1','2026-02-19 04:24:53',0x00),(3127,2,'å¼å§-ç»æ(SF)','2','mes_pro_link_type',0,'default','','ååºå¼å§åï¼ååºæè½ç»æ','1','2026-02-19 04:24:53','1','2026-02-19 04:24:53',0x00),(3128,3,'ç»æ-å¼å§(FS)','3','mes_pro_link_type',0,'default','','ååºç»æåï¼ååºæè½å¼å§','1','2026-02-19 04:24:53','1','2026-02-19 04:24:53',0x00),(3129,1,'åé','MINUTE','mes_time_unit_type',0,'default','','','1','2026-02-19 04:24:53','1','2026-02-19 04:24:53',0x00),(3130,2,'å°æ¶','HOUR','mes_time_unit_type',0,'default','','','1','2026-02-19 04:24:53','1','2026-02-19 04:24:53',0x00),(3131,3,'天','DAY','mes_time_unit_type',0,'default','','','1','2026-02-19 04:24:53','1','2026-02-19 04:24:53',0x00),(3137,1,'设å¤ç¹æ£','1','mes_dv_subject_type',0,'info','','','1','2026-02-20 01:42:58','1','2026-02-20 01:42:58',0x00),(3138,2,'设å¤ä¿å
»','2','mes_dv_subject_type',0,'success','','','1','2026-02-20 01:42:58','1','2026-02-20 01:42:58',0x00),(3139,1,'å¾
ä¿å
»','0','mes_mainten_record_status',0,'info','',NULL,'admin','2026-02-20 02:59:55','1','2026-04-16 05:32:37',0x00),(3140,2,'已宿','4','mes_mainten_record_status',0,'success','',NULL,'admin','2026-02-20 02:59:55','1','2026-04-16 05:32:37',0x00),(3141,1,'æ£å¸¸','1','mes_mainten_status',0,'success','',NULL,'admin','2026-02-20 02:59:55','admin','2026-02-20 02:59:55',0x00),(3142,2,'å¼å¸¸','0','mes_mainten_status',0,'danger','',NULL,'admin','2026-02-20 02:59:55','admin','2026-02-20 02:59:55',0x00),(3143,1,'天','1','mes_dv_cycle_type',0,'default','','','1','2026-02-20 07:11:43','1','2026-02-20 07:11:43',0x00),(3144,2,'å¨','2','mes_dv_cycle_type',0,'default','','','1','2026-02-20 07:11:43','1','2026-02-20 07:11:43',0x00),(3145,3,'æ','3','mes_dv_cycle_type',0,'default','','','1','2026-02-20 07:11:43','1','2026-02-20 07:11:43',0x00),(3146,4,'å¹´','4','mes_dv_cycle_type',0,'default','','','1','2026-02-20 07:11:43','1','2026-02-20 07:11:43',0x00),(3147,0,'è稿','0','mes_dv_check_plan_status',0,'info','','','1','2026-02-20 07:11:43','1','2026-02-20 07:11:43',0x00),(3148,1,'å·²å¯ç¨','1','mes_dv_check_plan_status',0,'success','','','1','2026-02-20 07:11:43','1','2026-02-20 07:11:43',0x00),(3149,1,'å¾
ç¹æ£','10','mes_dv_check_record_status',0,'info','',NULL,'admin','2026-02-20 09:46:19','admin','2026-02-20 09:46:19',0x00),(3150,2,'已宿','20','mes_dv_check_record_status',0,'success','',NULL,'admin','2026-02-20 09:46:19','admin','2026-02-20 09:46:19',0x00),(3151,1,'æ£å¸¸','1','mes_dv_check_result',0,'success','',NULL,'admin','2026-02-20 09:46:19','admin','2026-02-20 09:46:19',0x00),(3152,2,'å¼å¸¸','2','mes_dv_check_result',0,'danger','',NULL,'admin','2026-02-20 09:46:19','admin','2026-02-20 09:46:19',0x00),(3157,1,'ä¿®å¤æå','1','mes_dv_repair_result',0,'success','','','1','2026-02-20 10:56:24','1','2026-02-20 10:56:24',0x00),(3158,2,'æ¥åº','2','mes_dv_repair_result',0,'danger','','','1','2026-02-20 10:56:24','1','2026-02-20 10:56:24',0x00),(3161,1,'æ ¡éªéè¿','1','mes_qc_check_result',0,'success','','','1','2026-02-20 11:23:35','1','2026-02-20 16:15:54',0x00),(3162,2,'æ ¡éªä¸éè¿','2','mes_qc_check_result',0,'danger','','','1','2026-02-20 11:23:35','1','2026-02-20 16:15:52',0x00),(3166,0,'æªå¤ç½®','0','mes_pro_andon_status',0,'danger','','','1','2026-02-21 00:08:38','1','2026-02-21 00:08:38',0x00),(3167,1,'å·²å¤ç½®','1','mes_pro_andon_status',0,'success','','','1','2026-02-21 00:08:38','1','2026-02-21 00:08:38',0x00),(3168,1,'ä¸çº§','1','mes_pro_andon_level',0,'danger','','','1','2026-02-21 00:08:38','1','2026-02-21 00:08:38',0x00),(3169,2,'äºçº§','2','mes_pro_andon_level',0,'warning','','','1','2026-02-21 00:08:38','1','2026-02-21 00:08:38',0x00),(3170,3,'ä¸çº§','3','mes_pro_andon_level',0,'info','','','1','2026-02-21 00:08:38','1','2026-02-21 00:08:38',0x00),(3171,0,'è稿','0','mes_pro_feedback_status',0,'info','','','1','2026-02-21 00:50:32','1','2026-02-21 00:50:32',0x00),(3172,2,'审æ¹ä¸','2','mes_pro_feedback_status',0,'primary','','','1','2026-02-21 00:50:32','1','2026-03-19 00:51:54',0x00),(3173,3,'å¾
æ£éª','3','mes_pro_feedback_status',0,'warning','','','1','2026-02-21 00:50:32','1','2026-03-19 00:51:54',0x00),(3174,4,'已宿','4','mes_pro_feedback_status',0,'success','','','1','2026-02-21 00:50:32','1','2026-03-19 00:51:54',0x00),(3176,1,'èªè¡æ¥å·¥','1','mes_pro_feedback_type',0,'primary','','','1','2026-02-21 00:50:32','1','2026-02-21 00:50:32',0x00),(3177,2,'ç»ä¸æ¥å·¥','2','mes_pro_feedback_type',0,'success','','','1','2026-02-21 00:50:32','1','2026-02-21 00:50:32',0x00),(3178,1,'PC','PC','mes_pro_feedback_channel',0,'primary','','','1','2026-02-21 00:50:32','1','2026-02-21 00:50:32',0x00),(3179,2,'APP','APP','mes_pro_feedback_channel',0,'success','','','1','2026-02-21 00:50:32','1','2026-02-21 00:50:32',0x00),(3180,3,'PDA','PDA','mes_pro_feedback_channel',0,'info','','','1','2026-02-21 00:50:32','1','2026-02-21 00:50:32',0x00),(3181,1,'æµ®ç¹','1','mes_qc_result_type',0,'primary','','','1','2026-02-21 13:37:17','1','2026-02-21 13:37:17',0x00),(3182,2,'æ´æ°','2','mes_qc_result_type',0,'success','','','1','2026-02-21 13:37:17','1','2026-02-21 13:37:17',0x00),(3183,3,'ææ¬','3','mes_qc_result_type',0,'info','','','1','2026-02-21 13:37:17','1','2026-02-21 13:37:17',0x00),(3184,4,'åå
¸','4','mes_qc_result_type',0,'warning','','','1','2026-02-21 13:37:17','1','2026-02-21 13:37:17',0x00),(3185,5,'æä»¶','5','mes_qc_result_type',0,'danger','','','1','2026-02-21 13:37:17','1','2026-02-21 13:37:17',0x00),(3186,1,'ç产éæ','1','mes_rqc_type',0,'default','','çäº§éææ£éª','1','2026-02-22 06:44:09','1','2026-02-22 06:44:09',0x00),(3187,2,'éå®éè´§','2','mes_rqc_type',0,'default','','éå®éè´§æ£éª','1','2026-02-22 06:44:09','1','2026-02-22 06:44:09',0x00),(3188,1,'èªå¶å·¥åºæ£éª','1','mes_ipqc_type',0,'primary','','','1','2026-02-22 07:01:04','1','2026-02-22 07:01:04',0x00),(3189,2,'馿£','2','mes_ipqc_type',0,'success','','','1','2026-02-22 07:01:04','1','2026-02-22 07:01:04',0x00),(3190,3,'å·¡æ£','3','mes_ipqc_type',0,'warning','','','1','2026-02-22 07:01:04','1','2026-02-22 07:01:04',0x00),(3191,4,'èªæ£','4','mes_ipqc_type',0,'info','','','1','2026-02-22 07:01:04','1','2026-02-22 07:01:04',0x00),(3192,5,'æåæ£éª','5','mes_ipqc_type',0,'danger','','','1','2026-02-22 07:01:04','1','2026-02-22 07:01:04',0x00),(3205,0,'è稿','0','mes_wm_arrival_notice_status',0,'info','','','1','2026-02-22 14:53:18','1','2026-02-22 14:53:18',0x00),(3206,2,'å¾
è´¨æ£','2','mes_wm_arrival_notice_status',0,'warning','','','1','2026-02-22 14:53:18','1','2026-02-26 05:24:40',0x00),(3207,3,'å¾
å
¥åº','3','mes_wm_arrival_notice_status',0,'success','','','1','2026-02-22 14:53:18','1','2026-02-26 05:24:47',0x00),(3208,4,'已宿','4','mes_wm_arrival_notice_status',0,'primary','','','1','2026-02-22 14:53:18','1','2026-02-26 05:24:52',0x00),(3209,0,'è稿','0','mes_wm_item_receipt_status',0,'info','','','1','2026-02-22 14:54:05','1','2026-02-22 14:54:05',0x00),(3210,1,'å¾
䏿¶','2','mes_wm_item_receipt_status',0,'warning','','','1','2026-02-22 14:54:05','1','2026-02-26 08:03:35',0x00),(3211,2,'å¾
æ§è¡å
¥åº','3','mes_wm_item_receipt_status',0,'success','','','1','2026-02-22 14:54:05','1','2026-02-26 08:03:31',0x00),(3212,3,'已宿','4','mes_wm_item_receipt_status',0,'primary','','','1','2026-02-22 14:54:05','1','2026-02-26 08:03:20',0x00),(3213,4,'已忶','5','mes_wm_item_receipt_status',0,'danger','','','1','2026-02-22 14:54:05','1','2026-02-26 08:03:24',0x00),(3214,1,'è稿','0','mes_order_status',0,'info','','','1','2026-02-23 21:16:03','1','2026-02-23 21:16:03',0x00),(3215,2,'已确认','1','mes_order_status',0,'primary','','','1','2026-02-23 21:16:03','1','2026-02-23 21:16:03',0x00),(3216,3,'审æ¹ä¸','2','mes_order_status',0,'warning','','','1','2026-02-23 21:16:03','1','2026-02-23 21:16:03',0x00),(3217,4,'已审æ¹','3','mes_order_status',0,'success','','','1','2026-02-23 21:16:03','1','2026-02-23 21:16:03',0x00),(3218,5,'已宿','4','mes_order_status',0,'success','','','1','2026-02-23 21:16:03','1','2026-02-23 21:16:03',0x00),(3219,6,'已忶','5','mes_order_status',0,'danger','','','1','2026-02-23 21:16:03','1','2026-02-23 21:16:03',0x00),(3220,1,'è稿','0','mes_wm_issue_status',0,'info','','èç¨¿ç¶æï¼æªå®æ','1','2026-02-26 15:54:25','1','2026-02-26 15:54:25',0x00),(3221,2,'已宿','4','mes_wm_issue_status',0,'success','','已宿åºåº','1','2026-02-26 15:54:25','1','2026-02-26 15:54:25',0x00),(3222,1,'è稿','0','mes_wm_product_issue_status',0,'info','','èç¨¿ç¶æï¼å¯ç¼è¾','1','2026-02-26 16:39:12','1','2026-03-23 13:18:02',0x00),(3223,2,'å¾
æ£è´§','2','mes_wm_product_issue_status',0,'warning','','审æ¹ä¸ï¼å¯æ§è¡æ£è´§','1','2026-02-26 16:39:12','1','2026-03-23 13:18:02',0x00),(3224,3,'å¾
æ§è¡é¢åº','3','mes_wm_product_issue_status',0,'primary','','已审æ¹ï¼æ£è´§å®æ','1','2026-02-26 16:39:12','1','2026-03-23 13:18:02',0x00),(3225,4,'已宿','4','mes_wm_product_issue_status',0,'success','','已宿åºåº','1','2026-02-26 16:39:12','1','2026-03-23 13:18:02',0x00),(3226,5,'已忶','5','mes_wm_product_issue_status',0,'success','','已宿åºåº','1','2026-02-26 16:39:12','1','2026-03-23 13:18:02',0x00),(3232,1,'è稿','0','mes_wm_return_issue_status',0,'info','','èç¨¿ç¶æï¼å¯ç¼è¾','1','2026-02-28 14:11:12','1','2026-02-28 14:28:24',0x00),(3233,2,'å¾
æ£éª','1','mes_wm_return_issue_status',0,'default','','已确认ï¼çå¾
è´¨æ£','1','2026-02-28 14:11:12','1','2026-02-28 14:28:28',0x00),(3234,3,'å¾
䏿¶','2','mes_wm_return_issue_status',0,'warning','','æ£éªå®æï¼çå¾
ä»åºä¸æ¶','1','2026-02-28 14:11:12','1','2026-02-28 14:28:31',0x00),(3235,4,'å¾
æ§è¡éæ','3','mes_wm_return_issue_status',0,'primary','','䏿¶å®æï¼çå¾
æ§è¡éææä½','1','2026-02-28 14:11:12','1','2026-02-28 14:28:34',0x00),(3236,5,'已宿','4','mes_wm_return_issue_status',0,'success','','éææ§è¡å®æï¼åºåå·²æ´æ°','1','2026-02-28 14:11:12','1','2026-02-28 14:28:37',0x00),(3237,6,'已忶','5','mes_wm_return_issue_status',0,'danger','','已忶','1','2026-02-28 14:11:12','1','2026-02-28 14:28:40',0x00),(3238,1,'使éæ','1','mes_wm_return_issue_type',0,'success','','使éåï¼ç´æ¥åæ ¼','1','2026-02-28 14:11:12','1','2026-02-28 14:27:47',0x00),(3239,2,'ä¸è¯éæ','2','mes_wm_return_issue_type',0,'danger','','ä¸è¯åéå','1','2026-02-28 14:11:12','1','2026-02-28 14:27:49',0x00),(3240,3,'å
¶ä»éæ','3','mes_wm_return_issue_type',0,'info','','å
¶ä»åå éæ','1','2026-02-28 14:11:12','1','2026-02-28 14:27:55',0x00),(3241,1,'å¾
æ£','0','mes_wm_quality_status',0,'warning','','å¾
æ£ç¶æ','1','2026-02-28 15:00:53','1','2026-02-28 15:00:53',0x00),(3242,2,'åæ ¼','1','mes_wm_quality_status',0,'success','','åæ ¼ç¶æ','1','2026-02-28 15:00:53','1','2026-02-28 15:00:53',0x00),(3243,3,'ä¸åæ ¼','2','mes_wm_quality_status',0,'danger','','ä¸åæ ¼ç¶æ','1','2026-02-28 15:00:53','1','2026-02-28 15:00:53',0x00),(3244,1,'è稿','0','mes_wm_product_receipt_status',0,'info','','èç¨¿ç¶æ','1','2026-03-01 06:03:07','1','2026-03-01 06:03:07',0x00),(3245,2,'å¾
䏿¶','2','mes_wm_product_receipt_status',0,'primary','','å¾
䏿¶','1','2026-03-01 06:03:07','1','2026-03-01 06:03:07',0x00),(3246,3,'å¾
æ§è¡å
¥åº','3','mes_wm_product_receipt_status',0,'warning','','å¾
æ§è¡å
¥åº','1','2026-03-01 06:03:07','1','2026-03-01 06:03:07',0x00),(3247,4,'已宿','4','mes_wm_product_receipt_status',0,'success','','已宿','1','2026-03-01 06:03:07','1','2026-03-01 06:03:07',0x00),(3248,5,'已忶','5','mes_wm_product_receipt_status',0,'danger','','已忶','1','2026-03-01 06:03:07','1','2026-03-01 06:03:07',0x00),(3252,1,'è稿','0','mes_wm_product_sales_status',0,'info','','èç¨¿ç¶æ','1','2026-03-02 08:55:11','1','2026-03-02 08:55:11',0x00),(3253,3,'å¾
æ£è´§','2','mes_wm_product_sales_status',0,'warning','','å¾
æ£è´§ç¶æ','1','2026-03-02 08:55:11','1','2026-03-27 11:44:48',0x00),(3254,4,'å¾
åºåº','3','mes_wm_product_sales_status',0,'primary','','å¾
åºåºç¶æ','1','2026-03-02 08:55:11','1','2026-03-27 11:44:48',0x00),(3255,5,'已宿','4','mes_wm_product_sales_status',0,'success','','å·²å®æç¶æ','1','2026-03-02 08:55:11','1','2026-03-27 11:44:48',0x00),(3256,6,'已忶','5','mes_wm_product_sales_status',0,'danger','','å·²åæ¶ç¶æ','1','2026-03-02 08:55:11','1','2026-03-27 11:44:48',0x00),(3272,1,'è稿','0','mes_wm_misc_receipt_status',0,'info','','èç¨¿ç¶æ','1','2026-03-03 07:33:41','1','2026-03-03 07:33:41',0x00),(3273,2,'å¾
æ§è¡å
¥åº','3','mes_wm_misc_receipt_status',0,'primary','','å¾
æ§è¡å
¥åºç¶æ','1','2026-03-03 07:33:41','1','2026-03-03 07:37:34',0x00),(3274,3,'已宿','4','mes_wm_misc_receipt_status',0,'success','','å·²å®æç¶æ','1','2026-03-03 07:33:41','1','2026-03-03 07:33:41',0x00),(3275,4,'已忶','5','mes_wm_misc_receipt_status',0,'danger','','å·²åæ¶ç¶æ','1','2026-03-03 07:33:41','1','2026-03-03 07:33:41',0x00),(3277,1,'åºåè°æ´','1','mes_wm_misc_receipt_type',0,'primary','','åºåè°æ´å
¥åº','1','2026-03-03 07:34:33','1','2026-03-03 07:34:33',0x00),(3278,1,'åºåè°æ´','1','mes_wm_misc_issue_type',0,'primary','','åºåè°æ´åºåº','1','2026-03-03 07:34:33','1','2026-03-03 07:34:33',0x00),(3279,2,'æ¥åºåºåº','2','mes_wm_misc_issue_type',0,'danger','','æ¥åºåºåº','1','2026-03-03 07:36:13','1','2026-03-03 07:36:13',0x00),(3280,1,'è稿','0','mes_wm_outsource_receipt_status',0,'info','','èç¨¿ç¶æ','1','2026-03-03 14:03:57','1','2026-03-03 14:03:57',0x00),(3281,2,'å¾
æ£éª','1','mes_wm_outsource_receipt_status',0,'warning','','已确认ï¼çå¾
è´¨æ£','1','2026-03-03 14:03:57','1','2026-03-03 14:03:57',0x00),(3282,3,'å¾
䏿¶','2','mes_wm_outsource_receipt_status',0,'primary','','æ£éªå®æï¼çå¾
ä»åºä¸æ¶','1','2026-03-03 14:03:57','1','2026-03-03 14:03:57',0x00),(3283,4,'å¾
æ§è¡å
¥åº','3','mes_wm_outsource_receipt_status',0,'warning','','䏿¶å®æï¼çå¾
æ§è¡å
¥åºæä½','1','2026-03-03 14:03:57','1','2026-03-03 14:03:57',0x00),(3284,5,'已宿','4','mes_wm_outsource_receipt_status',0,'success','','å
¥åºæ§è¡å®æï¼åºåå·²æ´æ°','1','2026-03-03 14:03:57','1','2026-03-03 14:03:57',0x00),(3285,6,'已忶','5','mes_wm_outsource_receipt_status',0,'danger','','已忶','1','2026-03-03 14:03:57','1','2026-03-03 14:03:57',0x00),(3286,1,'è稿','0','mes_wm_outsource_issue_status',0,'info','','èç¨¿ç¶æï¼å¯ç¼è¾ãå é¤ãæ§è¡åºåº','1','2026-03-03 16:31:00','1','2026-03-03 16:31:00',0x00),(3287,2,'å¾
æ£è´§','2','mes_wm_outsource_issue_status',0,'warning','','å¾
æ£è´§ç¶æ','1','2026-03-03 16:31:00','1','2026-03-03 16:31:00',0x00),(3288,3,'å¾
æ§è¡åºåº','3','mes_wm_outsource_issue_status',0,'primary','','å¾
æ§è¡åºåºç¶æ','1','2026-03-03 16:31:00','1','2026-03-03 16:31:00',0x00),(3289,4,'已宿','4','mes_wm_outsource_issue_status',0,'success','','已宿ï¼åºåå·²æ£å','1','2026-03-03 16:31:00','1','2026-03-03 16:31:00',0x00),(3290,5,'已忶','5','mes_wm_outsource_issue_status',0,'danger','','å·²åæ¶ç¶æ','1','2026-03-03 16:31:00','1','2026-03-03 16:31:00',0x00),(3301,1,'è¾å
¥å符','1','mes_md_auto_code_part_type',0,'default','','è¾å
¥å符','1','2026-03-04 14:46:22','1','2026-03-04 15:24:40',0x00),(3302,2,'å½åæ¥æ','2','mes_md_auto_code_part_type',0,'primary','','å½åæ¥ææ¶é´','1','2026-03-04 14:46:22','1','2026-03-04 15:24:40',0x00),(3303,3,'åºå®å符','3','mes_md_auto_code_part_type',0,'success','','åºå®å符','1','2026-03-04 14:46:22','1','2026-03-04 15:24:40',0x00),(3304,4,'æµæ°´å·','4','mes_md_auto_code_part_type',0,'warning','','æµæ°´å·','1','2026-03-04 14:46:22','1','2026-03-04 15:24:40',0x00),(3305,1,'左补é½','1','mes_md_auto_code_padded_method',0,'primary','','左补é½','1','2026-03-04 14:46:22','1','2026-03-04 15:24:40',0x00),(3306,2,'å³è¡¥é½','2','mes_md_auto_code_padded_method',0,'success','','å³è¡¥é½','1','2026-03-04 14:46:22','1','2026-03-04 15:24:40',0x00),(3307,1,'æå¹´','1','mes_md_auto_code_cycle_method',0,'default','','æå¹´å¾ªç¯','1','2026-03-04 14:46:22','1','2026-03-04 15:24:40',0x00),(3308,2,'ææ','2','mes_md_auto_code_cycle_method',0,'primary','','ææå¾ªç¯','1','2026-03-04 14:46:22','1','2026-03-04 15:24:40',0x00),(3309,3,'æå¤©','3','mes_md_auto_code_cycle_method',0,'success','','æå¤©å¾ªç¯','1','2026-03-04 14:46:22','1','2026-03-04 15:24:40',0x00),(3310,4,'æå°æ¶','4','mes_md_auto_code_cycle_method',0,'warning','','æå°æ¶å¾ªç¯','1','2026-03-04 14:46:22','1','2026-03-04 15:24:40',0x00),(3311,5,'æåé','5','mes_md_auto_code_cycle_method',0,'danger','','æåé循ç¯','1','2026-03-04 14:46:22','1','2026-03-04 15:24:40',0x00),(3312,10,'æä¼ å
¥å符','10','mes_md_auto_code_cycle_method',0,'info','','æä¼ å
¥å符循ç¯','1','2026-03-04 14:46:22','1','2026-03-04 15:24:40',0x00),(3313,1,'äºç»´ç ','1','mes_wm_barcode_format',0,'primary','','QR_CODE','1','2026-03-05 14:37:20','1','2026-03-06 13:18:21',0x00),(3314,2,'EAN13 ååæ¡ç ','2','mes_wm_barcode_format',0,'success','','EAN13','1','2026-03-05 14:37:20','1','2026-03-06 13:18:23',0x00),(3315,3,'CODE39 工䏿¡ç ','3','mes_wm_barcode_format',0,'info','','CODE39','1','2026-03-05 14:37:20','1','2026-03-06 13:18:25',0x00),(3316,4,'UPC-A ç¾å½ååç ','4','mes_wm_barcode_format',0,'warning','','UPC_A','1','2026-03-05 14:37:20','1','2026-03-06 13:18:28',0x00),(3318,3,'åºä½','104','mes_wm_barcode_biz_type',0,'default','','AREA','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3319,4,'è£
ç®±å','105','mes_wm_barcode_biz_type',0,'default','','PACKAGE','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3320,5,'åºå','106','mes_wm_barcode_biz_type',0,'default','','STOCK','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3321,6,'æ¹æ¬¡','107','mes_wm_barcode_biz_type',0,'default','','BATCH','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3322,7,'æµè½¬å¡','300','mes_wm_barcode_biz_type',0,'primary','','PROCARD','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3323,8,'å·¥å','301','mes_wm_barcode_biz_type',0,'primary','','WORKORDER','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3324,9,'æµè½¬å','302','mes_wm_barcode_biz_type',0,'primary','','TRANSORDER','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3325,10,'设å¤','400','mes_wm_barcode_biz_type',0,'success','','MACHINERY','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3327,12,'产åç©æ','600','mes_wm_barcode_biz_type',0,'info','','ITEM','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3328,13,'ä¾åºå','601','mes_wm_barcode_biz_type',0,'info','','VENDOR','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3329,14,'å·¥ä½ç«','602','mes_wm_barcode_biz_type',0,'info','','WORKSTATION','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3330,15,'车é´','603','mes_wm_barcode_biz_type',0,'info','','WORKSHOP','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3331,16,'人å','604','mes_wm_barcode_biz_type',0,'info','','USER','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3351,1,'ä»åº','102','mes_wm_barcode_biz_type',0,'','',NULL,'','2026-03-07 06:22:27','','2026-03-07 06:25:19',0x00),(3352,2,'åºåº','103','mes_wm_barcode_biz_type',0,'','',NULL,'','2026-03-07 06:22:27','','2026-03-07 06:25:19',0x00),(3353,11,'å·¥å
·','500','mes_wm_barcode_biz_type',0,'','',NULL,'','2026-03-07 06:22:27','','2026-03-07 06:22:27',0x00),(3354,17,'客æ·','605','mes_wm_barcode_biz_type',0,'','',NULL,'','2026-03-07 06:22:27','','2026-03-07 06:25:19',0x00),(3355,1,'è稿','0','mes_wm_package_status',0,'info','','èç¨¿ç¶æï¼å¯ç¼è¾','1','2026-03-08 02:05:46','1','2026-03-08 02:05:46',0x00),(3356,2,'已宿','4','mes_wm_package_status',0,'success','','è£
ç®±å·²å®æ','1','2026-03-08 02:05:46','1','2026-03-08 02:05:46',0x00),(3357,1,'è稿','0','mes_wm_transfer_status',0,'info','','èç¨¿ç¶æï¼å¯ç¼è¾','1','2026-03-08 11:55:25','1','2026-03-08 11:55:25',0x00),(3358,2,'å¾
确认','1','mes_wm_transfer_status',0,'warning','','å¤é¨è°æ¨å¾
确认å°è´§','1','2026-03-08 11:55:25','1','2026-03-08 11:55:25',0x00),(3359,3,'å¾
䏿¶','2','mes_wm_transfer_status',0,'primary','','å¾
ç»´æ¤ç®æ åºä½æç»','1','2026-03-08 11:55:25','1','2026-03-08 11:55:25',0x00),(3360,4,'å¾
æ§è¡','3','mes_wm_transfer_status',0,'success','','ç®æ åºä½å·²åé
ï¼å¾
æ§è¡è°æ¨','1','2026-03-08 11:55:25','1','2026-03-08 11:55:25',0x00),(3361,5,'已宿','4','mes_wm_transfer_status',0,'success','','è°æ¨å·²å®æ','1','2026-03-08 11:55:25','1','2026-03-08 11:55:25',0x00),(3362,6,'已忶','5','mes_wm_transfer_status',0,'danger','','è°æ¨å·²åæ¶','1','2026-03-08 11:55:25','1','2026-03-08 11:55:25',0x00),(3363,1,'å
é¨è°æ¨','1','mes_wm_transfer_type',0,'success','','å
é¨ä»å¨è°æ¨','1','2026-03-08 11:55:25','1','2026-03-08 11:55:25',0x00),(3364,2,'å¤é¨è°æ¨','2','mes_wm_transfer_type',0,'warning','','å¤é¨é
é/å¤é¨æ¶è´§è°æ¨','1','2026-03-08 11:55:25','1','2026-03-08 11:55:25',0x00),(3365,1,'éæçç¹','1','mes_wm_stock_taking_type',0,'primary','','éæçç¹','1','2026-03-09 00:00:00','1','2026-04-05 15:02:18',0x00),(3366,2,'卿çç¹','2','mes_wm_stock_taking_type',0,'success','','卿çç¹','1','2026-03-09 00:00:00','1','2026-04-05 15:02:18',0x00),(3367,1,'ä»åº','102','mes_wm_stock_taking_plan_param_type',0,'primary','','æä»åºçç¹','1','2026-03-09 00:00:00','1','2026-03-09 00:00:00',0x00),(3368,2,'åºåº','103','mes_wm_stock_taking_plan_param_type',0,'success','','æåºåºçç¹','1','2026-03-09 00:00:00','1','2026-03-09 00:00:00',0x00),(3369,3,'åºä½','104','mes_wm_stock_taking_plan_param_type',0,'info','','æåºä½çç¹','1','2026-03-09 00:00:00','1','2026-03-09 00:00:00',0x00),(3370,4,'ç©æ','600','mes_wm_stock_taking_plan_param_type',0,'warning','','æç©æçç¹','1','2026-03-09 00:00:00','1','2026-03-09 00:00:00',0x00),(3371,5,'æ¹æ¬¡','107','mes_wm_stock_taking_plan_param_type',0,'danger','','ææ¹æ¬¡çç¹','1','2026-03-09 00:00:00','1','2026-03-09 00:00:00',0x00),(3372,1,'è稿','0','mes_wm_stock_taking_task_status',0,'info','','è稿','1','2026-03-09 00:00:00','1','2026-04-05 15:02:18',0x00),(3373,2,'审æ¹ä¸','2','mes_wm_stock_taking_task_status',0,'primary','','çç¹ä»»å¡å®¡æ¹ä¸','1','2026-03-09 00:00:00','1','2026-03-09 00:00:00',0x00),(3374,3,'已宿','4','mes_wm_stock_taking_task_status',0,'success','','已宿','1','2026-03-09 00:00:00','1','2026-04-05 15:02:18',0x00),(3375,4,'已忶','5','mes_wm_stock_taking_task_status',0,'danger','','已忶','1','2026-03-09 00:00:00','1','2026-04-05 15:02:18',0x00),(3377,1,'æ£å¸¸','1','mes_wm_stock_taking_task_line_status',0,'success','','æ£å¸¸','1','2026-03-09 00:00:00','1','2026-04-05 15:02:18',0x00),(3378,2,'çç','2','mes_wm_stock_taking_task_line_status',0,'primary','','çç','1','2026-03-09 00:00:00','1','2026-04-05 15:02:18',0x00),(3379,3,'çäº','3','mes_wm_stock_taking_task_line_status',0,'danger','','çäº','1','2026-03-09 00:00:00','1','2026-04-05 15:02:18',0x00),(3380,6,'è´¨éç¶æ','900','mes_wm_stock_taking_plan_param_type',0,'default','','æè´¨éç¶æçç¹','1','2026-03-09 00:00:00','1','2026-03-09 00:00:00',0x00),(3381,1,'ç©æ','ITEM','mes_md_item_or_product',0,'info','','','1','2026-03-15 01:55:06','1','2026-03-15 01:55:06',0x00),(3382,2,'产å','PRODUCT','mes_md_item_or_product',0,'success','','','1','2026-03-15 01:55:06','1','2026-03-15 01:55:06',0x00),(3383,1,'è稿','0','mes_wm_item_consume_status',0,'info','','èç¨¿ç¶æ','1','2026-03-19 15:06:23','1','2026-03-19 15:06:23',0x00),(3384,2,'已宿','4','mes_wm_item_consume_status',0,'success','','已宿','1','2026-03-19 15:06:23','1','2026-03-19 15:06:23',0x00),(3385,1,'å°è´§éç¥å','100','mes_qc_source_doc_type',0,'primary','','IQC','1','2026-03-26 13:01:09','1','2026-03-26 13:01:09',0x00),(3386,2,'å¤åå
¥åºå','121','mes_qc_source_doc_type',0,'warning','','IQC','1','2026-03-26 13:01:09','1','2026-03-26 13:01:09',0x00),(3387,3,'ç产æ¥å·¥','304','mes_qc_source_doc_type',0,'success','','IPQC','1','2026-03-26 13:01:09','1','2026-03-26 13:01:09',0x00),(3388,4,'éå®åºåºå','118','mes_qc_source_doc_type',0,'info','','OQC','1','2026-03-26 13:01:09','1','2026-03-26 13:01:09',0x00),(3389,5,'ç产éæå','116','mes_qc_source_doc_type',0,'danger','','RQC','1','2026-03-26 13:01:09','1','2026-03-26 13:01:09',0x00),(3390,6,'éå®éè´§å','119','mes_qc_source_doc_type',0,'default','','RQC','1','2026-03-26 13:01:09','1','2026-03-26 13:01:09',0x00),(3397,2,'å¾
æ£æµ','1','mes_wm_product_sales_status',0,'warning','','OQC æ£éªä¸','1','2026-03-27 11:44:48','1','2026-03-27 11:44:48',0x00),(3398,0,'è稿','0','mes_wm_return_vendor_status',0,'info','',NULL,'','2026-03-29 13:49:57','','2026-04-05 15:53:46',0x00),(3399,1,'å¾
æ£è´§','2','mes_wm_return_vendor_status',0,'primary','',NULL,'','2026-03-29 13:49:57','','2026-04-05 15:53:46',0x00),(3400,2,'å¾
æ§è¡éè´§','3','mes_wm_return_vendor_status',0,'warning','',NULL,'','2026-03-29 13:49:57','','2026-04-05 15:53:46',0x00),(3401,3,'已宿','4','mes_wm_return_vendor_status',0,'success','',NULL,'','2026-03-29 13:49:57','','2026-04-05 15:53:46',0x00),(3402,4,'已忶','5','mes_wm_return_vendor_status',0,'danger','',NULL,'','2026-03-29 13:49:57','','2026-04-05 15:53:46',0x00),(3403,1,'è稿','0','mes_wm_sales_notice_status',0,'info','','èç¨¿ç¶æï¼å¯ä»¥ä¿®æ¹åå é¤','1','2026-03-30 08:54:30','1','2026-04-05 15:53:46',0x00),(3404,2,'å¾
åºåº','3','mes_wm_sales_notice_status',0,'success','','å·²æäº¤ç¶æï¼ä¸å¯ä¿®æ¹åå é¤','1','2026-03-30 08:54:30','1','2026-04-05 15:53:46',0x00),(3405,3,'已宿','4','mes_wm_sales_notice_status',0,'','',NULL,'1','2026-03-30 10:02:10','1','2026-04-05 15:53:46',0x00),(3406,1,'è稿','0','mes_wm_misc_issue_status',0,'info','','èç¨¿ç¶æ','1','2026-03-30 15:00:18','1','2026-03-30 15:00:18',0x00),(3407,2,'å¾
åºåº','3','mes_wm_misc_issue_status',0,'warning','','å¾
åºåºç¶æ','1','2026-03-30 15:00:18','1','2026-03-30 15:00:18',0x00),(3408,3,'已宿','4','mes_wm_misc_issue_status',0,'success','','æ§è¡åºåºåçç¶æ','1','2026-03-30 15:00:18','1','2026-03-30 15:00:18',0x00),(3409,4,'已忶','5','mes_wm_misc_issue_status',0,'danger','','å·²åæ¶ç¶æ','1','2026-03-30 15:00:18','1','2026-03-30 15:00:18',0x00),(3415,1,'注å¡','1','mes_cal_calendar_type',0,'primary','','','1','2026-04-01 15:23:14','1','2026-04-01 16:08:31',0x00),(3416,2,'ææå·¥','2','mes_cal_calendar_type',0,'success','','','1','2026-04-01 15:23:14','1','2026-08-25 16:35:23',0x00),(3417,3,'ç»è£
','3','mes_cal_calendar_type',0,'warning','','','1','2026-04-01 15:23:14','1','2026-04-01 16:08:33',0x00),(3418,4,'ä»åº','4','mes_cal_calendar_type',0,'danger','','','1','2026-04-01 15:23:14','1','2026-04-01 16:08:34',0x00),(3419,0,'è稿','0','mes_dv_repair_status',0,'info','','','1','2026-04-03 17:20:23','1','2026-04-03 17:20:23',0x00),(3420,1,'ç»´ä¿®ä¸','1','mes_dv_repair_status',0,'primary','','','1','2026-04-03 17:20:23','1','2026-04-03 17:20:23',0x00),(3421,2,'å¾
éªæ¶','2','mes_dv_repair_status',0,'warning','','','1','2026-04-03 17:20:23','1','2026-04-03 17:20:23',0x00),(3422,3,'已确认','4','mes_dv_repair_status',0,'success','','','1','2026-04-03 17:20:23','1','2026-04-03 17:20:23',0x00),(3423,0,'è稿','0','mes_wm_return_sales_status',0,'info','','','1','2026-04-03 17:20:25','1','2026-04-03 17:20:25',0x00),(3424,1,'å¾
æ£éª','1','mes_wm_return_sales_status',0,'warning','','','1','2026-04-03 17:20:25','1','2026-04-03 17:20:25',0x00),(3425,2,'å¾
æ§è¡','2','mes_wm_return_sales_status',0,'warning','','','1','2026-04-03 17:20:25','1','2026-04-03 17:20:25',0x00),(3426,3,'å¾
䏿¶','3','mes_wm_return_sales_status',0,'primary','','','1','2026-04-03 17:20:25','1','2026-04-03 17:20:25',0x00),(3427,4,'已宿','4','mes_wm_return_sales_status',0,'success','','','1','2026-04-03 17:20:25','1','2026-04-03 17:20:25',0x00),(3428,5,'已忶','5','mes_wm_return_sales_status',0,'danger','','','1','2026-04-03 17:20:25','1','2026-04-03 17:20:25',0x00),(3436,1,'ä¸å·¥','1','mes_pro_work_record_type',0,'success','','','1','2026-04-05 14:07:27','1','2026-04-05 14:07:27',0x00),(3437,2,'ä¸å·¥','2','mes_pro_work_record_type',0,'danger','','','1','2026-04-05 14:07:27','1','2026-04-05 14:07:27',0x00),(3443,1,'è稿','0','mes_wm_product_produce_status',0,'info','','èç¨¿ç¶æ','1','2026-04-05 15:53:46','1','2026-04-05 15:53:46',0x00),(3444,2,'已宿','4','mes_wm_product_produce_status',0,'success','','å·²å®æç¶æ','1','2026-04-05 15:53:46','1','2026-04-05 15:53:46',0x00),(3445,3,'已忶','5','mes_wm_product_produce_status',0,'danger','','å·²åæ¶ç¶æ','1','2026-04-05 15:53:46','1','2026-04-05 15:53:46',0x00),(3446,0,'è稿','0','mes_pro_task_status',0,'default','','PREPARE','1','2026-04-16 09:47:00','1','2026-06-13 10:32:58',0x00),(3447,4,'已宿','4','mes_pro_task_status',0,'success','','FINISHED','1','2026-04-16 09:47:00','1','2026-07-22 08:00:26',0x00),(3448,2,'已忶','5','mes_pro_task_status',0,'danger','','CANCELED','1','2026-04-16 09:47:00','1','2026-06-13 10:32:58',0x00),(3525,1,'æ£å¸¸','0','im_message_status',0,'success','','æ£å¸¸ï¼åå§ç¶æï¼','admin','2026-04-30 15:14:36','admin','2026-06-16 03:41:55',0x00),(3526,2,'å·²æ¤å','2','im_message_status',0,'danger','','å·²æ¤å','admin','2026-04-30 15:14:36','admin','2026-06-16 03:41:55',0x00),(3530,1,'ä¸éè¦åæ§','0','im_message_receipt_status',0,'info','','NO_RECEIPT','admin','2026-04-30 11:35:07','admin','2026-06-14 00:32:47',0x00),(3531,2,'å¾
宿','1','im_message_receipt_status',0,'warning','','PENDING','admin','2026-04-30 11:35:07','admin','2026-06-14 00:32:47',0x00),(3532,3,'已宿','2','im_message_receipt_status',0,'success','','DONE','admin','2026-04-30 11:35:07','admin','2026-06-14 00:32:47',0x00),(3540,1,'æ£å¸¸','0','im_friend_status',0,'success','','æ£å¸¸å¥½åå
³ç³»','admin','2026-04-30 11:35:07','admin','2026-04-30 11:35:07',0x00),(3541,2,'å·²å é¤','1','im_friend_status',0,'danger','','å·²å é¤å¥½åå
³ç³»','admin','2026-04-30 11:35:07','admin','2026-04-30 11:35:07',0x00),(3550,1,'æ£å¸¸','0','im_group_status',0,'success','','群æ£å¸¸','admin','2026-04-30 11:35:07','admin','2026-04-30 11:35:07',0x00),(3551,2,'已解æ£','1','im_group_status',0,'info','','群已解æ£','admin','2026-04-30 11:35:07','admin','2026-04-30 11:35:07',0x00),(3552,1,'群主','1','im_group_member_role',0,'primary','',NULL,'1','2026-05-02 02:14:12','1','2026-05-02 02:14:12',0x00),(3553,2,'管çå','2','im_group_member_role',0,'warning','',NULL,'1','2026-05-02 02:14:12','1','2026-05-02 02:14:12',0x00),(3554,3,'æ®éæå','3','im_group_member_role',0,'info','',NULL,'1','2026-05-02 02:14:12','1','2026-05-02 02:14:12',0x00),(3555,1,'æç´¢','1','im_friend_add_source',0,'default','',NULL,'1','2026-05-04 02:43:41','1','2026-05-05 11:46:57',0x00),(3556,2,'群è','2','im_friend_add_source',0,'default','',NULL,'1','2026-05-04 02:43:41','1','2026-05-05 11:46:53',0x00),(3557,3,'æ«ç ','3','im_friend_add_source',0,'default','',NULL,'1','2026-05-04 02:43:41','1','2026-05-05 11:46:50',0x00),(3558,4,'åç','4','im_friend_add_source',0,'default','',NULL,'1','2026-05-04 02:43:41','1','2026-05-05 11:46:48',0x00),(3559,1,'çå¾
éªè¯','0','im_friend_request_handle_result',0,'warning','',NULL,'1','2026-05-04 02:43:41','1','2026-05-04 02:43:41',0x00),(3560,2,'已添å ','1','im_friend_request_handle_result',0,'success','',NULL,'1','2026-05-04 02:43:41','1','2026-05-04 02:43:41',0x00),(3561,3,'å·²æç»','2','im_friend_request_handle_result',0,'info','',NULL,'1','2026-05-04 02:43:41','1','2026-05-04 02:43:41',0x00),(3562,101,'ææ¬','101','im_content_type',0,'','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3563,102,'å¾ç','102','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3564,103,'è¯é³','103','im_content_type',0,'warning','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3565,104,'è§é¢','104','im_content_type',0,'warning','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3566,105,'æä»¶','105','im_content_type',0,'info','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3568,2101,'æ¤å','2101','im_content_type',0,'danger','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3569,2200,'åæ§','2200','im_content_type',0,'warning','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3570,2201,'已读','2201','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3571,1501,'群å建','1501','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3572,1502,'群信æ¯åæ´','1502','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3573,1503,'æ¶å°æ°çå
¥ç¾¤ç³è¯·','1503','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:47:00',0x00),(3574,1504,'æåé群','1504','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3575,1505,'å
¥ç¾¤ç³è¯·è¢«åæ','1505','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:47:00',0x00),(3576,1506,'å
¥ç¾¤ç³è¯·è¢«æç»','1506','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:47:00',0x00),(3577,1507,'群主转让','1507','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3578,1508,'æå被移åº','1508','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3579,1509,'æåå å
¥','1509','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3580,1510,'èªç±è¿ç¾¤','1510','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3581,1511,'群解æ£','1511','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3582,1512,'æåç¦è¨','1512','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3583,1513,'æååæ¶ç¦è¨','1513','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3584,1514,'å
¨ç¾¤ç¦è¨','1514','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3585,1515,'å
¨ç¾¤åæ¶ç¦è¨','1515','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3586,1516,'æåæµç§°åæ´','1516','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3587,1517,'æ·»å 管çå','1517','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3588,1518,'æ¤é管çå','1518','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3589,1519,'群å
¬ååæ´','1519','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3590,1520,'群ååæ´','1520','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3591,1531,'ç¾¤æ¶æ¯ç½®é¡¶','1531','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3592,1532,'ç¾¤æ¶æ¯åæ¶ç½®é¡¶','1532','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3593,1533,'群å°ç¦åæ´','1533','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3594,1204,'æ°å¢å¥½å','1204','im_content_type',0,'success','',NULL,'admin','2026-05-05 13:26:53','admin','2026-06-16 03:41:55',0x00),(3595,1205,'好å被å é¤','1205','im_content_type',0,'warning','',NULL,'admin','2026-05-05 13:26:53','admin','2026-06-16 03:41:55',0x00),(3596,1,'æç´¢','1','im_group_add_source',0,'','',NULL,'','2026-05-06 09:26:36','','2026-05-06 09:26:36',0x00),(3597,2,'é请','2','im_group_add_source',0,'','',NULL,'','2026-05-06 09:26:36','','2026-05-06 09:26:36',0x00),(3598,3,'æ«ç ','3','im_group_add_source',0,'','',NULL,'','2026-05-06 09:26:36','','2026-05-06 09:26:36',0x00),(3599,4,'åäº«é¾æ¥','4','im_group_add_source',0,'','',NULL,'','2026-05-06 09:26:36','','2026-05-06 09:26:36',0x00),(3600,1,'æªå¤ç','0','im_group_request_handle_result',0,'','',NULL,'','2026-05-06 09:26:36','','2026-05-06 09:26:36',0x00),(3601,2,'åæ','1','im_group_request_handle_result',0,'','',NULL,'','2026-05-06 09:26:36','','2026-05-06 09:26:36',0x00),(3602,3,'æç»','2','im_group_request_handle_result',0,'','',NULL,'','2026-05-06 09:26:36','','2026-05-06 09:26:36',0x00),(1061051,1,'客æ·','1','merchant_type',0,'primary','','客æ·','1','2026-05-10 15:26:09','1','2026-05-10 15:26:09',0x00),(1061052,2,'ä¾åºå','2','merchant_type',0,'success','','ä¾åºå','1','2026-05-10 15:26:09','1','2026-05-10 15:26:09',0x00),(1061053,3,'客æ·/ä¾åºå','3','merchant_type',0,'warning','','客æ·/ä¾åºå','1','2026-05-10 15:26:09','1','2026-05-10 15:26:09',0x00),(1061061,1,'å
¥åºå','1','wms_order_type',0,'success','','','1','2026-05-10 17:51:46','1','2026-05-14 08:14:09',0x00),(1061062,2,'åºåºå','2','wms_order_type',0,'danger','','','1','2026-05-10 17:51:46','1','2026-05-14 08:14:09',0x00),(1061063,3,'ç§»åºå','3','wms_order_type',0,'primary','','','1','2026-05-10 17:51:46','1','2026-05-14 08:14:09',0x00),(1061064,4,'çåºå','4','wms_order_type',0,'warning','','','1','2026-05-10 17:51:46','1','2026-05-14 08:14:09',0x00),(1061071,1,'è稿','0','wms_order_status',0,'info','','è稿','1','2026-05-12 13:40:29','1','2026-05-12 13:40:29',0x00),(1061072,2,'已宿','4','wms_order_status',0,'success','','已宿','1','2026-05-12 13:40:29','1','2026-05-12 13:40:29',0x00),(1061073,3,'å·²ä½åº','5','wms_order_status',0,'danger','','å·²ä½åº','1','2026-05-12 13:40:29','1','2026-05-12 13:40:29',0x00),(1061081,1,'ç产å
¥åº','100','wms_receipt_order_type',0,'success','','','1','2026-05-11 11:21:49','1','2026-05-14 02:21:20',0x00),(1061082,2,'éè´å
¥åº','101','wms_receipt_order_type',0,'primary','','','1','2026-05-11 11:21:49','1','2026-05-14 02:21:20',0x00),(1061083,3,'éè´§å
¥åº','102','wms_receipt_order_type',0,'warning','','','1','2026-05-11 11:21:49','1','2026-05-14 02:21:20',0x00),(1061084,4,'å½è¿å
¥åº','103','wms_receipt_order_type',0,'info','','','1','2026-05-13 16:02:33','1','2026-05-14 02:21:20',0x00),(1061091,1,'éè´§åºåº','200','wms_shipment_order_type',0,'warning','','éè´§åºåº','1','2026-05-12 17:48:35','1','2026-05-12 17:48:35',0x00),(1061092,2,'éå®åºåº','201','wms_shipment_order_type',0,'primary','','éå®åºåº','1','2026-05-12 17:48:35','1','2026-05-12 17:48:35',0x00),(1061093,3,'ç产åºåº','202','wms_shipment_order_type',0,'success','','ç产åºåº','1','2026-05-12 17:48:35','1','2026-05-12 17:48:35',0x00),(1061096,1,'è¯é³','1','im_rtc_call_media_type',0,'','','è¯é³éè¯','admin','2026-05-16 11:34:50','admin','2026-05-16 11:34:50',0x00),(1061097,2,'è§é¢','2','im_rtc_call_media_type',0,'','','è§é¢éè¯','admin','2026-05-16 11:34:50','admin','2026-05-16 11:34:50',0x00),(1061098,1,'ç§è','1','im_rtc_call_conversation_type',0,'primary','','ä¸å¯¹ä¸ç§èéè¯','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061099,2,'群è','2','im_rtc_call_conversation_type',0,'success','','群å
å¤äººéè¯','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061100,1,'å建','10','im_rtc_call_status',0,'info','','éè¯å·²å建ï¼çå¾
æ¥é','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061101,2,'è¿è¡ä¸','20','im_rtc_call_status',0,'primary','','å·²æäººæ¥éï¼éè¯ä¸','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061102,3,'å·²ç»æ','30','im_rtc_call_status',0,'success','','éè¯ç»æ','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061103,1,'éè¯ç»æ','1','im_rtc_call_end_reason',0,'success','','æ¥éå任䏿¹ä¸»å¨ææ','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061104,2,'å·²æç»','2','im_rtc_call_end_reason',0,'warning','','è¢«å«æ¥éåç¹ææ¥','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061105,3,'已忶','3','im_rtc_call_end_reason',0,'info','','䏻嫿¥éå主å¨åæ¶','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061106,4,'æ 人æ¥å¬','4','im_rtc_call_end_reason',0,'info','','æ¯éè¶
æ¶æªæ¥é','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061107,5,'å¯¹æ¹æ£å¿','5','im_rtc_call_end_reason',0,'warning','','对æ¹å¨å¦ä¸éè¯ä¸','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061108,6,'éè¯å¼å¸¸','9','im_rtc_call_end_reason',0,'danger','','ç½ç»ä¸æã设å¤å¤±è´¥ç','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061109,1,'å起人','1','im_rtc_participant_role',0,'primary','','éè¯åèµ·è
','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061110,2,'被é请è
','2','im_rtc_participant_role',0,'info','','被é请å å
¥','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061111,3,'主å¨å å
¥è
','3','im_rtc_participant_role',0,'success','','群éè¯åºæ¯ï¼æè§è
主å¨å å
¥','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061112,1,'é请ä¸','10','im_rtc_participant_status',0,'info','','å·²ååº inviteï¼çå¾
ååº','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061113,2,'å·²å å
¥','20','im_rtc_participant_status',0,'primary','','å·²æ¥éå¹¶è¿å
¥æ¿é´','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061114,3,'å·²æç»','30','im_rtc_participant_status',0,'warning','','æ¥éåç¹ææ¥','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061115,4,'æªåºç','40','im_rtc_participant_status',0,'info','','éè¯å·²ç»æä»æªåºç','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061116,5,'已离å¼','50','im_rtc_participant_status',0,'success','','æ¥éåææ / 离å¼','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061117,1610,'éè¯å¼å§','1610','im_content_type',0,'info','','å
¥æ¶æ¯æµï¼ç§èå®åéç¥ï¼ç¾¤èå
¨å广æ','admin','2026-05-18 03:36:12','admin','2026-06-16 03:41:55',0x00),(1061118,1611,'éè¯ç»æ','1611','im_content_type',0,'info','','å
¥æ¶æ¯æµï¼ç§èåæ°æ³¡ï¼ç¾¤èç³»ç» tip','admin','2026-05-18 03:36:12','admin','2026-06-16 03:41:55',0x00),(1061119,125,'ç´ æ','125','im_content_type',0,'success','','é¢éè¿è¥æ¨éç徿å¡çæ¶æ¯','1','2026-05-18 13:14:34','admin','2026-06-16 03:41:55',0x00),(1061120,1,'坿æ¬','1','im_channel_material_type',0,'primary','','','1','2026-05-19 14:09:25','1','2026-05-19 14:09:25',0x00),(1061121,2,'å¤é¾','2','im_channel_material_type',0,'info','','','1','2026-05-19 14:09:25','1','2026-05-19 14:09:25',0x00),(1061122,7,'SN ç ','109','mes_wm_barcode_biz_type',0,'default','','SN','1','2026-06-13 10:30:30','1','2026-06-13 10:30:30',0x00),(1061123,107,'å并转å','107','im_content_type',0,'','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061124,108,'åç','108','im_content_type',0,'','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061125,115,'表æ
','115','im_content_type',0,'','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061126,1201,'好åç³è¯·è¢«åæ','1201','im_content_type',0,'success','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061127,1202,'好åç³è¯·è¢«æç»','1202','im_content_type',0,'warning','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061128,1203,'æ¶å°æ°ç好åç³è¯·','1203','im_content_type',0,'success','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061129,1207,'å å
¥é»åå','1207','im_content_type',0,'danger','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061130,1208,'ç§»åºé»åå','1208','im_content_type',0,'success','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061131,1209,'好åèµæåæ´','1209','im_content_type',0,'info','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061132,1210,'好åä¿¡æ¯æ¹éæ´æ°','1210','im_content_type',0,'info','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061133,1530,'群æåä¸ªäººè®¾ç½®åæ´','1530','im_content_type',0,'info','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061134,1601,'éè¯ä¿¡ä»¤','1601','im_content_type',0,'info','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061135,1602,'éè¯åä¸è
å å
¥','1602','im_content_type',0,'info','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061136,1603,'éè¯åä¸è
离å¼','1603','im_content_type',0,'info','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061137,10,'éå®é¢ç','10','wms_reserve_biz_type',0,'primary','','éå®è®¢åé¢çåºå','1','2026-06-26 08:15:54','1','2026-06-26 08:15:54',0x00),(1061138,20,'ç产é¢ç','20','wms_reserve_biz_type',0,'success','','ç产工åé¢çåºå','1','2026-06-26 08:15:54','1','2026-06-26 08:15:54',0x00),(1061139,10,'å
¥åº','10','wms_transaction_type',0,'success','','åºåå
¥åº','1','2026-06-26 08:15:54','1','2026-06-26 08:15:54',0x00),(1061140,20,'åºåº','20','wms_transaction_type',0,'warning','','åºååºåº','1','2026-06-26 08:15:54','1','2026-06-26 08:15:54',0x00),(1061141,30,'é¢ç','30','wms_transaction_type',0,'primary','','åºåé¢ç','1','2026-06-26 08:15:54','1','2026-06-26 08:15:54',0x00),(1061142,40,'éæ¾','40','wms_transaction_type',0,'info','','é¢çéæ¾','1','2026-06-26 08:15:54','1','2026-06-26 08:15:54',0x00),(1061143,50,'çç¹','50','wms_transaction_type',0,'default','','åºåçç¹','1','2026-06-26 08:15:54','1','2026-06-26 08:15:54',0x00),(1061144,60,'è°æ¨','60','wms_transaction_type',0,'default','','åºåè°æ¨','1','2026-06-26 08:15:54','1','2026-06-26 08:15:54',0x00),(1061145,0,'é¢çä¸','0','wms_reserve_status',0,'primary','','åºåé¢çä¸','1','2026-06-26 08:15:54','1','2026-06-26 08:15:54',0x00),(1061146,1,'é¨å使ç¨','1','wms_reserve_status',0,'warning','','é¨å已使ç¨','1','2026-06-26 08:15:54','1','2026-06-26 08:15:54',0x00),(1061147,2,'已使ç¨','2','wms_reserve_status',0,'success','','å·²å
¨é¨ä½¿ç¨','1','2026-06-26 08:15:54','1','2026-06-26 08:15:54',0x00),(1061148,3,'已鿾','3','wms_reserve_status',0,'info','','é¢ç已鿾','1','2026-06-26 08:15:54','1','2026-06-26 08:15:54',0x00),(1061149,0,'è稿','0','erp_audit_status',0,'info','','订åèç¨¿ç¶æ','1','2026-06-26 08:46:48','1','2026-06-26 08:46:48',0x00),(1061150,30,'审æ¹ä¸éè¿','30','erp_audit_status',0,'danger','','审æ¹ä¸éè¿','1','2026-06-26 08:46:48','1','2026-06-26 08:46:48',0x00),(1061151,1,'审æ¹ä¸','1','mes_pro_work_order_status',0,'warning','','MESç产工åç¶æ-审æ¹ä¸','1','2026-06-26 09:46:00','1','2026-06-26 09:46:00',0x00),(1061152,5,'审æ¹ä¸éè¿','5','mes_pro_work_order_status',0,'danger','','MESç产工åç¶æ-审æ¹ä¸éè¿','1','2026-06-26 09:46:00','1','2026-06-26 09:46:00',0x00),(1061153,1,'æ°å¼æ ¼å¼','1','mes_pd_param_type',0,'','',NULL,'1','2026-07-02 14:00:17','1','2026-07-02 14:01:19',0x00),(1061154,2,'ææ¬æ ¼å¼','2','mes_pd_param_type',0,'','',NULL,'1','2026-07-02 14:00:31','1','2026-07-02 14:01:15',0x00),(1061155,3,'䏿é项','3','mes_pd_param_type',0,'','',NULL,'1','2026-07-02 14:01:00','1','2026-07-02 14:01:10',0x00),(1061156,4,'æ¶é´æ ¼å¼','4','mes_pd_param_type',0,'','',NULL,'1','2026-07-02 14:01:37','1','2026-07-02 14:01:37',0x00),(1061157,5,'æ¥ææ ¼å¼','5','mes_pd_param_type',0,'','',NULL,'1','2026-07-02 14:01:48','1','2026-07-02 14:01:48',0x00),(1061158,1,'çäº§è¦æ±','1','mes_pd_template_type',0,'','',NULL,'1','2026-07-02 14:02:31','1','2026-07-02 14:02:31',0x00),(1061159,2,'èªæ£è¦æ±','2','mes_pd_template_type',0,'','',NULL,'1','2026-07-02 14:02:42','1','2026-07-02 14:02:42',0x00),(1061160,3,'å·¡æ£è¦æ±','3','mes_pd_template_type',0,'','',NULL,'1','2026-07-02 14:02:54','1','2026-07-02 14:02:54',0x00),(1061161,0,'å¾
åå¸','0','mes_pd_project_status',0,'info','','','1','2026-07-03 02:17:25','1','2026-07-03 02:17:25',0x00),(1061162,1,'å¾
ä¸ä¼ ','1','mes_pd_project_status',0,'primary','','','1','2026-07-03 02:17:25','1','2026-07-03 02:17:25',0x00),(1061163,2,'å¾
å®¡æ ¸','2','mes_pd_project_status',0,'warning','','','1','2026-07-03 02:17:25','1','2026-07-03 02:17:25',0x00),(1061164,4,'å¾
彿¡£','3','mes_pd_project_status',0,'success','','','1','2026-07-03 02:17:25','1','2026-08-13 07:48:14',0x00),(1061165,5,'已彿¡£','4','mes_pd_project_status',0,'danger','','','1','2026-07-03 02:17:25','1','2026-08-13 07:48:14',0x00),(1061166,0,'å¾
å®¡æ ¸','0','mes_pd_document_audit_status',0,'info','','','1','2026-07-03 02:17:25','1','2026-07-03 02:17:25',0x00),(1061167,1,'å®¡æ ¸éè¿','1','mes_pd_document_audit_status',0,'success','','','1','2026-07-03 02:17:25','1','2026-07-03 02:17:25',0x00),(1061168,2,'å®¡æ ¸ä¸éè¿','2','mes_pd_document_audit_status',0,'danger','','','1','2026-07-03 02:17:25','1','2026-07-03 02:17:25',0x00),(1061169,0,'å¾
彿¡£','0','mes_pd_archive_status',0,'info','','','1','2026-07-03 02:17:25','1','2026-07-03 02:17:25',0x00),(1061170,1,'已彿¡£','1','mes_pd_archive_status',0,'success','','','1','2026-07-03 02:17:25','1','2026-07-03 02:17:25',0x00),(1061171,1,'ç·','1','hrm_gender',0,'','',NULL,'1','2026-07-06 11:00:38','1','2026-07-06 11:00:38',0x00),(1061172,2,'女','2','hrm_gender',0,'','',NULL,'1','2026-07-06 11:00:47','1','2026-07-06 11:00:47',0x00),(1061173,1,'å¨è','1','hrm_employee_status',0,'','',NULL,'1','2026-07-06 11:01:37','1','2026-07-06 11:01:37',0x00),(1061174,2,'è¯ç¨','2','hrm_employee_status',0,'','',NULL,'1','2026-07-06 11:01:44','1','2026-07-06 11:01:44',0x00),(1061175,3,'离è','3','hrm_employee_status',0,'','',NULL,'1','2026-07-06 11:01:49','1','2026-07-06 11:01:49',0x00),(1061176,1,'é«ä¸','1','hrm_degree',0,'','',NULL,'1','2026-07-06 11:14:01','1','2026-07-06 11:14:01',0x00),(1061177,2,'大ä¸','2','hrm_degree',0,'','',NULL,'1','2026-07-06 11:14:15','1','2026-07-06 11:14:15',0x00),(1061178,3,'æ¬ç§','3','hrm_degree',0,'','',NULL,'1','2026-07-06 11:14:26','1','2026-07-06 11:14:26',0x00),(1061179,4,'ç¡å£«','4','hrm_degree',0,'','',NULL,'1','2026-07-06 11:14:32','1','2026-07-06 11:14:32',0x00),(1061180,5,'å士','5','hrm_degree',0,'','',NULL,'1','2026-07-06 11:14:40','1','2026-07-06 11:14:40',0x00),(1061181,1,'äºå','1','hrm_leave_type',0,'','',NULL,'1','2026-07-06 11:16:00','1','2026-07-06 11:16:00',0x00),(1061182,2,'ç
å','2','hrm_leave_type',0,'','',NULL,'1','2026-07-06 11:17:02','1','2026-07-06 11:17:02',0x00),(1061183,3,'å¹´å','3','hrm_leave_type',0,'','',NULL,'1','2026-07-06 11:17:19','1','2026-07-06 11:17:19',0x00),(1061184,4,'å©å','4','hrm_leave_type',0,'','',NULL,'1','2026-07-06 11:17:27','1','2026-07-06 11:17:27',0x00),(1061185,5,'产å','5','hrm_leave_type',0,'','',NULL,'1','2026-07-06 11:17:37','1','2026-07-06 11:17:37',0x00),(1061186,6,'丧å','6','hrm_leave_type',0,'','',NULL,'1','2026-07-06 11:17:44','1','2026-07-06 11:17:44',0x00),(1061187,1,'å¹³è°','1','hrm_transfer_type',0,'','',NULL,'1','2026-07-06 11:18:09','1','2026-07-06 11:18:09',0x00),(1061188,2,'åè','2','hrm_transfer_type',0,'','',NULL,'1','2026-07-06 11:18:16','1','2026-07-06 11:18:16',0x00),(1061189,3,'éè','3','hrm_transfer_type',0,'','',NULL,'1','2026-07-06 11:18:22','1','2026-07-06 11:18:22',0x00),(1061190,1,'主å¨ç¦»è','1','hrm_resignation_type',0,'','',NULL,'1','2026-07-06 11:20:26','1','2026-07-06 11:20:26',0x00),(1061191,2,'被å¨ç¦»è','2','hrm_resignation_type',0,'','',NULL,'1','2026-07-06 11:20:35','1','2026-07-06 11:20:35',0x00),(1061192,3,'ååå°æ','3','hrm_resignation_type',0,'','',NULL,'1','2026-07-06 11:20:44','1','2026-07-06 11:20:44',0x00),(1061193,1,'æ£å¸¸','1','hrm_clock_type',0,'','',NULL,'1','2026-07-06 11:21:04','1','2026-07-06 11:21:04',0x00),(1061194,2,'è¿å°/æ©é','2','hrm_clock_type',0,'','',NULL,'1','2026-07-06 11:21:19','1','2026-07-06 11:21:19',0x00),(1061195,3,'缺å¡','3','hrm_clock_type',0,'','',NULL,'1','2026-07-06 11:21:26','1','2026-07-06 11:21:26',0x00),(1061196,0,'å¾
确认','0','hrm_salary_status',0,'','',NULL,'1','2026-07-06 11:22:05','1','2026-07-06 11:22:05',0x00),(1061197,1,'已确认','10','hrm_salary_status',0,'','',NULL,'1','2026-07-06 11:22:16','1','2026-07-06 11:22:16',0x00),(1061198,2,'已忾','20','hrm_salary_status',0,'','',NULL,'1','2026-07-06 11:22:25','1','2026-07-06 11:22:25',0x00),(1061199,1,'æªå¼å§','0','hrm_handover_status',0,'','',NULL,'1','2026-07-06 11:23:08','1','2026-07-06 11:23:08',0x00),(1061200,2,'è¿è¡ä¸','10','hrm_handover_status',0,'','',NULL,'1','2026-07-06 11:23:18','1','2026-07-06 11:23:18',0x00),(1061201,3,'已宿','20','hrm_handover_status',0,'','',NULL,'1','2026-07-06 11:23:28','1','2026-07-06 11:23:28',0x00),(1061202,1,'é¶è¡è½¬è´¦','1','hrm_payment_method',0,'','',NULL,'1','2026-07-06 11:23:45','1','2026-07-06 11:23:45',0x00),(1061203,2,'ç°é','2','hrm_payment_method',0,'','',NULL,'1','2026-07-06 11:23:52','1','2026-07-06 11:23:52',0x00),(1061204,3,'æ¯ç¥¨','3','hrm_payment_method',0,'','',NULL,'1','2026-07-06 11:23:59','1','2026-07-06 11:23:59',0x00),(1061205,1,'åæ','1','MDM_ITEM_TYPE',0,'','',NULL,'1','2026-07-14 12:04:36','1','2026-07-14 12:04:36',0x00),(1061206,2,'åæå','2','MDM_ITEM_TYPE',0,'','',NULL,'1','2026-07-14 12:04:47','1','2026-07-14 12:04:47',0x00),(1061207,3,'æå','3','MDM_ITEM_TYPE',0,'','',NULL,'1','2026-07-14 12:04:54','1','2026-07-14 12:04:54',0x00),(1061208,4,'è¾
æ','4','MDM_ITEM_TYPE',0,'','',NULL,'1','2026-07-14 12:05:02','1','2026-07-14 12:05:02',0x00),(1061209,0,'è稿','0','mes_pro_mps_status',0,'info','','','1','2026-07-17 02:04:33','1','2026-07-17 02:04:33',0x00),(1061210,1,'å·²ä¸å','1','mes_pro_mps_status',0,'success','','','1','2026-07-17 02:04:33','1','2026-07-17 02:04:33',0x00),(1061211,2,'已宿','2','mes_pro_mps_status',0,'primary','','','1','2026-07-17 02:04:33','1','2026-07-17 02:04:33',0x00),(1061212,3,'已忶','3','mes_pro_mps_status',0,'danger','','','1','2026-07-17 02:04:33','1','2026-07-17 02:04:33',0x00),(1061213,1,'æè®¿','1','crm_business_end_status_type',0,'','',NULL,'1','2026-07-20 11:00:15','1','2026-07-20 11:00:15',0x00),(1061214,2,'æç¾çº¦','2','crm_business_end_status_type',0,'','',NULL,'1','2026-07-20 11:00:25','1','2026-07-20 11:00:25',0x00),(1061215,3,'ç¾çº¦','3','crm_business_end_status_type',0,'','',NULL,'1','2026-07-20 11:00:31','1','2026-07-20 11:00:31',0x00),(1061216,4,'失æ','4','crm_business_end_status_type',0,'','',NULL,'1','2026-07-20 11:00:38','1','2026-07-20 11:00:38',0x00),(1061217,1,'ç产ä¸','1','mes_pro_task_status',0,'processing','','任塿£å¨ç产ä¸','admin','2026-07-22 07:59:56','admin','2026-07-22 07:59:56',0x00),(1061218,2,'é¨å宿','2','mes_pro_task_status',0,'warning','','ä»»å¡é¨å宿','admin','2026-07-22 08:00:15','admin','2026-07-22 08:00:15',0x00),(1061219,1,'å¾
è¯å®¡','0','mes_ncr_status',0,'','','å¾
è¯å®¡','1','2026-08-06 09:25:25','1','2026-08-06 09:25:25',0x00),(1061220,2,'å·²è¯å®¡','1','mes_ncr_status',0,'','','å·²è¯å®¡','1','2026-08-06 09:25:25','1','2026-08-06 09:25:25',0x00),(1061221,3,'å·²å¤ç½®','2','mes_ncr_status',0,'','','å·²å¤ç½®','1','2026-08-06 09:25:25','1','2026-08-06 09:25:25',0x00),(1061222,4,'å·²å
³é','3','mes_ncr_status',0,'','','å·²å
³é','1','2026-08-06 09:25:25','1','2026-08-06 09:25:25',0x00),(1061223,1,'éè´§','1','mes_ncr_disposition',0,'','','éè´§','1','2026-08-06 09:25:25','1','2026-08-06 09:25:25',0x00),(1061224,2,'æ¥åº','2','mes_ncr_disposition',0,'','','æ¥åº','1','2026-08-06 09:25:25','1','2026-08-06 09:25:25',0x00),(1061225,3,'è¿å·¥','3','mes_ncr_disposition',0,'','','è¿å·¥','1','2026-08-06 09:25:25','1','2026-08-06 09:25:25',0x00),(1061226,4,'è®©æ¥æ¥æ¶','4','mes_ncr_disposition',0,'','','è®©æ¥æ¥æ¶','1','2026-08-06 09:25:25','1','2026-08-06 09:25:25',0x00),(1061227,5,'é级使ç¨','5','mes_ncr_disposition',0,'','','é级使ç¨','1','2026-08-06 09:25:25','1','2026-08-06 09:25:25',0x00),(1061228,1,'å¢å¼ç¨ä¸ç¨å票','1','crm_invoice_type',0,'','',NULL,'1','2026-08-10 14:04:20','1','2026-08-10 14:04:20',0x00),(1061229,2,'å¢å¼ç¨æ®éå票','2','crm_invoice_type',0,'','',NULL,'1','2026-08-10 14:04:25','1','2026-08-10 14:04:25',0x00),(1061230,3,'çµåå票','3','crm_invoice_type',0,'','',NULL,'1','2026-08-10 14:04:31','1','2026-08-10 14:04:31',0x00),(1061231,1,'å³å¨åå','1','hrm_contract_type',0,'primary','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061232,2,'å³å¡åå','2','hrm_contract_type',0,'success','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061233,3,'å®ä¹ åè®®','3','hrm_contract_type',0,'warning','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061234,4,'å³å¡æ´¾é£','4','hrm_contract_type',0,'info','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061235,5,'å
¶ä»','5','hrm_contract_type',0,'default','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061236,1,'åºå®æé','1','hrm_contract_term_type',0,'primary','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061237,2,'æ åºå®æé','2','hrm_contract_term_type',0,'success','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061238,3,'以宿ä¸å®å·¥ä½ä»»å¡ä¸ºæé','3','hrm_contract_term_type',0,'warning','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061239,1,'å¾
çæ','1','hrm_contract_status',0,'info','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061240,2,'çæä¸','2','hrm_contract_status',0,'success','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061241,3,'å³å°å°æ','3','hrm_contract_status',0,'warning','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061242,4,'已尿','4','hrm_contract_status',0,'default','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061243,5,'已解é¤','5','hrm_contract_status',0,'danger','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061244,6,'å·²ç»æ¢','6','hrm_contract_status',0,'danger','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061245,1,'æ£å¸¸','0','hrm_contract_terminate_status',0,'success','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061246,2,'已解é¤','1','hrm_contract_terminate_status',0,'danger','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061247,3,'å·²ç»æ¢','2','hrm_contract_terminate_status',0,'warning','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1065310,1,'年度','1','crm_sales_target_period_type',0,'primary','','','1','2026-08-12 07:21:28','1','2026-08-12 07:21:28',0x00),(1065311,2,'å£åº¦','2','crm_sales_target_period_type',0,'success','','','1','2026-08-12 07:21:28','1','2026-08-12 07:21:28',0x00),(1065312,3,'æåº¦','3','crm_sales_target_period_type',0,'warning','','','1','2026-08-12 07:21:28','1','2026-08-12 07:21:28',0x00),(1065320,1,'个人','1','crm_sales_target_dimension',0,'primary','','','1','2026-08-12 07:21:28','1','2026-08-12 07:21:28',0x00),(1065321,2,'é¨é¨','2','crm_sales_target_dimension',0,'success','','','1','2026-08-12 07:21:28','1','2026-08-12 07:21:28',0x00),(1065322,3,'产å','3','crm_sales_target_dimension',0,'warning','','','1','2026-08-12 07:21:28','1','2026-08-12 07:21:28',0x00),(1065330,0,'æªçæ','0','crm_sales_target_status',0,'info','','','1','2026-08-12 07:21:28','1','2026-08-12 07:21:28',0x00),(1065331,1,'å·²çæ','1','crm_sales_target_status',0,'success','','','1','2026-08-12 07:21:28','1','2026-08-12 07:21:28',0x00),(1065332,2,'å·²ç»æ','2','crm_sales_target_status',0,'warning','','','1','2026-08-12 07:21:28','1','2026-08-12 07:21:28',0x00),(1065333,3,'å·²ä½åº','3','crm_sales_target_status',0,'danger','','','1','2026-08-12 07:21:28','1','2026-08-12 07:21:28',0x00),(1065334,1,'å¡å°º','1','mes_dv_metering_category',0,'','','å¡å°º','1','2026-08-13 01:36:15','1','2026-08-13 01:36:15',0x00),(1065335,2,'ååå°º','2','mes_dv_metering_category',0,'','','ååå°º','1','2026-08-13 01:36:15','1','2026-08-13 01:36:15',0x00),(1065336,3,'åå表','3','mes_dv_metering_category',0,'','','åå表','1','2026-08-13 01:36:15','1','2026-08-13 01:36:15',0x00),(1065337,4,'温度计','4','mes_dv_metering_category',0,'','','温度计','1','2026-08-13 01:36:15','1','2026-08-13 01:36:15',0x00),(1065338,5,'ä¸ç¨è¡¨','5','mes_dv_metering_category',0,'','','ä¸ç¨è¡¨','1','2026-08-13 01:36:15','1','2026-08-13 01:36:15',0x00),(1065339,6,'天平ç ç ','6','mes_dv_metering_category',0,'','','天平ç ç ','1','2026-08-13 01:36:15','1','2026-08-13 01:36:15',0x00),(1065340,7,'å
¶ä»','7','mes_dv_metering_category',0,'','','å
¶ä»','1','2026-08-13 01:36:15','1','2026-08-13 01:36:15',0x00),(1065341,1,'å¨ç¨','1','mes_dv_metering_status',0,'success','','å¨ç¨','1','2026-08-13 01:36:15','1','2026-08-13 01:36:15',0x00),(1065342,2,'åç¨','2','mes_dv_metering_status',0,'info','','åç¨','1','2026-08-13 01:36:15','1','2026-08-13 01:36:15',0x00),(1065343,3,'æ¥åº','3','mes_dv_metering_status',0,'danger','','æ¥åº','1','2026-08-13 01:36:15','1','2026-08-13 01:36:15',0x00),(1065344,1,'åæ ¼','1','mes_dv_metering_check_result',0,'success','','åæ ¼','1','2026-08-13 01:36:15','1','2026-08-13 01:36:15',0x00),(1065345,2,'ä¸åæ ¼','2','mes_dv_metering_check_result',0,'danger','','ä¸åæ ¼','1','2026-08-13 01:36:15','1','2026-08-13 01:36:15',0x00),(1065346,3,'审æ¹ä¸','5','mes_pd_project_status',0,'processing','','BPM 审æ¹ä¸ç¶æ','1','2026-08-13 07:48:27','1','2026-08-13 07:48:27',0x00),(1065410,1,'å¯ç¨','0','qc_report_template_status',0,'success','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065411,2,'åç¨','1','qc_report_template_status',0,'info','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065420,1,'è稿','0','qc_report_version_status',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065421,2,'å·²åå¸','1','qc_report_version_status',0,'success','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065422,3,'å·²åç¨','2','qc_report_version_status',0,'info','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065430,1,'çæä¸','0','qc_report_instance_status',0,'processing','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065431,2,'çææå','1','qc_report_instance_status',0,'success','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065432,3,'çæå¤±è´¥','2','qc_report_instance_status',0,'error','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065440,1,'A3','A3','qc_report_page_size',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065441,2,'A4','A4','qc_report_page_size',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065442,3,'A5','A5','qc_report_page_size',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065443,4,'Letter','Letter','qc_report_page_size',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065450,1,'纵å','portrait','qc_report_orientation',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065451,2,'横å','landscape','qc_report_orientation',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065460,1,'éç¨','general','qc_report_industry',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065461,2,'çµåçµå¨','electronics','qc_report_industry',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065462,3,'äºéæºæ¢°','hardware','qc_report_industry',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065463,4,'汽车é¶é¨ä»¶','auto','qc_report_industry',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065464,5,'å¡è¶å¶å','plastic','qc_report_industry',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065465,6,'é£å饮æ','food','qc_report_industry',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065466,7,'å»è¯å»ç','pharma','qc_report_industry',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065501,1,'伿¯æ¥','1','hrm_holiday_type',0,'success','',NULL,'1','2026-09-24 17:47:16','1','2026-09-24 17:47:16',0x00),(1065502,2,'工使¥','2','hrm_holiday_type',0,'primary','',NULL,'1','2026-09-24 17:47:16','1','2026-09-24 17:47:16',0x00),(1065467,1,'ææ¬','text','ai_model_capability',0,'','','','1','2026-10-23 00:00:00','1','2026-10-23 00:00:00',0x00),(1065468,2,'è§è§','vision','ai_model_capability',0,'','','','1','2026-10-23 00:00:00','1','2026-10-23 00:00:00',0x00); |
| | | INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1,1,'ç·','1','system_user_sex',0,'primary','A','æ§å«ç·','admin','2021-01-05 17:03:48','1','2025-12-10 13:19:26',0x00),(2,2,'女','2','system_user_sex',0,'success','','æ§å«å¥³','admin','2021-01-05 17:03:48','1','2023-11-15 23:30:37',0x00),(8,1,'æ£å¸¸','1','infra_job_status',0,'success','','æ£å¸¸ç¶æ','admin','2021-01-05 17:03:48','1','2022-02-16 19:33:38',0x00),(9,2,'æå','2','infra_job_status',0,'danger','','åç¨ç¶æ','admin','2021-01-05 17:03:48','1','2022-02-16 19:33:45',0x00),(12,1,'ç³»ç»å
ç½®','1','infra_config_type',0,'danger','','åæ°ç±»å - ç³»ç»å
ç½®','admin','2021-01-05 17:03:48','1','2022-02-16 19:06:02',0x00),(13,2,'èªå®ä¹','2','infra_config_type',0,'primary','','åæ°ç±»å - èªå®ä¹','admin','2021-01-05 17:03:48','1','2022-02-16 19:06:07',0x00),(14,1,'éç¥','1','system_notice_type',0,'success','','éç¥','admin','2021-01-05 17:03:48','1','2022-02-16 13:05:57',0x00),(15,2,'å
¬å','2','system_notice_type',0,'info','','å
¬å','admin','2021-01-05 17:03:48','1','2022-02-16 13:06:01',0x00),(16,0,'å
¶å®','0','infra_operate_type',0,'default','','å
¶å®æä½','admin','2021-01-05 17:03:48','1','2024-03-14 12:44:19',0x00),(17,1,'æ¥è¯¢','1','infra_operate_type',0,'info','','æ¥è¯¢æä½','admin','2021-01-05 17:03:48','1','2024-03-14 12:44:20',0x00),(18,2,'æ°å¢','2','infra_operate_type',0,'primary','','æ°å¢æä½','admin','2021-01-05 17:03:48','1','2024-03-14 12:44:21',0x00),(19,3,'ä¿®æ¹','3','infra_operate_type',0,'warning','','ä¿®æ¹æä½','admin','2021-01-05 17:03:48','1','2024-03-14 12:44:22',0x00),(20,4,'å é¤','4','infra_operate_type',0,'danger','','å 餿ä½','admin','2021-01-05 17:03:48','1','2024-03-14 12:44:23',0x00),(22,5,'导åº','5','infra_operate_type',0,'default','','å¯¼åºæä½','admin','2021-01-05 17:03:48','1','2024-03-14 12:44:24',0x00),(23,6,'导å
¥','6','infra_operate_type',0,'default','','导å
¥æä½','admin','2021-01-05 17:03:48','1','2024-03-14 12:44:25',0x00),(27,1,'å¼å¯','0','common_status',0,'primary','','å¼å¯ç¶æ','admin','2021-01-05 17:03:48','1','2022-02-16 08:00:39',0x00),(28,2,'å
³é','1','common_status',0,'info','','å
³éç¶æ','admin','2021-01-05 17:03:48','1','2022-02-16 08:00:44',0x00),(29,1,'ç®å½','1','system_menu_type',0,'','','ç®å½','admin','2021-01-05 17:03:48','','2022-02-01 16:43:45',0x00),(30,2,'èå','2','system_menu_type',0,'','','èå','admin','2021-01-05 17:03:48','','2022-02-01 16:43:41',0x00),(31,3,'æé®','3','system_menu_type',0,'','','æé®','admin','2021-01-05 17:03:48','','2022-02-01 16:43:39',0x00),(32,1,'å
ç½®','1','system_role_type',0,'danger','','å
ç½®è§è²','admin','2021-01-05 17:03:48','1','2022-02-16 13:02:08',0x00),(33,2,'èªå®ä¹','2','system_role_type',0,'primary','','èªå®ä¹è§è²','admin','2021-01-05 17:03:48','1','2022-02-16 13:02:12',0x00),(34,1,'å
¨é¨æ°æ®æé','1','system_data_scope',0,'','','å
¨é¨æ°æ®æé','admin','2021-01-05 17:03:48','','2022-02-01 16:47:17',0x00),(35,2,'æå®é¨é¨æ°æ®æé','2','system_data_scope',0,'','','æå®é¨é¨æ°æ®æé','admin','2021-01-05 17:03:48','','2022-02-01 16:47:18',0x00),(36,3,'æ¬é¨é¨æ°æ®æé','3','system_data_scope',0,'','','æ¬é¨é¨æ°æ®æé','admin','2021-01-05 17:03:48','','2022-02-01 16:47:16',0x00),(37,4,'æ¬é¨é¨å以䏿°æ®æé','4','system_data_scope',0,'','','æ¬é¨é¨å以䏿°æ®æé','admin','2021-01-05 17:03:48','','2022-02-01 16:47:21',0x00),(38,5,'ä»
æ¬äººæ°æ®æé','5','system_data_scope',0,'','','ä»
æ¬äººæ°æ®æé','admin','2021-01-05 17:03:48','','2022-02-01 16:47:23',0x00),(39,0,'æå','0','system_login_result',0,'success','','ç»éç»æ - æå','','2021-01-18 06:17:36','1','2022-02-16 13:23:49',0x00),(40,10,'è´¦å·æå¯ç 䏿£ç¡®','10','system_login_result',0,'primary','','ç»éç»æ - è´¦å·æå¯ç 䏿£ç¡®','','2021-01-18 06:17:54','1','2022-02-16 13:24:27',0x00),(41,20,'ç¨æ·è¢«ç¦ç¨','20','system_login_result',0,'warning','','ç»éç»æ - ç¨æ·è¢«ç¦ç¨','','2021-01-18 06:17:54','1','2022-02-16 13:23:57',0x00),(42,30,'éªè¯ç ä¸åå¨','30','system_login_result',0,'info','','ç»éç»æ - éªè¯ç ä¸åå¨','','2021-01-18 06:17:54','1','2022-02-16 13:24:07',0x00),(43,31,'éªè¯ç 䏿£ç¡®','31','system_login_result',0,'info','','ç»éç»æ - éªè¯ç 䏿£ç¡®','','2021-01-18 06:17:54','1','2022-02-16 13:24:11',0x00),(44,100,'æªç¥å¼å¸¸','100','system_login_result',0,'danger','','ç»éç»æ - æªç¥å¼å¸¸','','2021-01-18 06:17:54','1','2022-02-16 13:24:23',0x00),(45,1,'æ¯','true','infra_boolean_string',0,'danger','','Boolean æ¯å¦ç±»å - æ¯','','2021-01-19 03:20:55','1','2022-03-15 23:01:45',0x00),(46,1,'å¦','false','infra_boolean_string',0,'info','','Boolean æ¯å¦ç±»å - å¦','','2021-01-19 03:20:55','1','2022-03-15 23:09:45',0x00),(50,1,'å表ï¼å¢å æ¹æ¥ï¼','1','infra_codegen_template_type',0,'','',NULL,'','2021-02-05 07:09:06','','2022-03-10 16:33:15',0x00),(51,2,'æ 表ï¼å¢å æ¹æ¥ï¼','2','infra_codegen_template_type',0,'','',NULL,'','2021-02-05 07:14:46','','2022-03-10 16:33:19',0x00),(53,0,'åå§åä¸','0','infra_job_status',0,'primary','',NULL,'','2021-02-07 07:46:49','1','2022-02-16 19:33:29',0x00),(57,0,'è¿è¡ä¸','0','infra_job_log_status',0,'primary','','RUNNING','','2021-02-08 10:04:24','1','2022-02-16 19:07:48',0x00),(58,1,'æå','1','infra_job_log_status',0,'success','',NULL,'','2021-02-08 10:06:57','1','2022-02-16 19:07:52',0x00),(59,2,'失败','2','infra_job_log_status',0,'warning','','失败','','2021-02-08 10:07:38','1','2022-02-16 19:07:56',0x00),(60,1,'ä¼å','1','user_type',0,'primary','',NULL,'','2021-02-26 00:16:27','1','2022-02-16 10:22:19',0x00),(61,2,'管çå','2','user_type',0,'success','',NULL,'','2021-02-26 00:16:34','1','2025-04-06 18:37:43',0x00),(62,0,'æªå¤ç','0','infra_api_error_log_process_status',0,'primary','',NULL,'','2021-02-26 07:07:19','1','2022-02-16 20:14:17',0x00),(63,1,'å·²å¤ç','1','infra_api_error_log_process_status',0,'success','',NULL,'','2021-02-26 07:07:26','1','2022-02-16 20:14:08',0x00),(64,2,'已忽ç¥','2','infra_api_error_log_process_status',0,'danger','',NULL,'','2021-02-26 07:07:34','1','2022-02-16 20:14:14',0x00),(66,1,'é¿éäº','ALIYUN','system_sms_channel_code',0,'primary','',NULL,'1','2021-04-05 01:05:26','1','2024-07-22 22:23:25',0x00),(67,1,'éªè¯ç ','1','system_sms_template_type',0,'warning','',NULL,'1','2021-04-05 21:50:57','1','2022-02-16 12:48:30',0x00),(68,2,'éç¥','2','system_sms_template_type',0,'primary','',NULL,'1','2021-04-05 21:51:08','1','2022-02-16 12:48:27',0x00),(69,0,'è¥é','3','system_sms_template_type',0,'danger','',NULL,'1','2021-04-05 21:51:15','1','2022-02-16 12:48:22',0x00),(70,0,'åå§å','0','system_sms_send_status',0,'primary','',NULL,'1','2021-04-11 20:18:33','1','2022-02-16 10:26:07',0x00),(71,1,'åéæå','10','system_sms_send_status',0,'success','',NULL,'1','2021-04-11 20:18:43','1','2022-02-16 10:25:56',0x00),(72,2,'åé失败','20','system_sms_send_status',0,'danger','',NULL,'1','2021-04-11 20:18:49','1','2022-02-16 10:26:03',0x00),(73,3,'ä¸åé','30','system_sms_send_status',0,'info','',NULL,'1','2021-04-11 20:19:44','1','2022-02-16 10:26:10',0x00),(74,0,'çå¾
ç»æ','0','system_sms_receive_status',0,'primary','',NULL,'1','2021-04-11 20:27:43','1','2022-02-16 10:28:24',0x00),(75,1,'æ¥æ¶æå','10','system_sms_receive_status',0,'success','',NULL,'1','2021-04-11 20:29:25','1','2022-02-16 10:28:28',0x00),(76,2,'æ¥æ¶å¤±è´¥','20','system_sms_receive_status',0,'danger','',NULL,'1','2021-04-11 20:29:31','1','2022-02-16 10:28:32',0x00),(77,0,'è°è¯(éé)','DEBUG_DING_TALK','system_sms_channel_code',0,'info','',NULL,'1','2021-04-13 00:20:37','1','2022-02-16 10:10:00',0x00),(80,100,'è´¦å·ç»å½','100','system_login_type',0,'primary','','è´¦å·ç»å½','1','2021-10-06 00:52:02','1','2022-02-16 13:11:34',0x00),(81,101,'社交ç»å½','101','system_login_type',0,'info','','社交ç»å½','1','2021-10-06 00:52:17','1','2022-02-16 13:11:40',0x00),(83,200,'主å¨ç»åº','200','system_login_type',0,'primary','','主å¨ç»åº','1','2021-10-06 00:52:58','1','2022-02-16 13:11:49',0x00),(85,202,'强å¶ç»åº','202','system_login_type',0,'danger','','强å¶éåº','1','2021-10-06 00:53:41','1','2022-02-16 13:11:57',0x00),(86,0,'ç
å','1','bpm_oa_leave_type',0,'primary','',NULL,'1','2021-09-21 22:35:28','1','2022-02-16 10:00:41',0x00),(87,1,'äºå','2','bpm_oa_leave_type',0,'info','',NULL,'1','2021-09-21 22:36:11','1','2022-02-16 10:00:49',0x00),(88,2,'å©å','3','bpm_oa_leave_type',0,'warning','',NULL,'1','2021-09-21 22:36:38','1','2022-02-16 10:00:53',0x00),(112,0,'微信 Wap ç½ç«æ¯ä»','wx_wap','pay_channel_code',0,'success','','微信 Wap ç½ç«æ¯ä»','1','2023-07-19 20:08:06','1','2023-07-19 20:09:08',0x00),(113,1,'微信å
¬ä¼å·æ¯ä»','wx_pub','pay_channel_code',0,'success','','微信å
¬ä¼å·æ¯ä»','1','2021-12-03 10:40:24','1','2023-07-19 20:08:47',0x00),(114,2,'微信å°ç¨åºæ¯ä»','wx_lite','pay_channel_code',0,'success','','微信å°ç¨åºæ¯ä»','1','2021-12-03 10:41:06','1','2023-07-19 20:08:50',0x00),(115,3,'微信 App æ¯ä»','wx_app','pay_channel_code',0,'success','','微信 App æ¯ä»','1','2021-12-03 10:41:20','1','2023-07-19 20:08:56',0x00),(116,10,'æ¯ä»å® PC ç½ç«æ¯ä»','alipay_pc','pay_channel_code',0,'primary','','æ¯ä»å® PC ç½ç«æ¯ä»','1','2021-12-03 10:42:09','1','2023-07-19 20:09:12',0x00),(117,11,'æ¯ä»å® Wap ç½ç«æ¯ä»','alipay_wap','pay_channel_code',0,'primary','','æ¯ä»å® Wap ç½ç«æ¯ä»','1','2021-12-03 10:42:26','1','2023-07-19 20:09:16',0x00),(118,12,'æ¯ä»å® App æ¯ä»','alipay_app','pay_channel_code',0,'primary','','æ¯ä»å® App æ¯ä»','1','2021-12-03 10:42:55','1','2023-07-19 20:09:20',0x00),(119,14,'æ¯ä»å®æ«ç æ¯ä»','alipay_qr','pay_channel_code',0,'primary','','æ¯ä»å®æ«ç æ¯ä»','1','2021-12-03 10:43:10','1','2023-07-19 20:09:28',0x00),(120,10,'éç¥æå','10','pay_notify_status',0,'success','','éç¥æå','1','2021-12-03 11:02:41','1','2023-07-19 10:08:19',0x00),(121,20,'éç¥å¤±è´¥','20','pay_notify_status',0,'danger','','éç¥å¤±è´¥','1','2021-12-03 11:02:59','1','2023-07-19 10:08:21',0x00),(122,0,'çå¾
éç¥','0','pay_notify_status',0,'info','','æªéç¥','1','2021-12-03 11:03:10','1','2023-07-19 10:08:24',0x00),(123,10,'æ¯ä»æå','10','pay_order_status',0,'success','','æ¯ä»æå','1','2021-12-03 11:18:29','1','2023-07-19 18:04:28',0x00),(124,30,'æ¯ä»å
³é','30','pay_order_status',0,'info','','æ¯ä»å
³é','1','2021-12-03 11:18:42','1','2023-07-19 18:05:07',0x00),(125,0,'çå¾
æ¯ä»','0','pay_order_status',0,'info','','æªæ¯ä»','1','2021-12-03 11:18:18','1','2023-07-19 18:04:15',0x00),(600,5,'é¦é¡µ','1','promotion_banner_position',0,'warning','','','1','2023-10-11 07:45:24','1','2023-10-11 07:45:38',0x00),(601,4,'ç§ææ´»å¨é¡µ','2','promotion_banner_position',0,'warning','','','1','2023-10-11 07:45:24','1','2023-10-11 07:45:38',0x00),(602,3,'ç ä»·æ´»å¨é¡µ','3','promotion_banner_position',0,'warning','','','1','2023-10-11 07:45:24','1','2023-10-11 07:45:38',0x00),(603,2,'éæ¶ææ£é¡µ','4','promotion_banner_position',0,'warning','','','1','2023-10-11 07:45:24','1','2023-10-11 07:45:38',0x00),(604,1,'满åé页','5','promotion_banner_position',0,'warning','','','1','2023-10-11 07:45:24','1','2023-10-11 07:45:38',0x00),(1118,0,'çå¾
鿬¾','0','pay_refund_status',0,'info','','çå¾
鿬¾','1','2021-12-10 16:44:59','1','2023-07-19 10:14:39',0x00),(1119,20,'鿬¾å¤±è´¥','20','pay_refund_status',0,'danger','','鿬¾å¤±è´¥','1','2021-12-10 16:45:10','1','2023-07-19 10:15:10',0x00),(1124,10,'鿬¾æå','10','pay_refund_status',0,'success','','鿬¾æå','1','2021-12-10 16:46:26','1','2023-07-19 10:15:00',0x00),(1127,1,'审æ¹ä¸','1','bpm_process_instance_status',0,'default','','æµç¨å®ä¾çç¶æ - è¿è¡ä¸','1','2022-01-07 23:47:22','1','2024-03-16 16:11:45',0x00),(1128,2,'审æ¹éè¿','2','bpm_process_instance_status',0,'success','','æµç¨å®ä¾çç¶æ - 已宿','1','2022-01-07 23:47:49','1','2024-03-16 16:11:54',0x00),(1129,1,'审æ¹ä¸','1','bpm_task_status',0,'primary','','æµç¨å®ä¾çç»æ - å¤çä¸','1','2022-01-07 23:48:32','1','2024-03-08 22:41:37',0x00),(1130,2,'审æ¹éè¿','2','bpm_task_status',0,'success','','æµç¨å®ä¾çç»æ - éè¿','1','2022-01-07 23:48:45','1','2024-03-08 22:41:38',0x00),(1131,3,'审æ¹ä¸éè¿','3','bpm_task_status',0,'danger','','æµç¨å®ä¾çç»æ - ä¸éè¿','1','2022-01-07 23:48:55','1','2024-03-08 22:41:38',0x00),(1132,4,'已忶','4','bpm_task_status',0,'info','','æµç¨å®ä¾çç»æ - æ¤é','1','2022-01-07 23:49:06','1','2024-03-08 22:41:39',0x00),(1133,10,'æµç¨è¡¨å','10','bpm_model_form_type',0,'','','æµç¨ç表åç±»å - æµç¨è¡¨å','103','2022-01-11 23:51:30','103','2022-01-11 23:51:30',0x00),(1134,20,'ä¸å¡è¡¨å','20','bpm_model_form_type',0,'','','æµç¨ç表åç±»å - ä¸å¡è¡¨å','103','2022-01-11 23:51:47','103','2022-01-11 23:51:47',0x00),(1135,10,'è§è²','10','bpm_task_candidate_strategy',0,'info','','ä»»å¡åé
è§åçç±»å - è§è²','103','2022-01-12 23:21:22','1','2024-03-06 02:53:16',0x00),(1136,20,'é¨é¨çæå','20','bpm_task_candidate_strategy',0,'primary','','ä»»å¡åé
è§åçç±»å - é¨é¨çæå','103','2022-01-12 23:21:47','1','2024-03-06 02:53:17',0x00),(1137,21,'é¨é¨çè´è´£äºº','21','bpm_task_candidate_strategy',0,'primary','','ä»»å¡åé
è§åçç±»å - é¨é¨çè´è´£äºº','103','2022-01-12 23:33:36','1','2024-03-06 02:53:18',0x00),(1138,30,'ç¨æ·','30','bpm_task_candidate_strategy',0,'info','','ä»»å¡åé
è§åçç±»å - ç¨æ·','103','2022-01-12 23:34:02','1','2024-03-06 02:53:19',0x00),(1139,40,'ç¨æ·ç»','40','bpm_task_candidate_strategy',0,'warning','','ä»»å¡åé
è§åçç±»å - ç¨æ·ç»','103','2022-01-12 23:34:21','1','2024-03-06 02:53:20',0x00),(1140,60,'æµç¨è¡¨è¾¾å¼','60','bpm_task_candidate_strategy',0,'danger','','ä»»å¡åé
è§åçç±»å - æµç¨è¡¨è¾¾å¼','103','2022-01-12 23:34:43','1','2024-03-06 02:53:20',0x00),(1141,22,'å²ä½','22','bpm_task_candidate_strategy',0,'success','','ä»»å¡åé
è§åçç±»å - å²ä½','103','2022-01-14 18:41:55','1','2024-03-06 02:53:21',0x00),(1145,1,'管çåå°','1','infra_codegen_scene',0,'','','代ç çæçåºæ¯æä¸¾ - 管çåå°','1','2022-02-02 13:15:06','1','2022-03-10 16:32:59',0x00),(1146,2,'ç¨æ· APP','2','infra_codegen_scene',0,'','','代ç çæçåºæ¯æä¸¾ - ç¨æ· APP','1','2022-02-02 13:15:19','1','2022-03-10 16:33:03',0x00),(1150,1,'æ°æ®åº','1','infra_file_storage',0,'default','',NULL,'1','2022-03-15 00:25:28','1','2022-03-15 00:25:28',0x00),(1151,10,'æ¬å°ç£ç','10','infra_file_storage',0,'default','',NULL,'1','2022-03-15 00:25:41','1','2022-03-15 00:25:56',0x00),(1152,11,'FTP æå¡å¨','11','infra_file_storage',0,'default','',NULL,'1','2022-03-15 00:26:06','1','2022-03-15 00:26:10',0x00),(1153,12,'SFTP æå¡å¨','12','infra_file_storage',0,'default','',NULL,'1','2022-03-15 00:26:22','1','2022-03-15 00:26:22',0x00),(1154,20,'S3 对象åå¨','20','infra_file_storage',0,'default','',NULL,'1','2022-03-15 00:26:31','1','2022-03-15 00:26:45',0x00),(1155,103,'çä¿¡ç»å½','103','system_login_type',0,'default','',NULL,'1','2022-05-09 23:57:58','1','2022-05-09 23:58:09',0x00),(1156,1,'password','password','system_oauth2_grant_type',0,'default','','å¯ç 模å¼','1','2022-05-12 00:22:05','1','2022-05-11 16:26:01',0x00),(1157,2,'authorization_code','authorization_code','system_oauth2_grant_type',0,'primary','','ææç 模å¼','1','2022-05-12 00:22:59','1','2022-05-11 16:26:02',0x00),(1158,3,'implicit','implicit','system_oauth2_grant_type',0,'success','','ç®å模å¼','1','2022-05-12 00:23:40','1','2022-05-11 16:26:05',0x00),(1159,4,'client_credentials','client_credentials','system_oauth2_grant_type',0,'default','','客æ·ç«¯æ¨¡å¼','1','2022-05-12 00:23:51','1','2022-05-11 16:26:08',0x00),(1160,5,'refresh_token','refresh_token','system_oauth2_grant_type',0,'info','','å·æ°æ¨¡å¼','1','2022-05-12 00:24:02','1','2022-05-11 16:26:11',0x00),(1162,1,'éå®ä¸','1','product_spu_status',0,'success','','åå SPU ç¶æ - éå®ä¸','1','2022-10-24 21:19:47','1','2022-10-24 21:20:38',0x00),(1163,0,'ä»åºä¸','0','product_spu_status',0,'info','','åå SPU ç¶æ - ä»åºä¸','1','2022-10-24 21:20:54','1','2022-10-24 21:21:22',0x00),(1164,0,'åæ¶ç«','-1','product_spu_status',0,'default','','åå SPU ç¶æ - åæ¶ç«','1','2022-10-24 21:21:11','1','2022-10-24 21:21:11',0x00),(1165,1,'满å','1','promotion_discount_type',0,'success','','伿 ç±»å - 满å','1','2022-11-01 12:46:41','1','2022-11-01 12:50:11',0x00),(1166,2,'ææ£','2','promotion_discount_type',0,'primary','','伿 ç±»å - ææ£','1','2022-11-01 12:46:51','1','2022-11-01 12:50:08',0x00),(1167,1,'åºå®æ¥æ','1','promotion_coupon_template_validity_type',0,'default','','伿 嵿¨¡æ¿çæéæç±»å - åºå®æ¥æ','1','2022-11-02 00:07:34','1','2022-11-04 00:07:49',0x00),(1168,2,'é¢åä¹å','2','promotion_coupon_template_validity_type',0,'default','','伿 嵿¨¡æ¿çæéæç±»å - é¢åä¹å','1','2022-11-02 00:07:54','1','2022-11-04 00:07:52',0x00),(1169,1,'éç¨åµ','1','promotion_product_scope',0,'default','','è¥éçååèå´ - å
¨é¨åååä¸','1','2022-11-02 00:28:22','1','2023-09-28 00:27:42',0x00),(1170,2,'åååµ','2','promotion_product_scope',0,'default','','è¥éçååèå´ - æå®åååä¸','1','2022-11-02 00:28:34','1','2023-09-28 00:27:44',0x00),(1171,1,'æªä½¿ç¨','1','promotion_coupon_status',0,'primary','','伿 åµçç¶æ - å·²é¢å','1','2022-11-04 00:15:08','1','2023-10-03 12:54:38',0x00),(1172,2,'已使ç¨','2','promotion_coupon_status',0,'success','','伿 åµçç¶æ - 已使ç¨','1','2022-11-04 00:15:21','1','2022-11-04 19:16:08',0x00),(1173,3,'å·²è¿æ','3','promotion_coupon_status',0,'info','','伿 åµçç¶æ - å·²è¿æ','1','2022-11-04 00:15:43','1','2022-11-04 19:16:12',0x00),(1174,1,'ç´æ¥é¢å','1','promotion_coupon_take_type',0,'primary','','伿 åµçé¢åæ¹å¼ - ç´æ¥é¢å','1','2022-11-04 19:13:00','1','2022-11-04 19:13:25',0x00),(1175,2,'æå®åæ¾','2','promotion_coupon_take_type',0,'success','','伿 åµçé¢åæ¹å¼ - æå®åæ¾','1','2022-11-04 19:13:13','1','2022-11-04 19:14:48',0x00),(1176,10,'æªå¼å§','10','promotion_activity_status',0,'primary','','ä¿éæ´»å¨çç¶ææä¸¾ - æªå¼å§','1','2022-11-04 22:54:49','1','2022-11-04 22:55:53',0x00),(1177,20,'è¿è¡ä¸','20','promotion_activity_status',0,'success','','ä¿éæ´»å¨çç¶ææä¸¾ - è¿è¡ä¸','1','2022-11-04 22:55:06','1','2022-11-04 22:55:20',0x00),(1178,30,'å·²ç»æ','30','promotion_activity_status',0,'info','','ä¿éæ´»å¨çç¶ææä¸¾ - å·²ç»æ','1','2022-11-04 22:55:41','1','2022-11-04 22:55:41',0x00),(1179,40,'å·²å
³é','40','promotion_activity_status',0,'warning','','ä¿éæ´»å¨çç¶ææä¸¾ - å·²å
³é','1','2022-11-04 22:56:10','1','2022-11-04 22:56:18',0x00),(1180,10,'满 N å
','10','promotion_condition_type',0,'primary','','è¥éçæ¡ä»¶ç±»å - 满 N å
','1','2022-11-04 22:59:45','1','2022-11-04 22:59:45',0x00),(1181,20,'满 N ä»¶','20','promotion_condition_type',0,'success','','è¥éçæ¡ä»¶ç±»å - 满 N ä»¶','1','2022-11-04 23:00:02','1','2022-11-04 23:00:02',0x00),(1182,10,'ç³è¯·å®å','10','trade_after_sale_status',0,'primary','','交æå®åç¶æ - ç³è¯·å®å','1','2022-11-19 20:53:33','1','2022-11-19 20:54:42',0x00),(1183,20,'ååå¾
éè´§','20','trade_after_sale_status',0,'primary','','交æå®åç¶æ - ååå¾
éè´§','1','2022-11-19 20:54:36','1','2022-11-19 20:58:58',0x00),(1184,30,'åå®¶å¾
æ¶è´§','30','trade_after_sale_status',0,'primary','','交æå®åç¶æ - åå®¶å¾
æ¶è´§','1','2022-11-19 20:56:56','1','2022-11-19 20:59:20',0x00),(1185,40,'çå¾
鿬¾','40','trade_after_sale_status',0,'primary','','交æå®åç¶æ - çå¾
鿬¾','1','2022-11-19 20:59:54','1','2022-11-19 21:00:01',0x00),(1186,50,'鿬¾æå','50','trade_after_sale_status',0,'default','','交æå®åç¶æ - 鿬¾æå','1','2022-11-19 21:00:33','1','2022-11-19 21:00:33',0x00),(1187,61,'ä¹°å®¶åæ¶','61','trade_after_sale_status',0,'info','','交æå®åç¶æ - ä¹°å®¶åæ¶','1','2022-11-19 21:01:29','1','2022-11-19 21:01:29',0x00),(1188,62,'åå®¶æç»','62','trade_after_sale_status',0,'info','','交æå®åç¶æ - åå®¶æç»','1','2022-11-19 21:02:17','1','2022-11-19 21:02:17',0x00),(1189,63,'åå®¶ææ¶è´§','63','trade_after_sale_status',0,'info','','交æå®åç¶æ - åå®¶ææ¶è´§','1','2022-11-19 21:02:37','1','2022-11-19 21:03:07',0x00),(1190,10,'å®ä¸é款','10','trade_after_sale_type',0,'success','','交æå®åçç±»å - å®ä¸é款','1','2022-11-19 21:05:05','1','2022-11-19 21:38:23',0x00),(1191,20,'å®å鿬¾','20','trade_after_sale_type',0,'primary','','交æå®åçç±»å - å®å鿬¾','1','2022-11-19 21:05:32','1','2022-11-19 21:38:32',0x00),(1192,10,'ä»
鿬¾','10','trade_after_sale_way',0,'primary','','交æå®åçæ¹å¼ - ä»
鿬¾','1','2022-11-19 21:39:19','1','2022-11-19 21:39:19',0x00),(1193,20,'éè´§éæ¬¾','20','trade_after_sale_way',0,'success','','交æå®åçæ¹å¼ - éè´§éæ¬¾','1','2022-11-19 21:39:38','1','2022-11-19 21:39:49',0x00),(1194,10,'微信å°ç¨åº','10','terminal',0,'default','','ç»ç«¯ - 微信å°ç¨åº','1','2022-12-10 10:51:11','1','2022-12-10 10:51:57',0x00),(1195,20,'H5 ç½é¡µ','20','terminal',0,'default','','ç»ç«¯ - H5 ç½é¡µ','1','2022-12-10 10:51:30','1','2022-12-10 10:51:59',0x00),(1196,11,'微信å
¬ä¼å·','11','terminal',0,'default','','ç»ç«¯ - 微信å
¬ä¼å·','1','2022-12-10 10:54:16','1','2022-12-10 10:52:01',0x00),(1197,31,'è¹æ App','31','terminal',0,'default','','ç»ç«¯ - è¹æ App','1','2022-12-10 10:54:42','1','2022-12-10 10:52:18',0x00),(1198,32,'å®å App','32','terminal',0,'default','','ç»ç«¯ - å®å App','1','2022-12-10 10:55:02','1','2022-12-10 10:59:17',0x00),(1199,0,'æ®é订å','0','trade_order_type',0,'default','','交æè®¢åçç±»å - æ®é订å','1','2022-12-10 16:34:14','1','2022-12-10 16:34:14',0x00),(1200,1,'ç§æè®¢å','1','trade_order_type',0,'default','','交æè®¢åçç±»å - ç§æè®¢å','1','2022-12-10 16:34:26','1','2022-12-10 16:34:26',0x00),(1201,2,'ç 价订å','2','trade_order_type',0,'default','','交æè®¢åçç±»å - æ¼å¢è®¢å','1','2022-12-10 16:34:36','1','2024-09-07 14:18:39',0x00),(1202,3,'æ¼å¢è®¢å','3','trade_order_type',0,'default','','交æè®¢åçç±»å - ç 价订å','1','2022-12-10 16:34:48','1','2024-09-07 14:18:32',0x00),(1203,0,'å¾
æ¯ä»','0','trade_order_status',0,'default','','交æè®¢åç¶æ - å¾
æ¯ä»','1','2022-12-10 16:49:29','1','2022-12-10 16:49:29',0x00),(1204,10,'å¾
åè´§','10','trade_order_status',0,'primary','','交æè®¢åç¶æ - å¾
åè´§','1','2022-12-10 16:49:53','1','2022-12-10 16:51:17',0x00),(1205,20,'å·²åè´§','20','trade_order_status',0,'primary','','交æè®¢åç¶æ - å·²åè´§','1','2022-12-10 16:50:13','1','2022-12-10 16:51:31',0x00),(1206,30,'已宿','30','trade_order_status',0,'success','','交æè®¢åç¶æ - 已宿','1','2022-12-10 16:50:30','1','2022-12-10 16:51:06',0x00),(1207,40,'已忶','40','trade_order_status',0,'danger','','交æè®¢åç¶æ - 已忶','1','2022-12-10 16:50:50','1','2022-12-10 16:51:00',0x00),(1208,0,'æªå®å','0','trade_order_item_after_sale_status',0,'info','','交æè®¢å项çå®åç¶æ - æªå®å','1','2022-12-10 20:58:42','1','2022-12-10 20:59:29',0x00),(1209,10,'å®åä¸','10','trade_order_item_after_sale_status',0,'primary','','交æè®¢å项çå®åç¶æ - å®åä¸','1','2022-12-10 20:59:21','1','2024-07-21 17:01:24',0x00),(1210,20,'已鿬¾','20','trade_order_item_after_sale_status',0,'success','','交æè®¢å项çå®åç¶æ - 已鿬¾','1','2022-12-10 20:59:46','1','2024-07-21 17:01:35',0x00),(1211,1,'å®å
¨å¹é
','1','mp_auto_reply_request_match',0,'primary','','å
¬ä¼å·èªå¨åå¤ç请æ±å
³é®åå¹é
æ¨¡å¼ - å®å
¨å¹é
','1','2023-01-16 23:30:39','1','2023-01-16 23:31:00',0x00),(1212,2,'åå¹é
','2','mp_auto_reply_request_match',0,'success','','å
¬ä¼å·èªå¨åå¤ç请æ±å
³é®åå¹é
æ¨¡å¼ - åå¹é
','1','2023-01-16 23:30:55','1','2023-01-16 23:31:10',0x00),(1213,1,'ææ¬','text','mp_message_type',0,'default','','å
¬ä¼å·çæ¶æ¯ç±»å - ææ¬','1','2023-01-17 22:17:32','1','2023-01-17 22:17:39',0x00),(1214,2,'å¾ç','image','mp_message_type',0,'default','','å
¬ä¼å·çæ¶æ¯ç±»å - å¾ç','1','2023-01-17 22:17:32','1','2023-01-17 14:19:47',0x00),(1215,3,'è¯é³','voice','mp_message_type',0,'default','','å
¬ä¼å·çæ¶æ¯ç±»å - è¯é³','1','2023-01-17 22:17:32','1','2023-01-17 14:20:08',0x00),(1216,4,'è§é¢','video','mp_message_type',0,'default','','å
¬ä¼å·çæ¶æ¯ç±»å - è§é¢','1','2023-01-17 22:17:32','1','2023-01-17 14:21:08',0x00),(1217,5,'å°è§é¢','shortvideo','mp_message_type',0,'default','','å
¬ä¼å·çæ¶æ¯ç±»å - å°è§é¢','1','2023-01-17 22:17:32','1','2023-01-17 14:19:59',0x00),(1218,6,'徿','news','mp_message_type',0,'default','','å
¬ä¼å·çæ¶æ¯ç±»å - 徿','1','2023-01-17 22:17:32','1','2023-01-17 14:22:54',0x00),(1219,7,'é³ä¹','music','mp_message_type',0,'default','','å
¬ä¼å·çæ¶æ¯ç±»å - é³ä¹','1','2023-01-17 22:17:32','1','2023-01-17 14:22:54',0x00),(1220,8,'å°çä½ç½®','location','mp_message_type',0,'default','','å
¬ä¼å·çæ¶æ¯ç±»å - å°çä½ç½®','1','2023-01-17 22:17:32','1','2023-01-17 14:23:51',0x00),(1221,9,'龿¥','link','mp_message_type',0,'default','','å
¬ä¼å·çæ¶æ¯ç±»å - 龿¥','1','2023-01-17 22:17:32','1','2023-01-17 14:24:49',0x00),(1222,10,'äºä»¶','event','mp_message_type',0,'default','','å
¬ä¼å·çæ¶æ¯ç±»å - äºä»¶','1','2023-01-17 22:17:32','1','2023-01-17 14:24:49',0x00),(1223,0,'åå§å','0','system_mail_send_status',0,'primary','','é®ä»¶åéç¶æ - åå§å\n','1','2023-01-26 09:53:49','1','2023-01-26 16:36:14',0x00),(1224,10,'åéæå','10','system_mail_send_status',0,'success','','é®ä»¶åéç¶æ - åéæå','1','2023-01-26 09:54:28','1','2023-01-26 16:36:22',0x00),(1225,20,'åé失败','20','system_mail_send_status',0,'danger','','é®ä»¶åéç¶æ - åé失败','1','2023-01-26 09:54:50','1','2023-01-26 16:36:26',0x00),(1226,30,'ä¸åé','30','system_mail_send_status',0,'info','','é®ä»¶åéç¶æ - ä¸åé','1','2023-01-26 09:55:06','1','2023-01-26 16:36:36',0x00),(1227,1,'éç¥å
¬å','1','system_notify_template_type',0,'primary','','ç«å
信模ççç±»å - éç¥å
¬å','1','2023-01-28 10:35:59','1','2023-01-28 10:35:59',0x00),(1228,2,'ç³»ç»æ¶æ¯','2','system_notify_template_type',0,'success','','ç«å
信模ççç±»å - ç³»ç»æ¶æ¯','1','2023-01-28 10:36:20','1','2023-01-28 10:36:25',0x00),(1230,13,'æ¯ä»å®æ¡ç æ¯ä»','alipay_bar','pay_channel_code',0,'primary','','æ¯ä»å®æ¡ç æ¯ä»','1','2023-02-18 23:32:24','1','2023-07-19 20:09:23',0x00),(1231,10,'Vue2 Element UI æ 忍¡ç','10','infra_codegen_front_type',0,'','','','1','2023-04-13 00:03:55','1','2023-04-13 00:03:55',0x00),(1232,20,'Vue3 Element Plus æ 忍¡ç','20','infra_codegen_front_type',0,'','','','1','2023-04-13 00:04:08','1','2023-04-13 00:04:08',0x00),(1234,30,'Vben2.0 Ant Design Schema 模ç','30','infra_codegen_front_type',1,'','','','1','2023-04-13 00:04:26','1','2025-07-27 10:55:14',0x00),(1244,0,'æä»¶','1','trade_delivery_express_charge_mode',0,'','','','1','2023-05-21 22:46:40','1','2023-05-21 22:46:40',0x00),(1245,1,'æéé','2','trade_delivery_express_charge_mode',0,'','','','1','2023-05-21 22:46:58','1','2023-05-21 22:46:58',0x00),(1246,2,'æä½ç§¯','3','trade_delivery_express_charge_mode',0,'','','','1','2023-05-21 22:47:18','1','2023-05-21 22:47:18',0x00),(1335,11,'订åç§¯åæµæ£','11','member_point_biz_type',0,'','','','1','2023-06-10 12:15:27','1','2023-10-11 07:41:43',0x00),(1336,1,'ç¾å°','1','member_point_biz_type',0,'','','','1','2023-06-10 12:15:48','1','2023-08-20 11:59:53',0x00),(1341,20,'已鿬¾','20','pay_order_status',0,'danger','','已鿬¾','1','2023-07-19 18:05:37','1','2023-07-19 18:05:37',0x00),(1342,21,'è¯·æ±æåï¼ä½æ¯ç»æå¤±è´¥','21','pay_notify_status',0,'warning','','è¯·æ±æåï¼ä½æ¯ç»æå¤±è´¥','1','2023-07-19 18:10:47','1','2023-07-19 18:11:38',0x00),(1343,22,'请æ±å¤±è´¥','22','pay_notify_status',0,'warning','',NULL,'1','2023-07-19 18:11:05','1','2023-07-19 18:11:27',0x00),(1344,4,'微信æ«ç æ¯ä»','wx_native','pay_channel_code',0,'success','','微信æ«ç æ¯ä»','1','2023-07-19 20:07:47','1','2023-07-19 20:09:03',0x00),(1345,5,'微信æ¡ç æ¯ä»','wx_bar','pay_channel_code',0,'success','','微信æ¡ç æ¯ä»\n','1','2023-07-19 20:08:06','1','2023-07-19 20:09:08',0x00),(1346,1,'æ¯ä»å','1','pay_notify_type',0,'primary','','æ¯ä»å','1','2023-07-20 12:23:17','1','2023-07-20 12:23:17',0x00),(1347,2,'鿬¾å','2','pay_notify_type',0,'danger','',NULL,'1','2023-07-20 12:23:26','1','2023-07-20 12:23:26',0x00),(1348,20,'æ¨¡ææ¯ä»','mock','pay_channel_code',0,'default','','æ¨¡ææ¯ä»','1','2023-07-29 11:10:51','1','2023-07-29 03:14:10',0x00),(1349,12,'订åç§¯åæµæ£ï¼æ´ååæ¶ï¼','12','member_point_biz_type',0,'','','','1','2023-08-20 12:00:03','1','2023-10-11 07:42:01',0x00),(1350,0,'管çåè°æ´','0','member_experience_biz_type',0,'','',NULL,'','2023-08-22 12:41:01','','2023-08-22 12:41:01',0x00),(1351,1,'éæ°å¥å±','1','member_experience_biz_type',0,'','',NULL,'','2023-08-22 12:41:01','','2023-08-22 12:41:01',0x00),(1352,11,'ä¸åå¥å±','11','member_experience_biz_type',0,'success','',NULL,'','2023-08-22 12:41:01','1','2023-10-11 07:45:09',0x00),(1353,12,'ä¸åå¥å±ï¼æ´ååæ¶ï¼','12','member_experience_biz_type',0,'warning','',NULL,'','2023-08-22 12:41:01','1','2023-10-11 07:45:01',0x00),(1354,4,'ç¾å°å¥å±','4','member_experience_biz_type',0,'','',NULL,'','2023-08-22 12:41:01','','2023-08-22 12:41:01',0x00),(1355,5,'æ½å¥å¥å±','5','member_experience_biz_type',0,'','',NULL,'','2023-08-22 12:41:01','','2023-08-22 12:41:01',0x00),(1356,1,'å¿«éåè´§','1','trade_delivery_type',0,'','','','1','2023-08-23 00:04:55','1','2023-08-23 00:04:55',0x00),(1357,2,'ç¨æ·èªæ','2','trade_delivery_type',0,'','','','1','2023-08-23 00:05:05','1','2023-08-23 00:05:05',0x00),(1358,3,'åç±»åµ','3','promotion_product_scope',0,'default','','','1','2023-09-01 23:43:07','1','2023-09-28 00:27:47',0x00),(1359,1,'人人åé','1','brokerage_enabled_condition',0,'','','ææç¨æ·é½å¯ä»¥åé','','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1360,2,'æå®åé','2','brokerage_enabled_condition',0,'','','ä»
å¯åå°æå¨è®¾ç½®æ¨å¹¿å','','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1361,1,'馿¬¡ç»å®','1','brokerage_bind_mode',0,'','','åªè¦ç¨æ·æ²¡ææ¨å¹¿äººï¼éæ¶é½å¯ä»¥ç»å®æ¨å¹¿å
³ç³»','','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1362,2,'注åç»å®','2','brokerage_bind_mode',0,'','','ä»
æ°ç¨æ·æ³¨åæ¶æè½ç»å®æ¨å¹¿å
³ç³»','','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1363,3,'è¦çç»å®','3','brokerage_bind_mode',0,'','','å¦æç¨æ·å·²ç»ææ¨å¹¿äººï¼æ¨å¹¿äººä¼è¢«åæ´','','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1364,1,'é±å
','1','brokerage_withdraw_type',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1365,2,'é¶è¡å¡','2','brokerage_withdraw_type',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1366,3,'å¾®ä¿¡æ¶æ¬¾ç ','3','brokerage_withdraw_type',0,'','','æå¨ææ¬¾','','2023-09-28 02:46:05','1','2025-05-10 08:24:25',0x00),(1367,4,'æ¯ä»å®æ¶æ¬¾ç ','4','brokerage_withdraw_type',0,'','','æå¨ææ¬¾','','2023-09-28 02:46:05','1','2025-05-10 08:24:37',0x00),(1368,1,'订åè¿ä½£','1','brokerage_record_biz_type',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1369,2,'ç³è¯·æç°','2','brokerage_record_biz_type',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1370,3,'ç³è¯·æç°é©³å','3','brokerage_record_biz_type',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1371,0,'å¾
ç»ç®','0','brokerage_record_status',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1372,1,'å·²ç»ç®','1','brokerage_record_status',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1373,2,'已忶','2','brokerage_record_status',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1374,0,'å®¡æ ¸ä¸','0','brokerage_withdraw_status',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1375,10,'å®¡æ ¸éè¿','10','brokerage_withdraw_status',0,'success','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1376,11,'æç°æå','11','brokerage_withdraw_status',0,'success','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1377,20,'å®¡æ ¸ä¸éè¿','20','brokerage_withdraw_status',0,'danger','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1378,21,'æç°å¤±è´¥','21','brokerage_withdraw_status',0,'danger','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1379,0,'å·¥åé¶è¡','0','brokerage_bank_name',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1380,1,'建设é¶è¡','1','brokerage_bank_name',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1381,2,'åä¸é¶è¡','2','brokerage_bank_name',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1382,3,'ä¸å½é¶è¡','3','brokerage_bank_name',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1383,4,'交éé¶è¡','4','brokerage_bank_name',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1384,5,'æåé¶è¡','5','brokerage_bank_name',0,'','',NULL,'','2023-09-28 02:46:05','','2023-09-28 02:46:05',0x00),(1385,21,'é±å
','wallet','pay_channel_code',0,'primary','','','1','2023-10-01 21:46:19','1','2023-10-01 21:48:01',0x00),(1386,1,'ç ä»·ä¸','1','promotion_bargain_record_status',0,'default','','','1','2023-10-05 10:41:26','1','2023-10-05 10:41:26',0x00),(1387,2,'ç ä»·æå','2','promotion_bargain_record_status',0,'success','','','1','2023-10-05 10:41:39','1','2023-10-05 10:41:39',0x00),(1388,3,'ç 价失败','3','promotion_bargain_record_status',0,'warning','','','1','2023-10-05 10:41:57','1','2023-10-05 10:41:57',0x00),(1389,0,'æ¼å¢ä¸','0','promotion_combination_record_status',0,'','','','1','2023-10-08 07:24:44','1','2024-10-13 10:08:17',0x00),(1390,1,'æ¼å¢æå','1','promotion_combination_record_status',0,'success','','','1','2023-10-08 07:24:56','1','2024-10-13 10:08:20',0x00),(1391,2,'æ¼å¢å¤±è´¥','2','promotion_combination_record_status',0,'warning','','','1','2023-10-08 07:25:11','1','2024-10-13 10:08:24',0x00),(1392,2,'管çåä¿®æ¹','2','member_point_biz_type',0,'default','','','1','2023-10-11 07:41:34','1','2023-10-11 07:41:34',0x00),(1393,13,'订åç§¯åæµæ£ï¼åä¸ªéæ¬¾ï¼','13','member_point_biz_type',0,'','','','1','2023-10-11 07:42:29','1','2023-10-11 07:42:29',0x00),(1394,21,'订å积åå¥å±','21','member_point_biz_type',0,'default','','','1','2023-10-11 07:42:44','1','2023-10-11 07:42:44',0x00),(1395,22,'订å积åå¥å±ï¼æ´ååæ¶ï¼','22','member_point_biz_type',0,'default','','','1','2023-10-11 07:42:55','1','2023-10-11 07:43:01',0x00),(1396,23,'订å积åå¥å±ï¼åä¸ªéæ¬¾ï¼','23','member_point_biz_type',0,'default','','','1','2023-10-11 07:43:16','1','2023-10-11 07:43:16',0x00),(1397,13,'ä¸åå¥å±ï¼åä¸ªéæ¬¾ï¼','13','member_experience_biz_type',0,'warning','','','1','2023-10-11 07:45:24','1','2023-10-11 07:45:38',0x00),(1398,5,'ç½ä¸è½¬è´¦','5','crm_receivable_return_type',0,'default','','','1','2023-10-18 21:55:24','1','2023-10-18 21:55:24',0x00),(1399,6,'æ¯ä»å®','6','crm_receivable_return_type',0,'default','','','1','2023-10-18 21:55:38','1','2023-10-18 21:55:38',0x00),(1400,7,'微信æ¯ä»','7','crm_receivable_return_type',0,'default','','','1','2023-10-18 21:55:53','1','2023-10-18 21:55:53',0x00),(1401,8,'å
¶ä»','8','crm_receivable_return_type',0,'default','','','1','2023-10-18 21:56:06','1','2023-10-18 21:56:06',0x00),(1402,1,'IT','1','crm_customer_industry',0,'default','','','1','2023-10-28 23:02:15','1','2024-02-18 23:30:38',0x00),(1403,2,'éèä¸','2','crm_customer_industry',0,'default','','','1','2023-10-28 23:02:29','1','2024-02-18 23:30:43',0x00),(1404,3,'æ¿å°äº§','3','crm_customer_industry',0,'default','','','1','2023-10-28 23:02:41','1','2024-02-18 23:30:48',0x00),(1405,4,'å䏿å¡','4','crm_customer_industry',0,'default','','','1','2023-10-28 23:02:54','1','2024-02-18 23:30:54',0x00),(1406,5,'è¿è¾/ç©æµ','5','crm_customer_industry',0,'default','','','1','2023-10-28 23:03:03','1','2024-02-18 23:31:00',0x00),(1407,6,'ç产','6','crm_customer_industry',0,'default','','','1','2023-10-28 23:03:13','1','2024-02-18 23:31:08',0x00),(1408,7,'æ¿åº','7','crm_customer_industry',0,'default','','','1','2023-10-28 23:03:27','1','2024-02-18 23:31:13',0x00),(1409,8,'æåä¼ åª','8','crm_customer_industry',0,'default','','','1','2023-10-28 23:03:37','1','2024-02-18 23:31:20',0x00),(1422,1,'A ï¼éç¹å®¢æ·ï¼','1','crm_customer_level',0,'primary','','','1','2023-10-28 23:07:13','1','2023-10-28 23:07:13',0x00),(1423,2,'B ï¼æ®é客æ·ï¼','2','crm_customer_level',0,'info','','','1','2023-10-28 23:07:35','1','2023-10-28 23:07:35',0x00),(1424,3,'C ï¼éä¼å
客æ·ï¼','3','crm_customer_level',0,'default','','','1','2023-10-28 23:07:53','1','2023-10-28 23:07:53',0x00),(1425,1,'ä¿é','1','crm_customer_source',0,'default','','','1','2023-10-28 23:08:29','1','2023-10-28 23:08:29',0x00),(1426,2,'æç´¢å¼æ','2','crm_customer_source',0,'default','','','1','2023-10-28 23:08:39','1','2023-10-28 23:08:39',0x00),(1427,3,'广å','3','crm_customer_source',0,'default','','','1','2023-10-28 23:08:47','1','2023-10-28 23:08:47',0x00),(1428,4,'转ä»ç»','4','crm_customer_source',0,'default','','','1','2023-10-28 23:08:58','1','2023-10-28 23:08:58',0x00),(1429,5,'çº¿ä¸æ³¨å','5','crm_customer_source',0,'default','','','1','2023-10-28 23:09:12','1','2023-10-28 23:09:12',0x00),(1430,6,'线ä¸å¨è¯¢','6','crm_customer_source',0,'default','','','1','2023-10-28 23:09:22','1','2023-10-28 23:09:22',0x00),(1431,7,'é¢çº¦ä¸é¨','7','crm_customer_source',0,'default','','','1','2023-10-28 23:09:39','1','2023-10-28 23:09:39',0x00),(1432,8,'éæ','8','crm_customer_source',0,'default','','','1','2023-10-28 23:10:04','1','2023-10-28 23:10:04',0x00),(1433,9,'çµè¯å¨è¯¢','9','crm_customer_source',0,'default','','','1','2023-10-28 23:10:18','1','2023-10-28 23:10:18',0x00),(1434,10,'é®ä»¶å¨è¯¢','10','crm_customer_source',0,'default','','','1','2023-10-28 23:10:33','1','2023-10-28 23:10:33',0x00),(1435,10,'Gitee','10','system_social_type',0,'','','','1','2023-11-04 13:04:42','1','2023-11-04 13:04:42',0x00),(1436,20,'éé','20','system_social_type',0,'','','','1','2023-11-04 13:04:54','1','2023-11-04 13:04:54',0x00),(1437,30,'ä¼ä¸å¾®ä¿¡','30','system_social_type',0,'','','','1','2023-11-04 13:05:09','1','2023-11-04 13:05:09',0x00),(1438,31,'微信å
¬ä¼å¹³å°','31','system_social_type',0,'','','','1','2023-11-04 13:05:18','1','2023-11-04 13:05:18',0x00),(1439,32,'å¾®ä¿¡å¼æ¾å¹³å°','32','system_social_type',0,'','','','1','2023-11-04 13:05:30','1','2023-11-04 13:05:30',0x00),(1440,34,'微信å°ç¨åº','34','system_social_type',0,'','','','1','2023-11-04 13:05:38','1','2023-11-04 13:07:16',0x00),(1441,1,'䏿¶','1','crm_product_status',0,'success','','','1','2023-10-30 21:49:34','1','2023-10-30 21:49:34',0x00),(1442,0,'䏿¶','0','crm_product_status',0,'success','','','1','2023-10-30 21:49:13','1','2023-10-30 21:49:13',0x00),(1443,15,'å表','15','infra_codegen_template_type',0,'default','','','1','2023-11-13 23:06:16','1','2023-11-13 23:06:16',0x00),(1444,10,'ä¸»è¡¨ï¼æ 忍¡å¼ï¼','10','infra_codegen_template_type',0,'default','','','1','2023-11-14 12:32:49','1','2023-11-14 12:32:49',0x00),(1445,11,'主表ï¼ERP 模å¼ï¼','11','infra_codegen_template_type',0,'default','','','1','2023-11-14 12:33:05','1','2023-11-14 12:33:05',0x00),(1446,12,'主表ï¼å
嵿¨¡å¼ï¼','12','infra_codegen_template_type',0,'','','','1','2023-11-14 12:33:31','1','2023-11-14 12:33:31',0x00),(1447,1,'è´è´£äºº','1','crm_permission_level',0,'default','','','1','2023-11-30 09:53:12','1','2023-11-30 09:53:12',0x00),(1448,2,'åªè¯»','2','crm_permission_level',0,'','','','1','2023-11-30 09:53:29','1','2023-11-30 09:53:29',0x00),(1449,3,'读å','3','crm_permission_level',0,'','','','1','2023-11-30 09:53:36','1','2023-11-30 09:53:36',0x00),(1450,0,'æªæäº¤','0','crm_audit_status',0,'','','','1','2023-11-30 18:56:59','1','2023-11-30 18:56:59',0x00),(1451,10,'审æ¹ä¸','10','crm_audit_status',0,'','','','1','2023-11-30 18:57:10','1','2023-11-30 18:57:10',0x00),(1452,20,'å®¡æ ¸éè¿','20','crm_audit_status',0,'','','','1','2023-11-30 18:57:24','1','2023-11-30 18:57:24',0x00),(1453,30,'å®¡æ ¸ä¸éè¿','30','crm_audit_status',0,'','','','1','2023-11-30 18:57:32','1','2023-11-30 18:57:32',0x00),(1454,40,'已忶','40','crm_audit_status',0,'','','','1','2023-11-30 18:57:42','1','2023-11-30 18:57:42',0x00),(1456,1,'æ¯ç¥¨','1','crm_receivable_return_type',0,'default','','','1','2023-10-18 21:54:29','1','2023-10-18 21:54:29',0x00),(1457,2,'ç°é','2','crm_receivable_return_type',0,'default','','','1','2023-10-18 21:54:41','1','2023-10-18 21:54:41',0x00),(1458,3,'鮿¿æ±æ¬¾','3','crm_receivable_return_type',0,'default','','','1','2023-10-18 21:54:53','1','2023-10-18 21:54:53',0x00),(1459,4,'çµæ±','4','crm_receivable_return_type',0,'default','','','1','2023-10-18 21:55:07','1','2023-10-18 21:55:07',0x00),(1461,1,'个','1','crm_product_unit',0,'','','','1','2023-12-05 23:02:26','1','2023-12-05 23:02:26',0x00),(1462,2,'å','2','crm_product_unit',0,'','','','1','2023-12-05 23:02:34','1','2023-12-05 23:02:34',0x00),(1463,3,'åª','3','crm_product_unit',0,'','','','1','2023-12-05 23:02:57','1','2023-12-05 23:02:57',0x00),(1464,4,'æ','4','crm_product_unit',0,'','','','1','2023-12-05 23:03:05','1','2023-12-05 23:03:05',0x00),(1465,5,'æ','5','crm_product_unit',0,'','','','1','2023-12-05 23:03:14','1','2023-12-05 23:03:14',0x00),(1466,6,'ç¶','6','crm_product_unit',0,'','','','1','2023-12-05 23:03:20','1','2023-12-05 23:03:20',0x00),(1467,7,'ç','7','crm_product_unit',0,'','','','1','2023-12-05 23:03:30','1','2023-12-05 23:03:30',0x00),(1468,8,'å°','8','crm_product_unit',0,'','','','1','2023-12-05 23:03:41','1','2023-12-05 23:03:41',0x00),(1469,9,'å¨','9','crm_product_unit',0,'','','','1','2023-12-05 23:03:48','1','2023-12-05 23:03:48',0x00),(1470,10,'åå
','10','crm_product_unit',0,'','','','1','2023-12-05 23:04:03','1','2023-12-05 23:04:03',0x00),(1471,11,'ç±³','11','crm_product_unit',0,'','','','1','2023-12-05 23:04:12','1','2023-12-05 23:04:12',0x00),(1472,12,'ç®±','12','crm_product_unit',0,'','','','1','2023-12-05 23:04:25','1','2023-12-05 23:04:25',0x00),(1473,13,'å¥','13','crm_product_unit',0,'','','','1','2023-12-05 23:04:34','1','2023-12-05 23:04:34',0x00),(1474,1,'æçµè¯','1','crm_follow_up_type',0,'','','','1','2024-01-15 20:48:20','1','2024-01-15 20:48:20',0x00),(1475,2,'åçä¿¡','2','crm_follow_up_type',0,'','','','1','2024-01-15 20:48:31','1','2024-01-15 20:48:31',0x00),(1476,3,'ä¸é¨æè®¿','3','crm_follow_up_type',0,'','','','1','2024-01-15 20:49:07','1','2024-01-15 20:49:07',0x00),(1477,4,'微信æ²é','4','crm_follow_up_type',0,'','','','1','2024-01-15 20:49:15','1','2024-01-15 20:49:15',0x00),(1482,4,'转账失败','20','pay_transfer_status',0,'warning','','','1','2023-10-28 16:24:16','1','2025-05-08 12:59:01',0x00),(1483,3,'转账æå','10','pay_transfer_status',0,'success','','','1','2023-10-28 16:23:50','1','2025-05-08 12:58:58',0x00),(1484,2,'转账è¿è¡ä¸','5','pay_transfer_status',0,'info','','','1','2023-10-28 16:23:12','1','2025-05-08 12:58:54',0x00),(1485,1,'çå¾
转账','0','pay_transfer_status',0,'default','','','1','2023-10-28 16:21:43','1','2023-10-28 16:23:22',0x00),(1486,10,'å
¶å®å
¥åº','10','erp_stock_record_biz_type',0,'','','','1','2024-02-05 18:07:25','1','2024-02-05 18:07:43',0x00),(1487,11,'å
¶å®å
¥åºï¼ä½åºï¼','11','erp_stock_record_biz_type',0,'danger','','','1','2024-02-05 18:08:07','1','2024-02-05 19:20:16',0x00),(1488,20,'å
¶å®åºåº','20','erp_stock_record_biz_type',0,'','','','1','2024-02-05 18:08:51','1','2024-02-05 18:08:51',0x00),(1489,21,'å
¶å®åºåºï¼ä½åºï¼','21','erp_stock_record_biz_type',0,'danger','','','1','2024-02-05 18:09:00','1','2024-02-05 19:20:10',0x00),(1490,10,'审æ¹ä¸','10','erp_audit_status',0,'default','','','1','2024-02-06 00:00:21','1','2026-06-26 08:46:48',0x00),(1491,20,'审æ¹éè¿','20','erp_audit_status',0,'success','','','1','2024-02-06 00:00:35','1','2026-06-26 08:46:48',0x00),(1492,30,'è°æ¨å
¥åº','30','erp_stock_record_biz_type',0,'','','','1','2024-02-07 20:34:19','1','2024-02-07 12:36:31',0x00),(1493,31,'è°æ¨å
¥åºï¼ä½åºï¼','31','erp_stock_record_biz_type',0,'danger','','','1','2024-02-07 20:34:29','1','2024-02-07 20:37:11',0x00),(1494,32,'è°æ¨åºåº','32','erp_stock_record_biz_type',0,'','','','1','2024-02-07 20:34:38','1','2024-02-07 12:36:33',0x00),(1495,33,'è°æ¨åºåºï¼ä½åºï¼','33','erp_stock_record_biz_type',0,'danger','','','1','2024-02-07 20:34:49','1','2024-02-07 20:37:06',0x00),(1496,40,'ççå
¥åº','40','erp_stock_record_biz_type',0,'','','','1','2024-02-08 08:53:00','1','2024-02-08 08:53:09',0x00),(1497,41,'ççå
¥åºï¼ä½åºï¼','41','erp_stock_record_biz_type',0,'danger','','','1','2024-02-08 08:53:39','1','2024-02-16 19:40:54',0x00),(1498,42,'çäºåºåº','42','erp_stock_record_biz_type',0,'','','','1','2024-02-08 08:54:16','1','2024-02-08 08:54:16',0x00),(1499,43,'çäºåºåºï¼ä½åºï¼','43','erp_stock_record_biz_type',0,'danger','','','1','2024-02-08 08:54:31','1','2024-02-16 19:40:46',0x00),(1500,50,'éå®åºåº','50','erp_stock_record_biz_type',0,'','','','1','2024-02-11 21:47:25','1','2024-02-11 21:50:40',0x00),(1501,51,'éå®åºåºï¼ä½åºï¼','51','erp_stock_record_biz_type',0,'danger','','','1','2024-02-11 21:47:37','1','2024-02-11 21:51:12',0x00),(1502,60,'éå®éè´§å
¥åº','60','erp_stock_record_biz_type',0,'','','','1','2024-02-12 06:51:05','1','2024-02-12 06:51:05',0x00),(1503,61,'éå®éè´§å
¥åºï¼ä½åºï¼','61','erp_stock_record_biz_type',0,'danger','','','1','2024-02-12 06:51:18','1','2024-02-12 06:51:18',0x00),(1504,70,'éè´å
¥åº','70','erp_stock_record_biz_type',0,'','','','1','2024-02-16 13:10:02','1','2024-02-16 13:10:02',0x00),(1505,71,'éè´å
¥åºï¼ä½åºï¼','71','erp_stock_record_biz_type',0,'danger','','','1','2024-02-16 13:10:10','1','2024-02-16 19:40:40',0x00),(1506,80,'éè´éè´§åºåº','80','erp_stock_record_biz_type',0,'','','','1','2024-02-16 13:10:17','1','2024-02-16 13:10:17',0x00),(1507,81,'éè´éè´§åºåºï¼ä½åºï¼','81','erp_stock_record_biz_type',0,'danger','','','1','2024-02-16 13:10:26','1','2024-02-16 19:40:33',0x00),(1509,3,'审æ¹ä¸éè¿','3','bpm_process_instance_status',0,'danger','','','1','2024-03-16 16:12:06','1','2024-03-16 16:12:06',0x00),(1510,4,'已忶','4','bpm_process_instance_status',0,'warning','','','1','2024-03-16 16:12:22','1','2024-03-16 16:12:22',0x00),(1511,5,'å·²éå','5','bpm_task_status',0,'warning','','','1','2024-03-16 19:10:46','1','2024-03-08 22:41:40',0x00),(1512,6,'å§æ´¾ä¸','6','bpm_task_status',0,'primary','','','1','2024-03-17 10:06:22','1','2024-03-08 22:41:40',0x00),(1513,7,'审æ¹éè¿ä¸','7','bpm_task_status',0,'success','','','1','2024-03-17 10:06:47','1','2024-03-08 22:41:41',0x00),(1514,0,'å¾
审æ¹','0','bpm_task_status',0,'info','','','1','2024-03-17 10:07:11','1','2024-03-08 22:41:42',0x00),(1515,35,'å起人èªé','35','bpm_task_candidate_strategy',0,'','','','1','2024-03-22 19:45:16','1','2024-03-22 19:45:16',0x00),(1516,1,'æ§è¡çå¬å¨','execution','bpm_process_listener_type',0,'primary','','','1','2024-03-23 12:54:03','1','2024-03-23 19:14:19',0x00),(1517,1,'ä»»å¡çå¬å¨','task','bpm_process_listener_type',0,'success','','','1','2024-03-23 12:54:13','1','2024-03-23 19:14:24',0x00),(1526,1,'Java ç±»','class','bpm_process_listener_value_type',0,'primary','','','1','2024-03-23 15:08:45','1','2024-03-23 19:14:32',0x00),(1527,2,'表达å¼','expression','bpm_process_listener_value_type',0,'success','','','1','2024-03-23 15:09:06','1','2024-03-23 19:14:38',0x00),(1528,3,'代ç表达å¼','delegateExpression','bpm_process_listener_value_type',0,'info','','','1','2024-03-23 15:11:23','1','2024-03-23 19:14:41',0x00),(1529,1,'天','1','date_interval',0,'','','','1','2024-03-29 22:50:26','1','2024-03-29 22:50:26',0x00),(1530,2,'å¨','2','date_interval',0,'','','','1','2024-03-29 22:50:36','1','2024-03-29 22:50:36',0x00),(1531,3,'æ','3','date_interval',0,'','','','1','2024-03-29 22:50:46','1','2024-03-29 22:50:54',0x00),(1532,4,'å£åº¦','4','date_interval',0,'','','','1','2024-03-29 22:51:01','1','2024-03-29 22:51:01',0x00),(1533,5,'å¹´','5','date_interval',0,'','','','1','2024-03-29 22:51:07','1','2024-03-29 22:51:07',0x00),(1537,1,'OpenAI','OpenAI','ai_platform',0,'','','','1','2024-05-09 22:33:47','1','2024-05-09 22:58:46',0x00),(1538,2,'Ollama','Ollama','ai_platform',0,'','','','1','2024-05-17 23:02:55','1','2024-05-17 23:02:55',0x00),(1539,3,'æå¿ä¸è¨','YiYan','ai_platform',0,'','','','1','2024-05-18 09:24:20','1','2024-05-18 09:29:01',0x00),(1540,4,'è®¯é£æç«','XingHuo','ai_platform',0,'','','','1','2024-05-18 10:08:56','1','2024-05-18 10:08:56',0x00),(1541,5,'éä¹åé®','TongYi','ai_platform',0,'','','','1','2024-05-18 10:32:29','1','2024-07-06 15:42:29',0x00),(1542,6,'StableDiffusion','StableDiffusion','ai_platform',0,'','','','1','2024-06-01 15:09:31','1','2024-06-01 15:10:25',0x00),(1543,10,'è¿è¡ä¸','10','ai_image_status',0,'primary','','','1','2024-06-26 20:51:41','1','2024-06-26 20:52:48',0x00),(1544,20,'已宿','20','ai_image_status',0,'success','','','1','2024-06-26 20:52:07','1','2024-06-26 20:52:41',0x00),(1545,30,'已失败','30','ai_image_status',0,'warning','','','1','2024-06-26 20:52:25','1','2024-06-26 20:52:35',0x00),(1546,7,'Midjourney','Midjourney','ai_platform',0,'','','','1','2024-06-26 22:14:46','1','2024-06-26 22:14:46',0x00),(1547,10,'è¿è¡ä¸','10','ai_music_status',0,'primary','','','1','2024-06-27 22:45:22','1','2024-06-28 00:56:17',0x00),(1548,20,'已宿','20','ai_music_status',0,'success','','','1','2024-06-27 22:45:33','1','2024-06-28 00:56:18',0x00),(1549,30,'已失败','30','ai_music_status',0,'danger','','','1','2024-06-27 22:45:44','1','2024-06-28 00:56:19',0x00),(1550,1,'æè¯æ¨¡å¼','1','ai_generate_mode',0,'','','','1','2024-06-27 22:46:31','1','2024-06-28 01:22:25',0x00),(1551,2,'æè¿°æ¨¡å¼','2','ai_generate_mode',0,'','','','1','2024-06-27 22:46:37','1','2024-06-28 01:22:24',0x00),(1552,8,'Suno','Suno','ai_platform',0,'','','','1','2024-06-29 09:13:36','1','2024-06-29 09:13:41',0x00),(1553,9,'DeepSeek','DeepSeek','ai_platform',0,'','','','1','2024-07-06 12:04:30','1','2024-07-06 12:05:20',0x00),(1554,13,'æºè°±','ZhiPu','ai_platform',0,'','','','1','2024-07-06 18:00:35','1','2025-02-24 20:18:41',0x00),(1555,4,'é¿','4','ai_write_length',0,'','','','1','2024-07-07 15:49:03','1','2024-07-07 15:49:03',0x00),(1556,5,'段è½','5','ai_write_format',0,'','','','1','2024-07-07 15:49:54','1','2024-07-07 15:49:54',0x00),(1557,6,'æç« ','6','ai_write_format',0,'','','','1','2024-07-07 15:50:05','1','2024-07-07 15:50:05',0x00),(1558,7,'å客æç« ','7','ai_write_format',0,'','','','1','2024-07-07 15:50:23','1','2024-07-07 15:50:23',0x00),(1559,8,'æ³æ³','8','ai_write_format',0,'','','','1','2024-07-07 15:50:31','1','2024-07-07 15:50:31',0x00),(1560,9,'大纲','9','ai_write_format',0,'','','','1','2024-07-07 15:50:37','1','2024-07-07 15:50:37',0x00),(1561,1,'èªå¨','1','ai_write_tone',0,'','','','1','2024-07-07 15:51:06','1','2024-07-07 15:51:06',0x00),(1562,2,'åå','2','ai_write_tone',0,'','','','1','2024-07-07 15:51:19','1','2024-07-07 15:51:19',0x00),(1563,3,'éæ','3','ai_write_tone',0,'','','','1','2024-07-07 15:51:27','1','2024-07-07 15:51:27',0x00),(1564,4,'å好','4','ai_write_tone',0,'','','','1','2024-07-07 15:51:37','1','2024-07-07 15:51:37',0x00),(1565,5,'ä¸ä¸','5','ai_write_tone',0,'','','','1','2024-07-07 15:51:49','1','2024-07-07 15:52:02',0x00),(1566,6,'è¯è°','6','ai_write_tone',0,'','','','1','2024-07-07 15:52:15','1','2024-07-07 15:52:15',0x00),(1567,7,'æè¶£','7','ai_write_tone',0,'','','','1','2024-07-07 15:52:24','1','2024-07-07 15:52:24',0x00),(1568,8,'æ£å¼','8','ai_write_tone',0,'','','','1','2024-07-07 15:54:33','1','2024-07-07 15:54:33',0x00),(1570,1,'èªå¨','1','ai_write_format',0,'','','','1','2024-07-07 15:19:34','1','2024-07-07 15:19:34',0x00),(1571,2,'çµåé®ä»¶','2','ai_write_format',0,'','','','1','2024-07-07 15:19:50','1','2024-07-07 15:49:30',0x00),(1572,3,'æ¶æ¯','3','ai_write_format',0,'','','','1','2024-07-07 15:20:01','1','2024-07-07 15:49:38',0x00),(1573,4,'è¯è®º','4','ai_write_format',0,'','','','1','2024-07-07 15:20:13','1','2024-07-07 15:49:45',0x00),(1574,1,'èªå¨','1','ai_write_language',0,'','','','1','2024-07-07 15:44:18','1','2024-07-07 15:44:18',0x00),(1575,2,'䏿','2','ai_write_language',0,'','','','1','2024-07-07 15:44:28','1','2024-07-07 15:44:28',0x00),(1576,3,'è±æ','3','ai_write_language',0,'','','','1','2024-07-07 15:44:37','1','2024-07-07 15:44:37',0x00),(1577,4,'é©è¯','4','ai_write_language',0,'','','','1','2024-07-07 15:46:28','1','2024-07-07 15:46:28',0x00),(1578,5,'æ¥è¯','5','ai_write_language',0,'','','','1','2024-07-07 15:46:44','1','2024-07-07 15:46:44',0x00),(1579,1,'èªå¨','1','ai_write_length',0,'','','','1','2024-07-07 15:48:34','1','2024-07-07 15:48:34',0x00),(1580,2,'ç','2','ai_write_length',0,'','','','1','2024-07-07 15:48:44','1','2024-07-07 15:48:44',0x00),(1581,3,'ä¸ç','3','ai_write_length',0,'','','','1','2024-07-07 15:48:52','1','2024-07-07 15:48:52',0x00),(1584,1,'æ°å','1','ai_write_type',0,'','','','1','2024-07-10 21:26:00','1','2024-07-10 21:26:00',0x00),(1585,2,'åå¤','2','ai_write_type',0,'','','','1','2024-07-10 21:26:06','1','2024-07-10 21:26:06',0x00),(1586,2,'è
¾è®¯äº','TENCENT','system_sms_channel_code',0,'','','','1','2024-07-22 22:23:16','1','2024-07-22 22:23:16',0x00),(1587,3,'å为äº','HUAWEI','system_sms_channel_code',0,'','','','1','2024-07-22 22:23:46','1','2024-07-22 22:23:53',0x00),(1588,1,'OpenAI 微软','AzureOpenAI','ai_platform',0,'','','','1','2024-08-10 14:07:41','1','2024-08-10 14:07:41',0x00),(1589,10,'BPMN 设计å¨','10','bpm_model_type',0,'primary','','','1','2024-08-26 15:22:17','1','2024-08-26 16:46:02',0x00),(1590,20,'SIMPLE 设计å¨','20','bpm_model_type',0,'success','','','1','2024-08-26 15:22:27','1','2024-08-26 16:45:58',0x00),(1591,4,'ä¸çäº','QINIU','system_sms_channel_code',0,'','','','1','2024-08-31 08:45:03','1','2024-08-31 08:45:24',0x00),(1592,3,'æ°äººå¸','3','promotion_coupon_take_type',0,'info','','æ°äººæ³¨ååï¼èªå¨åæ¾','1','2024-09-03 11:57:16','1','2024-09-03 11:57:28',0x00),(1593,5,'微信é¶é±','5','brokerage_withdraw_type',0,'','','API ææ¬¾','1','2024-10-13 11:06:48','1','2025-05-10 08:24:55',0x00),(1683,10,'åèè±å
','DouBao','ai_platform',0,'','','','1','2025-02-23 19:51:40','1','2025-02-23 19:52:02',0x00),(1684,11,'è
¾è®¯æ··å
','HunYuan','ai_platform',0,'','','','1','2025-02-23 20:58:04','1','2025-02-23 20:58:04',0x00),(1685,12,'ç¡
åºæµå¨','SiliconFlow','ai_platform',0,'','','','1','2025-02-24 20:19:09','1','2025-02-24 20:19:09',0x00),(1686,1,'è天','1','ai_model_type',0,'','','','1','2025-03-03 12:26:34','1','2025-03-03 12:26:34',0x00),(1687,2,'å¾å','2','ai_model_type',0,'','','','1','2025-03-03 12:27:23','1','2025-03-03 12:27:23',0x00),(1688,3,'é³é¢','3','ai_model_type',0,'','','','1','2025-03-03 12:27:51','1','2025-03-03 12:27:51',0x00),(1689,4,'è§é¢','4','ai_model_type',0,'','','','1','2025-03-03 12:28:03','1','2025-03-03 12:28:03',0x00),(1690,5,'åé','5','ai_model_type',0,'','','','1','2025-03-03 12:28:15','1','2025-03-03 12:28:15',0x00),(1691,6,'éæ','6','ai_model_type',0,'','','','1','2025-03-03 12:28:26','1','2025-03-03 12:28:26',0x00),(1692,14,'MiniMax','MiniMax','ai_platform',0,'','','','1','2025-03-11 20:04:51','1','2025-03-11 20:04:51',0x00),(1693,15,'æä¹æé¢','Moonshot','ai_platform',0,'','','','1','2025-03-11 20:05:08','1','2025-11-24 07:17:39',0x00),(2002,0,'ç´è¿è®¾å¤','0','iot_product_device_type',0,'default','','','1','2024-08-10 11:54:58','1','2025-03-17 09:28:22',0x00),(2003,2,'ç½å
³è®¾å¤','2','iot_product_device_type',0,'default','','','1','2024-08-10 11:55:08','1','2025-03-17 09:28:28',0x00),(2004,1,'ç½å
³å设å¤','1','iot_product_device_type',0,'default','','','1','2024-08-10 11:55:20','1','2025-03-17 09:28:31',0x00),(2005,1,'å·²åå¸','1','iot_product_status',0,'success','','','1','2024-08-10 12:10:33','1','2025-03-17 09:28:34',0x00),(2006,0,'å¼åä¸','0','iot_product_status',0,'default','','','1','2024-08-10 14:19:18','1','2025-03-17 09:28:39',0x00),(2009,0,'Wi-Fi','0','iot_net_type',0,'','','','1','2024-09-06 22:04:47','1','2025-03-17 09:28:47',0x00),(2010,1,'ç§»å¨ç½ç»','1','iot_net_type',0,'','','','1','2024-09-06 22:05:14','1','2025-06-12 23:27:19',0x00),(2011,2,'以太ç½','2','iot_net_type',0,'','','','1','2024-09-06 22:05:35','1','2025-03-17 09:28:51',0x00),(2012,3,'å
¶ä»','3','iot_net_type',0,'','','','1','2024-09-06 22:05:52','1','2025-03-17 09:28:54',0x00),(2018,0,'æªæ¿æ´»','0','iot_device_state',0,'','','','1','2024-09-21 08:13:34','1','2025-03-17 09:29:09',0x00),(2019,1,'å¨çº¿','1','iot_device_state',0,'','','','1','2024-09-21 08:13:48','1','2025-03-17 09:29:12',0x00),(2020,2,'离线','2','iot_device_state',0,'','','','1','2024-09-21 08:13:59','1','2025-03-17 09:29:14',0x00),(2021,1,'屿§','1','iot_thing_model_type',0,'','','','1','2024-09-29 20:03:01','1','2025-03-17 09:29:24',0x00),(2022,2,'æå¡','2','iot_thing_model_type',0,'','','','1','2024-09-29 20:03:11','1','2025-03-17 09:29:27',0x00),(2023,3,'äºä»¶','3','iot_thing_model_type',0,'','','','1','2024-09-29 20:03:20','1','2025-03-17 09:29:29',0x00),(2030,1,'忝åé','L/min','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:34:24',0x00),(2031,2,'毫å
æ¯åå
','mg/kg','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:34:27',0x00),(2032,3,'æµåº¦','NTU','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:34:31',0x00),(2033,4,'PHå¼','pH','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:34:36',0x00),(2034,5,'å壤ECå¼','dS/m','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:34:43',0x00),(2035,6,'å¤ªé³æ»è¾å°','W/ã¡','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:36:20',0x00),(2036,7,'éé¨é','mm/hour','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:36:24',0x00),(2037,8,'ä¹','var','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:36:27',0x00),(2038,9,'åæ³','cP','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:36:33',0x00),(2039,10,'饱å度','aw','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:37:11',0x00),(2040,11,'个','pcs','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:37:19',0x00),(2041,12,'忝','cst','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:37:22',0x00),(2042,13,'å·´','bar','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:37:24',0x00),(2043,14,'纳å
æ¯å','ppt','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:37:27',0x00),(2044,15,'å亿åä¹ä¸','ppb','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2026-04-05 15:53:29',0x00),(2045,16,'微西æ¯åç±³','uS/cm','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:37:34',0x00),(2046,17,'çé¡¿æ¯åºä»','N/C','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:37:38',0x00),(2047,18,'ä¼ç¹æ¯ç±³','V/m','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:37:43',0x00),(2048,19,'æ»´é','ml/min','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:37:46',0x00),(2049,20,'æ¯«ç±³æ±æ±','mmHg','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:37:48',0x00),(2050,21,'è¡ç³','mmol/L','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:37:54',0x00),(2051,22,'毫米æ¯ç§','mm/s','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:38:02',0x00),(2052,23,'转æ¯ç±³','turn/m','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2026-04-05 15:53:29',0x00),(2053,24,'次','count','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:38:09',0x00),(2054,25,'æ¡£','gear','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:38:11',0x00),(2055,26,'æ¥','stepCount','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:38:13',0x00),(2056,27,'æ åç«æ¹ç±³æ¯å°æ¶','Nm3/h','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:38:15',0x00),(2057,28,'åä¼','kV','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:38:20',0x00),(2058,29,'åä¼å®','kVA','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:38:24',0x00),(2060,30,'åä¹','kVar','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2061,31,'å¾®ç¦æ¯å¹³æ¹åç±³','uw/cm2','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2062,32,'åª','åª','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2063,33,'ç¸å¯¹æ¹¿åº¦','%RH','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2064,34,'ç«æ¹ç±³æ¯ç§','m³/s','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2065,35,'å
¬æ¤æ¯ç§','kg/s','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2066,36,'转æ¯åé','r/min','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2067,37,'卿¯å°æ¶','t/h','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2068,38,'å塿¯å°æ¶','KCL/h','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2069,39,'忝ç§','L/s','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2070,40,'å
å¸','MPa','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2026-04-05 15:53:29',0x00),(2071,41,'ç«æ¹ç±³æ¯å°æ¶','m³/h','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2072,42,'å乿¶','kvarh','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2073,43,'å¾®å
æ¯å','μg/L','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2074,44,'åå¡è·¯é','kcal','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2075,45,'ååè','GB','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2076,46,'å
åè','MB','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2077,47,'ååè','KB','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2078,48,'åè','B','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2079,49,'å¾®å
æ¯å¹³æ¹åç±³æ¯å¤©','μg/(dã¡Â·d)','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2080,50,'æ ','','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2081,51,'ç¾ä¸åç','ppm','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2082,52,'åç´ ','pixel','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2083,53,'ç
§åº¦','Lux','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2084,54,'éåå é度','grav','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2085,55,'åè´','dB','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2086,56,'ç¾åæ¯','%','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2087,57,'æµæ','lm','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2088,58,'æ¯ç¹','bit','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2089,59,'å
æ¯æ¯«å','g/mL','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2090,60,'å
æ¯å','g/L','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2091,61,'毫å
æ¯å','mg/L','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2092,62,'å¾®å
æ¯ç«æ¹ç±³','μg/m³','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2093,63,'毫å
æ¯ç«æ¹ç±³','mg/m³','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2094,64,'å
æ¯ç«æ¹ç±³','g/m³','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2095,65,'åå
æ¯ç«æ¹ç±³','kg/m³','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2096,66,'纳æ³','nF','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2097,67,'ç®æ³','pF','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2098,68,'å¾®æ³','μF','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2099,69,'æ³æ','F','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2100,70,'欧å§','Ω','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2101,71,'å¾®å®','μA','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2102,72,'毫å®','mA','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2103,73,'åå®','kA','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2104,74,'å®å¹','A','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2105,75,'毫ä¼','mV','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2106,76,'ä¼ç¹','V','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2107,77,'毫ç§','ms','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2108,78,'ç§','s','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2109,79,'åé','min','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2110,80,'å°æ¶','h','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2111,81,'æ¥','day','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2112,82,'å¨','week','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2113,83,'æ','month','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2114,84,'å¹´','year','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2115,85,'è','kn','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2116,86,'åç±³æ¯å°æ¶','km/h','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2117,87,'ç±³æ¯ç§','m/s','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2118,88,'è§ç§','â³','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2026-04-05 15:53:29',0x00),(2119,89,'å','â²','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2120,90,'度','°','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2121,91,'弧度','rad','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2122,92,'赫å
¹','Hz','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2123,93,'å¾®ç¦','μW','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2124,94,'毫ç¦','mW','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2125,95,'åç¦ç¹','kW','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2126,96,'ç¦ç¹','W','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2127,97,'å¡è·¯é','cal','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2128,98,'åç¦æ¶','kW·h','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2129,99,'ç¦æ¶','Wh','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2130,100,'çµåä¼','eV','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2131,101,'åç¦','kJ','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2132,102,'ç¦è³','J','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2133,103,'åæ°åº¦','â','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2134,104,'å¼å°æ','K','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2135,105,'å¨','t','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2136,106,'ææ°åº¦','°C','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2137,107,'毫å¸','1e-3Pa','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2026-04-05 15:53:29',0x00),(2138,108,'ç¾å¸','hPa','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2139,109,'åå¸','kPa','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2140,110,'叿¯å¡','Pa','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2141,111,'毫å
','mg','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2142,112,'å
','g','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2143,113,'åå
','kg','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2144,114,'ç','N','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2145,115,'毫å','mL','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2146,116,'å','L','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2147,117,'ç«æ¹æ¯«ç±³','mm³','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2148,118,'ç«æ¹åç±³','cm³','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2149,119,'ç«æ¹åç±³','km³','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2150,120,'ç«æ¹ç±³','m³','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2151,121,'å
¬é¡·','hã¡','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2152,122,'å¹³æ¹åç±³','cã¡','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2153,123,'å¹³æ¹æ¯«ç±³','mã¡','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2154,124,'å¹³æ¹åç±³','kã¡','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2155,125,'å¹³æ¹ç±³','ã¡','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2156,126,'纳米','nm','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2157,127,'微米','μm','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2158,128,'毫米','mm','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2159,129,'åç±³','cm','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2160,130,'åç±³','dm','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2161,131,'åç±³','km','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2162,132,'ç±³','m','iot_thing_model_unit',0,'','','','1','2024-12-13 11:08:41','1','2025-03-17 09:40:46',0x00),(2165,1,'HTTP','1','iot_data_sink_type_enum',0,'default','','','1','2025-03-09 12:39:54','1','2025-06-24 12:44:47',0x00),(2166,2,'TCP','2','iot_data_sink_type_enum',0,'default','','','1','2025-03-09 12:40:06','1','2025-06-24 12:44:46',0x00),(2167,3,'WebSocket','3','iot_data_sink_type_enum',0,'default','','','1','2025-03-09 12:40:24','1','2025-06-24 12:44:45',0x00),(2168,10,'MQTT','10','iot_data_sink_type_enum',0,'default','','','1','2025-03-09 12:40:37','1','2025-06-24 12:44:44',0x00),(2169,20,'Database','20','iot_data_sink_type_enum',0,'default','','','1','2025-03-09 12:41:05','1','2025-06-24 12:44:44',0x00),(2170,21,'Redis Stream','21','iot_data_sink_type_enum',0,'default','','','1','2025-03-09 12:41:18','1','2025-06-24 12:44:43',0x00),(2171,30,'RocketMQ','30','iot_data_sink_type_enum',0,'default','','','1','2025-03-09 12:41:30','1','2025-06-24 12:44:42',0x00),(2172,31,'RabbitMQ','31','iot_data_sink_type_enum',0,'default','','','1','2025-03-09 12:41:47','1','2025-06-24 12:44:41',0x00),(2173,32,'Kafka','32','iot_data_sink_type_enum',0,'default','','','1','2025-03-09 12:41:59','1','2025-06-24 12:44:39',0x00),(2174,1,'设å¤ä¸ä¸çº¿åæ´','1','iot_rule_scene_trigger_type_enum',0,'primary','','','1','2025-03-20 15:00:01','\"1\"','2025-07-06 10:28:16',0x00),(2175,2,'ç©æ¨¡å屿§ä¸æ¥','2','iot_rule_scene_trigger_type_enum',0,'primary','','','1','2025-03-20 15:00:09','\"1\"','2025-07-06 10:28:22',0x00),(2176,1,'设å¤ç¶æ','state','iot_device_message_type_enum',0,'primary','','','1','2025-03-20 15:24:58','1','2025-03-20 15:24:58',0x00),(2177,2,'设å¤å±æ§','property','iot_device_message_type_enum',0,'primary','','','1','2025-03-20 15:25:09','1','2025-03-20 15:25:09',0x00),(2178,3,'设å¤äºä»¶','event','iot_device_message_type_enum',0,'primary','','','1','2025-03-20 15:25:23','1','2025-03-20 15:25:23',0x00),(2179,4,'è®¾å¤æå¡','service','iot_device_message_type_enum',0,'primary','','','1','2025-03-20 15:25:39','1','2025-03-20 15:25:39',0x00),(2180,5,'设å¤é
ç½®','config','iot_device_message_type_enum',0,'primary','','','1','2025-03-20 15:25:51','1','2025-03-20 15:25:57',0x00),(2181,6,'è®¾å¤ OTA','ota','iot_device_message_type_enum',0,'primary','','','1','2025-03-20 15:26:17','1','2025-03-20 15:26:17',0x00),(2182,7,'è®¾å¤æ³¨å','register','iot_device_message_type_enum',0,'primary','','','1','2025-03-20 15:26:35','1','2025-03-20 15:26:35',0x00),(2183,8,'è®¾å¤ææ','topology','iot_device_message_type_enum',0,'primary','','','1','2025-03-20 15:26:46','1','2025-03-20 15:26:46',0x00),(2184,1,'设å¤å±æ§è®¾ç½®','1','iot_rule_scene_action_type_enum',0,'primary','','','1','2025-03-28 15:27:12','\"1\"','2025-07-06 10:37:33',0x00),(2185,2,'è®¾å¤æå¡è°ç¨','2','iot_rule_scene_action_type_enum',0,'primary','','','1','2025-03-28 15:27:25','\"1\"','2025-07-06 10:37:41',0x00),(2186,100,'åè¦è§¦å','100','iot_rule_scene_action_type_enum',0,'primary','','','1','2025-03-28 15:27:35','\"1\"','2025-07-06 10:37:50',0x00),(3000,16,'ç¾å·æºè½','BaiChuan','ai_platform',0,'','','','1','2025-03-23 12:15:46','1','2025-03-23 12:15:46',0x00),(3001,40,'Vben5.0 Ant Design Schema 模ç','40','infra_codegen_front_type',0,'','',NULL,'1','2025-04-23 21:47:47','1','2025-09-04 23:25:12',0x00),(3002,6,'æ¯ä»å®ä½é¢','6','brokerage_withdraw_type',0,'','','API ææ¬¾','1','2025-05-10 08:24:49','1','2025-05-10 08:24:49',0x00),(3004,3,'WARN','3','iot_alert_level',0,'warning','','','1','2025-06-27 20:32:22','1','2025-06-27 20:34:31',0x00),(3005,1,'INFO','1','iot_alert_level',0,'primary','','','1','2025-06-27 20:33:28','1','2025-06-27 20:34:35',0x00),(3006,5,'ERROR','5','iot_alert_level',0,'danger','','','1','2025-06-27 20:33:50','1','2025-06-27 20:33:50',0x00),(3007,1,'çä¿¡','1','iot_alert_receive_type',0,'','','','1','2025-06-27 22:49:30','1','2025-06-27 22:49:30',0x00),(3008,2,'é®ç®±','2','iot_alert_receive_type',0,'','','','1','2025-06-27 22:49:39','1','2025-06-27 22:50:07',0x00),(3009,3,'ç«å
ä¿¡','3','iot_alert_receive_type',0,'','','','1','2025-06-27 22:50:20','1','2025-06-27 22:50:20',0x00),(3010,1,'å
¨é¨è®¾å¤','1','iot_ota_task_device_scope',0,'','','','1','2025-07-02 09:43:09','1','2025-07-02 09:43:09',0x00),(3011,2,'æå®è®¾å¤','2','iot_ota_task_device_scope',0,'','','','1','2025-07-02 09:43:15','1','2025-07-02 09:43:15',0x00),(3012,10,'è¿è¡ä¸','10','iot_ota_task_status',0,'primary','','','1','2025-07-02 09:44:01','\"1\"','2025-07-02 09:44:21',0x00),(3013,20,'å·²ç»æ','20','iot_ota_task_status',0,'success','','','1','2025-07-02 09:44:14','\"1\"','2025-07-02 23:56:12',0x00),(3014,30,'已忶','30','iot_ota_task_status',0,'danger','','','1','2025-07-02 09:44:36','1','2025-07-02 09:44:36',0x00),(3015,0,'å¾
æ¨é','0','iot_ota_task_record_status',0,'','','','1','2025-07-02 09:45:16','1','2025-07-02 09:45:16',0x00),(3016,10,'å·²æ¨é','10','iot_ota_task_record_status',0,'','','','1','2025-07-02 09:45:25','1','2025-07-02 09:45:25',0x00),(3017,20,'å级ä¸','20','iot_ota_task_record_status',0,'primary','','','1','2025-07-02 09:45:37','1','2025-07-02 09:45:37',0x00),(3018,30,'å级æå','30','iot_ota_task_record_status',0,'success','','','1','2025-07-02 09:45:47','1','2025-07-02 09:45:47',0x00),(3019,40,'å级失败','40','iot_ota_task_record_status',0,'danger','','','1','2025-07-02 09:46:02','1','2025-07-02 09:46:02',0x00),(3020,50,'åçº§åæ¶','50','iot_ota_task_record_status',0,'warning','','','1','2025-07-02 09:46:09','\"1\"','2025-07-02 09:46:27',0x00),(3024,3,'设å¤äºä»¶ä¸æ¥','3','iot_rule_scene_trigger_type_enum',0,'','','','1','2025-07-06 10:28:29','1','2025-07-06 10:28:29',0x00),(3025,4,'è®¾å¤æå¡è°ç¨','4','iot_rule_scene_trigger_type_enum',0,'','','','1','2025-07-06 10:28:35','1','2025-07-06 10:28:35',0x00),(3026,100,'宿¶è§¦å','100','iot_rule_scene_trigger_type_enum',0,'','','','1','2025-07-06 10:28:48','1','2025-07-06 10:28:48',0x00),(3027,101,'åè¦æ¢å¤','101','iot_rule_scene_action_type_enum',0,'','','','1','2025-07-06 10:37:57','1','2025-07-06 10:37:57',0x00),(3028,2,'Anthropic','Anthropic','ai_platform',0,'','','','1','2025-08-21 22:54:24','1','2025-08-21 22:57:58',0x00),(3029,2,'è°·æ Gemini','Gemini','ai_platform',0,'','','','1','2025-08-22 22:39:35','1','2025-08-22 22:44:49',0x00),(3030,1,'æä»¶ç³»ç»','filesystem','ai_mcp_client_name',0,'','','','1','2025-08-28 13:58:43','1','2025-08-28 21:19:42',0x00),(3031,41,'Vben5.0 Ant Design æ 忍¡ç','41','infra_codegen_front_type',0,'','','','1','2025-09-04 23:26:07','1','2025-09-04 23:26:07',0x00),(3032,50,'Vben5.0 Element Plus Schema 模ç','50','infra_codegen_front_type',0,'','','','1','2025-09-04 23:26:38','1','2025-09-04 23:26:38',0x00),(3033,51,'Vben5.0 Element Plus æ 忍¡ç','51','infra_codegen_front_type',0,'','','','1','2025-09-04 23:26:49','1','2025-09-04 23:26:49',0x00),(3034,1,'ttt','tt','iot_ota_task_record_status',0,'success','',NULL,'1','2025-09-06 00:02:21','1','2025-09-06 00:02:31',0x00),(3035,40,'æ¯ä»å®å°ç¨åº','40','system_social_type',0,'','','','1','2023-11-04 13:05:38','1','2023-11-04 13:07:16',0x00),(3036,60,'Admin Uniapp ç§»å¨ç«¯','60','infra_codegen_front_type',0,'','',NULL,'1','2025-12-16 19:25:51','1','2025-12-17 09:46:15',0x00),(3037,42,'Vben5.0 Antdv Next Schema 模ç','42','infra_codegen_front_type',0,'','','','1','2026-05-23 13:52:25','1','2026-05-23 13:52:25',0x00),(3038,43,'Vben5.0 Antdv Next æ 忍¡ç','43','infra_codegen_front_type',0,'','','','1','2026-05-23 13:52:25','1','2026-05-23 13:52:25',0x00),(3040,1,'UDP','udp','iot_protocol_type',0,'','','UDP åè®®','1','2026-02-04 00:32:47','1','2026-02-04 00:32:47',0x00),(3041,2,'WebSocket','websocket','iot_protocol_type',0,'','','WebSocket åè®®','1','2026-02-04 00:32:55','1','2026-02-04 00:32:55',0x00),(3042,3,'HTTP','http','iot_protocol_type',0,'','','HTTP åè®®','1','2026-02-04 00:32:55','1','2026-02-04 00:32:55',0x00),(3043,4,'MQTT','mqtt','iot_protocol_type',0,'success','','MQTT åè®®','1','2026-02-04 00:32:55','1','2026-02-04 00:32:55',0x00),(3044,5,'EMQX','emqx','iot_protocol_type',0,'success','','EMQX åè®®','1','2026-02-04 00:32:55','1','2026-02-04 00:32:55',0x00),(3045,6,'CoAP','coap','iot_protocol_type',0,'','','CoAP åè®®','1','2026-02-04 00:32:55','1','2026-02-04 00:32:55',0x00),(3046,7,'Modbus TCP Server','modbus_tcp_server','iot_protocol_type',0,'','','Modbus TCP Server åè®®','1','2026-02-04 00:32:55','1','2026-02-12 15:16:45',0x00),(3047,0,'JSON','json','iot_serialize_type',0,'success','','JSON æ ¼å¼','1','2026-02-04 00:33:19','1','2026-02-04 00:33:19',0x00),(3048,1,'äºè¿å¶','binary','iot_serialize_type',0,'warning','','äºè¿å¶æ ¼å¼','1','2026-02-04 00:33:19','1','2026-02-04 00:33:19',0x00),(3049,8,'Modbus TCP Client','modbus_tcp_client','iot_protocol_type',0,'','','Modbus TCP Client åè®®','1','2026-02-08 18:29:46','1','2026-02-12 15:16:32',0x00),(3050,2,'è¾¹ç¼éé','2','iot_modbus_mode',0,'success','','设å¤ä¸»å¨ä¸æ¥æ°æ®ï¼æ é轮询','1','2025-06-12 22:56:06','1','2026-02-09 13:03:23',0x00),(3051,1,'Modbus TCP','1','iot_modbus_frame_format',0,'default','','MBAP 头鍿 ¼å¼','1','2025-06-12 22:56:06','1','2025-06-12 22:56:06',0x00),(3052,2,'Modbus RTU','2','iot_modbus_frame_format',0,'warning','','CRC16 æ ¡éªæ ¼å¼','1','2025-06-12 22:56:06','1','2025-06-12 22:56:06',0x00),(3053,1,'äºç«¯è½®è¯¢','1','iot_modbus_mode',0,'primary','','ç½å
³ä¸»å¨è½®è¯¢è¯»å设å¤å¯åå¨','1','2025-06-12 22:56:06','1','2025-06-12 22:56:06',0x00),(3054,1,'ä¼ä¸å®¢æ·','1','mes_client_type',0,'primary','','','1','2026-02-15 14:38:25','1','2026-02-15 14:38:25',0x00),(3055,2,'个人','2','mes_client_type',0,'success','','','1','2026-02-15 14:38:25','1','2026-02-15 14:38:25',0x00),(3056,1,'ä¼è´¨ä¾åºå','A','mes_vendor_level',0,'success','','','1','2026-02-15 15:59:15','1','2026-02-15 15:59:15',0x00),(3057,2,'æ£å¸¸','B','mes_vendor_level',0,'primary','','','1','2026-02-15 15:59:15','1','2026-02-15 15:59:15',0x00),(3058,3,'éç¹å
³æ³¨','C','mes_vendor_level',0,'warning','','','1','2026-02-15 15:59:15','1','2026-02-15 15:59:15',0x00),(3059,4,'å£è´¨ä¾åºå','D','mes_vendor_level',0,'danger','','','1','2026-02-15 15:59:15','1','2026-02-15 15:59:15',0x00),(3060,5,'é»åå','E','mes_vendor_level',0,'info','','','1','2026-02-15 15:59:15','1','2026-02-15 15:59:15',0x00),(3061,1,'åæ','2','mes_cal_holiday_type',0,'success','','','1','2026-02-16 07:35:58','1','2026-02-16 11:20:42',0x00),(3062,2,'工使¥','1','mes_cal_holiday_type',0,'primary','','','1','2026-02-16 07:35:58','1','2026-02-16 11:20:40',0x00),(3063,1,'å¨åº','1','mes_tm_tool_status',0,'success','','','1','2026-02-16 11:10:55','1','2026-02-16 11:10:55',0x00),(3064,2,'é¢ç¨ä¸','2','mes_tm_tool_status',0,'primary','','','1','2026-02-16 11:10:55','1','2026-02-16 11:10:55',0x00),(3065,3,'ç»´ä¿®ä¸','3','mes_tm_tool_status',0,'warning','','','1','2026-02-16 11:10:55','1','2026-02-16 11:10:55',0x00),(3066,4,'æ¥åº','4','mes_tm_tool_status',0,'danger','','','1','2026-02-16 11:10:55','1','2026-02-16 11:10:55',0x00),(3067,1,'å®æç»´æ¤','1','mes_tm_mainten_type',0,'primary','','','1','2026-02-16 11:10:55','1','2026-02-16 11:10:55',0x00),(3068,2,'æä½¿ç¨æ¬¡æ°ç»´æ¤','2','mes_tm_mainten_type',0,'success','','','1','2026-02-16 11:10:55','1','2026-02-16 11:10:55',0x00),(3069,1,'åæº','1','mes_dv_machinery_status',0,'success','','','1','2026-02-17 01:00:06','1','2026-02-17 03:28:27',0x00),(3070,2,'ç产ä¸','2','mes_dv_machinery_status',0,'info','','','1','2026-02-17 01:00:06','1','2026-02-17 03:28:33',0x00),(3071,3,'ç»´æ¤ä¸','3','mes_dv_machinery_status',0,'danger','','','1','2026-02-17 01:00:06','1','2026-02-17 03:28:41',0x00),(3072,1,'尺寸','1','mes_indicator_type',0,'','','','1','2026-02-17 02:18:18','1','2026-04-09 14:38:53',0x00),(3073,2,'å¤è§','2','mes_indicator_type',0,'','','','1','2026-02-17 02:18:18','1','2026-04-09 14:38:53',0x00),(3074,3,'éé','3','mes_indicator_type',0,'','','','1','2026-02-17 02:18:18','1','2026-04-09 14:38:53',0x00),(3075,4,'æ§è½','4','mes_indicator_type',0,'','','','1','2026-02-17 02:18:18','1','2026-04-09 14:38:53',0x00),(3076,5,'æå','5','mes_indicator_type',0,'','','','1','2026-02-17 02:18:18','1','2026-04-09 14:38:53',0x00),(3077,1,'è´å½ç¼ºé·','1','mes_defect_level',0,'danger','','','1','2026-02-17 02:18:18','1','2026-02-21 12:21:12',0x00),(3078,2,'严é缺é·','2','mes_defect_level',0,'warning','','','1','2026-02-17 02:18:18','1','2026-02-21 12:21:15',0x00),(3079,3,'轻微缺é·','3','mes_defect_level',0,'info','','','1','2026-02-17 02:18:18','1','2026-02-21 12:21:19',0x00),(3080,1,'åç½ç','1','mes_cal_shift_type',0,'primary','','','1','2026-02-17 03:40:09','1','2026-02-17 03:40:09',0x00),(3081,2,'两çå','2','mes_cal_shift_type',0,'success','','','1','2026-02-17 03:40:09','1','2026-02-17 03:40:09',0x00),(3082,3,'ä¸çå','3','mes_cal_shift_type',0,'warning','','','1','2026-02-17 03:40:09','1','2026-02-17 03:40:09',0x00),(3083,1,'æå£åº¦','1','mes_cal_shift_method',0,'','','','1','2026-02-17 03:40:09','1','2026-02-17 03:40:09',0x00),(3084,2,'ææ','2','mes_cal_shift_method',0,'','','','1','2026-02-17 03:40:09','1','2026-02-17 03:40:09',0x00),(3085,3,'æå¨','3','mes_cal_shift_method',0,'','','','1','2026-02-17 03:40:09','1','2026-02-17 03:40:09',0x00),(3086,4,'æå¤©','4','mes_cal_shift_method',0,'','','','1','2026-02-17 03:40:09','1','2026-02-17 03:40:09',0x00),(3089,0,'è稿','0','mes_cal_plan_status',0,'info','','','1','2026-02-17 03:40:09','1','2026-02-17 03:40:09',0x00),(3090,1,'已确认','1','mes_cal_plan_status',0,'success','','','1','2026-02-17 03:40:09','1','2026-02-17 03:40:09',0x00),(3100,0,'è稿','0','mes_pro_work_order_status',0,'info','','','1','2026-02-17 11:43:47','1','2026-02-17 11:43:47',0x00),(3101,1,'已确认','1','mes_pro_work_order_status',0,'primary','','','1','2026-02-17 11:43:47','1','2026-02-17 11:43:47',0x00),(3102,2,'已宿','2','mes_pro_work_order_status',0,'success','','','1','2026-02-17 11:43:47','1','2026-02-17 11:43:47',0x00),(3103,3,'已忶','3','mes_pro_work_order_status',0,'warning','','','1','2026-02-17 11:43:47','1','2026-02-17 11:43:47',0x00),(3104,1,'客æ·è®¢å','1','mes_pro_work_order_source_type',0,'primary','','','1','2026-02-17 11:43:47','1','2026-02-17 11:43:47',0x00),(3105,2,'åºåå¤è´§','2','mes_pro_work_order_source_type',0,'success','','','1','2026-02-17 11:43:47','1','2026-02-17 11:43:47',0x00),(3106,1,'èªè¡ç产','1','mes_pro_work_order_type',0,'primary','','','1','2026-02-17 11:43:47','1','2026-02-17 11:43:47',0x00),(3107,2,'代工','2','mes_pro_work_order_type',0,'warning','','','1','2026-02-17 11:43:47','1','2026-02-17 11:43:47',0x00),(3108,3,'éè´','3','mes_pro_work_order_type',0,'info','','','1','2026-02-17 11:43:47','1','2026-02-17 11:43:47',0x00),(3121,1,'IQCï¼æ¥ææ£éªï¼','1','mes_qc_type',0,'primary','','æ¥æè´¨éæ£éª','1','2026-02-18 14:12:05','1','2026-02-18 14:12:05',0x00),(3122,2,'IPQCï¼è¿ç¨æ£éªï¼','2','mes_qc_type',0,'warning','','ç产å¶ç¨è´¨éæ£éª','1','2026-02-18 14:12:05','1','2026-03-24 15:21:34',0x00),(3123,3,'OQCï¼åºè´§æ£éªï¼','3','mes_qc_type',0,'success','','åºè´§è´¨éæ£éª','1','2026-02-18 14:12:05','1','2026-02-18 14:12:05',0x00),(3124,4,'RQCï¼éè´§æ£éªï¼','4','mes_qc_type',0,'danger','','éè´§è´¨éæ£éª','1','2026-02-18 14:12:05','1','2026-09-18 18:10:21',0x00),(3125,0,'å¼å§-å¼å§(SS)','0','mes_pro_link_type',0,'default','','ååºå¼å§åï¼ååºå¯ä»¥å¼å§','1','2026-02-19 04:24:53','1','2026-02-19 04:24:53',0x00),(3126,1,'ç»æ-ç»æ(FF)','1','mes_pro_link_type',0,'default','','ååºç»æåï¼ååºæè½ç»æ','1','2026-02-19 04:24:53','1','2026-02-19 04:24:53',0x00),(3127,2,'å¼å§-ç»æ(SF)','2','mes_pro_link_type',0,'default','','ååºå¼å§åï¼ååºæè½ç»æ','1','2026-02-19 04:24:53','1','2026-02-19 04:24:53',0x00),(3128,3,'ç»æ-å¼å§(FS)','3','mes_pro_link_type',0,'default','','ååºç»æåï¼ååºæè½å¼å§','1','2026-02-19 04:24:53','1','2026-02-19 04:24:53',0x00),(3129,1,'åé','MINUTE','mes_time_unit_type',0,'default','','','1','2026-02-19 04:24:53','1','2026-02-19 04:24:53',0x00),(3130,2,'å°æ¶','HOUR','mes_time_unit_type',0,'default','','','1','2026-02-19 04:24:53','1','2026-02-19 04:24:53',0x00),(3131,3,'天','DAY','mes_time_unit_type',0,'default','','','1','2026-02-19 04:24:53','1','2026-02-19 04:24:53',0x00),(3137,1,'设å¤ç¹æ£','1','mes_dv_subject_type',0,'info','','','1','2026-02-20 01:42:58','1','2026-02-20 01:42:58',0x00),(3138,2,'设å¤ä¿å
»','2','mes_dv_subject_type',0,'success','','','1','2026-02-20 01:42:58','1','2026-02-20 01:42:58',0x00),(3139,1,'å¾
ä¿å
»','0','mes_mainten_record_status',0,'info','',NULL,'admin','2026-02-20 02:59:55','1','2026-04-16 05:32:37',0x00),(3140,2,'已宿','4','mes_mainten_record_status',0,'success','',NULL,'admin','2026-02-20 02:59:55','1','2026-04-16 05:32:37',0x00),(3141,1,'æ£å¸¸','1','mes_mainten_status',0,'success','',NULL,'admin','2026-02-20 02:59:55','admin','2026-02-20 02:59:55',0x00),(3142,2,'å¼å¸¸','0','mes_mainten_status',0,'danger','',NULL,'admin','2026-02-20 02:59:55','admin','2026-02-20 02:59:55',0x00),(3143,1,'天','1','mes_dv_cycle_type',0,'default','','','1','2026-02-20 07:11:43','1','2026-02-20 07:11:43',0x00),(3144,2,'å¨','2','mes_dv_cycle_type',0,'default','','','1','2026-02-20 07:11:43','1','2026-02-20 07:11:43',0x00),(3145,3,'æ','3','mes_dv_cycle_type',0,'default','','','1','2026-02-20 07:11:43','1','2026-02-20 07:11:43',0x00),(3146,4,'å¹´','4','mes_dv_cycle_type',0,'default','','','1','2026-02-20 07:11:43','1','2026-02-20 07:11:43',0x00),(3147,0,'è稿','0','mes_dv_check_plan_status',0,'info','','','1','2026-02-20 07:11:43','1','2026-02-20 07:11:43',0x00),(3148,1,'å·²å¯ç¨','1','mes_dv_check_plan_status',0,'success','','','1','2026-02-20 07:11:43','1','2026-02-20 07:11:43',0x00),(3149,1,'å¾
ç¹æ£','10','mes_dv_check_record_status',0,'info','',NULL,'admin','2026-02-20 09:46:19','admin','2026-02-20 09:46:19',0x00),(3150,2,'已宿','20','mes_dv_check_record_status',0,'success','',NULL,'admin','2026-02-20 09:46:19','admin','2026-02-20 09:46:19',0x00),(3151,1,'æ£å¸¸','1','mes_dv_check_result',0,'success','',NULL,'admin','2026-02-20 09:46:19','admin','2026-02-20 09:46:19',0x00),(3152,2,'å¼å¸¸','2','mes_dv_check_result',0,'danger','',NULL,'admin','2026-02-20 09:46:19','admin','2026-02-20 09:46:19',0x00),(3157,1,'ä¿®å¤æå','1','mes_dv_repair_result',0,'success','','','1','2026-02-20 10:56:24','1','2026-02-20 10:56:24',0x00),(3158,2,'æ¥åº','2','mes_dv_repair_result',0,'danger','','','1','2026-02-20 10:56:24','1','2026-02-20 10:56:24',0x00),(3161,1,'æ ¡éªéè¿','1','mes_qc_check_result',0,'success','','','1','2026-02-20 11:23:35','1','2026-02-20 16:15:54',0x00),(3162,2,'æ ¡éªä¸éè¿','2','mes_qc_check_result',0,'danger','','','1','2026-02-20 11:23:35','1','2026-02-20 16:15:52',0x00),(3166,0,'æªå¤ç½®','0','mes_pro_andon_status',0,'danger','','','1','2026-02-21 00:08:38','1','2026-02-21 00:08:38',0x00),(3167,1,'å·²å¤ç½®','1','mes_pro_andon_status',0,'success','','','1','2026-02-21 00:08:38','1','2026-02-21 00:08:38',0x00),(3168,1,'ä¸çº§','1','mes_pro_andon_level',0,'danger','','','1','2026-02-21 00:08:38','1','2026-02-21 00:08:38',0x00),(3169,2,'äºçº§','2','mes_pro_andon_level',0,'warning','','','1','2026-02-21 00:08:38','1','2026-02-21 00:08:38',0x00),(3170,3,'ä¸çº§','3','mes_pro_andon_level',0,'info','','','1','2026-02-21 00:08:38','1','2026-02-21 00:08:38',0x00),(3171,0,'è稿','0','mes_pro_feedback_status',0,'info','','','1','2026-02-21 00:50:32','1','2026-02-21 00:50:32',0x00),(3172,2,'审æ¹ä¸','2','mes_pro_feedback_status',0,'primary','','','1','2026-02-21 00:50:32','1','2026-03-19 00:51:54',0x00),(3173,3,'å¾
æ£éª','3','mes_pro_feedback_status',0,'warning','','','1','2026-02-21 00:50:32','1','2026-03-19 00:51:54',0x00),(3174,4,'已宿','4','mes_pro_feedback_status',0,'success','','','1','2026-02-21 00:50:32','1','2026-03-19 00:51:54',0x00),(3176,1,'èªè¡æ¥å·¥','1','mes_pro_feedback_type',0,'primary','','','1','2026-02-21 00:50:32','1','2026-02-21 00:50:32',0x00),(3177,2,'ç»ä¸æ¥å·¥','2','mes_pro_feedback_type',0,'success','','','1','2026-02-21 00:50:32','1','2026-02-21 00:50:32',0x00),(3178,1,'PC','PC','mes_pro_feedback_channel',0,'primary','','','1','2026-02-21 00:50:32','1','2026-02-21 00:50:32',0x00),(3179,2,'APP','APP','mes_pro_feedback_channel',0,'success','','','1','2026-02-21 00:50:32','1','2026-02-21 00:50:32',0x00),(3180,3,'PDA','PDA','mes_pro_feedback_channel',0,'info','','','1','2026-02-21 00:50:32','1','2026-02-21 00:50:32',0x00),(3181,1,'æµ®ç¹','1','mes_qc_result_type',0,'primary','','','1','2026-02-21 13:37:17','1','2026-02-21 13:37:17',0x00),(3182,2,'æ´æ°','2','mes_qc_result_type',0,'success','','','1','2026-02-21 13:37:17','1','2026-02-21 13:37:17',0x00),(3183,3,'ææ¬','3','mes_qc_result_type',0,'info','','','1','2026-02-21 13:37:17','1','2026-02-21 13:37:17',0x00),(3184,4,'åå
¸','4','mes_qc_result_type',0,'warning','','','1','2026-02-21 13:37:17','1','2026-02-21 13:37:17',0x00),(3185,5,'æä»¶','5','mes_qc_result_type',0,'danger','','','1','2026-02-21 13:37:17','1','2026-02-21 13:37:17',0x00),(3186,1,'ç产éæ','1','mes_rqc_type',0,'default','','çäº§éææ£éª','1','2026-02-22 06:44:09','1','2026-02-22 06:44:09',0x00),(3187,2,'éå®éè´§','2','mes_rqc_type',0,'default','','éå®éè´§æ£éª','1','2026-02-22 06:44:09','1','2026-02-22 06:44:09',0x00),(3188,1,'èªå¶å·¥åºæ£éª','1','mes_ipqc_type',0,'primary','','','1','2026-02-22 07:01:04','1','2026-02-22 07:01:04',0x00),(3189,2,'馿£','2','mes_ipqc_type',0,'success','','','1','2026-02-22 07:01:04','1','2026-02-22 07:01:04',0x00),(3190,3,'å·¡æ£','3','mes_ipqc_type',0,'warning','','','1','2026-02-22 07:01:04','1','2026-02-22 07:01:04',0x00),(3191,4,'èªæ£','4','mes_ipqc_type',0,'info','','','1','2026-02-22 07:01:04','1','2026-02-22 07:01:04',0x00),(3192,5,'æåæ£éª','5','mes_ipqc_type',0,'danger','','','1','2026-02-22 07:01:04','1','2026-02-22 07:01:04',0x00),(3205,0,'è稿','0','mes_wm_arrival_notice_status',0,'info','','','1','2026-02-22 14:53:18','1','2026-02-22 14:53:18',0x00),(3206,2,'å¾
è´¨æ£','2','mes_wm_arrival_notice_status',0,'warning','','','1','2026-02-22 14:53:18','1','2026-02-26 05:24:40',0x00),(3207,3,'å¾
å
¥åº','3','mes_wm_arrival_notice_status',0,'success','','','1','2026-02-22 14:53:18','1','2026-02-26 05:24:47',0x00),(3208,4,'已宿','4','mes_wm_arrival_notice_status',0,'primary','','','1','2026-02-22 14:53:18','1','2026-02-26 05:24:52',0x00),(3209,0,'è稿','0','mes_wm_item_receipt_status',0,'info','','','1','2026-02-22 14:54:05','1','2026-02-22 14:54:05',0x00),(3210,1,'å¾
䏿¶','2','mes_wm_item_receipt_status',0,'warning','','','1','2026-02-22 14:54:05','1','2026-02-26 08:03:35',0x00),(3211,2,'å¾
æ§è¡å
¥åº','3','mes_wm_item_receipt_status',0,'success','','','1','2026-02-22 14:54:05','1','2026-02-26 08:03:31',0x00),(3212,3,'已宿','4','mes_wm_item_receipt_status',0,'primary','','','1','2026-02-22 14:54:05','1','2026-02-26 08:03:20',0x00),(3213,4,'已忶','5','mes_wm_item_receipt_status',0,'danger','','','1','2026-02-22 14:54:05','1','2026-02-26 08:03:24',0x00),(3214,1,'è稿','0','mes_order_status',0,'info','','','1','2026-02-23 21:16:03','1','2026-02-23 21:16:03',0x00),(3215,2,'已确认','1','mes_order_status',0,'primary','','','1','2026-02-23 21:16:03','1','2026-02-23 21:16:03',0x00),(3216,3,'审æ¹ä¸','2','mes_order_status',0,'warning','','','1','2026-02-23 21:16:03','1','2026-02-23 21:16:03',0x00),(3217,4,'已审æ¹','3','mes_order_status',0,'success','','','1','2026-02-23 21:16:03','1','2026-02-23 21:16:03',0x00),(3218,5,'已宿','4','mes_order_status',0,'success','','','1','2026-02-23 21:16:03','1','2026-02-23 21:16:03',0x00),(3219,6,'已忶','5','mes_order_status',0,'danger','','','1','2026-02-23 21:16:03','1','2026-02-23 21:16:03',0x00),(3220,1,'è稿','0','mes_wm_issue_status',0,'info','','èç¨¿ç¶æï¼æªå®æ','1','2026-02-26 15:54:25','1','2026-02-26 15:54:25',0x00),(3221,2,'已宿','4','mes_wm_issue_status',0,'success','','已宿åºåº','1','2026-02-26 15:54:25','1','2026-02-26 15:54:25',0x00),(3222,1,'è稿','0','mes_wm_product_issue_status',0,'info','','èç¨¿ç¶æï¼å¯ç¼è¾','1','2026-02-26 16:39:12','1','2026-03-23 13:18:02',0x00),(3223,2,'å¾
æ£è´§','2','mes_wm_product_issue_status',0,'warning','','审æ¹ä¸ï¼å¯æ§è¡æ£è´§','1','2026-02-26 16:39:12','1','2026-03-23 13:18:02',0x00),(3224,3,'å¾
æ§è¡é¢åº','3','mes_wm_product_issue_status',0,'primary','','已审æ¹ï¼æ£è´§å®æ','1','2026-02-26 16:39:12','1','2026-03-23 13:18:02',0x00),(3225,4,'已宿','4','mes_wm_product_issue_status',0,'success','','已宿åºåº','1','2026-02-26 16:39:12','1','2026-03-23 13:18:02',0x00),(3226,5,'已忶','5','mes_wm_product_issue_status',0,'success','','已宿åºåº','1','2026-02-26 16:39:12','1','2026-03-23 13:18:02',0x00),(3232,1,'è稿','0','mes_wm_return_issue_status',0,'info','','èç¨¿ç¶æï¼å¯ç¼è¾','1','2026-02-28 14:11:12','1','2026-02-28 14:28:24',0x00),(3233,2,'å¾
æ£éª','1','mes_wm_return_issue_status',0,'default','','已确认ï¼çå¾
è´¨æ£','1','2026-02-28 14:11:12','1','2026-02-28 14:28:28',0x00),(3234,3,'å¾
䏿¶','2','mes_wm_return_issue_status',0,'warning','','æ£éªå®æï¼çå¾
ä»åºä¸æ¶','1','2026-02-28 14:11:12','1','2026-02-28 14:28:31',0x00),(3235,4,'å¾
æ§è¡éæ','3','mes_wm_return_issue_status',0,'primary','','䏿¶å®æï¼çå¾
æ§è¡éææä½','1','2026-02-28 14:11:12','1','2026-02-28 14:28:34',0x00),(3236,5,'已宿','4','mes_wm_return_issue_status',0,'success','','éææ§è¡å®æï¼åºåå·²æ´æ°','1','2026-02-28 14:11:12','1','2026-02-28 14:28:37',0x00),(3237,6,'已忶','5','mes_wm_return_issue_status',0,'danger','','已忶','1','2026-02-28 14:11:12','1','2026-02-28 14:28:40',0x00),(3238,1,'使éæ','1','mes_wm_return_issue_type',0,'success','','使éåï¼ç´æ¥åæ ¼','1','2026-02-28 14:11:12','1','2026-02-28 14:27:47',0x00),(3239,2,'ä¸è¯éæ','2','mes_wm_return_issue_type',0,'danger','','ä¸è¯åéå','1','2026-02-28 14:11:12','1','2026-02-28 14:27:49',0x00),(3240,3,'å
¶ä»éæ','3','mes_wm_return_issue_type',0,'info','','å
¶ä»åå éæ','1','2026-02-28 14:11:12','1','2026-02-28 14:27:55',0x00),(3241,1,'å¾
æ£','0','mes_wm_quality_status',0,'warning','','å¾
æ£ç¶æ','1','2026-02-28 15:00:53','1','2026-02-28 15:00:53',0x00),(3242,2,'åæ ¼','1','mes_wm_quality_status',0,'success','','åæ ¼ç¶æ','1','2026-02-28 15:00:53','1','2026-02-28 15:00:53',0x00),(3243,3,'ä¸åæ ¼','2','mes_wm_quality_status',0,'danger','','ä¸åæ ¼ç¶æ','1','2026-02-28 15:00:53','1','2026-02-28 15:00:53',0x00),(3244,1,'è稿','0','mes_wm_product_receipt_status',0,'info','','èç¨¿ç¶æ','1','2026-03-01 06:03:07','1','2026-03-01 06:03:07',0x00),(3245,2,'å¾
䏿¶','2','mes_wm_product_receipt_status',0,'primary','','å¾
䏿¶','1','2026-03-01 06:03:07','1','2026-03-01 06:03:07',0x00),(3246,3,'å¾
æ§è¡å
¥åº','3','mes_wm_product_receipt_status',0,'warning','','å¾
æ§è¡å
¥åº','1','2026-03-01 06:03:07','1','2026-03-01 06:03:07',0x00),(3247,4,'已宿','4','mes_wm_product_receipt_status',0,'success','','已宿','1','2026-03-01 06:03:07','1','2026-03-01 06:03:07',0x00),(3248,5,'已忶','5','mes_wm_product_receipt_status',0,'danger','','已忶','1','2026-03-01 06:03:07','1','2026-03-01 06:03:07',0x00),(3252,1,'è稿','0','mes_wm_product_sales_status',0,'info','','èç¨¿ç¶æ','1','2026-03-02 08:55:11','1','2026-03-02 08:55:11',0x00),(3253,3,'å¾
æ£è´§','2','mes_wm_product_sales_status',0,'warning','','å¾
æ£è´§ç¶æ','1','2026-03-02 08:55:11','1','2026-03-27 11:44:48',0x00),(3254,4,'å¾
åºåº','3','mes_wm_product_sales_status',0,'primary','','å¾
åºåºç¶æ','1','2026-03-02 08:55:11','1','2026-03-27 11:44:48',0x00),(3255,5,'已宿','4','mes_wm_product_sales_status',0,'success','','å·²å®æç¶æ','1','2026-03-02 08:55:11','1','2026-03-27 11:44:48',0x00),(3256,6,'已忶','5','mes_wm_product_sales_status',0,'danger','','å·²åæ¶ç¶æ','1','2026-03-02 08:55:11','1','2026-03-27 11:44:48',0x00),(3272,1,'è稿','0','mes_wm_misc_receipt_status',0,'info','','èç¨¿ç¶æ','1','2026-03-03 07:33:41','1','2026-03-03 07:33:41',0x00),(3273,2,'å¾
æ§è¡å
¥åº','3','mes_wm_misc_receipt_status',0,'primary','','å¾
æ§è¡å
¥åºç¶æ','1','2026-03-03 07:33:41','1','2026-03-03 07:37:34',0x00),(3274,3,'已宿','4','mes_wm_misc_receipt_status',0,'success','','å·²å®æç¶æ','1','2026-03-03 07:33:41','1','2026-03-03 07:33:41',0x00),(3275,4,'已忶','5','mes_wm_misc_receipt_status',0,'danger','','å·²åæ¶ç¶æ','1','2026-03-03 07:33:41','1','2026-03-03 07:33:41',0x00),(3277,1,'åºåè°æ´','1','mes_wm_misc_receipt_type',0,'primary','','åºåè°æ´å
¥åº','1','2026-03-03 07:34:33','1','2026-03-03 07:34:33',0x00),(3278,1,'åºåè°æ´','1','mes_wm_misc_issue_type',0,'primary','','åºåè°æ´åºåº','1','2026-03-03 07:34:33','1','2026-03-03 07:34:33',0x00),(3279,2,'æ¥åºåºåº','2','mes_wm_misc_issue_type',0,'danger','','æ¥åºåºåº','1','2026-03-03 07:36:13','1','2026-03-03 07:36:13',0x00),(3280,1,'è稿','0','mes_wm_outsource_receipt_status',0,'info','','èç¨¿ç¶æ','1','2026-03-03 14:03:57','1','2026-03-03 14:03:57',0x00),(3281,2,'å¾
æ£éª','1','mes_wm_outsource_receipt_status',0,'warning','','已确认ï¼çå¾
è´¨æ£','1','2026-03-03 14:03:57','1','2026-03-03 14:03:57',0x00),(3282,3,'å¾
䏿¶','2','mes_wm_outsource_receipt_status',0,'primary','','æ£éªå®æï¼çå¾
ä»åºä¸æ¶','1','2026-03-03 14:03:57','1','2026-03-03 14:03:57',0x00),(3283,4,'å¾
æ§è¡å
¥åº','3','mes_wm_outsource_receipt_status',0,'warning','','䏿¶å®æï¼çå¾
æ§è¡å
¥åºæä½','1','2026-03-03 14:03:57','1','2026-03-03 14:03:57',0x00),(3284,5,'已宿','4','mes_wm_outsource_receipt_status',0,'success','','å
¥åºæ§è¡å®æï¼åºåå·²æ´æ°','1','2026-03-03 14:03:57','1','2026-03-03 14:03:57',0x00),(3285,6,'已忶','5','mes_wm_outsource_receipt_status',0,'danger','','已忶','1','2026-03-03 14:03:57','1','2026-03-03 14:03:57',0x00),(3286,1,'è稿','0','mes_wm_outsource_issue_status',0,'info','','èç¨¿ç¶æï¼å¯ç¼è¾ãå é¤ãæ§è¡åºåº','1','2026-03-03 16:31:00','1','2026-03-03 16:31:00',0x00),(3287,2,'å¾
æ£è´§','2','mes_wm_outsource_issue_status',0,'warning','','å¾
æ£è´§ç¶æ','1','2026-03-03 16:31:00','1','2026-03-03 16:31:00',0x00),(3288,3,'å¾
æ§è¡åºåº','3','mes_wm_outsource_issue_status',0,'primary','','å¾
æ§è¡åºåºç¶æ','1','2026-03-03 16:31:00','1','2026-03-03 16:31:00',0x00),(3289,4,'已宿','4','mes_wm_outsource_issue_status',0,'success','','已宿ï¼åºåå·²æ£å','1','2026-03-03 16:31:00','1','2026-03-03 16:31:00',0x00),(3290,5,'已忶','5','mes_wm_outsource_issue_status',0,'danger','','å·²åæ¶ç¶æ','1','2026-03-03 16:31:00','1','2026-03-03 16:31:00',0x00),(3301,1,'è¾å
¥å符','1','mes_md_auto_code_part_type',0,'default','','è¾å
¥å符','1','2026-03-04 14:46:22','1','2026-03-04 15:24:40',0x00),(3302,2,'å½åæ¥æ','2','mes_md_auto_code_part_type',0,'primary','','å½åæ¥ææ¶é´','1','2026-03-04 14:46:22','1','2026-03-04 15:24:40',0x00),(3303,3,'åºå®å符','3','mes_md_auto_code_part_type',0,'success','','åºå®å符','1','2026-03-04 14:46:22','1','2026-03-04 15:24:40',0x00),(3304,4,'æµæ°´å·','4','mes_md_auto_code_part_type',0,'warning','','æµæ°´å·','1','2026-03-04 14:46:22','1','2026-03-04 15:24:40',0x00),(3305,1,'左补é½','1','mes_md_auto_code_padded_method',0,'primary','','左补é½','1','2026-03-04 14:46:22','1','2026-03-04 15:24:40',0x00),(3306,2,'å³è¡¥é½','2','mes_md_auto_code_padded_method',0,'success','','å³è¡¥é½','1','2026-03-04 14:46:22','1','2026-03-04 15:24:40',0x00),(3307,1,'æå¹´','1','mes_md_auto_code_cycle_method',0,'default','','æå¹´å¾ªç¯','1','2026-03-04 14:46:22','1','2026-03-04 15:24:40',0x00),(3308,2,'ææ','2','mes_md_auto_code_cycle_method',0,'primary','','ææå¾ªç¯','1','2026-03-04 14:46:22','1','2026-03-04 15:24:40',0x00),(3309,3,'æå¤©','3','mes_md_auto_code_cycle_method',0,'success','','æå¤©å¾ªç¯','1','2026-03-04 14:46:22','1','2026-03-04 15:24:40',0x00),(3310,4,'æå°æ¶','4','mes_md_auto_code_cycle_method',0,'warning','','æå°æ¶å¾ªç¯','1','2026-03-04 14:46:22','1','2026-03-04 15:24:40',0x00),(3311,5,'æåé','5','mes_md_auto_code_cycle_method',0,'danger','','æåé循ç¯','1','2026-03-04 14:46:22','1','2026-03-04 15:24:40',0x00),(3312,10,'æä¼ å
¥å符','10','mes_md_auto_code_cycle_method',0,'info','','æä¼ å
¥å符循ç¯','1','2026-03-04 14:46:22','1','2026-03-04 15:24:40',0x00),(3313,1,'äºç»´ç ','1','mes_wm_barcode_format',0,'primary','','QR_CODE','1','2026-03-05 14:37:20','1','2026-03-06 13:18:21',0x00),(3314,2,'EAN13 ååæ¡ç ','2','mes_wm_barcode_format',0,'success','','EAN13','1','2026-03-05 14:37:20','1','2026-03-06 13:18:23',0x00),(3315,3,'CODE39 工䏿¡ç ','3','mes_wm_barcode_format',0,'info','','CODE39','1','2026-03-05 14:37:20','1','2026-03-06 13:18:25',0x00),(3316,4,'UPC-A ç¾å½ååç ','4','mes_wm_barcode_format',0,'warning','','UPC_A','1','2026-03-05 14:37:20','1','2026-03-06 13:18:28',0x00),(3318,3,'åºä½','104','mes_wm_barcode_biz_type',0,'default','','AREA','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3319,4,'è£
ç®±å','105','mes_wm_barcode_biz_type',0,'default','','PACKAGE','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3320,5,'åºå','106','mes_wm_barcode_biz_type',0,'default','','STOCK','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3321,6,'æ¹æ¬¡','107','mes_wm_barcode_biz_type',0,'default','','BATCH','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3322,7,'æµè½¬å¡','300','mes_wm_barcode_biz_type',0,'primary','','PROCARD','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3323,8,'å·¥å','301','mes_wm_barcode_biz_type',0,'primary','','WORKORDER','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3324,9,'æµè½¬å','302','mes_wm_barcode_biz_type',0,'primary','','TRANSORDER','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3325,10,'设å¤','400','mes_wm_barcode_biz_type',0,'success','','MACHINERY','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3327,12,'产åç©æ','600','mes_wm_barcode_biz_type',0,'info','','ITEM','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3328,13,'ä¾åºå','601','mes_wm_barcode_biz_type',0,'info','','VENDOR','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3329,14,'å·¥ä½ç«','602','mes_wm_barcode_biz_type',0,'info','','WORKSTATION','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3330,15,'车é´','603','mes_wm_barcode_biz_type',0,'info','','WORKSHOP','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3331,16,'人å','604','mes_wm_barcode_biz_type',0,'info','','USER','1','2026-03-05 14:37:20','1','2026-03-07 06:25:19',0x00),(3351,1,'ä»åº','102','mes_wm_barcode_biz_type',0,'','',NULL,'','2026-03-07 06:22:27','','2026-03-07 06:25:19',0x00),(3352,2,'åºåº','103','mes_wm_barcode_biz_type',0,'','',NULL,'','2026-03-07 06:22:27','','2026-03-07 06:25:19',0x00),(3353,11,'å·¥å
·','500','mes_wm_barcode_biz_type',0,'','',NULL,'','2026-03-07 06:22:27','','2026-03-07 06:22:27',0x00),(3354,17,'客æ·','605','mes_wm_barcode_biz_type',0,'','',NULL,'','2026-03-07 06:22:27','','2026-03-07 06:25:19',0x00),(3355,1,'è稿','0','mes_wm_package_status',0,'info','','èç¨¿ç¶æï¼å¯ç¼è¾','1','2026-03-08 02:05:46','1','2026-03-08 02:05:46',0x00),(3356,2,'已宿','4','mes_wm_package_status',0,'success','','è£
ç®±å·²å®æ','1','2026-03-08 02:05:46','1','2026-03-08 02:05:46',0x00),(3357,1,'è稿','0','mes_wm_transfer_status',0,'info','','èç¨¿ç¶æï¼å¯ç¼è¾','1','2026-03-08 11:55:25','1','2026-03-08 11:55:25',0x00),(3358,2,'å¾
确认','1','mes_wm_transfer_status',0,'warning','','å¤é¨è°æ¨å¾
确认å°è´§','1','2026-03-08 11:55:25','1','2026-03-08 11:55:25',0x00),(3359,3,'å¾
䏿¶','2','mes_wm_transfer_status',0,'primary','','å¾
ç»´æ¤ç®æ åºä½æç»','1','2026-03-08 11:55:25','1','2026-03-08 11:55:25',0x00),(3360,4,'å¾
æ§è¡','3','mes_wm_transfer_status',0,'success','','ç®æ åºä½å·²åé
ï¼å¾
æ§è¡è°æ¨','1','2026-03-08 11:55:25','1','2026-03-08 11:55:25',0x00),(3361,5,'已宿','4','mes_wm_transfer_status',0,'success','','è°æ¨å·²å®æ','1','2026-03-08 11:55:25','1','2026-03-08 11:55:25',0x00),(3362,6,'已忶','5','mes_wm_transfer_status',0,'danger','','è°æ¨å·²åæ¶','1','2026-03-08 11:55:25','1','2026-03-08 11:55:25',0x00),(3363,1,'å
é¨è°æ¨','1','mes_wm_transfer_type',0,'success','','å
é¨ä»å¨è°æ¨','1','2026-03-08 11:55:25','1','2026-03-08 11:55:25',0x00),(3364,2,'å¤é¨è°æ¨','2','mes_wm_transfer_type',0,'warning','','å¤é¨é
é/å¤é¨æ¶è´§è°æ¨','1','2026-03-08 11:55:25','1','2026-03-08 11:55:25',0x00),(3365,1,'éæçç¹','1','mes_wm_stock_taking_type',0,'primary','','éæçç¹','1','2026-03-09 00:00:00','1','2026-04-05 15:02:18',0x00),(3366,2,'卿çç¹','2','mes_wm_stock_taking_type',0,'success','','卿çç¹','1','2026-03-09 00:00:00','1','2026-04-05 15:02:18',0x00),(3367,1,'ä»åº','102','mes_wm_stock_taking_plan_param_type',0,'primary','','æä»åºçç¹','1','2026-03-09 00:00:00','1','2026-03-09 00:00:00',0x00),(3368,2,'åºåº','103','mes_wm_stock_taking_plan_param_type',0,'success','','æåºåºçç¹','1','2026-03-09 00:00:00','1','2026-03-09 00:00:00',0x00),(3369,3,'åºä½','104','mes_wm_stock_taking_plan_param_type',0,'info','','æåºä½çç¹','1','2026-03-09 00:00:00','1','2026-03-09 00:00:00',0x00),(3370,4,'ç©æ','600','mes_wm_stock_taking_plan_param_type',0,'warning','','æç©æçç¹','1','2026-03-09 00:00:00','1','2026-03-09 00:00:00',0x00),(3371,5,'æ¹æ¬¡','107','mes_wm_stock_taking_plan_param_type',0,'danger','','ææ¹æ¬¡çç¹','1','2026-03-09 00:00:00','1','2026-03-09 00:00:00',0x00),(3372,1,'è稿','0','mes_wm_stock_taking_task_status',0,'info','','è稿','1','2026-03-09 00:00:00','1','2026-04-05 15:02:18',0x00),(3373,2,'审æ¹ä¸','2','mes_wm_stock_taking_task_status',0,'primary','','çç¹ä»»å¡å®¡æ¹ä¸','1','2026-03-09 00:00:00','1','2026-03-09 00:00:00',0x00),(3374,3,'已宿','4','mes_wm_stock_taking_task_status',0,'success','','已宿','1','2026-03-09 00:00:00','1','2026-04-05 15:02:18',0x00),(3375,4,'已忶','5','mes_wm_stock_taking_task_status',0,'danger','','已忶','1','2026-03-09 00:00:00','1','2026-04-05 15:02:18',0x00),(3377,1,'æ£å¸¸','1','mes_wm_stock_taking_task_line_status',0,'success','','æ£å¸¸','1','2026-03-09 00:00:00','1','2026-04-05 15:02:18',0x00),(3378,2,'çç','2','mes_wm_stock_taking_task_line_status',0,'primary','','çç','1','2026-03-09 00:00:00','1','2026-04-05 15:02:18',0x00),(3379,3,'çäº','3','mes_wm_stock_taking_task_line_status',0,'danger','','çäº','1','2026-03-09 00:00:00','1','2026-04-05 15:02:18',0x00),(3380,6,'è´¨éç¶æ','900','mes_wm_stock_taking_plan_param_type',0,'default','','æè´¨éç¶æçç¹','1','2026-03-09 00:00:00','1','2026-03-09 00:00:00',0x00),(3381,1,'ç©æ','ITEM','mes_md_item_or_product',0,'info','','','1','2026-03-15 01:55:06','1','2026-03-15 01:55:06',0x00),(3382,2,'产å','PRODUCT','mes_md_item_or_product',0,'success','','','1','2026-03-15 01:55:06','1','2026-03-15 01:55:06',0x00),(3383,1,'è稿','0','mes_wm_item_consume_status',0,'info','','èç¨¿ç¶æ','1','2026-03-19 15:06:23','1','2026-03-19 15:06:23',0x00),(3384,2,'已宿','4','mes_wm_item_consume_status',0,'success','','已宿','1','2026-03-19 15:06:23','1','2026-03-19 15:06:23',0x00),(3385,1,'å°è´§éç¥å','100','mes_qc_source_doc_type',0,'primary','','IQC','1','2026-03-26 13:01:09','1','2026-03-26 13:01:09',0x00),(3386,2,'å¤åå
¥åºå','121','mes_qc_source_doc_type',0,'warning','','IQC','1','2026-03-26 13:01:09','1','2026-03-26 13:01:09',0x00),(3387,3,'ç产æ¥å·¥','304','mes_qc_source_doc_type',0,'success','','IPQC','1','2026-03-26 13:01:09','1','2026-03-26 13:01:09',0x00),(3388,4,'éå®åºåºå','118','mes_qc_source_doc_type',0,'info','','OQC','1','2026-03-26 13:01:09','1','2026-03-26 13:01:09',0x00),(3389,5,'ç产éæå','116','mes_qc_source_doc_type',0,'danger','','RQC','1','2026-03-26 13:01:09','1','2026-03-26 13:01:09',0x00),(3390,6,'éå®éè´§å','119','mes_qc_source_doc_type',0,'default','','RQC','1','2026-03-26 13:01:09','1','2026-03-26 13:01:09',0x00),(3397,2,'å¾
æ£æµ','1','mes_wm_product_sales_status',0,'warning','','OQC æ£éªä¸','1','2026-03-27 11:44:48','1','2026-03-27 11:44:48',0x00),(3398,0,'è稿','0','mes_wm_return_vendor_status',0,'info','',NULL,'','2026-03-29 13:49:57','','2026-04-05 15:53:46',0x00),(3399,1,'å¾
æ£è´§','2','mes_wm_return_vendor_status',0,'primary','',NULL,'','2026-03-29 13:49:57','','2026-04-05 15:53:46',0x00),(3400,2,'å¾
æ§è¡éè´§','3','mes_wm_return_vendor_status',0,'warning','',NULL,'','2026-03-29 13:49:57','','2026-04-05 15:53:46',0x00),(3401,3,'已宿','4','mes_wm_return_vendor_status',0,'success','',NULL,'','2026-03-29 13:49:57','','2026-04-05 15:53:46',0x00),(3402,4,'已忶','5','mes_wm_return_vendor_status',0,'danger','',NULL,'','2026-03-29 13:49:57','','2026-04-05 15:53:46',0x00),(3403,1,'è稿','0','mes_wm_sales_notice_status',0,'info','','èç¨¿ç¶æï¼å¯ä»¥ä¿®æ¹åå é¤','1','2026-03-30 08:54:30','1','2026-04-05 15:53:46',0x00),(3404,2,'å¾
åºåº','3','mes_wm_sales_notice_status',0,'success','','å·²æäº¤ç¶æï¼ä¸å¯ä¿®æ¹åå é¤','1','2026-03-30 08:54:30','1','2026-04-05 15:53:46',0x00),(3405,3,'已宿','4','mes_wm_sales_notice_status',0,'','',NULL,'1','2026-03-30 10:02:10','1','2026-04-05 15:53:46',0x00),(3406,1,'è稿','0','mes_wm_misc_issue_status',0,'info','','èç¨¿ç¶æ','1','2026-03-30 15:00:18','1','2026-03-30 15:00:18',0x00),(3407,2,'å¾
åºåº','3','mes_wm_misc_issue_status',0,'warning','','å¾
åºåºç¶æ','1','2026-03-30 15:00:18','1','2026-03-30 15:00:18',0x00),(3408,3,'已宿','4','mes_wm_misc_issue_status',0,'success','','æ§è¡åºåºåçç¶æ','1','2026-03-30 15:00:18','1','2026-03-30 15:00:18',0x00),(3409,4,'已忶','5','mes_wm_misc_issue_status',0,'danger','','å·²åæ¶ç¶æ','1','2026-03-30 15:00:18','1','2026-03-30 15:00:18',0x00),(3415,1,'注å¡','1','mes_cal_calendar_type',0,'primary','','','1','2026-04-01 15:23:14','1','2026-04-01 16:08:31',0x00),(3416,2,'ææå·¥','2','mes_cal_calendar_type',0,'success','','','1','2026-04-01 15:23:14','1','2026-08-25 16:35:23',0x00),(3417,3,'ç»è£
','3','mes_cal_calendar_type',0,'warning','','','1','2026-04-01 15:23:14','1','2026-04-01 16:08:33',0x00),(3418,4,'ä»åº','4','mes_cal_calendar_type',0,'danger','','','1','2026-04-01 15:23:14','1','2026-04-01 16:08:34',0x00),(3419,0,'è稿','0','mes_dv_repair_status',0,'info','','','1','2026-04-03 17:20:23','1','2026-04-03 17:20:23',0x00),(3420,1,'ç»´ä¿®ä¸','1','mes_dv_repair_status',0,'primary','','','1','2026-04-03 17:20:23','1','2026-04-03 17:20:23',0x00),(3421,2,'å¾
éªæ¶','2','mes_dv_repair_status',0,'warning','','','1','2026-04-03 17:20:23','1','2026-04-03 17:20:23',0x00),(3422,3,'已确认','4','mes_dv_repair_status',0,'success','','','1','2026-04-03 17:20:23','1','2026-04-03 17:20:23',0x00),(3423,0,'è稿','0','mes_wm_return_sales_status',0,'info','','','1','2026-04-03 17:20:25','1','2026-04-03 17:20:25',0x00),(3424,1,'å¾
æ£éª','1','mes_wm_return_sales_status',0,'warning','','','1','2026-04-03 17:20:25','1','2026-04-03 17:20:25',0x00),(3425,2,'å¾
æ§è¡','2','mes_wm_return_sales_status',0,'warning','','','1','2026-04-03 17:20:25','1','2026-04-03 17:20:25',0x00),(3426,3,'å¾
䏿¶','3','mes_wm_return_sales_status',0,'primary','','','1','2026-04-03 17:20:25','1','2026-04-03 17:20:25',0x00),(3427,4,'已宿','4','mes_wm_return_sales_status',0,'success','','','1','2026-04-03 17:20:25','1','2026-04-03 17:20:25',0x00),(3428,5,'已忶','5','mes_wm_return_sales_status',0,'danger','','','1','2026-04-03 17:20:25','1','2026-04-03 17:20:25',0x00),(3436,1,'ä¸å·¥','1','mes_pro_work_record_type',0,'success','','','1','2026-04-05 14:07:27','1','2026-04-05 14:07:27',0x00),(3437,2,'ä¸å·¥','2','mes_pro_work_record_type',0,'danger','','','1','2026-04-05 14:07:27','1','2026-04-05 14:07:27',0x00),(3443,1,'è稿','0','mes_wm_product_produce_status',0,'info','','èç¨¿ç¶æ','1','2026-04-05 15:53:46','1','2026-04-05 15:53:46',0x00),(3444,2,'已宿','4','mes_wm_product_produce_status',0,'success','','å·²å®æç¶æ','1','2026-04-05 15:53:46','1','2026-04-05 15:53:46',0x00),(3445,3,'已忶','5','mes_wm_product_produce_status',0,'danger','','å·²åæ¶ç¶æ','1','2026-04-05 15:53:46','1','2026-04-05 15:53:46',0x00),(3446,0,'è稿','0','mes_pro_task_status',0,'default','','PREPARE','1','2026-04-16 09:47:00','1','2026-06-13 10:32:58',0x00),(3447,4,'已宿','4','mes_pro_task_status',0,'success','','FINISHED','1','2026-04-16 09:47:00','1','2026-07-22 08:00:26',0x00),(3448,2,'已忶','5','mes_pro_task_status',0,'danger','','CANCELED','1','2026-04-16 09:47:00','1','2026-06-13 10:32:58',0x00),(3525,1,'æ£å¸¸','0','im_message_status',0,'success','','æ£å¸¸ï¼åå§ç¶æï¼','admin','2026-04-30 15:14:36','admin','2026-06-16 03:41:55',0x00),(3526,2,'å·²æ¤å','2','im_message_status',0,'danger','','å·²æ¤å','admin','2026-04-30 15:14:36','admin','2026-06-16 03:41:55',0x00),(3530,1,'ä¸éè¦åæ§','0','im_message_receipt_status',0,'info','','NO_RECEIPT','admin','2026-04-30 11:35:07','admin','2026-06-14 00:32:47',0x00),(3531,2,'å¾
宿','1','im_message_receipt_status',0,'warning','','PENDING','admin','2026-04-30 11:35:07','admin','2026-06-14 00:32:47',0x00),(3532,3,'已宿','2','im_message_receipt_status',0,'success','','DONE','admin','2026-04-30 11:35:07','admin','2026-06-14 00:32:47',0x00),(3540,1,'æ£å¸¸','0','im_friend_status',0,'success','','æ£å¸¸å¥½åå
³ç³»','admin','2026-04-30 11:35:07','admin','2026-04-30 11:35:07',0x00),(3541,2,'å·²å é¤','1','im_friend_status',0,'danger','','å·²å é¤å¥½åå
³ç³»','admin','2026-04-30 11:35:07','admin','2026-04-30 11:35:07',0x00),(3550,1,'æ£å¸¸','0','im_group_status',0,'success','','群æ£å¸¸','admin','2026-04-30 11:35:07','admin','2026-04-30 11:35:07',0x00),(3551,2,'已解æ£','1','im_group_status',0,'info','','群已解æ£','admin','2026-04-30 11:35:07','admin','2026-04-30 11:35:07',0x00),(3552,1,'群主','1','im_group_member_role',0,'primary','',NULL,'1','2026-05-02 02:14:12','1','2026-05-02 02:14:12',0x00),(3553,2,'管çå','2','im_group_member_role',0,'warning','',NULL,'1','2026-05-02 02:14:12','1','2026-05-02 02:14:12',0x00),(3554,3,'æ®éæå','3','im_group_member_role',0,'info','',NULL,'1','2026-05-02 02:14:12','1','2026-05-02 02:14:12',0x00),(3555,1,'æç´¢','1','im_friend_add_source',0,'default','',NULL,'1','2026-05-04 02:43:41','1','2026-05-05 11:46:57',0x00),(3556,2,'群è','2','im_friend_add_source',0,'default','',NULL,'1','2026-05-04 02:43:41','1','2026-05-05 11:46:53',0x00),(3557,3,'æ«ç ','3','im_friend_add_source',0,'default','',NULL,'1','2026-05-04 02:43:41','1','2026-05-05 11:46:50',0x00),(3558,4,'åç','4','im_friend_add_source',0,'default','',NULL,'1','2026-05-04 02:43:41','1','2026-05-05 11:46:48',0x00),(3559,1,'çå¾
éªè¯','0','im_friend_request_handle_result',0,'warning','',NULL,'1','2026-05-04 02:43:41','1','2026-05-04 02:43:41',0x00),(3560,2,'已添å ','1','im_friend_request_handle_result',0,'success','',NULL,'1','2026-05-04 02:43:41','1','2026-05-04 02:43:41',0x00),(3561,3,'å·²æç»','2','im_friend_request_handle_result',0,'info','',NULL,'1','2026-05-04 02:43:41','1','2026-05-04 02:43:41',0x00),(3562,101,'ææ¬','101','im_content_type',0,'','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3563,102,'å¾ç','102','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3564,103,'è¯é³','103','im_content_type',0,'warning','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3565,104,'è§é¢','104','im_content_type',0,'warning','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3566,105,'æä»¶','105','im_content_type',0,'info','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3568,2101,'æ¤å','2101','im_content_type',0,'danger','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3569,2200,'åæ§','2200','im_content_type',0,'warning','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3570,2201,'已读','2201','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3571,1501,'群å建','1501','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3572,1502,'群信æ¯åæ´','1502','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3573,1503,'æ¶å°æ°çå
¥ç¾¤ç³è¯·','1503','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:47:00',0x00),(3574,1504,'æåé群','1504','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3575,1505,'å
¥ç¾¤ç³è¯·è¢«åæ','1505','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:47:00',0x00),(3576,1506,'å
¥ç¾¤ç³è¯·è¢«æç»','1506','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:47:00',0x00),(3577,1507,'群主转让','1507','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3578,1508,'æå被移åº','1508','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3579,1509,'æåå å
¥','1509','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3580,1510,'èªç±è¿ç¾¤','1510','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3581,1511,'群解æ£','1511','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3582,1512,'æåç¦è¨','1512','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3583,1513,'æååæ¶ç¦è¨','1513','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3584,1514,'å
¨ç¾¤ç¦è¨','1514','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3585,1515,'å
¨ç¾¤åæ¶ç¦è¨','1515','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3586,1516,'æåæµç§°åæ´','1516','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3587,1517,'æ·»å 管çå','1517','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3588,1518,'æ¤é管çå','1518','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3589,1519,'群å
¬ååæ´','1519','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3590,1520,'群ååæ´','1520','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3591,1531,'ç¾¤æ¶æ¯ç½®é¡¶','1531','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3592,1532,'ç¾¤æ¶æ¯åæ¶ç½®é¡¶','1532','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3593,1533,'群å°ç¦åæ´','1533','im_content_type',0,'success','',NULL,'admin','2026-05-05 11:52:30','admin','2026-06-16 03:41:55',0x00),(3594,1204,'æ°å¢å¥½å','1204','im_content_type',0,'success','',NULL,'admin','2026-05-05 13:26:53','admin','2026-06-16 03:41:55',0x00),(3595,1205,'好å被å é¤','1205','im_content_type',0,'warning','',NULL,'admin','2026-05-05 13:26:53','admin','2026-06-16 03:41:55',0x00),(3596,1,'æç´¢','1','im_group_add_source',0,'','',NULL,'','2026-05-06 09:26:36','','2026-05-06 09:26:36',0x00),(3597,2,'é请','2','im_group_add_source',0,'','',NULL,'','2026-05-06 09:26:36','','2026-05-06 09:26:36',0x00),(3598,3,'æ«ç ','3','im_group_add_source',0,'','',NULL,'','2026-05-06 09:26:36','','2026-05-06 09:26:36',0x00),(3599,4,'åäº«é¾æ¥','4','im_group_add_source',0,'','',NULL,'','2026-05-06 09:26:36','','2026-05-06 09:26:36',0x00),(3600,1,'æªå¤ç','0','im_group_request_handle_result',0,'','',NULL,'','2026-05-06 09:26:36','','2026-05-06 09:26:36',0x00),(3601,2,'åæ','1','im_group_request_handle_result',0,'','',NULL,'','2026-05-06 09:26:36','','2026-05-06 09:26:36',0x00),(3602,3,'æç»','2','im_group_request_handle_result',0,'','',NULL,'','2026-05-06 09:26:36','','2026-05-06 09:26:36',0x00),(1061051,1,'客æ·','1','merchant_type',0,'primary','','客æ·','1','2026-05-10 15:26:09','1','2026-05-10 15:26:09',0x00),(1061052,2,'ä¾åºå','2','merchant_type',0,'success','','ä¾åºå','1','2026-05-10 15:26:09','1','2026-05-10 15:26:09',0x00),(1061053,3,'客æ·/ä¾åºå','3','merchant_type',0,'warning','','客æ·/ä¾åºå','1','2026-05-10 15:26:09','1','2026-05-10 15:26:09',0x00),(1061061,1,'å
¥åºå','1','wms_order_type',0,'success','','','1','2026-05-10 17:51:46','1','2026-05-14 08:14:09',0x00),(1061062,2,'åºåºå','2','wms_order_type',0,'danger','','','1','2026-05-10 17:51:46','1','2026-05-14 08:14:09',0x00),(1061063,3,'ç§»åºå','3','wms_order_type',0,'primary','','','1','2026-05-10 17:51:46','1','2026-05-14 08:14:09',0x00),(1061064,4,'çåºå','4','wms_order_type',0,'warning','','','1','2026-05-10 17:51:46','1','2026-05-14 08:14:09',0x00),(1061071,1,'è稿','0','wms_order_status',0,'info','','è稿','1','2026-05-12 13:40:29','1','2026-05-12 13:40:29',0x00),(1061072,2,'已宿','4','wms_order_status',0,'success','','已宿','1','2026-05-12 13:40:29','1','2026-05-12 13:40:29',0x00),(1061073,3,'å·²ä½åº','5','wms_order_status',0,'danger','','å·²ä½åº','1','2026-05-12 13:40:29','1','2026-05-12 13:40:29',0x00),(1061081,1,'ç产å
¥åº','100','wms_receipt_order_type',0,'success','','','1','2026-05-11 11:21:49','1','2026-05-14 02:21:20',0x00),(1061082,2,'éè´å
¥åº','101','wms_receipt_order_type',0,'primary','','','1','2026-05-11 11:21:49','1','2026-05-14 02:21:20',0x00),(1061083,3,'éè´§å
¥åº','102','wms_receipt_order_type',0,'warning','','','1','2026-05-11 11:21:49','1','2026-05-14 02:21:20',0x00),(1061084,4,'å½è¿å
¥åº','103','wms_receipt_order_type',0,'info','','','1','2026-05-13 16:02:33','1','2026-05-14 02:21:20',0x00),(1061091,1,'éè´§åºåº','200','wms_shipment_order_type',0,'warning','','éè´§åºåº','1','2026-05-12 17:48:35','1','2026-05-12 17:48:35',0x00),(1061092,2,'éå®åºåº','201','wms_shipment_order_type',0,'primary','','éå®åºåº','1','2026-05-12 17:48:35','1','2026-05-12 17:48:35',0x00),(1061093,3,'ç产åºåº','202','wms_shipment_order_type',0,'success','','ç产åºåº','1','2026-05-12 17:48:35','1','2026-05-12 17:48:35',0x00),(1061096,1,'è¯é³','1','im_rtc_call_media_type',0,'','','è¯é³éè¯','admin','2026-05-16 11:34:50','admin','2026-05-16 11:34:50',0x00),(1061097,2,'è§é¢','2','im_rtc_call_media_type',0,'','','è§é¢éè¯','admin','2026-05-16 11:34:50','admin','2026-05-16 11:34:50',0x00),(1061098,1,'ç§è','1','im_rtc_call_conversation_type',0,'primary','','ä¸å¯¹ä¸ç§èéè¯','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061099,2,'群è','2','im_rtc_call_conversation_type',0,'success','','群å
å¤äººéè¯','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061100,1,'å建','10','im_rtc_call_status',0,'info','','éè¯å·²å建ï¼çå¾
æ¥é','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061101,2,'è¿è¡ä¸','20','im_rtc_call_status',0,'primary','','å·²æäººæ¥éï¼éè¯ä¸','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061102,3,'å·²ç»æ','30','im_rtc_call_status',0,'success','','éè¯ç»æ','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061103,1,'éè¯ç»æ','1','im_rtc_call_end_reason',0,'success','','æ¥éå任䏿¹ä¸»å¨ææ','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061104,2,'å·²æç»','2','im_rtc_call_end_reason',0,'warning','','è¢«å«æ¥éåç¹ææ¥','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061105,3,'已忶','3','im_rtc_call_end_reason',0,'info','','䏻嫿¥éå主å¨åæ¶','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061106,4,'æ 人æ¥å¬','4','im_rtc_call_end_reason',0,'info','','æ¯éè¶
æ¶æªæ¥é','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061107,5,'å¯¹æ¹æ£å¿','5','im_rtc_call_end_reason',0,'warning','','对æ¹å¨å¦ä¸éè¯ä¸','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061108,6,'éè¯å¼å¸¸','9','im_rtc_call_end_reason',0,'danger','','ç½ç»ä¸æã设å¤å¤±è´¥ç','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061109,1,'å起人','1','im_rtc_participant_role',0,'primary','','éè¯åèµ·è
','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061110,2,'被é请è
','2','im_rtc_participant_role',0,'info','','被é请å å
¥','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061111,3,'主å¨å å
¥è
','3','im_rtc_participant_role',0,'success','','群éè¯åºæ¯ï¼æè§è
主å¨å å
¥','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061112,1,'é请ä¸','10','im_rtc_participant_status',0,'info','','å·²ååº inviteï¼çå¾
ååº','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061113,2,'å·²å å
¥','20','im_rtc_participant_status',0,'primary','','å·²æ¥éå¹¶è¿å
¥æ¿é´','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061114,3,'å·²æç»','30','im_rtc_participant_status',0,'warning','','æ¥éåç¹ææ¥','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061115,4,'æªåºç','40','im_rtc_participant_status',0,'info','','éè¯å·²ç»æä»æªåºç','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061116,5,'已离å¼','50','im_rtc_participant_status',0,'success','','æ¥éåææ / 离å¼','admin','2026-05-18 03:36:12','admin','2026-05-18 03:36:12',0x00),(1061117,1610,'éè¯å¼å§','1610','im_content_type',0,'info','','å
¥æ¶æ¯æµï¼ç§èå®åéç¥ï¼ç¾¤èå
¨å广æ','admin','2026-05-18 03:36:12','admin','2026-06-16 03:41:55',0x00),(1061118,1611,'éè¯ç»æ','1611','im_content_type',0,'info','','å
¥æ¶æ¯æµï¼ç§èåæ°æ³¡ï¼ç¾¤èç³»ç» tip','admin','2026-05-18 03:36:12','admin','2026-06-16 03:41:55',0x00),(1061119,125,'ç´ æ','125','im_content_type',0,'success','','é¢éè¿è¥æ¨éç徿å¡çæ¶æ¯','1','2026-05-18 13:14:34','admin','2026-06-16 03:41:55',0x00),(1061120,1,'坿æ¬','1','im_channel_material_type',0,'primary','','','1','2026-05-19 14:09:25','1','2026-05-19 14:09:25',0x00),(1061121,2,'å¤é¾','2','im_channel_material_type',0,'info','','','1','2026-05-19 14:09:25','1','2026-05-19 14:09:25',0x00),(1061122,7,'SN ç ','109','mes_wm_barcode_biz_type',0,'default','','SN','1','2026-06-13 10:30:30','1','2026-06-13 10:30:30',0x00),(1061123,107,'å并转å','107','im_content_type',0,'','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061124,108,'åç','108','im_content_type',0,'','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061125,115,'表æ
','115','im_content_type',0,'','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061126,1201,'好åç³è¯·è¢«åæ','1201','im_content_type',0,'success','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061127,1202,'好åç³è¯·è¢«æç»','1202','im_content_type',0,'warning','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061128,1203,'æ¶å°æ°ç好åç³è¯·','1203','im_content_type',0,'success','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061129,1207,'å å
¥é»åå','1207','im_content_type',0,'danger','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061130,1208,'ç§»åºé»åå','1208','im_content_type',0,'success','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061131,1209,'好åèµæåæ´','1209','im_content_type',0,'info','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061132,1210,'好åä¿¡æ¯æ¹éæ´æ°','1210','im_content_type',0,'info','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061133,1530,'群æåä¸ªäººè®¾ç½®åæ´','1530','im_content_type',0,'info','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061134,1601,'éè¯ä¿¡ä»¤','1601','im_content_type',0,'info','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061135,1602,'éè¯åä¸è
å å
¥','1602','im_content_type',0,'info','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061136,1603,'éè¯åä¸è
离å¼','1603','im_content_type',0,'info','',NULL,'admin','2026-06-16 03:47:00','admin','2026-06-16 03:47:00',0x00),(1061137,10,'éå®é¢ç','10','wms_reserve_biz_type',0,'primary','','éå®è®¢åé¢çåºå','1','2026-06-26 08:15:54','1','2026-06-26 08:15:54',0x00),(1061138,20,'ç产é¢ç','20','wms_reserve_biz_type',0,'success','','ç产工åé¢çåºå','1','2026-06-26 08:15:54','1','2026-06-26 08:15:54',0x00),(1061139,10,'å
¥åº','10','wms_transaction_type',0,'success','','åºåå
¥åº','1','2026-06-26 08:15:54','1','2026-06-26 08:15:54',0x00),(1061140,20,'åºåº','20','wms_transaction_type',0,'warning','','åºååºåº','1','2026-06-26 08:15:54','1','2026-06-26 08:15:54',0x00),(1061141,30,'é¢ç','30','wms_transaction_type',0,'primary','','åºåé¢ç','1','2026-06-26 08:15:54','1','2026-06-26 08:15:54',0x00),(1061142,40,'éæ¾','40','wms_transaction_type',0,'info','','é¢çéæ¾','1','2026-06-26 08:15:54','1','2026-06-26 08:15:54',0x00),(1061143,50,'çç¹','50','wms_transaction_type',0,'default','','åºåçç¹','1','2026-06-26 08:15:54','1','2026-06-26 08:15:54',0x00),(1061144,60,'è°æ¨','60','wms_transaction_type',0,'default','','åºåè°æ¨','1','2026-06-26 08:15:54','1','2026-06-26 08:15:54',0x00),(1061145,0,'é¢çä¸','0','wms_reserve_status',0,'primary','','åºåé¢çä¸','1','2026-06-26 08:15:54','1','2026-06-26 08:15:54',0x00),(1061146,1,'é¨å使ç¨','1','wms_reserve_status',0,'warning','','é¨å已使ç¨','1','2026-06-26 08:15:54','1','2026-06-26 08:15:54',0x00),(1061147,2,'已使ç¨','2','wms_reserve_status',0,'success','','å·²å
¨é¨ä½¿ç¨','1','2026-06-26 08:15:54','1','2026-06-26 08:15:54',0x00),(1061148,3,'已鿾','3','wms_reserve_status',0,'info','','é¢ç已鿾','1','2026-06-26 08:15:54','1','2026-06-26 08:15:54',0x00),(1061149,0,'è稿','0','erp_audit_status',0,'info','','订åèç¨¿ç¶æ','1','2026-06-26 08:46:48','1','2026-06-26 08:46:48',0x00),(1061150,30,'审æ¹ä¸éè¿','30','erp_audit_status',0,'danger','','审æ¹ä¸éè¿','1','2026-06-26 08:46:48','1','2026-06-26 08:46:48',0x00),(1061153,1,'æ°å¼æ ¼å¼','1','mes_pd_param_type',0,'','',NULL,'1','2026-07-02 14:00:17','1','2026-07-02 14:01:19',0x00),(1061154,2,'ææ¬æ ¼å¼','2','mes_pd_param_type',0,'','',NULL,'1','2026-07-02 14:00:31','1','2026-07-02 14:01:15',0x00),(1061155,3,'䏿é项','3','mes_pd_param_type',0,'','',NULL,'1','2026-07-02 14:01:00','1','2026-07-02 14:01:10',0x00),(1061156,4,'æ¶é´æ ¼å¼','4','mes_pd_param_type',0,'','',NULL,'1','2026-07-02 14:01:37','1','2026-07-02 14:01:37',0x00),(1061157,5,'æ¥ææ ¼å¼','5','mes_pd_param_type',0,'','',NULL,'1','2026-07-02 14:01:48','1','2026-07-02 14:01:48',0x00),(1061158,1,'çäº§è¦æ±','1','mes_pd_template_type',0,'','',NULL,'1','2026-07-02 14:02:31','1','2026-07-02 14:02:31',0x00),(1061159,2,'èªæ£è¦æ±','2','mes_pd_template_type',0,'','',NULL,'1','2026-07-02 14:02:42','1','2026-07-02 14:02:42',0x00),(1061160,3,'å·¡æ£è¦æ±','3','mes_pd_template_type',0,'','',NULL,'1','2026-07-02 14:02:54','1','2026-07-02 14:02:54',0x00),(1061161,0,'å¾
åå¸','0','mes_pd_project_status',0,'info','','','1','2026-07-03 02:17:25','1','2026-07-03 02:17:25',0x00),(1061162,1,'å¾
ä¸ä¼ ','1','mes_pd_project_status',0,'primary','','','1','2026-07-03 02:17:25','1','2026-07-03 02:17:25',0x00),(1061163,2,'å¾
å®¡æ ¸','2','mes_pd_project_status',0,'warning','','','1','2026-07-03 02:17:25','1','2026-07-03 02:17:25',0x00),(1061164,4,'å¾
彿¡£','3','mes_pd_project_status',0,'success','','','1','2026-07-03 02:17:25','1','2026-08-13 07:48:14',0x00),(1061165,5,'已彿¡£','4','mes_pd_project_status',0,'danger','','','1','2026-07-03 02:17:25','1','2026-08-13 07:48:14',0x00),(1061166,0,'å¾
å®¡æ ¸','0','mes_pd_document_audit_status',0,'info','','','1','2026-07-03 02:17:25','1','2026-07-03 02:17:25',0x00),(1061167,1,'å®¡æ ¸éè¿','1','mes_pd_document_audit_status',0,'success','','','1','2026-07-03 02:17:25','1','2026-07-03 02:17:25',0x00),(1061168,2,'å®¡æ ¸ä¸éè¿','2','mes_pd_document_audit_status',0,'danger','','','1','2026-07-03 02:17:25','1','2026-07-03 02:17:25',0x00),(1061169,0,'å¾
彿¡£','0','mes_pd_archive_status',0,'info','','','1','2026-07-03 02:17:25','1','2026-07-03 02:17:25',0x00),(1061170,1,'已彿¡£','1','mes_pd_archive_status',0,'success','','','1','2026-07-03 02:17:25','1','2026-07-03 02:17:25',0x00),(1061171,1,'ç·','1','hrm_gender',0,'','',NULL,'1','2026-07-06 11:00:38','1','2026-07-06 11:00:38',0x00),(1061172,2,'女','2','hrm_gender',0,'','',NULL,'1','2026-07-06 11:00:47','1','2026-07-06 11:00:47',0x00),(1061173,1,'å¨è','1','hrm_employee_status',0,'','',NULL,'1','2026-07-06 11:01:37','1','2026-07-06 11:01:37',0x00),(1061174,2,'è¯ç¨','2','hrm_employee_status',0,'','',NULL,'1','2026-07-06 11:01:44','1','2026-07-06 11:01:44',0x00),(1061175,3,'离è','3','hrm_employee_status',0,'','',NULL,'1','2026-07-06 11:01:49','1','2026-07-06 11:01:49',0x00),(1061176,1,'é«ä¸','1','hrm_degree',0,'','',NULL,'1','2026-07-06 11:14:01','1','2026-07-06 11:14:01',0x00),(1061177,2,'大ä¸','2','hrm_degree',0,'','',NULL,'1','2026-07-06 11:14:15','1','2026-07-06 11:14:15',0x00),(1061178,3,'æ¬ç§','3','hrm_degree',0,'','',NULL,'1','2026-07-06 11:14:26','1','2026-07-06 11:14:26',0x00),(1061179,4,'ç¡å£«','4','hrm_degree',0,'','',NULL,'1','2026-07-06 11:14:32','1','2026-07-06 11:14:32',0x00),(1061180,5,'å士','5','hrm_degree',0,'','',NULL,'1','2026-07-06 11:14:40','1','2026-07-06 11:14:40',0x00),(1061181,1,'äºå','1','hrm_leave_type',0,'','',NULL,'1','2026-07-06 11:16:00','1','2026-07-06 11:16:00',0x00),(1061182,2,'ç
å','2','hrm_leave_type',0,'','',NULL,'1','2026-07-06 11:17:02','1','2026-07-06 11:17:02',0x00),(1061183,3,'å¹´å','3','hrm_leave_type',0,'','',NULL,'1','2026-07-06 11:17:19','1','2026-07-06 11:17:19',0x00),(1061184,4,'å©å','4','hrm_leave_type',0,'','',NULL,'1','2026-07-06 11:17:27','1','2026-07-06 11:17:27',0x00),(1061185,5,'产å','5','hrm_leave_type',0,'','',NULL,'1','2026-07-06 11:17:37','1','2026-07-06 11:17:37',0x00),(1061186,6,'丧å','6','hrm_leave_type',0,'','',NULL,'1','2026-07-06 11:17:44','1','2026-07-06 11:17:44',0x00),(1061187,1,'å¹³è°','1','hrm_transfer_type',0,'','',NULL,'1','2026-07-06 11:18:09','1','2026-07-06 11:18:09',0x00),(1061188,2,'åè','2','hrm_transfer_type',0,'','',NULL,'1','2026-07-06 11:18:16','1','2026-07-06 11:18:16',0x00),(1061189,3,'éè','3','hrm_transfer_type',0,'','',NULL,'1','2026-07-06 11:18:22','1','2026-07-06 11:18:22',0x00),(1061190,1,'主å¨ç¦»è','1','hrm_resignation_type',0,'','',NULL,'1','2026-07-06 11:20:26','1','2026-07-06 11:20:26',0x00),(1061191,2,'被å¨ç¦»è','2','hrm_resignation_type',0,'','',NULL,'1','2026-07-06 11:20:35','1','2026-07-06 11:20:35',0x00),(1061192,3,'ååå°æ','3','hrm_resignation_type',0,'','',NULL,'1','2026-07-06 11:20:44','1','2026-07-06 11:20:44',0x00),(1061193,1,'æ£å¸¸','1','hrm_clock_type',0,'','',NULL,'1','2026-07-06 11:21:04','1','2026-07-06 11:21:04',0x00),(1061194,2,'è¿å°/æ©é','2','hrm_clock_type',0,'','',NULL,'1','2026-07-06 11:21:19','1','2026-07-06 11:21:19',0x00),(1061195,3,'缺å¡','3','hrm_clock_type',0,'','',NULL,'1','2026-07-06 11:21:26','1','2026-07-06 11:21:26',0x00),(1061196,0,'å¾
确认','0','hrm_salary_status',0,'','',NULL,'1','2026-07-06 11:22:05','1','2026-07-06 11:22:05',0x00),(1061197,1,'已确认','10','hrm_salary_status',0,'','',NULL,'1','2026-07-06 11:22:16','1','2026-07-06 11:22:16',0x00),(1061198,2,'已忾','20','hrm_salary_status',0,'','',NULL,'1','2026-07-06 11:22:25','1','2026-07-06 11:22:25',0x00),(1061199,1,'æªå¼å§','0','hrm_handover_status',0,'','',NULL,'1','2026-07-06 11:23:08','1','2026-07-06 11:23:08',0x00),(1061200,2,'è¿è¡ä¸','10','hrm_handover_status',0,'','',NULL,'1','2026-07-06 11:23:18','1','2026-07-06 11:23:18',0x00),(1061201,3,'已宿','20','hrm_handover_status',0,'','',NULL,'1','2026-07-06 11:23:28','1','2026-07-06 11:23:28',0x00),(1061202,1,'é¶è¡è½¬è´¦','1','hrm_payment_method',0,'','',NULL,'1','2026-07-06 11:23:45','1','2026-07-06 11:23:45',0x00),(1061203,2,'ç°é','2','hrm_payment_method',0,'','',NULL,'1','2026-07-06 11:23:52','1','2026-07-06 11:23:52',0x00),(1061204,3,'æ¯ç¥¨','3','hrm_payment_method',0,'','',NULL,'1','2026-07-06 11:23:59','1','2026-07-06 11:23:59',0x00),(1061205,1,'åæ','1','MDM_ITEM_TYPE',0,'','',NULL,'1','2026-07-14 12:04:36','1','2026-07-14 12:04:36',0x00),(1061206,2,'åæå','2','MDM_ITEM_TYPE',0,'','',NULL,'1','2026-07-14 12:04:47','1','2026-07-14 12:04:47',0x00),(1061207,3,'æå','3','MDM_ITEM_TYPE',0,'','',NULL,'1','2026-07-14 12:04:54','1','2026-07-14 12:04:54',0x00),(1061208,4,'è¾
æ','4','MDM_ITEM_TYPE',0,'','',NULL,'1','2026-07-14 12:05:02','1','2026-07-14 12:05:02',0x00),(1061209,0,'è稿','0','mes_pro_mps_status',0,'info','','','1','2026-07-17 02:04:33','1','2026-07-17 02:04:33',0x00),(1061210,1,'å·²ä¸å','1','mes_pro_mps_status',0,'success','','','1','2026-07-17 02:04:33','1','2026-07-17 02:04:33',0x00),(1061211,2,'已宿','2','mes_pro_mps_status',0,'primary','','','1','2026-07-17 02:04:33','1','2026-07-17 02:04:33',0x00),(1061212,3,'已忶','3','mes_pro_mps_status',0,'danger','','','1','2026-07-17 02:04:33','1','2026-07-17 02:04:33',0x00),(1061213,1,'æè®¿','1','crm_business_end_status_type',0,'','',NULL,'1','2026-07-20 11:00:15','1','2026-07-20 11:00:15',0x00),(1061214,2,'æç¾çº¦','2','crm_business_end_status_type',0,'','',NULL,'1','2026-07-20 11:00:25','1','2026-07-20 11:00:25',0x00),(1061215,3,'ç¾çº¦','3','crm_business_end_status_type',0,'','',NULL,'1','2026-07-20 11:00:31','1','2026-07-20 11:00:31',0x00),(1061216,4,'失æ','4','crm_business_end_status_type',0,'','',NULL,'1','2026-07-20 11:00:38','1','2026-07-20 11:00:38',0x00),(1061217,1,'ç产ä¸','1','mes_pro_task_status',0,'processing','','任塿£å¨ç产ä¸','admin','2026-07-22 07:59:56','admin','2026-07-22 07:59:56',0x00),(1061218,2,'é¨å宿','2','mes_pro_task_status',0,'warning','','ä»»å¡é¨å宿','admin','2026-07-22 08:00:15','admin','2026-07-22 08:00:15',0x00),(1061219,1,'å¾
è¯å®¡','0','mes_ncr_status',0,'','','å¾
è¯å®¡','1','2026-08-06 09:25:25','1','2026-08-06 09:25:25',0x00),(1061220,2,'å·²è¯å®¡','1','mes_ncr_status',0,'','','å·²è¯å®¡','1','2026-08-06 09:25:25','1','2026-08-06 09:25:25',0x00),(1061221,3,'å·²å¤ç½®','2','mes_ncr_status',0,'','','å·²å¤ç½®','1','2026-08-06 09:25:25','1','2026-08-06 09:25:25',0x00),(1061222,4,'å·²å
³é','3','mes_ncr_status',0,'','','å·²å
³é','1','2026-08-06 09:25:25','1','2026-08-06 09:25:25',0x00),(1061223,1,'éè´§','1','mes_ncr_disposition',0,'','','éè´§','1','2026-08-06 09:25:25','1','2026-08-06 09:25:25',0x00),(1061224,2,'æ¥åº','2','mes_ncr_disposition',0,'','','æ¥åº','1','2026-08-06 09:25:25','1','2026-08-06 09:25:25',0x00),(1061225,3,'è¿å·¥','3','mes_ncr_disposition',0,'','','è¿å·¥','1','2026-08-06 09:25:25','1','2026-08-06 09:25:25',0x00),(1061226,4,'è®©æ¥æ¥æ¶','4','mes_ncr_disposition',0,'','','è®©æ¥æ¥æ¶','1','2026-08-06 09:25:25','1','2026-08-06 09:25:25',0x00),(1061227,5,'é级使ç¨','5','mes_ncr_disposition',0,'','','é级使ç¨','1','2026-08-06 09:25:25','1','2026-08-06 09:25:25',0x00),(1061228,1,'å¢å¼ç¨ä¸ç¨å票','1','crm_invoice_type',0,'','',NULL,'1','2026-08-10 14:04:20','1','2026-08-10 14:04:20',0x00),(1061229,2,'å¢å¼ç¨æ®éå票','2','crm_invoice_type',0,'','',NULL,'1','2026-08-10 14:04:25','1','2026-08-10 14:04:25',0x00),(1061230,3,'çµåå票','3','crm_invoice_type',0,'','',NULL,'1','2026-08-10 14:04:31','1','2026-08-10 14:04:31',0x00),(1061231,1,'å³å¨åå','1','hrm_contract_type',0,'primary','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061232,2,'å³å¡åå','2','hrm_contract_type',0,'success','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061233,3,'å®ä¹ åè®®','3','hrm_contract_type',0,'warning','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061234,4,'å³å¡æ´¾é£','4','hrm_contract_type',0,'info','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061235,5,'å
¶ä»','5','hrm_contract_type',0,'default','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061236,1,'åºå®æé','1','hrm_contract_term_type',0,'primary','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061237,2,'æ åºå®æé','2','hrm_contract_term_type',0,'success','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061238,3,'以宿ä¸å®å·¥ä½ä»»å¡ä¸ºæé','3','hrm_contract_term_type',0,'warning','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061239,1,'å¾
çæ','1','hrm_contract_status',0,'info','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061240,2,'çæä¸','2','hrm_contract_status',0,'success','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061241,3,'å³å°å°æ','3','hrm_contract_status',0,'warning','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061242,4,'已尿','4','hrm_contract_status',0,'default','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061243,5,'已解é¤','5','hrm_contract_status',0,'danger','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061244,6,'å·²ç»æ¢','6','hrm_contract_status',0,'danger','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061245,1,'æ£å¸¸','0','hrm_contract_terminate_status',0,'success','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061246,2,'已解é¤','1','hrm_contract_terminate_status',0,'danger','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1061247,3,'å·²ç»æ¢','2','hrm_contract_terminate_status',0,'warning','',NULL,'','2026-08-10 07:52:13','','2026-08-10 07:52:13',0x00),(1065310,1,'年度','1','crm_sales_target_period_type',0,'primary','','','1','2026-08-12 07:21:28','1','2026-08-12 07:21:28',0x00),(1065311,2,'å£åº¦','2','crm_sales_target_period_type',0,'success','','','1','2026-08-12 07:21:28','1','2026-08-12 07:21:28',0x00),(1065312,3,'æåº¦','3','crm_sales_target_period_type',0,'warning','','','1','2026-08-12 07:21:28','1','2026-08-12 07:21:28',0x00),(1065320,1,'个人','1','crm_sales_target_dimension',0,'primary','','','1','2026-08-12 07:21:28','1','2026-08-12 07:21:28',0x00),(1065321,2,'é¨é¨','2','crm_sales_target_dimension',0,'success','','','1','2026-08-12 07:21:28','1','2026-08-12 07:21:28',0x00),(1065322,3,'产å','3','crm_sales_target_dimension',0,'warning','','','1','2026-08-12 07:21:28','1','2026-08-12 07:21:28',0x00),(1065330,0,'æªçæ','0','crm_sales_target_status',0,'info','','','1','2026-08-12 07:21:28','1','2026-08-12 07:21:28',0x00),(1065331,1,'å·²çæ','1','crm_sales_target_status',0,'success','','','1','2026-08-12 07:21:28','1','2026-08-12 07:21:28',0x00),(1065332,2,'å·²ç»æ','2','crm_sales_target_status',0,'warning','','','1','2026-08-12 07:21:28','1','2026-08-12 07:21:28',0x00),(1065333,3,'å·²ä½åº','3','crm_sales_target_status',0,'danger','','','1','2026-08-12 07:21:28','1','2026-08-12 07:21:28',0x00),(1065334,1,'å¡å°º','1','mes_dv_metering_category',0,'','','å¡å°º','1','2026-08-13 01:36:15','1','2026-08-13 01:36:15',0x00),(1065335,2,'ååå°º','2','mes_dv_metering_category',0,'','','ååå°º','1','2026-08-13 01:36:15','1','2026-08-13 01:36:15',0x00),(1065336,3,'åå表','3','mes_dv_metering_category',0,'','','åå表','1','2026-08-13 01:36:15','1','2026-08-13 01:36:15',0x00),(1065337,4,'温度计','4','mes_dv_metering_category',0,'','','温度计','1','2026-08-13 01:36:15','1','2026-08-13 01:36:15',0x00),(1065338,5,'ä¸ç¨è¡¨','5','mes_dv_metering_category',0,'','','ä¸ç¨è¡¨','1','2026-08-13 01:36:15','1','2026-08-13 01:36:15',0x00),(1065339,6,'天平ç ç ','6','mes_dv_metering_category',0,'','','天平ç ç ','1','2026-08-13 01:36:15','1','2026-08-13 01:36:15',0x00),(1065340,7,'å
¶ä»','7','mes_dv_metering_category',0,'','','å
¶ä»','1','2026-08-13 01:36:15','1','2026-08-13 01:36:15',0x00),(1065341,1,'å¨ç¨','1','mes_dv_metering_status',0,'success','','å¨ç¨','1','2026-08-13 01:36:15','1','2026-08-13 01:36:15',0x00),(1065342,2,'åç¨','2','mes_dv_metering_status',0,'info','','åç¨','1','2026-08-13 01:36:15','1','2026-08-13 01:36:15',0x00),(1065343,3,'æ¥åº','3','mes_dv_metering_status',0,'danger','','æ¥åº','1','2026-08-13 01:36:15','1','2026-08-13 01:36:15',0x00),(1065344,1,'åæ ¼','1','mes_dv_metering_check_result',0,'success','','åæ ¼','1','2026-08-13 01:36:15','1','2026-08-13 01:36:15',0x00),(1065345,2,'ä¸åæ ¼','2','mes_dv_metering_check_result',0,'danger','','ä¸åæ ¼','1','2026-08-13 01:36:15','1','2026-08-13 01:36:15',0x00),(1065346,3,'审æ¹ä¸','5','mes_pd_project_status',0,'processing','','BPM 审æ¹ä¸ç¶æ','1','2026-08-13 07:48:27','1','2026-08-13 07:48:27',0x00),(1065410,1,'å¯ç¨','0','qc_report_template_status',0,'success','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065411,2,'åç¨','1','qc_report_template_status',0,'info','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065420,1,'è稿','0','qc_report_version_status',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065421,2,'å·²åå¸','1','qc_report_version_status',0,'success','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065422,3,'å·²åç¨','2','qc_report_version_status',0,'info','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065430,1,'çæä¸','0','qc_report_instance_status',0,'processing','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065431,2,'çææå','1','qc_report_instance_status',0,'success','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065432,3,'çæå¤±è´¥','2','qc_report_instance_status',0,'error','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065440,1,'A3','A3','qc_report_page_size',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065441,2,'A4','A4','qc_report_page_size',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065442,3,'A5','A5','qc_report_page_size',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065443,4,'Letter','Letter','qc_report_page_size',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065450,1,'纵å','portrait','qc_report_orientation',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065451,2,'横å','landscape','qc_report_orientation',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065460,1,'éç¨','general','qc_report_industry',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065461,2,'çµåçµå¨','electronics','qc_report_industry',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065462,3,'äºéæºæ¢°','hardware','qc_report_industry',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065463,4,'汽车é¶é¨ä»¶','auto','qc_report_industry',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065464,5,'å¡è¶å¶å','plastic','qc_report_industry',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065465,6,'é£å饮æ','food','qc_report_industry',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065466,7,'å»è¯å»ç','pharma','qc_report_industry',0,'default','',NULL,'1','2026-09-18 02:09:52','1','2026-09-18 02:09:52',0x00),(1065501,1,'伿¯æ¥','1','hrm_holiday_type',0,'success','',NULL,'1','2026-09-24 17:47:16','1','2026-09-24 17:47:16',0x00),(1065502,2,'工使¥','2','hrm_holiday_type',0,'primary','',NULL,'1','2026-09-24 17:47:16','1','2026-09-24 17:47:16',0x00),(1065467,1,'ææ¬','text','ai_model_capability',0,'','','','1','2026-10-23 00:00:00','1','2026-10-23 00:00:00',0x00),(1065468,2,'è§è§','vision','ai_model_capability',0,'','','','1','2026-10-23 00:00:00','1','2026-10-23 00:00:00',0x00); |
| | | |
| | | -- ============ 表ï¼system_tenantï¼å¯¼åº 3 è¡ï¼ ============ |
| | | DROP TABLE IF EXISTS `system_tenant`; |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | -- è£
ç®±åå
³èéå®è®¢å IDãå
æ§è¡ç»æå级ï¼åé¨ç½²å端ï¼èæ°æ®æéå®è®¢åç¼å·åå¡«ï¼å¹é
ä¸å°ä¿æä¸ºç©ºã |
| | | SET @package_sale_order_sql = IF( |
| | | EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() |
| | | AND table_name='mes_wm_package' AND column_name='sale_order_id'), |
| | | 'SELECT 1', |
| | | 'ALTER TABLE mes_wm_package ADD COLUMN sale_order_id BIGINT NULL COMMENT ''éå®è®¢åIDï¼å
³è erp_sale_order.id'' AFTER sales_order_code'); |
| | | PREPARE package_sale_order_stmt FROM @package_sale_order_sql; |
| | | EXECUTE package_sale_order_stmt; |
| | | DEALLOCATE PREPARE package_sale_order_stmt; |
| | | |
| | | UPDATE mes_wm_package p |
| | | JOIN erp_sale_order o ON o.no = p.sales_order_code COLLATE utf8mb4_unicode_ci AND o.deleted = 0 |
| | | SET p.sale_order_id = o.id |
| | | WHERE p.sale_order_id IS NULL AND p.sales_order_code IS NOT NULL; |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | -- é¿æï¼æå°ä¸«ï¼èªçç«é
å·¥èºè·¯çº¿åå§å 2026-11-05 |
| | | -- 1. æ¸
çä¸èªçç«é
æ å
³çæ¼ç¤ºå·¥åºä¸å·¥èºè·¯çº¿ï¼è½¯å é¤ï¼ä¿çåå²å¯è¿½æº¯ï¼ |
| | | |
| | | UPDATE mes_pro_route_process SET deleted = b'1', update_time = NOW() |
| | | WHERE deleted = b'0' AND route_id IN (1, 2, 3, 4, 5, 6, 7); |
| | | |
| | | UPDATE mes_pro_route_product SET deleted = b'1', update_time = NOW() |
| | | WHERE deleted = b'0' AND route_id IN (1, 2, 3, 4, 5, 6, 7); |
| | | |
| | | UPDATE mes_pro_route SET deleted = b'1', update_time = NOW() |
| | | WHERE deleted = b'0' AND id IN (1, 2, 3, 4, 5, 6, 7); |
| | | |
| | | UPDATE mes_pro_process_content SET deleted = b'1', update_time = NOW() |
| | | WHERE deleted = b'0' AND process_id BETWEEN 1 AND 15; |
| | | |
| | | UPDATE mes_pro_process_param SET deleted = b'1', update_time = NOW() |
| | | WHERE deleted = b'0' AND process_id BETWEEN 1 AND 15; |
| | | |
| | | UPDATE mes_pro_process SET deleted = b'1', update_time = NOW() |
| | | WHERE deleted = b'0' AND id BETWEEN 1 AND 15; |
| | | |
| | | -- 2. è¡¥å
èªçç«é
ç产æéå·¥åº |
| | | |
| | | INSERT INTO mes_pro_process (code, name, attention, status, remark) |
| | | SELECT 'PRO-BRAISE', 'å¤å¶', NULL, 0, 'èç±»ãå¤å³åæå¤å¶' |
| | | FROM DUAL |
| | | WHERE NOT EXISTS (SELECT 1 FROM mes_pro_process WHERE code = 'PRO-BRAISE'); |
| | | |
| | | INSERT INTO mes_pro_process (code, name, attention, status, remark) |
| | | SELECT 'PRO-STIR', 'åºæçå¶', NULL, 0, 'ç«é
åºæã红油çå¶' |
| | | FROM DUAL |
| | | WHERE NOT EXISTS (SELECT 1 FROM mes_pro_process WHERE code = 'PRO-STIR'); |
| | | |
| | | INSERT INTO mes_pro_process (code, name, attention, status, remark) |
| | | SELECT 'PRO-STERILIZE', 'çè', NULL, 0, 'æå
å°è£
åçè' |
| | | FROM DUAL |
| | | WHERE NOT EXISTS (SELECT 1 FROM mes_pro_process WHERE code = 'PRO-STERILIZE'); |
| | | |
| | | -- 3. 建ç«çèèªçç«é
å·¥èºè·¯çº¿ï¼å¯¹åºæå FG-001ï¼ |
| | | |
| | | INSERT INTO mes_pro_route (code, name, description, status, remark) |
| | | SELECT 'RT_20261105001', 'çèèªçç«é
å·¥èºè·¯çº¿', |
| | | '便® BOMï¼é£æå¤çâé
æç§°éâå¤å¶âåºæçå¶âå°å£å
è£
âçèâç»è£
âè£
ç®±', |
| | | 0, 'æå FG-001 çèèªçç«é
' |
| | | FROM DUAL |
| | | WHERE NOT EXISTS (SELECT 1 FROM mes_pro_route |
| | | WHERE code = 'RT_20261105001' AND deleted = b'0'); |
| | | |
| | | SET @route_id := (SELECT id FROM mes_pro_route |
| | | WHERE code = 'RT_20261105001' AND deleted = b'0' LIMIT 1); |
| | | |
| | | UPDATE mes_pro_route_process SET deleted = b'1', update_time = NOW() |
| | | WHERE route_id = @route_id AND deleted = b'0'; |
| | | |
| | | INSERT INTO mes_pro_route_process |
| | | (route_id, process_id, sort, link_type, prepare_time, wait_time, |
| | | key_flag, check_flag, backflush_flag) |
| | | SELECT @route_id, p.id, x.sort, 3, x.prepare_time, x.wait_time, b'0', b'0', b'0' |
| | | FROM ( |
| | | SELECT 'PRO-FOOD' AS process_code, 1 AS sort, 1 AS prepare_time, 1 AS wait_time |
| | | UNION ALL SELECT 'PRO-SEASON', 2, 1, 1 |
| | | UNION ALL SELECT 'PRO-BRAISE', 3, 30, 10 |
| | | UNION ALL SELECT 'PRO-STIR', 4, 30, 10 |
| | | UNION ALL SELECT 'PRO-SEAL', 5, 5, 5 |
| | | UNION ALL SELECT 'PRO-STERILIZE', 6, 10, 10 |
| | | UNION ALL SELECT 'PRO-ASSEMBLY', 7, 5, 5 |
| | | UNION ALL SELECT 'PRO-PACK', 8, 5, 5 |
| | | ) x |
| | | JOIN mes_pro_process p ON p.code = x.process_code AND p.deleted = b'0'; |
| | | |
| | | UPDATE mes_pro_route_process rp |
| | | JOIN mes_pro_route_process np |
| | | ON np.route_id = rp.route_id AND np.sort = rp.sort + 1 AND np.deleted = b'0' |
| | | SET rp.next_process_id = np.process_id |
| | | WHERE rp.route_id = @route_id AND rp.deleted = b'0'; |
| | | |
| | | UPDATE mes_pro_route_product SET deleted = b'1', update_time = NOW() |
| | | WHERE route_id = @route_id AND deleted = b'0'; |
| | | |
| | | INSERT INTO mes_pro_route_product (route_id, item_id, quantity) |
| | | VALUES (@route_id, 1001, 1); |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | -- ============================================ |
| | | -- MES çæ ·ç®¡çï¼éæ±8ï¼åå§åèæ¬ |
| | | -- å¯é夿§è¡ |
| | | -- ============================================ |
| | | |
| | | -- 1. 建表 |
| | | CREATE TABLE IF NOT EXISTS `mes_qc_retention_sample` ( |
| | | `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主é®ID', |
| | | `code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'çæ ·ç¼å·', |
| | | `work_order_id` bigint NOT NULL COMMENT 'ç产工åID', |
| | | `work_order_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'ç产工åç¼å·ï¼åä½ï¼', |
| | | `sale_order_id` bigint NULL DEFAULT NULL COMMENT 'éå®è®¢åID', |
| | | `sale_order_no` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'éå®è®¢åå·ï¼åä½ï¼', |
| | | `product_id` bigint NOT NULL COMMENT '产åID', |
| | | `batch_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'çäº§æ¹æ¬¡å·', |
| | | `sample_quantity` int NOT NULL DEFAULT 2 COMMENT 'çæ ·æ°é', |
| | | `sample_date` datetime NOT NULL COMMENT 'çæ ·æ¥æ', |
| | | `expiry_date` datetime NOT NULL COMMENT 'çæ ·å°ææ¥æ', |
| | | `keeper_user_id` bigint NULL DEFAULT NULL COMMENT 'çæ ·äººç¨æ·ID', |
| | | `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '夿³¨', |
| | | |
| | | `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT 'å建è
', |
| | | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'å建æ¶é´', |
| | | `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT 'æ´æ°è
', |
| | | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ´æ°æ¶é´', |
| | | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT 'æ¯å¦å é¤', |
| | | PRIMARY KEY (`id`) USING BTREE, |
| | | UNIQUE INDEX `uk_code` (`code`) USING BTREE, |
| | | UNIQUE INDEX `uk_work_order_id` (`work_order_id`) USING BTREE, |
| | | INDEX `idx_sale_order_id` (`sale_order_id`) USING BTREE, |
| | | INDEX `idx_expiry_date` (`expiry_date`) USING BTREE |
| | | ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'MES çæ ·è®°å½' ROW_FORMAT = Dynamic; |
| | | |
| | | -- 2. èªå¨ç¼ç è§åï¼LY_ + yyyyMMdd + 4使µæ°´å·ï¼æå¤©å¾ªç¯ï¼ |
| | | INSERT INTO `mes_md_auto_code_rule` (`id`, `code`, `name`, `description`, `max_length`, `padded`, `padded_char`, `padded_method`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) |
| | | SELECT 71, 'QC_RETENTION_SAMPLE_CODE', 'çæ ·è®°å½ç¼ç ', 'çæ ·è®°å½èªå¨ç¼ç ', 15, b'0', '0', 1, 0, '1', NOW(), '1', NOW(), b'0' |
| | | FROM DUAL |
| | | WHERE NOT EXISTS (SELECT 1 FROM `mes_md_auto_code_rule` WHERE `code` = 'QC_RETENTION_SAMPLE_CODE'); |
| | | |
| | | -- 2.1 åºå®å符ï¼LY_ |
| | | INSERT INTO `mes_md_auto_code_part` (`rule_id`, `sort`, `type`, `length`, `date_format`, `fix_character`, `serial_start_no`, `serial_step`, `cycle_flag`, `cycle_method`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) |
| | | SELECT r.id, 1, 3, 3, NULL, 'LY_', NULL, NULL, b'0', NULL, '1', NOW(), '1', NOW(), b'0' |
| | | FROM `mes_md_auto_code_rule` r |
| | | WHERE r.`code` = 'QC_RETENTION_SAMPLE_CODE' |
| | | AND NOT EXISTS (SELECT 1 FROM `mes_md_auto_code_part` p WHERE p.`rule_id` = r.id AND p.`sort` = 1 AND p.`deleted` = b'0'); |
| | | |
| | | -- 2.2 å½åæ¥æï¼yyyyMMdd |
| | | INSERT INTO `mes_md_auto_code_part` (`rule_id`, `sort`, `type`, `length`, `date_format`, `fix_character`, `serial_start_no`, `serial_step`, `cycle_flag`, `cycle_method`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) |
| | | SELECT r.id, 2, 2, 8, 'yyyyMMdd', NULL, NULL, NULL, b'0', NULL, '1', NOW(), '1', NOW(), b'0' |
| | | FROM `mes_md_auto_code_rule` r |
| | | WHERE r.`code` = 'QC_RETENTION_SAMPLE_CODE' |
| | | AND NOT EXISTS (SELECT 1 FROM `mes_md_auto_code_part` p WHERE p.`rule_id` = r.id AND p.`sort` = 2 AND p.`deleted` = b'0'); |
| | | |
| | | -- 2.3 æµæ°´å·ï¼4ä½ï¼æå¤©å¾ªç¯ |
| | | INSERT INTO `mes_md_auto_code_part` (`rule_id`, `sort`, `type`, `length`, `date_format`, `fix_character`, `serial_start_no`, `serial_step`, `cycle_flag`, `cycle_method`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) |
| | | SELECT r.id, 3, 4, 4, NULL, NULL, 1, 1, b'1', 3, '1', NOW(), '1', NOW(), b'0' |
| | | FROM `mes_md_auto_code_rule` r |
| | | WHERE r.`code` = 'QC_RETENTION_SAMPLE_CODE' |
| | | AND NOT EXISTS (SELECT 1 FROM `mes_md_auto_code_part` p WHERE p.`rule_id` = r.id AND p.`sort` = 3 AND p.`deleted` = b'0'); |
| | | |
| | | -- 3. èåï¼è´¨é管ç â çæ ·ç®¡ç |
| | | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) |
| | | SELECT 1080080, 'çæ ·ç®¡ç', '', 2, 15, 5500, 'retention-sample', 'ep:box', 'mes/qc/retentionsample/index', 'MesQcRetentionSample', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0' |
| | | FROM DUAL |
| | | WHERE NOT EXISTS (SELECT 1 FROM `system_menu` WHERE `id` = 1080080); |
| | | |
| | | -- 3.1 æé®æé |
| | | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) |
| | | SELECT 1080081, 'çæ ·æ¥è¯¢', 'mes:qc-retention-sample:query', 3, 1, 1080080, '', '', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0' |
| | | FROM DUAL |
| | | WHERE NOT EXISTS (SELECT 1 FROM `system_menu` WHERE `id` = 1080081); |
| | | |
| | | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) |
| | | SELECT 1080082, 'çæ ·å建', 'mes:qc-retention-sample:create', 3, 2, 1080080, '', '', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0' |
| | | FROM DUAL |
| | | WHERE NOT EXISTS (SELECT 1 FROM `system_menu` WHERE `id` = 1080082); |
| | | |
| | | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) |
| | | SELECT 1080083, 'çæ ·æ´æ°', 'mes:qc-retention-sample:update', 3, 3, 1080080, '', '', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0' |
| | | FROM DUAL |
| | | WHERE NOT EXISTS (SELECT 1 FROM `system_menu` WHERE `id` = 1080083); |
| | | |
| | | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) |
| | | SELECT 1080084, 'çæ ·å é¤', 'mes:qc-retention-sample:delete', 3, 4, 1080080, '', '', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0' |
| | | FROM DUAL |
| | | WHERE NOT EXISTS (SELECT 1 FROM `system_menu` WHERE `id` = 1080084); |
| | | |
| | | -- 4. è§è²ææï¼ä¸ç°æè´¨æ£èåä¿æä¸è´ï¼æ®éè§è² + 155/160/162/163ï¼ |
| | | INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) |
| | | SELECT r.id, m.id, '1', NOW(), '1', NOW(), b'0' |
| | | FROM `system_role` r |
| | | JOIN `system_menu` m ON m.id IN (1080080, 1080081, 1080082, 1080083, 1080084) AND m.deleted = b'0' |
| | | WHERE r.id IN (2, 155, 160, 162, 163) AND r.deleted = b'0' |
| | | AND NOT EXISTS (SELECT 1 FROM `system_role_menu` rm WHERE rm.role_id = r.id AND rm.menu_id = m.id); |
| | |
| | | package cn.iocoder.yudao.module.crm.api.contract; |
| | | |
| | | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| | | import cn.iocoder.yudao.module.crm.api.contract.dto.CrmContractCreateFromSaleOrderReqDTO; |
| | | import cn.iocoder.yudao.module.crm.api.contract.dto.CrmContractRespDTO; |
| | | |
| | | /** |
| | | * CRM åå API æ¥å£ |
| | |
| | | String PREFIX = "/rpc-api/crm/contract"; |
| | | |
| | | /** |
| | | * æ ¹æ®éå®è®¢åå建ååè稿ï¼ä¸æäº¤å®¡æ¹ï¼ |
| | | * |
| | | * @param reqDTO éå®è®¢åä¿¡æ¯ |
| | | * @return åå |
| | | */ |
| | | CommonResult<CrmContractRespDTO> createContractDraftFromSaleOrder(CrmContractCreateFromSaleOrderReqDTO reqDTO); |
| | | |
| | | /** |
| | | * æ´æ°ååç¶æ |
| | | * |
| | | * @param id ååç¼å· |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.crm.api.contract.dto; |
| | | |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDateTime; |
| | | import java.util.List; |
| | | |
| | | @Schema(description = "RPC æå¡ - CRM æ ¹æ®éå®è®¢åå建ååè稿 Request DTO") |
| | | @Data |
| | | public class CrmContractCreateFromSaleOrderReqDTO { |
| | | |
| | | @Schema(description = "éå®è®¢åç¼å·", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") |
| | | private Long orderId; |
| | | |
| | | @Schema(description = "éå®è®¢åå·", requiredMode = Schema.RequiredMode.REQUIRED, example = "SO001") |
| | | private String orderNo; |
| | | |
| | | @Schema(description = "客æ·ç¼å·", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") |
| | | private Long customerId; |
| | | |
| | | @Schema(description = "è´è´£äººç¼å·ï¼éå®åï¼", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") |
| | | private Long ownerUserId; |
| | | |
| | | @Schema(description = "ä¸åæ¶é´") |
| | | private LocalDateTime orderTime; |
| | | |
| | | @Schema(description = "伿 çï¼ç¾åæ¯", example = "10") |
| | | private BigDecimal discountPercent; |
| | | |
| | | @Schema(description = "å®ééé¢ï¼åä½ï¼å
", example = "100") |
| | | private BigDecimal depositPrice; |
| | | |
| | | @Schema(description = "ååæç»å表", requiredMode = Schema.RequiredMode.REQUIRED) |
| | | private List<Item> items; |
| | | |
| | | @Schema(description = "ååæç»") |
| | | @Data |
| | | public static class Item { |
| | | |
| | | @Schema(description = "ç©æç¼å·", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") |
| | | private Long itemId; |
| | | |
| | | @Schema(description = "计éåä½ç¼å·", example = "1") |
| | | private Long itemUnitId; |
| | | |
| | | @Schema(description = "æäº¤åä»·ï¼åä½ï¼å
", example = "100") |
| | | private BigDecimal price; |
| | | |
| | | @Schema(description = "æ°é", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") |
| | | private BigDecimal count; |
| | | } |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.crm.api.contract.dto; |
| | | |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import lombok.Data; |
| | | |
| | | @Schema(description = "RPC æå¡ - CRM åå Response DTO") |
| | | @Data |
| | | public class CrmContractRespDTO { |
| | | |
| | | @Schema(description = "ååç¼å·", example = "1") |
| | | private Long id; |
| | | |
| | | @Schema(description = "åååå·", example = "HT001") |
| | | private String no; |
| | | |
| | | @Schema(description = "åååç§°", example = "好水å·-éå®åå-SO001") |
| | | private String name; |
| | | |
| | | } |
| | |
| | | package cn.iocoder.yudao.module.crm.api.contract; |
| | | |
| | | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.module.crm.api.contract.dto.CrmContractCreateFromSaleOrderReqDTO; |
| | | import cn.iocoder.yudao.module.crm.api.contract.dto.CrmContractRespDTO; |
| | | import cn.iocoder.yudao.module.crm.dal.dataobject.contract.CrmContractDO; |
| | | import cn.iocoder.yudao.module.crm.service.contract.CrmContractService; |
| | | import jakarta.annotation.Resource; |
| | | import org.springframework.context.annotation.Lazy; |
| | |
| | | private CrmContractService contractService; |
| | | |
| | | @Override |
| | | public CommonResult<CrmContractRespDTO> createContractDraftFromSaleOrder(CrmContractCreateFromSaleOrderReqDTO reqDTO) { |
| | | CrmContractDO contract = contractService.createContractDraftFromSaleOrder(reqDTO); |
| | | return success(BeanUtils.toBean(contract, CrmContractRespDTO.class)); |
| | | } |
| | | |
| | | @Override |
| | | public CommonResult<Boolean> updateContractStatus(Long id, Integer status) { |
| | | contractService.updateContractStatus(id, status); |
| | | return success(true); |
| | |
| | | package cn.iocoder.yudao.module.crm.service.contract; |
| | | |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.module.crm.api.contract.dto.CrmContractCreateFromSaleOrderReqDTO; |
| | | import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.contract.CrmContractPageReqVO; |
| | | import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.contract.CrmContractSaveReqVO; |
| | | import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.contract.CrmContractImportExcelVO; |
| | |
| | | Long generateSaleOrder(Long id, Long userId); |
| | | |
| | | /** |
| | | * æ ¹æ®éå®è®¢åå建ååè稿ï¼ä¸æäº¤å®¡æ¹ï¼ |
| | | * |
| | | * @param reqDTO éå®è®¢åä¿¡æ¯ |
| | | * @return åå |
| | | */ |
| | | CrmContractDO createContractDraftFromSaleOrder(CrmContractCreateFromSaleOrderReqDTO reqDTO); |
| | | |
| | | /** |
| | | * æ´æ°ååç¶æ |
| | | * |
| | | * @param id ååç¼å· |
| | |
| | | import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionInfoDO; |
| | | import cn.iocoder.yudao.module.bpm.service.definition.BpmCategoryService; |
| | | import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService; |
| | | import cn.iocoder.yudao.module.crm.api.contract.dto.CrmContractCreateFromSaleOrderReqDTO; |
| | | import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.contract.CrmContractPageReqVO; |
| | | import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.contract.CrmContractSaveReqVO; |
| | | import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.contract.CrmContractImportExcelVO; |
| | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.context.annotation.Lazy; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Propagation; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.validation.annotation.Validated; |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW) |
| | | public CrmContractDO createContractDraftFromSaleOrder(CrmContractCreateFromSaleOrderReqDTO reqDTO) { |
| | | // 1. å¹çï¼åä¸éå®è®¢ååªçæä¸å¼ åå |
| | | CrmContractDO existed = contractMapper.selectByOrderId(reqDTO.getOrderId()); |
| | | if (existed != null) { |
| | | log.info("[createContractDraftFromSaleOrder] éå®è®¢å({}) å·²çæåå({})ï¼è·³è¿å建", |
| | | reqDTO.getOrderNo(), existed.getNo()); |
| | | return existed; |
| | | } |
| | | // 2. æ ¡éªå®¢æ·ä¸è´è´£äºº |
| | | CrmCustomerDO customer = customerService.getCustomer(reqDTO.getCustomerId()); |
| | | if (customer == null) { |
| | | throw new IllegalArgumentException("éå®è®¢å[" + reqDTO.getOrderNo() |
| | | + "]å
³èç客æ·ä¸åå¨æå·²è¢«å é¤ï¼æ æ³èªå¨çæéå®åå"); |
| | | } |
| | | if (reqDTO.getOwnerUserId() == null) { |
| | | throw new IllegalArgumentException("éå®è®¢å[" + reqDTO.getOrderNo() |
| | | + "]æªå¡«åéå®åï¼æ æ³ç¡®å®èªå¨çæéå®ååçè´è´£äºº"); |
| | | } |
| | | if (CollUtil.isEmpty(reqDTO.getItems())) { |
| | | throw new IllegalArgumentException("éå®è®¢å[" + reqDTO.getOrderNo() |
| | | + "]没ææç»ï¼æ æ³èªå¨çæéå®åå"); |
| | | } |
| | | |
| | | // 3. ç»è£
ååæç» |
| | | List<CrmContractProductDO> products = new ArrayList<>(reqDTO.getItems().size()); |
| | | for (CrmContractCreateFromSaleOrderReqDTO.Item item : reqDTO.getItems()) { |
| | | CrmContractProductDO product = new CrmContractProductDO(); |
| | | product.setItemId(item.getItemId()); |
| | | product.setItemUnitId(item.getItemUnitId()); |
| | | product.setItemPrice(item.getPrice()); |
| | | product.setContractPrice(item.getPrice()); |
| | | product.setCount(item.getCount()); |
| | | product.setTotalPrice(MoneyUtils.priceMultiply(item.getPrice(), item.getCount())); |
| | | products.add(product); |
| | | } |
| | | |
| | | // 4. ç»è£
ååï¼æªæäº¤è稿ï¼ä¸å起审æ¹ï¼ |
| | | CrmContractDO contract = new CrmContractDO(); |
| | | contract.setNo(noRedisDAO.generate(CrmNoRedisDAO.CONTRACT_NO_PREFIX)); |
| | | contract.setName(customer.getName() + "-éå®åå-" + reqDTO.getOrderNo()); |
| | | contract.setCustomerId(reqDTO.getCustomerId()); |
| | | contract.setOwnerUserId(reqDTO.getOwnerUserId()); |
| | | contract.setOrderDate(reqDTO.getOrderTime()); |
| | | contract.setDiscountPercent(reqDTO.getDiscountPercent() != null ? reqDTO.getDiscountPercent() : BigDecimal.ZERO); |
| | | contract.setDepositPrice(reqDTO.getDepositPrice() != null ? reqDTO.getDepositPrice() : BigDecimal.ZERO); |
| | | contract.setOrderId(reqDTO.getOrderId()); |
| | | contract.setOrderNo(reqDTO.getOrderNo()); |
| | | contract.setRemark("ç±éå®è®¢åã" + reqDTO.getOrderNo() + "ã审æ¹éè¿åèªå¨çæ"); |
| | | contract.setAuditStatus(CrmAuditStatusEnum.DRAFT.getStatus()); |
| | | calculateTotalPrice(contract, products); |
| | | |
| | | // 5. è½åº |
| | | contractMapper.insert(contract); |
| | | products.forEach(product -> product.setContractId(contract.getId())); |
| | | contractProductMapper.insertBatch(products); |
| | | |
| | | // 6. åå»ºæ°æ®æéï¼ä¿è¯è´è´£äººè½çå°è¯¥åå |
| | | crmPermissionService.createPermission(new CrmPermissionCreateReqBO().setUserId(contract.getOwnerUserId()) |
| | | .setBizType(CrmBizTypeEnum.CRM_CONTRACT.getType()).setBizId(contract.getId()) |
| | | .setLevel(CrmPermissionLevelEnum.OWNER.getLevel())); |
| | | log.info("[createContractDraftFromSaleOrder] éå®è®¢å({}) èªå¨çæåå({}) æå", |
| | | reqDTO.getOrderNo(), contract.getNo()); |
| | | return contract; |
| | | } |
| | | |
| | | @Override |
| | | public void updateContractStatus(Long id, Integer status) { |
| | | contractMapper.updateById(new CrmContractDO() |
| | | .setId(id) |
| | |
| | | import cn.iocoder.yudao.module.erp.api.purchase.dto.ErpPurchaseOrderRespDTO; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Collection; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * ERP éè´è®¢å API æ¥å£ |
| | |
| | | */ |
| | | CommonResult<List<ErpPurchaseOrderItemRespDTO>> getPurchaseOrderItemListBySource(Integer sourceType, Long sourceId); |
| | | |
| | | /** |
| | | * æ¹éè·åç©æçéè´å æå¹³ååä»·ï¼ä»
ç»è®¡å·²å®¡æ ¸éè´è®¢åï¼ |
| | | * |
| | | * è®¡ç®æ¹å¼ï¼SUM(æç»æ»ä»·) / SUM(æç»æ°é)ï¼æ ææéè´è®°å½æ¶è¿å空 Map |
| | | * |
| | | * @param productIds ç©æç¼å·éåï¼mdm_item.idï¼ |
| | | * @return ç©æç¼å· â å æå¹³ååä»· |
| | | */ |
| | | CommonResult<Map<Long, BigDecimal>> getItemAveragePurchasePriceMap(Collection<Long> productIds); |
| | | |
| | | } |
| | |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.util.Collection; |
| | | import java.util.Collections; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| | | |
| | |
| | | return success(BeanUtils.toBean(items, ErpPurchaseOrderItemRespDTO.class)); |
| | | } |
| | | |
| | | @Override |
| | | public CommonResult<Map<Long, BigDecimal>> getItemAveragePurchasePriceMap(Collection<Long> productIds) { |
| | | if (productIds == null || productIds.isEmpty()) { |
| | | return success(Collections.emptyMap()); |
| | | } |
| | | // 1. æ¥è¯¢å·²å®¡æ ¸éè´è®¢åä¸è¿äºç©æçæç» |
| | | List<ErpPurchaseOrderItemDO> items = purchaseOrderItemMapper |
| | | .selectListByApprovedOrderAndProductIds(productIds); |
| | | if (items.isEmpty()) { |
| | | return success(Collections.emptyMap()); |
| | | } |
| | | // 2. æç©ææ±æ»æ°éåéé¢ï¼è®¡ç®å æå¹³åä»·ï¼SUM(æ»ä»·) / SUM(æ°é) |
| | | Map<Long, BigDecimal> totalPriceMap = new HashMap<>(); |
| | | Map<Long, BigDecimal> totalCountMap = new HashMap<>(); |
| | | for (ErpPurchaseOrderItemDO item : items) { |
| | | if (item.getProductId() == null || item.getCount() == null |
| | | || item.getCount().compareTo(BigDecimal.ZERO) <= 0) { |
| | | continue; |
| | | } |
| | | BigDecimal totalPrice = item.getTotalPrice(); |
| | | if (totalPrice == null && item.getProductPrice() != null) { |
| | | totalPrice = item.getProductPrice().multiply(item.getCount()); |
| | | } |
| | | if (totalPrice == null) { |
| | | continue; |
| | | } |
| | | totalPriceMap.merge(item.getProductId(), totalPrice, BigDecimal::add); |
| | | totalCountMap.merge(item.getProductId(), item.getCount(), BigDecimal::add); |
| | | } |
| | | Map<Long, BigDecimal> result = new HashMap<>(totalCountMap.size()); |
| | | totalCountMap.forEach((productId, totalCount) -> { |
| | | BigDecimal totalPrice = totalPriceMap.get(productId); |
| | | if (totalPrice != null && totalCount.compareTo(BigDecimal.ZERO) > 0) { |
| | | result.put(productId, totalPrice.divide(totalCount, 6, RoundingMode.HALF_UP)); |
| | | } |
| | | }); |
| | | return success(result); |
| | | } |
| | | |
| | | } |
| | |
| | | package cn.iocoder.yudao.module.erp.dal.mysql.purchase; |
| | | |
| | | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |
| | | import cn.iocoder.yudao.framework.mybatis.core.query.MPJLambdaWrapperX; |
| | | import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseOrderDO; |
| | | import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseOrderItemDO; |
| | | import cn.iocoder.yudao.module.erp.enums.ErpAuditStatus; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | import java.util.Collection; |
| | |
| | | return delete(ErpPurchaseOrderItemDO::getOrderId, orderId); |
| | | } |
| | | |
| | | /** |
| | | * æ¥è¯¢æå®ç©æçå·²å®¡æ ¸éè´è®¢åæç» |
| | | */ |
| | | default List<ErpPurchaseOrderItemDO> selectListByApprovedOrderAndProductIds(Collection<Long> productIds) { |
| | | MPJLambdaWrapperX<ErpPurchaseOrderItemDO> query = new MPJLambdaWrapperX<>(); |
| | | query.selectAll(ErpPurchaseOrderItemDO.class); |
| | | query.innerJoin(ErpPurchaseOrderDO.class, ErpPurchaseOrderDO::getId, ErpPurchaseOrderItemDO::getOrderId); |
| | | query.eq(ErpPurchaseOrderDO::getStatus, ErpAuditStatus.APPROVE.getStatus()); |
| | | query.in(ErpPurchaseOrderItemDO::getProductId, productIds); |
| | | return selectJoinList(ErpPurchaseOrderItemDO.class, query); |
| | | } |
| | | |
| | | } |
| | |
| | | import cn.iocoder.yudao.module.crm.api.customer.CrmCustomerApi; |
| | | import cn.iocoder.yudao.module.crm.api.customer.dto.CrmCustomerRespDTO; |
| | | import cn.iocoder.yudao.module.crm.api.contract.CrmContractApi; |
| | | import cn.iocoder.yudao.module.crm.api.contract.dto.CrmContractCreateFromSaleOrderReqDTO; |
| | | import cn.iocoder.yudao.module.crm.api.contract.dto.CrmContractRespDTO; |
| | | import cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order.ErpSaleOrderPageReqVO; |
| | | import cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order.ErpSaleOrderSaveReqVO; |
| | | import cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order.ErpSaleOrderImportExcelVO; |
| | |
| | | .setId(id).setStatus(newStatus)); |
| | | } |
| | | |
| | | // 3. å®¡æ ¸éè¿æ¶ï¼ä¸ºéè¦ç产çæç»å建 MPS |
| | | // 3. å®¡æ ¸éè¿æ¶ï¼ä¸ºéè¦ç产çæç»å建 MPSï¼å¹¶èªå¨çæéå®ååè稿 |
| | | if (ErpAuditStatus.APPROVE.getStatus().equals(newStatus)) { |
| | | createMpsForSaleOrder(id, saleOrder); |
| | | createContractForSaleOrder(saleOrder); |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * éå®è®¢å审æ¹éè¿åï¼èªå¨çæéå®ååè稿ï¼ä¸æäº¤å®¡æ¹ï¼ |
| | | */ |
| | | private void createContractForSaleOrder(ErpSaleOrderDO saleOrder) { |
| | | // è®¢åæ¬èº«ç±ååçæï¼é¿å
ååçæ |
| | | if (saleOrder.getContractId() != null) { |
| | | log.info("[createContractForSaleOrder] éå®è®¢å({}) å·²å
³èåå({})ï¼è·³è¿èªå¨çæ", |
| | | saleOrder.getNo(), saleOrder.getContractNo()); |
| | | return; |
| | | } |
| | | try { |
| | | List<ErpSaleOrderItemDO> items = saleOrderItemMapper.selectListByOrderId(saleOrder.getId()); |
| | | if (CollUtil.isEmpty(items)) { |
| | | log.warn("[createContractForSaleOrder] éå®è®¢å({}) 没ææç»ï¼è·³è¿èªå¨çæåå", saleOrder.getNo()); |
| | | return; |
| | | } |
| | | // è´è´£äººä¼å
åéå®åï¼æªå¡«åæ¶åéå°è®¢åå建人 |
| | | Long ownerUserId = saleOrder.getSaleUserId(); |
| | | if (ownerUserId == null && StrUtil.isNumeric(saleOrder.getCreator())) { |
| | | ownerUserId = Long.valueOf(saleOrder.getCreator()); |
| | | } |
| | | |
| | | CrmContractCreateFromSaleOrderReqDTO createReqDTO = new CrmContractCreateFromSaleOrderReqDTO(); |
| | | createReqDTO.setOrderId(saleOrder.getId()); |
| | | createReqDTO.setOrderNo(saleOrder.getNo()); |
| | | createReqDTO.setCustomerId(saleOrder.getCustomerId()); |
| | | createReqDTO.setOwnerUserId(ownerUserId); |
| | | createReqDTO.setOrderTime(saleOrder.getOrderTime()); |
| | | createReqDTO.setDiscountPercent(saleOrder.getDiscountPercent()); |
| | | createReqDTO.setDepositPrice(saleOrder.getDepositPrice()); |
| | | createReqDTO.setItems(items.stream().map(item -> { |
| | | CrmContractCreateFromSaleOrderReqDTO.Item contractItem = new CrmContractCreateFromSaleOrderReqDTO.Item(); |
| | | contractItem.setItemId(item.getProductId()); |
| | | contractItem.setItemUnitId(item.getProductUnitId()); |
| | | contractItem.setPrice(item.getProductPrice()); |
| | | contractItem.setCount(item.getCount()); |
| | | return contractItem; |
| | | }).toList()); |
| | | |
| | | CrmContractRespDTO contract = contractApi.createContractDraftFromSaleOrder(createReqDTO).getCheckedData(); |
| | | if (contract != null) { |
| | | saleOrderMapper.updateById(new ErpSaleOrderDO().setId(saleOrder.getId()) |
| | | .setContractId(contract.getId()).setContractNo(contract.getNo())); |
| | | log.info("[createContractForSaleOrder] éå®è®¢å({}) èªå¨çæåå({}) æå", |
| | | saleOrder.getNo(), contract.getNo()); |
| | | } |
| | | } catch (Exception e) { |
| | | // ååçæå¤±è´¥ä¸é»å¡è®¢å审æ¹ï¼è®°å½æ¥å¿ä¾¿äºææ¥ |
| | | log.error("[createContractForSaleOrder] éå®è®¢å({}) èªå¨çæéå®åå失败", saleOrder.getNo(), e); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 为éå®è®¢åæç»å建 MPS |
| | | */ |
| | | private Long createMpsForSaleOrderItem(ErpSaleOrderDO saleOrder, ErpSaleOrderItemDO item) { |
| | |
| | | ErrorCode EMPLOYEE_CONTRACT_IMPORT_EMPLOYEE_NAME_NOT_EXISTS = new ErrorCode(1_030_000_018, "åå·¥å§åã{}ãä¸åå¨ï¼è¯·å
ç»´æ¤å工档æ¡"); |
| | | ErrorCode EMPLOYEE_CONTRACT_IMPORT_EMPLOYEE_NAME_MULTIPLE = new ErrorCode(1_030_000_019, "åå·¥å§åã{}ã对åºå¤ä¸ªå工档æ¡ï¼æ æ³èªå¨å¹é
ï¼è¯·å
å¨é¡µé¢æå·¥ä¸ºè¯¥åå·¥æ°å¢åå"); |
| | | ErrorCode EMPLOYEE_CONTRACT_IMPORT_CONTRACT_EXISTS = new ErrorCode(1_030_000_020, "该åå·¥ã{}ãå·²åå¨ç¸åç±»åãç¸åå¼å§æ¥æçååï¼å¦éè¦ç请å¾éâå·²å卿¶æ´æ°â"); |
| | | ErrorCode EMPLOYEE_CONTRACT_DOCUMENT_EMPLOYEE_NOT_EXISTS = new ErrorCode(1_030_000_021, "ååã{}ãå
³èçå工档æ¡ï¼åå·¥ID={}ï¼ä¸åå¨ï¼æ æ³çæååææ¡£ï¼è¯·å
为该ååéæ©ææåå·¥"); |
| | | ErrorCode EMPLOYEE_CONTRACT_TEMPLATE_NOT_FOUND = new ErrorCode(1_030_000_022, "å忍¡æ¿æä»¶ã{}ãä¸åå¨ï¼æ æ³çæååææ¡£ï¼è¯·è系管ç忢夿¨¡æ¿æä»¶"); |
| | | ErrorCode EMPLOYEE_CONTRACT_TEMPLATE_PLACEHOLDER_UNRESOLVED = new ErrorCode(1_030_000_023, "å忍¡æ¿å卿ªè¯å«çå ä½ç¬¦ã{}ãï¼è¯·æ£æ¥æ¨¡æ¿æä»¶æ¯å¦ä¸å½åç³»ç»çæ¬å¹é
"); |
| | | ErrorCode EMPLOYEE_CONTRACT_DOCUMENT_GENERATE_FAIL = new ErrorCode(1_030_000_024, "çæååææ¡£å¤±è´¥ï¼{}ã请éè¯ï¼è¥ä»å¤±è´¥è¯·è系管çå"); |
| | | |
| | | // ========== 请åç³è¯· 1-030-001-000 ========== |
| | | ErrorCode LEAVE_APPLICATION_NOT_EXISTS = new ErrorCode(1_030_001_000, "请åç³è¯·ä¸åå¨"); |
| | |
| | | <artifactId>yudao-spring-boot-starter-excel</artifactId> |
| | | </dependency> |
| | | |
| | | <!-- ååææ¡£çæï¼Word(.docx) 模æ¿å¡«å
--> |
| | | <dependency> |
| | | <groupId>org.apache.poi</groupId> |
| | | <artifactId>poi-ooxml</artifactId> |
| | | <version>5.4.0</version> |
| | | </dependency> |
| | | |
| | | <!-- Test æµè¯ç¸å
³ --> |
| | | <dependency> |
| | | <groupId>cn.iocoder.boot</groupId> |
| | |
| | | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; |
| | | import cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeeContractDocumentRespVO; |
| | | import cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeeContractImportExcelVO; |
| | | import cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeeContractImportReqVO; |
| | | import cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeeContractImportRespVO; |
| | |
| | | import cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeeContractRespVO; |
| | | import cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeeContractSaveReqVO; |
| | | import cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeeContractTerminateReqVO; |
| | | import cn.iocoder.yudao.module.hrm.service.employee.HrmEmployeeContractDocumentService; |
| | | import cn.iocoder.yudao.module.hrm.service.employee.HrmEmployeeContractService; |
| | | import io.swagger.v3.oas.annotations.Operation; |
| | | import io.swagger.v3.oas.annotations.Parameter; |
| | |
| | | |
| | | @Resource |
| | | private HrmEmployeeContractService contractService; |
| | | @Resource |
| | | private HrmEmployeeContractDocumentService contractDocumentService; |
| | | |
| | | @PostMapping("/create") |
| | | @Operation(summary = "å建åå·¥åå") |
| | |
| | | return success(contractService.getExpiringCount()); |
| | | } |
| | | |
| | | @PostMapping("/generate-document") |
| | | @Operation(summary = "çæåå·¥ååææ¡£", description = "æååæç»å¡«å
Word 模æ¿ï¼çæç»æåå
¥ç³»ç»æä»¶åºå¹¶ç»å®å°è¯¥ååçéä»¶") |
| | | @Parameter(name = "id", description = "ååID", required = true) |
| | | @PreAuthorize("@ss.hasPermission('hrm:employee-contract:update')") |
| | | public CommonResult<HrmEmployeeContractDocumentRespVO> generateContractDocument(@RequestParam("id") Long id) { |
| | | return success(contractDocumentService.generateContractDocument(id)); |
| | | } |
| | | |
| | | @GetMapping("/import-template") |
| | | @Operation(summary = "ä¸è½½åå·¥åå导å
¥æ¨¡æ¿") |
| | | @PreAuthorize("@ss.hasPermission('hrm:employee-contract:import')") |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.hrm.controller.admin.employee.vo; |
| | | |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import lombok.Data; |
| | | |
| | | @Schema(description = "管çåå° - åå·¥ååææ¡£çæç»æ Response VO") |
| | | @Data |
| | | public class HrmEmployeeContractDocumentRespVO { |
| | | |
| | | @Schema(description = "æä»¶ç¼å·", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") |
| | | private Long blobId; |
| | | |
| | | @Schema(description = "æä»¶å", requiredMode = Schema.RequiredMode.REQUIRED, example = "å³å¨åå-å¼ ä¸-HT202608100001.docx") |
| | | private String fileName; |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.hrm.service.employee; |
| | | |
| | | import cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeeContractDocumentRespVO; |
| | | |
| | | /** |
| | | * åå·¥ååææ¡£ Service æ¥å£ |
| | | */ |
| | | public interface HrmEmployeeContractDocumentService { |
| | | |
| | | /** |
| | | * æååæç»çæå³å¨åå Word ææ¡£ï¼å¹¶ç»å®å°è¯¥ååçéä»¶ä¸ |
| | | * |
| | | * @param contractId åå ID |
| | | * @return çæç»æï¼æä»¶ç¼å·ãæä»¶åï¼ |
| | | */ |
| | | HrmEmployeeContractDocumentRespVO generateContractDocument(Long contractId); |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.hrm.service.employee; |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.iocoder.yudao.framework.common.biz.system.dict.dto.DictDataRespDTO; |
| | | import cn.iocoder.yudao.framework.common.exception.ServiceException; |
| | | import cn.iocoder.yudao.framework.common.util.json.JsonUtils; |
| | | import cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeeContractDocumentRespVO; |
| | | import cn.iocoder.yudao.module.hrm.dal.dataobject.employee.HrmEmployeeContractDO; |
| | | import cn.iocoder.yudao.module.hrm.dal.dataobject.employee.HrmEmployeeDO; |
| | | import cn.iocoder.yudao.module.hrm.dal.mysql.employee.HrmEmployeeContractMapper; |
| | | import cn.iocoder.yudao.module.system.api.dept.DeptApi; |
| | | import cn.iocoder.yudao.module.system.api.dept.PostApi; |
| | | import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; |
| | | import cn.iocoder.yudao.module.system.api.dept.dto.PostRespDTO; |
| | | import cn.iocoder.yudao.module.system.api.dict.DictDataApi; |
| | | import cn.iocoder.yudao.module.system.api.storage.StorageAttachmentApi; |
| | | import cn.iocoder.yudao.module.system.api.storage.StorageBlobApi; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.poi.xwpf.usermodel.XWPFDocument; |
| | | import org.apache.poi.xwpf.usermodel.XWPFFooter; |
| | | import org.apache.poi.xwpf.usermodel.XWPFHeader; |
| | | import org.apache.poi.xwpf.usermodel.XWPFParagraph; |
| | | import org.apache.poi.xwpf.usermodel.XWPFRun; |
| | | import org.apache.poi.xwpf.usermodel.XWPFTable; |
| | | import org.apache.poi.xwpf.usermodel.XWPFTableCell; |
| | | import org.apache.poi.xwpf.usermodel.XWPFTableRow; |
| | | import org.springframework.core.io.ClassPathResource; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.validation.annotation.Validated; |
| | | |
| | | import java.io.ByteArrayOutputStream; |
| | | import java.io.InputStream; |
| | | import java.math.BigDecimal; |
| | | import java.text.DecimalFormat; |
| | | import java.time.LocalDate; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.Collections; |
| | | import java.util.HashMap; |
| | | import java.util.LinkedHashSet; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | import java.util.Set; |
| | | import java.util.regex.Matcher; |
| | | import java.util.regex.Pattern; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| | | import static cn.iocoder.yudao.module.hrm.enums.ErrorCodeConstants.*; |
| | | |
| | | /** |
| | | * åå·¥ååææ¡£ Service å®ç°ç±» |
| | | * <p> |
| | | * åºäº Word 模æ¿å ä½ç¬¦å¡«å
çæå³å¨ååï¼çæç»æåå
¥ç³»ç»æä»¶åºå¹¶ç»å®å°ååéä»¶ã |
| | | * å®¢æ·æä¾æ£å¼æ¨¡æ¿åï¼åªéæ¿æ¢æ¨¡æ¿æä»¶ä¸çå ä½ç¬¦å
å®¹ï¼æ éä¿®æ¹ä»£ç ã |
| | | */ |
| | | @Service |
| | | @Validated |
| | | @Slf4j |
| | | public class HrmEmployeeContractDocumentServiceImpl implements HrmEmployeeContractDocumentService { |
| | | |
| | | private static final String TEMPLATE_PATH = "templates/hrm/employee-contract-template.docx"; |
| | | private static final String APPLICATION = "file"; |
| | | private static final String RECORD_TYPE = "hrm_employee_contract"; |
| | | private static final String CONTENT_TYPE = |
| | | "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; |
| | | private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyyå¹´Mædæ¥"); |
| | | private static final Pattern PLACEHOLDER_PATTERN = Pattern.compile("\\{\\{\\s*([^{}]+?)\\s*}}"); |
| | | private static final String UNSET_TEXT = "æªå¡«å"; |
| | | |
| | | @Resource |
| | | private HrmEmployeeContractMapper contractMapper; |
| | | @Resource |
| | | private HrmEmployeeService employeeService; |
| | | @Resource |
| | | private DeptApi deptApi; |
| | | @Resource |
| | | private PostApi postApi; |
| | | @Resource |
| | | private DictDataApi dictDataApi; |
| | | @Resource |
| | | private StorageBlobApi storageBlobApi; |
| | | @Resource |
| | | private StorageAttachmentApi storageAttachmentApi; |
| | | |
| | | @Override |
| | | public HrmEmployeeContractDocumentRespVO generateContractDocument(Long contractId) { |
| | | // 1. æ ¡éªååä¸åå·¥ |
| | | HrmEmployeeContractDO contract = contractMapper.selectById(contractId); |
| | | if (contract == null) { |
| | | throw exception(EMPLOYEE_CONTRACT_NOT_EXISTS); |
| | | } |
| | | HrmEmployeeDO employee = employeeService.getEmployee(contract.getEmployeeId()); |
| | | if (employee == null) { |
| | | throw exception(EMPLOYEE_CONTRACT_DOCUMENT_EMPLOYEE_NOT_EXISTS, |
| | | contract.getContractNo(), contract.getEmployeeId()); |
| | | } |
| | | |
| | | // 2. 模æ¿å¿
é¡»åå¨ï¼é¿å
çæç©ºææ¡£ |
| | | ClassPathResource template = new ClassPathResource(TEMPLATE_PATH); |
| | | if (!template.exists()) { |
| | | throw exception(EMPLOYEE_CONTRACT_TEMPLATE_NOT_FOUND, TEMPLATE_PATH); |
| | | } |
| | | |
| | | // 3. å¡«å
æ¨¡æ¿ |
| | | String fileName = buildFileName(contract, employee); |
| | | byte[] content = fillTemplate(template, contract, employee); |
| | | if (content.length == 0) { |
| | | throw exception(EMPLOYEE_CONTRACT_DOCUMENT_GENERATE_FAIL, "çæçæä»¶å
容为空"); |
| | | } |
| | | |
| | | // 4. åå
¥ç³»ç»æä»¶åºï¼å¹¶ç»å®ä¸ºååéä»¶ï¼æ¯æ¬¡çæä¿çä¸ä»½åå²çæ¬ï¼ |
| | | Long blobId = storageBlobApi.saveBlob(content, fileName, CONTENT_TYPE); |
| | | if (blobId == null) { |
| | | throw exception(EMPLOYEE_CONTRACT_DOCUMENT_GENERATE_FAIL, "æä»¶ä¿å失败"); |
| | | } |
| | | storageAttachmentApi.bindAttachments(APPLICATION, RECORD_TYPE, contractId, |
| | | Collections.singletonList(blobId)); |
| | | |
| | | HrmEmployeeContractDocumentRespVO respVO = new HrmEmployeeContractDocumentRespVO(); |
| | | respVO.setBlobId(blobId); |
| | | respVO.setFileName(fileName); |
| | | return respVO; |
| | | } |
| | | |
| | | private byte[] fillTemplate(ClassPathResource template, HrmEmployeeContractDO contract, |
| | | HrmEmployeeDO employee) { |
| | | Map<String, String> values = buildPlaceholderValues(contract, employee); |
| | | try (InputStream in = template.getInputStream(); |
| | | XWPFDocument document = new XWPFDocument(in)) { |
| | | replacePlaceholders(document, values); |
| | | Set<String> unresolved = findUnresolvedPlaceholders(document); |
| | | if (CollUtil.isNotEmpty(unresolved)) { |
| | | throw exception(EMPLOYEE_CONTRACT_TEMPLATE_PLACEHOLDER_UNRESOLVED, |
| | | String.join("ã", unresolved)); |
| | | } |
| | | ByteArrayOutputStream out = new ByteArrayOutputStream(); |
| | | document.write(out); |
| | | return out.toByteArray(); |
| | | } catch (ServiceException e) { |
| | | throw e; |
| | | } catch (Exception e) { |
| | | log.error("[fillTemplate][åå({}) çæææ¡£å¤±è´¥]", contract.getId(), e); |
| | | throw exception(EMPLOYEE_CONTRACT_DOCUMENT_GENERATE_FAIL, "è¯»åæ¨¡æ¿æçæ Word æä»¶å¼å¸¸"); |
| | | } |
| | | } |
| | | |
| | | private Map<String, String> buildPlaceholderValues(HrmEmployeeContractDO contract, |
| | | HrmEmployeeDO employee) { |
| | | Map<String, String> values = new HashMap<>(); |
| | | // ååä¿¡æ¯ |
| | | values.put("documentTitle", buildDocumentTitle(contract.getContractType())); |
| | | values.put("contractNo", defaultText(contract.getContractNo())); |
| | | values.put("contractType", getDictLabel("hrm_contract_type", contract.getContractType())); |
| | | values.put("contractTermType", getDictLabel("hrm_contract_term_type", contract.getContractTermType())); |
| | | values.put("signCompany", defaultText(contract.getSignCompany())); |
| | | values.put("signDate", formatDate(contract.getSignDate())); |
| | | values.put("contractPeriod", buildContractPeriod(contract)); |
| | | values.put("probationPeriod", buildProbationPeriod(contract)); |
| | | values.put("probationSalary", formatSalary(contract.getProbationSalary())); |
| | | values.put("regularSalary", formatSalary(contract.getRegularSalary())); |
| | | values.put("generateDate", formatDate(LocalDate.now())); |
| | | // åå·¥ä¿¡æ¯ |
| | | values.put("employeeName", defaultText(employee.getName())); |
| | | values.put("gender", formatGender(employee.getGender())); |
| | | values.put("idCard", defaultText(employee.getIdCard())); |
| | | values.put("employeeNo", defaultText(employee.getEmployeeNo())); |
| | | values.put("phone", defaultText(employee.getPhone())); |
| | | values.put("address", defaultText(employee.getAddress())); |
| | | values.put("hireDate", formatDate(employee.getHireDate())); |
| | | values.put("deptName", getDeptName(employee.getDeptId())); |
| | | values.put("postNames", getPostNames(employee.getPostIds())); |
| | | return values; |
| | | } |
| | | |
| | | private String buildContractPeriod(HrmEmployeeContractDO contract) { |
| | | if (contract.getStartDate() == null) { |
| | | return "æªå¡«åï¼ååå¼å§æ¥æä¸ºç©ºï¼è¯·è¡¥å
¨ååä¿¡æ¯åéæ°çæï¼"; |
| | | } |
| | | if (contract.getEndDate() == null) { |
| | | return "èª " + formatDate(contract.getStartDate()) + " èµ·ï¼æ åºå®æé"; |
| | | } |
| | | return "èª " + formatDate(contract.getStartDate()) + " èµ·è³ " + formatDate(contract.getEndDate()) + " æ¢"; |
| | | } |
| | | |
| | | private String buildProbationPeriod(HrmEmployeeContractDO contract) { |
| | | LocalDate startDate = contract.getProbationStartDate(); |
| | | LocalDate endDate = contract.getProbationEndDate(); |
| | | if (startDate == null && endDate == null) { |
| | | return "æ è¯ç¨æ"; |
| | | } |
| | | if (startDate == null || endDate == null) { |
| | | return "è¯ç¨æä¿¡æ¯ä¸å®æ´ï¼å¼å§æ¥æï¼" + formatDate(startDate) + "ï¼ç»ææ¥æï¼" + formatDate(endDate) |
| | | + "ï¼ï¼è¯·è¡¥å
¨åéæ°çæ"; |
| | | } |
| | | return "èª " + formatDate(startDate) + " èµ·è³ " + formatDate(endDate) + " æ¢"; |
| | | } |
| | | |
| | | private String buildDocumentTitle(Integer contractType) { |
| | | if (contractType == null) { |
| | | return "åå书"; |
| | | } |
| | | switch (contractType) { |
| | | case 1: |
| | | return "å³å¨åå书"; |
| | | case 2: |
| | | return "å³å¡åå书"; |
| | | case 3: |
| | | return "å®ä¹ å议书"; |
| | | case 4: |
| | | return "å³å¡æ´¾é£åå书"; |
| | | default: |
| | | return "åå书"; |
| | | } |
| | | } |
| | | |
| | | private String buildFileName(HrmEmployeeContractDO contract, HrmEmployeeDO employee) { |
| | | String contractType = getDictLabel("hrm_contract_type", contract.getContractType()); |
| | | String name = defaultText(employee.getName()); |
| | | String contractNo = defaultText(contract.getContractNo()); |
| | | return sanitizeFileName(contractType + "-" + name + "-" + contractNo + ".docx"); |
| | | } |
| | | |
| | | private String sanitizeFileName(String fileName) { |
| | | return fileName.replaceAll("[\\\\/:*?\"<>|]", "_"); |
| | | } |
| | | |
| | | private String getDictLabel(String dictType, Integer value) { |
| | | if (value == null) { |
| | | return UNSET_TEXT; |
| | | } |
| | | try { |
| | | return dictDataApi.getDictDataList(dictType).stream() |
| | | .filter(data -> Objects.equals(data.getValue(), String.valueOf(value))) |
| | | .map(DictDataRespDTO::getLabel) |
| | | .findFirst() |
| | | .orElse("æªç¥(" + value + ")"); |
| | | } catch (Exception e) { |
| | | log.warn("[getDictLabel][åå
¸({}) è·å失败ï¼ä½¿ç¨åå§å¼({})]", dictType, value, e); |
| | | return "æªç¥(" + value + ")"; |
| | | } |
| | | } |
| | | |
| | | private String getDeptName(Long deptId) { |
| | | if (deptId == null) { |
| | | return UNSET_TEXT; |
| | | } |
| | | try { |
| | | Map<Long, DeptRespDTO> deptMap = deptApi.getDeptMap(Collections.singleton(deptId)); |
| | | DeptRespDTO dept = deptMap.get(deptId); |
| | | return dept == null ? "æªç¥(ID=" + deptId + ")" : dept.getName(); |
| | | } catch (Exception e) { |
| | | log.warn("[getDeptName][é¨é¨({}) è·å失败]", deptId, e); |
| | | return "æªç¥(ID=" + deptId + ")"; |
| | | } |
| | | } |
| | | |
| | | private String getPostNames(String postIds) { |
| | | if (StrUtil.isBlank(postIds)) { |
| | | return UNSET_TEXT; |
| | | } |
| | | try { |
| | | List<Long> ids = JsonUtils.parseArray(postIds, Long.class); |
| | | if (CollUtil.isEmpty(ids)) { |
| | | return UNSET_TEXT; |
| | | } |
| | | Map<Long, PostRespDTO> postMap = postApi.getPostMap(ids); |
| | | String names = ids.stream() |
| | | .map(postMap::get) |
| | | .filter(Objects::nonNull) |
| | | .map(PostRespDTO::getName) |
| | | .collect(Collectors.joining("ã")); |
| | | return StrUtil.isBlank(names) ? UNSET_TEXT : names; |
| | | } catch (Exception e) { |
| | | log.warn("[getPostNames][å²ä½({}) è§£æå¤±è´¥]", postIds, e); |
| | | return UNSET_TEXT; |
| | | } |
| | | } |
| | | |
| | | private String formatGender(Integer gender) { |
| | | if (gender == null) { |
| | | return UNSET_TEXT; |
| | | } |
| | | if (gender == 1) { |
| | | return "ç·"; |
| | | } |
| | | if (gender == 2) { |
| | | return "女"; |
| | | } |
| | | return UNSET_TEXT; |
| | | } |
| | | |
| | | private String formatSalary(BigDecimal salary) { |
| | | if (salary == null) { |
| | | return UNSET_TEXT; |
| | | } |
| | | return "ï¿¥" + new DecimalFormat("#,##0.00").format(salary) + " å
/æ"; |
| | | } |
| | | |
| | | private String formatDate(LocalDate date) { |
| | | return date == null ? UNSET_TEXT : DATE_FORMATTER.format(date); |
| | | } |
| | | |
| | | private String defaultText(String text) { |
| | | return StrUtil.isBlank(text) ? UNSET_TEXT : text; |
| | | } |
| | | |
| | | // ========== 模æ¿å ä½ç¬¦æ¿æ¢ ========== |
| | | |
| | | private void replacePlaceholders(XWPFDocument document, Map<String, String> values) { |
| | | document.getParagraphs().forEach(paragraph -> replaceInParagraph(paragraph, values)); |
| | | document.getTables().forEach(table -> replaceInTable(table, values)); |
| | | for (XWPFHeader header : document.getHeaderList()) { |
| | | header.getParagraphs().forEach(paragraph -> replaceInParagraph(paragraph, values)); |
| | | header.getTables().forEach(table -> replaceInTable(table, values)); |
| | | } |
| | | for (XWPFFooter footer : document.getFooterList()) { |
| | | footer.getParagraphs().forEach(paragraph -> replaceInParagraph(paragraph, values)); |
| | | footer.getTables().forEach(table -> replaceInTable(table, values)); |
| | | } |
| | | } |
| | | |
| | | private void replaceInTable(XWPFTable table, Map<String, String> values) { |
| | | for (XWPFTableRow row : table.getRows()) { |
| | | for (XWPFTableCell cell : row.getTableCells()) { |
| | | cell.getParagraphs().forEach(paragraph -> replaceInParagraph(paragraph, values)); |
| | | cell.getTables().forEach(nested -> replaceInTable(nested, values)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private void replaceInParagraph(XWPFParagraph paragraph, Map<String, String> values) { |
| | | String text = paragraph.getText(); |
| | | if (StrUtil.isBlank(text) || !text.contains("{{")) { |
| | | return; |
| | | } |
| | | String replaced = text; |
| | | for (Map.Entry<String, String> entry : values.entrySet()) { |
| | | replaced = replaced.replace("{{" + entry.getKey() + "}}", entry.getValue()); |
| | | } |
| | | if (Objects.equals(replaced, text)) { |
| | | return; |
| | | } |
| | | List<XWPFRun> runs = paragraph.getRuns(); |
| | | if (CollUtil.isEmpty(runs)) { |
| | | return; |
| | | } |
| | | // Word å¯è½æå ä½ç¬¦æåå°å¤ä¸ª runï¼ç»ä¸åå¹¶å°é¦ä¸ª run ååæ¿æ¢ï¼ä¿çé¦ä¸ª run çæ ¼å¼ |
| | | XWPFRun firstRun = runs.get(0); |
| | | for (int i = firstRun.getCTR().sizeOfTArray() - 1; i >= 1; i--) { |
| | | firstRun.getCTR().removeT(i); |
| | | } |
| | | firstRun.setText(replaced, 0); |
| | | for (int i = runs.size() - 1; i >= 1; i--) { |
| | | paragraph.removeRun(i); |
| | | } |
| | | } |
| | | |
| | | private Set<String> findUnresolvedPlaceholders(XWPFDocument document) { |
| | | Set<String> placeholders = new LinkedHashSet<>(); |
| | | document.getParagraphs().forEach(paragraph -> collectPlaceholders(paragraph, placeholders)); |
| | | document.getTables().forEach(table -> collectPlaceholders(table, placeholders)); |
| | | for (XWPFHeader header : document.getHeaderList()) { |
| | | header.getParagraphs().forEach(paragraph -> collectPlaceholders(paragraph, placeholders)); |
| | | header.getTables().forEach(table -> collectPlaceholders(table, placeholders)); |
| | | } |
| | | for (XWPFFooter footer : document.getFooterList()) { |
| | | footer.getParagraphs().forEach(paragraph -> collectPlaceholders(paragraph, placeholders)); |
| | | footer.getTables().forEach(table -> collectPlaceholders(table, placeholders)); |
| | | } |
| | | return placeholders; |
| | | } |
| | | |
| | | private void collectPlaceholders(XWPFTable table, Set<String> placeholders) { |
| | | for (XWPFTableRow row : table.getRows()) { |
| | | for (XWPFTableCell cell : row.getTableCells()) { |
| | | cell.getParagraphs().forEach(paragraph -> collectPlaceholders(paragraph, placeholders)); |
| | | cell.getTables().forEach(nested -> collectPlaceholders(nested, placeholders)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private void collectPlaceholders(XWPFParagraph paragraph, Set<String> placeholders) { |
| | | Matcher matcher = PLACEHOLDER_PATTERN.matcher(paragraph.getText()); |
| | | while (matcher.find()) { |
| | | placeholders.add("{{" + matcher.group(1).trim() + "}}"); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | @ExcelProperty("ç©æ/äº§åæ è¯") |
| | | private String itemOrProduct; |
| | | |
| | | @Schema(description = "æ¯ç®±æ°é", example = "12") |
| | | @ExcelProperty("æ¯ç®±æ°é") |
| | | private BigDecimal boxQuantity; |
| | | |
| | | @Schema(description = "ç¶æ", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") |
| | | @ExcelProperty(value = "ç¶æ", converter = DictConvert.class) |
| | | @DictFormat(DictTypeConstants.COMMON_STATUS) |
| | |
| | | @ExcelProperty("æé«åºåé") |
| | | private BigDecimal maxStock; |
| | | |
| | | @Schema(description = "é»è®¤è¶
èæ¥è¦æ¯ä¾(%)ï¼ä¸ºç©ºåå
¨å±é
ç½®", example = "5") |
| | | @ExcelProperty("é»è®¤è¶
èæ¥è¦æ¯ä¾(%)") |
| | | private BigDecimal overConsumeRatio; |
| | | |
| | | @Schema(description = "æ¯å¦é«å¼ç©æ", example = "false") |
| | | @ExcelProperty("æ¯å¦é«å¼ç©æ") |
| | | private Boolean highValue; |
| | |
| | | package cn.iocoder.yudao.module.mes.controller.admin.md.item.vo; |
| | | |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import jakarta.validation.constraints.DecimalMin; |
| | | import jakarta.validation.constraints.NotEmpty; |
| | | import jakarta.validation.constraints.NotNull; |
| | | import lombok.Data; |
| | |
| | | @NotNull(message = "ç©æåç±»ç¼å·ä¸è½ä¸ºç©º") |
| | | private Long itemTypeId; |
| | | |
| | | @Schema(description = "æ¯ç®±æ°é", example = "12") |
| | | @DecimalMin(value = "0.000001", message = "æ¯ç®±æ°éå¿
é¡»å¤§äº 0") |
| | | private BigDecimal boxQuantity; |
| | | |
| | | @Schema(description = "æ¯å¦å¯ç¨å®å
¨åºå", example = "false") |
| | | private Boolean safeStockFlag; |
| | | |
| | |
| | | @Schema(description = "æé«åºåé", example = "10000.0000") |
| | | private BigDecimal maxStock; |
| | | |
| | | @Schema(description = "é»è®¤è¶
èæ¥è¦æ¯ä¾(%)ï¼ä¸ºç©ºåå
¨å±é
ç½®", example = "5") |
| | | @DecimalMin(value = "0", message = "è¶
èæ¥è¦æ¯ä¾ä¸è½ä¸ºè´æ°") |
| | | private BigDecimal overConsumeRatio; |
| | | |
| | | @Schema(description = "æ¯å¦é«å¼ç©æ", example = "false") |
| | | private Boolean highValue; |
| | | |
| | |
| | | @ExcelProperty("ç©æ/äº§åæ è¯") |
| | | private String itemOrProduct; |
| | | |
| | | @Schema(description = "æ¯å¦æååç±»", example = "false") |
| | | @ExcelProperty("æ¯å¦æååç±»") |
| | | private Boolean finishedFlag; |
| | | |
| | | @Schema(description = "æ¾ç¤ºæåº", example = "0") |
| | | @ExcelProperty("æ¾ç¤ºæåº") |
| | | private Integer sort; |
| | |
| | | @NotEmpty(message = "ç©æ/äº§åæ è¯ä¸è½ä¸ºç©º") |
| | | private String itemOrProduct; |
| | | |
| | | @Schema(description = "æ¯å¦æååç±»", example = "false") |
| | | private Boolean finishedFlag; |
| | | |
| | | @Schema(description = "æ¾ç¤ºæåº", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") |
| | | @NotNull(message = "æ¾ç¤ºæåºä¸è½ä¸ºç©º") |
| | | private Integer sort; |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.controller.admin.pro.alert; |
| | | |
| | | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.alert.vo.MesProOverConsumeAlertPageReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.alert.vo.MesProOverConsumeAlertRespVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.alert.MesProOverConsumeAlertDO; |
| | | import cn.iocoder.yudao.module.mes.dal.mysql.pro.alert.MesProOverConsumeAlertMapper; |
| | | import io.swagger.v3.oas.annotations.Operation; |
| | | import io.swagger.v3.oas.annotations.Parameter; |
| | | import io.swagger.v3.oas.annotations.tags.Tag; |
| | | import jakarta.annotation.Resource; |
| | | import jakarta.validation.Valid; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.util.List; |
| | | |
| | | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| | | |
| | | @Tag(name = "管çåå° - MES å·¥åç©æè¶
èæ¥è¦") |
| | | @RestController |
| | | @RequestMapping("/mes/pro/over-consume-alert") |
| | | @Validated |
| | | public class MesProOverConsumeAlertController { |
| | | |
| | | @Resource |
| | | private MesProOverConsumeAlertMapper alertMapper; |
| | | |
| | | @GetMapping("/page") |
| | | @Operation(summary = "è·å¾è¶
èæ¥è¦å页") |
| | | public CommonResult<PageResult<MesProOverConsumeAlertRespVO>> getAlertPage( |
| | | @Valid MesProOverConsumeAlertPageReqVO pageReqVO) { |
| | | PageResult<MesProOverConsumeAlertDO> pageResult = alertMapper.selectPage(pageReqVO); |
| | | return success(new PageResult<>(BeanUtils.toBean(pageResult.getList(), MesProOverConsumeAlertRespVO.class), |
| | | pageResult.getTotal())); |
| | | } |
| | | |
| | | @GetMapping("/list-by-work-order") |
| | | @Operation(summary = "è·å¾æå®å·¥åçè¶
èæ¥è¦å表") |
| | | @Parameter(name = "workOrderId", description = "ç产工åç¼å·", required = true) |
| | | public CommonResult<List<MesProOverConsumeAlertRespVO>> getAlertListByWorkOrderId( |
| | | @RequestParam("workOrderId") Long workOrderId) { |
| | | List<MesProOverConsumeAlertDO> list = alertMapper.selectListByWorkOrderId(workOrderId); |
| | | return success(BeanUtils.toBean(list, MesProOverConsumeAlertRespVO.class)); |
| | | } |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.controller.admin.pro.alert.vo; |
| | | |
| | | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | import lombok.ToString; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | import java.time.LocalDateTime; |
| | | |
| | | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| | | |
| | | @Schema(description = "管çåå° - MES å·¥åç©æè¶
èæ¥è¦å页 Request VO") |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = true) |
| | | @ToString(callSuper = true) |
| | | public class MesProOverConsumeAlertPageReqVO extends PageParam { |
| | | |
| | | @Schema(description = "ç产工åç¼å·", example = "1024") |
| | | private Long workOrderId; |
| | | |
| | | @Schema(description = "ç©æç¼å·", example = "2048") |
| | | private Long itemId; |
| | | |
| | | @Schema(description = "åéç¶æï¼SENT/FAILED", example = "SENT") |
| | | private String status; |
| | | |
| | | @Schema(description = "å建æ¶é´") |
| | | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| | | private LocalDateTime[] createTime; |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.controller.admin.pro.alert.vo; |
| | | |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDateTime; |
| | | |
| | | @Schema(description = "管çåå° - MES å·¥åç©æè¶
èæ¥è¦ Response VO") |
| | | @Data |
| | | public class MesProOverConsumeAlertRespVO { |
| | | |
| | | @Schema(description = "ç¼å·", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") |
| | | private Long id; |
| | | |
| | | @Schema(description = "ç产工åç¼å·", example = "1024") |
| | | private Long workOrderId; |
| | | |
| | | @Schema(description = "ç产工åç¼ç ", example = "WO-001") |
| | | private String workOrderCode; |
| | | |
| | | @Schema(description = "产åç¼å·", example = "100") |
| | | private Long productId; |
| | | |
| | | @Schema(description = "产ååç§°", example = "麻辣èªçç«é
") |
| | | private String productName; |
| | | |
| | | @Schema(description = "ç©æç¼å·", example = "200") |
| | | private Long itemId; |
| | | |
| | | @Schema(description = "ç©æç¼ç ", example = "RM-001") |
| | | private String itemCode; |
| | | |
| | | @Schema(description = "ç©æåç§°", example = "åçå
") |
| | | private String itemName; |
| | | |
| | | @Schema(description = "æ åç¨é", example = "100.000000") |
| | | private BigDecimal standardQuantity; |
| | | |
| | | @Schema(description = "å®é
ç¨é", example = "110.000000") |
| | | private BigDecimal actualQuantity; |
| | | |
| | | @Schema(description = "è¶
èæ°é", example = "10.000000") |
| | | private BigDecimal overQuantity; |
| | | |
| | | @Schema(description = "è¶
èæ¯ä¾(%)", example = "10.0000") |
| | | private BigDecimal overRatio; |
| | | |
| | | @Schema(description = "æ¥è¦éå¼(%)", example = "5.0000") |
| | | private BigDecimal thresholdRatio; |
| | | |
| | | @Schema(description = "ç©æåä»·", example = "1.500000") |
| | | private BigDecimal unitPrice; |
| | | |
| | | @Schema(description = "è¶
èéé¢", example = "15.000000") |
| | | private BigDecimal overAmount; |
| | | |
| | | @Schema(description = "æ¥æ¶äººç¨æ·ç¼å·ï¼éå·åéï¼", example = "1,102") |
| | | private String notifyUserIds; |
| | | |
| | | @Schema(description = "ç«å
ä¿¡æ¶æ¯ç¼å·", example = "3001") |
| | | private Long messageId; |
| | | |
| | | @Schema(description = "åéç¶æï¼SENT/FAILED", example = "SENT") |
| | | private String status; |
| | | |
| | | @Schema(description = "失败åå ") |
| | | private String errorMessage; |
| | | |
| | | @Schema(description = "å建æ¶é´") |
| | | private LocalDateTime createTime; |
| | | |
| | | } |
| | |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.mps.MesProMpsDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO; |
| | | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; |
| | | import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService; |
| | | import cn.iocoder.yudao.module.mes.service.pro.mps.MesProMpsService; |
| | | import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService; |
| | | import io.swagger.v3.oas.annotations.Operation; |
| | | import io.swagger.v3.oas.annotations.Parameter; |
| | | import io.swagger.v3.oas.annotations.tags.Tag; |
| | |
| | | private MesMdItemService itemService; |
| | | @Resource |
| | | private MesMdUnitMeasureService unitMeasureService; |
| | | @Resource |
| | | private MesProWorkOrderService workOrderService; |
| | | @Resource |
| | | private CrmCustomerApi customerApi; |
| | | |
| | |
| | | convertSet(itemMap.values(), MesMdItemDO::getUnitMeasureId)); |
| | | Map<Long, CrmCustomerRespDTO> clientMap = customerApi.getCustomerMap( |
| | | convertSet(list, MesProMpsDO::getClientId)); |
| | | Map<Long, MesProWorkOrderDO> workOrderMap = workOrderService.getWorkOrderMap( |
| | | convertSet(list, MesProMpsDO::getWorkOrderId)); |
| | | // 2. æ¼æ¥ VO |
| | | return BeanUtils.toBean(list, MesProMpsRespVO.class, vo -> { |
| | | MapUtils.findAndThen(itemMap, vo.getProductId(), item -> { |
| | |
| | | }); |
| | | MapUtils.findAndThen(clientMap, vo.getClientId(), |
| | | client -> vo.setClientName(client.getName())); |
| | | // ææ¬æ MPS è®¡åæ°éå 工忰鿝ä¾åæï¼åå¹¶ä¸åæ¶å¤æ¡ MPS å
±äº«åä¸å·¥åï¼ |
| | | MapUtils.findAndThen(workOrderMap, vo.getWorkOrderId(), workOrder -> { |
| | | if (workOrder.getQuantity() == null || workOrder.getQuantity().compareTo(java.math.BigDecimal.ZERO) <= 0) { |
| | | return; |
| | | } |
| | | java.math.BigDecimal ratio = vo.getQuantity().divide(workOrder.getQuantity(), 8, |
| | | java.math.RoundingMode.HALF_UP); |
| | | vo.setStandardMaterialCost(apportion(workOrder.getStandardMaterialCost(), ratio)); |
| | | vo.setActualMaterialCost(apportion(workOrder.getActualMaterialCost(), ratio)); |
| | | vo.setOverConsumeCost(apportion(workOrder.getOverConsumeCost(), ratio)); |
| | | vo.setMaterialUnitCost(workOrder.getMaterialUnitCost()); |
| | | }); |
| | | }); |
| | | } |
| | | |
| | | private static java.math.BigDecimal apportion(java.math.BigDecimal amount, java.math.BigDecimal ratio) { |
| | | return amount != null ? amount.multiply(ratio).setScale(6, java.math.RoundingMode.HALF_UP) : null; |
| | | } |
| | | |
| | | } |
| | |
| | | @ExcelProperty("å·²ç产æ°é") |
| | | private BigDecimal quantityProduced; |
| | | |
| | | // ========== ç©æææ¬ï¼æ MPS æ°éå 工忰鿝ä¾åæï¼ ========== |
| | | |
| | | @Schema(description = "æ åç©æææ¬", example = "1000.00") |
| | | @ExcelProperty("æ åç©æææ¬") |
| | | private BigDecimal standardMaterialCost; |
| | | |
| | | @Schema(description = "å®é
ç©æææ¬", example = "1050.00") |
| | | @ExcelProperty("å®é
ç©æææ¬") |
| | | private BigDecimal actualMaterialCost; |
| | | |
| | | @Schema(description = "è¶
èç©æææ¬", example = "50.00") |
| | | @ExcelProperty("è¶
èç©æææ¬") |
| | | private BigDecimal overConsumeCost; |
| | | |
| | | @Schema(description = "ç©æå使æ¬ï¼å®é
ç©æææ¬/å·²æ¥å·¥æ°éï¼", example = "10.50") |
| | | @ExcelProperty("ç©æå使æ¬") |
| | | private BigDecimal materialUnitCost; |
| | | |
| | | // ========== 客æ·ä¿¡æ¯ ========== |
| | | |
| | | @Schema(description = "客æ·ç¼å·", example = "300") |
| | |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.workorder.vo.bom.MesProWorkOrderBomSaveReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemTypeDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdProductBomDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.route.MesProRouteProductBomDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.route.MesProRouteProductDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderBomDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderProcessDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.itemconsume.MesWmItemConsumeLineDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialstock.MesWmMaterialStockDO; |
| | | import cn.iocoder.yudao.module.mes.dal.mysql.wm.itemconsume.MesWmItemConsumeLineMapper; |
| | | import cn.iocoder.yudao.module.mes.dal.mysql.wm.materialstock.MesWmMaterialStockMapper; |
| | | import cn.iocoder.yudao.module.erp.api.purchase.ErpPurchaseOrderApi; |
| | | import cn.iocoder.yudao.module.erp.api.purchase.dto.ErpPurchaseOrderItemRespDTO; |
| | | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; |
| | | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemTypeService; |
| | | import cn.iocoder.yudao.module.mes.service.md.item.MesMdProductBomService; |
| | | import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService; |
| | | import cn.iocoder.yudao.module.mes.service.pro.cost.MesProMaterialPriceService; |
| | | import cn.iocoder.yudao.module.mes.service.pro.cost.dto.MesProMaterialPriceRespDTO; |
| | | import cn.iocoder.yudao.module.mes.service.pro.route.MesProRouteProductBomService; |
| | | import cn.iocoder.yudao.module.mes.service.pro.route.MesProRouteProductService; |
| | | import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderBomService; |
| | |
| | | private MesProRouteProductBomService routeProductBomService; |
| | | @Resource |
| | | private MesWmMaterialStockMapper materialStockMapper; |
| | | @Resource |
| | | private MesWmItemConsumeLineMapper consumeLineMapper; |
| | | @Resource |
| | | private MesMdProductBomService productBomService; |
| | | @Resource |
| | | private MesProMaterialPriceService materialPriceService; |
| | | @Resource |
| | | private ErpPurchaseOrderApi purchaseOrderApi; |
| | | |
| | |
| | | return success(Collections.emptyList()); |
| | | } |
| | | |
| | | // 2. è·åå·¥åå·¥åºå表ï¼å«åå·¥åºçæææç»ä¸äº§åºåï¼ |
| | | // 2. è·åå·¥åå·¥åºå表ä¸å·¥å BOM |
| | | List<MesProWorkOrderProcessDO> processList = workOrderProcessService |
| | | .getWorkOrderProcessListByWorkOrderId(workOrderId); |
| | | if (CollUtil.isEmpty(processList)) { |
| | | |
| | | return success(Collections.emptyList()); |
| | | } |
| | | |
| | | // 3. è·åå·¥å BOM è¡ï¼åå·¥åºçææè®°å½ï¼æ processId åç»ä½¿ç¨ï¼ |
| | | List<MesProWorkOrderBomDO> bomList = workOrderBomService.getWorkOrderBomListByWorkOrderId(workOrderId); |
| | | if (CollUtil.isEmpty(bomList)) { |
| | | |
| | | // 3. è®¡ç®æ¬æ¬¡çäº§çæ»ç©æéæ± |
| | | Map<Long, BigDecimal> totalRequirements = buildTotalRequirements(workOrder, processList, bomList); |
| | | if (CollUtil.isEmpty(totalRequirements)) { |
| | | return success(Collections.emptyList()); |
| | | } |
| | | |
| | | // 4. éè¿äº§åID忥工èºè·¯çº¿ï¼å·¥å routeId å¯è½ä¸ºç©ºï¼ |
| | | Long routeId = null; |
| | | if (workOrder.getProductId() != null) { |
| | | MesProRouteProductDO routeProduct = routeProductService.getRouteProductByItemId(workOrder.getProductId()); |
| | | if (routeProduct != null) { |
| | | routeId = routeProduct.getRouteId(); |
| | | } |
| | | } |
| | | |
| | | // 5. æå·¥åºäº§åºé¾éå±å±å¼ BOMï¼å¾å°å¶åç©æï¼æ¯å使åçç¨éï¼ |
| | | Map<Long, BigDecimal> leafItems = buildWorkOrderItems(processList, bomList, routeId); |
| | | if (CollUtil.isEmpty(leafItems)) { |
| | | return success(Collections.emptyList()); |
| | | } |
| | | |
| | | // 6. ä¹ä»¥å·¥åç产æ°éï¼å¾å°æ»éæ± |
| | | BigDecimal orderQty = workOrder.getQuantity() != null ? workOrder.getQuantity() : BigDecimal.ONE; |
| | | Map<Long, BigDecimal> totalRequirements = new LinkedHashMap<>(); |
| | | for (Map.Entry<Long, BigDecimal> entry : leafItems.entrySet()) { |
| | | totalRequirements.put(entry.getKey(), entry.getValue().multiply(orderQty)); |
| | | } |
| | | |
| | | // 7. æ¥è¯¢æ¥æºä¸ºæ¬å·¥åçéè´è®¢åæç»ï¼æäº§åæ±æ»å¨ééè´æ° |
| | | // 4. æ¥è¯¢æ¥æºä¸ºæ¬å·¥åçéè´è®¢åæç»ï¼æäº§åæ±æ»å¨ééè´æ° |
| | | // sourceType=1 è¡¨ç¤ºæ¥æºç±»å为"ç产工å" |
| | | Map<Long, BigDecimal> purchaseOrderQtyMap = new HashMap<>(); |
| | | List<ErpPurchaseOrderItemRespDTO> poItems = purchaseOrderApi |
| | |
| | | } |
| | | } |
| | | |
| | | // 8. æ¥è¯¢åºåï¼æ¼æ¥ VO |
| | | return success(buildItemRespVOList(totalRequirements, purchaseOrderQtyMap)); |
| | | // 5. æ¥è¯¢æ¬å·¥å累计æ¶èï¼æ¼æ¥ VO |
| | | Map<Long, BigDecimal> actualQuantityMap = buildActualQuantityMap(workOrderId); |
| | | return success(buildItemRespVOList(totalRequirements, purchaseOrderQtyMap, actualQuantityMap)); |
| | | } |
| | | |
| | | /** |
| | | * 计ç®å·¥åæ»ç©æéæ±ã |
| | | * |
| | | * ä¼å
çº§ï¼ |
| | | * 1. å·¥åºäº§åºé¾å±å¼ï¼æå·¥åºãæå·¥å BOM æ¶ï¼ |
| | | * 2. 产å BOM Ã å·¥åæ°éï¼æªé
置工åº/å·¥å BOM æ¶çå
åºï¼ä¿è¯è½æåéç®æï¼ |
| | | * 3. å·¥å BOM å
åºï¼æ å·¥åºè¡å·²æå·¥åæ°éæ¾å¤§ï¼æå·¥åºè¡ä¸ºåä½ç¨éï¼éä¹å·¥åæ°éï¼ |
| | | */ |
| | | private Map<Long, BigDecimal> buildTotalRequirements(MesProWorkOrderDO workOrder, |
| | | List<MesProWorkOrderProcessDO> processList, |
| | | List<MesProWorkOrderBomDO> bomList) { |
| | | BigDecimal orderQty = workOrder.getQuantity() != null ? workOrder.getQuantity() : BigDecimal.ONE; |
| | | // 1. å·¥åºäº§åºé¾å±å¼ |
| | | if (CollUtil.isNotEmpty(processList) && CollUtil.isNotEmpty(bomList)) { |
| | | Long routeId = null; |
| | | if (workOrder.getProductId() != null) { |
| | | MesProRouteProductDO routeProduct = routeProductService |
| | | .getRouteProductByItemId(workOrder.getProductId()); |
| | | if (routeProduct != null) { |
| | | routeId = routeProduct.getRouteId(); |
| | | } |
| | | } |
| | | Map<Long, BigDecimal> leafItems = buildWorkOrderItems(processList, bomList, routeId); |
| | | if (CollUtil.isNotEmpty(leafItems)) { |
| | | return multiplyQuantity(leafItems, orderQty); |
| | | } |
| | | } |
| | | // 2. 产å BOM Ã å·¥åæ°é |
| | | List<MesMdProductBomDO> productBomList = productBomService |
| | | .getProductBomListByItemId(workOrder.getProductId()); |
| | | if (CollUtil.isNotEmpty(productBomList)) { |
| | | Map<Long, BigDecimal> requirements = new LinkedHashMap<>(); |
| | | for (MesMdProductBomDO bom : productBomList) { |
| | | if (bom.getBomItemId() != null && bom.getQuantity() != null) { |
| | | requirements.merge(bom.getBomItemId(), |
| | | bom.getQuantity().multiply(orderQty), BigDecimal::add); |
| | | } |
| | | } |
| | | return requirements; |
| | | } |
| | | // 3. å·¥å BOM å
åº |
| | | if (CollUtil.isNotEmpty(bomList)) { |
| | | Map<Long, BigDecimal> requirements = new LinkedHashMap<>(); |
| | | for (MesProWorkOrderBomDO bom : bomList) { |
| | | if (bom.getItemId() == null || bom.getQuantity() == null) { |
| | | continue; |
| | | } |
| | | BigDecimal quantity = bom.getProcessId() == null |
| | | ? bom.getQuantity() : bom.getQuantity().multiply(orderQty); |
| | | requirements.merge(bom.getItemId(), quantity, BigDecimal::add); |
| | | } |
| | | return requirements; |
| | | } |
| | | return Collections.emptyMap(); |
| | | } |
| | | |
| | | private static Map<Long, BigDecimal> multiplyQuantity(Map<Long, BigDecimal> source, BigDecimal factor) { |
| | | Map<Long, BigDecimal> result = new LinkedHashMap<>(); |
| | | for (Map.Entry<Long, BigDecimal> entry : source.entrySet()) { |
| | | result.put(entry.getKey(), entry.getValue().multiply(factor)); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | private Map<Long, BigDecimal> buildActualQuantityMap(Long workOrderId) { |
| | | Map<Long, BigDecimal> result = new HashMap<>(); |
| | | for (MesWmItemConsumeLineDO line : consumeLineMapper.selectListByWorkOrderId(workOrderId)) { |
| | | if (line.getItemId() != null && line.getQuantity() != null) { |
| | | result.merge(line.getItemId(), line.getQuantity(), BigDecimal::add); |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | // ==================== æ¼æ¥ VO ==================== |
| | |
| | | // ==================== æ¼æ¥ç©æéæ± VOï¼å«åºåæ ¡éªï¼ ==================== |
| | | |
| | | private List<MesProWorkOrderItemRespVO> buildItemRespVOList(Map<Long, BigDecimal> requirements, |
| | | Map<Long, BigDecimal> purchaseOrderQtyMap) { |
| | | // 1. æ¹éè·åç©æåºç¡ä¿¡æ¯ |
| | | Map<Long, BigDecimal> purchaseOrderQtyMap, |
| | | Map<Long, BigDecimal> actualQuantityMap) { |
| | | // 1. æ¹éè·åç©æåºç¡ä¿¡æ¯ + ç©æä»·æ ¼ |
| | | Map<Long, MesMdItemDO> itemMap = itemService.getItemMap(requirements.keySet()); |
| | | Map<Long, MesMdUnitMeasureDO> unitMeasureMap = unitMeasureService.getUnitMeasureMap( |
| | | convertSet(itemMap.values(), MesMdItemDO::getUnitMeasureId)); |
| | | Map<Long, MesMdItemTypeDO> itemTypeMap = itemTypeService.getItemTypeMap( |
| | | convertSet(itemMap.values(), MesMdItemDO::getItemTypeId)); |
| | | Map<Long, MesProMaterialPriceRespDTO> priceMap = materialPriceService |
| | | .getMaterialPriceMap(requirements.keySet()); |
| | | |
| | | // 2. æ¹éæ¥è¯¢åºåï¼æ itemId æ±æ»å¯ç¨éï¼å¨åº - å»ç» - å ç¨ï¼ |
| | | Map<Long, BigDecimal> stockMap = new HashMap<>(); |
| | |
| | | // å
è¶³å¤æ = å¯ç¨åºå + å¨ééè´æ° >= éæ±æ°é |
| | | BigDecimal totalSupply = stockQty.add(purchaseQty); |
| | | |
| | | MesProMaterialPriceRespDTO price = priceMap.get(item.getId()); |
| | | BigDecimal unitPrice = price != null && price.getUnitPrice() != null |
| | | ? price.getUnitPrice() : BigDecimal.ZERO; |
| | | BigDecimal amount = requiredQty.multiply(unitPrice); |
| | | |
| | | MesProWorkOrderItemRespVO vo = new MesProWorkOrderItemRespVO() |
| | | .setItemId(item.getId()).setQuantity(requiredQty) |
| | | .setItemCode(item.getCode()).setItemName(item.getName()).setItemSpecification(item.getSpecification()) |
| | | .setActualQuantity(actualQuantityMap.getOrDefault(item.getId(), BigDecimal.ZERO)) |
| | | .setUnitPrice(unitPrice) |
| | | .setAmount(amount) |
| | | .setPriceMissing(price == null || Boolean.TRUE.equals(price.getPriceMissing())) |
| | | .setStockQuantity(stockQty) |
| | | .setPurchaseOrderQuantity(purchaseQty) |
| | | .setStockSufficient(totalSupply.compareTo(requiredQty) >= 0); |
| | |
| | | @Schema(description = "éæ±æ°é", example = "1000.00") |
| | | private BigDecimal quantity; |
| | | |
| | | @Schema(description = "å·²æ¶èæ°éï¼è¯¥å·¥å累计ææï¼", example = "120.00") |
| | | private BigDecimal actualQuantity; |
| | | |
| | | @Schema(description = "ç©æåä»·", example = "12.50") |
| | | private BigDecimal unitPrice; |
| | | |
| | | @Schema(description = "éæ±éé¢ï¼éæ±æ°éÃç©æåä»·ï¼", example = "12500.00") |
| | | private BigDecimal amount; |
| | | |
| | | @Schema(description = "æ¯å¦ç¼ºå°ä»·æ ¼ï¼ç©æä¸»æ°æ®ä¸å·²å®¡æ ¸éè´è®¢ååæ ä»·æ ¼ï¼", example = "false") |
| | | private Boolean priceMissing; |
| | | |
| | | @Schema(description = "å¯ç¨åºå", example = "500.00") |
| | | private BigDecimal stockQuantity; |
| | | |
| | |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | import java.time.LocalDateTime; |
| | | import java.util.List; |
| | | |
| | | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| | | |
| | |
| | | @Schema(description = "å·¥åç¶æ", example = "1") |
| | | private Integer status; |
| | | |
| | | @Schema(description = "æé¤çå·¥åç¶æå表", example = "2,3") |
| | | private List<Integer> excludeStatuses; |
| | | |
| | | @Schema(description = "è£
ç®±ç¶æï¼0æªè£
ç®± 1é¨åå·²è£
ç®± 2å·²è£
ç®±å®æ", example = "1") |
| | | private Integer packingStatus; |
| | | |
| | | @Schema(description = "éæ±æ¥æ") |
| | | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| | | private LocalDateTime[] requestDate; |
| | |
| | | @ExcelProperty("å·²ç产æ°é") |
| | | private BigDecimal quantityProduced; |
| | | |
| | | @Schema(description = "å·²è£
ç®±æ°é", example = "30.00") |
| | | @ExcelProperty("å·²è£
ç®±æ°é") |
| | | private BigDecimal packedQuantity; |
| | | |
| | | @Schema(description = "å·²è£
箱箱æ°", example = "3") |
| | | @ExcelProperty("å·²è£
箱箱æ°") |
| | | private Integer packedBoxCount; |
| | | |
| | | @Schema(description = "è£
ç®±ç¶æ", example = "1") |
| | | @ExcelProperty(value = "è£
ç®±ç¶æ", converter = DictConvert.class) |
| | | @DictFormat(DictTypeConstants.MES_PRO_WORK_ORDER_PACKING_STATUS) |
| | | private Integer packingStatus; |
| | | |
| | | @Schema(description = "å®å·¥è¿åº¦", example = "50.00") |
| | | @ExcelProperty("å®å·¥è¿åº¦") |
| | | private BigDecimal completionProgress; |
| | |
| | | @ExcelProperty("å·²æäº§æ°é") |
| | | private BigDecimal quantityScheduled; |
| | | |
| | | @Schema(description = "è¶
èæ¥è¦æ¯ä¾(%)", example = "5") |
| | | @ExcelProperty("è¶
èæ¥è¦æ¯ä¾(%)") |
| | | private BigDecimal overConsumeRatio; |
| | | |
| | | @Schema(description = "æ åç©æææ¬", example = "1000.00") |
| | | @ExcelProperty("æ åç©æææ¬") |
| | | private BigDecimal standardMaterialCost; |
| | | |
| | | @Schema(description = "å®é
ç©æææ¬", example = "1050.00") |
| | | @ExcelProperty("å®é
ç©æææ¬") |
| | | private BigDecimal actualMaterialCost; |
| | | |
| | | @Schema(description = "è¶
èç©æææ¬", example = "50.00") |
| | | @ExcelProperty("è¶
èç©æææ¬") |
| | | private BigDecimal overConsumeCost; |
| | | |
| | | @Schema(description = "ç©æå使æ¬ï¼å®é
ç©æææ¬/å·²æ¥å·¥æ°éï¼", example = "10.50") |
| | | @ExcelProperty("ç©æå使æ¬") |
| | | private BigDecimal materialUnitCost; |
| | | |
| | | @Schema(description = "ææ¬è®¡ç®æ¶é´") |
| | | @ExcelProperty("ææ¬è®¡ç®æ¶é´") |
| | | private LocalDateTime costUpdateTime; |
| | | |
| | | @Schema(description = "客æ·ç¼å·", example = "300") |
| | | private Long clientId; |
| | | |
| | |
| | | @Schema(description = "å·²æäº§æ°é", example = "0") |
| | | private BigDecimal quantityScheduled; |
| | | |
| | | @Schema(description = "è¶
èæ¥è¦æ¯ä¾(%)ï¼ä¸ºç©ºå产åé»è®¤æå
¨å±é
ç½®", example = "5") |
| | | @jakarta.validation.constraints.DecimalMin(value = "0", message = "è¶
èæ¥è¦æ¯ä¾ä¸è½ä¸ºè´æ°") |
| | | private BigDecimal overConsumeRatio; |
| | | |
| | | @Schema(description = "客æ·ç¼å·", example = "300") |
| | | private Long clientId; |
| | | |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.controller.admin.qc.retentionsample; |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.qc.retentionsample.vo.MesQcRetentionSamplePageReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.qc.retentionsample.vo.MesQcRetentionSampleRespVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.qc.retentionsample.vo.MesQcRetentionSampleSaveReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.qc.retentionsample.MesQcRetentionSampleDO; |
| | | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; |
| | | import cn.iocoder.yudao.module.mes.service.qc.retentionsample.MesQcRetentionSampleService; |
| | | import cn.iocoder.yudao.module.system.api.user.AdminUserApi; |
| | | import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; |
| | | import io.swagger.v3.oas.annotations.Operation; |
| | | import io.swagger.v3.oas.annotations.Parameter; |
| | | import io.swagger.v3.oas.annotations.tags.Tag; |
| | | import jakarta.annotation.Resource; |
| | | import jakarta.validation.Valid; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Set; |
| | | |
| | | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| | | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; |
| | | import static cn.iocoder.yudao.framework.common.util.collection.MapUtils.findAndThen; |
| | | |
| | | @Tag(name = "管çåå° - MES çæ ·ç®¡ç") |
| | | @RestController |
| | | @RequestMapping("/mes/qc/retention-sample") |
| | | @Validated |
| | | public class MesQcRetentionSampleController { |
| | | |
| | | @Resource |
| | | private MesQcRetentionSampleService retentionSampleService; |
| | | |
| | | @Resource |
| | | private MesMdItemService itemService; |
| | | |
| | | @Resource |
| | | private AdminUserApi adminUserApi; |
| | | |
| | | @PostMapping("/create") |
| | | @Operation(summary = "åå»ºçæ ·è®°å½") |
| | | @PreAuthorize("@ss.hasPermission('mes:qc-retention-sample:create')") |
| | | public CommonResult<Long> createRetentionSample( |
| | | @Valid @RequestBody MesQcRetentionSampleSaveReqVO createReqVO) { |
| | | return success(retentionSampleService.createRetentionSample(createReqVO)); |
| | | } |
| | | |
| | | @PutMapping("/update") |
| | | @Operation(summary = "æ´æ°çæ ·è®°å½") |
| | | @PreAuthorize("@ss.hasPermission('mes:qc-retention-sample:update')") |
| | | public CommonResult<Boolean> updateRetentionSample( |
| | | @Valid @RequestBody MesQcRetentionSampleSaveReqVO updateReqVO) { |
| | | retentionSampleService.updateRetentionSample(updateReqVO); |
| | | return success(true); |
| | | } |
| | | |
| | | @DeleteMapping("/delete") |
| | | @Operation(summary = "å é¤çæ ·è®°å½") |
| | | @Parameter(name = "id", description = "ç¼å·", required = true) |
| | | @PreAuthorize("@ss.hasPermission('mes:qc-retention-sample:delete')") |
| | | public CommonResult<Boolean> deleteRetentionSample(@RequestParam("id") Long id) { |
| | | retentionSampleService.deleteRetentionSample(id); |
| | | return success(true); |
| | | } |
| | | |
| | | @GetMapping("/get") |
| | | @Operation(summary = "è·å¾çæ ·è®°å½è¯¦æ
") |
| | | @Parameter(name = "id", description = "ç¼å·", required = true, example = "1024") |
| | | @PreAuthorize("@ss.hasPermission('mes:qc-retention-sample:query')") |
| | | public CommonResult<MesQcRetentionSampleRespVO> getRetentionSample(@RequestParam("id") Long id) { |
| | | MesQcRetentionSampleDO sample = retentionSampleService.getRetentionSample(id); |
| | | return success(buildRetentionSampleRespVOList(Collections.singletonList(sample)).get(0)); |
| | | } |
| | | |
| | | @GetMapping("/page") |
| | | @Operation(summary = "è·å¾çæ ·è®°å½å页") |
| | | @PreAuthorize("@ss.hasPermission('mes:qc-retention-sample:query')") |
| | | public CommonResult<PageResult<MesQcRetentionSampleRespVO>> getRetentionSamplePage( |
| | | @Valid MesQcRetentionSamplePageReqVO pageReqVO) { |
| | | PageResult<MesQcRetentionSampleDO> pageResult = |
| | | retentionSampleService.getRetentionSamplePage(pageReqVO); |
| | | return success(new PageResult<>(buildRetentionSampleRespVOList(pageResult.getList()), |
| | | pageResult.getTotal())); |
| | | } |
| | | |
| | | // ==================== æ¼æ¥ VO ==================== |
| | | |
| | | private List<MesQcRetentionSampleRespVO> buildRetentionSampleRespVOList( |
| | | List<MesQcRetentionSampleDO> list) { |
| | | if (CollUtil.isEmpty(list)) { |
| | | return Collections.emptyList(); |
| | | } |
| | | Map<Long, MesMdItemDO> itemMap = itemService.getItemMap( |
| | | convertSet(list, MesQcRetentionSampleDO::getProductId)); |
| | | Set<Long> keeperUserIds = convertSet(list, MesQcRetentionSampleDO::getKeeperUserId); |
| | | Map<Long, AdminUserRespDTO> keeperMap = CollUtil.isNotEmpty(keeperUserIds) |
| | | ? adminUserApi.getUserMap(keeperUserIds) : Collections.emptyMap(); |
| | | return BeanUtils.toBean(list, MesQcRetentionSampleRespVO.class, vo -> { |
| | | findAndThen(itemMap, vo.getProductId(), item -> { |
| | | vo.setProductCode(item.getCode()); |
| | | vo.setProductName(item.getName()); |
| | | vo.setProductSpecification(item.getSpecification()); |
| | | }); |
| | | findAndThen(keeperMap, vo.getKeeperUserId(), |
| | | user -> vo.setKeeperNickname(user.getNickname())); |
| | | }); |
| | | } |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.controller.admin.qc.retentionsample.vo; |
| | | |
| | | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | import lombok.ToString; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | import java.time.LocalDateTime; |
| | | |
| | | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| | | |
| | | @Schema(description = "管çåå° - MES çæ ·è®°å½å页 Request VO") |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = true) |
| | | @ToString(callSuper = true) |
| | | public class MesQcRetentionSamplePageReqVO extends PageParam { |
| | | |
| | | @Schema(description = "çæ ·ç¼å·", example = "LY202611050001") |
| | | private String code; |
| | | |
| | | @Schema(description = "ç产工åç¼å·", example = "WO202611050001") |
| | | private String workOrderCode; |
| | | |
| | | @Schema(description = "ç产工åID", example = "1024") |
| | | private Long workOrderId; |
| | | |
| | | @Schema(description = "éå®è®¢åID", example = "2048") |
| | | private Long saleOrderId; |
| | | |
| | | @Schema(description = "éå®è®¢åå·", example = "SO202611050001") |
| | | private String saleOrderNo; |
| | | |
| | | @Schema(description = "产åID", example = "88") |
| | | private Long productId; |
| | | |
| | | @Schema(description = "çäº§æ¹æ¬¡å·", example = "B20261105001") |
| | | private String batchCode; |
| | | |
| | | @Schema(description = "çæ ·äººç¨æ·ID", example = "1") |
| | | private Long keeperUserId; |
| | | |
| | | @Schema(description = "çæ ·æ¥æ") |
| | | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| | | private LocalDateTime[] sampleDate; |
| | | |
| | | @Schema(description = "çæ ·å°ææ¥æ") |
| | | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| | | private LocalDateTime[] expiryDate; |
| | | |
| | | @Schema(description = "å建æ¶é´") |
| | | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| | | private LocalDateTime[] createTime; |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.controller.admin.qc.retentionsample.vo; |
| | | |
| | | import cn.idev.excel.annotation.ExcelIgnoreUnannotated; |
| | | import cn.idev.excel.annotation.ExcelProperty; |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import lombok.Data; |
| | | |
| | | import java.time.LocalDateTime; |
| | | |
| | | @Schema(description = "管çåå° - MES çæ ·è®°å½ Response VO") |
| | | @Data |
| | | @ExcelIgnoreUnannotated |
| | | public class MesQcRetentionSampleRespVO { |
| | | |
| | | @Schema(description = "ç¼å·", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") |
| | | @ExcelProperty("ç¼å·") |
| | | private Long id; |
| | | |
| | | @Schema(description = "çæ ·ç¼å·", requiredMode = Schema.RequiredMode.REQUIRED, example = "LY202611050001") |
| | | @ExcelProperty("çæ ·ç¼å·") |
| | | private String code; |
| | | |
| | | @Schema(description = "ç产工åID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") |
| | | private Long workOrderId; |
| | | |
| | | @Schema(description = "ç产工åç¼å·", requiredMode = Schema.RequiredMode.REQUIRED, example = "WO202611050001") |
| | | @ExcelProperty("ç产工åç¼å·") |
| | | private String workOrderCode; |
| | | |
| | | @Schema(description = "éå®è®¢åID", example = "2048") |
| | | private Long saleOrderId; |
| | | |
| | | @Schema(description = "éå®è®¢åå·", example = "SO202611050001") |
| | | @ExcelProperty("éå®è®¢åå·") |
| | | private String saleOrderNo; |
| | | |
| | | @Schema(description = "产åID", requiredMode = Schema.RequiredMode.REQUIRED, example = "88") |
| | | private Long productId; |
| | | |
| | | @Schema(description = "产åç¼ç ", example = "P001") |
| | | @ExcelProperty("产åç¼ç ") |
| | | private String productCode; |
| | | |
| | | @Schema(description = "产ååç§°", example = "èªçç«é
") |
| | | @ExcelProperty("产ååç§°") |
| | | private String productName; |
| | | |
| | | @Schema(description = "è§æ ¼åå·", example = "400g/ç") |
| | | private String productSpecification; |
| | | |
| | | @Schema(description = "çäº§æ¹æ¬¡å·", example = "B20261105001") |
| | | @ExcelProperty("çäº§æ¹æ¬¡å·") |
| | | private String batchCode; |
| | | |
| | | @Schema(description = "çæ ·æ°é", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") |
| | | @ExcelProperty("çæ ·æ°é") |
| | | private Integer sampleQuantity; |
| | | |
| | | @Schema(description = "çæ ·æ¥æ", requiredMode = Schema.RequiredMode.REQUIRED) |
| | | @ExcelProperty("çæ ·æ¥æ") |
| | | private LocalDateTime sampleDate; |
| | | |
| | | @Schema(description = "çæ ·å°ææ¥æ", requiredMode = Schema.RequiredMode.REQUIRED) |
| | | @ExcelProperty("çæ ·å°ææ¥æ") |
| | | private LocalDateTime expiryDate; |
| | | |
| | | @Schema(description = "çæ ·äººç¨æ·ID", example = "1") |
| | | private Long keeperUserId; |
| | | |
| | | @Schema(description = "çæ ·äºº", example = "å¼ ä¸") |
| | | @ExcelProperty("çæ ·äºº") |
| | | private String keeperNickname; |
| | | |
| | | @Schema(description = "夿³¨", example = "çæ · 2 ä»¶ï¼å¸¸æ¸©ä¿å") |
| | | @ExcelProperty("夿³¨") |
| | | private String remark; |
| | | |
| | | @Schema(description = "å建æ¶é´", requiredMode = Schema.RequiredMode.REQUIRED) |
| | | @ExcelProperty("å建æ¶é´") |
| | | private LocalDateTime createTime; |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.controller.admin.qc.retentionsample.vo; |
| | | |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import jakarta.validation.constraints.Min; |
| | | import jakarta.validation.constraints.NotNull; |
| | | import lombok.Data; |
| | | |
| | | import java.time.LocalDateTime; |
| | | |
| | | @Schema(description = "管çåå° - MES çæ ·è®°å½æ°å¢/ä¿®æ¹ Request VO") |
| | | @Data |
| | | public class MesQcRetentionSampleSaveReqVO { |
| | | |
| | | @Schema(description = "ç¼å·", example = "1024") |
| | | private Long id; |
| | | |
| | | @Schema(description = "ç产工åID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") |
| | | @NotNull(message = "ç产工åä¸è½ä¸ºç©º") |
| | | private Long workOrderId; |
| | | |
| | | @Schema(description = "éå®è®¢åID", example = "2048") |
| | | private Long saleOrderId; |
| | | |
| | | @Schema(description = "çæ ·æ°é", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") |
| | | @NotNull(message = "çæ ·æ°éä¸è½ä¸ºç©º") |
| | | @Min(value = 1, message = "çæ ·æ°éå¿
é¡»å¤§äº 0") |
| | | private Integer sampleQuantity; |
| | | |
| | | @Schema(description = "çæ ·æ¥æ", requiredMode = Schema.RequiredMode.REQUIRED) |
| | | @NotNull(message = "çæ ·æ¥æä¸è½ä¸ºç©º") |
| | | private LocalDateTime sampleDate; |
| | | |
| | | @Schema(description = "çæ ·å°ææ¥æï¼ä¸ºç©ºæ¶æçæ ·æ¥æ + 6 个æèªå¨è®¡ç®ï¼") |
| | | private LocalDateTime expiryDate; |
| | | |
| | | @Schema(description = "çæ ·äººç¨æ·ID", example = "1") |
| | | private Long keeperUserId; |
| | | |
| | | @Schema(description = "夿³¨", example = "çæ · 2 ä»¶ï¼å¸¸æ¸©ä¿å") |
| | | private String remark; |
| | | |
| | | } |
| | |
| | | import cn.iocoder.yudao.module.mdm.api.item.MdmItemApi; |
| | | import cn.iocoder.yudao.module.mdm.api.item.dto.MdmItemRespDTO; |
| | | |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.packages.MesWmPackageLineDO; |
| | | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; |
| | | import cn.iocoder.yudao.module.mdm.api.unit.MdmUnitMeasureApi; |
| | | import cn.iocoder.yudao.module.mdm.api.unit.dto.MdmUnitMeasureRespDTO; |
| | | |
| | |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | |
| | | private MdmUnitMeasureApi mdmUnitMeasureApi; |
| | | @Resource |
| | | private MesProWorkOrderService workOrderService; |
| | | @Resource |
| | | private MesMdItemService mdItemService; |
| | | |
| | | @PostMapping("/create") |
| | | @Operation(summary = "å建è£
ç®±æç»") |
| | |
| | | // æ¹éæ¥è¯¢å·¥å |
| | | Map<Long, MesProWorkOrderDO> workOrderMap = workOrderService.getWorkOrderMap( |
| | | convertSet(list, MesWmPackageLineDO::getWorkOrderId)); |
| | | // æ¹éæ¥è¯¢ MES ç©æï¼åæ¯ç®±æ°éï¼è®¡ç®å°¾ç®±æ°éï¼ |
| | | Map<Long, MesMdItemDO> mdItemMap = mdItemService.getItemMap( |
| | | convertSet(list, MesWmPackageLineDO::getItemId)); |
| | | // æ¼æ¥æ°æ® |
| | | return BeanUtils.toBean(list, MesWmPackageLineRespVO.class, vo -> { |
| | | MapUtils.findAndThen(itemMap, vo.getItemId(), item -> { |
| | |
| | | MapUtils.findAndThen(workOrderMap, vo.getWorkOrderId(), |
| | | workOrder -> vo.setWorkOrderCode(workOrder.getCode()) |
| | | .setBatchCode(workOrder.getBatchCode())); |
| | | // 尾箱æ°éï¼æåä¸ç®±å®é
è£
çæ°éï¼å好æ´ç®±æ¶åæ¯ç®±æ°éï¼å¹¶æ 记满è£
|
| | | MapUtils.findAndThen(mdItemMap, vo.getItemId(), item -> { |
| | | BigDecimal boxQuantity = item.getBoxQuantity(); |
| | | if (boxQuantity == null || boxQuantity.compareTo(BigDecimal.ZERO) <= 0 |
| | | || vo.getQuantity() == null) { |
| | | return; |
| | | } |
| | | BigDecimal remainder = vo.getQuantity().remainder(boxQuantity); |
| | | boolean full = remainder.compareTo(BigDecimal.ZERO) == 0; |
| | | BigDecimal tailBoxQuantity = (full ? boxQuantity : remainder).stripTrailingZeros(); |
| | | if (tailBoxQuantity.scale() < 0) { |
| | | tailBoxQuantity = tailBoxQuantity.setScale(0); |
| | | } |
| | | vo.setTailBoxQuantity(tailBoxQuantity).setTailBoxFull(full); |
| | | }); |
| | | }); |
| | | } |
| | | |
| | |
| | | @ExcelProperty("è£
ç®±æ¥æ") |
| | | private LocalDateTime packageDate; |
| | | |
| | | @Schema(description = "éå®è®¢å ID", example = "102") |
| | | private Long saleOrderId; |
| | | |
| | | @Schema(description = "éå®è®¢åç¼å·", example = "SO20260301") |
| | | @ExcelProperty("éå®è®¢åç¼å·") |
| | | private String salesOrderCode; |
| | |
| | | @NotNull(message = "è£
ç®±æ¥æä¸è½ä¸ºç©º") |
| | | private LocalDateTime packageDate; |
| | | |
| | | @Schema(description = "éå®è®¢å ID", example = "102") |
| | | private Long saleOrderId; |
| | | |
| | | @Schema(description = "éå®è®¢åç¼å·", example = "SO20260301") |
| | | private String salesOrderCode; |
| | | |
| | |
| | | @Schema(description = "è£
ç®±æ°é", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00") |
| | | private BigDecimal quantity; |
| | | |
| | | @Schema(description = "ç®±æ°", example = "10") |
| | | private Integer boxCount; |
| | | |
| | | @Schema(description = "尾箱æ°éï¼æåä¸ç®±å®é
è£
çæ°éï¼", example = "10") |
| | | private BigDecimal tailBoxQuantity; |
| | | |
| | | @Schema(description = "尾箱æ¯å¦æ»¡è£
", example = "false") |
| | | private Boolean tailBoxFull; |
| | | |
| | | @Schema(description = "ç产工å ID", example = "1") |
| | | private Long workOrderId; |
| | | |
| | |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.MesWmProductSalesRespVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.MesWmProductSalesSaveReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.MesWmProductSalesShippingReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.MesWmProductSalesStatisticsPageReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.MesWmProductSalesStatisticsRespVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productsales.MesWmProductSalesDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.salesnotice.MesWmSalesNoticeDO; |
| | | import cn.iocoder.yudao.module.mes.service.wm.productsales.MesWmProductSalesService; |
| | | import cn.iocoder.yudao.module.mes.service.wm.salesnotice.MesWmSalesNoticeService; |
| | | import cn.iocoder.yudao.module.mdm.api.item.MdmItemApi; |
| | | import cn.iocoder.yudao.module.mdm.api.item.dto.MdmItemRespDTO; |
| | | import cn.iocoder.yudao.module.mdm.api.unit.MdmUnitMeasureApi; |
| | | import cn.iocoder.yudao.module.mdm.api.unit.dto.MdmUnitMeasureRespDTO; |
| | | import io.swagger.v3.oas.annotations.Operation; |
| | | import io.swagger.v3.oas.annotations.Parameter; |
| | | import io.swagger.v3.oas.annotations.tags.Tag; |
| | |
| | | |
| | | import java.io.IOException; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; |
| | | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| | |
| | | private CrmCustomerApi crmCustomerApi; |
| | | @Resource |
| | | private MesWmSalesNoticeService salesNoticeService; |
| | | @Resource |
| | | private MdmItemApi mdmItemApi; |
| | | @Resource |
| | | private MdmUnitMeasureApi mdmUnitMeasureApi; |
| | | |
| | | @PostMapping("/create") |
| | | @Operation(summary = "å建éå®åºåºå") |
| | |
| | | @Valid MesWmProductSalesPageReqVO pageReqVO) { |
| | | PageResult<MesWmProductSalesDO> pageResult = productSalesService.getProductSalesPage(pageReqVO); |
| | | return success(new PageResult<>(buildRespVOList(pageResult.getList()), pageResult.getTotal())); |
| | | } |
| | | |
| | | @GetMapping("/statistics-page") |
| | | @Operation(summary = "è·å¾åè´§ç»è®¡å页") |
| | | public CommonResult<PageResult<MesWmProductSalesStatisticsRespVO>> getProductSalesStatisticsPage( |
| | | @Valid MesWmProductSalesStatisticsPageReqVO pageReqVO) { |
| | | PageResult<MesWmProductSalesStatisticsRespVO> pageResult = |
| | | productSalesService.getProductSalesStatisticsPage(pageReqVO); |
| | | return success(new PageResult<>(buildStatisticsRespVOList(pageResult.getList()), pageResult.getTotal())); |
| | | } |
| | | |
| | | @GetMapping("/export-excel") |
| | |
| | | |
| | | // ==================== æ¼æ¥ VO ==================== |
| | | |
| | | private List<MesWmProductSalesStatisticsRespVO> buildStatisticsRespVOList( |
| | | List<MesWmProductSalesStatisticsRespVO> list) { |
| | | if (CollUtil.isEmpty(list)) { |
| | | return Collections.emptyList(); |
| | | } |
| | | // æ¹éæ¥è¯¢å®¢æ· |
| | | Map<Long, CrmCustomerRespDTO> customerMap = crmCustomerApi.getCustomerMap( |
| | | convertSet(list, MesWmProductSalesStatisticsRespVO::getClientId)); |
| | | // æ¹éæ¥è¯¢ç©æä¸è®¡éåä½ |
| | | Map<Long, MdmItemRespDTO> itemMap = mdmItemApi.getItemMap( |
| | | convertSet(list, MesWmProductSalesStatisticsRespVO::getItemId)); |
| | | Map<Long, MdmUnitMeasureRespDTO> unitMeasureMap = mdmUnitMeasureApi.getUnitMeasureList( |
| | | convertSet(itemMap.values(), MdmItemRespDTO::getUnitMeasureId)).getCheckedData() |
| | | .stream().collect(Collectors.toMap(MdmUnitMeasureRespDTO::getId, e -> e)); |
| | | // æ¼æ¥åç§° |
| | | list.forEach(vo -> { |
| | | MapUtils.findAndThen(customerMap, vo.getClientId(), customer -> vo.setClientName(customer.getName())); |
| | | MapUtils.findAndThen(itemMap, vo.getItemId(), item -> { |
| | | vo.setItemCode(item.getCode()).setItemName(item.getName()) |
| | | .setSpecification(item.getSpecification()); |
| | | MapUtils.findAndThen(unitMeasureMap, item.getUnitMeasureId(), |
| | | unitMeasure -> vo.setUnitMeasureName(unitMeasure.getName())); |
| | | }); |
| | | }); |
| | | return list; |
| | | } |
| | | |
| | | private List<MesWmProductSalesRespVO> buildRespVOList(List<MesWmProductSalesDO> list) { |
| | | if (CollUtil.isEmpty(list)) { |
| | | return Collections.emptyList(); |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo; |
| | | |
| | | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | import lombok.ToString; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | import java.time.LocalDateTime; |
| | | |
| | | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| | | |
| | | @Schema(description = "管çåå° - MES åè´§ç»è®¡å页 Request VO") |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = true) |
| | | @ToString(callSuper = true) |
| | | public class MesWmProductSalesStatisticsPageReqVO extends PageParam { |
| | | |
| | | @Schema(description = "客æ·ç¼å·", example = "1") |
| | | private Long clientId; |
| | | |
| | | @Schema(description = "éå®è®¢åå·", example = "SO-001") |
| | | private String salesOrderCode; |
| | | |
| | | @Schema(description = "ç©æç¼å·", example = "1") |
| | | private Long itemId; |
| | | |
| | | @Schema(description = "åè´§æ¥æ") |
| | | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| | | private LocalDateTime[] shipmentDate; |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo; |
| | | |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDateTime; |
| | | |
| | | @Schema(description = "管çåå° - MES åè´§ç»è®¡ Response VO") |
| | | @Data |
| | | @Accessors(chain = true) |
| | | public class MesWmProductSalesStatisticsRespVO { |
| | | |
| | | @Schema(description = "客æ·ç¼å·", example = "1") |
| | | private Long clientId; |
| | | |
| | | @Schema(description = "客æ·åç§°", example = "å®¢æ· A") |
| | | private String clientName; |
| | | |
| | | @Schema(description = "éå®è®¢åå·", example = "SO-001") |
| | | private String salesOrderCode; |
| | | |
| | | @Schema(description = "ç©æç¼å·", example = "1") |
| | | private Long itemId; |
| | | |
| | | @Schema(description = "ç©æç¼ç ", example = "M001") |
| | | private String itemCode; |
| | | |
| | | @Schema(description = "ç©æåç§°", example = "产åA") |
| | | private String itemName; |
| | | |
| | | @Schema(description = "è§æ ¼åå·", example = "100g") |
| | | private String specification; |
| | | |
| | | @Schema(description = "åä½åç§°", example = "个") |
| | | private String unitMeasureName; |
| | | |
| | | @Schema(description = "åè´§æ°éå计", example = "100") |
| | | private BigDecimal totalQuantity; |
| | | |
| | | @Schema(description = "åè´§ç®±æ°å计", example = "10") |
| | | private Integer totalBoxCount; |
| | | |
| | | @Schema(description = "åè´§åæ°", example = "2") |
| | | private Long shipmentCount; |
| | | |
| | | @Schema(description = "æè¿åè´§æ¥æ") |
| | | private LocalDateTime lastShipmentDate; |
| | | |
| | | } |
| | |
| | | @Schema(description = "åºåºæ°é", example = "100") |
| | | private BigDecimal quantity; |
| | | |
| | | @Schema(description = "ç®±æ°", example = "10") |
| | | private Integer boxCount; |
| | | |
| | | @Schema(description = "æ¹æ¬¡ID", example = "1") |
| | | private Long batchId; |
| | | |
| | |
| | | */ |
| | | private Long itemTypeId; |
| | | /** |
| | | * æ¯ç®±æ°é |
| | | * |
| | | * è£
ç®±æ¶æ æ°é / æ¯ç®±æ°é åä¸åæ´èªå¨è®¡ç®ç®±æ° |
| | | */ |
| | | private BigDecimal boxQuantity; |
| | | /** |
| | | * ç¶æ |
| | | * |
| | | * æä¸¾ {@link cn.iocoder.yudao.framework.common.enums.CommonStatusEnum} |
| | |
| | | */ |
| | | private BigDecimal maxStock; |
| | | /** |
| | | * é»è®¤è¶
èæ¥è¦æ¯ä¾ï¼%ï¼ |
| | | * |
| | | * 为空æ¶åå
¨å±é
ç½® mes.pro-over-consume.default-ratio |
| | | */ |
| | | private BigDecimal overConsumeRatio; |
| | | /** |
| | | * æ¯å¦é«å¼ç©æ |
| | | */ |
| | | private Boolean highValue; |
| | |
| | | */ |
| | | private String itemOrProduct; |
| | | /** |
| | | * æ¯å¦æååç±» |
| | | * |
| | | * åªææååç±»ä¸çç©æå
许è£
ç®± |
| | | */ |
| | | private Boolean finishedFlag; |
| | | /** |
| | | * æ¾ç¤ºæåº |
| | | */ |
| | | private Integer sort; |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.dal.dataobject.pro.alert; |
| | | |
| | | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; |
| | | import com.baomidou.mybatisplus.annotation.KeySequence; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.*; |
| | | |
| | | import java.math.BigDecimal; |
| | | |
| | | /** |
| | | * MES å·¥åç©æè¶
èæ¥è¦è®°å½ DO |
| | | * |
| | | * @author è¶
级管çå |
| | | */ |
| | | @TableName("mes_pro_over_consume_alert") |
| | | @KeySequence("mes_pro_over_consume_alert_seq") |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = true) |
| | | @ToString(callSuper = true) |
| | | @Builder |
| | | @NoArgsConstructor |
| | | @AllArgsConstructor |
| | | public class MesProOverConsumeAlertDO extends BaseDO { |
| | | |
| | | /** |
| | | * ç¼å· |
| | | */ |
| | | @TableId |
| | | private Long id; |
| | | /** |
| | | * ç产工åç¼å· |
| | | */ |
| | | private Long workOrderId; |
| | | /** |
| | | * ç产工åç¼ç |
| | | */ |
| | | private String workOrderCode; |
| | | /** |
| | | * 产åç¼å· |
| | | */ |
| | | private Long productId; |
| | | /** |
| | | * 产ååç§° |
| | | */ |
| | | private String productName; |
| | | /** |
| | | * ç©æç¼å· |
| | | */ |
| | | private Long itemId; |
| | | /** |
| | | * ç©æç¼ç |
| | | */ |
| | | private String itemCode; |
| | | /** |
| | | * ç©æåç§° |
| | | */ |
| | | private String itemName; |
| | | /** |
| | | * æ åç¨éï¼æå·²æ¥å·¥æ°éï¼ |
| | | */ |
| | | private BigDecimal standardQuantity; |
| | | /** |
| | | * å®é
ç¨é |
| | | */ |
| | | private BigDecimal actualQuantity; |
| | | /** |
| | | * è¶
èæ°é |
| | | */ |
| | | private BigDecimal overQuantity; |
| | | /** |
| | | * è¶
èæ¯ä¾ï¼%ï¼ |
| | | */ |
| | | private BigDecimal overRatio; |
| | | /** |
| | | * æ¥è¦éå¼ï¼%ï¼ |
| | | */ |
| | | private BigDecimal thresholdRatio; |
| | | /** |
| | | * ç©æåä»· |
| | | */ |
| | | private BigDecimal unitPrice; |
| | | /** |
| | | * è¶
èéé¢ |
| | | */ |
| | | private BigDecimal overAmount; |
| | | /** |
| | | * æ¥æ¶äººç¨æ·ç¼å·ï¼éå·åéï¼ |
| | | */ |
| | | private String notifyUserIds; |
| | | /** |
| | | * ç«å
ä¿¡æ¶æ¯ç¼å· |
| | | */ |
| | | private Long messageId; |
| | | /** |
| | | * åéç¶æï¼SENT / FAILED |
| | | */ |
| | | private String status; |
| | | /** |
| | | * 失败åå |
| | | */ |
| | | private String errorMessage; |
| | | |
| | | } |
| | |
| | | */ |
| | | private BigDecimal quantityScheduled; |
| | | /** |
| | | * è¶
èæ¥è¦æ¯ä¾ï¼%ï¼ |
| | | * |
| | | * 为空æ¶å产åé»è®¤æ¯ä¾ï¼å为空åå
¨å±é
ç½® mes.pro-over-consume.default-ratio |
| | | */ |
| | | private BigDecimal overConsumeRatio; |
| | | /** |
| | | * æ åç©æææ¬ï¼æè®¡åæ°éï¼ |
| | | */ |
| | | private BigDecimal standardMaterialCost; |
| | | /** |
| | | * å®é
ç©æææ¬ï¼å·²åçæ¶èï¼ |
| | | */ |
| | | private BigDecimal actualMaterialCost; |
| | | /** |
| | | * è¶
èç©æææ¬ |
| | | */ |
| | | private BigDecimal overConsumeCost; |
| | | /** |
| | | * ç©æå使æ¬ï¼å®é
ç©æææ¬ / å·²æ¥å·¥æ°éï¼ |
| | | */ |
| | | private BigDecimal materialUnitCost; |
| | | /** |
| | | * ææ¬è®¡ç®æ¶é´ |
| | | */ |
| | | private LocalDateTime costUpdateTime; |
| | | /** |
| | | * å·²è£
ç®±æ°é |
| | | */ |
| | | private BigDecimal packedQuantity; |
| | | /** |
| | | * å·²è£
ç®±ç®±æ° |
| | | */ |
| | | private Integer packedBoxCount; |
| | | /** |
| | | * è£
ç®±ç¶æ |
| | | * |
| | | * åå
¸ {@link DictTypeConstants#MES_PRO_WORK_ORDER_PACKING_STATUS} |
| | | * 0=æªè£
ç®± 1=é¨åå·²è£
ç®± 2=å·²è£
ç®±å®æ |
| | | */ |
| | | private Integer packingStatus; |
| | | /** |
| | | * 客æ·ç¼å· |
| | | * |
| | | * å
³è CRM å®¢æ· {@link cn.iocoder.yudao.module.crm.api.customer.dto.CrmCustomerRespDTO#getId()} |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.dal.dataobject.qc.retentionsample; |
| | | |
| | | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO; |
| | | import com.baomidou.mybatisplus.annotation.KeySequence; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.*; |
| | | |
| | | import java.time.LocalDateTime; |
| | | |
| | | /** |
| | | * MES çæ ·è®°å½ DO |
| | | * |
| | | * @author è¶
级管çå |
| | | */ |
| | | @TableName("mes_qc_retention_sample") |
| | | @KeySequence("mes_qc_retention_sample_seq") |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = true) |
| | | @ToString(callSuper = true) |
| | | @Builder |
| | | @NoArgsConstructor |
| | | @AllArgsConstructor |
| | | public class MesQcRetentionSampleDO extends BaseDO { |
| | | |
| | | /** |
| | | * ç¼å· |
| | | */ |
| | | @TableId |
| | | private Long id; |
| | | /** |
| | | * çæ ·ç¼å· |
| | | */ |
| | | private String code; |
| | | /** |
| | | * ç产工å ID |
| | | * |
| | | * å
³è {@link MesProWorkOrderDO#getId()} |
| | | */ |
| | | private Long workOrderId; |
| | | /** |
| | | * ç产工åç¼å·ï¼åä½ï¼ |
| | | */ |
| | | private String workOrderCode; |
| | | /** |
| | | * éå®è®¢å ID |
| | | */ |
| | | private Long saleOrderId; |
| | | /** |
| | | * éå®è®¢åå·ï¼åä½ï¼ |
| | | */ |
| | | private String saleOrderNo; |
| | | /** |
| | | * 产å ID |
| | | * |
| | | * å
³è {@link MesMdItemDO#getId()} |
| | | */ |
| | | private Long productId; |
| | | /** |
| | | * çäº§æ¹æ¬¡å· |
| | | */ |
| | | private String batchCode; |
| | | /** |
| | | * çæ ·æ°é |
| | | */ |
| | | private Integer sampleQuantity; |
| | | /** |
| | | * çæ ·æ¥æ |
| | | */ |
| | | private LocalDateTime sampleDate; |
| | | /** |
| | | * çæ ·å°ææ¥æ |
| | | */ |
| | | private LocalDateTime expiryDate; |
| | | /** |
| | | * çæ ·äººç¨æ· ID |
| | | */ |
| | | private Long keeperUserId; |
| | | /** |
| | | * 夿³¨ |
| | | */ |
| | | private String remark; |
| | | |
| | | } |
| | |
| | | */ |
| | | private LocalDateTime packageDate; |
| | | /** |
| | | * éå®è®¢å ID |
| | | * |
| | | * å
³è ERP éå®è®¢å {@link cn.iocoder.yudao.module.erp.dal.dataobject.sale.ErpSaleOrderDO#getId()} |
| | | */ |
| | | private Long saleOrderId; |
| | | /** |
| | | * éå®è®¢åç¼å· |
| | | */ |
| | | private String salesOrderCode; |
| | |
| | | * è£
ç®±æ°é |
| | | */ |
| | | private BigDecimal quantity; |
| | | /** |
| | | * ç®±æ° |
| | | * |
| | | * æ è£
ç®±æ°é / ç©ææ¯ç®±æ°é åä¸åæ´èªå¨è®¡ç® |
| | | */ |
| | | private Integer boxCount; |
| | | // DONE @èè¿ï¼éè¦å¨ç¡®è®¤ä¸ï¼ |
| | | /** |
| | | * ç产工å ID |
| | |
| | | */ |
| | | private BigDecimal quantity; |
| | | /** |
| | | * ç®±æ° |
| | | * |
| | | * æ åºåºæ°é / ç©ææ¯ç®±æ°é åä¸åæ´èªå¨è®¡ç® |
| | | */ |
| | | private Integer boxCount; |
| | | /** |
| | | * æ¹æ¬¡ ID |
| | | * |
| | | * å
³è {@link MesWmBatchDO#getId()} |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.dal.mysql.pro.alert; |
| | | |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |
| | | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.alert.vo.MesProOverConsumeAlertPageReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.alert.MesProOverConsumeAlertDO; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * MES å·¥åç©æè¶
èæ¥è¦è®°å½ Mapper |
| | | * |
| | | * @author è¶
级管çå |
| | | */ |
| | | @Mapper |
| | | public interface MesProOverConsumeAlertMapper extends BaseMapperX<MesProOverConsumeAlertDO> { |
| | | |
| | | default PageResult<MesProOverConsumeAlertDO> selectPage(MesProOverConsumeAlertPageReqVO reqVO) { |
| | | return selectPage(reqVO, new LambdaQueryWrapperX<MesProOverConsumeAlertDO>() |
| | | .eqIfPresent(MesProOverConsumeAlertDO::getWorkOrderId, reqVO.getWorkOrderId()) |
| | | .eqIfPresent(MesProOverConsumeAlertDO::getItemId, reqVO.getItemId()) |
| | | .eqIfPresent(MesProOverConsumeAlertDO::getStatus, reqVO.getStatus()) |
| | | .betweenIfPresent(MesProOverConsumeAlertDO::getCreateTime, reqVO.getCreateTime()) |
| | | .orderByDesc(MesProOverConsumeAlertDO::getId)); |
| | | } |
| | | |
| | | default List<MesProOverConsumeAlertDO> selectListByWorkOrderId(Long workOrderId) { |
| | | return selectList(new LambdaQueryWrapperX<MesProOverConsumeAlertDO>() |
| | | .eq(MesProOverConsumeAlertDO::getWorkOrderId, workOrderId) |
| | | .orderByDesc(MesProOverConsumeAlertDO::getId)); |
| | | } |
| | | |
| | | default MesProOverConsumeAlertDO selectByWorkOrderIdAndItemId(Long workOrderId, Long itemId) { |
| | | return selectOne(new LambdaQueryWrapperX<MesProOverConsumeAlertDO>() |
| | | .eq(MesProOverConsumeAlertDO::getWorkOrderId, workOrderId) |
| | | .eq(MesProOverConsumeAlertDO::getItemId, itemId) |
| | | .last("LIMIT 1")); |
| | | } |
| | | |
| | | } |
| | |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.feedback.vo.MesProFeedbackPageReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.feedback.MesProFeedbackDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.task.MesProTaskDO; |
| | | import cn.iocoder.yudao.module.mes.enums.pro.MesProFeedbackStatusEnum; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Collection; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * MES ç产æ¥å·¥ Mapper |
| | |
| | | .in(MesProFeedbackDO::getTaskId, taskIds)); |
| | | } |
| | | |
| | | /** |
| | | * æ±æ»æå®å·¥åãæå®å·¥åºä¸å·²å®ææ¥å·¥çåæ ¼æ°é |
| | | * |
| | | * @param workOrderId ç产工åç¼å· |
| | | * @param processIds å·¥åºç¼å·éå |
| | | * @return åæ ¼æ°éå计 |
| | | */ |
| | | default BigDecimal selectFinishedQualifiedQuantitySum(Long workOrderId, Collection<Long> processIds) { |
| | | return selectList(new LambdaQueryWrapperX<MesProFeedbackDO>() |
| | | .eq(MesProFeedbackDO::getWorkOrderId, workOrderId) |
| | | .in(MesProFeedbackDO::getProcessId, processIds) |
| | | .eq(MesProFeedbackDO::getStatus, MesProFeedbackStatusEnum.FINISHED.getStatus())) |
| | | .stream() |
| | | .map(MesProFeedbackDO::getQualifiedQuantity) |
| | | .filter(Objects::nonNull) |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | } |
| | | |
| | | } |
| | |
| | | return selectOne(MesProMpsDO::getSaleOrderItemId, saleOrderItemId); |
| | | } |
| | | |
| | | /** |
| | | * æ ¹æ®å·¥å ID æ¥è¯¢ MPS å表ï¼åå¹¶ä¸åæ¶ä¸ä¸ªå·¥å对åºå¤æ¡ MPSï¼ |
| | | */ |
| | | default List<MesProMpsDO> selectListByWorkOrderId(Long workOrderId) { |
| | | return selectList(new LambdaQueryWrapperX<MesProMpsDO>() |
| | | .eq(MesProMpsDO::getWorkOrderId, workOrderId) |
| | | .orderByAsc(MesProMpsDO::getId)); |
| | | } |
| | | |
| | | default List<MesProMpsDO> selectListBySaleOrderItemIds(Collection<Long> saleOrderItemIds) { |
| | | if (saleOrderItemIds == null || saleOrderItemIds.isEmpty()) { |
| | | return Collections.emptyList(); |
| | |
| | | .eqIfPresent(MesProWorkOrderDO::getProductId, reqVO.getProductId()) |
| | | .eqIfPresent(MesProWorkOrderDO::getClientId, reqVO.getClientId()) |
| | | .eqIfPresent(MesProWorkOrderDO::getStatus, reqVO.getStatus()) |
| | | .eqIfPresent(MesProWorkOrderDO::getPackingStatus, reqVO.getPackingStatus()) |
| | | .betweenIfPresent(MesProWorkOrderDO::getRequestDate, reqVO.getRequestDate()) |
| | | .notIn(CollUtil.isNotEmpty(reqVO.getExcludeStatuses()), |
| | | MesProWorkOrderDO::getStatus, reqVO.getExcludeStatuses()) |
| | | .orderByDesc(MesProWorkOrderDO::getId)); |
| | | } |
| | | |
| | |
| | | .eqIfPresent(MesProWorkOrderDO::getProductId, reqVO.getProductId()) |
| | | .eqIfPresent(MesProWorkOrderDO::getClientId, reqVO.getClientId()) |
| | | .eqIfPresent(MesProWorkOrderDO::getStatus, reqVO.getStatus()) |
| | | .eqIfPresent(MesProWorkOrderDO::getPackingStatus, reqVO.getPackingStatus()) |
| | | .betweenIfPresent(MesProWorkOrderDO::getRequestDate, reqVO.getRequestDate()) |
| | | .orderByDesc(MesProWorkOrderDO::getId); |
| | | if (CollUtil.isNotEmpty(reqVO.getExcludeStatuses())) { |
| | | wrapper.notIn(MesProWorkOrderDO::getStatus, reqVO.getExcludeStatuses()); |
| | | } |
| | | if (permittedClientIds != null) { |
| | | if (CollUtil.isEmpty(permittedClientIds)) { |
| | | return PageResult.empty(); |
| | |
| | | return selectCount(MesProWorkOrderDO::getVendorId, vendorId); |
| | | } |
| | | |
| | | /** |
| | | * ç´¯å å·¥åçå·²è£
ç®±æ°éä¸å·²è£
ç®±ç®±æ° |
| | | */ |
| | | default void updatePackedQuantity(Long id, BigDecimal incrQuantity, Integer incrBoxCount) { |
| | | update(null, new LambdaUpdateWrapper<MesProWorkOrderDO>() |
| | | .eq(MesProWorkOrderDO::getId, id) |
| | | .setSql("packed_quantity = IFNULL(packed_quantity, 0) + " + incrQuantity.toPlainString()) |
| | | .setSql("packed_box_count = IFNULL(packed_box_count, 0) + " + incrBoxCount)); |
| | | } |
| | | |
| | | /** |
| | | * æ ¹æ®å·²è£
ç®±æ°ééç®è£
ç®±ç¶æï¼å·²è£
>= 工忰éä¸ºå®æ(2)ï¼é¨å为 1ï¼å¦å 0 |
| | | */ |
| | | default void updatePackingStatus(Long id) { |
| | | update(null, new LambdaUpdateWrapper<MesProWorkOrderDO>() |
| | | .eq(MesProWorkOrderDO::getId, id) |
| | | .setSql("packing_status = CASE WHEN IFNULL(packed_quantity, 0) >= IFNULL(quantity, 0) THEN 2 " |
| | | + "WHEN IFNULL(packed_quantity, 0) > 0 THEN 1 ELSE 0 END")); |
| | | } |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.dal.mysql.qc.retentionsample; |
| | | |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |
| | | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.qc.retentionsample.vo.MesQcRetentionSamplePageReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.qc.retentionsample.MesQcRetentionSampleDO; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | /** |
| | | * MES çæ ·è®°å½ Mapper |
| | | * |
| | | * @author è¶
级管çå |
| | | */ |
| | | @Mapper |
| | | public interface MesQcRetentionSampleMapper extends BaseMapperX<MesQcRetentionSampleDO> { |
| | | |
| | | default PageResult<MesQcRetentionSampleDO> selectPage(MesQcRetentionSamplePageReqVO reqVO) { |
| | | return selectPage(reqVO, new LambdaQueryWrapperX<MesQcRetentionSampleDO>() |
| | | .likeIfPresent(MesQcRetentionSampleDO::getCode, reqVO.getCode()) |
| | | .likeIfPresent(MesQcRetentionSampleDO::getWorkOrderCode, reqVO.getWorkOrderCode()) |
| | | .eqIfPresent(MesQcRetentionSampleDO::getWorkOrderId, reqVO.getWorkOrderId()) |
| | | .eqIfPresent(MesQcRetentionSampleDO::getSaleOrderId, reqVO.getSaleOrderId()) |
| | | .likeIfPresent(MesQcRetentionSampleDO::getSaleOrderNo, reqVO.getSaleOrderNo()) |
| | | .eqIfPresent(MesQcRetentionSampleDO::getProductId, reqVO.getProductId()) |
| | | .eqIfPresent(MesQcRetentionSampleDO::getBatchCode, reqVO.getBatchCode()) |
| | | .eqIfPresent(MesQcRetentionSampleDO::getKeeperUserId, reqVO.getKeeperUserId()) |
| | | .betweenIfPresent(MesQcRetentionSampleDO::getSampleDate, reqVO.getSampleDate()) |
| | | .betweenIfPresent(MesQcRetentionSampleDO::getExpiryDate, reqVO.getExpiryDate()) |
| | | .betweenIfPresent(MesQcRetentionSampleDO::getCreateTime, reqVO.getCreateTime()) |
| | | .orderByDesc(MesQcRetentionSampleDO::getId)); |
| | | } |
| | | |
| | | default MesQcRetentionSampleDO selectByCode(String code) { |
| | | return selectOne(MesQcRetentionSampleDO::getCode, code); |
| | | } |
| | | |
| | | default MesQcRetentionSampleDO selectByWorkOrderId(Long workOrderId) { |
| | | return selectOne(MesQcRetentionSampleDO::getWorkOrderId, workOrderId); |
| | | } |
| | | |
| | | } |
| | |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |
| | | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| | | import cn.iocoder.yudao.framework.mybatis.core.query.MPJLambdaWrapperX; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.itemconsume.vo.MesWmItemConsumeLinePageReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.itemconsume.vo.MesWmItemConsumeLineRespVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.itemconsume.MesWmItemConsumeDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.itemconsume.MesWmItemConsumeLineDO; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | |
| | | return selectList(MesWmItemConsumeLineDO::getConsumeId, consumeId); |
| | | } |
| | | |
| | | /** |
| | | * æ¥è¯¢æå®ç产工åçå
¨é¨ç©ææ¶èè¡ |
| | | */ |
| | | default List<MesWmItemConsumeLineDO> selectListByWorkOrderId(Long workOrderId) { |
| | | MPJLambdaWrapperX<MesWmItemConsumeLineDO> query = new MPJLambdaWrapperX<>(); |
| | | query.selectAll(MesWmItemConsumeLineDO.class); |
| | | query.innerJoin(MesWmItemConsumeDO.class, |
| | | MesWmItemConsumeDO::getId, MesWmItemConsumeLineDO::getConsumeId); |
| | | query.eq(MesWmItemConsumeDO::getWorkOrderId, workOrderId); |
| | | return selectJoinList(MesWmItemConsumeLineDO.class, query); |
| | | } |
| | | |
| | | } |
| | |
| | | delete(MesWmPackageLineDO::getPackageId, packageId); |
| | | } |
| | | |
| | | default java.util.List<MesWmPackageLineDO> selectListByPackageId(Long packageId) { |
| | | return selectList(MesWmPackageLineDO::getPackageId, packageId); |
| | | } |
| | | |
| | | default java.util.List<MesWmPackageLineDO> selectListByWorkOrderId(Long workOrderId) { |
| | | return selectList(MesWmPackageLineDO::getWorkOrderId, workOrderId); |
| | | } |
| | | |
| | | } |
| | |
| | | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |
| | | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.MesWmProductSalesPageReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.MesWmProductSalesStatisticsPageReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.MesWmProductSalesStatisticsRespVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productsales.MesWmProductSalesDO; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | |
| | |
| | | return selectList(MesWmProductSalesDO::getClientId, clientId); |
| | | } |
| | | |
| | | /** |
| | | * å页æ¥è¯¢åè´§ç»è®¡ï¼æ å®¢æ· + éå®è®¢åå· + ç©æ æ±æ»å·²å®æåºåºåçç®±æ°ä¸æ°é |
| | | */ |
| | | IPage<MesWmProductSalesStatisticsRespVO> selectStatisticsPage( |
| | | IPage<MesWmProductSalesStatisticsRespVO> page, |
| | | @Param("pageReqVO") MesWmProductSalesStatisticsPageReqVO pageReqVO); |
| | | |
| | | } |
| | |
| | | String MES_PRO_WORK_ORDER_STATUS = "mes_pro_work_order_status"; // MES ç产工åç¶æ |
| | | String MES_PRO_WORK_ORDER_SOURCE_TYPE = "mes_pro_work_order_source_type"; // MES 工忥æºç±»å |
| | | String MES_PRO_WORK_ORDER_TYPE = "mes_pro_work_order_type"; // MES å·¥åç±»å |
| | | String MES_PRO_WORK_ORDER_PACKING_STATUS = "mes_pro_work_order_packing_status"; // MES ç产工åè£
ç®±ç¶æ |
| | | String MES_PRO_MPS_STATUS = "mes_pro_mps_status"; // MES ç产主计åç¶æ |
| | | String MES_PRO_LINK_TYPE = "mes_pro_link_type"; // MES å·¥åºå
³ç³»ç±»å |
| | | String MES_TIME_UNIT_TYPE = "mes_time_unit_type"; // MES æ¶é´åä½ |
| | |
| | | ErrorCode PRO_WORK_ORDER_HAS_CHILDREN = new ErrorCode(1_040_502_004, "åå¨åå·¥åï¼æ æ³å é¤"); |
| | | ErrorCode PRO_WORK_ORDER_PRODUCT_MISMATCH = new ErrorCode(1_040_502_005, "å½å产åç©æä¸ç产工å产åä¸ä¸è´"); |
| | | ErrorCode PRO_WORK_ORDER_SCHEDULE_QUANTITY_EXCEED = new ErrorCode(1_040_502_006, "æäº§æ°éè¶
éï¼å·¥å{}(计å{}ï¼å·²æäº§{}ï¼æ¬æ¬¡æäº§{})"); |
| | | ErrorCode PRO_WORK_ORDER_RETENTION_SAMPLE_REQUIRED = new ErrorCode(1_040_502_007, "ç产工åã{}ãå°æªç»è®°çæ ·è®°å½ï¼æ æ³å®æï¼è¯·å
å¨ãè´¨é管ç â çæ ·ç®¡çã䏿°å¢è¯¥å·¥åççæ ·è®°å½"); |
| | | ErrorCode PRO_WORK_ORDER_NO_PRODUCED_QUANTITY = new ErrorCode(1_040_502_008, "ç产工åã{}ãå·²ç产æ°é为 0ï¼æ æ³å®æï¼è¯·å
卿åä¸éå·¥åºå®ææ¥å·¥å¹¶å®¡æ¹éè¿ï¼å¾
å·¥åå·²ç产æ°éå¤§äº 0 åå宿工å"); |
| | | ErrorCode PRO_WORK_ORDER_BOM_NOT_EXISTS = new ErrorCode(1_040_502_100, "ç产工åBOMä¸åå¨"); |
| | | |
| | | // ========== MES ç产管ç-ç产工åå·¥åºï¼1-040-502-300ï¼ ========== |
| | |
| | | ErrorCode QC_NCR_NOT_PENDING_REVIEW = new ErrorCode(1_040_609_002, "åªæå¾
è¯å®¡ç¶æçä¸åæ ¼åå¤çåæå¯æä½"); |
| | | ErrorCode QC_NCR_NOT_REVIEWED = new ErrorCode(1_040_609_003, "åªæå·²è¯å®¡ç¶æçä¸åæ ¼åå¤çåæå¯æ§è¡å¤ç½®"); |
| | | ErrorCode QC_NCR_NOT_DISPOSED = new ErrorCode(1_040_609_004, "åªæå·²å¤ç½®ç¶æçä¸åæ ¼åå¤çåæå¯å
³é"); |
| | | |
| | | // ========== MES è´¨é管ç-çæ ·ç®¡çï¼1-040-610-000ï¼ ========== |
| | | ErrorCode QC_RETENTION_SAMPLE_NOT_EXISTS = new ErrorCode(1_040_610_000, "çæ ·è®°å½ä¸åå¨"); |
| | | ErrorCode QC_RETENTION_SAMPLE_CODE_DUPLICATE = new ErrorCode(1_040_610_001, "çæ ·ç¼å·ã{}ãå·²åå¨ï¼è¯·å·æ°é¡µé¢åéè¯"); |
| | | ErrorCode QC_RETENTION_SAMPLE_WORK_ORDER_NOT_EXISTS = new ErrorCode(1_040_610_002, "ç产工åä¸åå¨ï¼è¯·éæ°éæ©å·¥å"); |
| | | ErrorCode QC_RETENTION_SAMPLE_WORK_ORDER_DUPLICATE = new ErrorCode(1_040_610_003, "ç产工åã{}ãå·²ç»è®°çæ ·è®°å½ï¼çæ ·ç¼å·ã{}ãï¼ï¼æ¯å¼ å·¥ååªè½ç»è®°ä¸æ¡çæ ·ï¼å¦éè°æ´è¯·ä¿®æ¹åçæ ·è®°å½"); |
| | | ErrorCode QC_RETENTION_SAMPLE_WORK_ORDER_CANCELED = new ErrorCode(1_040_610_004, "ç产工åã{}ã已忶ï¼ä¸è½ç»è®°çæ ·"); |
| | | ErrorCode QC_RETENTION_SAMPLE_QUANTITY_INVALID = new ErrorCode(1_040_610_005, "çæ ·æ°éå¿
é¡»å¤§äº 0ï¼è¯·å¡«åå®é
çæ ·ä»¶æ°"); |
| | | ErrorCode QC_RETENTION_SAMPLE_SALE_ORDER_REQUIRED = new ErrorCode(1_040_610_006, "ç产工åã{}ãæ¥æºéå®è®¢åã{}ãï¼è¯·éæ©å¯¹åºçéå®è®¢åååç»è®°çæ ·"); |
| | | ErrorCode QC_RETENTION_SAMPLE_SALE_ORDER_MISMATCH = new ErrorCode(1_040_610_007, "æééå®è®¢åä¸å·¥åä¸ä¸è´ï¼å·¥åã{}ã对åºéå®è®¢å为ã{}ãï¼æäº¤çéå®è®¢å为ã{}ãï¼è¯·éæ°éæ©è¯¥å·¥å对åºçéå®è®¢å"); |
| | | ErrorCode QC_RETENTION_SAMPLE_SALE_ORDER_NOT_EXISTS = new ErrorCode(1_040_610_008, "æééå®è®¢åä¸åå¨ï¼{}ï¼ï¼è¯·éæ°éæ©"); |
| | | ErrorCode QC_RETENTION_SAMPLE_WORK_ORDER_CHANGED = new ErrorCode(1_040_610_009, "çæ ·è®°å½ä¸å
è®¸ä¿®æ¹æå±ç产工åï¼å¦éæ´æ¢å·¥åï¼è¯·å 餿¬æ¡è®°å½åéæ°ç»è®°"); |
| | | ErrorCode QC_RETENTION_SAMPLE_FINISHED_DELETE = new ErrorCode(1_040_610_010, "ç产工åã{}ã已宿ï¼çæ ·è®°å½ä¸å
许å é¤ï¼å¦éè°æ´è¯·è系管çå"); |
| | | ErrorCode QC_RETENTION_SAMPLE_SALE_ORDER_AMBIGUOUS = new ErrorCode(1_040_610_011, "ç产工åã{}ãç±å¤å¼ éå®è®¢ååå¹¶ä¸åï¼{}ï¼ï¼è¯·éæ©æ¬æ¬¡çæ ·å¯¹åºçéå®è®¢å"); |
| | | ErrorCode QC_RETENTION_SAMPLE_MPS_SALE_ORDER_NOT_EXISTS = new ErrorCode(1_040_610_012, "ç产工åã{}ãç± MPS ä¸åï¼ä½ MPS è®°å½çéå®è®¢åã{}ãï¼ID={}ï¼å¨éå®è®¢åä¸ä¸åå¨ï¼æ æ³ç»è®°çæ ·ï¼è¯·å
ä¿®æ£è¯¥ MPS çéå®è®¢åä¿¡æ¯ååç»è®°"); |
| | | |
| | | // ========== MES ä»åºç®¡ç-ä»åºï¼1-040-700-000ï¼ ========== |
| | | ErrorCode WM_WAREHOUSE_NOT_EXISTS = new ErrorCode(1_040_700_000, "ä»åºä¸åå¨"); |
| | |
| | | ErrorCode WM_PACKAGE_CHILD_NOT_FINISHED = new ErrorCode(1_040_740_007, "åç®±å¿
é¡»æ¯å·²å®æç¶ææè½æ·»å "); |
| | | ErrorCode WM_PACKAGE_HAS_CHILDREN = new ErrorCode(1_040_740_008, "åå¨åç®±ï¼ä¸å
许å é¤"); |
| | | ErrorCode WM_PACKAGE_LINE_NOT_EXISTS = new ErrorCode(1_040_740_100, "è£
ç®±æç»ä¸åå¨"); |
| | | ErrorCode WM_PACKAGE_LINE_ITEM_NOT_FINISHED = new ErrorCode(1_040_740_101, "è£
ç®±ç©æã{}ãæå±åç±»ä¸æ¯æååç±»ï¼ä¸è½è£
ç®±ï¼è¯·éæ©æååç±»ä¸çç©æ"); |
| | | ErrorCode WM_PACKAGE_LINE_BOX_QUANTITY_NOT_CONFIGURED = new ErrorCode(1_040_740_102, "è£
ç®±ç©æã{}ãæªé
ç½®æ¯ç®±æ°éï¼æ æ³èªå¨è®¡ç®ç®±æ°ï¼è¯·å
å¨ç©ææ¡£æ¡ä¸ç»´æ¤æ¯ç®±æ°é"); |
| | | ErrorCode WM_PACKAGE_LINE_WORK_ORDER_PRODUCT_MISMATCH = new ErrorCode(1_040_740_103, "è£
ç®±ç©æã{}ãä¸ç产工åã{}ãç产åã{}ãä¸ä¸è´ï¼è¯·éæ©è¯¥å·¥å对åºç产åè£
ç®±"); |
| | | ErrorCode WM_PACKAGE_LINE_WORK_ORDER_QUANTITY_EXCEED = new ErrorCode(1_040_740_104, "ç产工åã{}ãè£
ç®±æ°éè¶
éï¼å·¥åæ°é {}ï¼å·²è£
ç®±/已计å {}ï¼æ¬æ¬¡è£
ç®± {}ï¼è¯·è°æ´è£
ç®±æ°é"); |
| | | ErrorCode WM_PACKAGE_LINE_ASSEMBLY_PROCESS_NOT_FOUND = new ErrorCode(1_040_740_105, "ç产工åã{}ãæªé
ç½®ãç»è£
ãå·¥åºï¼ä¸è½è£
ç®±ï¼è¯·å
å¨è¯¥å·¥åçãå·¥åå·¥åºã䏿·»å å称为ãç»è£
ãï¼ç¼ç PRO-ASSEMBLYï¼çå·¥åºï¼å¹¶å®ææ¥å·¥"); |
| | | ErrorCode WM_PACKAGE_LINE_ASSEMBLY_NOT_COMPLETED = new ErrorCode(1_040_740_106, "ç产工åã{}ãç»è£
å·¥åºæ¥å·¥åæ ¼æ°éä¸è¶³ï¼å·²å®æç»è£
åæ ¼ {}ï¼æ¬æ¬¡è£
ç®±å累计è£
ç®± {}ï¼å·²è£
ç®±/已计å {} + æ¬æ¬¡ {}ï¼ï¼è¯·å
宿ç»è£
å·¥åºæ¥å·¥ï¼æè°å°æ¬æ¬¡è£
ç®±æ°é"); |
| | | |
| | | // ========== MES 产å设计-设计项ç®ï¼1-040-800-000ï¼ ========== |
| | | ErrorCode PD_PROJECT_NOT_EXISTS = new ErrorCode(1_040_800_000, "设计项ç®ä¸åå¨"); |
| | |
| | | QC_IPQC_CODE("QC_IPQC_CODE", "è¿ç¨æ£éªåç¼ç "), |
| | | QC_OQC_CODE("QC_OQC_CODE", "åºè´§æ£éªåç¼ç "), |
| | | QC_RQC_CODE("QC_RQC_CODE", "éè´§æ£éªåç¼ç "), |
| | | QC_RETENTION_SAMPLE_CODE("QC_RETENTION_SAMPLE_CODE", "çæ ·è®°å½ç¼ç "), |
| | | WM_WAREHOUSE_CODE("WM_WAREHOUSE_CODE", "ä»åºç¼ç "), |
| | | WM_LOCATION_CODE("WM_LOCATION_CODE", "åºåºç¼ç "), |
| | | WM_AREA_CODE("WM_AREA_CODE", "åºä½ç¼ç "), |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.service.pro.cost; |
| | | |
| | | import cn.iocoder.yudao.module.mes.service.pro.cost.dto.MesProMaterialPriceRespDTO; |
| | | |
| | | import java.util.Collection; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * MES ç©æä»·æ ¼ Service æ¥å£ |
| | | * |
| | | * @author è¶
级管çå |
| | | */ |
| | | public interface MesProMaterialPriceService { |
| | | |
| | | /** |
| | | * æ¹éè·åç©æåä»· |
| | | * |
| | | * å价顺åºï¼ç©æä¸»æ°æ®éè´ä»· â å·²å®¡æ ¸éè´è®¢åå æå¹³åä»· â æ ä»·æ ¼ï¼åä»· 0ï¼æ è®° priceMissingï¼ |
| | | * |
| | | * @param itemIds MES ç©æç¼å·éå |
| | | * @return ç©æç¼å· â ä»·æ ¼ä¿¡æ¯ |
| | | */ |
| | | Map<Long, MesProMaterialPriceRespDTO> getMaterialPriceMap(Collection<Long> itemIds); |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.service.pro.cost; |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.iocoder.yudao.module.erp.api.purchase.ErpPurchaseOrderApi; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.mdm.MesMdmItemDO; |
| | | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; |
| | | import cn.iocoder.yudao.module.mes.service.mdm.MesMdmItemService; |
| | | import cn.iocoder.yudao.module.mes.service.pro.cost.dto.MesProMaterialPriceRespDTO; |
| | | import jakarta.annotation.Resource; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.validation.annotation.Validated; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.util.Collection; |
| | | import java.util.Collections; |
| | | import java.util.HashMap; |
| | | import java.util.HashSet; |
| | | import java.util.Map; |
| | | import java.util.Set; |
| | | |
| | | /** |
| | | * MES ç©æä»·æ ¼ Service å®ç°ç±» |
| | | * |
| | | * @author è¶
级管çå |
| | | */ |
| | | @Service |
| | | @Validated |
| | | public class MesProMaterialPriceServiceImpl implements MesProMaterialPriceService { |
| | | |
| | | private static final String SOURCE_PURCHASE_PRICE = "PURCHASE_PRICE"; |
| | | private static final String SOURCE_ERP_AVERAGE = "ERP_AVERAGE"; |
| | | private static final String SOURCE_NONE = "NONE"; |
| | | |
| | | @Resource |
| | | private MesMdItemService itemService; |
| | | @Resource |
| | | private MesMdmItemService mdmItemService; |
| | | @Resource |
| | | private ErpPurchaseOrderApi purchaseOrderApi; |
| | | |
| | | @Override |
| | | public Map<Long, MesProMaterialPriceRespDTO> getMaterialPriceMap(Collection<Long> itemIds) { |
| | | if (CollUtil.isEmpty(itemIds)) { |
| | | return Collections.emptyMap(); |
| | | } |
| | | // 1. MES ç©æ â MDM ç©æ |
| | | Map<Long, MesMdItemDO> itemMap = itemService.getItemMap(itemIds); |
| | | Set<Long> mdmItemIds = new HashSet<>(); |
| | | for (MesMdItemDO item : itemMap.values()) { |
| | | if (item.getMdmItemId() != null) { |
| | | mdmItemIds.add(item.getMdmItemId()); |
| | | } |
| | | } |
| | | Map<Long, MesMdmItemDO> mdmItemMap = mdmItemIds.isEmpty() |
| | | ? Collections.emptyMap() : mdmItemService.getItemMap(mdmItemIds); |
| | | |
| | | // 2. ä¸»æ°æ®æ²¡æéè´ä»·çï¼æ¥å·²å®¡æ ¸éè´è®¢åå æå¹³åä»· |
| | | Set<Long> missingPriceMdmIds = new HashSet<>(); |
| | | for (Long mdmItemId : mdmItemIds) { |
| | | MesMdmItemDO mdmItem = mdmItemMap.get(mdmItemId); |
| | | if (mdmItem == null || !isPositive(mdmItem.getPurchasePrice())) { |
| | | missingPriceMdmIds.add(mdmItemId); |
| | | } |
| | | } |
| | | Map<Long, BigDecimal> averagePriceMap = missingPriceMdmIds.isEmpty() |
| | | ? Collections.emptyMap() |
| | | : purchaseOrderApi.getItemAveragePurchasePriceMap(missingPriceMdmIds).getCheckedData(); |
| | | |
| | | // 3. ç»è£
ç»æ |
| | | Map<Long, MesProMaterialPriceRespDTO> result = new HashMap<>(itemMap.size()); |
| | | for (Long itemId : itemIds) { |
| | | MesMdItemDO item = itemMap.get(itemId); |
| | | MesMdmItemDO mdmItem = item != null && item.getMdmItemId() != null |
| | | ? mdmItemMap.get(item.getMdmItemId()) : null; |
| | | BigDecimal purchasePrice = mdmItem != null ? mdmItem.getPurchasePrice() : null; |
| | | BigDecimal averagePrice = mdmItem != null ? averagePriceMap.get(mdmItem.getId()) : null; |
| | | if (isPositive(purchasePrice)) { |
| | | result.put(itemId, buildPrice(itemId, purchasePrice, SOURCE_PURCHASE_PRICE)); |
| | | } else if (isPositive(averagePrice)) { |
| | | result.put(itemId, buildPrice(itemId, averagePrice, SOURCE_ERP_AVERAGE)); |
| | | } else { |
| | | result.put(itemId, MesProMaterialPriceRespDTO.builder() |
| | | .itemId(itemId).unitPrice(BigDecimal.ZERO) |
| | | .source(SOURCE_NONE).priceMissing(true).build()); |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | private static MesProMaterialPriceRespDTO buildPrice(Long itemId, BigDecimal price, String source) { |
| | | return MesProMaterialPriceRespDTO.builder() |
| | | .itemId(itemId) |
| | | .unitPrice(price.setScale(6, RoundingMode.HALF_UP)) |
| | | .source(source) |
| | | .priceMissing(false) |
| | | .build(); |
| | | } |
| | | |
| | | private static boolean isPositive(BigDecimal value) { |
| | | return value != null && value.compareTo(BigDecimal.ZERO) > 0; |
| | | } |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.service.pro.cost; |
| | | |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.feedback.MesProFeedbackDO; |
| | | |
| | | /** |
| | | * MES ç产工åç©æææ¬ Service æ¥å£ |
| | | * |
| | | * @author è¶
级管çå |
| | | */ |
| | | public interface MesProWorkOrderCostService { |
| | | |
| | | /** |
| | | * éæ°è®¡ç®å·¥åç©æææ¬å¹¶ååå·¥å |
| | | * |
| | | * @param workOrderId ç产工åç¼å· |
| | | */ |
| | | void recalculateWorkOrderCost(Long workOrderId); |
| | | |
| | | /** |
| | | * æ¥å·¥å®¡æ¹éè¿åå¤çï¼éç®ææ¬ + æ£æ¥è¶
èå¹¶åéç«å
ä¿¡æ¥è¦ |
| | | * |
| | | * å
鍿è·å¼å¸¸ï¼é¿å
影忥工审æ¹ä¸»æµç¨ |
| | | * |
| | | * @param feedback æ¥å·¥å |
| | | */ |
| | | void handleFeedbackApproved(MesProFeedbackDO feedback); |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.service.pro.cost; |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| | | import cn.iocoder.yudao.module.infra.api.config.ConfigApi; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdProductBomDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.alert.MesProOverConsumeAlertDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.feedback.MesProFeedbackDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderBomDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.itemconsume.MesWmItemConsumeLineDO; |
| | | import cn.iocoder.yudao.module.mes.dal.mysql.pro.alert.MesProOverConsumeAlertMapper; |
| | | import cn.iocoder.yudao.module.mes.dal.mysql.pro.feedback.MesProFeedbackMapper; |
| | | import cn.iocoder.yudao.module.mes.dal.mysql.pro.workorder.MesProWorkOrderMapper; |
| | | import cn.iocoder.yudao.module.mes.dal.mysql.wm.itemconsume.MesWmItemConsumeLineMapper; |
| | | import cn.iocoder.yudao.module.mes.enums.pro.MesProFeedbackStatusEnum; |
| | | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; |
| | | import cn.iocoder.yudao.module.mes.service.md.item.MesMdProductBomService; |
| | | import cn.iocoder.yudao.module.mes.service.pro.cost.dto.MesProMaterialPriceRespDTO; |
| | | import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderBomService; |
| | | import cn.iocoder.yudao.module.system.api.notify.NotifyMessageSendApi; |
| | | import cn.iocoder.yudao.module.system.api.notify.dto.NotifySendSingleToUserReqDTO; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.validation.annotation.Validated; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.time.LocalDateTime; |
| | | import java.util.ArrayList; |
| | | import java.util.Collection; |
| | | import java.util.Collections; |
| | | import java.util.HashMap; |
| | | import java.util.HashSet; |
| | | import java.util.LinkedHashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Set; |
| | | |
| | | /** |
| | | * MES ç产工åç©æææ¬ Service å®ç°ç±» |
| | | * |
| | | * @author è¶
级管çå |
| | | */ |
| | | @Service |
| | | @Validated |
| | | @Slf4j |
| | | public class MesProWorkOrderCostServiceImpl implements MesProWorkOrderCostService { |
| | | |
| | | /** |
| | | * å
¨å±é»è®¤è¶
èæ¥è¦æ¯ä¾ï¼%ï¼ |
| | | */ |
| | | private static final String CONFIG_DEFAULT_RATIO = "mes.pro-over-consume.default-ratio"; |
| | | /** |
| | | * è¶
èæ¥è¦ç«å
ä¿¡æ¥æ¶äººç¨æ·ç¼å·ï¼éå·åéï¼ |
| | | */ |
| | | private static final String CONFIG_NOTIFY_USER_IDS = "mes.pro-over-consume.notify-user-ids"; |
| | | /** |
| | | * è¶
èæ¥è¦ç«å
信模æ¿ç¼å· |
| | | */ |
| | | private static final String TEMPLATE_CODE = "mes_pro_work_order_over_consume"; |
| | | private static final BigDecimal DEFAULT_THRESHOLD = new BigDecimal("5"); |
| | | private static final BigDecimal HUNDRED = new BigDecimal("100"); |
| | | private static final int SCALE = 6; |
| | | |
| | | @Resource |
| | | private MesProWorkOrderMapper workOrderMapper; |
| | | @Resource |
| | | private MesProWorkOrderBomService workOrderBomService; |
| | | @Resource |
| | | private MesMdProductBomService productBomService; |
| | | @Resource |
| | | private MesMdItemService itemService; |
| | | @Resource |
| | | private MesProMaterialPriceService materialPriceService; |
| | | @Resource |
| | | private MesProFeedbackMapper feedbackMapper; |
| | | @Resource |
| | | private MesWmItemConsumeLineMapper consumeLineMapper; |
| | | @Resource |
| | | private MesProOverConsumeAlertMapper alertMapper; |
| | | @Resource |
| | | private ConfigApi configApi; |
| | | @Resource |
| | | private NotifyMessageSendApi notifyMessageSendApi; |
| | | |
| | | @Override |
| | | public void recalculateWorkOrderCost(Long workOrderId) { |
| | | if (workOrderId == null) { |
| | | return; |
| | | } |
| | | MesProWorkOrderDO workOrder = workOrderMapper.selectById(workOrderId); |
| | | if (workOrder == null) { |
| | | return; |
| | | } |
| | | // 1. æ å BOM åä½ç¨é + å®é
æ¶è |
| | | Map<Long, BigDecimal> perUnitBom = getPerUnitStandardBom(workOrder); |
| | | Map<Long, BigDecimal> actualQuantities = getActualConsumption(workOrderId); |
| | | Set<Long> itemIds = new HashSet<>(perUnitBom.keySet()); |
| | | itemIds.addAll(actualQuantities.keySet()); |
| | | Map<Long, MesProMaterialPriceRespDTO> priceMap = getPriceMap(itemIds); |
| | | |
| | | BigDecimal plannedQuantity = defaultZero(workOrder.getQuantity()); |
| | | BigDecimal reportedQuantity = getReportedQuantity(workOrder); |
| | | BigDecimal standardCost = BigDecimal.ZERO; |
| | | BigDecimal actualCost = BigDecimal.ZERO; |
| | | BigDecimal overCost = BigDecimal.ZERO; |
| | | for (Long itemId : itemIds) { |
| | | BigDecimal unitPrice = getUnitPrice(priceMap, itemId); |
| | | BigDecimal perUnit = perUnitBom.getOrDefault(itemId, BigDecimal.ZERO); |
| | | BigDecimal actualQuantity = actualQuantities.getOrDefault(itemId, BigDecimal.ZERO); |
| | | standardCost = standardCost.add(perUnit.multiply(plannedQuantity).multiply(unitPrice)); |
| | | actualCost = actualCost.add(actualQuantity.multiply(unitPrice)); |
| | | BigDecimal standardForReported = perUnit.multiply(reportedQuantity); |
| | | if (standardForReported.compareTo(BigDecimal.ZERO) > 0) { |
| | | BigDecimal overQuantity = actualQuantity.subtract(standardForReported); |
| | | if (overQuantity.compareTo(BigDecimal.ZERO) > 0) { |
| | | overCost = overCost.add(overQuantity.multiply(unitPrice)); |
| | | } |
| | | } |
| | | } |
| | | // 2. ååå·¥å |
| | | BigDecimal materialUnitCost = reportedQuantity.compareTo(BigDecimal.ZERO) > 0 |
| | | ? actualCost.divide(reportedQuantity, SCALE, RoundingMode.HALF_UP) : null; |
| | | workOrderMapper.updateById(new MesProWorkOrderDO().setId(workOrderId) |
| | | .setStandardMaterialCost(scale(standardCost)) |
| | | .setActualMaterialCost(scale(actualCost)) |
| | | .setOverConsumeCost(scale(overCost)) |
| | | .setMaterialUnitCost(materialUnitCost) |
| | | .setCostUpdateTime(LocalDateTime.now())); |
| | | } |
| | | |
| | | @Override |
| | | public void handleFeedbackApproved(MesProFeedbackDO feedback) { |
| | | if (feedback == null || feedback.getWorkOrderId() == null) { |
| | | return; |
| | | } |
| | | try { |
| | | recalculateWorkOrderCost(feedback.getWorkOrderId()); |
| | | } catch (Exception ex) { |
| | | log.error("[handleFeedbackApproved][å·¥å({}) éç®ç©æææ¬å¤±è´¥]", |
| | | feedback.getWorkOrderId(), ex); |
| | | } |
| | | try { |
| | | checkOverConsumeAlerts(feedback.getWorkOrderId()); |
| | | } catch (Exception ex) { |
| | | log.error("[handleFeedbackApproved][å·¥å({}) è¶
èæ¥è¦æ£æ¥å¤±è´¥]", |
| | | feedback.getWorkOrderId(), ex); |
| | | } |
| | | } |
| | | |
| | | // ==================== è¶
èæ¥è¦ ==================== |
| | | |
| | | private void checkOverConsumeAlerts(Long workOrderId) { |
| | | MesProWorkOrderDO workOrder = workOrderMapper.selectById(workOrderId); |
| | | if (workOrder == null) { |
| | | return; |
| | | } |
| | | Map<Long, BigDecimal> perUnitBom = getPerUnitStandardBom(workOrder); |
| | | if (perUnitBom.isEmpty()) { |
| | | return; |
| | | } |
| | | Map<Long, BigDecimal> actualQuantities = getActualConsumption(workOrderId); |
| | | if (actualQuantities.isEmpty()) { |
| | | return; |
| | | } |
| | | BigDecimal reportedQuantity = getReportedQuantity(workOrder); |
| | | BigDecimal threshold = resolveThreshold(workOrder); |
| | | BigDecimal allowedFactor = BigDecimal.ONE.add(threshold.divide(HUNDRED, SCALE, RoundingMode.HALF_UP)); |
| | | |
| | | // 1. æ¾åºè¶
èç©æ |
| | | Map<Long, BigDecimal> overQuantityMap = new LinkedHashMap<>(); |
| | | for (Map.Entry<Long, BigDecimal> entry : perUnitBom.entrySet()) { |
| | | BigDecimal standardQuantity = entry.getValue().multiply(reportedQuantity); |
| | | if (standardQuantity.compareTo(BigDecimal.ZERO) <= 0) { |
| | | continue; |
| | | } |
| | | BigDecimal actualQuantity = actualQuantities.getOrDefault(entry.getKey(), BigDecimal.ZERO); |
| | | if (actualQuantity.compareTo(standardQuantity.multiply(allowedFactor)) > 0) { |
| | | overQuantityMap.put(entry.getKey(), actualQuantity.subtract(standardQuantity)); |
| | | } |
| | | } |
| | | if (overQuantityMap.isEmpty()) { |
| | | return; |
| | | } |
| | | |
| | | // 2. éä¸ªç©æçææ¥è¦è®°å½ï¼åä¸å·¥å+ç©æåªæ¥è¦ä¸æ¬¡ï¼ |
| | | Set<Long> itemIds = new HashSet<>(overQuantityMap.keySet()); |
| | | itemIds.add(workOrder.getProductId()); |
| | | Map<Long, MesMdItemDO> itemMap = itemService.getItemMap(itemIds); |
| | | Map<Long, MesProMaterialPriceRespDTO> priceMap = getPriceMap(overQuantityMap.keySet()); |
| | | MesMdItemDO product = itemMap.get(workOrder.getProductId()); |
| | | String notifyUserIds = getNotifyUserIds(); |
| | | for (Map.Entry<Long, BigDecimal> entry : overQuantityMap.entrySet()) { |
| | | Long itemId = entry.getKey(); |
| | | if (alertMapper.selectByWorkOrderIdAndItemId(workOrderId, itemId) != null) { |
| | | continue; |
| | | } |
| | | MesMdItemDO item = itemMap.get(itemId); |
| | | BigDecimal perUnit = perUnitBom.getOrDefault(itemId, BigDecimal.ZERO); |
| | | BigDecimal standardQuantity = perUnit.multiply(reportedQuantity); |
| | | BigDecimal actualQuantity = actualQuantities.getOrDefault(itemId, BigDecimal.ZERO); |
| | | BigDecimal overQuantity = entry.getValue(); |
| | | BigDecimal unitPrice = getUnitPrice(priceMap, itemId); |
| | | |
| | | MesProOverConsumeAlertDO alert = MesProOverConsumeAlertDO.builder() |
| | | .workOrderId(workOrderId).workOrderCode(workOrder.getCode()) |
| | | .productId(workOrder.getProductId()) |
| | | .productName(product != null ? product.getName() : null) |
| | | .itemId(itemId).itemCode(item != null ? item.getCode() : null) |
| | | .itemName(item != null ? item.getName() : null) |
| | | .standardQuantity(scale(standardQuantity)) |
| | | .actualQuantity(scale(actualQuantity)) |
| | | .overQuantity(scale(overQuantity)) |
| | | .overRatio(overQuantity.multiply(HUNDRED).divide(standardQuantity, 4, RoundingMode.HALF_UP)) |
| | | .thresholdRatio(threshold.setScale(4, RoundingMode.HALF_UP)) |
| | | .unitPrice(scale(unitPrice)) |
| | | .overAmount(scale(overQuantity.multiply(unitPrice))) |
| | | .notifyUserIds(notifyUserIds) |
| | | .status("FAILED") |
| | | .build(); |
| | | alertMapper.insert(alert); |
| | | |
| | | try { |
| | | sendOverConsumeMessage(alert, notifyUserIds); |
| | | } catch (Exception ex) { |
| | | log.warn("[checkOverConsumeAlerts][å·¥å({}) ç©æ({}) è¶
èç«å
ä¿¡åé失败]", |
| | | workOrder.getCode(), item != null ? item.getCode() : itemId, ex); |
| | | alert.setStatus("FAILED"); |
| | | alert.setErrorMessage(StrUtil.maxLength( |
| | | "åé失败ï¼" + StrUtil.blankToDefault(ex.getMessage(), ex.getClass().getSimpleName()), 500)); |
| | | } |
| | | alertMapper.updateById(alert); |
| | | } |
| | | } |
| | | |
| | | private void sendOverConsumeMessage(MesProOverConsumeAlertDO alert, String notifyUserIds) { |
| | | if (StrUtil.isBlank(notifyUserIds)) { |
| | | throw new IllegalStateException( |
| | | "æªé
ç½®è¶
èæ¥è¦æ¥æ¶äººï¼è¯·å¨åæ°é
ç½®ä¸è®¾ç½® mes.pro-over-consume.notify-user-ids"); |
| | | } |
| | | Map<String, Object> params = new HashMap<>(); |
| | | params.put("workOrderCode", StrUtil.blankToDefault(alert.getWorkOrderCode(), "")); |
| | | params.put("productName", StrUtil.blankToDefault(alert.getProductName(), "")); |
| | | params.put("itemName", StrUtil.blankToDefault(alert.getItemName(), "")); |
| | | params.put("standardQuantity", alert.getStandardQuantity().toPlainString()); |
| | | params.put("actualQuantity", alert.getActualQuantity().toPlainString()); |
| | | params.put("overQuantity", alert.getOverQuantity().toPlainString()); |
| | | params.put("overRatio", alert.getOverRatio().toPlainString()); |
| | | params.put("threshold", alert.getThresholdRatio().stripTrailingZeros().toPlainString()); |
| | | params.put("overAmount", alert.getOverAmount().toPlainString()); |
| | | |
| | | List<String> failures = new ArrayList<>(); |
| | | Long firstMessageId = null; |
| | | int successCount = 0; |
| | | for (String userIdText : notifyUserIds.split(",")) { |
| | | String trimmed = userIdText.trim(); |
| | | if (trimmed.isEmpty()) { |
| | | continue; |
| | | } |
| | | try { |
| | | Long userId = Long.parseLong(trimmed); |
| | | NotifySendSingleToUserReqDTO message = new NotifySendSingleToUserReqDTO(); |
| | | message.setUserId(userId); |
| | | message.setTemplateCode(TEMPLATE_CODE); |
| | | message.setTemplateParams(params); |
| | | Long messageId = notifyMessageSendApi.sendSingleMessageToAdmin(message); |
| | | if (messageId == null) { |
| | | throw new IllegalStateException("ç«å
信模æ¿å·²åç¨æä¸åå¨"); |
| | | } |
| | | if (firstMessageId == null) { |
| | | firstMessageId = messageId; |
| | | } |
| | | successCount++; |
| | | } catch (Exception ex) { |
| | | failures.add("ç¨æ·[" + trimmed + "]ï¼" + StrUtil.blankToDefault( |
| | | ex.getMessage(), ex.getClass().getSimpleName())); |
| | | } |
| | | } |
| | | alert.setMessageId(firstMessageId); |
| | | if (failures.isEmpty()) { |
| | | alert.setStatus("SENT"); |
| | | alert.setErrorMessage(null); |
| | | return; |
| | | } |
| | | alert.setStatus(successCount > 0 ? "SENT" : "FAILED"); |
| | | alert.setErrorMessage(StrUtil.maxLength("é¨åæ¥æ¶äººåé失败ï¼" + String.join("ï¼", failures), 500)); |
| | | } |
| | | |
| | | // ==================== ææ¬åºç¡æ°æ® ==================== |
| | | |
| | | /** |
| | | * äº§åæ å BOM åä½ç¨éï¼æ 产å BOM æ¶åéå·¥å BOM |
| | | */ |
| | | private Map<Long, BigDecimal> getPerUnitStandardBom(MesProWorkOrderDO workOrder) { |
| | | Map<Long, BigDecimal> perUnitBom = new LinkedHashMap<>(); |
| | | List<MesMdProductBomDO> productBomList = productBomService |
| | | .getProductBomListByItemId(workOrder.getProductId()); |
| | | if (CollUtil.isNotEmpty(productBomList)) { |
| | | for (MesMdProductBomDO bom : productBomList) { |
| | | if (bom.getBomItemId() != null && bom.getQuantity() != null) { |
| | | perUnitBom.merge(bom.getBomItemId(), bom.getQuantity(), BigDecimal::add); |
| | | } |
| | | } |
| | | return perUnitBom; |
| | | } |
| | | List<MesProWorkOrderBomDO> workOrderBomList = workOrderBomService |
| | | .getWorkOrderBomListByWorkOrderId(workOrder.getId()); |
| | | if (CollUtil.isEmpty(workOrderBomList)) { |
| | | return perUnitBom; |
| | | } |
| | | BigDecimal workOrderQuantity = defaultZero(workOrder.getQuantity()); |
| | | BigDecimal divisor = workOrderQuantity.compareTo(BigDecimal.ZERO) > 0 |
| | | ? workOrderQuantity : BigDecimal.ONE; |
| | | for (MesProWorkOrderBomDO bom : workOrderBomList) { |
| | | if (bom.getItemId() == null || bom.getQuantity() == null) { |
| | | continue; |
| | | } |
| | | // æ å·¥åºè¡å¨æå·¥å»ºåæ¶å·²æå·¥åæ°éæ¾å¤§ï¼éæç®ååä½ç¨éï¼æå·¥åºè¡ä¸ºåä½ç¨é |
| | | BigDecimal perUnit = bom.getProcessId() == null |
| | | ? bom.getQuantity().divide(divisor, SCALE, RoundingMode.HALF_UP) |
| | | : bom.getQuantity(); |
| | | perUnitBom.merge(bom.getItemId(), perUnit, BigDecimal::add); |
| | | } |
| | | return perUnitBom; |
| | | } |
| | | |
| | | private Map<Long, BigDecimal> getActualConsumption(Long workOrderId) { |
| | | Map<Long, BigDecimal> actualQuantities = new LinkedHashMap<>(); |
| | | for (MesWmItemConsumeLineDO line : consumeLineMapper.selectListByWorkOrderId(workOrderId)) { |
| | | if (line.getItemId() != null && line.getQuantity() != null) { |
| | | actualQuantities.merge(line.getItemId(), line.getQuantity(), BigDecimal::add); |
| | | } |
| | | } |
| | | return actualQuantities; |
| | | } |
| | | |
| | | /** |
| | | * å·²æ¥å·¥æ°éï¼å·¥åå·²ç产æ°é ä¸ åå·¥åºå·²å®¡æ¹æ¥å·¥ç´¯è®¡æ°é å大 |
| | | * |
| | | * å·¥å quantityProduced åªå¨æ«éå·¥åºæ¥å·¥åæ´æ°ï¼ååå·¥åºæå¤§å¼å¯ä¿è¯ä¸é´å·¥åºæ¥å·¥åå³å¯è®¡ç®è¶
è |
| | | */ |
| | | private BigDecimal getReportedQuantity(MesProWorkOrderDO workOrder) { |
| | | BigDecimal reported = defaultZero(workOrder.getQuantityProduced()); |
| | | List<MesProFeedbackDO> feedbackList = feedbackMapper.selectList( |
| | | new LambdaQueryWrapperX<MesProFeedbackDO>() |
| | | .eq(MesProFeedbackDO::getWorkOrderId, workOrder.getId()) |
| | | .in(MesProFeedbackDO::getStatus, |
| | | MesProFeedbackStatusEnum.FINISHED.getStatus(), |
| | | MesProFeedbackStatusEnum.UNCHECK.getStatus())); |
| | | if (CollUtil.isEmpty(feedbackList)) { |
| | | return reported; |
| | | } |
| | | Map<Long, BigDecimal> quantityByProcess = new HashMap<>(); |
| | | for (MesProFeedbackDO feedback : feedbackList) { |
| | | if (feedback.getFeedbackQuantity() == null) { |
| | | continue; |
| | | } |
| | | Long key = feedback.getProcessId() != null ? feedback.getProcessId() : 0L; |
| | | quantityByProcess.merge(key, feedback.getFeedbackQuantity(), BigDecimal::add); |
| | | } |
| | | BigDecimal maxProcessQuantity = quantityByProcess.values().stream() |
| | | .max(BigDecimal::compareTo).orElse(BigDecimal.ZERO); |
| | | return reported.max(maxProcessQuantity); |
| | | } |
| | | |
| | | private BigDecimal resolveThreshold(MesProWorkOrderDO workOrder) { |
| | | if (workOrder.getOverConsumeRatio() != null) { |
| | | return workOrder.getOverConsumeRatio(); |
| | | } |
| | | MesMdItemDO product = workOrder.getProductId() != null |
| | | ? itemService.getItem(workOrder.getProductId()) : null; |
| | | if (product != null && product.getOverConsumeRatio() != null) { |
| | | return product.getOverConsumeRatio(); |
| | | } |
| | | String configValue = null; |
| | | try { |
| | | configValue = configApi.getConfigValueByKey(CONFIG_DEFAULT_RATIO); |
| | | } catch (Exception ex) { |
| | | log.warn("[resolveThreshold][读åè¶
èæ¥è¦é»è®¤æ¯ä¾å¤±è´¥ï¼ä½¿ç¨é»è®¤å¼ {}]", DEFAULT_THRESHOLD, ex); |
| | | } |
| | | if (StrUtil.isNotBlank(configValue)) { |
| | | try { |
| | | return new BigDecimal(configValue.trim()); |
| | | } catch (NumberFormatException ex) { |
| | | log.warn("[resolveThreshold][è¶
èæ¥è¦é»è®¤æ¯ä¾é
ç½®å¼éæ³ï¼{}ï¼ä½¿ç¨é»è®¤å¼ {}]", |
| | | configValue, DEFAULT_THRESHOLD); |
| | | } |
| | | } |
| | | return DEFAULT_THRESHOLD; |
| | | } |
| | | |
| | | private String getNotifyUserIds() { |
| | | try { |
| | | return StrUtil.trimToEmpty(configApi.getConfigValueByKey(CONFIG_NOTIFY_USER_IDS)); |
| | | } catch (Exception ex) { |
| | | log.warn("[getNotifyUserIds][读åè¶
èæ¥è¦æ¥æ¶äººå¤±è´¥]", ex); |
| | | return ""; |
| | | } |
| | | } |
| | | |
| | | private Map<Long, MesProMaterialPriceRespDTO> getPriceMap(Collection<Long> itemIds) { |
| | | if (CollUtil.isEmpty(itemIds)) { |
| | | return Collections.emptyMap(); |
| | | } |
| | | try { |
| | | return materialPriceService.getMaterialPriceMap(itemIds); |
| | | } catch (Exception ex) { |
| | | log.error("[getPriceMap][è·åç©æä»·æ ¼å¤±è´¥ï¼ææ ä»·æ ¼å¤ç] itemIds={}", itemIds, ex); |
| | | return Collections.emptyMap(); |
| | | } |
| | | } |
| | | |
| | | private static BigDecimal getUnitPrice(Map<Long, MesProMaterialPriceRespDTO> priceMap, Long itemId) { |
| | | MesProMaterialPriceRespDTO price = priceMap.get(itemId); |
| | | return price != null && price.getUnitPrice() != null ? price.getUnitPrice() : BigDecimal.ZERO; |
| | | } |
| | | |
| | | private static BigDecimal defaultZero(BigDecimal value) { |
| | | return value != null ? value : BigDecimal.ZERO; |
| | | } |
| | | |
| | | private static BigDecimal scale(BigDecimal value) { |
| | | return value.setScale(SCALE, RoundingMode.HALF_UP); |
| | | } |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.service.pro.cost.dto; |
| | | |
| | | import lombok.AllArgsConstructor; |
| | | import lombok.Builder; |
| | | import lombok.Data; |
| | | import lombok.NoArgsConstructor; |
| | | |
| | | import java.math.BigDecimal; |
| | | |
| | | /** |
| | | * MES ç©æä»·æ ¼ä¿¡æ¯ |
| | | * |
| | | * @author è¶
级管çå |
| | | */ |
| | | @Data |
| | | @Builder |
| | | @NoArgsConstructor |
| | | @AllArgsConstructor |
| | | public class MesProMaterialPriceRespDTO { |
| | | |
| | | /** |
| | | * MES ç©æç¼å· |
| | | */ |
| | | private Long itemId; |
| | | |
| | | /** |
| | | * ç©æåä»· |
| | | */ |
| | | private BigDecimal unitPrice; |
| | | |
| | | /** |
| | | * ä»·æ ¼æ¥æºï¼PURCHASE_PRICEï¼ç©æä¸»æ°æ®éè´ä»·ï¼/ ERP_AVERAGEï¼éè´è®¢åå æå¹³åä»·ï¼/ NONEï¼æ ä»·æ ¼ï¼ |
| | | */ |
| | | private String source; |
| | | |
| | | /** |
| | | * æ¯å¦ç¼ºå°ä»·æ ¼ |
| | | */ |
| | | private Boolean priceMissing; |
| | | |
| | | } |
| | |
| | | private MdmItemBatchConfigApi itemBatchConfigApi; |
| | | @Resource |
| | | private cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi processInstanceApi; |
| | | @Resource |
| | | private cn.iocoder.yudao.module.mes.service.pro.cost.MesProWorkOrderCostService workOrderCostService; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | |
| | | feedbackMapper.updateById(new MesProFeedbackDO().setId(reqVO.getId()) |
| | | .setStatus(MesProFeedbackStatusEnum.UNCHECK.getStatus())); |
| | | equipmentService.afterApproved(feedback); |
| | | tryHandleCostAndAlert(feedback); |
| | | return false; |
| | | } else { |
| | | // 6.2 æ 鿣éªï¼çæäº§åºåï¼æåæ ¼/ä¸åæ ¼æè¡ï¼ï¼ç´æ¥å®æå
¥åº |
| | |
| | | } |
| | | |
| | | equipmentService.afterApproved(feedback); |
| | | tryHandleCostAndAlert(feedback); |
| | | return true; // 已宿 |
| | | } |
| | | |
| | | /** |
| | | * æ¥å·¥å®¡æ¹éè¿åéç®å·¥åç©æææ¬å¹¶æ£æ¥è¶
èæ¥è¦ã |
| | | * ææ¬/æ¥è¦å±äºæè·¯è½åï¼å¤±è´¥åªè®°å½æ¥å¿ï¼ä¸å½±åæ¥å·¥å®¡æ¹ç»æã |
| | | */ |
| | | private void tryHandleCostAndAlert(MesProFeedbackDO feedback) { |
| | | try { |
| | | workOrderCostService.handleFeedbackApproved(feedback); |
| | | } catch (Exception ex) { |
| | | log.error("[tryHandleCostAndAlert][å·¥å({}) æ¥å·¥({}) ææ¬/è¶
èå¤ç失败]", |
| | | feedback.getWorkOrderId(), feedback.getId(), ex); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * æ ¹æ®å½åæ¥å·¥åçæç»ç»æï¼æ´æ°ç产任å¡åç产工åçè¿åº¦ |
| | | * |
| | | * <ul> |
| | |
| | | @Resource |
| | | private MesProWorkOrderService workOrderService; |
| | | @Resource |
| | | private cn.iocoder.yudao.module.mes.service.pro.cost.MesProWorkOrderCostService workOrderCostService; |
| | | @Resource |
| | | private MesMdItemService itemService; |
| | | @Resource |
| | | private MesMdAutoCodeRecordService autoCodeRecordService; |
| | |
| | | } |
| | | workOrderProcessService.batchSaveWorkOrderProcess(processList); |
| | | |
| | | // 5.1 å·¥åºææ BOM çæåéç®æ åç©æææ¬ï¼è·¯çº¿ BOM ä¸äº§å BOM å¯è½åå¨å·®å¼ï¼ |
| | | workOrderCostService.recalculateWorkOrderCost(workOrderId); |
| | | |
| | | // 6. å·¥åç´æ¥ç¡®è®¤ä¸ºå·²ç¡®è®¤ç¶æ |
| | | workOrderService.confirmWorkOrder(workOrderId); |
| | | |
| | |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.workorder.vo.MesProWorkOrderPageReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.workorder.vo.MesProWorkOrderSaveReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemBatchConfigDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.mps.MesProMpsDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO; |
| | | import cn.iocoder.yudao.module.mes.dal.mysql.pro.mps.MesProMpsMapper; |
| | | import cn.iocoder.yudao.module.mes.dal.mysql.pro.workorder.MesProWorkOrderMapper; |
| | | import cn.iocoder.yudao.module.mes.dal.mysql.qc.retentionsample.MesQcRetentionSampleMapper; |
| | | import cn.iocoder.yudao.module.mes.enums.pro.MesProMpsStatusEnum; |
| | | import cn.iocoder.yudao.module.mes.enums.pro.MesProWorkOrderStatusEnum; |
| | | import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum; |
| | | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemBatchConfigService; |
| | |
| | | |
| | | @Resource |
| | | private MesProWorkOrderMapper workOrderMapper; |
| | | @Resource |
| | | private MesProMpsMapper mpsMapper; |
| | | @Resource |
| | | private MesQcRetentionSampleMapper retentionSampleMapper; |
| | | |
| | | @Resource |
| | | private MesProWorkOrderBomService workOrderBomService; |
| | |
| | | private MesMdWorkstationService workstationService; |
| | | @Resource |
| | | private CrmCustomerApi customerApi; |
| | | @Resource |
| | | private cn.iocoder.yudao.module.mes.service.pro.cost.MesProWorkOrderCostService workOrderCostService; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | |
| | | |
| | | // 3. èªå¨çæ BOMï¼æ ¹æ®äº§å BOM çæå·¥å BOM |
| | | workOrderBomService.generateWorkOrderBom(workOrder.getId(), createReqVO, false); |
| | | // 3.1 è®¡ç®æ åç©æææ¬ |
| | | workOrderCostService.recalculateWorkOrderCost(workOrder.getId()); |
| | | |
| | | // 4. å·¥åºç±åç«¯éæ©äº§åå带å
¥ï¼ä¸åèªå¨çæ |
| | | |
| | |
| | | // 3. æ´æ° |
| | | MesProWorkOrderDO updateObj = BeanUtils.toBean(updateReqVO, MesProWorkOrderDO.class); |
| | | workOrderMapper.updateById(updateObj); |
| | | |
| | | // 4. äº§åææ°éåååéç®æ åç©æææ¬ |
| | | if (productChanged || quantityChanged) { |
| | | workOrderCostService.recalculateWorkOrderCost(updateReqVO.getId()); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | |
| | | if (ObjUtil.notEqual(workOrder.getStatus(), MesProWorkOrderStatusEnum.CONFIRMED.getStatus())) { |
| | | throw exception(PRO_WORK_ORDER_NOT_CONFIRMED); |
| | | } |
| | | // 2. æ ¡éªå·²ç产æ°éå¿
é¡»å¤§äº 0ï¼æ²¡æäº§åºä¸å
è®¸å®æï¼ |
| | | BigDecimal quantityProduced = ObjUtil.defaultIfNull(workOrder.getQuantityProduced(), BigDecimal.ZERO); |
| | | if (quantityProduced.compareTo(BigDecimal.ZERO) <= 0) { |
| | | throw exception(PRO_WORK_ORDER_NO_PRODUCED_QUANTITY, workOrder.getCode()); |
| | | } |
| | | // 3. æ ¡éªçæ ·è®°å½ï¼ææå·¥å宿åå¿
é¡»ç»è®°çæ ·ï¼ |
| | | if (retentionSampleMapper.selectByWorkOrderId(id) == null) { |
| | | throw exception(PRO_WORK_ORDER_RETENTION_SAMPLE_REQUIRED, workOrder.getCode()); |
| | | } |
| | | |
| | | // 2. 级è宿ææå
³èä»»å¡ |
| | | // 4. 级è宿ææå
³èä»»å¡ |
| | | taskService.finishTaskByOrderId(id); |
| | | |
| | | // 3. æ´æ°å·¥åç¶æä¸ºå·²å®æ |
| | | // 5. æ´æ°å·¥åç¶æä¸ºå·²å®æ |
| | | workOrderMapper.updateById(new MesProWorkOrderDO().setId(id) |
| | | .setStatus(MesProWorkOrderStatusEnum.FINISHED.getStatus()) |
| | | .setFinishDate(LocalDateTime.now())); |
| | | |
| | | // 6. 忥å
³è MPS ç¶æ |
| | | finishRelatedMps(workOrder, quantityProduced); |
| | | } |
| | | |
| | | /** |
| | | * å·¥å宿æ¶åæ¥ MPSï¼å·²ä¸å â 已宿ï¼å¹¶å填宿æ¶é´ã |
| | | * åå¹¶ä¸åæ¶ä¸ä¸ªå·¥å对åºå¤æ¡ MPSï¼å·²ç产æ°éç±å MPS èªèº«ç»´æ¤ï¼è¿éä¸åå¡«ï¼é¿å
éå¤ç´¯è®¡ã |
| | | */ |
| | | private void finishRelatedMps(MesProWorkOrderDO workOrder, BigDecimal quantityProduced) { |
| | | List<MesProMpsDO> mpsList = mpsMapper.selectListByWorkOrderId(workOrder.getId()); |
| | | if (CollUtil.isEmpty(mpsList)) { |
| | | return; |
| | | } |
| | | boolean singleMps = mpsList.size() == 1; |
| | | LocalDateTime now = LocalDateTime.now(); |
| | | for (MesProMpsDO mps : mpsList) { |
| | | // 已忶/已宿ç MPS ä¸åç¶æåå |
| | | if (!ObjUtil.equal(mps.getStatus(), MesProMpsStatusEnum.ISSUED.getStatus())) { |
| | | continue; |
| | | } |
| | | MesProMpsDO updateObj = new MesProMpsDO().setId(mps.getId()) |
| | | .setStatus(MesProMpsStatusEnum.FINISHED.getStatus()) |
| | | .setFinishDate(now); |
| | | if (singleMps) { |
| | | BigDecimal currentProduced = ObjUtil.defaultIfNull(mps.getQuantityProduced(), BigDecimal.ZERO); |
| | | updateObj.setQuantityProduced(quantityProduced.max(currentProduced)); |
| | | } |
| | | mpsMapper.updateById(updateObj); |
| | | } |
| | | } |
| | | |
| | | @Override |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.service.qc.retentionsample; |
| | | |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.qc.retentionsample.vo.MesQcRetentionSamplePageReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.qc.retentionsample.vo.MesQcRetentionSampleSaveReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.qc.retentionsample.MesQcRetentionSampleDO; |
| | | import jakarta.validation.Valid; |
| | | |
| | | /** |
| | | * MES çæ ·è®°å½ Service æ¥å£ |
| | | * |
| | | * @author è¶
级管çå |
| | | */ |
| | | public interface MesQcRetentionSampleService { |
| | | |
| | | /** |
| | | * åå»ºçæ ·è®°å½ |
| | | * |
| | | * @param createReqVO åå»ºä¿¡æ¯ |
| | | * @return ç¼å· |
| | | */ |
| | | Long createRetentionSample(@Valid MesQcRetentionSampleSaveReqVO createReqVO); |
| | | |
| | | /** |
| | | * æ´æ°çæ ·è®°å½ |
| | | * |
| | | * @param updateReqVO æ´æ°ä¿¡æ¯ |
| | | */ |
| | | void updateRetentionSample(@Valid MesQcRetentionSampleSaveReqVO updateReqVO); |
| | | |
| | | /** |
| | | * å é¤çæ ·è®°å½ |
| | | * |
| | | * @param id ç¼å· |
| | | */ |
| | | void deleteRetentionSample(Long id); |
| | | |
| | | /** |
| | | * è·å¾çæ ·è®°å½ |
| | | * |
| | | * @param id ç¼å· |
| | | * @return çæ ·è®°å½ |
| | | */ |
| | | MesQcRetentionSampleDO getRetentionSample(Long id); |
| | | |
| | | /** |
| | | * è·å¾çæ ·è®°å½å页 |
| | | * |
| | | * @param pageReqVO å页æ¥è¯¢ |
| | | * @return çæ ·è®°å½å页 |
| | | */ |
| | | PageResult<MesQcRetentionSampleDO> getRetentionSamplePage(MesQcRetentionSamplePageReqVO pageReqVO); |
| | | |
| | | /** |
| | | * æ ¹æ®ç产工å ID è·å¾çæ ·è®°å½ |
| | | * |
| | | * @param workOrderId ç产工å ID |
| | | * @return çæ ·è®°å½ |
| | | */ |
| | | MesQcRetentionSampleDO getRetentionSampleByWorkOrderId(Long workOrderId); |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.mes.service.qc.retentionsample; |
| | | |
| | | import cn.hutool.core.util.ObjUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.module.erp.api.sale.ErpSaleOrderApi; |
| | | import cn.iocoder.yudao.module.erp.api.sale.dto.ErpSaleOrderRespDTO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.qc.retentionsample.vo.MesQcRetentionSamplePageReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.qc.retentionsample.vo.MesQcRetentionSampleSaveReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.mps.MesProMpsDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.qc.retentionsample.MesQcRetentionSampleDO; |
| | | import cn.iocoder.yudao.module.mes.dal.mysql.pro.mps.MesProMpsMapper; |
| | | import cn.iocoder.yudao.module.mes.dal.mysql.qc.retentionsample.MesQcRetentionSampleMapper; |
| | | import cn.iocoder.yudao.module.mes.enums.md.autocode.MesMdAutoCodeRuleCodeEnum; |
| | | import cn.iocoder.yudao.module.mes.enums.pro.MesProWorkOrderSourceTypeEnum; |
| | | import cn.iocoder.yudao.module.mes.enums.pro.MesProWorkOrderStatusEnum; |
| | | import cn.iocoder.yudao.module.mes.service.md.autocode.MesMdAutoCodeRecordService; |
| | | import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService; |
| | | import jakarta.annotation.Resource; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.validation.annotation.Validated; |
| | | |
| | | import java.time.LocalDateTime; |
| | | import java.util.LinkedHashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| | | import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; |
| | | import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; |
| | | |
| | | /** |
| | | * MES çæ ·è®°å½ Service å®ç°ç±» |
| | | * |
| | | * @author è¶
级管çå |
| | | */ |
| | | @Service |
| | | @Validated |
| | | public class MesQcRetentionSampleServiceImpl implements MesQcRetentionSampleService { |
| | | |
| | | /** |
| | | * é»è®¤çæ ·ä¿åæ¶é¿ï¼æï¼ |
| | | */ |
| | | private static final int DEFAULT_RETENTION_MONTHS = 6; |
| | | |
| | | @Resource |
| | | private MesQcRetentionSampleMapper retentionSampleMapper; |
| | | |
| | | @Resource |
| | | private MesProWorkOrderService workOrderService; |
| | | @Resource |
| | | private MesProMpsMapper mpsMapper; |
| | | @Resource |
| | | private MesMdAutoCodeRecordService autoCodeRecordService; |
| | | @Resource |
| | | private ErpSaleOrderApi saleOrderApi; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Long createRetentionSample(MesQcRetentionSampleSaveReqVO createReqVO) { |
| | | // 1. æ ¡éªå·¥å |
| | | MesProWorkOrderDO workOrder = validateWorkOrder(createReqVO.getWorkOrderId()); |
| | | // 2. æ ¡éªè¯¥å·¥åæ¯å¦å·²ç»è®° |
| | | MesQcRetentionSampleDO existing = retentionSampleMapper.selectByWorkOrderId(workOrder.getId()); |
| | | if (existing != null) { |
| | | throw exception(QC_RETENTION_SAMPLE_WORK_ORDER_DUPLICATE, |
| | | workOrder.getCode(), existing.getCode()); |
| | | } |
| | | |
| | | // 3. ç»è£
çæ ·è®°å½ï¼å·¥åç¸å
³å段以å端æ¥è¯¢ç»æä¸ºåï¼ |
| | | MesQcRetentionSampleDO sample = BeanUtils.toBean(createReqVO, MesQcRetentionSampleDO.class); |
| | | sample.setId(null); |
| | | sample.setCode(autoCodeRecordService.generateAutoCode( |
| | | MesMdAutoCodeRuleCodeEnum.QC_RETENTION_SAMPLE_CODE.getCode())); |
| | | sample.setWorkOrderCode(workOrder.getCode()); |
| | | sample.setProductId(workOrder.getProductId()); |
| | | sample.setBatchCode(workOrder.getBatchCode()); |
| | | sample.setExpiryDate(resolveExpiryDate(sample.getSampleDate(), createReqVO.getExpiryDate())); |
| | | if (sample.getKeeperUserId() == null) { |
| | | sample.setKeeperUserId(getLoginUserId()); |
| | | } |
| | | fillSaleOrder(workOrder, sample, createReqVO.getSaleOrderId()); |
| | | |
| | | // 4. æå
¥ |
| | | retentionSampleMapper.insert(sample); |
| | | return sample.getId(); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateRetentionSample(MesQcRetentionSampleSaveReqVO updateReqVO) { |
| | | // 1. æ ¡éªåå¨ |
| | | MesQcRetentionSampleDO oldSample = validateRetentionSampleExists(updateReqVO.getId()); |
| | | // 2.1 ä¸å
è®¸ä¿®æ¹æå±å·¥å |
| | | if (ObjUtil.notEqual(oldSample.getWorkOrderId(), updateReqVO.getWorkOrderId())) { |
| | | throw exception(QC_RETENTION_SAMPLE_WORK_ORDER_CHANGED); |
| | | } |
| | | // 2.2 æ ¡éªå·¥å |
| | | MesProWorkOrderDO workOrder = validateWorkOrder(oldSample.getWorkOrderId()); |
| | | |
| | | // 3. ç»è£
æ´æ°å¯¹è±¡ï¼ç¼ç ãå·¥åã产åãæ¹æ¬¡ä¸å
许修æ¹ï¼ |
| | | MesQcRetentionSampleDO updateObj = BeanUtils.toBean(updateReqVO, MesQcRetentionSampleDO.class); |
| | | updateObj.setCode(null); |
| | | updateObj.setWorkOrderId(null); |
| | | updateObj.setWorkOrderCode(null); |
| | | updateObj.setProductId(null); |
| | | updateObj.setBatchCode(null); |
| | | updateObj.setExpiryDate(resolveExpiryDate(updateReqVO.getSampleDate(), updateReqVO.getExpiryDate())); |
| | | fillSaleOrder(workOrder, updateObj, updateReqVO.getSaleOrderId()); |
| | | |
| | | // 4. æ´æ° |
| | | retentionSampleMapper.updateById(updateObj); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void deleteRetentionSample(Long id) { |
| | | // 1. æ ¡éªåå¨ |
| | | MesQcRetentionSampleDO sample = validateRetentionSampleExists(id); |
| | | // 2. å·¥å已宿æ¶ä¸å
许å é¤ |
| | | MesProWorkOrderDO workOrder = workOrderService.getWorkOrder(sample.getWorkOrderId()); |
| | | if (workOrder != null |
| | | && ObjUtil.equal(workOrder.getStatus(), MesProWorkOrderStatusEnum.FINISHED.getStatus())) { |
| | | throw exception(QC_RETENTION_SAMPLE_FINISHED_DELETE, workOrder.getCode()); |
| | | } |
| | | |
| | | retentionSampleMapper.deleteById(id); |
| | | } |
| | | |
| | | // ==================== æ ¡éªä¸å¡«å
æ¹æ³ ==================== |
| | | |
| | | private MesProWorkOrderDO validateWorkOrder(Long workOrderId) { |
| | | MesProWorkOrderDO workOrder = workOrderService.getWorkOrder(workOrderId); |
| | | if (workOrder == null) { |
| | | throw exception(QC_RETENTION_SAMPLE_WORK_ORDER_NOT_EXISTS); |
| | | } |
| | | if (ObjUtil.equal(workOrder.getStatus(), MesProWorkOrderStatusEnum.CANCELED.getStatus())) { |
| | | throw exception(QC_RETENTION_SAMPLE_WORK_ORDER_CANCELED, workOrder.getCode()); |
| | | } |
| | | return workOrder; |
| | | } |
| | | |
| | | private MesQcRetentionSampleDO validateRetentionSampleExists(Long id) { |
| | | MesQcRetentionSampleDO sample = retentionSampleMapper.selectById(id); |
| | | if (sample == null) { |
| | | throw exception(QC_RETENTION_SAMPLE_NOT_EXISTS); |
| | | } |
| | | return sample; |
| | | } |
| | | |
| | | private LocalDateTime resolveExpiryDate(LocalDateTime sampleDate, LocalDateTime expiryDate) { |
| | | if (expiryDate != null) { |
| | | return expiryDate; |
| | | } |
| | | return sampleDate.plusMonths(DEFAULT_RETENTION_MONTHS); |
| | | } |
| | | |
| | | /** |
| | | * è§£æå¹¶æ ¡éªéå®è®¢åï¼ |
| | | * 1. ç± MPS ä¸åçå·¥åï¼éå®è®¢å以 MPS 为åï¼åå¹¶ä¸åæ¶ç±ç¨æ·æå®æ¬æ¬¡çæ ·å¯¹åºçéå®è®¢åï¼ |
| | | * 2. 客æ·è®¢åæ¥æºã使 MPS çå·¥åï¼æå·¥åæ¥æºåå·æ ¡éªæééå®è®¢åï¼ |
| | | * 3. åºåå¤è´§å·¥åå¯ä¸ç»å®éå®è®¢åã |
| | | */ |
| | | private void fillSaleOrder(MesProWorkOrderDO workOrder, MesQcRetentionSampleDO sample, |
| | | Long submittedSaleOrderId) { |
| | | // 1. ä¼å
ä½¿ç¨ MPS è®°å½çéå®è®¢åï¼åå¹¶ä¸åæ¶ä¸ä¸ªå·¥å对åºå¤å¼ éå®è®¢åï¼ |
| | | List<MesProMpsDO> mpsList = mpsMapper.selectListByWorkOrderId(workOrder.getId()); |
| | | Map<Long, String> saleOrderMap = new LinkedHashMap<>(); |
| | | for (MesProMpsDO mps : mpsList) { |
| | | if (mps.getSaleOrderId() != null) { |
| | | saleOrderMap.putIfAbsent(mps.getSaleOrderId(), mps.getSaleOrderNo()); |
| | | } |
| | | } |
| | | if (saleOrderMap.size() == 1) { |
| | | Map.Entry<Long, String> entry = saleOrderMap.entrySet().iterator().next(); |
| | | if (submittedSaleOrderId != null |
| | | && ObjUtil.notEqual(submittedSaleOrderId, entry.getKey())) { |
| | | throw exception(QC_RETENTION_SAMPLE_SALE_ORDER_MISMATCH, |
| | | workOrder.getCode(), entry.getValue(), |
| | | resolveSaleOrderNoOrId(submittedSaleOrderId)); |
| | | } |
| | | // æ ¡éª MPS è®°å½çéå®è®¢åçå®åå¨ï¼é¿å
æä¸åå¨ç订åéé»å¸¦å
¥çæ ·è®°å½ |
| | | validateMpsSaleOrderExists(workOrder, entry.getKey(), entry.getValue()); |
| | | sample.setSaleOrderId(entry.getKey()); |
| | | sample.setSaleOrderNo(entry.getValue()); |
| | | return; |
| | | } |
| | | if (saleOrderMap.size() > 1) { |
| | | String saleOrderNos = String.join("ã", saleOrderMap.values()); |
| | | if (submittedSaleOrderId == null) { |
| | | throw exception(QC_RETENTION_SAMPLE_SALE_ORDER_AMBIGUOUS, |
| | | workOrder.getCode(), saleOrderNos); |
| | | } |
| | | if (!saleOrderMap.containsKey(submittedSaleOrderId)) { |
| | | throw exception(QC_RETENTION_SAMPLE_SALE_ORDER_MISMATCH, |
| | | workOrder.getCode(), saleOrderNos, |
| | | resolveSaleOrderNoOrId(submittedSaleOrderId)); |
| | | } |
| | | validateMpsSaleOrderExists(workOrder, submittedSaleOrderId, |
| | | saleOrderMap.get(submittedSaleOrderId)); |
| | | sample.setSaleOrderId(submittedSaleOrderId); |
| | | sample.setSaleOrderNo(saleOrderMap.get(submittedSaleOrderId)); |
| | | return; |
| | | } |
| | | |
| | | // 2. 客æ·è®¢åæ¥æºå·¥åï¼å¿
须鿩䏿¥æºåå·ä¸è´çéå®è®¢å |
| | | if (ObjUtil.equal(workOrder.getOrderSourceType(), MesProWorkOrderSourceTypeEnum.ORDER.getType()) |
| | | && StrUtil.isNotEmpty(workOrder.getOrderSourceCode())) { |
| | | if (submittedSaleOrderId == null) { |
| | | throw exception(QC_RETENTION_SAMPLE_SALE_ORDER_REQUIRED, |
| | | workOrder.getCode(), workOrder.getOrderSourceCode()); |
| | | } |
| | | ErpSaleOrderRespDTO saleOrder = getSaleOrderOrThrow(submittedSaleOrderId); |
| | | if (StrUtil.isNotEmpty(saleOrder.getNo()) |
| | | && ObjUtil.notEqual(saleOrder.getNo(), workOrder.getOrderSourceCode())) { |
| | | throw exception(QC_RETENTION_SAMPLE_SALE_ORDER_MISMATCH, |
| | | workOrder.getCode(), workOrder.getOrderSourceCode(), saleOrder.getNo()); |
| | | } |
| | | sample.setSaleOrderId(saleOrder.getId()); |
| | | sample.setSaleOrderNo(saleOrder.getNo()); |
| | | return; |
| | | } |
| | | |
| | | // 3. åºåå¤è´§å·¥åï¼å¯éç»å® |
| | | if (submittedSaleOrderId != null) { |
| | | ErpSaleOrderRespDTO saleOrder = getSaleOrderOrThrow(submittedSaleOrderId); |
| | | sample.setSaleOrderId(saleOrder.getId()); |
| | | sample.setSaleOrderNo(saleOrder.getNo()); |
| | | } |
| | | } |
| | | |
| | | private void validateMpsSaleOrderExists(MesProWorkOrderDO workOrder, Long saleOrderId, |
| | | String saleOrderNo) { |
| | | CommonResult<ErpSaleOrderRespDTO> result = saleOrderApi.getSaleOrder(saleOrderId); |
| | | if (result.isError() || result.getData() == null) { |
| | | throw exception(QC_RETENTION_SAMPLE_MPS_SALE_ORDER_NOT_EXISTS, |
| | | workOrder.getCode(), StrUtil.blankToDefault(saleOrderNo, "æªè®°å½"), saleOrderId); |
| | | } |
| | | } |
| | | |
| | | private ErpSaleOrderRespDTO getSaleOrderOrThrow(Long saleOrderId) { |
| | | CommonResult<ErpSaleOrderRespDTO> result = saleOrderApi.getSaleOrder(saleOrderId); |
| | | if (result.isError() || result.getData() == null) { |
| | | throw exception(QC_RETENTION_SAMPLE_SALE_ORDER_NOT_EXISTS, "ID=" + saleOrderId); |
| | | } |
| | | return result.getData(); |
| | | } |
| | | |
| | | private String resolveSaleOrderNoOrId(Long saleOrderId) { |
| | | CommonResult<ErpSaleOrderRespDTO> result = saleOrderApi.getSaleOrder(saleOrderId); |
| | | if (result.isSuccess() && result.getData() != null) { |
| | | return result.getData().getNo(); |
| | | } |
| | | return "ID=" + saleOrderId; |
| | | } |
| | | |
| | | // ==================== æ¥è¯¢æ¹æ³ ==================== |
| | | |
| | | @Override |
| | | public MesQcRetentionSampleDO getRetentionSample(Long id) { |
| | | return retentionSampleMapper.selectById(id); |
| | | } |
| | | |
| | | @Override |
| | | public PageResult<MesQcRetentionSampleDO> getRetentionSamplePage( |
| | | MesQcRetentionSamplePageReqVO pageReqVO) { |
| | | return retentionSampleMapper.selectPage(pageReqVO); |
| | | } |
| | | |
| | | @Override |
| | | public MesQcRetentionSampleDO getRetentionSampleByWorkOrderId(Long workOrderId) { |
| | | return retentionSampleMapper.selectByWorkOrderId(workOrderId); |
| | | } |
| | | |
| | | } |
| | |
| | | package cn.iocoder.yudao.module.mes.service.wm.packages; |
| | | |
| | | import cn.hutool.core.util.ObjUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.packages.vo.line.MesWmPackageLinePageReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.packages.vo.line.MesWmPackageLineSaveReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemTypeDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.process.MesProProcessDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderProcessDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.packages.MesWmPackageLineDO; |
| | | import cn.iocoder.yudao.module.mes.dal.mysql.pro.feedback.MesProFeedbackMapper; |
| | | import cn.iocoder.yudao.module.mes.dal.mysql.wm.packages.MesWmPackageLineMapper; |
| | | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; |
| | | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemTypeService; |
| | | import cn.iocoder.yudao.module.mes.service.mdm.MesMdmItemService; |
| | | import cn.iocoder.yudao.module.mes.service.pro.process.MesProProcessService; |
| | | import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderProcessService; |
| | | import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService; |
| | | import jakarta.annotation.Resource; |
| | | import org.springframework.context.annotation.Lazy; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.validation.annotation.Validated; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| | | import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.WM_PACKAGE_LINE_NOT_EXISTS; |
| | | import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; |
| | | |
| | | /** |
| | | * MES è£
ç®±æç» Service å®ç°ç±» |
| | |
| | | @Validated |
| | | public class MesWmPackageLineServiceImpl implements MesWmPackageLineService { |
| | | |
| | | private static final String ASSEMBLY_PROCESS_CODE = "PRO-ASSEMBLY"; |
| | | private static final String ASSEMBLY_PROCESS_NAME = "ç»è£
"; |
| | | |
| | | @Resource |
| | | private MesWmPackageLineMapper packageLineMapper; |
| | | |
| | |
| | | @Resource |
| | | private MesMdmItemService mdmItemService; |
| | | @Resource |
| | | private MesMdItemService mdItemService; |
| | | @Resource |
| | | private MesMdItemTypeService itemTypeService; |
| | | @Resource |
| | | private MesProWorkOrderService workOrderService; |
| | | @Resource |
| | | private MesProWorkOrderProcessService workOrderProcessService; |
| | | @Resource |
| | | private MesProProcessService processService; |
| | | @Resource |
| | | private MesProFeedbackMapper feedbackMapper; |
| | | |
| | | @Override |
| | | public Long createPackageLine(MesWmPackageLineSaveReqVO createReqVO) { |
| | | // æ ¡éªæ°æ® |
| | | validateLineSaveData(createReqVO); |
| | | int boxCount = validateLineSaveData(createReqVO); |
| | | |
| | | // æå
¥ |
| | | MesWmPackageLineDO line = BeanUtils.toBean(createReqVO, MesWmPackageLineDO.class); |
| | | line.setBoxCount(boxCount); |
| | | packageLineMapper.insert(line); |
| | | return line.getId(); |
| | | } |
| | |
| | | MesWmPackageLineDO line = validatePackageLineExists(updateReqVO.getId()); |
| | | // æ ¡éªæ°æ® |
| | | updateReqVO.setPackageId(line.getPackageId()); |
| | | validateLineSaveData(updateReqVO); |
| | | int boxCount = validateLineSaveData(updateReqVO); |
| | | |
| | | // æ´æ° |
| | | MesWmPackageLineDO updateObj = BeanUtils.toBean(updateReqVO, MesWmPackageLineDO.class); |
| | | updateObj.setBoxCount(boxCount); |
| | | packageLineMapper.updateById(updateObj); |
| | | } |
| | | |
| | |
| | | // ========== æ ¡éªæ¹æ³ ========== |
| | | |
| | | /** |
| | | * æ ¡éªä¿åæ¶çå
³èæ°æ® |
| | | * æ ¡éªä¿åæ¶çå
³èæ°æ®ï¼å¹¶è¿åæ æ°é / æ¯ç®±æ°é åä¸åæ´è®¡ç®çç®±æ° |
| | | */ |
| | | private void validateLineSaveData(MesWmPackageLineSaveReqVO reqVO) { |
| | | private int validateLineSaveData(MesWmPackageLineSaveReqVO reqVO) { |
| | | // æ ¡éªè£
ç®±åç¶æä¸ºè稿 |
| | | packageService.validatePackageStatusDraft(reqVO.getPackageId()); |
| | | // æ ¡éªäº§åç©æåå¨ |
| | | mdmItemService.validateItemExistsAndEnable(reqVO.getItemId()); |
| | | // æ ¡éªå·¥å已确认 |
| | | workOrderService.validateWorkOrderConfirmed(reqVO.getWorkOrderId()); |
| | | |
| | | // æ ¡éªç©ææ¡£æ¡ï¼å¿
é¡»å±äºæååç±»ï¼ä¸å·²ç»´æ¤æ¯ç®±æ°é |
| | | MesMdItemDO item = mdItemService.getItem(reqVO.getItemId()); |
| | | if (item == null) { |
| | | throw exception(WM_PACKAGE_LINE_BOX_QUANTITY_NOT_CONFIGURED, "ID=" + reqVO.getItemId()); |
| | | } |
| | | String itemName = StrUtil.isNotBlank(item.getName()) ? item.getName() : item.getCode(); |
| | | MesMdItemTypeDO itemType = item.getItemTypeId() != null |
| | | ? itemTypeService.getItemTypeMap(Collections.singleton(item.getItemTypeId())) |
| | | .get(item.getItemTypeId()) |
| | | : null; |
| | | if (itemType == null || !Boolean.TRUE.equals(itemType.getFinishedFlag())) { |
| | | throw exception(WM_PACKAGE_LINE_ITEM_NOT_FINISHED, itemName); |
| | | } |
| | | if (item.getBoxQuantity() == null || item.getBoxQuantity().compareTo(BigDecimal.ZERO) <= 0) { |
| | | throw exception(WM_PACKAGE_LINE_BOX_QUANTITY_NOT_CONFIGURED, itemName); |
| | | } |
| | | |
| | | // æ ¡éªå·¥å已确认ï¼ä¸è£
ç®±ç©æå¿
须为工åç产å |
| | | MesProWorkOrderDO workOrder = workOrderService.validateWorkOrderConfirmed(reqVO.getWorkOrderId()); |
| | | if (ObjUtil.notEqual(reqVO.getItemId(), workOrder.getProductId())) { |
| | | MesMdItemDO product = workOrder.getProductId() != null |
| | | ? mdItemService.getItem(workOrder.getProductId()) : null; |
| | | String productName = product != null |
| | | ? (StrUtil.isNotBlank(product.getName()) ? product.getName() : product.getCode()) |
| | | : "ID=" + workOrder.getProductId(); |
| | | throw exception(WM_PACKAGE_LINE_WORK_ORDER_PRODUCT_MISMATCH, |
| | | itemName, workOrder.getCode(), productName); |
| | | } |
| | | |
| | | // æ ¡éªåä¸å·¥å累计è£
ç®±æ°éä¸è¶
è¿å·¥åæ°éï¼è稿ä¸å·²å®æçè£
ç®±åé½è®¡å
¥ï¼ |
| | | BigDecimal plannedQuantity = packageLineMapper.selectListByWorkOrderId(workOrder.getId()).stream() |
| | | .filter(line -> ObjUtil.notEqual(line.getId(), reqVO.getId())) |
| | | .map(MesWmPackageLineDO::getQuantity) |
| | | .filter(Objects::nonNull) |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | BigDecimal totalQuantity = plannedQuantity.add(reqVO.getQuantity()); |
| | | if (workOrder.getQuantity() != null && totalQuantity.compareTo(workOrder.getQuantity()) > 0) { |
| | | throw exception(WM_PACKAGE_LINE_WORK_ORDER_QUANTITY_EXCEED, |
| | | workOrder.getCode(), workOrder.getQuantity(), plannedQuantity, reqVO.getQuantity()); |
| | | } |
| | | |
| | | // æ ¡éªç»è£
å·¥åºå·²å®ææ¥å·¥ï¼ç»è£
åæ ¼æ°éå¿
é¡»è¦ç累计è£
ç®±æ°é |
| | | validateAssemblyCompleted(workOrder, plannedQuantity, reqVO.getQuantity(), totalQuantity); |
| | | |
| | | // ç®±æ° = æ°é / æ¯ç®±æ°éï¼åä¸åæ´ |
| | | return reqVO.getQuantity().divide(item.getBoxQuantity(), 0, RoundingMode.CEILING).intValue(); |
| | | } |
| | | |
| | | /** |
| | | * æ ¡éªå·¥åçãç»è£
ãå·¥åºå·²å®ææ¥å·¥ï¼ä¸åæ ¼æ°éä¸å°äºç´¯è®¡è£
ç®±æ°é |
| | | */ |
| | | private void validateAssemblyCompleted(MesProWorkOrderDO workOrder, BigDecimal packedQuantity, |
| | | BigDecimal currentQuantity, BigDecimal totalQuantity) { |
| | | List<Long> processIds = workOrderProcessService.getWorkOrderProcessListByWorkOrderId(workOrder.getId()) |
| | | .stream() |
| | | .map(MesProWorkOrderProcessDO::getProcessId) |
| | | .filter(Objects::nonNull) |
| | | .distinct() |
| | | .toList(); |
| | | List<Long> assemblyProcessIds = processService.getProcessMap(processIds).values().stream() |
| | | .filter(process -> ASSEMBLY_PROCESS_CODE.equalsIgnoreCase(process.getCode()) |
| | | || ASSEMBLY_PROCESS_NAME.equals(process.getName())) |
| | | .map(MesProProcessDO::getId) |
| | | .toList(); |
| | | if (assemblyProcessIds.isEmpty()) { |
| | | throw exception(WM_PACKAGE_LINE_ASSEMBLY_PROCESS_NOT_FOUND, workOrder.getCode()); |
| | | } |
| | | BigDecimal assembledQuantity = feedbackMapper.selectFinishedQualifiedQuantitySum( |
| | | workOrder.getId(), assemblyProcessIds); |
| | | if (assembledQuantity.compareTo(totalQuantity) < 0) { |
| | | throw exception(WM_PACKAGE_LINE_ASSEMBLY_NOT_COMPLETED, |
| | | workOrder.getCode(), assembledQuantity, totalQuantity, packedQuantity, currentQuantity); |
| | | } |
| | | } |
| | | |
| | | private MesWmPackageLineDO validatePackageLineExists(Long id) { |
| | |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.packages.vo.MesWmPackagePageReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.packages.vo.MesWmPackageSaveReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.packages.MesWmPackageDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.packages.MesWmPackageLineDO; |
| | | import cn.iocoder.yudao.module.mes.dal.mysql.pro.workorder.MesProWorkOrderMapper; |
| | | import cn.iocoder.yudao.module.mes.dal.mysql.wm.packages.MesWmPackageLineMapper; |
| | | import cn.iocoder.yudao.module.mes.dal.mysql.wm.packages.MesWmPackageMapper; |
| | | import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum; |
| | | import cn.iocoder.yudao.module.mes.enums.wm.MesWmPackageStatusEnum; |
| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.validation.annotation.Validated; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| | | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; |
| | |
| | | |
| | | @Resource |
| | | private MesWmPackageLineService packageLineService; |
| | | @Resource |
| | | private MesWmPackageLineMapper packageLineMapper; |
| | | @Resource |
| | | private MesProWorkOrderMapper workOrderMapper; |
| | | @Resource |
| | | private MesWmBarcodeService barcodeService; |
| | | @Resource |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void finishPackage(Long id) { |
| | | // æ ¡éªåå¨ä¸ä¸ºè稿 |
| | | validatePackageExistsAndDraft(id); |
| | |
| | | // æ´æ°ç¶æä¸ºå·²å®æ |
| | | packageMapper.updateById(new MesWmPackageDO() |
| | | .setId(id).setStatus(MesWmPackageStatusEnum.FINISHED.getStatus())); |
| | | |
| | | // æçäº§å·¥åæ±æ»æ¬æ¬¡è£
ç®±æ°éä¸ç®±æ°ï¼ç´¯å å°å·¥åå¹¶éç®è£
ç®±ç¶æ |
| | | Map<Long, List<MesWmPackageLineDO>> linesByWorkOrder = packageLineMapper.selectListByPackageId(id).stream() |
| | | .filter(line -> line.getWorkOrderId() != null) |
| | | .collect(Collectors.groupingBy(MesWmPackageLineDO::getWorkOrderId)); |
| | | linesByWorkOrder.forEach((workOrderId, lines) -> { |
| | | BigDecimal quantity = lines.stream() |
| | | .map(MesWmPackageLineDO::getQuantity) |
| | | .filter(Objects::nonNull) |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | int boxCount = lines.stream() |
| | | .map(MesWmPackageLineDO::getBoxCount) |
| | | .filter(Objects::nonNull) |
| | | .mapToInt(Integer::intValue).sum(); |
| | | workOrderMapper.updatePackedQuantity(workOrderId, quantity, boxCount); |
| | | workOrderMapper.updatePackingStatus(workOrderId); |
| | | }); |
| | | } |
| | | |
| | | @Override |
| | |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.line.MesWmProductSalesLinePageReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.line.MesWmProductSalesLineSaveReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productsales.MesWmProductSalesDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productsales.MesWmProductSalesLineDO; |
| | | import cn.iocoder.yudao.module.mes.dal.mysql.wm.productsales.MesWmProductSalesLineMapper; |
| | | import cn.iocoder.yudao.module.mes.enums.qc.MesQcCheckResultEnum; |
| | | import cn.iocoder.yudao.module.mes.enums.wm.MesWmQualityStatusEnum; |
| | | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; |
| | | import cn.iocoder.yudao.module.mes.service.mdm.MesMdmItemService; |
| | | import cn.iocoder.yudao.module.mes.service.wm.batch.MesWmBatchService; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.batch.MesWmBatchDO; |
| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.validation.annotation.Validated; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | |
| | | @Resource |
| | | private MesMdmItemService mdmItemService; |
| | | @Resource |
| | | private MesMdItemService mdItemService; |
| | | @Resource |
| | | private MesWmBatchService batchService; |
| | | @Resource |
| | | @Lazy |
| | |
| | | |
| | | // æ°å¢ |
| | | MesWmProductSalesLineDO line = BeanUtils.toBean(createReqVO, MesWmProductSalesLineDO.class); |
| | | line.setBoxCount(calculateBoxCount(line.getItemId(), line.getQuantity())); |
| | | productSalesLineMapper.insert(line); |
| | | return line.getId(); |
| | | } |
| | |
| | | |
| | | // æ´æ° |
| | | MesWmProductSalesLineDO updateObj = BeanUtils.toBean(updateReqVO, MesWmProductSalesLineDO.class); |
| | | updateObj.setBoxCount(calculateBoxCount(updateObj.getItemId(), updateObj.getQuantity())); |
| | | productSalesLineMapper.updateById(updateObj); |
| | | |
| | | // æ£æ¥æ¯å¦éè¦å建 OQC æ£éªåï¼ä»ä¸éè¦æ£éªå为éè¦æ£éª |
| | |
| | | } |
| | | |
| | | /** |
| | | * æ æ°é / ç©ææ¯ç®±æ°é åä¸åæ´è®¡ç®ç®±æ°ï¼æªç»´æ¤æ¯ç®±æ°éæ¶è¿å 0 |
| | | */ |
| | | private int calculateBoxCount(Long itemId, BigDecimal quantity) { |
| | | if (itemId == null || quantity == null) { |
| | | return 0; |
| | | } |
| | | MesMdItemDO item = mdItemService.getItem(itemId); |
| | | if (item == null || item.getBoxQuantity() == null |
| | | || item.getBoxQuantity().compareTo(BigDecimal.ZERO) <= 0) { |
| | | return 0; |
| | | } |
| | | return quantity.divide(item.getBoxQuantity(), 0, RoundingMode.CEILING).intValue(); |
| | | } |
| | | |
| | | /** |
| | | * æ ¹æ® batchCode è§£æ batchId |
| | | */ |
| | | private void fillBatchId(MesWmProductSalesLineSaveReqVO reqVO) { |
| | |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.MesWmProductSalesPageReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.MesWmProductSalesSaveReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.MesWmProductSalesShippingReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.MesWmProductSalesStatisticsPageReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.MesWmProductSalesStatisticsRespVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productsales.MesWmProductSalesDO; |
| | | import jakarta.validation.Valid; |
| | | |
| | |
| | | PageResult<MesWmProductSalesDO> getProductSalesPage(MesWmProductSalesPageReqVO pageReqVO); |
| | | |
| | | /** |
| | | * è·å¾åè´§ç»è®¡åé¡µï¼æ å®¢æ· + éå®è®¢åå· + ç©æ æ±æ»å·²å®æåºåºåçç®±æ°ä¸æ°éï¼ |
| | | * |
| | | * @param pageReqVO å页忰 |
| | | * @return åè´§ç»è®¡å页 |
| | | */ |
| | | PageResult<MesWmProductSalesStatisticsRespVO> getProductSalesStatisticsPage( |
| | | MesWmProductSalesStatisticsPageReqVO pageReqVO); |
| | | |
| | | /** |
| | | * æäº¤éå®åºåºå |
| | | * <ul> |
| | | * <li>æ OQC æ£éªè¡ï¼è稿 â å¾
æ£æµ</li> |
| | |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.MesWmProductSalesPageReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.MesWmProductSalesSaveReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.MesWmProductSalesShippingReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.MesWmProductSalesStatisticsPageReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.MesWmProductSalesStatisticsRespVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.salesnotice.MesWmSalesNoticeDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productsales.MesWmProductSalesDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productsales.MesWmProductSalesDetailDO; |
| | |
| | | import cn.iocoder.yudao.module.mes.service.qc.oqc.MesQcOqcService; |
| | | import cn.iocoder.yudao.module.erp.api.sale.ErpSaleOrderApi; |
| | | import cn.iocoder.yudao.module.erp.api.sale.enums.ErpSaleOrderOutStatusEnum; |
| | | import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.context.annotation.Lazy; |
| | |
| | | } |
| | | |
| | | @Override |
| | | public PageResult<MesWmProductSalesStatisticsRespVO> getProductSalesStatisticsPage( |
| | | MesWmProductSalesStatisticsPageReqVO pageReqVO) { |
| | | IPage<MesWmProductSalesStatisticsRespVO> mpPage = MyBatisUtils.buildPage(pageReqVO); |
| | | IPage<MesWmProductSalesStatisticsRespVO> result = productSalesMapper.selectStatisticsPage(mpPage, pageReqVO); |
| | | return new PageResult<>(result.getRecords(), result.getTotal()); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void submitProductSales(Long id) { |
| | | // æ ¡éªåå¨ + èç¨¿ç¶æ |
| | |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.salesnotice.vo.MesWmSalesNoticePageReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.salesnotice.vo.MesWmSalesNoticeSaveReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productsales.MesWmProductSalesDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productsales.MesWmProductSalesLineDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.salesnotice.MesWmSalesNoticeDO; |
| | |
| | | import cn.iocoder.yudao.module.mes.enums.wm.MesWmOutStatusEnum; |
| | | import cn.iocoder.yudao.module.mes.enums.wm.MesWmProductSalesStatusEnum; |
| | | import cn.iocoder.yudao.module.mes.service.md.autocode.MesMdAutoCodeRecordService; |
| | | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; |
| | | import cn.iocoder.yudao.module.crm.api.customer.CrmCustomerApi; |
| | | import cn.iocoder.yudao.module.erp.api.sale.ErpSaleOrderApi; |
| | | import cn.iocoder.yudao.module.erp.api.sale.dto.ErpSaleOrderItemRespDTO; |
| | |
| | | import org.springframework.validation.annotation.Validated; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.util.Collection; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| | | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; |
| | | import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; |
| | | import static cn.iocoder.yudao.module.mes.enums.wm.MesWmSalesNoticeStatusEnum.*; |
| | | |
| | |
| | | private MesWmProductSalesLineMapper productSalesLineMapper; |
| | | @Resource |
| | | private MesWmSalesNoticeLineMapper salesNoticeLineMapper; |
| | | @Resource |
| | | private MesMdItemService mdItemService; |
| | | |
| | | @Override |
| | | public Long createSalesNotice(MesWmSalesNoticeSaveReqVO createReqVO) { |
| | |
| | | productSalesMapper.insert(productSales); |
| | | |
| | | // 6. éååè´§éç¥åè¡å建éå®åºåºåè¡ |
| | | Map<Long, MesMdItemDO> itemMap = mdItemService.getItemMap( |
| | | convertSet(noticeLines, MesWmSalesNoticeLineDO::getItemId)); |
| | | for (MesWmSalesNoticeLineDO noticeLine : noticeLines) { |
| | | MesWmProductSalesLineDO salesLine = new MesWmProductSalesLineDO(); |
| | | salesLine.setSalesId(productSales.getId()); |
| | |
| | | salesLine.setBatchId(noticeLine.getBatchId()); |
| | | salesLine.setBatchCode(noticeLine.getBatchCode()); |
| | | salesLine.setOqcCheckFlag(noticeLine.getOqcCheckFlag()); |
| | | // æ æ°é / ç©ææ¯ç®±æ°é åä¸åæ´è®¡ç®ç®±æ°ï¼æªç»´æ¤æ¯ç®±æ°éæ¶è®° 0 |
| | | MesMdItemDO item = itemMap.get(noticeLine.getItemId()); |
| | | if (item != null && item.getBoxQuantity() != null |
| | | && item.getBoxQuantity().compareTo(BigDecimal.ZERO) > 0 |
| | | && noticeLine.getQuantity() != null) { |
| | | salesLine.setBoxCount(noticeLine.getQuantity() |
| | | .divide(item.getBoxQuantity(), 0, RoundingMode.CEILING).intValue()); |
| | | } |
| | | productSalesLineMapper.insert(salesLine); |
| | | } |
| | | |
| | |
| | | <if test="pageReqVO.status != null"> |
| | | AND t.status = #{pageReqVO.status} |
| | | </if> |
| | | <if test="pageReqVO.packingStatus != null"> |
| | | AND t.packing_status = #{pageReqVO.packingStatus} |
| | | </if> |
| | | <if test="pageReqVO.requestDate != null and pageReqVO.requestDate.length > 0"> |
| | | AND t.request_date >= #{pageReqVO.requestDate[0]} |
| | | <if test="pageReqVO.requestDate.length > 1"> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="cn.iocoder.yudao.module.mes.dal.mysql.wm.productsales.MesWmProductSalesMapper"> |
| | | |
| | | <!-- åè´§ç»è®¡ï¼æ å®¢æ· + éå®è®¢åå· + ç©æ æ±æ»å·²å®æåºåºåï¼status=4ï¼çç®±æ°ä¸æ°é --> |
| | | <select id="selectStatisticsPage" resultType="cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.MesWmProductSalesStatisticsRespVO"> |
| | | SELECT |
| | | s.client_id, |
| | | s.sales_order_code, |
| | | l.item_id, |
| | | IFNULL(SUM(l.quantity), 0) AS total_quantity, |
| | | CAST(IFNULL(SUM(l.box_count), 0) AS SIGNED) AS total_box_count, |
| | | COUNT(DISTINCT s.id) AS shipment_count, |
| | | MAX(s.sales_date) AS last_shipment_date |
| | | FROM mes_wm_product_sales s |
| | | INNER JOIN mes_wm_product_sales_line l ON l.sales_id = s.id AND l.deleted = 0 |
| | | WHERE s.deleted = 0 AND s.status = 4 |
| | | <if test="pageReqVO.clientId != null"> |
| | | AND s.client_id = #{pageReqVO.clientId} |
| | | </if> |
| | | <if test="pageReqVO.salesOrderCode != null and pageReqVO.salesOrderCode != ''"> |
| | | AND s.sales_order_code LIKE CONCAT('%', #{pageReqVO.salesOrderCode}, '%') |
| | | </if> |
| | | <if test="pageReqVO.itemId != null"> |
| | | AND l.item_id = #{pageReqVO.itemId} |
| | | </if> |
| | | <if test="pageReqVO.shipmentDate != null and pageReqVO.shipmentDate.length > 0"> |
| | | AND s.sales_date >= #{pageReqVO.shipmentDate[0]} |
| | | <if test="pageReqVO.shipmentDate.length > 1"> |
| | | AND s.sales_date <= #{pageReqVO.shipmentDate[1]} |
| | | </if> |
| | | </if> |
| | | GROUP BY s.client_id, s.sales_order_code, l.item_id |
| | | ORDER BY last_shipment_date DESC, s.client_id ASC, s.sales_order_code ASC |
| | | </select> |
| | | |
| | | </mapper> |