Merge branch 'master' of ssh://139.186.142.91:29418/productDev/dmMes
| | |
| | | # VUE_APP_BASE_URL = 'http://121.41.112.139:10012/'
|
| | |
|
| | | #æ£å¼ç¯å¢
|
| | | #VUE_APP_BASE_URL = 'http://127.0.0.1:10012/'
|
| | | #è¾ä¸½æ ¼æ¯ https://hsky.doumee.com/doumeeplant_api/doc.html
|
| | |
|
| | | # VUE_APP_BASE_URL = 'https://hsky.doumee.com/doumeeplant_api/'
|
| | | # https://dmtest.ahapp.net/doumeeplant_api/doc.html
|
| | | # VUE_APP_BASE_URL = 'https://dmtest.ahapp.net/doumeeplant_api/'
|
| | | VUE_APP_BASE_URL = 'https://www.mes.red/doumeeplant/'
|
| | | # VUE_APP_BASE_URL = 'http://192.168.0.18:10021/'
|
| | |
| | | <div class="common-header"> |
| | | <div class="header"> |
| | | <div class="logo"> |
| | | <div>å·¥åå¹³å°ç«¯</div> |
| | | <div>DMäºå·¥åå¹³å°ç«¯</div> |
| | | <!-- <div class="title-en">Diagnosis of Intelligent Manufacturing Integrated Service Platfrom</div> --> |
| | | </div> |
| | | <div class="user"> |
| | |
| | | this.fetchData() |
| | | }, |
| | | type () { |
| | | console.log(type); |
| | | debugger |
| | | this.fetchData() |
| | | } |
| | | }, |
| | |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <p class="tip" v-if="form.parent != null && form.id == null">为 <em>{{parentName}}</em> æ°å»ºåèå</p> |
| | | <p class="tip" v-if="form.parentId != null && form.id == null">为 <em>{{parentName}}</em> æ°å»ºåèå</p> |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="ä¸çº§èå" prop="parentId"> |
| | | <MenuSelect v-if="visible" v-model="form.parentId" placeholder="è¯·éæ©ä¸çº§èå" type="2" :exclude-id="excludeMenuId" clearable :inline="false"/> |
| | |
| | | <el-form-item label="徿 " prop="icon" class="form-item-icon"> |
| | | <div style="display: flex;"> |
| | | <UploadAvatarImage |
| | | :file="{ 'imgurlfull': form.icon, 'imgurl': form.icon }" |
| | | :file="{ 'imgurlfull': form.fullIcon, 'imgurl': form.icon }" |
| | | :uploadData="uploadData" |
| | | customStyle="width: 80px; height: 80px;" |
| | | tipsLabel="ä¸ä¼ 徿 " |
| | |
| | | uploadData: { |
| | | floader: 'company/menu' |
| | | }, |
| | | parent: {}, |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | |
| | | name: '', |
| | | path: '', |
| | | icon: '', |
| | | fullIcon: '', |
| | | remark: '', |
| | | type: '2' |
| | | }, |
| | |
| | | } |
| | | } |
| | | }, |
| | | |
| | | created () { |
| | | this.config({ |
| | | api: '/system/menu' |
| | | }) |
| | | }, |
| | | methods: { |
| | | /** |
| | | * @title: çªå£æ é¢ |
| | |
| | | * @parent: æ°å»ºæ¶çä¸çº§èå |
| | | * @type: 0å¹³å° 1ãä¼ä¸ 2ãh5 |
| | | */ |
| | | open (title, target, parent, type) { |
| | | open (title, target, parent) { |
| | | debugger |
| | | this.title = title |
| | | |
| | | console.log('-----',parent); |
| | | this.visible = true |
| | | // æ°å»ºï¼menu为空æ¶è¡¨ç¤ºæ°å»ºèå |
| | | if (target == null) { |
| | | this.excludeMenuId = null |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | this.parent = parent |
| | | this.form.id = null |
| | | this.form.parentId = parent == null ? null : parent.id |
| | | this.parentName = parent == null ? null : parent.name |
| | | this.form.type = type |
| | | }) |
| | | return |
| | | } |
| | |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | this.form.fullIcon = !!target.icon ? (target.resourcePath + target.icon) : '' |
| | | }) |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | api: '/system/menu' |
| | | }) |
| | | }, |
| | | methods: { |
| | | }, |
| | | uploadReverseSuccess(file) { |
| | | // this.form. = file.imgurl; |
| | | this.form.icon = file.imgurlfull; |
| | | this.form.icon = file.imgurl; |
| | | this.form.fullIcon = file.imgurlfull; |
| | | } |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | |
| | | * @type: 0å¹³å° 1ãä¼ä¸ 2ãh5 |
| | | */ |
| | | open (title, target, parent, type) { |
| | | debugger |
| | | this.title = title |
| | | this.visible = true |
| | | // æ°å»ºï¼menu为空æ¶è¡¨ç¤ºæ°å»ºèå |
| | |
| | | this.excludeMenuId = null |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | this.form.type = type |
| | | this.form.id = null |
| | | this.form.parentId = parent == null ? null : parent.id |
| | | this.parentName = parent == null ? null : parent.name |
| | | this.form.type = type |
| | | }) |
| | | return |
| | | } |
| | |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | this.form.type = type |
| | | }) |
| | | } |
| | | }, |
| | |
| | | } |
| | | /** |
| | | * |
| | | |
| | | è¿ä¸æ¬¡å¤åå´©å¼å¯è½å°±æ¯ä¸éé仿®¿æå
³ï¼æ¯å®æ£åçæ°æºå å§äºæ¤å°é«å°çé¾è£ï¼èåå
¨é¢å¡æ²ï¼åºç°å¤©åã |
| | | |
| | | ä¸éé仿®¿ç¸æ¯ï¼ä¸ä½å¤å£ç身é«è¥èè«è¬ï¼ä¸»è¦æ¯è¿åº§é殿太大äºä¸å¨æ£åæ ç©·ä»å
ã |
| | | |
| | | æ¾ç¶ï¼ä»ä»¬åç°äºå¶å¡å 人ï¼éå¦ççä¸åç³å忝黿¥è¬ï¼æ¼é»èæ·±ä¸å¯æµååºä¸ç¼ç¼ä¹å
ï¼æ«è§äºè¿æ¥ï¼æä¸ç§é«é«å¨ä¸ï¼ä¿¯è§è¼èè¬çæ°å¿ã |
| | | |
| | | 坿ï¼ä»æ æ³è±å°æ²¡æåæ³å²è¿æ¥ï¼æ´ä¸è½åºæã |
| | | |
| | | å¶å¡ã段德ãé»ççäººé½æ æ§ï¼ä¸äººèªèº«é¾ä¿è¢«å®å¨äºé£éï¼è½å¦æ´»ä¸å»é½ä¸¤è¯´ã |
| | | |
| | | âæ¯æ°â¦â¦è¿ä¹å¤ï¼ï¼âé¾é©¬åè¹ååºå
ç«ï¼è¿è¿çç»çéæ®¿æ¯è¡ï¼ä¸å¯ç²¾åè¿å©çæ ·åã |
| | | |
| | | å¶ç³ä¹å¼ 大äºå´å·´ï¼é³åºä¸å¯æè®®çç¥è²ï¼éï¼âå¸åè¿å°±æ¯ä½ é¼çæ¥æºå¤ï¼â |
| | | |
| | | âç 人å大å¸äºä¸å¾ï¼è¿æ¯è¦åä»ä¹ï¼æå¼äºä¸ä¸ªæ··æ²ä»å°ï¼è¿æ¯è¦æé æå¼ºä»å
µåè¿ä¹å¤æ¯æ°é¸é¼ï¼å夿ç¼ï¼ä¸å»ä¹ä¸è°è½æ¡ä½ï¼â大é»çä¹éæ¼ã |
| | | |
| | | å¨éé仿®¿å¤é¨ä¸ç©æ¯æ°ç¼ç»ï¼æçæå±±ææµ·ï¼ä¸å±åä¸å±ï¼è¥æåè¬æ²éåç人å°åæ¢å¼å¸ï¼ææ éçéçå¨äº¤ç»ã |
| | | |
| | | ä»»ä½ä¸ç¼æ¯æ°é½å¯ä»¥åå¡ä¸åº§å±±èè¿ä¹å¤åèå¨ä¸èµ·ï¼è¿å¾å¤ä¹æ²éï¼å¤ä¹å¤§å¸ä»¥å®é¸æå
µå¨ï¼æ¯æ³ä¸å»åæç¢å
¶ä»å¸å
µåï¼ |
| | | |
| | | 寻常人è¥è½å¯»å°ä¸ç¼æ¯æ°å°±æ¯å¤§æºç¼äºï¼èä»è¿ä¹å¤ï¼è·äºå±ä¸è¬å¯å¸ï¼ç¬¼è¹æ¤å°ï¼å¤æ´å¤§æ°ï¼å·å³¨ç£
æï¼æ¯ä¸ç§å¥è¿¹ã |
| | | |
| | | âèµ·ï¼â |
| | | |
| | | å¶å¡å¤§åäºä¸å£°ï¼é¢éª¨å
ä¸ä¸ªéè²çå°äººçå¼äºç¼çï¼é¿èº«èèµ·ï¼ä¸æ¥è¿åºï¼ä»¥éç为æè¡£ï¼ä»¥é¼ä¸ºå
µå¨ã |
| | | |
| | | ä¸è½´æ¯æ°é¼æ¬å¨å
¶å¤´ä¹ï¼éè²å°äººå¼ å£ä¸å£°æ¸
å¸ï¼å°é¼å¿«éæ¾å¤§ï¼ååé£å»ï¼å¼å§é²¸å¸ç饮ï¼åæ¶é£æµ·éçæ¯æ°ï¼ |
| | | |
| | | âä½ æ¢â¦â¦âéå¦å¤§æï¼ç»æ¯åäºé¢è²ï¼é¾ä»¥ä¸è¯ï¼æ æ³éå®ã |
| | | |
| | | è¿ä¹å¤ä¸ç©æ¯æ°ï¼å³ä¾¿å¤±å»äºæºæ ¹ï¼ä¹æ¯ä¸¾ä¸é¾å¯»çç¥æï¼è¥æ¯å°æï¼ç®ç´æ¯é天çé åã |
| | | |
| | | ä»ä¹ä¸è¥¿æçè´µï¼èªç¶æ¯å¤ä¹å¤§å¸çå
µå¨ï¼èè¿äºçæ¯æ°éæ¯äººæå¤§å¸åå¤ç¨æ¥ç¼å
µçï¼ä»·å¼æ²¡æåæ³è¡¡éã |
| | | |
| | | å¦å¤ä¸¤ä½å¤å£åè²ï¼æå¿æ åï¼ç身é½é¾ä¿äºï¼è¿æä¹å»é»æ¡ï¼ |
| | | |
| | | â人æçå£ä½ï¼ä½ ææé¨ä¼ï¼å¤ºæé åï¼æ¤æ¯å¤§ä»ï¼æè¥è±å°ï¼æä»¥ç¾æ¬¡ï¼å³ä¾¿æ¯ææèä½ä¹æ è¯å¯è¯´ãâéå¦å¹½æ£®çå¼å£ã |
| | | |
| | | âçä½ è±å°æ¶å计è¾å§ï¼ç°å¨ææ²¡ç©ºæçä½ ï¼ç»ææ¾ä¸ªå°æ¹èªå·²æ¸
åå»ãâå¶å¡æ¼«ä¸ç»å¿ç说éã |
| | | |
| | | æ¤æ¶ï¼ä»å¿æ
大好ï¼ä»¥é¼åæ¶æµ·éæ¯æ°ï¼çº³äºé¼å©ºï¼çåç¼äºä¸ä½ã |
| | | |
| | | å
µåè¯åç¶ï¼ä»ç鼿²æ²æµ®æµ®ï¼ä¿æ°ä½åï¼æ¯æ°å¦ä¸æµå½æµ·ï¼åçèç©ºææ²ãå´©å¡ï¼ä¸é¼åä¸ï¼ä¸åå½¼æ¤ã |
| | | |
| | | ä¸ç©æ¯æ°æºä»æ¤åä¸ï¼ç 人çå¸å
µææï¼ä¸åå¤ç½è§ï¼éå¦ç¼çº¢ä¸æå¼ï¼èªç¶æ¯åæ£å¸¸ä¸è¿çäºæ
äºï¼ |
| | | |
| | | é¼ï¼ä¸ºæ¯æ°ç²¾ç²¹ï¼æ¤æ¶ä¸æµ·éæ¯æ°åä¸ï¼æ°´ä¹³å交èï¼æ£ååºä¸ç§ç彿³¢å¨ï¼åæ¯å°è¦è¯çç¥çµå¿äºã |
| | | |
| | | âä½ å彿¶èµ°ï¼æ å½ä½¿ç¨ãâéå¦å·æ£®æ£®çç¬ï¼ä»å
满äºä¸æ¢ï¼ææºæ¯é³ï¼æ¯ä¸å æ©é¥°çã |
| | | |
| | | è¥æ¯è½è¡å¨ï¼ä»è¯å®ä¼å¨ç¬¬ä¸æ¶é´åºæï¼å°å¶å¡ç¢¾åæé£ç°ï¼æ æ¯çéæ¾ã |
| | | |
| | | âä½ æ²¡æè¿ä¸ªæºä¼ï¼å³ä¾¿ä½ æä¸ºäºå£çº§äººç©ï¼ä½ä¹ä¸è§å¾ä¸ä¼æ®è½ï¼è¿æ¯å½å¿ä½ èªå·²å§ãâå¶å¡ç¬éã |
| | | |
| | | ä»å¹¶æ ¹æ¬ä¸è®¡è¾ï¼æä»ä¹æ¯è¯éä¹å¨å®ç¾æ´äººæ¿å¨ï¼ä»ç鼿µ·çº³ç¾å·ï¼å°æææ¯æ°é½ç»æ±²åäºï¼éç交ç»ã |
| | | |
| | | âäºåä¸ï¼ä½ å´å·´æå¥½èå®ç¹ï¼ä¸ç¶æ¬åº§èµä½ ä¸ä¸ªé
è´´ï¼åè®©ä½ æ¥ä¸ªé©´ææ»ãâé¾é©¬æ»¡å£æµè¯ã |
| | | |
| | | å®è¾¹è¯´è¾¹æ¬èµ·äºè¹åï¼åå¤ä¸è¹¶åå°¥è¿å»ï¼è½åäºåä¸åç³ï¼å°éå¦é¥®æ¨ï¼æ»å¨éé仿®¿ä¸ã |
| | | |
| | | âå«ï¼âæ®µå¾·èµ¶ç´§é»æ¢ï¼è®©å®ä¸è¦è½»ä¸¾å¦å¨ã |
| | | |
| | | é£ééæ®¿ï¼ä¸ä»å
亿ä¸ç¼ï¼å°ç¥çé½è¦å没äºï¼ä»ä»¬è¥æ¯è´¸ç¶åºæï¼ä¹è¢«åè¿å»å°±éº»ç¦å¤§äºã |
| | | |
| | | âè¿ç§å¹³è¡¡ä¸å¯æç ´ï¼ä»ä»¬è¥æ¯å½å¤§å°±é¯åºæ¥ï¼å½å°å°±ççæ®è½å§ãâé»çä¹éã |
| | | |
| | | å¶å¡å®å·¥ï¼é¼ä¸ä¸åä¹ä¸ç¥éäºå¤å°åï¼å¥½å¨æ©å·²è¢«ç¼åï¼å
¶éä¸è¢«ä»æ¿åï¼ç°å¨ç ¸åºå»ï¼ä¸å¨ç¨æ³ååï¼ä¼°è®¡ä¸è¬çææå°±å¾ç´æ¥æä¸ºé½ç²ã |
| | | |
| | | âå°åï¼è¿ä¹å®è´µçä¸è¥¿è½å
¥äºä½ çæä¸ï¼ä½ 徿¿ä¸è¥¿è¡¥å¿æä»¬ï¼ä¸ç¶å°±å¹³åï¼æ¢ä½ä»äººï¼æ¬çæ©å°±æ¢äºï¼â大é»çå«å£ã |
| | | |
| | | â廿¯å¤©çåï¼ä»ä»èº«åä½åå
ææåºç好ä¸è¥¿ä¸å°ï¼æä¹ä¸è§ä½ ä¸ç¼´ï¼âå¶å¡æä»èåºã |
| | | |
| | | âæ é天å°ï¼æ¢ç¶è¿æ¯ä½ çè¯éç©ï¼è´«é乿æå人ä¹ç¾ï¼å°æ¶åå°ä»ä¸æ»å¤©çè¡å®«ä¸å¼æ¥çæéè¶çå¤åæä¸ä»½å°±è¡äºãâ |
| | | |
| | | âè¿ææçâ¦â¦âé¾é©¬ä¹å«éã |
| | | |
| | | ä¸ä¸ªæåä¸èµ·å«å·ãå¶ç³å¾æ¬åï¼ä¸å¯è½å»çåå¸å
çå®è´ã |
| | | |
| | | ä¸è¿å¤ï¼ä¸ä½å¤å£çé·æ°ï¼ç¼çççççå 个å°è¾æ¶èµ°äºå¤ä¹å¤§å¸çä¸å±ä»æï¼èä»è¿æ¾èç卿¤è®®è®ºåèµï¼å®å¨è®©ä»ä»¬å¤§æ¨ã |
| | | |
| | | å°¤å
¶æ¯éå¦ï¼èºé½è¦æ°ç¸äºï¼å 为é£å¤´é¾é©¬ä¸å£ä¸ä¸ªäºåä¸ï¼å¬é£å£å»è¯å®ä¸æ¯ä»ä¹å¥½è¯ï¼æçç¼ççä»ï¼æ ¹æ¬å°±æ²¡æå°ä»å½æä¸ä½å£å人ã |
| | | |
| | | âå¦â¦â¦â段德è¹çï¼åæ¯è§å¯å°äºä»ä¹ã |
| | | |
| | | å°å¥½ï¼æå£å人æ¥äºï¼æ¬çå¸ä¸éµçº¹æååºï¼æå¿æèè·³ãâé»çåè²ã |
| | | |
| | | èä»ï¼ä¸ä¸ºå£å人ï¼ç¼ºå°å®èº«ç«å½çèµæ¬ï¼ä»ä»¬èªç¶è°¨æ
å°å¿ï¼å¨è¿æ¥åå¸ä¸äºåç§éµçº¹ï¼åªè¦å£å人é临ï¼å°±ä¼é¢å¼ã |
| | | |
| | | é»çäºè¯æ²¡è¯´ï¼ååºæ£çéµå°ï¼æå¼è空ï¼ç´æ¥æ²¡å
¥äºè¿å»ï¼å¿«éä»è¿ä¸ªå°æ¹æ¶å¤±ã |
| | | |
| | | âç坿ï¼éé仿®¿ä¸å¯æ¯æä¸ä¸ªæ··æ²ä»å°ï¼éé¢å¤åæç¥çãâæ®µå¾·å¾éæ¾ã |
| | | |
| | | âå¤ªå¯æäºï¼âé¾é©¬æ´æ¯åå§ä¸å®ï¼ä½æ²¡æåæ³ï¼å£å人æ¥äºï¼ä»ä»¬åªè½éã |
| | | |
| | | âä¸ç©æ¯æ°æä¸å¯åä½ ä»¬æä¸ï¼é¡¹ä¸äººå¤´ä¹å
ççï¼æä¼å»æ¶åçï¼âéå¦é´æ£®æ£®ç说éã |
| | | |
| | | âäºåä¸ï¼å®å¿ççæ»å§ãâé¾é©¬ç´æ¥ä¸å¥è¯å·®ç¹åæ»ä»ã |
| | | |
| | | âå·â |
| | | |
| | | å
åä¸éªï¼ä»ä»¬æ¶å¤±å¨äºå°åä¸ä¸çã |
| | | |
| | | è¿å¤ï¼ç¥ç§æ³¢å¨æ©æ£ï¼å鍿å¼ï¼ä¸ä¸ªæ»¡å¤´èµ¤åç女åèµ°åºï¼èä½ä¿®åé¿ç«å¥ï¼æ¯ä¸å强大ç夿ã |
| | | |
| | | âè¡çµå¥³çæ¥äºï¼â |
| | | |
| | | ä¸å°äººæå¼ï¼è¿æ¯ä¸ä¸ªå£å人çï¼æ¾å¨ç¶æ± 大åä¼åºç°è¿ï¼æ¾ä¸å§ç¥ç对å³ï¼ä»æ¥ç«ç¶äº²èº«é临ï¼äºæ
è¶æ¥è¶å¤§ï¼è¿ç人ç©ä¹é½åä¸ä½äºã |
| | | |
| | | 她没æè½»ä¸¾å¦å¨ï¼ç»çæ·±æ¸èµ°äºå¾é¿æ¶é´ï¼æä¸æ¥è¿ä¸å»ï¼å½æ¥å°éé仿®¿è¿å¤æ¶ï¼è§å°äºä¸ä½å¤å£è¢«å°ã |
| | | |
| | | âè½°ï¼â |
| | | |
| | | åå»éåä¸å£°å·¨åï¼è¡çµå¥³çå²äºä¸æ¥ï¼èº«ä¸æææè¡è¿¹ï¼èº«ååå·®ç¹ç¸å¼ï¼èå¨å©·ç身åï¼å¦æä¸éå人影ï¼åæ¯åæ¨å°äºæç¹ï¼å
ç¥ä¹ç«å·®ä¸ç¹ççï¼èº«ååç ´ççä¸ææ ·åã |
| | | |
| | | åâ¦â¦â |
| | | |
| | | ä»ä»¬å²ä¸æ¥åï¼å
¨é½å¤§å«ï¼å
æ»¡äºæ¤æï¼å°å䏿ä»çï¼å´ä¸å¯å¤ºå¾ï¼ä¸åº§ä»æ®¿å°±è¶³ä»¥éæ»æäººï¼ |
| | | |
| | | å°¤å
¶æ¯éå¦ï¼åææå±ï¼è¢«å¶å¡ä¸é¾é©¬å¥è½ï¼ç¼çççççä¸ç©æ¯æ°é¼è¢«æ´å«èµ°ï¼é£ç§ä¸æ¢ä¸æ¤æé¾ä»¥è¨è¡¨ã |
| | | |
| | | â人æå£ä½ï¼æå¿
æä½ ï¼ç¥å¤ç乿ä¸äºä½ ï¼âéå¦å¤§å¼ã |
| | | |
| | | è½°éå
声ï¼é³æ´«ä¼¼å¤©é·ï¼å¤§åéè¿å¾å¤ä¿®å£«èº«åä½é¾è£ï¼ä¿®ä¸ºç¨å·®çäººç´æ¥å´©å¼ï¼åæäºè¡é¾ï¼å£è´¤ä¸æï¼ä¼å°¸æ æ°ï¼å¹¶éåè¯ã |
| | | |
| | | â壿°ä¸å°ï¼å°±æ¯ä¸ç¥éï¼è¥æä¸æ¥çæç¥æé临ï¼ä½ ä¼å¦ä½èªå¤ï¼âä¸ä¸ªèèç声é³ä¼ æ¥ã |
| | | |
| | | æ å£°æ æ¯ï¼å¤©çå£å°ç³åçèå£åäººå«æåºç°ï¼å¤äºæ æ³¢ï¼ç«å¨é£éï¼å¦ä¸æ®µæ¯æ¨ã |
| | | |
| | | è¡çµå¥³çå¦ä¸´å¤§æï¼ç¥è²åäºï¼äººæå£å人åªä¸ä¸ªæ¯å¡ä¿ï¼å½å¹´å¨ç¶æ± 大åä¼ä¸ä¸ªç½è¡£ç¥çæå¤æè¯¸å£è¡æº
å¡ç©ºï¼æ»äºä¸æ¹å䏿¹ï¼å
æ°å¤§ä¼¤ã |
| | | |
| | | è¿ä¸ªèå£å人ï¼è¿å¥¹é½ä¸è½åº¦æ·±æµ
ï¼å¿ä¸çªçªç´è·³ï¼ä¸æ¢å¦å¨ã |
| | | |
| | | 嫿ç«å¨è¿éï¼é»é»æ¨æ¼äºä¸çªï¼èåè¹èµ·äºç头ï¼ä¸è¯ä¸åï¼èº«å½±æ¨¡ç³ï¼å空æ¶å¤±äºã |
| | | |
| | | åæ¶ï¼å«ææ¶å¤±çå¹é£ï¼å°é«å°è¯¸å¤ä¿®å£«é½ç»å¸¦èµ°äºï¼ä¼ åéå
¥å°è¿ç©ºã |
| | | |
| | | âè½°â |
| | | |
| | | çªç¶ï¼éé仿®¿ï¼ç¬é´ä¸ä¸ï¼ä¸ä¸åå²ä¸äºå¤©åï¼ä»å
æ æ°ï¼åæ¯ä¸è½®å¤ªé³è¬åå
ï¼å
é¨ä¸ä¸ªè¡åæ·åæ·çâä»âï¼åæä¸éå
ï¼æ å¨è空ä¸ï¼æ¨ªæå¤ä»ã |
| | | |
| | | è¡çµå¥³çãéå¦å 人é£å¿«åéï¼éª¨èä½åï¼å·®ä¸ç¹å¨è¿ä¸ªå°æ¹ç¸å¼ï¼æµèº«é½æ¯è¡ï¼å ä¹è¢«æ´»æ´»éæ»ã |
| | | |
| | | 好ä¸ä¸ªä»æ®¿ï¼æç¶éå¡ï¼çæ¯é¾ä»¥æ³è±¡ï¼ç©¶ç«æ¯è°å¨å
¶å
é¨å»åºä¸ä¸ªå¤§æ´ï¼ççæäºåºæ¥ãâä¸ä¸ªèèç声é³è¯´éï¼æµæå¤§å£æ¾åï¼åºç°å¨å¤©è¾¹ã |
| | | |
| | | å¨å
¶èº«åï¼ææ°ä½å¤å£ç¸éï¼ä¸å
¶å
±è¿éï¼æ¾ç¶å¯¹å¤§åå
çç¥çå¿å¨å¿
å¾ã |
| | | |
| | | å¦ä¸è¾¹ï¼äººæååºç°ä¸é身影ï¼ç½è¡£ççï¼æ£æ¯ç¥çå§å¤ªèï¼ä»ä¹ç°åºäºè¸ªè¿¹ã |
| | | |
| | | ç¥çä¸åºç°ï¼ç°åºé¡¿æ¶ä¸éµå¤§ä¹±ï¼è¯¸å¤å¤æé¢¤åæï¼è¿ä¸äºç¥ç齿¯æµèº«ååï¼ç¶æ± 大åä¼ï¼ç»ä»£ç¥çä¸äººæçä»ä»¬å¿èé½å¯äºã |
| | | |
| | | âå¿ï¼è¿åº§é殿ä¸ä»æå
³ï¼ä¸è¥æçä¸èµ·å°æå¼å¦ä½ï¼çä¸çå°åºæä»ä¹ãâæä¸é身影é临ï¼å¾æ¯å¤èï¼ä¸å°äººå大æï¼æ¯ä¸é¾å·¢ç大å£å°äºã |
| | | |
| | | ä¸åº§å¸åå¼åäºä¸åºæ»å¤©å¤§ä¹±ï¼è¯¸å¤å¤çï¼è¿æå ä½å¤§å£ä¹åä¸ä½äºï¼æ³è¦å¼å¯ï¼è·åæä»çç§å¯ã |
| | | |
| | | â人æå¤§å¸çåï¼å¤äººé¾å¨â¦â¦âå§å¤ªèèªè¯ã |
| | | */ |
| | | </script> |
| | | |
| | |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaMenuWindow.open('ç¼è¾èå', row)" v-permissions="['system:menu:update']">ç¼è¾</el-button> |
| | | <el-button type="text" icon="el-icon-plus" @click="$refs.operaMenuWindow.open('æ°å»ºåèå', null, row)" v-permissions="['system:menu:create']">æ°å»ºåèå</el-button> |
| | | <el-button type="text" @click="$refs.operaMenuWindow.open('ç¼è¾èå', row, null, 1)" v-permissions="['system:menu:update']">ç¼è¾</el-button> |
| | | <el-button type="text" icon="el-icon-plus" @click="$refs.operaMenuWindow.open('æ°å»ºåèå', null, row, 1)" v-permissions="['system:menu:create']">æ°å»ºåèå</el-button> |
| | | <el-button v-if="!row.fixed" type="text" style="color: red" @click="deleteById(row)" v-permissions="['system:menu:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['system:menu:create', 'system:menu:delete', 'system:menu:sort']"> |
| | | <li><el-button type="primary" @click="$refs.operaMenuWindow.open('æ°å»ºä¸çº§èå', null, null, 2)" icon="el-icon-plus" v-permissions="['system:menu:create']">æ°å»º</el-button></li> |
| | | <li><el-button type="primary" @click="$refs.operaMenuWindow.open('æ°å»ºä¸çº§èå', null, null)" icon="el-icon-plus" v-permissions="['system:menu:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" v-permissions="['system:menu:delete']">å é¤</el-button></li> |
| | | <li><el-button @click="sort('top')" :loading="isWorking.sort" icon="el-icon-sort-up" v-permissions="['system:menu:sort']">ä¸ç§»</el-button></li> |
| | | <li><el-button @click="sort('bottom')" :loading="isWorking.sort" icon="el-icon-sort-down" v-permissions="['system:menu:sort']">ä¸ç§»</el-button></li> |
| | |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaMenuWindow.open('ç¼è¾èå', row)" v-permissions="['system:menu:update']">ç¼è¾</el-button> |
| | | <el-button type="text" icon="el-icon-plus" @click="$refs.operaMenuWindow.open('æ°å»ºåèå', null, row)" v-permissions="['system:menu:create']">æ°å»ºåèå</el-button> |
| | | <el-button type="text" @click="$refs.operaMenuWindow.open('ç¼è¾èå', row)" v-permissions="['system:menu:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="$refs.operaMenuWindow.open('æ°å»ºåèå', null, row)" v-permissions="['system:menu:create']">æ°å»ºåèå</el-button> |
| | | <el-button v-if="!row.fixed" type="text" style="color: red" @click="deleteById(row)" v-permissions="['system:menu:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | import doumeemes.core.model.PageWrap; |
| | | import doumeemes.core.model.PageData; |
| | | import doumeemes.dao.business.model.SalaryParam; |
| | | import doumeemes.dao.business.vo.SalaryParamVO; |
| | | import doumeemes.dao.ext.dto.SalaryParamDTO; |
| | | import doumeemes.service.business.SalaryParamService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.apache.shiro.authz.annotation.RequiresPermissions; |
| | | import org.apache.shiro.authz.annotation.RequiresPermissions; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import javax.servlet.http.HttpServletResponse; |
| | |
| | | @PreventRepeat |
| | | @ApiOperation("æ°å»º") |
| | | @PostMapping("/create") |
| | | @RequiresPermissions("business:salaryparam:create") |
| | | // @RequiresPermissions("business:salaryparam:create") |
| | | public ApiResponse create(@RequestBody SalaryParam salaryParam) { |
| | | return ApiResponse.success(salaryParamService.create(salaryParam)); |
| | | } |
| | |
| | | |
| | | @ApiOperation("å页æ¥è¯¢") |
| | | @PostMapping("/page") |
| | | @RequiresPermissions("business:salaryparam:query") |
| | | public ApiResponse<PageData<SalaryParam>> findPage (@RequestBody PageWrap<SalaryParam> pageWrap) { |
| | | // @RequiresPermissions("business:salaryparam:query") |
| | | public ApiResponse<PageData<SalaryParamVO>> findPage (@RequestBody PageWrap<SalaryParamDTO> pageWrap) { |
| | | return ApiResponse.success(salaryParamService.findPage(pageWrap)); |
| | | } |
| | | |
| | | @ApiOperation("导åºExcel") |
| | | @PostMapping("/exportExcel") |
| | | @RequiresPermissions("business:salaryparam:exportExcel") |
| | | public void exportExcel (@RequestBody PageWrap<SalaryParam> pageWrap, HttpServletResponse response) { |
| | | ExcelExporter.build(SalaryParam.class).export(salaryParamService.findPage(pageWrap).getRecords(), "设置类-绩æå·¥èµé
置表", response); |
| | | public void exportExcel (@RequestBody PageWrap<SalaryParamDTO> pageWrap, HttpServletResponse response) { |
| | | ExcelExporter.build(SalaryParamVO.class).export(salaryParamService.findPage(pageWrap).getRecords(), "设置类-绩æå·¥èµé
置表", response); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®IDæ¥è¯¢") |
| | |
| | | import doumeemes.core.model.PageData; |
| | | import doumeemes.core.model.PageWrap; |
| | | import doumeemes.dao.business.model.SalaryParam; |
| | | import doumeemes.dao.business.vo.SalaryParamVO; |
| | | import doumeemes.dao.ext.dto.SalaryParamDTO; |
| | | import doumeemes.service.business.SalaryParamService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.apache.shiro.authz.annotation.RequiresPermissions; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | import org.springframework.web.multipart.MultipartHttpServletRequest; |
| | | import org.springframework.web.multipart.commons.CommonsMultipartResolver; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.util.ArrayList; |
| | | import java.util.Iterator; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | @PreventRepeat |
| | | @ApiOperation("æ°å»º") |
| | | @PostMapping("/create") |
| | | @RequiresPermissions("business:salaryparam:create") |
| | | // @RequiresPermissions("business:salaryparam:create") |
| | | public ApiResponse create(@RequestBody SalaryParam salaryParam) { |
| | | return ApiResponse.success(salaryParamService.create(salaryParam)); |
| | | } |
| | |
| | | @ApiOperation("å页æ¥è¯¢") |
| | | @PostMapping("/page") |
| | | @RequiresPermissions("business:salaryparam:query") |
| | | public ApiResponse<PageData<SalaryParam>> findPage (@RequestBody PageWrap<SalaryParam> pageWrap) { |
| | | public ApiResponse<PageData<SalaryParamVO>> findPage (@RequestBody PageWrap<SalaryParamDTO> pageWrap) { |
| | | return ApiResponse.success(salaryParamService.findPage(pageWrap)); |
| | | } |
| | | |
| | | @ApiOperation("导åºExcel") |
| | | @PostMapping("/exportExcel") |
| | | @RequiresPermissions("business:salaryparam:exportExcel") |
| | | public void exportExcel (@RequestBody PageWrap<SalaryParam> pageWrap, HttpServletResponse response) { |
| | | ExcelExporter.build(SalaryParam.class).export(salaryParamService.findPage(pageWrap).getRecords(), "设置类-绩æå·¥èµé
置表", response); |
| | | public void exportExcel (@RequestBody PageWrap<SalaryParamDTO> pageWrap, HttpServletResponse response) { |
| | | ExcelExporter.build(SalaryParamVO.class).export(salaryParamService.findPage(pageWrap).getRecords(), "设置类-绩æå·¥èµé
置表", response); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®IDæ¥è¯¢") |
| | |
| | | public ApiResponse findById(@PathVariable Integer id) { |
| | | return ApiResponse.success(salaryParamService.findById(id)); |
| | | } |
| | | |
| | | @ApiOperation(value = "æ¹é导å
¥è®¡å", notes = "æ¹é导å
¥è®¡å", httpMethod = "POST", position = 6) |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "folder", value = "æä»¶å¤¹", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class), |
| | | }) |
| | | @PostMapping(value = "/importBatch", headers = "content-type=multipart/form-data") |
| | | @RequiresPermissions("business:salaryparam:create") |
| | | public ApiResponse importBatch(String folder, HttpServletRequest request, HttpServletResponse response) throws Exception { |
| | | CommonsMultipartResolver multipartResovler = new CommonsMultipartResolver(); |
| | | if (multipartResovler.isMultipart(request)) { |
| | | MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; |
| | | Iterator<String> it = multipartRequest.getFileNames(); |
| | | while (it.hasNext()) { |
| | | MultipartFile file = multipartRequest.getFile((String) it.next()); |
| | | salaryParamService.importPlans(file); |
| | | break; |
| | | } |
| | | } |
| | | return ApiResponse.success( null); |
| | | } |
| | | } |
| | |
| | | import doumeemes.dao.business.model.WorkorderRecord; |
| | | import doumeemes.dao.ext.bean.EndCheckApBean; |
| | | import doumeemes.dao.ext.beanDto.QueryWStockDto; |
| | | import doumeemes.dao.ext.dto.QuerySalaryStatisticDTO; |
| | | import doumeemes.dao.ext.dto.QueryUserSalaryListDTO; |
| | | import doumeemes.dao.ext.dto.QueryWorkorderRecordExtDTO; |
| | | import doumeemes.dao.ext.vo.WStockExtListForWorkorderVO; |
| | | import doumeemes.dao.ext.vo.WStockExtListVO; |
| | | import doumeemes.dao.ext.vo.WorkorderRecordExtListVO; |
| | | import doumeemes.dao.ext.vo.*; |
| | | import doumeemes.service.business.WorkorderRecordService; |
| | | import doumeemes.service.ext.WorkorderExtService; |
| | | import doumeemes.service.ext.WorkorderRecordExtService; |
| | |
| | | public ApiResponse<PageData<WorkorderRecordExtListVO>> findPage (@RequestBody PageWrap<QueryWorkorderRecordExtDTO> pageWrap) { |
| | | return ApiResponse.success(workorderRecordExtService.findPage(pageWrap)); |
| | | } |
| | | @ApiOperation("å工绩æå页æ¥è¯¢") |
| | | @PostMapping("/userSalary") |
| | | @RequiresPermissions("ext:workorderrecordext:query") |
| | | public ApiResponse<PageData<UserSalaryListVO>> userSalaryPage (@RequestBody PageWrap<QueryUserSalaryListDTO> pageWrap) { |
| | | return ApiResponse.success(workorderRecordExtService.userSalaryPage(pageWrap)); |
| | | } |
| | | @ApiOperation("å·¥èµæ¥è¡¨ç»è®¡å页æ¥è¯¢") |
| | | @PostMapping("/salaryStatistic") |
| | | @RequiresPermissions("ext:workorderrecordext:query") |
| | | public ApiResponse<PageData<SalaryStatisticsListVO>> salaryStatistic (@RequestBody PageWrap<QuerySalaryStatisticDTO> pageWrap) { |
| | | return ApiResponse.success(workorderRecordExtService.salaryStatistic(pageWrap)); |
| | | } |
| | | |
| | | @ApiOperation("æ¥è¯¢å
¨é¨") |
| | | @PostMapping("/all") |
| | |
| | | public void exportExcel (@RequestBody PageWrap<QueryWorkorderRecordExtDTO> pageWrap, HttpServletResponse response) { |
| | | workorderRecordExtService.exportExcel(pageWrap,response); |
| | | } |
| | | @ApiOperation("导åºå工绩ææç»") |
| | | @PostMapping("/exportUserSalary") |
| | | public void exportUserSalary (@RequestBody PageWrap<QueryUserSalaryListDTO> pageWrap, HttpServletResponse response) { |
| | | workorderRecordExtService.exportUserSalary(pageWrap,response); |
| | | } |
| | | @ApiOperation("导åºå·¥èµæ¥è¡¨") |
| | | @PostMapping("/exportSalaryStatistics") |
| | | public void exportSalaryStatistics (@RequestBody PageWrap<QuerySalaryStatisticDTO> pageWrap, HttpServletResponse response) { |
| | | workorderRecordExtService.exportSalaryStatistics(pageWrap,response); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®IDæ¥è¯¢") |
| | | @GetMapping("/{id}") |
| | |
| | | import doumeemes.core.model.LoginUserInfo; |
| | | import doumeemes.core.utils.Constants; |
| | | import doumeemes.dao.business.dto.CompanyInitDataDTO; |
| | | import doumeemes.dao.ext.dto.WxLoginDTO; |
| | | import doumeemes.dao.ext.vo.WxLoginVO; |
| | | import doumeemes.dao.system.dto.LoginDTO; |
| | | import doumeemes.dao.system.dto.UpdatePwdDto; |
| | | import doumeemes.service.system.SystemLoginService; |
| | | import doumeemes.service.system.WxLoginService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | |
| | | @Autowired |
| | | private SystemLoginService systemLoginService; |
| | | |
| | | @Autowired |
| | | private WxLoginService wxLoginService; |
| | | |
| | | @PreventRepeat(limit = 10, lockTime = 10000) |
| | | @ApiOperation("ç»å½") |
| | | @PostMapping("/login") |
| | | public ApiResponse<String> login (@Validated @RequestBody LoginDTO dto, HttpServletRequest request) { |
| | | // dto.setCompanyId(Constants.de); |
| | | return ApiResponse.success(systemLoginService.loginByPassword(dto, request)); |
| | | } |
| | | |
| | | @PreventRepeat(limit = 10, lockTime = 10000) |
| | | @ApiOperation("å¹³å°ç»å½") |
| | | @PostMapping("/platform/login") |
| | | public ApiResponse<String> platformLogin (@Validated @RequestBody LoginDTO dto, HttpServletRequest request) { |
| | | // dto.setCompanyId(Constants.de); |
| | | return ApiResponse.success(systemLoginService.platformLogin(dto, request)); |
| | | } |
| | | |
| | | |
| | | @PreventRepeat(limit = 10, lockTime = 10000) |
| | | @ApiOperation("微信ç»å½") |
| | | @GetMapping("/wxLogin") |
| | | public ApiResponse<WxLoginVO> wxLogin (@RequestParam String code, HttpServletRequest request) { |
| | | return ApiResponse.success(wxLoginService.wxLogin(code, request)); |
| | | } |
| | | |
| | | @PreventRepeat(limit = 10, lockTime = 10000) |
| | | @ApiOperation("微信ç»å½è´¦å·å¯ç ") |
| | | @PostMapping("/wxAccountLogin") |
| | | public ApiResponse<String> wxAccountLogin (@Validated @RequestBody WxLoginDTO dto, HttpServletRequest request) { |
| | | return ApiResponse.success(wxLoginService.wxLoginByPassword(dto, request)); |
| | | } |
| | | |
| | | @ApiOperation("éåºç»å½") |
| | | @PostMapping("/logout") |
| | | public ApiResponse logout () { |
| | |
| | | for (SystemMenu menu : menus) { |
| | | if(Constants.equalsInteger(menu.getType(),Constants.PlatType.companyH5) && StringUtils.isNotBlank(menu.getIcon())){ |
| | | menu.setIcon(rPath+menu.getIcon()); |
| | | menu.setResourcePath(rPath); |
| | | } |
| | | if (menu.getParentId() == null) { |
| | | SystemMenuListVO rootMenu = new SystemMenuListVO(); |
| | |
| | | for (SystemMenuListVO child : rootMenus) { |
| | | if(Constants.equalsInteger(child.getType(),Constants.PlatType.companyH5) && StringUtils.isNotBlank(child.getIcon())){ |
| | | child.setIcon(rPath+child.getIcon()); |
| | | child.setResourcePath(rPath); |
| | | } |
| | | this.fillChildren(child, menus); |
| | | } |
| | |
| | | Map<String, String> map = new LinkedHashMap<>(); |
| | | // è·¯å¾æ¦æªé
ç½® |
| | | map.put("/system/login", "anon"); |
| | | map.put("/system/wxLogin", "anon"); |
| | | map.put("/system/wxAccountLogin", "anon"); |
| | | map.put("/system/initCompany", "anon"); |
| | | map.put("/system/logout", "anon"); |
| | | map.put("/common/captcha", "anon"); |
| | |
| | | if(usernamePasswordToken.getDdLogin()){ |
| | | return Boolean.TRUE; |
| | | } |
| | | if(usernamePasswordToken.getWxLogin()){ |
| | | return Boolean.TRUE; |
| | | } |
| | | // å å¯å¯ç |
| | | String pwd = Utils.Secure.encryptPassword(new String(usernamePasswordToken.getPassword()), systemUser.getSalt()); |
| | | // æ¯è¾å¯ç |
| | |
| | | */ |
| | | Integer companyId; |
| | | Boolean isDdLogin; |
| | | Boolean isWxLogin; |
| | | |
| | | public ShiroToken() { |
| | | } |
| | | public ShiroToken(Integer companyId,String username, String password,boolean isDdLogin) { |
| | | public ShiroToken(Integer companyId,String username, String password,boolean isDdLogin,boolean isWxLogin) { |
| | | super(username, password, false, (String)null); |
| | | this.companyId = companyId; |
| | | this.isDdLogin = isDdLogin; |
| | | this.isWxLogin = isWxLogin; |
| | | } |
| | | |
| | | public Boolean getDdLogin() { |
| | |
| | | isDdLogin = ddLogin; |
| | | } |
| | | |
| | | |
| | | public Boolean getWxLogin() { |
| | | return isWxLogin; |
| | | } |
| | | |
| | | public void setWxLogin(Boolean wxLogin) { |
| | | isWxLogin = wxLogin; |
| | | } |
| | | |
| | | public Integer getCompanyId() { |
| | | return companyId; |
| | | } |
| | |
| | | |
| | | import doumeemes.core.constants.ResponseStatus; |
| | | import doumeemes.core.exception.BusinessException; |
| | | import doumeemes.dao.ext.vo.UserBaseInfoVO; |
| | | import doumeemes.dao.ext.vo.UserSalaryListVO; |
| | | import lombok.AllArgsConstructor; |
| | | import lombok.Data; |
| | | import org.apache.commons.lang3.BooleanUtils; |
| | |
| | | return new ArrayList<>(sortedFields.values()); |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | ExcelExporter m = new ExcelExporter(); |
| | | ExcelExporter.build(UserSalaryListVO.class).getColumns(); |
| | | } |
| | | /** |
| | | * é
ç½®æ°æ®åå
æ ¼ |
| | | */ |
| | |
| | | public static final String ACCESS_ID="ACCESS_ID"; |
| | | public static final String BUCKETNAME = "BUCKETNAME"; |
| | | public static final String OSS = "OSS"; |
| | | public static final String WX_CONFIG = "WX_CONFIG"; |
| | | public static final String APPID = "APPID"; |
| | | public static final String APPSECRET = "APPSECRET"; |
| | | public static final String WX_TOKEN = "WX_TOKEN"; |
| | | |
| | | public static final String ACCESS_KEY = "ACCESS_KEY"; |
| | | public static final String ENDPOINT = "ENDPOINT"; |
| | | public static final String RESOURCE_PATH = "RESOURCE_PATH"; |
| | |
| | | public static final int baogong= 4; |
| | | public static final int instock = 5; |
| | | public static final int cancel = 6; |
| | | public static final int producing = 7; |
| | | static String getTitleByStatus(WorkorderExtListVO p, int status) { |
| | | String title = ""; |
| | | switch (status){ |
| | |
| | | break; |
| | | case cancel: |
| | | title="å·¥ååæ¶"; |
| | | break; |
| | | case producing: |
| | | title="å·¥åç产ä¸"; |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | break; |
| | | case cancel: |
| | | title="å·¥ååæ¶"; |
| | | break; |
| | | case producing: |
| | | title="å·¥åç产ä¸"; |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | } |
| | | } |
| | | /** |
| | | * å·¥åç¶æ 0å·²å建ã1å·²ææã2å·²å®å·¥ã3å·²æ£éªã4å·²æ¥å·¥ã5å·²å
¥åºã6å·²æåã7已忶ã8å·²å
³é 9å·²æ¢å¤ 10æ´æ¢äººå 11 已夿 12 产åº" |
| | | * å·¥åç¶æ 0å·²å建ã1å·²ææã2å·²å®å·¥ã3å·²æ£éªã4å·²æ¥å·¥ã5å·²å
¥åºã6å·²æåã7已忶ã8å·²å
³é 9å·²æ¢å¤ 10æ´æ¢äººå 11 已夿 12 äº§åº 13çæä¸" |
| | | */ |
| | | public interface WORKORDER_HISTORY_STATUS{ |
| | | public static final int create = 0; |
| | |
| | | public static final int redistribute = 10; |
| | | public static final int readyMaterial = 11; |
| | | public static final int produce = 12; |
| | | public static final int producing = 13; |
| | | static String getTitleByStatus(WorkorderExtListVO p, int status) { |
| | | String title = ""; |
| | | switch (status){ |
| | |
| | | break; |
| | | case produce: |
| | | title="å·¥å产åº"; |
| | | break; |
| | | case producing: |
| | | title="å·¥åçæä¸å½"; |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | case produce: |
| | | title="å·¥å产åº"; |
| | | break; |
| | | case producing: |
| | | title="å·¥åç产ä¸"; |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | |
| | | import org.apache.http.util.EntityUtils; |
| | | import org.springframework.web.util.UriComponentsBuilder; |
| | | |
| | | import javax.net.ssl.*; |
| | | import java.io.ByteArrayOutputStream; |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.io.OutputStream; |
| | | import java.net.URL; |
| | | import java.security.KeyManagementException; |
| | | import java.security.NoSuchAlgorithmException; |
| | | import java.security.SecureRandom; |
| | |
| | | import java.util.Map; |
| | | |
| | | public class HttpsUtil { |
| | | |
| | | public static String get(String url,boolean ignoreSSL) { |
| | | return connection(url, "GET", null, null,ignoreSSL); |
| | | } |
| | | |
| | | |
| | | public static String sendPostByHttps(String url, Map<String, String> body, String token) { |
| | |
| | | return null; |
| | | } |
| | | |
| | | public static String connection(String url,String method,String data,String contentType,boolean ignoreSSL){ |
| | | HttpsURLConnection connection = null; |
| | | try { |
| | | URL _url = new URL(url); |
| | | connection = (HttpsURLConnection) _url.openConnection(); |
| | | connection.setRequestMethod(method); |
| | | connection.setDoOutput(true); |
| | | connection.setDoInput(true); |
| | | connection.setUseCaches(false); |
| | | if(contentType != null){ |
| | | connection.setRequestProperty("Content-Type", contentType); |
| | | } |
| | | |
| | | if(ignoreSSL){ |
| | | //ä¿¡ä»»ææsslè¯ä¹¦åä¸»æº |
| | | TrustManager[] trustManagers = {new HttpsTrustManager()}; |
| | | SSLContext context = SSLContext.getInstance("TLS"); |
| | | context.init(null, trustManagers, new SecureRandom()); |
| | | connection.setSSLSocketFactory(context.getSocketFactory()); |
| | | connection.setHostnameVerifier(new HostnameVerifier() { |
| | | @Override |
| | | public boolean verify(String hostname, SSLSession session) { |
| | | return true; |
| | | } |
| | | }); |
| | | } |
| | | |
| | | |
| | | connection.connect(); |
| | | |
| | | if(data != null){ |
| | | OutputStream outputStream = connection.getOutputStream(); |
| | | outputStream.write(data.getBytes("utf-8")); |
| | | outputStream.close(); |
| | | } |
| | | |
| | | int responseCode = connection.getResponseCode(); |
| | | if (responseCode == HttpsURLConnection.HTTP_OK) { |
| | | InputStream is = connection.getInputStream(); |
| | | byte[] b = new byte[4096]; |
| | | ByteArrayOutputStream baos = new ByteArrayOutputStream(b.length); |
| | | int len; |
| | | while ((len = is.read(b)) != -1) { |
| | | baos.write(b, 0, len); |
| | | } |
| | | is.close(); |
| | | return baos.toString("utf-8"); |
| | | } |
| | | return connection.getResponseMessage(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } finally { |
| | | if(connection != null){ |
| | | connection.disconnect(); |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | public static void main(String[] args) { |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | class HttpsTrustManager implements X509TrustManager { |
| | | |
| | | private static TrustManager[] trustManagers = {new HttpsTrustManager()}; |
| | | |
| | | @Override |
| | | public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { |
| | | // TODO Auto-generated method stub |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { |
| | | // TODO Auto-generated method stub |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public X509Certificate[] getAcceptedIssuers() { |
| | | // TODO Auto-generated method stub |
| | | return null; |
| | | } |
| | | |
| | | public static void allowAllSSL() { |
| | | try { |
| | | SSLContext context = SSLContext.getInstance("TLS"); |
| | | context.init(null, trustManagers, new SecureRandom()); |
| | | HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory()); |
| | | HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() { |
| | | @Override |
| | | public boolean verify(String hostname, SSLSession session) { |
| | | return true; |
| | | } |
| | | }); |
| | | } catch (NoSuchAlgorithmException | KeyManagementException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | package doumeemes.dao.business; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import doumeemes.dao.business.model.SalaryParam; |
| | | import doumeemes.dao.business.vo.SalaryParamVO; |
| | | import doumeemes.dao.ext.dto.SalaryParamDTO; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | |
| | | */ |
| | | public interface SalaryParamMapper extends BaseMapper<SalaryParam> { |
| | | |
| | | |
| | | IPage<SalaryParamVO> selectPage(IPage<SalaryParam> page, @Param("model") SalaryParamDTO model); |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package doumeemes.dao.business.dto; |
| | | |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2023/8/14 18:35 |
| | | */ |
| | | @Data |
| | | public class AutoWorkReportDTO { |
| | | |
| | | |
| | | @ApiModelProperty(value = "å·¥åºè®¡å主é®") |
| | | private Integer plansId; |
| | | |
| | | @ApiModelProperty(value = "ææè®°å½") |
| | | private List<MaterialListDTO> recordList ; |
| | | |
| | | @ApiModelProperty(value = "产åºè®°å½") |
| | | private CreateWorkorderRecordDTO createWorkorderRecordDTO; |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package doumeemes.dao.business.dto; |
| | | |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | | * @date 2022/05/12 10:18 |
| | | */ |
| | | @Data |
| | | public class CreateWorkorderRecordDTO { |
| | | |
| | | |
| | | @ApiModelProperty(value = "å·¥å主é®") |
| | | private Integer workorderId; |
| | | |
| | | @ApiModelProperty(value = "åæ ¼æ°é") |
| | | private BigDecimal qualifiedNum; |
| | | |
| | | @ApiModelProperty(value = "ä¸åæ ¼æ°é") |
| | | private BigDecimal unQualifiedNum; |
| | | |
| | | @ApiModelProperty(value = "æ¥å·¥æ¶é¿ï¼ç§ï¼" ) |
| | | private Integer duration; |
| | | |
| | | |
| | | } |
| | |
| | | @ExcelColumn(name="æ¯å¦æ¯ä¸»è´¦æ·ï¼0=å¦ï¼1=æ¯ï¼") |
| | | private Integer isMaster; |
| | | |
| | | |
| | | @ApiModelProperty(value = "微信openid") |
| | | private String openid; |
| | | |
| | | @ApiModelProperty(value = "微信unionid") |
| | | private String unionid; |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.Data; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | |
| | | import javax.validation.constraints.NotEmpty; |
| | | import java.math.BigDecimal; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | |
| | | @TableName("`salary_param`") |
| | | public class SalaryParam { |
| | | |
| | | @ApiModelProperty(value = "主é®", example = "1") |
| | | @ApiModelProperty(value = "主é®") |
| | | @ExcelColumn(name="主é®") |
| | | @TableId(value = "id",type = IdType.AUTO) |
| | | private Integer id; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦å·²å é¤ 0æªå é¤ 1å·²å é¤", example = "1") |
| | | @ApiModelProperty(value = "æ¯å¦å·²å é¤ 0æªå é¤ 1å·²å é¤") |
| | | @ExcelColumn(name="æ¯å¦å·²å é¤ 0æªå é¤ 1å·²å é¤") |
| | | private Byte deleted; |
| | | |
| | | @ApiModelProperty(value = "å建人ç¼ç ", example = "1") |
| | | @ApiModelProperty(value = "å建人ç¼ç ") |
| | | @ExcelColumn(name="å建人ç¼ç ") |
| | | private Integer createUser; |
| | | |
| | | @ApiModelProperty(value = "å建æ¶é´") |
| | | @ExcelColumn(name="å建æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date createTime; |
| | | |
| | | @ApiModelProperty(value = "æ´æ°äººç¼ç ", example = "1") |
| | | @ApiModelProperty(value = "æ´æ°äººç¼ç ") |
| | | @ExcelColumn(name="æ´æ°äººç¼ç ") |
| | | private Integer updateUser; |
| | | |
| | | @ApiModelProperty(value = "æ´æ°æ¶é´") |
| | | @ExcelColumn(name="æ´æ°æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date updateTime; |
| | | |
| | | @ApiModelProperty(value = "夿³¨") |
| | | @ExcelColumn(name="夿³¨") |
| | | private String remark; |
| | | |
| | | @ApiModelProperty(value = "主ç»ç»ç¼ç ï¼å
³èdepartmentè¡¨æ ¹ç»ç»ï¼", example = "1") |
| | | @ApiModelProperty(value = "主ç»ç»ç¼ç ï¼å
³èdepartmentè¡¨æ ¹ç»ç»ï¼") |
| | | @ExcelColumn(name="主ç»ç»ç¼ç ï¼å
³èdepartmentè¡¨æ ¹ç»ç»ï¼") |
| | | private Integer rootDepartId; |
| | | |
| | | @ApiModelProperty(value = "å·¥åç¼ç ï¼å
³èdepartment表ï¼", example = "1") |
| | | @ApiModelProperty(value = "å·¥åç¼ç ï¼å
³èdepartment表ï¼") |
| | | @ExcelColumn(name="å·¥åç¼ç ï¼å
³èdepartment表ï¼") |
| | | @NotEmpty(message = "å·¥åç¼ç ä¸è½ä¸ºç©º") |
| | | private Integer departId; |
| | | |
| | | @ApiModelProperty(value = "å·¥åºç¼ç ï¼å
³èprocedure表ï¼", example = "1") |
| | | @ApiModelProperty(value = "å·¥åºç¼ç ï¼å
³èprocedure表ï¼") |
| | | @ExcelColumn(name="å·¥åºç¼ç ï¼å
³èprocedure表ï¼") |
| | | @NotEmpty(message = "å·¥åºç¼ç ä¸è½ä¸ºç©º") |
| | | private Integer procedureId; |
| | | |
| | | @ApiModelProperty(value = "bomç¼ç ï¼å
³èbom表ï¼", example = "1") |
| | | @ApiModelProperty(value = "bomç¼ç ï¼å
³èbom表ï¼") |
| | | @ExcelColumn(name="bomç¼ç ï¼å
³èbom表ï¼") |
| | | private Integer bomId; |
| | | @NotEmpty(message = "ç©æç¼ç ä¸è½ä¸ºç©º") |
| | | private Integer materialId; |
| | | |
| | | @ApiModelProperty(value = "å·¥èµåä»·ï¼å
)", example = "1") |
| | | @ExcelColumn(name="å·¥èµåä»·ï¼å
)") |
| | | private Integer salary; |
| | | private BigDecimal salary; |
| | | |
| | | @ApiModelProperty(value = "æ åæ°é", example = "1") |
| | | @ApiModelProperty(value = "æ åæ°é") |
| | | @ExcelColumn(name="æ åæ°é") |
| | | private Integer num; |
| | | private BigDecimal num; |
| | | |
| | | @ApiModelProperty(value = "æ åæ¶é¿ï¼ç§ï¼") |
| | | @ExcelColumn(name="æ åæ¶é¿ï¼ç§ï¼") |
| | | private String times; |
| | | |
| | | @ApiModelProperty(value = "ä¸è¯åæ¯å¦è®¡å
¥ 0å¦ 1æ¯", example = "1") |
| | | @ApiModelProperty(value = "ä¸è¯åæ¯å¦è®¡å
¥ 0å¦ 1æ¯") |
| | | @ExcelColumn(name="ä¸è¯åæ¯å¦è®¡å
¥ 0å¦ 1æ¯") |
| | | private Integer unqualified; |
| | | |
| | | @ApiModelProperty(value = "计价æ¹å¼ 0计件 1计æ¶", example = "1") |
| | | @ApiModelProperty(value = "计价æ¹å¼ 0计件 1计æ¶") |
| | | @ExcelColumn(name="计价æ¹å¼ 0计件 1计æ¶") |
| | | private Integer type; |
| | | |
| | |
| | | @ExcelColumn(name="æ£éªäººåç¼ç ") |
| | | private Integer checkUserId; |
| | | |
| | | @ApiModelProperty(value = "å·¥åç¶æ 0å·²å建ã1已夿ã2å·²å®å·¥ã3å·²æ£éªã4å·²æ¥å·¥ã5å·²å
¥åºã6已忶", example = "1") |
| | | @ExcelColumn(name="å·¥åç¶æ 0å·²å建ã1已夿ã2å·²å®å·¥ã3å·²æ£éªã4å·²æ¥å·¥ã5å·²å
¥åºã6已忶") |
| | | @ApiModelProperty(value = "å·¥åç¶æ 0å·²å建ã1已夿ã2å·²å®å·¥ã3å·²æ£éªã4å·²æ¥å·¥ã5å·²å
¥åºã6已忶ã7ç产ä¸", example = "1") |
| | | @ExcelColumn(name="å·¥åç¶æ 0å·²å建ã1已夿ã2å·²å®å·¥ã3å·²æ£éªã4å·²æ¥å·¥ã5å·²å
¥åºã6已忶ã7ç产ä¸") |
| | | private Integer status; |
| | | @ApiModelProperty(value = "æ¯å¦æå 0æªæå 1å·²æå", example = "1") |
| | | @ExcelColumn(name="æ¯å¦æå 0æªæå 1å·²æå") |
| | |
| | | @ExcelColumn(name="æ¥å·¥æ¶é¿ï¼ç§ï¼") |
| | | private Integer duration; |
| | | |
| | | @ApiModelProperty(value = "å·¥èµåä»·ï¼å)", example = "1") |
| | | @ExcelColumn(name="å·¥èµåä»·ï¼å)") |
| | | @ApiModelProperty(value = "å·¥èµç»æï¼å
)", example = "1") |
| | | @ExcelColumn(name="å·¥èµç»æï¼å
)") |
| | | private Integer salary; |
| | | |
| | | @ApiModelProperty(value = "å·¥èµåä»·ï¼å
)", example = "1") |
| | | @ExcelColumn(name="å·¥èµåä»·ï¼å
)") |
| | | private Integer salaryPrice; |
| | | @ApiModelProperty(value = "æ åæ°é", example = "1") |
| | | @ExcelColumn(name="æ åæ°é") |
| | | private Integer salaryNum; |
| | |
| | | @ExcelColumn(name="å¤ç夿³¨") |
| | | private String info; |
| | | |
| | | @ApiModelProperty(value = "æä½ç±»å0å·²å建ã1å·²ææã2å®å·¥ã3æ£éªã4å·²æ¥å·¥ã5å
¥åºã6æåã7åæ¶ã8å
³é", example = "1") |
| | | @ApiModelProperty(value = "æä½ç±»å0å·²å建ã1å·²ææã2å®å·¥ã3æ£éªã4å·²æ¥å·¥ã5å
¥åºã6æåã7åæ¶ã8å
³é 13ç产ä¸", example = "1") |
| | | @ExcelColumn(name="æä½ç±»å0å·²å建ã1å·²ææã2å®å·¥ã3æ£éªã4å·²æ¥å·¥ã5å
¥åºã6æåã7åæ¶ã8å
³é") |
| | | private Integer type; |
| | | |
| | |
| | | |
| | | @ApiModelProperty(value = "æ£éªåæ ¼æ°é", example = "1") |
| | | @ExcelColumn(name="æ£éªåæ ¼æ°é") |
| | | private Integer qualifiedNum; |
| | | private BigDecimal qualifiedNum; |
| | | |
| | | @ApiModelProperty(value = "æ£éªä¸åæ ¼æ°é", example = "1") |
| | | @ExcelColumn(name="æ£éªä¸åæ ¼æ°é") |
| | | private Integer unqualifiedNum; |
| | | private BigDecimal unqualifiedNum; |
| | | |
| | | @ApiModelProperty(value = "æ£éªæ¥æ") |
| | | @ExcelColumn(name="æ£éªæ¥æ") |
| | |
| | | @ApiModelProperty(value = "ç产人åç¼ç éåï¼[1],[2],...å½¢å¼åå¨ï¼ä¼åæ¥è¯¢)" ) |
| | | @ExcelColumn(name="ç产人åç¼ç éåï¼[1],[2],...å½¢å¼åå¨ï¼ä¼åæ¥è¯¢)") |
| | | private String proUserids; |
| | | |
| | | @ApiModelProperty(value = "å·¥åç¶æ" ) |
| | | @TableField(exist = false) |
| | | private Integer workorderStatus; |
| | | |
| | | |
| | | @ApiModelProperty(value = "ç©æè´¨é屿§0åæ ¼ 1ä¸è¯ 2æ¥åºï¼åªætype=1ææå¼ï¼" ) |
| | | private Integer materialDonetype; |
| | | @ApiModelProperty(value = "ç©æå·¥åºç¼ç ï¼å
³èprocedure表ï¼" ) |
| | | private Integer materialProcedureId; |
| | | |
| | | @ApiModelProperty(value = "å
³è票æ®ç¼ç ï¼æææ¶ï¼" ) |
| | | private Integer relobjId; |
| | | @ApiModelProperty(value = "å
³è票æ®ç±»å 0å·¥å 1ç¯®çæ´æ¢åè®°å½" ) |
| | | private Integer relobjType; |
| | | |
| | | //MATERIAL_DONETYPE,MATERIAL_PROCEDURE_ID,RELOBJ_IDãRELOBJ_TYPE |
| | | @ApiModelProperty(value = "æ¥å·¥æ¶é¿ï¼ç§ï¼" ) |
| | | private Integer duration; |
| | | |
| | | @ApiModelProperty(value = "å·¥èµåä»·ï¼å)" ) |
| | | private BigDecimal salaryPrice; |
| | | |
| | | @ApiModelProperty(value = "æ åæ°é" ) |
| | | private BigDecimal salaryNum; |
| | | |
| | | @ApiModelProperty(value = "æ åæ¶é¿ï¼ç§ï¼" ) |
| | | private Integer salaryTimes; |
| | | |
| | | @ApiModelProperty(value = "ä¸è¯åæ¯å¦è®¡å
¥ 0å¦ 1æ¯" ) |
| | | private Integer salaryUnqualified; |
| | | |
| | | @ApiModelProperty(value = "计价æ¹å¼ 0计件 1计æ¶" ) |
| | | private Integer salaryType; |
| | | |
| | | @ApiModelProperty(value = "å·¥èµç»æï¼åï¼" ) |
| | | private BigDecimal salary; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package doumeemes.dao.business.vo; |
| | | |
| | | import cn.afterturn.easypoi.excel.annotation.Excel; |
| | | import doumeemes.core.annotation.excel.ExcelColumn; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import javax.validation.constraints.NotEmpty; |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | @ApiModel("") |
| | | public class SalaryParamVO { |
| | | |
| | | @ApiModelProperty(value = "主é®") |
| | | private Integer id; |
| | | |
| | | @ApiModelProperty(value = "å建人ç¼ç ") |
| | | @ExcelColumn(name="å建人ç¼ç ") |
| | | private String createUserName; |
| | | |
| | | @ApiModelProperty(value = "å建æ¶é´") |
| | | @ExcelColumn(name="å建æ¶é´") |
| | | private Date createTime; |
| | | |
| | | @ApiModelProperty(value = "主ç»ç»ç¼ç ï¼å
³èdepartmentè¡¨æ ¹ç»ç»ï¼") |
| | | @ExcelColumn(name="主ç»ç»ç¼ç ï¼å
³èdepartmentè¡¨æ ¹ç»ç»ï¼") |
| | | private Integer rootDepartId; |
| | | |
| | | @ApiModelProperty(value = "å·¥åç¼ç ï¼å
³èdepartment表ï¼") |
| | | @ExcelColumn(name="å·¥åç¼ç ï¼å
³èdepartment表ï¼") |
| | | @NotEmpty(message = "å·¥åç¼ç ä¸è½ä¸ºç©º") |
| | | private Integer departId; |
| | | |
| | | @ApiModelProperty(value = "å·¥åºç¼ç ï¼å
³èprocedure表ï¼") |
| | | @ExcelColumn(name="å·¥åºç¼ç ï¼å
³èprocedure表ï¼") |
| | | @NotEmpty(message = "å·¥åºç¼ç ä¸è½ä¸ºç©º") |
| | | private Integer procedureId; |
| | | |
| | | @ApiModelProperty(value = "å·¥åºç¼ç ï¼å
³èprocedure表ï¼") |
| | | @ExcelColumn(name="å·¥åºç¼ç ï¼å
³èprocedure表ï¼") |
| | | @NotEmpty(message = "å·¥åºç¼ç ä¸è½ä¸ºç©º") |
| | | private Integer procedureCode; |
| | | |
| | | @ApiModelProperty(value = "å·¥åºç¼ç ï¼å
³èprocedure表ï¼") |
| | | @ExcelColumn(name="å·¥åºç¼ç ï¼å
³èprocedure表ï¼") |
| | | private String procedureName; |
| | | |
| | | @ApiModelProperty(value = "产ååç§°" ) |
| | | @Excel(name="产ååç§°",orderNum ="3") |
| | | private String materialName; |
| | | |
| | | @ApiModelProperty(value = "产åç¼ç " ) |
| | | @Excel(name="产åç¼ç ",orderNum ="4") |
| | | private String materialCode; |
| | | |
| | | @ApiModelProperty(value = "ç©æç¼ç ï¼å
³èmaterial_distribute表ï¼", example = "1") |
| | | private Integer materialId; |
| | | |
| | | @ApiModelProperty(value = "å·¥èµåä»·ï¼å
)") |
| | | @ExcelColumn(name="å·¥èµåä»·ï¼å
)") |
| | | private BigDecimal salary; |
| | | |
| | | @ApiModelProperty(value = "æ åæ°é") |
| | | @ExcelColumn(name="æ åæ°é") |
| | | private Integer num; |
| | | |
| | | @ApiModelProperty(value = "æ åæ¶é¿ï¼ç§ï¼") |
| | | @ExcelColumn(name="æ åæ¶é¿ï¼ç§ï¼") |
| | | private String times; |
| | | |
| | | @ApiModelProperty(value = "ä¸è¯åæ¯å¦è®¡å
¥ 0å¦ 1æ¯") |
| | | @ExcelColumn(name="ä¸è¯åæ¯å¦è®¡å
¥ 0å¦ 1æ¯") |
| | | private Integer unqualified; |
| | | |
| | | @ApiModelProperty(value = "计价æ¹å¼ 0计件 1计æ¶") |
| | | @ExcelColumn(name="计价æ¹å¼ 0计件 1计æ¶") |
| | | private Integer type; |
| | | } |
| | |
| | | |
| | | import doumeemes.dao.business.model.WorkorderRecord; |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import doumeemes.dao.ext.vo.WOutboundRecordExtListVO; |
| | | import doumeemes.dao.ext.vo.WStockExtListForWorkorderVO; |
| | | import doumeemes.dao.ext.vo.WorkorderRecordExtListVO; |
| | | import doumeemes.dao.ext.dto.QuerySalaryStatisticDTO; |
| | | import doumeemes.dao.ext.dto.QueryUserSalaryListDTO; |
| | | import doumeemes.dao.ext.vo.*; |
| | | import doumeemes.dao.ext.dto.QueryWorkorderRecordExtDTO; |
| | | import io.lettuce.core.dynamic.annotation.Param; |
| | | |
| | |
| | | * @date 2022/04/20 10:56 |
| | | */ |
| | | List<WorkorderRecordExtListVO> selectListNew(QueryWorkorderRecordExtDTO dto); |
| | | List<SalaryStatisticsListVO> salaryStatistic(QuerySalaryStatisticDTO dto); |
| | | |
| | | List<WStockExtListForWorkorderVO> choiceWorkorderRecordUseStockList(QueryWorkorderRecordExtDTO dto); |
| | | |
| | |
| | | List<WorkorderRecordExtListVO> checkIsWork(@Param("ids")String ids); |
| | | |
| | | |
| | | List<UserSalaryListVO> userSalaryPage(QueryUserSalaryListDTO model); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package doumeemes.dao.ext.dto; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import doumeemes.dao.business.dto.MaterialListDTO; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | | * @date 2022/04/20 10:56 |
| | | */ |
| | | @Data |
| | | @ApiModel("å·¥èµæ¥è¡¨ç»è®¡å页æ¥è¯¢è¯·æ±åæ°") |
| | | public class QuerySalaryStatisticDTO { |
| | | @ApiModelProperty(value = "ç产人åç¼ç ", example = "1") |
| | | private Integer userId; |
| | | @ApiModelProperty(value = "æ ¹ç»ç»ç¼ç ", example = "1",hidden = true) |
| | | private Integer rootDepartId; |
| | | @ApiModelProperty(value = "å¼å§æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date startDate; |
| | | @ApiModelProperty(value = "ç»ææ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date endDate; |
| | | |
| | | @ApiModelProperty(value = "æ°æ®æéé¨é¨ç¼ç éå" ,hidden = true) |
| | | private List<Integer> departIds; |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package doumeemes.dao.ext.dto; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import doumeemes.core.annotation.excel.ExcelColumn; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | | * @date 2022/04/20 10:56 |
| | | */ |
| | | @Data |
| | | @ApiModel("å工绩æå页æ¥è¯¢è¯·æ±åæ°") |
| | | public class QueryUserSalaryListDTO { |
| | | @ApiModelProperty(value = "ç产人åç¼ç ", example = "1") |
| | | private Integer userId; |
| | | @ApiModelProperty(value = "å·¥åºç¼ç ", example = "1") |
| | | private Integer procedureId; |
| | | @ApiModelProperty(value = "ç©æç¼ç ", example = "1") |
| | | private Integer materialId; |
| | | @ApiModelProperty(value = "ç©æåç§°æç©æcodeç¼ç " ) |
| | | private String materialName; |
| | | @ApiModelProperty(value = "æ ¹ç»ç»ç¼ç ", example = "1",hidden = true) |
| | | private Integer rootDepartId; |
| | | @ApiModelProperty(value = "å¼å§æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date startDate; |
| | | @ApiModelProperty(value = "ç»ææ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date endDate; |
| | | @ApiModelProperty(value = "æ°æ®æéé¨é¨ç¼ç éå" ,hidden = true) |
| | | private List<Integer> departIds; |
| | | |
| | | } |
| | |
| | | @ApiModelProperty(value = "æ£éªäººåç¼ç ", example = "1") |
| | | private Integer checkUserId; |
| | | |
| | | @ApiModelProperty(value = "å·¥åç¶æ 0å·²å建ã1已夿ã2å·²å®å·¥ã3å·²æ£éªã4å·²æ¥å·¥ã5å·²å
¥åºã6已忶", example = "1") |
| | | @ApiModelProperty(value = "å·¥åç¶æ 0å·²å建ã1已夿ã2å·²å®å·¥ã3å·²æ£éªã4å·²æ¥å·¥ã5å·²å
¥åºã6已忶ã7ç产ä¸", example = "1") |
| | | private Integer status; |
| | | @ApiModelProperty(value = "å·¥åç¶æéåï¼å¾
ç产ï¼[0,1]ï¼ç产ä¸[2,3]ï¼å·²å®æ[4,5,6]" ) |
| | | @ApiModelProperty(value = "å·¥åç¶æéåï¼å¾
ç产ï¼[0,1]ï¼ç产ä¸[2,3ï¼7]ï¼å·²å®æ[4,5,6]" ) |
| | | private List<Integer> statusList; |
| | | |
| | | @ApiModelProperty(value = "æè¿ç¶ææ´æ°æ¶é´") |
| | |
| | | @ApiModelProperty(value = "æ¥å·¥æ¶é¿ï¼ç§ï¼", example = "1") |
| | | private Integer duration; |
| | | |
| | | @ApiModelProperty(value = "å·¥èµåä»·ï¼å)", example = "1") |
| | | @ApiModelProperty(value = "å·¥èµç»æï¼å
)", example = "1") |
| | | private Integer salary; |
| | | |
| | | @ApiModelProperty(value = "å·¥èµåä»·ï¼å
)", example = "1") |
| | | private Integer salaryPrice; |
| | | @ApiModelProperty(value = "æ åæ°é", example = "1") |
| | | private Integer salaryNum; |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package doumeemes.dao.ext.dto; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | | * @date 2022/04/20 10:56 |
| | | */ |
| | | @Data |
| | | @ApiModel("绩æå·¥èµé
ç½®") |
| | | public class SalaryParamDTO { |
| | | |
| | | @ApiModelProperty(value = "ç©æåç§°æç¼ç ") |
| | | private String keyWord; |
| | | |
| | | @ApiModelProperty(value = "å·¥åºåç§°") |
| | | private String procedureName; |
| | | |
| | | @ApiModelProperty(value = "计价æ¹å¼ 0计件 1计æ¶") |
| | | private Integer type; |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package doumeemes.dao.ext.dto; |
| | | |
| | | import cn.afterturn.easypoi.excel.annotation.Excel; |
| | | import io.swagger.annotations.ApiModel; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | | * @date 2022/04/20 10:56 |
| | | */ |
| | | @Data |
| | | @ApiModel("绩æå·¥èµé
置导å
¥") |
| | | public class SalaryParamImportDTO { |
| | | |
| | | @Excel(name="计价æ¹å¼",orderNum ="1") |
| | | private String type; |
| | | |
| | | @Excel(name="å·¥ååç§°",orderNum ="2") |
| | | private String departName; |
| | | |
| | | @Excel(name="产ååç§°",orderNum ="3") |
| | | private String materialName; |
| | | |
| | | @Excel(name="产åç¼ç ",orderNum ="4") |
| | | private String materialCode; |
| | | |
| | | @Excel(name="å·¥åºåç§°",orderNum ="5") |
| | | private String procedureName; |
| | | |
| | | @Excel(name="å·¥èµåä»·(å
)",orderNum ="6") |
| | | private BigDecimal salary; |
| | | |
| | | @Excel(name="æ å产åº",orderNum ="7") |
| | | private Integer NUM; |
| | | |
| | | @Excel(name="æ åå·¥æ¶",orderNum ="8") |
| | | private String timesName; |
| | | |
| | | @Excel(name="ä¸è¯æ¯å¦è®¡å
¥",orderNum ="9") |
| | | private String unqualified; |
| | | } |
| | |
| | | package doumeemes.dao.ext.dto; |
| | | |
| | | import cn.afterturn.easypoi.excel.annotation.Excel; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | |
| | | @ApiModelProperty(value = "ä¼å
级") |
| | | private Integer urgent; |
| | | |
| | | @ApiModelProperty(value = "计åå¼å§æ¥æ") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date startDate; |
| | | |
| | | @ApiModelProperty(value = "éå®åå·" ) |
| | | private String salesorder; |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package doumeemes.dao.ext.dto; |
| | | |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | | import javax.validation.constraints.NotEmpty; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2023/8/11 10:10 |
| | | */ |
| | | @Data |
| | | public class WxLoginDTO { |
| | | |
| | | @ApiModelProperty(value = "ä¼ä¸ç¼ç ") |
| | | private Integer companyId; |
| | | |
| | | @NotBlank(message = "ç¨æ·åä¸è½ä¸ºç©º") |
| | | @ApiModelProperty(value = "ç¨æ·å") |
| | | private String username; |
| | | |
| | | @NotBlank(message = "å¯ç ä¸è½ä¸ºç©º") |
| | | @ApiModelProperty(value = "å¯ç ") |
| | | private String password; |
| | | |
| | | @ApiModelProperty(value = "微信 openid") |
| | | private String openid; |
| | | |
| | | @ApiModelProperty(value = "微信 unionid") |
| | | private String unionid; |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package doumeemes.dao.ext.vo; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import doumeemes.core.annotation.excel.ExcelColumn; |
| | | import doumeemes.dao.business.model.*; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | | * @date 2022/04/20 10:56 |
| | | */ |
| | | @Data |
| | | @ApiModel("å·¥èµæ¥è¡¨ç»è®¡åé¡µæ°æ®") |
| | | public class SalaryStatisticsListVO implements Serializable{ |
| | | @ApiModelProperty(value = "ç产人åç¼ç ", example = "1") |
| | | @ExcelColumn(name="ç产人åç¼ç ") |
| | | private Integer userId; |
| | | @ApiModelProperty(value = "çæäººåä¿¡æ¯") |
| | | private UserBaseInfoVO userInfo; |
| | | |
| | | @ApiModelProperty(value = "ç产人åå§å",hidden = true) |
| | | @ExcelColumn(name="ç产人åå§å") |
| | | private String userName; |
| | | @ApiModelProperty(value = "æå±é¨é¨ç¼ç ", example = "1",hidden = true) |
| | | @ExcelColumn(name="æå±é¨é¨ç¼ç ") |
| | | private Integer departId; |
| | | |
| | | @ApiModelProperty(value = "æå±é¨é¨åç§°",hidden = true) |
| | | @ExcelColumn(name="æå±é¨é¨åç§°") |
| | | private String departName; |
| | | @ApiModelProperty(value = "计件工èµï¼åï¼", example = "1") |
| | | @ExcelColumn(name="计件工èµï¼åï¼") |
| | | private BigDecimal jijianSalary; |
| | | @ApiModelProperty(value = "计æ¶å·¥èµï¼åï¼", example = "1") |
| | | @ExcelColumn(name="计æ¶å·¥èµï¼åï¼") |
| | | private BigDecimal jishiSalary; |
| | | @ApiModelProperty(value = "å°è®¡å·¥èµï¼åï¼", example = "1") |
| | | @ExcelColumn(name="å°è®¡å·¥èµï¼åï¼") |
| | | private BigDecimal totalSalary; |
| | | @ApiModelProperty(value = "æ¥å·¥æ»åæ°,ä¸å
å«å·¥èµä¸º0ç", example = "1") |
| | | @ExcelColumn(name="æ¥å·¥æ»åæ°") |
| | | private Integer num; |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package doumeemes.dao.ext.vo; |
| | | |
| | | import doumeemes.core.annotation.excel.ExcelColumn; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | import java.math.BigDecimal; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | | * @date 2022/04/20 10:56 |
| | | */ |
| | | @Data |
| | | @ApiModel("ç¨æ·åºæ¬ä¿¡æ¯æ°æ®") |
| | | public class UserBaseInfoVO implements Serializable{ |
| | | |
| | | @ApiModelProperty(value = "ç产人åç¼ç ", example = "1") |
| | | @ExcelColumn(name="ç产人åç¼ç ") |
| | | private Integer userId; |
| | | @ApiModelProperty(value = "ç产人åå§ååé¨é¨åç§°ç»å") |
| | | @ExcelColumn(name="ç产人åå§ååé¨é¨åç§°ç»å") |
| | | private String nameAndDepart; |
| | | @ApiModelProperty(value = "ç产人åå§å") |
| | | @ExcelColumn(name="ç产人åå§å") |
| | | private String userName; |
| | | @ApiModelProperty(value = "æå±é¨é¨ç¼ç ", example = "1") |
| | | @ExcelColumn(name="æå±é¨é¨ç¼ç ") |
| | | private Integer departId; |
| | | |
| | | @ApiModelProperty(value = "æå±é¨é¨åç§°") |
| | | @ExcelColumn(name="æå±é¨é¨åç§°") |
| | | private String departName; |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package doumeemes.dao.ext.vo; |
| | | |
| | | import doumeemes.core.annotation.excel.ExcelColumn; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | import java.math.BigDecimal; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | | * @date 2022/04/20 10:56 |
| | | */ |
| | | @Data |
| | | @ApiModel("å工绩æåé¡µæ°æ®") |
| | | public class UserSalaryListVO implements Serializable{ |
| | | |
| | | @ApiModelProperty(value = "ç产人åç¼ç ", example = "1") |
| | | @ExcelColumn(name="ç产人åç¼ç ") |
| | | private Integer userId; |
| | | @ApiModelProperty(value = "çæäººåä¿¡æ¯") |
| | | private UserBaseInfoVO userInfo; |
| | | |
| | | @ApiModelProperty(value = "ç产人åå§å",hidden = true) |
| | | @ExcelColumn(name="ç产人åå§å") |
| | | private String userName; |
| | | @ApiModelProperty(value = "æå±é¨é¨ç¼ç ", example = "1",hidden = true) |
| | | @ExcelColumn(name="æå±é¨é¨ç¼ç ") |
| | | private Integer departId; |
| | | |
| | | @ApiModelProperty(value = "æå±é¨é¨åç§°",hidden = true) |
| | | @ExcelColumn(name="æå±é¨é¨åç§°") |
| | | private String departName; |
| | | @ApiModelProperty(value = "ç©æç¼ç ", example = "1") |
| | | @ExcelColumn(name="ç©æç¼ç ") |
| | | private String materialCode; |
| | | @ApiModelProperty(value = "ç©æåç§°", example = "1") |
| | | @ExcelColumn(name="ç©æåç§°") |
| | | private String materialName; |
| | | @ApiModelProperty(value = "ç©æä¸»é®", example = "1") |
| | | @ExcelColumn(name="ç©æä¸»é®") |
| | | private Integer materialId; |
| | | @ApiModelProperty(value = "å·¥åç¼ç ", example = "1") |
| | | @ExcelColumn(name="å·¥åç¼ç ") |
| | | private String workorderCode; |
| | | @ApiModelProperty(value = "å·¥åæä¸»é®", example = "1") |
| | | @ExcelColumn(name="å·¥å主é®") |
| | | private Integer workorderId; |
| | | @ApiModelProperty(value = "å·¥åºä¸»é®", example = "1") |
| | | @ExcelColumn(name="å·¥åºä¸»é®") |
| | | private Integer procedureId; |
| | | @ApiModelProperty(value = "å·¥åºåç§°") |
| | | @ExcelColumn(name="å·¥åºåç§°") |
| | | private String procedureName; |
| | | @ApiModelProperty(value = "åä½") |
| | | @ExcelColumn(name="åä½") |
| | | private String unitName; |
| | | @ApiModelProperty(value = "æ¥å·¥æ°") |
| | | @ExcelColumn(name="æ¥å·¥æ°") |
| | | private BigDecimal num; |
| | | @ApiModelProperty(value = "è¯åæ°") |
| | | @ExcelColumn(name="è¯åæ°") |
| | | private BigDecimal qualifiedNum; |
| | | @ApiModelProperty(value = "ä¸è¯åæ°") |
| | | @ExcelColumn(name="ä¸è¯åæ°") |
| | | private BigDecimal unQualifiedNum; |
| | | @ApiModelProperty(value = "åæ ¼çï¼%ï¼") |
| | | @ExcelColumn(name="åæ ¼ç(%)") |
| | | private BigDecimal rate; |
| | | |
| | | } |
| | |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date startDate; |
| | | @ApiModelProperty(value = "éå®åå·" ) |
| | | @Excel(name="éå®åå·",index = 16,width =15) |
| | | @ExcelColumn(name="éå®åå·",index = 16,width =15) |
| | | private String salesorder; |
| | | @ApiModelProperty(value = "ç©æç¼ç ï¼å
³èmaterial_distribute表ï¼", example = "1") |
| | | @ExcelColumn(name="ç©æç¼ç ï¼å
³èmaterial_distribute表ï¼") |
| | |
| | | @ApiModelProperty(value = "æ£éªäººåç¼ç ", example = "1") |
| | | private Integer checkUserId; |
| | | |
| | | @ApiModelProperty(value = "å·¥åç¶æ 0å·²å建ã1已夿ã2å·²å®å·¥ã3å·²æ£éªã4å·²æ¥å·¥ã5å·²å
¥åºã6已忶", example = "1") |
| | | @ExcelColumn(name="å·¥åç¶æ",valueMapping = "0=å·²å建;1=已夿;2=å·²å®å·¥;3=å·²æ£éª;4=å·²æ¥å·¥;5=å·²å
¥åº;6=已忶;",index = 14,width =15) |
| | | @ApiModelProperty(value = "å·¥åç¶æ 0å·²å建ã1已夿ã2å·²å®å·¥ã3å·²æ£éªã4å·²æ¥å·¥ã5å·²å
¥åºã6已忶ã7ç产ä¸", example = "1") |
| | | @ExcelColumn(name="å·¥åç¶æ",valueMapping = "0=å·²å建;1=已夿;2=å·²å®å·¥;3=å·²æ£éª;4=å·²æ¥å·¥;5=å·²å
¥åº;6=已忶;7=ç产ä¸;",index = 14,width =15) |
| | | private Integer status; |
| | | |
| | | @ApiModelProperty(value = "æè¿ç¶ææ´æ°æ¶é´") |
| | |
| | | @ApiModelProperty(value = "ææå表") |
| | | private List<MaterialModelVo> materialList; |
| | | |
| | | @ApiModelProperty(value = "å·¥åç¶æ 0å·²å建ã1已夿ã2å·²å®å·¥ã3å·²æ£éªã4å·²æ¥å·¥ã5å·²å
¥åºã6已忶", example = "1") |
| | | @ApiModelProperty(value = "å·¥åç¶æ 0å·²å建ã1已夿ã2å·²å®å·¥ã3å·²æ£éªã4å·²æ¥å·¥ã5å·²å
¥åºã6已忶ã7ç产ä¸", example = "1") |
| | | private Integer status; |
| | | |
| | | @ApiModelProperty(value = "ä¼å
çº§ï¼æåºç ï¼å段", example = "1") |
| | |
| | | @ExcelColumn(name="æ¥å·¥æ¶é¿ï¼ç§ï¼") |
| | | private Integer duration; |
| | | |
| | | @ApiModelProperty(value = "å·¥èµåä»·ï¼å)", example = "1") |
| | | @ExcelColumn(name="å·¥èµåä»·ï¼å)") |
| | | @ApiModelProperty(value = "å·¥èµç»æï¼å
)", example = "1") |
| | | @ExcelColumn(name="å·¥èµç»æï¼å
)") |
| | | private Integer salary; |
| | | @ApiModelProperty(value = "å·¥èµåä»·ï¼å
)", example = "1") |
| | | @ExcelColumn(name="å·¥èµåä»·ï¼å
)") |
| | | private Integer salaryPrice; |
| | | |
| | | @ApiModelProperty(value = "æ åæ°é", example = "1") |
| | | @ExcelColumn(name="æ åæ°é") |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package doumeemes.dao.ext.vo; |
| | | |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2023/8/11 11:22 |
| | | */ |
| | | @Data |
| | | public class WxLoginVO { |
| | | |
| | | |
| | | @ApiModelProperty(value = "ç»å½ç¶æï¼0=微信ç»å½æåï¼1=微信ç»å½å¤±è´¥") |
| | | private Integer loginStatus; |
| | | |
| | | @ApiModelProperty(value = "微信 openid") |
| | | private String openid ; |
| | | |
| | | @ApiModelProperty(value = "微信 unionid") |
| | | private String unionid ; |
| | | |
| | | @ApiModelProperty(value = "session") |
| | | private String session ; |
| | | } |
| | |
| | | |
| | | @ApiModelProperty(value = "ç±»å 0å¹³å° 1ä¼ä¸PC端 2ä¼ä¸ææºç«¯", example = "1") |
| | | private Integer type; |
| | | |
| | | @ApiModelProperty(value = "æä»¶è®¿é®åç¼") |
| | | @TableField(exist = false) |
| | | private String resourcePath; |
| | | } |
| | |
| | | @NotBlank(message = "å§åä¸è½ä¸ºç©º", groups = {OperaType.Create.class/*, OperaType.Update.class*/}) |
| | | private String realname; |
| | | |
| | | @NotBlank(message = "å·¥å·ä¸è½ä¸ºç©º", groups = {OperaType.Create.class/*, OperaType.Update.class*/}) |
| | | // @NotBlank(message = "å·¥å·ä¸è½ä¸ºç©º", groups = {OperaType.Create.class/*, OperaType.Update.class*/}) |
| | | @ApiModelProperty(value = "æ»è´¦å·å·¥å·") |
| | | private String empNo; |
| | | |
| | |
| | | |
| | | @ApiModelProperty(value = "æ´æ°äººä¿¡æ¯") |
| | | private SystemUser updateUserInfo; |
| | | @ApiModelProperty(value = "æä»¶è®¿é®åç¼") |
| | | private String resourcePath; |
| | | } |
| | |
| | | import doumeemes.core.model.PageData; |
| | | import doumeemes.core.model.PageWrap; |
| | | import doumeemes.dao.business.model.SalaryParam; |
| | | import doumeemes.dao.business.vo.SalaryParamVO; |
| | | import doumeemes.dao.ext.dto.SalaryParamDTO; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | |
| | | /** |
| | | * å建 |
| | | * |
| | | * |
| | | * @param salaryParam å®ä½å¯¹è±¡ |
| | | * @return Integer |
| | | */ |
| | |
| | | */ |
| | | void updateById(SalaryParam salaryParam); |
| | | |
| | | |
| | | /** |
| | | * 䏻鮿´æ° |
| | | * |
| | | * @param salaryParam å®ä½å¯¹è±¡ |
| | | */ |
| | | void update(SalaryParam salaryParam); |
| | | |
| | | /** |
| | | * æ¹é䏻鮿´æ° |
| | | * |
| | |
| | | * @return List<SalaryParam> |
| | | */ |
| | | List<SalaryParam> findList(SalaryParam salaryParam); |
| | | |
| | | |
| | | /** |
| | | * å页æ¥è¯¢ |
| | | * |
| | | * @param pageWrap å页对象 |
| | | * @return PageData<SalaryParam> |
| | | */ |
| | | PageData<SalaryParam> findPage(PageWrap<SalaryParam> pageWrap); |
| | | PageData<SalaryParamVO> findPage(PageWrap<SalaryParamDTO> pageWrap); |
| | | |
| | | /** |
| | | * æ¡ä»¶ç»è®¡ |
| | |
| | | * @return long |
| | | */ |
| | | long count(SalaryParam salaryParam); |
| | | |
| | | /** |
| | | * |
| | | * @param file |
| | | */ |
| | | void importPlans(MultipartFile file); |
| | | } |
| | |
| | | package doumeemes.service.business.impl; |
| | | |
| | | import doumeemes.core.constants.ResponseStatus; |
| | | import doumeemes.core.exception.BusinessException; |
| | | import doumeemes.core.model.LoginUserInfo; |
| | | import doumeemes.core.model.PageData; |
| | | import doumeemes.core.model.PageWrap; |
| | | import doumeemes.core.utils.Constants; |
| | | import doumeemes.core.utils.Utils; |
| | | import doumeemes.core.utils.excel.EasyExcelUtil; |
| | | import doumeemes.dao.business.DepartmentMapper; |
| | | import doumeemes.dao.business.MaterialMapper; |
| | | import doumeemes.dao.business.ProceduresMapper; |
| | | import doumeemes.dao.business.SalaryParamMapper; |
| | | import doumeemes.dao.business.model.SalaryParam; |
| | | import doumeemes.dao.business.model.*; |
| | | import doumeemes.dao.business.vo.SalaryParamVO; |
| | | import doumeemes.dao.ext.dto.SalaryParamDTO; |
| | | import doumeemes.dao.ext.dto.SalaryParamImportDTO; |
| | | import doumeemes.service.business.DepartmentService; |
| | | import doumeemes.service.business.SalaryParamService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.CollectionUtils; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * 设置类-绩æå·¥èµé
置表Serviceå®ç° |
| | |
| | | @Autowired |
| | | private SalaryParamMapper salaryParamMapper; |
| | | |
| | | @Autowired |
| | | private DepartmentMapper departmentMapper; |
| | | |
| | | @Autowired |
| | | private MaterialMapper materialMapper; |
| | | |
| | | @Autowired |
| | | private ProceduresMapper proceduresMapper; |
| | | |
| | | @Override |
| | | public Integer create(SalaryParam salaryParam) { |
| | | salaryParamMapper.insert(salaryParam); |
| | | LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | |
| | | SalaryParam insert = new SalaryParam(); |
| | | insert.setDeleted((byte) Constants.ZERO); |
| | | insert.setCreateUser(principal.getId()); |
| | | insert.setCreateTime(new Date()); |
| | | insert.setUpdateUser(principal.getId()); |
| | | insert.setUpdateTime(new Date()); |
| | | insert.setRemark(salaryParam.getRemark()); |
| | | insert.setRootDepartId(salaryParam.getRootDepartId()); |
| | | insert.setDepartId(salaryParam.getDepartId()); |
| | | insert.setProcedureId(salaryParam.getProcedureId()); |
| | | insert.setMaterialId(salaryParam.getMaterialId()); |
| | | insert.setSalary(salaryParam.getSalary()); |
| | | insert.setNum(salaryParam.getNum()); |
| | | insert.setTimes(salaryParam.getTimes()); |
| | | insert.setUnqualified(salaryParam.getUnqualified()); |
| | | insert.setType(salaryParam.getType()); |
| | | salaryParamMapper.insert(insert); |
| | | return salaryParam.getId(); |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void update(SalaryParam salaryParam) { |
| | | LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | UpdateWrapper<SalaryParam> wrapper = new UpdateWrapper<>(); |
| | | wrapper.lambda() |
| | | .eq(SalaryParam::getId,salaryParam.getId()) |
| | | .set(SalaryParam::getUpdateTime,new Date()) |
| | | .set(SalaryParam::getUpdateUser,principal.getId()) |
| | | .set(SalaryParam::getType,salaryParam.getType()) |
| | | .set(SalaryParam::getDepartId,salaryParam.getDepartId()) |
| | | .set(SalaryParam::getMaterialId,salaryParam.getMaterialId()) |
| | | .set(SalaryParam::getProcedureId,salaryParam.getProcedureId()) |
| | | .set(SalaryParam::getSalary,salaryParam.getSalary()) |
| | | .set(SalaryParam::getNum,salaryParam.getNum()) |
| | | .set(SalaryParam::getTimes,salaryParam.getTimes()) |
| | | .set(SalaryParam::getUnqualified,salaryParam.getUnqualified()); |
| | | salaryParamMapper.update(null,wrapper); |
| | | } |
| | | |
| | | @Override |
| | | public void updateByIdInBatch(List<SalaryParam> salaryParams) { |
| | | if (CollectionUtils.isEmpty(salaryParams)) { |
| | | return; |
| | |
| | | QueryWrapper<SalaryParam> wrapper = new QueryWrapper<>(salaryParam); |
| | | return salaryParamMapper.selectList(wrapper); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public PageData<SalaryParam> findPage(PageWrap<SalaryParam> pageWrap) { |
| | | public PageData<SalaryParamVO> findPage(PageWrap<SalaryParamDTO> pageWrap) { |
| | | IPage<SalaryParam> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | QueryWrapper<SalaryParam> queryWrapper = new QueryWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | if (pageWrap.getModel().getId() != null) { |
| | | queryWrapper.lambda().eq(SalaryParam::getId, pageWrap.getModel().getId()); |
| | | } |
| | | if (pageWrap.getModel().getDeleted() != null) { |
| | | queryWrapper.lambda().eq(SalaryParam::getDeleted, pageWrap.getModel().getDeleted()); |
| | | } |
| | | if (pageWrap.getModel().getCreateUser() != null) { |
| | | queryWrapper.lambda().eq(SalaryParam::getCreateUser, pageWrap.getModel().getCreateUser()); |
| | | } |
| | | if (pageWrap.getModel().getCreateTime() != null) { |
| | | queryWrapper.lambda().ge(SalaryParam::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateTime())); |
| | | queryWrapper.lambda().le(SalaryParam::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateTime())); |
| | | } |
| | | if (pageWrap.getModel().getUpdateUser() != null) { |
| | | queryWrapper.lambda().eq(SalaryParam::getUpdateUser, pageWrap.getModel().getUpdateUser()); |
| | | } |
| | | if (pageWrap.getModel().getUpdateTime() != null) { |
| | | queryWrapper.lambda().ge(SalaryParam::getUpdateTime, Utils.Date.getStart(pageWrap.getModel().getUpdateTime())); |
| | | queryWrapper.lambda().le(SalaryParam::getUpdateTime, Utils.Date.getEnd(pageWrap.getModel().getUpdateTime())); |
| | | } |
| | | if (pageWrap.getModel().getRemark() != null) { |
| | | queryWrapper.lambda().eq(SalaryParam::getRemark, pageWrap.getModel().getRemark()); |
| | | } |
| | | if (pageWrap.getModel().getRootDepartId() != null) { |
| | | queryWrapper.lambda().eq(SalaryParam::getRootDepartId, pageWrap.getModel().getRootDepartId()); |
| | | } |
| | | if (pageWrap.getModel().getDepartId() != null) { |
| | | queryWrapper.lambda().eq(SalaryParam::getDepartId, pageWrap.getModel().getDepartId()); |
| | | } |
| | | if (pageWrap.getModel().getProcedureId() != null) { |
| | | queryWrapper.lambda().eq(SalaryParam::getProcedureId, pageWrap.getModel().getProcedureId()); |
| | | } |
| | | if (pageWrap.getModel().getBomId() != null) { |
| | | queryWrapper.lambda().eq(SalaryParam::getBomId, pageWrap.getModel().getBomId()); |
| | | } |
| | | if (pageWrap.getModel().getSalary() != null) { |
| | | queryWrapper.lambda().eq(SalaryParam::getSalary, pageWrap.getModel().getSalary()); |
| | | } |
| | | if (pageWrap.getModel().getNum() != null) { |
| | | queryWrapper.lambda().eq(SalaryParam::getNum, pageWrap.getModel().getNum()); |
| | | } |
| | | if (pageWrap.getModel().getTimes() != null) { |
| | | queryWrapper.lambda().eq(SalaryParam::getTimes, pageWrap.getModel().getTimes()); |
| | | } |
| | | if (pageWrap.getModel().getUnqualified() != null) { |
| | | queryWrapper.lambda().eq(SalaryParam::getUnqualified, pageWrap.getModel().getUnqualified()); |
| | | } |
| | | if (pageWrap.getModel().getType() != null) { |
| | | queryWrapper.lambda().eq(SalaryParam::getType, pageWrap.getModel().getType()); |
| | | } |
| | | for(PageWrap.SortData sortData: pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | | } else { |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | } |
| | | } |
| | | return PageData.from(salaryParamMapper.selectPage(page, queryWrapper)); |
| | | SalaryParamDTO model = pageWrap.getModel(); |
| | | return PageData.from(salaryParamMapper.selectPage(page, model)); |
| | | } |
| | | |
| | | @Override |
| | |
| | | QueryWrapper<SalaryParam> wrapper = new QueryWrapper<>(salaryParam); |
| | | return salaryParamMapper.selectCount(wrapper); |
| | | } |
| | | |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | @Override |
| | | public void importPlans(MultipartFile file) { |
| | | |
| | | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | if(!Constants.equalsInteger(user.getType(),Constants.USERTYPE.COM)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对ä¸èµ·ï¼æ¨æ æéè¿è¡è¯¥æä½ï¼"); |
| | | } |
| | | //è§£æexcel |
| | | List<SalaryParamImportDTO> plansList = EasyExcelUtil.importExcel(file, 1, 1, SalaryParamImportDTO.class); |
| | | if(plansList == null || plansList.size()==0){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "导å
¥æ°æ®å
容æè¯¯ï¼"); |
| | | } |
| | | |
| | | plansList.forEach(s->{ |
| | | if (Objects.isNull(s.getType()) |
| | | || Objects.isNull(s.getDepartName()) |
| | | || Objects.isNull(s.getMaterialCode()) |
| | | || Objects.isNull(s.getProcedureName()) |
| | | || Objects.isNull(s.getNUM())){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "导å
¥æ°æ®å
容æè¯¯ï¼"); |
| | | } |
| | | }); |
| | | |
| | | |
| | | for (int i = 0; i < plansList.size(); i++) { |
| | | SalaryParamImportDTO salaryParamImportDTO = plansList.get(i); |
| | | |
| | | QueryWrapper<Department> wrapper = new QueryWrapper<>(); |
| | | wrapper.lambda() |
| | | .eq(Department::getName,salaryParamImportDTO.getDepartName()) |
| | | .eq(Department::getType,Constants.DEPART_TYPE.factory) |
| | | .last("limit 1"); |
| | | Department department = departmentMapper.selectOne(wrapper); |
| | | if (Objects.isNull(department)){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "导å
¥æ°æ®å
容ãå
¬å¸åç§°ãæè¯¯ï¼"); |
| | | } |
| | | |
| | | QueryWrapper<Material> materialWrapper = new QueryWrapper<>(); |
| | | materialWrapper.lambda() |
| | | .eq(Material::getCode,salaryParamImportDTO.getMaterialCode()) |
| | | .eq(Material::getRootDepartId,department.getRootId()) |
| | | .last("limit 1"); |
| | | Material material = materialMapper.selectOne(materialWrapper); |
| | | |
| | | if (Objects.isNull(material)){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "导å
¥æ°æ®å
容ã产åç¼ç ãæè¯¯ï¼"); |
| | | } |
| | | if (Objects.nonNull(material) && Objects.equals(material.getName(),salaryParamImportDTO.getMaterialName())){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "导å
¥æ°æ®å
容ã产ååç§°ãæè¯¯ï¼"); |
| | | } |
| | | QueryWrapper<Procedures> proceduresWrapper = new QueryWrapper<>(); |
| | | proceduresWrapper.lambda() |
| | | .eq(Procedures::getName,salaryParamImportDTO.getProcedureName()) |
| | | .eq(Procedures::getRootDepartId,department.getRootId()) |
| | | .eq(Procedures::getDepartId,department.getId()) |
| | | .last("limit 1"); |
| | | Procedures procedures = proceduresMapper.selectOne(proceduresWrapper); |
| | | if (Objects.isNull(procedures)){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "导å
¥æ°æ®å
容ãå·¥åºåç§°ãæè¯¯ï¼"); |
| | | } |
| | | SalaryParam salaryParam = new SalaryParam(); |
| | | salaryParam.setRootDepartId(department.getRootId()); |
| | | salaryParam.setDepartId(department.getId()); |
| | | salaryParam.setProcedureId(procedures.getId()); |
| | | salaryParam.setMaterialId(material.getId()); |
| | | salaryParam.setSalary(salaryParamImportDTO.getSalary()); |
| | | salaryParam.setNum(salaryParamImportDTO.getNUM()); |
| | | //todo |
| | | // salaryParam.setTimes(); |
| | | // salaryParam.setUnqualified(salaryParamImportDTO.getUnqualified() ); |
| | | // salaryParam.setType(salaryParamImportDTO.getType()); |
| | | create(salaryParam); |
| | | } |
| | | |
| | | } |
| | | } |
| | |
| | | |
| | | //å·¥å对象 |
| | | Workorder workorder=workorderExtMapper.selectById(wc.getWorkorderId()); |
| | | if(workorder==null || workorder.getStatus()==Constants.WORKORDER_STATUS.done||workorder.getStatus()==Constants.WORKORDER_STATUS.baogong |
| | | ||workorder.getStatus()==Constants.WORKORDER_STATUS.instock ||workorder.getStatus()==Constants.WORKORDER_STATUS.cancel){ |
| | | if(workorder==null |
| | | || workorder.getStatus()==Constants.WORKORDER_STATUS.done |
| | | ||workorder.getStatus()==Constants.WORKORDER_STATUS.baogong |
| | | ||workorder.getStatus()==Constants.WORKORDER_STATUS.instock |
| | | ||workorder.getStatus()==Constants.WORKORDER_STATUS.cancel){ |
| | | return ApiResponse.failed("å·¥åä¸å
许æ£éª"); |
| | | } |
| | | if(workorder.getPlanNum()!=null){ |
| | |
| | | |
| | | //å·¥å对象 |
| | | Workorder workorder=workorderExtMapper.selectById(wc.getWorkorderId()); |
| | | if(workorder==null || workorder.getStatus()==Constants.WORKORDER_STATUS.done||workorder.getStatus()==Constants.WORKORDER_STATUS.baogong |
| | | if(workorder==null || workorder.getStatus()==Constants.WORKORDER_STATUS.done || workorder.getStatus()==Constants.WORKORDER_STATUS.done||workorder.getStatus()==Constants.WORKORDER_STATUS.baogong |
| | | ||workorder.getStatus()==Constants.WORKORDER_STATUS.instock ||workorder.getStatus()==Constants.WORKORDER_STATUS.cancel){ |
| | | return ApiResponse.failed("å·¥åä¸å
许æ£éª"); |
| | | } |
| | |
| | | import doumeemes.core.model.LoginUserInfo; |
| | | import doumeemes.core.model.PageData; |
| | | import doumeemes.core.model.PageWrap; |
| | | import doumeemes.dao.business.dto.AutoWorkReportDTO; |
| | | import doumeemes.dao.business.model.Plans; |
| | | import doumeemes.dao.business.model.Workorder; |
| | | import doumeemes.dao.ext.vo.PlansExtListCountVO; |
| | |
| | | void pauseByIdForStandard(Plans model,LoginUserInfo userInfo); |
| | | void regainByIdForStandard(Plans model, LoginUserInfo userInfo); |
| | | List<PlansExtListVO> getListByWorkPlan(Integer workPlanId); |
| | | |
| | | /** |
| | | * ä¸é®æ¥å·¥ |
| | | * @param user |
| | | * @param autoWorkReportDTO |
| | | */ |
| | | void autoWorkReport(LoginUserInfo user, AutoWorkReportDTO autoWorkReportDTO); |
| | | } |
| | |
| | | import doumeemes.dao.business.model.Workorder; |
| | | import doumeemes.dao.business.model.WorkorderRecord; |
| | | import doumeemes.dao.ext.bean.EndCheckApBean; |
| | | import doumeemes.dao.ext.dto.QuerySalaryStatisticDTO; |
| | | import doumeemes.dao.ext.dto.QueryUserSalaryListDTO; |
| | | import doumeemes.dao.ext.dto.QueryWorkorderRecordExtDTO; |
| | | import doumeemes.dao.ext.vo.SalaryStatisticsListVO; |
| | | import doumeemes.dao.ext.vo.UserSalaryListVO; |
| | | import doumeemes.dao.ext.vo.WorkorderRecordExtListVO; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | |
| | | |
| | | void exportExcel(PageWrap<QueryWorkorderRecordExtDTO> pageWrap ,HttpServletResponse response); |
| | | |
| | | PageData<SalaryStatisticsListVO> salaryStatistic(PageWrap<QuerySalaryStatisticDTO> pageWrap); |
| | | |
| | | PageData<UserSalaryListVO> userSalaryPage(PageWrap<QueryUserSalaryListDTO> pageWrap); |
| | | |
| | | void exportUserSalary(PageWrap<QueryUserSalaryListDTO> pageWrap, HttpServletResponse response); |
| | | |
| | | void exportSalaryStatistics(PageWrap<QuerySalaryStatisticDTO> pageWrap, HttpServletResponse response); |
| | | } |
| | |
| | | import doumeemes.core.model.PageData; |
| | | import doumeemes.core.model.PageWrap; |
| | | import doumeemes.dao.business.dto.CreateMaterialDTO; |
| | | import doumeemes.dao.business.dto.CreateWorkorderRecordDTO; |
| | | import doumeemes.dao.business.dto.DealWorkorderRecordDTO; |
| | | import doumeemes.dao.business.model.Workorder; |
| | | import doumeemes.dao.business.model.WorkorderRecord; |
| | |
| | | |
| | | WorkorderRecord dealWorkorderRecord(DealWorkorderRecordDTO dealWorkorderRecordDTO, LoginUserInfo loginUserInfo); |
| | | |
| | | WorkorderRecord createWorkorderRecord(CreateWorkorderRecordDTO createWorkorderRecordDTO, LoginUserInfo loginUserInfo); |
| | | |
| | | List<WorkorderRecord> getWorkorderRecordList(Integer workorderId); |
| | | |
| | | PageData<WStockExtListVO> choiceStockPageForWorkorder(PageWrap<QueryWStockDto> pageWrap, LoginUserInfo userInfo); |
| | |
| | | import doumeemes.core.utils.excel.EasyExcelUtil; |
| | | import doumeemes.core.utils.redis.RedisUtil; |
| | | import doumeemes.dao.business.PlansMapper; |
| | | import doumeemes.dao.business.dto.*; |
| | | import doumeemes.dao.business.model.*; |
| | | import doumeemes.dao.ext.*; |
| | | import doumeemes.dao.ext.dto.*; |
| | | import doumeemes.dao.ext.vo.*; |
| | | import doumeemes.service.ext.*; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.springframework.beans.BeanUtils; |
| | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * ç产计åServiceå®ç° |
| | |
| | | private MaterialDistributeExtMapper materialDistributeExtMapper; |
| | | @Autowired |
| | | private WStockExtService wStockExtService; |
| | | @Autowired |
| | | private WorkorderRecordStandardService workorderRecordStandardService; |
| | | |
| | | @Override |
| | | public PlansExtListVO findById(Integer id){ |
| | |
| | | distributeDone(user, param,param.getPlanNum()); |
| | | } |
| | | |
| | | private void distributeDone(LoginUserInfo user, Workorder param,int thisPlanNum) { |
| | | private Workorder distributeDone(LoginUserInfo user, Workorder param,int thisPlanNum) { |
| | | if(param.getPlanId()== null |
| | | ||param.getPlanDate() == null |
| | | || param.getProGroupId()==null |
| | |
| | | //ç产人åè®°å½ |
| | | workorderUserExtMapper.insert(wu); |
| | | } |
| | | |
| | | return order; |
| | | } |
| | | |
| | | private void checkUserAndGroup(Workorder param, PlansExtListVO model,LoginUserInfo user) throws BusinessException{ |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * ä¸é®æ¥å·¥ |
| | | * @param user |
| | | */ |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | @Override |
| | | public void autoWorkReport(LoginUserInfo user, AutoWorkReportDTO autoWorkReportDTO){ |
| | | //æ¥è¯¢å·¥å·¥åºè®¡åç¶æ |
| | | Plans plans = plansExtMapper.selectById(autoWorkReportDTO.getPlansId()); |
| | | if(Objects.isNull(plans)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªæ¥è¯¢å°å·¥åºè®¡åæ°æ®"); |
| | | } |
| | | if(plans.getStatus().equals(Constants.PLAN_STATUS.create)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"å·¥åºè®¡åå·²æµè½¬ï¼æ æ³æä½"); |
| | | } |
| | | if(Objects.isNull(autoWorkReportDTO.getCreateWorkorderRecordDTO())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"åæ°é误ï¼äº§åºæ°æ®"); |
| | | } |
| | | //æ¥è¯¢å·¥åºè®¡åå·²åé
æ°é |
| | | List<Workorder> workorderList = workorderExtMapper.selectList(new QueryWrapper<Workorder>().eq("PLAN_ID",plans.getId())); |
| | | //æ¬æ¬¡äº§åºæ°é |
| | | BigDecimal num = autoWorkReportDTO.getCreateWorkorderRecordDTO().getQualifiedNum().add(autoWorkReportDTO.getCreateWorkorderRecordDTO().getUnQualifiedNum()); |
| | | if(num.compareTo(BigDecimal.ZERO)<=Constants.ZERO){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"åæ°é误ï¼äº§åºæ°æ®"); |
| | | } |
| | | //å·¥åå·²åé
æ°é |
| | | Integer produceNum = workorderList.stream().map(s -> s.getPlanNum()).reduce(Constants.ZERO, Integer::sum); |
| | | Integer surplusNum = plans.getNum() - produceNum; |
| | | if(num.compareTo(BigDecimal.valueOf(surplusNum))>0){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"åæ°é误ï¼è¶
åºå·¥åå©ä½å¯åé
æ°é"); |
| | | } |
| | | Workorder param = new Workorder(); |
| | | param.setPlanId(autoWorkReportDTO.getPlansId()); |
| | | param.setPlanDate(new Date()); |
| | | List<Integer> proUserList = new ArrayList<Integer>(); |
| | | //TODO |
| | | proUserList.add(user.getId()); |
| | | param.setProUserList(proUserList); |
| | | param.setPlanNum(plans.getNum()); |
| | | //çæå·¥åä¿¡æ¯ |
| | | Workorder workorder = this.distributeDone(user,param,plans.getNum()); |
| | | //å·¥åææè®°å½ |
| | | CreateMaterialDTO createMaterialDTO = new CreateMaterialDTO(); |
| | | if(!Objects.isNull(autoWorkReportDTO.getRecordList())&&autoWorkReportDTO.getRecordList().size()>Constants.ZERO){ |
| | | createMaterialDTO.setId(workorder.getId()); |
| | | createMaterialDTO.setRecordList(autoWorkReportDTO.getRecordList()); |
| | | workorderRecordStandardService.createMaterialStandard(createMaterialDTO); |
| | | } |
| | | //å·¥å产åºè®°å½ |
| | | workorderRecordStandardService.createWorkorderRecord(autoWorkReportDTO.getCreateWorkorderRecordDTO(),user); |
| | | //工忥工 |
| | | workorderRecordStandardService.comfirmDone(workorder); |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | || Objects.isNull(workPlansSaveDTO.getNum()) |
| | | || Objects.isNull(workPlansSaveDTO.getFactoryId()) |
| | | || Objects.isNull(workPlansSaveDTO.getUnitId()) |
| | | || Objects.isNull(workPlansSaveDTO.getMaterialId())){ |
| | | || Objects.isNull(workPlansSaveDTO.getMaterialId()) |
| | | || Objects.isNull(workPlansSaveDTO.getStartDate()) |
| | | || workPlansSaveDTO.getStartDate().getTime() > workPlansSaveDTO.getPlanDate().getTime()){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | WorkPlans workPlans = new WorkPlans(); |
| | |
| | | } |
| | | return PageData.from(new PageInfo<>(result)); |
| | | } |
| | | @Override |
| | | public PageData<SalaryStatisticsListVO> salaryStatistic(PageWrap<QuerySalaryStatisticDTO> pageWrap) { |
| | | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | if(!Constants.equalsInteger(user.getType(),Constants.USERTYPE.COM)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对ä¸èµ·ï¼æ¨æ æéè¿è¡è¯¥æä½ï¼"); |
| | | } |
| | | //åªè½æ¥çå½åæ ¹ç»ç»çæ°æ® |
| | | pageWrap.getModel().setRootDepartId(user.getRootDepartment().getId()); |
| | | PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | List<SalaryStatisticsListVO> result = workorderRecordExtMapper.salaryStatistic(pageWrap.getModel()); |
| | | if(result!=null){ |
| | | List<DepartmentExtListVO> allDepartList = RedisUtil.getObject(redisTemplate,Constants.RedisKeys.COM_DEPART_LIST_KEY+user.getCompany().getId(),ArrayList.class); |
| | | for(SalaryStatisticsListVO model : result){ |
| | | //æ¥è¯¢ç产人åå§å |
| | | // model.setUserName(initProUser(user,model.getUserId(),allDepartList)); |
| | | model.setUserInfo(initProUser(user,model.getUserId(),allDepartList)); |
| | | } |
| | | } |
| | | return PageData.from(new PageInfo<>(result)); |
| | | } |
| | | @Override |
| | | public PageData<UserSalaryListVO> userSalaryPage(PageWrap<QueryUserSalaryListDTO> pageWrap) { |
| | | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | if(!Constants.equalsInteger(user.getType(),Constants.USERTYPE.COM)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对ä¸èµ·ï¼æ¨æ æéè¿è¡è¯¥æä½ï¼"); |
| | | } |
| | | //åªè½æ¥çå½åæ ¹ç»ç»çæ°æ® |
| | | pageWrap.getModel().setRootDepartId(user.getRootDepartment().getId()); |
| | | pageWrap.getModel().setRootDepartId(user.getRootDepartment().getId()); |
| | | PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | |
| | | //æ°æ®æé |
| | | // List<Integer> dataPermission = user.getDepartPermissionList(); |
| | | List<UserSalaryListVO> result = workorderRecordExtMapper.userSalaryPage(pageWrap.getModel()); |
| | | if(result!=null){ |
| | | List<DepartmentExtListVO> allDepartList = RedisUtil.getObject(redisTemplate,Constants.RedisKeys.COM_DEPART_LIST_KEY+user.getCompany().getId(),ArrayList.class); |
| | | for(UserSalaryListVO model : result){ |
| | | //æ¥è¯¢ç产人åå§å |
| | | model.setUserInfo(initProUser(user,model.getUserId(),allDepartList)); |
| | | if(Constants.formatBigdecimal4Float(model.getNum()).compareTo(new BigDecimal(0))>0){ |
| | | model.setRate(Constants.formatBigdecimal4Float(model.getQualifiedNum()).divide(model.getNum(),4).multiply(new BigDecimal(100))); |
| | | } |
| | | } |
| | | } |
| | | return PageData.from(new PageInfo<>(result)); |
| | | } |
| | | |
| | | private void initProUser(LoginUserInfo user, WorkorderRecordExtListVO data, List<DepartmentExtListVO> allDepartList) { |
| | | if(data.getCreateUser() ==null){ |
| | |
| | | String dName =d==null?"":StringUtils.defaultString(d.getName(),""); |
| | | data.setProcedureName(comp.getName()+"-"+dName); |
| | | } |
| | | } |
| | | private UserBaseInfoVO initProUser(LoginUserInfo user, Integer userId, List<DepartmentExtListVO> allDepartList) { |
| | | if(userId ==null){ |
| | | return null; |
| | | } |
| | | |
| | | CompanyUser query=new CompanyUser(); |
| | | query.setUserId(userId); |
| | | query.setRootDepartId(user.getRootDepartment().getId()); |
| | | query.setDeleted(Constants.ZERO); |
| | | CompanyUser comp= companyUserExtMapper.selectOne(new QueryWrapper<>(query).last(" limit 1")); |
| | | if(comp!=null){ |
| | | UserBaseInfoVO userinfo = new UserBaseInfoVO(); |
| | | DepartmentExtListVO d = departmentExtService.getModelById(user.getCompany().getId(),comp.getDepartmentId(),allDepartList); |
| | | String dName =d==null?"":StringUtils.defaultString(d.getName(),""); |
| | | userinfo.setNameAndDepart (comp.getName()+"-"+dName); |
| | | userinfo.setDepartId(d.getId()); |
| | | userinfo.setUserId(userId); |
| | | userinfo.setUserName(comp.getName()); |
| | | userinfo.setDepartName(d.getName()); |
| | | return userinfo; |
| | | } |
| | | return null; |
| | | } |
| | | @Override |
| | | public List<WorkorderRecordExtListVO> findAll(QueryWorkorderRecordExtDTO pageWrap) { |
| | |
| | | order.setStatus(Constants.WORKORDER_STATUS.material); |
| | | }else if(status ==Constants.WORKORDER_HISTORY_STATUS.done){ |
| | | order.setStatus(Constants.WORKORDER_STATUS.done); |
| | | }else if(status ==Constants.WORKORDER_HISTORY_STATUS.produce){ |
| | | //æææä½ |
| | | if(Constants.equalsInteger(mp.getStatus(),Constants.WORKORDER_STATUS.create) |
| | | ||Constants.equalsInteger(mp.getStatus(),Constants.WORKORDER_STATUS.material)){ |
| | | //妿æ¯å·²å建æè
å·²å¤æç¶æçå·¥åï¼ä¿®æ¹å
¶ç¶æä¸ºãç产ä¸ã |
| | | order.setStatus(Constants.WORKORDER_STATUS.producing); |
| | | } |
| | | } |
| | | workorderExtMapper.updateById(order); |
| | | workorderHistoryExtMapper.insertBatch(whList); |
| | |
| | | |
| | | |
| | | @Override |
| | | public void exportUserSalary(PageWrap<QueryUserSalaryListDTO> pageWrap, HttpServletResponse response) { |
| | | List<UserSalaryListVO> result=this.userSalaryPage(pageWrap).getRecords(); |
| | | for(UserSalaryListVO model : result) { |
| | | if(model.getUserInfo()!=null){ |
| | | model.setUserName(model.getUserInfo().getUserName()); |
| | | model.setDepartName(model.getUserInfo().getDepartName()); |
| | | } |
| | | } |
| | | ExcelExporter.build(UserSalaryListVO.class).export(result, "å工绩ææç»"+System.currentTimeMillis(), response); |
| | | |
| | | } |
| | | @Override |
| | | public void exportSalaryStatistics(PageWrap<QuerySalaryStatisticDTO> pageWrap, HttpServletResponse response){ |
| | | List<SalaryStatisticsListVO> result=this.salaryStatistic(pageWrap).getRecords(); |
| | | for(SalaryStatisticsListVO model : result) { |
| | | if(model.getUserInfo()!=null){ |
| | | model.setUserName(model.getUserInfo().getUserName()); |
| | | model.setDepartName(model.getUserInfo().getDepartName()); |
| | | } |
| | | } |
| | | ExcelExporter.build(SalaryStatisticsListVO.class).export(result, "å·¥èµæ¥è¡¨"+System.currentTimeMillis(), response); |
| | | |
| | | } |
| | | @Override |
| | | public void exportExcel(PageWrap<QueryWorkorderRecordExtDTO> pageWrap, HttpServletResponse response) { |
| | | List<WorkorderRecordExtListVO> result=this.findPage(pageWrap).getRecords(); |
| | | SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); |
| | |
| | | import doumeemes.core.utils.redis.RedisUtil; |
| | | import doumeemes.dao.business.BackOrderDetailMapper; |
| | | import doumeemes.dao.business.BackorderMapper; |
| | | import doumeemes.dao.business.SalaryParamMapper; |
| | | import doumeemes.dao.business.dto.CreateMaterialDTO; |
| | | import doumeemes.dao.business.dto.CreateWorkorderRecordDTO; |
| | | import doumeemes.dao.business.dto.DealWorkorderRecordDTO; |
| | | import doumeemes.dao.business.dto.MaterialListDTO; |
| | | import doumeemes.dao.business.model.*; |
| | |
| | | private WOutboundRecordExtMapper wOutboundRecordExtMapper; |
| | | @Autowired |
| | | private MaterialExtMapper materialExtMapper; |
| | | @Autowired |
| | | private SalaryParamMapper salaryParamMapper; |
| | | |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | @Override |
| | |
| | | recordList.add(getWorkrecordModel(user,wStock,mp,materialListDTO.getNum())); |
| | | } |
| | | } |
| | | |
| | | //æ¹éæå
¥ææè®°å½ |
| | | workorderRecordExtMapper.insertBatch(recordList); |
| | | //åæ·»å åå²è®°å½ï¼ä¸æ´æ°ç¶æï¼ |
| | | //åæ·»å åå²è®°å½ï¼å¤ææ´æ°ä¸ºç产ä¸ï¼ |
| | | updateOrderInfo(user,mp,Constants.WORKORDER_HISTORY_STATUS.material); |
| | | return param.getId(); |
| | | } |
| | |
| | | order.setStatus(Constants.WORKORDER_STATUS.material); |
| | | }else if(status ==Constants.WORKORDER_HISTORY_STATUS.done){ |
| | | order.setStatus(Constants.WORKORDER_STATUS.done); |
| | | }else if(status ==Constants.WORKORDER_HISTORY_STATUS.material){ |
| | | //æææä½ |
| | | if(Constants.equalsInteger(mp.getStatus(),Constants.WORKORDER_STATUS.create) |
| | | ||Constants.equalsInteger(mp.getStatus(),Constants.WORKORDER_STATUS.material)){ |
| | | //妿æ¯å·²å建æè
å·²å¤æç¶æçå·¥åï¼ä¿®æ¹å
¶ç¶æä¸ºãç产ä¸ã |
| | | order.setStatus(Constants.WORKORDER_STATUS.producing); |
| | | } |
| | | } |
| | | workorderExtMapper.updateById(order); |
| | | workorderHistoryExtMapper.insertBatch(whList); |
| | |
| | | dealAppliancePro(mp,user,allRecordList,updateApplianceList,updateApplianceProList, outboundDetailList,stockList); |
| | | } |
| | | |
| | | if(1==1){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"123"); |
| | | } |
| | | |
| | | //å¦æææ²¡bomé
ç½®,æ£æ¥äº§åºï¼å
嫿£éªçä¸è¯åæ¥åºåï¼åæææ°éæ¯å¦ç¸çå¹é
ï¼ä¸ä¸è´æç¤ºé误 |
| | | if(bdparam==null){ |
| | |
| | | //妿éè¦ææçç©æéåï¼å¨åºåä¸å¯»æ¾æææ¥æº |
| | | for(WStock model : materialList){ |
| | | for(WStock ts : allList){ |
| | | |
| | | if(Constants.equalsInteger(model.getMaterialId(),ts.getMaterialId())){ |
| | | //è¿éè¦æææ°é |
| | | BigDecimal actNum = Constants.formatBigdecimal(model.getNum()).subtract(Constants.formatBigdecimal(model.getTNum())); |
| | |
| | | //å¦æå·²ç»æ»¡è¶³å©ä½éæ±é |
| | | isfull =true; |
| | | } |
| | | |
| | | //æ·»å ææè®°å½ |
| | | workorderRecordExtMapper.insert(getWorkrecordModel(user,ts,mp,actNum)); |
| | | |
| | | //æ´æ°å·²ç»æææ°é |
| | | model.setTNum(Constants.formatBigdecimal(model.getTNum()).add(actNum)); |
| | | WOutbound outbound = getFromOutboundList(ts.getWarehouseId(),outboundList); |
| | |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼è¯¥å·¥åä¿¡æ¯ï¼"); |
| | | } |
| | | if(Objects.isNull(dealWorkorderRecordDTO.getDownType()) |
| | | ||Objects.isNull(dealWorkorderRecordDTO.getWorkorderId()) |
| | | ||Objects.isNull(dealWorkorderRecordDTO.getNum()) |
| | | ||Objects.isNull(dealWorkorderRecordDTO.getWorkorderId()) |
| | | ||Objects.isNull(dealWorkorderRecordDTO.getNum()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | WorkorderRecord workorderRecord = new WorkorderRecord(); |
| | | if(Objects.isNull(dealWorkorderRecordDTO.getRecordId())){ |
| | | //æ¥è¯¢å·¥å䏿¯å¦åå¨å¯¹åºè®°å½ |
| | | workorderRecord = workorderRecordExtMapper.selectOne(new QueryWrapper<WorkorderRecord>() |
| | | workorderRecord = workorderRecordExtMapper.selectOne(new QueryWrapper<WorkorderRecord>() |
| | | .eq("WORKORDER_ID",dealWorkorderRecordDTO.getWorkorderId()) |
| | | .eq("DONE_TYPE",dealWorkorderRecordDTO.getDownType()) |
| | | .eq("TYPE",Constants.ONE) |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | public WorkorderRecord createWorkorderRecord(CreateWorkorderRecordDTO createWorkorderRecordDTO, LoginUserInfo loginUserInfo){ |
| | | Workorder workorder = workorderExtMapper.selectById(createWorkorderRecordDTO.getWorkorderId()); |
| | | if(Objects.isNull(workorder)){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼æªæ¥è¯¢å°è¯¥å·¥åä¿¡æ¯ï¼"); |
| | | } |
| | | if(Objects.isNull(createWorkorderRecordDTO.getUnQualifiedNum()) |
| | | ||Objects.isNull(createWorkorderRecordDTO.getUnQualifiedNum()) |
| | | ||Objects.isNull(createWorkorderRecordDTO.getWorkorderId()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | BigDecimal num = createWorkorderRecordDTO.getQualifiedNum().add(createWorkorderRecordDTO.getUnQualifiedNum()); |
| | | WorkorderRecord workorderRecord = new WorkorderRecord(); |
| | | //æ¥è¯¢å·¥å䏿¯å¦åå¨å¯¹åºè®°å½ |
| | | workorderRecord = workorderRecordExtMapper.selectOne(new QueryWrapper<WorkorderRecord>() |
| | | .eq("WORKORDER_ID",createWorkorderRecordDTO.getWorkorderId()) |
| | | .eq("TYPE",Constants.ONE) |
| | | .eq("DELETED",Constants.ZERO) |
| | | .last(" limit 1 ") |
| | | ); |
| | | if(!Objects.isNull(workorderRecord)){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼è¯¥å·¥åç该类产åºè®°å½å·²åå¨ï¼"); |
| | | } |
| | | if(num.compareTo(BigDecimal.valueOf(workorder.getPlanNum()))>Constants.ZERO){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼è¯¥å·¥åçäº§åºæ°éä¸è½å¤§äºå·¥åè®¡åæ°éï¼"); |
| | | } |
| | | //æ°æ®åå¨ |
| | | workorderRecord = new WorkorderRecord(); |
| | | workorderRecord.setDeleted(Constants.ZERO); |
| | | workorderRecord.setCreateUser(loginUserInfo.getId()); |
| | | workorderRecord.setCreateTime(new Date()); |
| | | workorderRecord.setNum(num); |
| | | workorderRecord.setRootDepartId(loginUserInfo.getRootDepartment().getId()); |
| | | workorderRecord.setDepartId(loginUserInfo.getCurComDepartment().getId()); |
| | | workorderRecord.setPlanId(workorder.getPlanId()); |
| | | workorderRecord.setWorkorderId(createWorkorderRecordDTO.getWorkorderId()); |
| | | workorderRecord.setBatch(workorder.getBatch()); |
| | | workorderRecord.setFactoryId(workorder.getFactoryId()); |
| | | workorderRecord.setProcedureId(workorder.getProcedureId()); |
| | | workorderRecord.setProDate(new Date()); |
| | | workorderRecord.setType(Constants.ONE); |
| | | workorderRecord.setMaterialId(workorder.getMaterialId()); |
| | | workorderRecord.setUnitId(workorder.getUnitId()); |
| | | workorderRecord.setMaterialBatch(workorder.getBatch()); |
| | | workorderRecord.setUnqualifiedNum(createWorkorderRecordDTO.getUnQualifiedNum()); |
| | | workorderRecord.setQualifiedNum(createWorkorderRecordDTO.getQualifiedNum()); |
| | | //计ç®å·¥èµä¿¡æ¯ |
| | | SalaryParam salaryParam = salaryParamMapper.selectOne(new QueryWrapper<SalaryParam>().eq("DELETED",Constants.ZERO).eq("MATERIAL_ID",workorderRecord.getMaterialId()) |
| | | .eq("DEPART_ID",workorderRecord.getFactoryId()).eq("PROCEDURE_ID",workorderRecord.getProcedureId()).last(" limit 1 ")); |
| | | if(Objects.isNull(salaryParam)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"æªé
置工èµç»©æé
ç½®ï¼"); |
| | | } |
| | | workorderRecord.setSalaryPrice(salaryParam.getSalary()); |
| | | workorderRecord.setSalaryType(salaryParam.getType()); |
| | | workorderRecord.setSalaryUnqualified(salaryParam.getUnqualified()); |
| | | |
| | | //è®¡ä»¶å·¥èµ |
| | | if(salaryParam.getType().equals(Constants.ZERO)){ |
| | | workorderRecord.setSalaryNum(salaryParam.getNum()); |
| | | workorderRecord.setSalary(salaryParam.getSalary().multiply(salaryParam.getUnqualified()==Constants.ZERO?num:createWorkorderRecordDTO.getUnQualifiedNum())); |
| | | }else{ |
| | | workorderRecord.setDuration(createWorkorderRecordDTO.getDuration()); |
| | | workorderRecord.setSalary(BigDecimal.valueOf(createWorkorderRecordDTO.getDuration()).multiply(salaryParam.getSalary()).divide(new BigDecimal(3600))); |
| | | } |
| | | |
| | | workorderRecordExtMapper.insert(workorderRecord); |
| | | return workorderRecord; |
| | | } |
| | | |
| | | } |
| | |
| | | * @date 2022/04/18 18:12 |
| | | */ |
| | | String loginByPassword (LoginDTO dto, HttpServletRequest request); |
| | | |
| | | String platformLogin(LoginDTO dto, HttpServletRequest request); |
| | | String loginByDingdingCode(Integer companyId ,String code, HttpServletRequest request); |
| | | String loginAutoBylingyangToken( String token, HttpServletRequest request,boolean isDemo); |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package doumeemes.service.system; |
| | | |
| | | import doumeemes.dao.ext.dto.WxLoginDTO; |
| | | import doumeemes.dao.ext.vo.WxLoginVO; |
| | | import doumeemes.dao.system.dto.LoginDTO; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2023/8/11 10:13 |
| | | */ |
| | | public interface WxLoginService { |
| | | |
| | | WxLoginVO wxLogin(String code, HttpServletRequest request); |
| | | |
| | | |
| | | String wxLoginByPassword (WxLoginDTO dto, HttpServletRequest request); |
| | | } |
| | |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.iflytek.antelope.other.client.dto.resp.UserDTO; |
| | | import doumeemes.biz.system.SystemDictDataBiz; |
| | | import doumeemes.config.shiro.ShiroToken; |
| | |
| | | throw e; |
| | | } |
| | | } |
| | | |
| | | // æ ¡éªç¨æ·ååå¯ç |
| | | Subject subject = SecurityUtils.getSubject(); |
| | | ShiroToken token = new ShiroToken(dto.getCompanyId(),dto.getUsername(), dto.getPassword(),false); |
| | | ShiroToken token = new ShiroToken(dto.getCompanyId(),dto.getUsername(), dto.getPassword(),false,false); |
| | | try { |
| | | subject.login(token); |
| | | LoginUserInfo loginUser = ((LoginUserInfo)subject.getPrincipal()); |
| | |
| | | } |
| | | // æ ¡éªç¨æ·ååå¯ç |
| | | Subject subject = SecurityUtils.getSubject(); |
| | | ShiroToken token = new ShiroToken(dto.getCompanyId(),dto.getUsername(), dto.getPassword(),false); |
| | | ShiroToken token = new ShiroToken(dto.getCompanyId(),dto.getUsername(), dto.getPassword(),false,false); |
| | | try { |
| | | subject.login(token); |
| | | LoginUserInfo loginUser = ((LoginUserInfo)subject.getPrincipal()); |
| | |
| | | // æ ¡éªç¨æ·ååå¯ç |
| | | Subject subject = SecurityUtils.getSubject(); |
| | | // ééç»å½ |
| | | ShiroToken token = new ShiroToken(companyId,mobile, null,true); |
| | | ShiroToken token = new ShiroToken(companyId,mobile, null,true,false); |
| | | |
| | | subject.login(token); |
| | | LoginUserInfo loginUser =(LoginUserInfo)subject.getPrincipal(); |
| | |
| | | // æ ¡éªç¨æ·ååå¯ç |
| | | Subject subject = SecurityUtils.getSubject(); |
| | | // ééç»å½ |
| | | ShiroToken atoken = new ShiroToken(companyId,mobile, null,true); |
| | | ShiroToken atoken = new ShiroToken(companyId,mobile, null,true,false); |
| | | subject.login(atoken); |
| | | LoginUserInfo loginUser =(LoginUserInfo)subject.getPrincipal(); |
| | | loginUser.getCompanyUser().setName(user.getName()); |
| | |
| | | // æ ¡éªç¨æ·ååå¯ç |
| | | Subject subject = SecurityUtils.getSubject(); |
| | | // ééç»å½ |
| | | ShiroToken atoken = new ShiroToken(companyId,mobile, null,true); |
| | | ShiroToken atoken = new ShiroToken(companyId,mobile, null,true,false); |
| | | subject.login(atoken); |
| | | LoginUserInfo loginUser =(LoginUserInfo)subject.getPrincipal(); |
| | | loginLog.setUserId(loginUser.getId()); |
| | |
| | | // æ ¡éªç¨æ·ååå¯ç |
| | | Subject subject = SecurityUtils.getSubject(); |
| | | // ééç»å½ |
| | | ShiroToken atoken = new ShiroToken(com.getId(),mobile, null,true); |
| | | ShiroToken atoken = new ShiroToken(com.getId(),mobile, null,true,false); |
| | | subject.login(atoken); |
| | | LoginUserInfo loginUser =(LoginUserInfo)subject.getPrincipal(); |
| | | loginUser.getCompanyUser().setName(user.getName()); |
| | |
| | | // æ ¡éªç¨æ·ååå¯ç |
| | | Subject subject = SecurityUtils.getSubject(); |
| | | // ééç»å½ |
| | | ShiroToken atoken = new ShiroToken(com.getId(),mobile, null,true); |
| | | ShiroToken atoken = new ShiroToken(com.getId(),mobile, null,true,false); |
| | | subject.login(atoken); |
| | | LoginUserInfo loginUser =(LoginUserInfo)subject.getPrincipal(); |
| | | loginUser.getCompanyUser().setName(user.getName()); |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | if(Constants.equalsInteger(user.getType(),Constants.USERTYPE.COM)){ |
| | | pageWrap.getModel().setType(Constants.USERTYPE.COM); |
| | | }else{ |
| | | pageWrap.getModel().setType(Constants.USERTYPE.PLAT); |
| | | if(pageWrap.getModel().getType()!=null){ |
| | | //èµ°æ¥è¯¢ |
| | | }else{ |
| | | pageWrap.getModel().setType(Constants.USERTYPE.PLAT); |
| | | } |
| | | } |
| | | PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | return PageData.from(new PageInfo<>(systemPermissionMapper.selectManageList(pageWrap.getModel(), pageWrap.getOrderByClause()))); |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package doumeemes.service.system.impl; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import doumeemes.biz.system.SystemDictDataBiz; |
| | | import doumeemes.config.shiro.ShiroToken; |
| | | import doumeemes.core.constants.ResponseStatus; |
| | | import doumeemes.core.exception.BusinessException; |
| | | import doumeemes.core.model.LoginUserInfo; |
| | | import doumeemes.core.utils.Constants; |
| | | import doumeemes.core.utils.HttpsUtil; |
| | | import doumeemes.core.utils.Utils; |
| | | import doumeemes.dao.business.model.CompanyUser; |
| | | import doumeemes.dao.business.model.Department; |
| | | import doumeemes.dao.ext.CompanyExtMapper; |
| | | import doumeemes.dao.ext.CompanyUserExtMapper; |
| | | import doumeemes.dao.ext.DepartmentExtMapper; |
| | | import doumeemes.dao.ext.dto.QueryCompanyUserExtDTO; |
| | | import doumeemes.dao.ext.dto.WxLoginDTO; |
| | | import doumeemes.dao.ext.vo.CompanyUserExtListVO; |
| | | import doumeemes.dao.ext.vo.WxLoginVO; |
| | | import doumeemes.dao.system.SystemUserMapper; |
| | | import doumeemes.dao.system.dto.LoginDTO; |
| | | import doumeemes.dao.system.model.SystemLoginLog; |
| | | import doumeemes.dao.system.model.SystemUser; |
| | | import doumeemes.service.common.CaptchaService; |
| | | import doumeemes.service.ext.CompanyExtService; |
| | | import doumeemes.service.ext.CompanyUserExtService; |
| | | import doumeemes.service.system.SystemLoginLogService; |
| | | import doumeemes.service.system.WxLoginService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.apache.shiro.authc.AuthenticationException; |
| | | import org.apache.shiro.subject.Subject; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.context.annotation.Lazy; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.util.Date; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2023/8/11 10:14 |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class WxLoginServiceImpl implements WxLoginService { |
| | | |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | |
| | | |
| | | @Value("${project.version}") |
| | | private String systemVersion; |
| | | |
| | | @Autowired |
| | | private CompanyUserExtMapper companyUserExtMapper; |
| | | @Autowired |
| | | private SystemUserMapper systemUserMapper; |
| | | @Autowired |
| | | private DepartmentExtMapper departmentExtMapper; |
| | | |
| | | @Autowired |
| | | private SystemLoginLogService systemLoginLogService; |
| | | |
| | | |
| | | /** |
| | | * 微信å
¬ä¼å·è·åTOKENå°å |
| | | */ |
| | | public static final String GET_ACCESS_TOKEN_URL = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code"; |
| | | |
| | | /** |
| | | * 微信å
¬ä¼å·è·åUSERINFOä¿¡æ¯å°å |
| | | */ |
| | | public static final String GET_USER_INFO_URL = "https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN"; |
| | | |
| | | |
| | | @Override |
| | | public WxLoginVO wxLogin(String code, HttpServletRequest request) { |
| | | WxLoginVO wxLoginVO = new WxLoginVO(); |
| | | String appId = systemDictDataBiz.queryByCode(Constants.WX_CONFIG,Constants.APPID).getCode(); |
| | | String appSecret = systemDictDataBiz.queryByCode(Constants.WX_CONFIG,Constants.APPSECRET).getCode(); |
| | | String getTokenUrl = GET_ACCESS_TOKEN_URL.replace("CODE", code).replace("APPID", appId).replace("SECRET", appSecret); |
| | | JSONObject tokenJson = JSONObject.parseObject(HttpsUtil.get(getTokenUrl,true)); |
| | | if(Objects.isNull(tokenJson.get("access_token"))){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),tokenJson.getString("errmsg")); |
| | | } |
| | | String accessToken = tokenJson.getString("access_token"); |
| | | String openId = tokenJson.getString("openid"); |
| | | String getUserInfoUrl = GET_USER_INFO_URL.replace("ACCESS_TOKEN", accessToken).replace("OPENID", openId); |
| | | JSONObject userInfoJson = JSONObject.parseObject(HttpsUtil.get(getUserInfoUrl,true)); |
| | | wxLoginVO.setOpenid(openId); |
| | | wxLoginVO.setUnionid(userInfoJson.getString("unionid")); |
| | | CompanyUser companyUser = companyUserExtMapper.selectOne(new QueryWrapper<CompanyUser>().eq("openid",openId).last(" limit 1 ")); |
| | | if(Objects.isNull(companyUser)){ |
| | | wxLoginVO.setLoginStatus(Constants.ONE); |
| | | return wxLoginVO; |
| | | } |
| | | Department department = departmentExtMapper.selectById(companyUser.getRootDepartId()); |
| | | if(Objects.isNull(department)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªæ¥è¯¢å°ç»å®é¨é¨ä¿¡æ¯"); |
| | | } |
| | | SystemUser systemUser = systemUserMapper.selectById(companyUser.getUserId()); |
| | | //æ¥è¯¢ç¨æ·æ°æ® |
| | | LoginDTO dto = new LoginDTO(); |
| | | dto.setCompanyId(department.getCompanyId()); |
| | | dto.setUsername(systemUser.getUsername()); |
| | | SystemLoginLog loginLog = new SystemLoginLog(); |
| | | loginLog.setLoginUsername(dto.getUsername()); |
| | | loginLog.setLoginTime(new Date()); |
| | | loginLog.setSystemVersion(systemVersion); |
| | | loginLog.setIp(Utils.User_Client.getIP(request)); |
| | | loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp())); |
| | | loginLog.setPlatform(Utils.User_Client.getPlatform(request)); |
| | | loginLog.setClientInfo(Utils.User_Client.getBrowser(request)); |
| | | loginLog.setOsInfo(Utils.User_Client.getOS(request)); |
| | | loginLog.setServerIp(Utils.Server.getIP()); |
| | | // æ ¡éªç¨æ·ååå¯ç |
| | | Subject subject = SecurityUtils.getSubject(); |
| | | ShiroToken token = new ShiroToken(dto.getCompanyId(),dto.getUsername(), null,false,true); |
| | | try { |
| | | subject.login(token); |
| | | LoginUserInfo loginUser = ((LoginUserInfo)subject.getPrincipal()); |
| | | loginLog.setUserId(loginUser.getId()); |
| | | loginLog.setCompanyId(loginUser.getCompany()!=null?loginUser.getCompany().getId():null); |
| | | loginLog.setCompanyUserId(loginUser.getCompanyUser()!=null?loginUser.getCompanyUser().getId():null); |
| | | loginLog.setSuccess(Boolean.TRUE); |
| | | systemLoginLogService.create(loginLog); |
| | | String session = (String)subject.getSession().getId(); |
| | | wxLoginVO.setLoginStatus(Constants.ONE); |
| | | wxLoginVO.setSession(session); |
| | | return wxLoginVO; |
| | | }catch (AuthenticationException e) { |
| | | BusinessException ee = null; |
| | | loginLog.setSuccess(Boolean.FALSE); |
| | | if(e.getCause()!=null && e.getCause() instanceof BusinessException){ |
| | | ee = (BusinessException)e.getCause(); |
| | | loginLog.setReason(ee.getMessage().length() > 200 ? (ee.getMessage().substring(0, 190) + "...") : ee.getMessage()); |
| | | log.error(ee.getMessage(), e); |
| | | }else{ |
| | | log.error(ResponseStatus.ACCOUNT_INCORRECT.getMessage(), e); |
| | | loginLog.setReason(e.getMessage().length() > 200 ? (e.getMessage().substring(0, 190) + "...") : e.getMessage()); |
| | | ee = new BusinessException(ResponseStatus.ACCOUNT_INCORRECT); |
| | | } |
| | | systemLoginLogService.create(loginLog); |
| | | throw ee; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public String wxLoginByPassword(WxLoginDTO dto, HttpServletRequest request) { |
| | | SystemLoginLog loginLog = new SystemLoginLog(); |
| | | loginLog.setLoginUsername(dto.getUsername()); |
| | | loginLog.setLoginTime(new Date()); |
| | | loginLog.setSystemVersion(systemVersion); |
| | | loginLog.setIp(Utils.User_Client.getIP(request)); |
| | | loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp())); |
| | | loginLog.setPlatform(Utils.User_Client.getPlatform(request)); |
| | | loginLog.setClientInfo(Utils.User_Client.getBrowser(request)); |
| | | loginLog.setOsInfo(Utils.User_Client.getOS(request)); |
| | | loginLog.setServerIp(Utils.Server.getIP()); |
| | | // æ ¡éªç¨æ·ååå¯ç |
| | | Subject subject = SecurityUtils.getSubject(); |
| | | ShiroToken token = new ShiroToken(dto.getCompanyId(),dto.getUsername(), dto.getPassword(),false,false); |
| | | try { |
| | | subject.login(token); |
| | | LoginUserInfo loginUser = ((LoginUserInfo)subject.getPrincipal()); |
| | | loginLog.setUserId(loginUser.getId()); |
| | | loginLog.setCompanyId(loginUser.getCompany()!=null?loginUser.getCompany().getId():null); |
| | | loginLog.setCompanyUserId(loginUser.getCompanyUser()!=null?loginUser.getCompanyUser().getId():null); |
| | | loginLog.setSuccess(Boolean.TRUE); |
| | | systemLoginLogService.create(loginLog); |
| | | //ç»å½æºå¸¦å¾®ä¿¡openidä¿¡æ¯ |
| | | if(StringUtils.isNotBlank(dto.getOpenid())){ |
| | | CompanyUser companyUser = companyUserExtMapper.selectById(loginLog.getCompanyUserId()); |
| | | if(StringUtils.isBlank(companyUser.getOpenid())||!companyUser.getOpenid().equals(dto.getOpenid())){ |
| | | //1ãç»å®å¾®ä¿¡openidå°companyUserè¡¨ä¿¡æ¯ |
| | | companyUser.setOpenid(dto.getOpenid()); |
| | | companyUser.setUnionid(dto.getUnionid()); |
| | | companyUserExtMapper.updateById(companyUser); |
| | | //2ãæ¸
空åç¨æ·å
¶ä½companyUser表openidä¸ unionid |
| | | companyUserExtMapper.update(null,new UpdateWrapper<CompanyUser>() |
| | | .ne("ID",companyUser.getId()).set("UNIONID","").set("OPENID","") |
| | | .eq("USER_ID",companyUser.getUserId()) |
| | | ); |
| | | } |
| | | } |
| | | return (String)subject.getSession().getId(); |
| | | }catch (AuthenticationException e) { |
| | | BusinessException ee = null; |
| | | loginLog.setSuccess(Boolean.FALSE); |
| | | if(e.getCause()!=null && e.getCause() instanceof BusinessException){ |
| | | ee = (BusinessException)e.getCause(); |
| | | loginLog.setReason(ee.getMessage().length() > 200 ? (ee.getMessage().substring(0, 190) + "...") : ee.getMessage()); |
| | | log.error(ee.getMessage(), e); |
| | | }else{ |
| | | log.error(ResponseStatus.ACCOUNT_INCORRECT.getMessage(), e); |
| | | loginLog.setReason(e.getMessage().length() > 200 ? (e.getMessage().substring(0, 190) + "...") : e.getMessage()); |
| | | ee = new BusinessException(ResponseStatus.ACCOUNT_INCORRECT); |
| | | } |
| | | systemLoginLogService.create(loginLog); |
| | | throw ee; |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | # application: |
| | | # name: doumeemes |
| | | profiles: |
| | | active: standardPro |
| | | active: standard |
| | | # JSONè¿åé
ç½® |
| | | jackson: |
| | | # é»è®¤æ¶åº |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?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="doumeemes.dao.business.SalaryParamMapper"> |
| | | |
| | | |
| | | <select id="selectPage" resultType="doumeemes.dao.business.vo.SalaryParamVO"> |
| | | SELECT |
| | | sp.*, |
| | | m.`NAME` as materialName, |
| | | m.`CODE` as materialCode, |
| | | p.`NAME` as procedureName, |
| | | su.REALNAME as createUserName |
| | | from |
| | | salary_param sp |
| | | LEFT JOIN procedures p on p.ID = sp.PROCEDURE_ID |
| | | LEFT JOIN material m on m.ID = sp.MATERIAL_ID |
| | | LEFT JOIN `system_user` su on su.ID = sp.CREATE_USER |
| | | where |
| | | sp.DELETED = 0 |
| | | <if test="model.keyWord != null and model.keyWord != ''"> |
| | | ( and p`NAME` like concat('%',#{model.keyWord},'%') |
| | | or p.`CODE` = #{model.keyWord})</if> |
| | | <if test="model.procedureName != null and model.procedureName != ''"> and p.`NAME` like concat('%',#{model.procedureName},'%')</if> |
| | | <if test="model.type != null"> and sp.`TYPE` = #{model.type}</if> |
| | | </select> |
| | | </mapper> |
| | |
| | | </where> |
| | | limit 1 |
| | | </select> |
| | | <select id="userSalaryPage" parameterType="doumeemes.dao.ext.dto.QueryUserSalaryListDTO" resultType="doumeemes.dao.ext.vo.UserSalaryListVO"> |
| | | select a.WORKORDER_ID,b.`CODE` as workorderCode,c.`NAME` as materialName,c.code as materialCode |
| | | ,d.name as unitName,a.PROCEDURE_ID,f.`NAME` as procedureName,a.CREATE_USER as userId |
| | | ,sum(a.QUALIFIED_NUM) as qualifiedNum |
| | | ,sum(a.UNQUALIFIED_NUM) as unQualifiedNum |
| | | ,sum(a.num) as NUM |
| | | from `workorder_record` a |
| | | left join workorder b on a.WORKORDER_ID=b.id |
| | | left join material_distribute m on b.MATERIAL_ID = m.ID |
| | | left join material c on m.MATERIAL_ID = c.ID |
| | | left join unit d on a.UNIT_ID = d.ID |
| | | left join procedures f on a.PROCEDURE_ID =f.ID |
| | | where a.DELETED = 0 |
| | | <if test="rootDepartId != null"> |
| | | AND a.`ROOT_DEPART_ID` = #{rootDepartId} |
| | | </if> |
| | | <if test="procedureId != null"> |
| | | AND a.`PROCEDURE_ID` = #{procedureId} |
| | | </if> |
| | | <if test="materialName != null and materialName !=''"> |
| | | AND (c.`name` like concat('%', #{materialName},'%') or c.`code` like concat('%', #{materialName},'%')) |
| | | </if> |
| | | <if test="startDate != null"> |
| | | AND a.`CREATE_TIME` >= #{startDate} |
| | | </if> |
| | | <if test="endDate != null"> |
| | | AND #{endDate} >= a.`CREATE_TIME` |
| | | </if> |
| | | <if test="userId != null"> |
| | | AND a.`CREATE_USER` = #{userId} |
| | | </if> |
| | | group by a.`WORKORDER_ID` |
| | | order by a.CREATE_TIME desc |
| | | </select> |
| | | <select id="salaryStatistic" parameterType="doumeemes.dao.ext.dto.QuerySalaryStatisticDTO" resultType="doumeemes.dao.ext.vo.SalaryStatisticsListVO"> |
| | | select `CREATE_USER` as userId ,sum(CASE WHEN salary_type=0 THEN salary ELSE 0 END ) as jijianSalary |
| | | ,sum(CASE WHEN salary_type=0 THEN 0 ELSE salary END ) as jishiSalary |
| | | ,count(id) as num |
| | | ,sum(salary) as totalSalary |
| | | from `workorder_record` |
| | | where `DELETED` =0 and `SALARY` >0 |
| | | <if test="rootDepartId != null"> |
| | | AND `ROOT_DEPART_ID` = #{rootDepartId} |
| | | </if> |
| | | <if test="userId != null"> |
| | | AND `CREATE_USER` = #{userId} |
| | | </if> |
| | | <if test="startDate != null"> |
| | | AND a.`CREATE_TIME` >= #{startDate} |
| | | </if> |
| | | <if test="endDate != null"> |
| | | AND #{endDate} >= a.`CREATE_TIME` |
| | | </if> |
| | | group by `CREATE_USER` |
| | | <!-- order by `CREATE_TIME` desc--> |
| | | </select> |
| | | <select id="selectListNew" parameterType="doumeemes.dao.ext.dto.QueryWorkorderRecordExtDTO" resultMap="WorkorderRecordExtListVO"> |
| | | SELECT |
| | | `a`.`ID`, |
| | |
| | | RELOBJ_TYPE, |
| | | `DURATION`, |
| | | `SALARY`, |
| | | `SALARY_PRICE`, |
| | | `SALARY_NUM`, |
| | | `SALARY_TIMES`, |
| | | `SALARY_UNQUALIFIED`, |
| | |
| | | #{item.relobjType}, |
| | | #{item.duration}, |
| | | #{item.salary}, |
| | | #{item.salaryPrice}, |
| | | #{item.salaryNum}, |
| | | #{item.salaryTimes}, |
| | | #{item.salaryUnqualified}, |
| | |
| | | # æ±æº |
| | | # VUE_APP_BASE_URL = 'https://106.14.220.133:10012/' |
| | | |
| | | # 任康æ¬å° |
| | | # VUE_APP_BASE_URL = 'http://192.168.0.15:10021/' |
| | | # ç¦æ¾ |
| | | VUE_APP_BASE_URL = 'http://192.168.0.36:10021/' |
| | | |
| | | VUE_APP_BASE_URL = 'https://dmtest.ahapp.net/doumeeplant_api/' |
| | | # VUE_APP_BASE_URL = 'https://dmtest.ahapp.net/doumeeplant_api/' |
| | | |
| | | # VUE_APP_BASE_URL = 'https://hsky.doumee.com/doumeeplant_api/' |
| | | |
| | | # æ±èæ¬å° |
| | | #VUE_APP_BASE_URL = 'http://192.168.0.12:10012/' |
| | | # åç£ç£æ¬å° |
| | | # VUE_APP_BASE_URL = 'http://192.168.0.18:10012/' |
| | | # VUE_APP_BASE_URL = 'http://192.168.0.176:10012/' |
| | | # VUE_APP_BASE_URL = 'http://6201h1b706.zicp.fun:19470/' |
| | |
| | | # æµè¯ç¯å¢é
ç½® |
| | | NODE_ENV = 'production' |
| | | |
| | | # è·¯ç±æ¹å¼ |
| | | VUE_APP_ROUTER_MODE = 'hash' |
| | | |
| | | VUE_APP_CONTEXT_PATH = '/doumeeplant_web' |
| | | # æ¥å£åç¼ |
| | | VUE_APP_API_PREFIX = '/doumeeplant_api' |
| | | |
| | | VUE_APP_BASE_URL = 'https://dmtest.ahapp.net/doumeeplant_api/' |
| | |
| | | "@vue/cli-service": "~4.5.0", |
| | | "@vue/eslint-config-standard": "^5.1.2", |
| | | "babel-eslint": "^10.1.0", |
| | | "eslint": "^6.7.2", |
| | | "eslint-plugin-import": "^2.20.2", |
| | | "eslint-plugin-node": "^11.1.0", |
| | | "eslint-plugin-promise": "^4.2.1", |
| | |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import "assets/style/lib.css"; |
| | | // å¼å
¥å
¨å±æ ·å¼ |
| | | @import "assets/style/style"; |
| | | // å¼å
¥ç³»ç»å
ç½®å¾æ |
| | | @import "assets/icons/system/index"; |
| | | // å¼å
¥èªå®ä¹å¾æ |
| | | @import "assets/icons/ext/index"; |
| | | .long-title-style { |
| | | white-space: nowrap; |
| | | text-overflow: ellipsis; |
| | | -webkit-text-overflow: ellipsis; |
| | | overflow: hidden; |
| | | } |
| | | .el-tooltip__popper.is-dark { |
| | | max-width: 400px; |
| | | } |
| | | </style> |
| | |
| | | // ç¹æ®åç¬¦äº¤éª |
| | | export function validateSpecialKey(rule, value, callback) { |
| | | if (!checkSpecialKey(value)) { |
| | | callback(new Error(`åªå¯ä»¥è¾å
¥æ°åã忝å符å·`)); |
| | | callback(new Error(`åªå¯ä»¥è¾å
¥æ°åã忝åè±æç¬¦å·`)); |
| | | } else { |
| | | callback(); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /*-----------------[åå§å]--------------*/
|
| | | *{ font-family: PingFang SC;}
|
| | | /* æ¸
çæµ®å¨ */
|
| | | .cle:after {visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0;}
|
| | | .cle:after{zoom:1;}
|
| | | .clear{clear: both;}
|
| | | .tc{text-align:center;}
|
| | | .tl{text-align:left}
|
| | | .tr{text-align:right}
|
| | | .fl{float: left;}
|
| | | .fr{float: right;}
|
| | |
|
| | | .wp{ width: 94%; margin: 0 auto;}
|
| | | .w30{ width: 30%;}.w40{ width: 40%;}.w47{ width: 47%;}.w48{ width: 48%;}.w49{ width: 49%;}.w50{ width: 50%;}.w60{ width: 60%;}.w80{ width: 80%;}.w90{ width: 90%;}
|
| | |
|
| | | .bg_fa{ background-color: #fafafa;}.bg_f2{ background-color: #f2f2f2;}.bg_f1{ background-color: #f1f1f1;}.bg_f5{ background-color: #f5f5f5;}.bg_f6{ background-color: #f6f6f6;}.bg_f7{ background-color: #f7f7f7;}.bg_f8{ background-color: #f8f8f8;}.bg_e{ background-color: #eee;}.bg_d{ background-color: #ddd;}.bg_w{ background-color: #fff;}.bg_3{ background-color: #333;}.bcf{ color: #fff;}.bc3{ color: #333;}.bcc{ color: #ccc;}.bc9{ color: #999;}.bc6{ color: #666;}
|
| | |
|
| | | .rd4{border-radius: 4px;}.rd5{border-radius: 5px;}.rd6{border-radius: 6px;}.rd8{border-radius: 8px;}.rd10{border-radius: 10px;}.rd15{border-radius: 15px;}.rd20{border-radius: 20px;}.rd30{border-radius: 30px;}.rd40{border-radius: 40px;}.rd50{border-radius: 50px;}.rd60{border-radius: 60px;}.rd70{border-radius: 70px;}.rd80{border-radius: 80px;}.rd90{border-radius: 90px;}.rd100{border-radius: 100px;}.rd120{border-radius: 120px;}.rdhalf{ border-radius:50%}
|
| | |
|
| | | .ml5{ margin-left: 5px;}.ml10{ margin-left: 10px;}.ml15{ margin-left: 15px;}.ml20{ margin-left: 20px;}.ml25{ margin-left: 25px;}.ml30{ margin-left: 30px;}.ml40{ margin-left: 40px;}.ml50{ margin-left: 50px;}.ml60{ margin-left: 60px;}
|
| | |
|
| | | .mt5{ margin-top: 5px;}.mt10{ margin-top: 10px;}.mt15{ margin-top: 15px;}.mt20{ margin-top: 20px;}.mt25{ margin-top: 25px;}.mt30{ margin-top: 30px;}.mt35{ margin-top: 35px;}.mt40{ margin-top: 40px;}.mt45{ margin-top: 45px;}.mt50{ margin-top: 50px;}.mt60{ margin-top: 60px;}.mt70{ margin-top: 70px;}.mt80{ margin-top: 80px;}.mt90{ margin-top: 90px;}.mt100{ margin-top:100px;}.mt150{ margin-top:150px;}.mt200{ margin-top:200px;}.mt-20{ margin-top: -20px;}.mt-30{ margin-top: -30px;}.mt-40{ margin-top: -40px;}
|
| | |
|
| | | .mb5{ margin-bottom: 5px;}.mb10{ margin-bottom: 10px;}.mb15{ margin-bottom: 15px;}.mb20{ margin-bottom: 20px;}.mb25{ margin-bottom: 25px;}.mb30{ margin-bottom: 30px;}.mb40{ margin-bottom: 40px;}.mb50{ margin-bottom: 50px;}.mb60{ margin-bottom: 60px;}.mb80{ margin-bottom: 80px;}
|
| | |
|
| | | .mr5{ margin-right: 5px;}.mr10{ margin-right: 10px;}.mr15{ margin-right: 15px;}.mr20{ margin-right: 20px;}.mr25{ margin-right: 25px;}.mr30{ margin-right: 30px;}.mr40{ margin-right: 40px;}.mr60{ margin-right: 60px;}.mr80{ margin-right: 80px;}.mr100{ margin-right: 100px;}
|
| | |
|
| | | .pl10{ padding-left: 10px;}.pl20{ padding-left: 20px;}.pl25{ padding-left: 25px;}.pl30{ padding-left: 30px;}.pl40{ padding-left: 40px;}.pl50{ padding-left: 50px;}.pl60{ padding-left: 60px;}.pl80{ padding-left: 80px;}.pl100{ padding-left: 100px;}
|
| | |
|
| | | .pr10{ padding-right: 10px;}.pr20{ padding-right: 20px;}.pr25{ padding-right: 25px;}.pr30{ padding-right: 30px;}.pr40{ padding-right: 40px;}.pr50{ padding-right: 50px;}.pr60{ padding-right: 60px;}.pr80{ padding-right: 80px;}.pr100{ padding-right: 100px;}
|
| | |
|
| | | .pb10{ padding-bottom: 10px;}.pb20{ padding-bottom: 20px;}.pb25{ padding-bottom: 25px;}.pb30{ padding-bottom: 30px;}.pb40{ padding-bottom: 40px;}.pb50{ padding-bottom: 50px;}.pb100{ padding-bottom: 100px;}
|
| | |
|
| | | .pt10{ padding-top: 10px;}.pt20{ padding-top: 20px;}.pt25{ padding-top: 25px;}.pt30{ padding-top: 30px;}.pt40{ padding-top: 40px;}.pt50{ padding-top: 50px;}.pt100{ padding-top: 100px;}
|
| | |
|
| | | .plr{ padding-left: 10px; padding-right: 10px;}.plr20{ padding-left: 20px; padding-right: 20px;}.plr25{ padding-left: 25px; padding-right: 25px;}.plr30{ padding-left: 30px; padding-right: 30px;}.plr40{ padding-left: 40px; padding-right: 40px;}.plr50{ padding-left: 50px; padding-right: 50px;}.plr60{ padding-left: 60px; padding-right: 60px;}
|
| | |
|
| | | .ptb10{padding-bottom: 10px; padding-top: 10px;} .ptb15{padding-bottom: 15px; padding-top: 15px;} .ptb20{padding-bottom: 20px; padding-top: 20px;}.ptb25{padding-bottom: 25px; padding-top: 25px;}.ptb30{padding-bottom: 30px; padding-top: 30px;}.ptb35{padding-bottom: 35px; padding-top: 35px;}.ptb40{padding-bottom: 40px; padding-top: 40px;}.ptb50{padding-bottom: 50px; padding-top: 50px;}.ptb60{padding-bottom: 60px; padding-top: 60px;}.ptb80{padding-bottom: 80px; padding-top: 80px;}.ptb100{padding-bottom: 100px; padding-top: 100px;}.ptb150{padding-bottom: 150px; padding-top: 150px;}.ptb200{padding-bottom: 200px; padding-top: 200px;}
|
| | |
|
| | | .p5{ padding:5px}.p10{ padding:10px} .p20{ padding:20px}.p30{ padding:30px}.p2030{ padding:20px 30px}.p40{ padding:40px}.p3040{ padding:30px 40px}
|
| | |
|
| | | .f0{ font-size: 0px;} .f11{ font-size: 11px;}.f12{ font-size: 12px;}.f13{ font-size: 13px;}.f14{ font-size: 14px;}.f16{ font-size: 16px;}.f18{ font-size: 18px;}.f20{ font-size: 20px;}.f26{ font-size: 26px;}.f28{ font-size: 28px;}.f30{ font-size: 30px;}.f32{ font-size: 32px;}.f34{ font-size: 34px;} .f38{ font-size: 38px;}.f40{ font-size: 40px;} .f42{ font-size: 42px;}.f44{ font-size: 44px;}.f48{ font-size: 48px;}.f50{ font-size: 50px;}.f60{ font-size: 60px;}.f64{ font-size: 64px;}.f70{ font-size: 70px;}.f80{ font-size: 80px;}.f90{ font-size: 90px;}.f100{ font-size: 100px;}
|
| | |
|
| | | .img16{ width: 16px; height: 16px;}
|
| | | .img20{ width: 20px; height: 20px;}
|
| | | .img24{ width: 24px; height: 24px;}
|
| | | .img26{ width: 26px; height: 26px;}
|
| | | .img30{ width: 30px; height: 30px;}
|
| | | .img32{ width: 32px; height: 32px;}
|
| | | .img36{ width: 36px; height: 36px;}
|
| | | .img40{ width: 40px; height: 40px;}
|
| | | .img48{ width: 48px; height: 48px;}
|
| | | .img60{ width: 60px; height: 60px;}
|
| | | .img66{ width: 66px; height: 66px;}
|
| | | .img80{ width: 80px; height: 80px;}
|
| | | .img86{ width: 86px; height: 86px;}
|
| | | .img90{ width: 90px; height: 90px;}
|
| | | .img100{ width: 100px; height: 100px;}
|
| | | .img110{ width: 110px; height: 110px;}
|
| | | .img120{ width: 120px; height: 120px;}
|
| | | .img150{ width: 150px; height: 150px;}
|
| | | .img180{ width: 180px; height: 180px;}
|
| | | .img200{ width: 200px; height: 200px;}
|
| | | .imgfull{ width: 100%;}
|
| | |
|
| | | .rimb{ border-bottom: 1px solid #F1F1F1;}
|
| | | .rimt{ border-top: 1px solid #F1F1F1;}
|
| | |
|
| | |
|
| | | .bcover{ background-size: cover; background-position: center center; background-repeat: no-repeat;}
|
| | | .bfull{ background-size: 100% 100%; background-position: center center; background-repeat: no-repeat;}
|
| | |
|
| | | .b{ font-weight: bold;}
|
| | | .ibm{ display: inline-block; vertical-align: middle;}
|
| | | .bbox{ box-sizing: border-box;}
|
| | | .rauto{ margin-left:auto; margin-right:auto}
|
| | | .fixedBottom{position: fixed; left: 0; bottom: 0; width: 100%;}
|
| | | .lh1-6{line-height: 1.6;}
|
| | | .lh1-6{line-height: 1.6;}
|
| | | .lh1-8{line-height: 1.8;}
|
| | | .lh2{line-height: 2;}
|
| | |
|
| | | .sbtn{ display: inline-block; padding: 0.7em 2em; border: 1px solid transparent; box-sizing: border-box; text-align: center;}
|
| | | .mini{ font-size: 18px;}
|
| | | .med{ font-size: 26px;}
|
| | | .def{ font-size: 34px;}
|
| | | .sbtn_w100{ width: 100%; padding-left: 0; padding-right: 0;}
|
| | | .sbtn_green{ color: #fff; background:#65C35D; }
|
| | | .sbtn_green_rim{ color: #65C35D; border-color:#65C35D; }
|
| | | .sbtn_black{ color: #fff; background:#333; }
|
| | | .sbtn_gray{ color: #333; background:#F7F7F7; }
|
| | | .sbtn_black_rim{ color: #333; border-color:#eee; }
|
| | | .sbtn_gray_rim{ color: #999; border-color:#ccc; }
|
| | | /* flex */
|
| | | .flex{ display: flex; flex-wrap: wrap; justify-content: space-between;}
|
| | | .cXY{ display: flex; align-items: center;justify-content: center;}
|
| | | .cY{ display: flex; align-items: center;}
|
| | | .cX{display: flex; justify-content: center}
|
| | | .rowW{ display: flex; flex-wrap: wrap;}
|
| | | .bX{ display: flex; flex-direction: row; justify-content: space-between;} |
| | | .bY{ display: flex; flex-direction:column; justify-content: space-between;} |
| | | .bcX{ display: flex; justify-content: space-between; align-items: center;}
|
| | | .fx1{ flex: 1; overflow: hidden; }
|
| | |
|
| | | .cAXY{ position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);}
|
| | | .shadowA{box-shadow: 0 0 5px 0 #ddd;}
|
| | | .shadowB{ position: relative;}
|
| | | .shadowB::after{ content: ""; display: block; width: 100%; height: 8px; box-shadow: 0 6px 12px rgba(0,0,0,.08); top: -8px; left: 0; position: absolute; }
|
| | |
|
| | |
|
| | | .orange{ color: #EA531B;}
|
| | | .green{ color: #65C35D;}
|
| | | .blue{ color: #3C77DA;}
|
| | | .red{ color: #f00;}
|
| | | .success{ color: #70B603; }
|
| | | .waring{ color: #F59A23; }
|
| | | .error{ color: #f00; }
|
| | | /* /deep/ .uicon-close .u-icon--right{ position: absolute; right: 30px; top: 30px; z-index: 999;} */
|
| | | .popCloseBtn{ position: absolute; width:50px; height:50px; right: 20px; top: 20px;}
|
| | | .fixedHeader{ position: absolute; left: 0; top: 0;}
|
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="åç±»ç¼ç ï¼" prop="code"> |
| | | <el-input v-model="form.code" :disabled="form.id" placeholder="å¯å¡«åï¼å¿½ç¥å°èªå¨çæ" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="åç±»åç§°ï¼" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥åç±»åç§°" v-trim/> |
| | | </el-form-item> |
| | | |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { getListByType } from '@/api/ext/categoryExt' |
| | | import { validateSpecialKey } from '@/assets/js/validate' |
| | | export default { |
| | | name: 'OperaCategoryExtWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | cateType: 0, |
| | | code: '', |
| | | name: '', |
| | | }, |
| | | parent: [], |
| | | // isShow: false, |
| | | // éªè¯è§å |
| | | rules: { |
| | | code: [ |
| | | { required: true, message: '请è¾å
¥åç±»ç¼ç ', trigger: 'blur' }, |
| | | { max: 10, message: 'è¾å
¥åæ°ä¸è¶
è¿10', trigger: 'change' }, |
| | | { validator: validateSpecialKey, trigger: 'blur' } |
| | | ], |
| | | name: [ |
| | | { max: 10, message: 'è¾å
¥åæ°ä¸è¶
è¿10', trigger: 'change' }, |
| | | { required: true, message: '请è¾å
¥åç±»åç§°', trigger: 'blur' } |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | computed: { |
| | | isShow: { |
| | | get () { |
| | | return this.form.type !== '0' |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | open (title, target, cateType) { |
| | | this.title = title |
| | | this.visible = true |
| | | // æ°å»º |
| | | if (target == null) { |
| | | |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | this.form[this.configData['field.id']] = null |
| | | this.form.cateType = cateType |
| | | }) |
| | | return |
| | | } |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | this.form.cateType = cateType |
| | | // this.form.cateType = parseInt(this.form.cateType) |
| | | // this.getParent() |
| | | }) |
| | | }, |
| | | changeModel (item) { |
| | | this.getParent() |
| | | }, |
| | | getParent () { |
| | | if (!this.isShow) { |
| | | return |
| | | } |
| | | const qurey = '?cateType=' + this.form.cateType + '&' + 'type=' + (this.form.type - 1) |
| | | getListByType( |
| | | qurey |
| | | ).then(res => { |
| | | // console.log(res) |
| | | this.parent = res |
| | | }).catch(err => { |
| | | console.log(err) |
| | | }) |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | api: '/ext/categoryExt', |
| | | 'field.id': 'id' |
| | | }) |
| | | } |
| | | } |
| | | </script> |
| | |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="å·¥åï¼" prop="factoryId"> |
| | | <el-form :model="form" ref="form" label-suffix="ï¼" :rules="rules"> |
| | | <el-form-item label="å·¥å" prop="factoryId"> |
| | | <el-select v-model="form.factoryId" placeholder="è¯·éæ©å·¥å" :disabled="isEdit" filterable clearable @change="selectFactoey(form.factoryId, false)"> |
| | | <el-option |
| | | v-for="item in factories()" |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ç©æä¿¡æ¯ï¼" prop="materialId"> |
| | | <el-form-item label="ç©æä¿¡æ¯" prop="materialId"> |
| | | <!-- @change="selectMaterial(form.materialId, false)" --> |
| | | <el-select v-model="form.materialId" clearable filterable placeholder="è¯·éæ©"> |
| | | <el-option |
| | |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="è®¡åæ¥æï¼" prop="planDate"> |
| | | <el-form-item label="计åå¼å§æ¥æ" prop="startDate"> |
| | | <el-date-picker |
| | | v-model="form.planDate" |
| | | v-model="form.startDate" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="è¯·éæ©è®¡åæ¥æ" |
| | | placeholder="è¯·éæ©è®¡åå¼å§æ¥æ" |
| | | :picker-options="pickerOptions" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="è®¡åæ°é:" prop="num"> |
| | | <el-form-item label="计åç»ææ¥æ" prop="planDate"> |
| | | <el-date-picker |
| | | v-model="form.planDate" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="è¯·éæ©è®¡åç»ææ¥æ" |
| | | :picker-options="pickerOptions" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="è®¡åæ°é" prop="num"> |
| | | <el-input v-model="form.num" placeholder="请è¾å
¥" max="10" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="çäº§æ¹æ¬¡å·" prop="batch"> |
| | | <el-input v-model="form.batch" placeholder="请è¾å
¥" max="30" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ä¼å
级ï¼" prop="urgent"> |
| | | <el-form-item label="éå®è®¢å" prop="salesorder"> |
| | | <el-input v-model="form.salesorder" placeholder="请è¾å
¥" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ä¼å
级" prop="urgent"> |
| | | <el-input v-model="form.urgent" placeholder="请è¾å
¥" max="4" v-trim/> |
| | | </el-form-item> |
| | | </el-form> |
| | |
| | | num: null, |
| | | batch: null, |
| | | unitId: '', |
| | | startDate: '', |
| | | planDate: '', |
| | | salesorder: '', |
| | | urgent: '' |
| | | }, |
| | | materials: [], |
| | |
| | | api: '/business/workPlans', |
| | | 'field.id': 'id' |
| | | }) |
| | | let tempDate = new Date() |
| | | this.form.startDate = `${tempDate.getFullYear()}-${tempDate.getMonth() + 1}-${tempDate.getDate()}` |
| | | this.pickerOptions.disabledDate = (time) => { |
| | | // ä¸å¤© |
| | | let tempTime = 3600 * 1000 * 24 |
| | |
| | | } |
| | | } |
| | | } |
| | | /** |
| | | * |
| | | */ |
| | | </script> |
| | |
| | | <img src="@/assets/images/ic_help@2x.png" alt="" /> |
| | | <span>å¸®å©ææ¡£</span> |
| | | </div> |
| | | <div style="margin-right: 10px;">ä¼ä¸ä»£ç ï¼ {{ tempId }}</div> |
| | | <el-dropdown trigger="click" style="margin-right: 20px;" v-userState @command="select"> |
| | | <span class="el-dropdown-link"> |
| | | {{ tempC }}<i class="el-icon-arrow-down el-icon--right"></i> |
| | | {{ tempC }}<i class="el-icon-arrow-down el-icon--right"></i> |
| | | </span> |
| | | <el-dropdown-menu slot="dropdown"> |
| | | <el-dropdown-item v-for="(item, index) in cList" :key="index" :command='item.id'>{{ item.name }}</el-dropdown-item> |
| | |
| | | data () { |
| | | return { |
| | | tempC: '', |
| | | tempId: '', |
| | | cList: '', |
| | | visible: { |
| | | // ä¿®æ¹å¯ç |
| | |
| | | } |
| | | }, |
| | | created () { |
| | | this.tempC = this.userInfo.curComDepartment ? this.userInfo.curComDepartment.name : '' |
| | | if (this.userInfo.curComDepartment) { |
| | | this.tempC = this.userInfo.curComDepartment.name |
| | | this.tempId = this.userInfo.curComDepartment.id |
| | | } |
| | | getDepartmentListByConditon({ |
| | | type: 0 |
| | | }) |
| | |
| | | <div class="menu" :class="{collapse: menuData.collapse}"> |
| | | <div class="logo"> |
| | | <div><img src="@/assets/logo_v2.png"></div> |
| | | <h1 :class="{hidden: menuData.collapse}">{{ rootName() }}</h1> |
| | | <h1 :class="{hidden: menuData.collapse}">DMäºå·¥å</h1> |
| | | </div> |
| | | <scrollbar> |
| | | <!-- :default-openeds="defaultOpeneds" --> |
| | |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { treeComList, allList } from '@/api/ext/companyUserExt' |
| | | |
| | | import { validateSpecialKey } from '@/assets/js/validate' |
| | | export default { |
| | | name: 'OperaCompanyUserExtWindow', |
| | | extends: BaseOpera, |
| | |
| | | { pattern: /^[0-9]+$/, message: 'åªå¯ä»¥è¾å
¥æ°å', trigger: 'change' } |
| | | ], |
| | | empNo: [ |
| | | { required: true, message: '请è¾å
¥å·¥å·', trigger: 'blur' }, |
| | | // { required: true, message: '请è¾å
¥å·¥å·', trigger: 'blur' }, |
| | | { max: 20, message: 'è¾å
¥åæ°ä¸è¶
è¿20', trigger: 'blur' }, |
| | | { pattern: /^[0-9a-zA-Z]+$/, message: 'åªå¯ä»¥è¾å
¥æ°åå忝', trigger: 'change' } |
| | | { validator: validateSpecialKey, message: 'åªå¯ä»¥è¾å
¥æ°åã忝æè
è±æå符', trigger: 'blur' }, |
| | | // { pattern: /^[0-9a-zA-Z]+$/, trigger: 'change' } |
| | | ], |
| | | departmentId: [ |
| | | { required: true, message: 'è¯·éæ©é¨é¨', trigger: 'blur' } |
| | |
| | | <span v-else style="color: #03AF76;" class="status-log">{{ item.status==1 ? '已夿' : item.status==2 ? 'å·²å®å·¥' : item.status==3 ? 'å·²æ£éª' : 'å·²æ¥å·¥' }}</span> |
| | | </div> |
| | | </div> |
| | | <div style="color: #777; font-size: 11px; margin-bottom: 15px;">{{ 'ç产人åï¼' + proUserStr(item) }}</div> |
| | | <div class="c3 mt10 mb10 f12" style="display: flex;"> |
| | | <div>è®¡åæ°éï¼{{ form.num }}</div> |
| | | <div class="ml10">计åå¼å·¥æ¥æï¼{{ form.num }}</div> |
| | | </div> |
| | | <div v-if="item.produceDate" class="order-setup"> |
| | | <!-- æ¥å·¥ä¿¡æ¯ --> |
| | | <div class="line-style"> |
| | |
| | | </div> |
| | | <div class="setup-content"> |
| | | <div class="left-message"> |
| | | <div class="message-title-temp"> |
| | | äº§åº |
| | | </div> |
| | | <p class="time-style"> |
| | | {{ item.produceDate }} |
| | | </p> |
| | | <div class="message-title-temp">产åº</div> |
| | | </div> |
| | | <div class="right-message"> |
| | | <div style="margin-left: 30px"> |
| | | <span style="color:#666;">ç©æï¼</span> |
| | | <div class="right-message ml30"> |
| | | <div style="display: flex;"> |
| | | <div class="time-style">æä½äººï¼{{ item.createUserName }}</div> |
| | | <div class="time-style ml50">æä½æ¶é´ï¼{{ item.produceDate }}</div> |
| | | </div> |
| | | <div> |
| | | <div style="display: flex;" class="mt10"> |
| | | <span style="color:#666;">产åï¼</span> |
| | | <div v-if="item.qualifiedNum"> |
| | | <span style="color:#03AF76">[åæ ¼å] </span> |
| | | <span style="color:#333333">{{ item.qualifiedNum + (form.umodel && form.umodel.name) }}</span> |
| | | </div> |
| | | <div v-if="item.unqualifiedNum"> |
| | | <div v-if="item.unqualifiedNum" class="ml20"> |
| | | <span style="color:#F5A400">[ä¸è¯å] </span> |
| | | <span style="color:#333333">{{ item.unqualifiedNum + (form.umodel && form.umodel.name) }}</span> |
| | | </div> |
| | |
| | | <div :class="item.produceDate ? 'message-title' : 'message-title-temp'"> |
| | | ææ |
| | | </div> |
| | | <p class="time-style"> |
| | | {{ item.materialDate }} |
| | | </p> |
| | | </div> |
| | | <div class="right-message"> |
| | | <div style="margin-left: 30px"> |
| | | <span style="color:#666;">ç©æï¼</span> |
| | | <div class="right-message ml30"> |
| | | <div style="display: flex;"> |
| | | <div class="time-style">æä½äººï¼{{ item.createUserName }}</div> |
| | | <div class="time-style ml50">æä½æ¶é´ï¼{{ item.materialDate }}</div> |
| | | </div> |
| | | <div> |
| | | <div v-for="(sItem, sIndex) in item.materialList" :key="sIndex"> |
| | | <span style="color:#333333">{{ sItem.name + ' / ' + sItem.num + sItem.unitName }}</span> |
| | | <div style="display: flex" class="mt10"> |
| | | <div style="color:#666;">ç©æï¼</div> |
| | | <div> |
| | | <div v-for="(sItem, sIndex) in item.materialList" :key="sIndex"> |
| | | <span style="color:#333333">{{ sItem.name + ' / ' + sItem.num + sItem.unitName }}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <div :class="item.materialDate ? 'message-title' : 'message-title-temp'"> |
| | | åé
|
| | | </div> |
| | | <p class="time-style"> |
| | | {{ item.distributeDate }} |
| | | </p> |
| | | |
| | | </div> |
| | | <div class="right-message"> |
| | | <div style="margin-left: 30px"> |
| | | <span style="color:#666;">åé
æ°éï¼</span> |
| | | <div class="right-message ml30"> |
| | | <div style="display: flex;"> |
| | | <div class="time-style">æä½äººï¼{{ item.createUserName }}</div> |
| | | <div class="time-style ml50">æä½æ¶é´ï¼{{ item.distributeDate }}</div> |
| | | </div> |
| | | <div> |
| | | <span style="color:#333333">{{ item.planNum + (form.umodel && form.umodel.name) }}</span> |
| | | <div class="mt10"> |
| | | <span style="color:#666;">åé
æ°éï¼{{ item.planNum + (form.umodel && form.umodel.name) }}</span> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | flex: 1; |
| | | // background-color: #f7f7f7; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | .left-message { |
| | | width: 62px; |
| | | display: flex; |
| | | line-height: 20px; |
| | | .message-title { |
| | | color: #333; |
| | | font-weight: 500; |
| | |
| | | } |
| | | .time-style { |
| | | color: #999999; |
| | | font-size: 11px; |
| | | max-lines: 2; |
| | | } |
| | | } |
| | | .right-message { |
| | | flex: 1; |
| | | font-size: 13px; |
| | | display: flex; |
| | | // display: flex; |
| | | flex-direction: row; |
| | | } |
| | | } |
| | |
| | | // tobescrappedWarehouseId: '', |
| | | iscalculate: 1, |
| | | level: 0, |
| | | needcheck: 0, |
| | | needcheck: 1, |
| | | sortnum: '' |
| | | }, |
| | | iscalculates: [ |
| | |
| | | return date2 |
| | | } |
| | | }, |
| | | pickerOptions(data) { |
| | | let time = new Date(data); |
| | | let tempTime = 3600 * 1000 * 24 |
| | | return { |
| | | disabledDate: time.getTime() < new Date(data)-tempTime |
| | | } |
| | | } |
| | | // pickerOptions(data) { |
| | | // let time = new Date(data); |
| | | // let tempTime = 3600 * 1000 * 24 |
| | | // return { |
| | | // disabledDate: time.getTime() < new Date(data)-tempTime |
| | | // } |
| | | // } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | |
| | | open (role) { |
| | | const formData = new FormData() |
| | | formData.append('type', 1) |
| | | formData.append('moduleId', 1) |
| | | // formData.append('moduleId', 1) |
| | | fetchMenuList(formData) |
| | | .then(records => { |
| | | this.role = role |
| | |
| | | fetchData () { |
| | | const formData = new FormData() |
| | | formData.append('type', 1) |
| | | formData.append('moduleId', 1) |
| | | // formData.append('moduleId', 1) |
| | | fetchTree(formData) |
| | | .then(records => { |
| | | this.data = [] |
| | |
| | | // const formData = new FormData() |
| | | // formData.append('type', role.type) |
| | | // formData.append('moduleId', 1) |
| | | fetchMenuList({ type: type, moduleId: 1 }) |
| | | // , moduleId: 1 |
| | | fetchMenuList({ type: type }) |
| | | .then(records => { |
| | | this.menus = records |
| | | // å¦æä¸ºåºå®è§è²ï¼ååºå®èåä¸å¯æ´æ¹ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout v-permissions="['ext:categoryext:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form slot="search-form" ref="searchForm" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="åç±»åç§°ï¼" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="åç±»ç¼ç ï¼" prop="code"> |
| | | <el-input v-model="searchForm.code" placeholder="请è¾å
¥" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> --> |
| | | <!-- <el-form-item label="å类类åï¼" prop="cateType"> |
| | | <el-select v-model="searchForm.cateType" clearable filterable placeholder="å
¨é¨"> |
| | | <el-option |
| | | v-for="item in types" |
| | | :key="item.id" |
| | | :value="item.id" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> --> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar"> |
| | | <li v-permissions="['ext:categoryext:create']"><el-button type="primary" @click="$refs.operaCategoryExtWindow.open('æ°å¢åç±»', null, 3)" >æ°å»º</el-button></li> |
| | | <!-- <li v-permissions="['ext:categoryext:importExcel']"> |
| | | <ImportButton |
| | | text="导å
¥" |
| | | template-name="category_import_template.xlsx" |
| | | template-path="/template/category_import_template.xlsx" |
| | | action="/ext/categoryExt/importExcel" |
| | | @success="search" |
| | | /> |
| | | </li> |
| | | <li><el-button @click="deleteByIdInBatch" v-permissions="['ext:categoryext:delete']" type="danger" plain>å é¤</el-button></li> --> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | border |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <!-- <el-table-column type="selection" width="55"></el-table-column> --> |
| | | <!-- <el-table-column prop="cateType" label="å类类å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{ cateTypeToStr(row.cateType) }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="type" label="åç±»å±æ§" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{ typeToStr(row.type) }} |
| | | </template> |
| | | </el-table-column> --> |
| | | <el-table-column prop="code" label="åç±»ç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="åç±»åç§°" min-width="100px"></el-table-column> |
| | | <!-- <el-table-column label="ä»å±å类类å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.pmodel ? typeToStr(row.pmodel.type) : '-' }} |
| | | </template> |
| | | </el-table-column> --> |
| | | <!-- <el-table-column label="ä»å±åç±»åç§°" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.pmodel ? row.pmodel.name : '-' }} |
| | | </template> |
| | | </el-table-column> --> |
| | | <el-table-column prop="createTime" label="å建æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button v-permissions="['ext:categoryext:update']" type="text" @click="$refs.operaCategoryExtWindow.open('ç¼è¾', row)">ç¼è¾</el-button> |
| | | <span v-permissions="['ext:categoryext:delete']" style="margin-left:8px"> |
| | | <el-button type="text" @click="deleteById(row)">å é¤</el-button> |
| | | </span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | ></pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaCategoryExtWindow ref="operaCategoryExtWindow" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | // import SearchFormCollapse from '@/components/common/SearchFormCollapse' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaCategoryExtWindow from '@/components/business/OperaCategoryExtWindow' |
| | | export default { |
| | | name: 'CategoryExt', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaCategoryExtWindow }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | name: '', |
| | | code: '', |
| | | cateType: '3' |
| | | }, |
| | | types: [ |
| | | // 0ç©æ 1å®¢æ· 2å·¥è£
å¨å
· 3ä¸è¯å |
| | | { name: 'ç©æ', id: 0 }, |
| | | // { name: '客æ·', id: 1 }, |
| | | // { name: 'å·¥è£
å¨å
·', id: 2 }, |
| | | { name: 'ä¸è¯åå ', id: 3 } |
| | | ] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: '设置类å类信æ¯è¡¨', |
| | | api: '/ext/categoryExt', |
| | | 'field.id': 'id', |
| | | 'field.main': 'name', |
| | | sorts: [{ direction: 'DESC', property: 'CREATE_TIME' }] |
| | | }) |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | typeToStr (type) { |
| | | switch (type) { |
| | | case '0': return '大类' |
| | | case '1': return 'ä¸ç±»' |
| | | case '2': return 'å°ç±»' |
| | | default: return '-' |
| | | } |
| | | }, |
| | | cateTypeToStr (cateType) { |
| | | for (const item of this.types) { |
| | | // console.log(item.id, parseInt(cateType), item.id === parseInt(cateType)) |
| | | if (item.id === parseInt(cateType)) { |
| | | return item.name |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout v-permissions="['ext:categoryext:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form slot="search-form" ref="searchForm" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="åç±»åç§°ï¼" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="åç±»ç¼ç ï¼" prop="code"> |
| | | <el-input v-model="searchForm.code" placeholder="请è¾å
¥" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> --> |
| | | <!-- <el-form-item label="å类类åï¼" prop="cateType"> |
| | | <el-select v-model="searchForm.cateType" clearable filterable placeholder="å
¨é¨"> |
| | | <el-option |
| | | v-for="item in types" |
| | | :key="item.id" |
| | | :value="item.id" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> --> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar"> |
| | | <li v-permissions="['ext:categoryext:create']"><el-button type="primary" @click="$refs.operaCategoryExtWindow.open('æ°å¢åç±»', null, 0)" >æ°å»º</el-button></li> |
| | | <!-- <li v-permissions="['ext:categoryext:importExcel']"> |
| | | <ImportButton |
| | | text="导å
¥" |
| | | template-name="category_import_template.xlsx" |
| | | template-path="/template/category_import_template.xlsx" |
| | | action="/ext/categoryExt/importExcel" |
| | | @success="search" |
| | | /> |
| | | </li> |
| | | <li><el-button @click="deleteByIdInBatch" v-permissions="['ext:categoryext:delete']" type="danger" plain>å é¤</el-button></li> --> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | border |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <!-- <el-table-column type="selection" width="55"></el-table-column> --> |
| | | <!-- <el-table-column prop="cateType" label="å类类å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{ cateTypeToStr(row.cateType) }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="type" label="åç±»å±æ§" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{ typeToStr(row.type) }} |
| | | </template> |
| | | </el-table-column> --> |
| | | <el-table-column prop="code" label="åç±»ç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="åç±»åç§°" min-width="100px"></el-table-column> |
| | | <!-- <el-table-column label="ä»å±å类类å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.pmodel ? typeToStr(row.pmodel.type) : '-' }} |
| | | </template> |
| | | </el-table-column> --> |
| | | <!-- <el-table-column label="ä»å±åç±»åç§°" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.pmodel ? row.pmodel.name : '-' }} |
| | | </template> |
| | | </el-table-column> --> |
| | | <el-table-column prop="createTime" label="å建æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button v-permissions="['ext:categoryext:update']" type="text" @click="$refs.operaCategoryExtWindow.open('ç¼è¾', row)">ç¼è¾</el-button> |
| | | <span v-permissions="['ext:categoryext:delete']" style="margin-left:8px"> |
| | | <el-button type="text" @click="deleteById(row)">å é¤</el-button> |
| | | </span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | ></pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaCategoryExtWindow ref="operaCategoryExtWindow" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | // import SearchFormCollapse from '@/components/common/SearchFormCollapse' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaCategoryExtWindow from '@/components/business/OperaCategoryExtWindow' |
| | | export default { |
| | | name: 'CategoryExt', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaCategoryExtWindow }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | name: '', |
| | | cateType: '0' |
| | | }, |
| | | types: [ |
| | | // 0ç©æ 1å®¢æ· 2å·¥è£
å¨å
· 3ä¸è¯å |
| | | { name: 'ç©æ', id: 0 }, |
| | | // { name: '客æ·', id: 1 }, |
| | | // { name: 'å·¥è£
å¨å
·', id: 2 }, |
| | | { name: 'ä¸è¯åå ', id: 3 } |
| | | ] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: '设置类å类信æ¯è¡¨', |
| | | api: '/ext/categoryExt', |
| | | 'field.id': 'id', |
| | | 'field.main': 'name', |
| | | sorts: [{ direction: 'DESC', property: 'CREATE_TIME' }] |
| | | }) |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | typeToStr (type) { |
| | | switch (type) { |
| | | case '0': return '大类' |
| | | case '1': return 'ä¸ç±»' |
| | | case '2': return 'å°ç±»' |
| | | default: return '-' |
| | | } |
| | | }, |
| | | cateTypeToStr (cateType) { |
| | | for (const item of this.types) { |
| | | // console.log(item.id, parseInt(cateType), item.id === parseInt(cateType)) |
| | | if (item.id === parseInt(cateType)) { |
| | | return item.name |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <!-- deleteByIdInBatch --> |
| | | <li><el-button type="danger" @click="deleteByIds" icon="el-icon-delete" v-permissions="['ext:workplans:delete']">æ¹éå é¤</el-button></li> |
| | | </ul> |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange"> |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" border stripe @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="planCode" label="æå计åç¼ç " min-width="150px"> |
| | | <template slot-scope="{row}"> |
| | |
| | | </el-table-column> |
| | | <el-table-column prop="materialName" label="ç©æåç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="materialCode" label="ç©æç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="planDate" label="è®¡åæ¥æ" min-width="100px"></el-table-column> |
| | | <el-table-column prop="startDate" label="计åå¼å§æ¥æ" min-width="100px"></el-table-column> |
| | | <el-table-column prop="planDate" label="计åå®ææ¥æ" min-width="100px"></el-table-column> |
| | | <el-table-column prop="factoryName" label="å·¥å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="batch" label="çäº§æ¹æ¬¡å·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="num" label="è®¡åæ°é" min-width="100px"></el-table-column> |
| | |
| | | <span v-else-if="row.status == 6">å·²å®å·¥</span> |
| | | <!-- <span v-else-if="row.status == 7">å·²å
¥åº</span> --> |
| | | <span v-else-if="row.status == 8">å·²å
³é</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æå" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.paused == 1">æ¯</span> |
| | | <span v-else>å¦</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="å®å·¥æ°" min-width="100px"> |
| | |
| | | <span v-else>-</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="å叿¶é´" min-width="100px"> |
| | | |
| | | <el-table-column label="éå®è®¢å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.salesorder">{{ row.salesorder }}</span> |
| | | <span v-else>-</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="ä¼å
级" min-width="80px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.urgent">{{ row.urgent }}</span> |
| | | <span v-else>-</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æå" min-width="80px"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.paused==0?'å¦':'æ¯' }} |
| | | |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column label="å叿¥æ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.publishDate">{{ row.publishDate }}</span> |
| | | <span v-else>-</span> |
| | |
| | | <el-table-column prop="mmodel.name" fixed="left" label="ç©æåç§°" show-overflow-tooltip min-width="140px"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" class="materail" @click="showPlan(row.id)"> |
| | | <span class="long-title-style">{{ row.mmodel.name }}</span> |
| | | <div class="long-title-style">{{ row.mmodel.name }}</div> |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | <img :src="$store.state.VUE_APP_CONFIG.LOGO" alt=""> |
| | | </div> |
| | | <h2>{{ $store.state.VUE_APP_CONFIG.COMPANY_NAME }}</h2> |
| | | |
| | | </div> |
| | | <div class="login"> |
| | | <h1>ç³»ç»ç»å½ / LOGIN IN</h1> |
| | |
| | | handlePageChange () { |
| | | const formData = new FormData() |
| | | formData.append('type', 1) |
| | | formData.append('moduleId', 1) |
| | | // formData.append('moduleId', 1) |
| | | this.isWorking.search = true |
| | | fetchTree(formData) |
| | | .then(records => { |
| | |
| | | // 详ç»é
置请åèhttps://cli.vuejs.org/zh/config/#vue-config-js |
| | | // const outputDir = process.env.VUE_APP_CONTEXT_PATH.substring(1, process.env.VUE_APP_CONTEXT_PATH.length - 1) |
| | | const outputDir = process.env.VUE_APP_CONTEXT_PATH.substring(1, process.env.VUE_APP_CONTEXT_PATH.length) |
| | | module.exports = { |
| | | publicPath: process.env.VUE_APP_CONTEXT_PATH, |
| | | // publicPath: './', |
| | | outputDir: 'doumeeplant_web', |
| | | // outputDir: 'web', |
| | | outputDir: outputDir || 'web', |
| | | assetsDir: 'static', |
| | | lintOnSave: false, |
| | | devServer: { |
| | | disableHostCheck: true, |
| | | host: '0.0.0.0', |
| | | port: 10086, |
| | | // port: 10086, |
| | | proxy: { |
| | | [process.env.VUE_APP_API_PREFIX]: { |
| | | target: process.env.VUE_APP_BASE_URL, |
| | |
| | | |
| | | "ansi-styles@^4.1.0": |
| | | "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" |
| | | "resolved" "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz" |
| | | "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" |
| | | "version" "4.3.0" |
| | | dependencies: |
| | | "color-convert" "^2.0.1" |
| | |
| | | |
| | | "chalk@^4.1.0": |
| | | "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" |
| | | "resolved" "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz" |
| | | "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" |
| | | "version" "4.1.2" |
| | | dependencies: |
| | | "ansi-styles" "^4.1.0" |
| | |
| | | |
| | | "color-convert@^2.0.1": |
| | | "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" |
| | | "resolved" "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz" |
| | | "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" |
| | | "version" "2.0.1" |
| | | dependencies: |
| | | "color-name" "~1.1.4" |
| | |
| | | |
| | | "color-name@~1.1.4": |
| | | "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" |
| | | "resolved" "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz" |
| | | "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" |
| | | "version" "1.1.4" |
| | | |
| | | "color-string@^1.5.4": |
| | |
| | | "resolved" "https://registry.nlark.com/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz?cache=0&sync_timestamp=1620088667316&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz" |
| | | "version" "1.3.0" |
| | | |
| | | "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0", "eslint@^5.0.0 || ^6.0.0", "eslint@^6.7.2", "eslint@>= 1.6.0 < 7.0.0", "eslint@>= 4.12.1", "eslint@>=1.6.0 <7.0.0", "eslint@>=4.19.1", "eslint@>=5.0.0", "eslint@>=5.16.0", "eslint@>=6.2.2": |
| | | "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0", "eslint@^5.0.0 || ^6.0.0", "eslint@>= 1.6.0 < 7.0.0", "eslint@>= 4.12.1", "eslint@>=1.6.0 <7.0.0", "eslint@>=4.19.1", "eslint@>=5.0.0", "eslint@>=5.16.0", "eslint@>=6.2.2": |
| | | "integrity" "sha1-YiYtZylzn5J1cjgkMC+yJ8jJP/s=" |
| | | "resolved" "https://registry.nlark.com/eslint/download/eslint-6.8.0.tgz?cache=0&sync_timestamp=1620440445769&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint%2Fdownload%2Feslint-6.8.0.tgz" |
| | | "version" "6.8.0" |
| | |
| | | |
| | | "has-flag@^4.0.0": |
| | | "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" |
| | | "resolved" "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz" |
| | | "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" |
| | | "version" "4.0.0" |
| | | |
| | | "has-symbols@^1.0.1", "has-symbols@^1.0.2": |
| | |
| | | "json5" "^1.0.1" |
| | | |
| | | "loader-utils@^2.0.0": |
| | | "integrity" "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==" |
| | | "resolved" "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.2.tgz" |
| | | "version" "2.0.2" |
| | | "integrity" "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==" |
| | | "resolved" "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz" |
| | | "version" "2.0.4" |
| | | dependencies: |
| | | "big.js" "^5.2.2" |
| | | "emojis-list" "^3.0.0" |
| | |
| | | |
| | | "supports-color@^7.1.0": |
| | | "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" |
| | | "resolved" "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz" |
| | | "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" |
| | | "version" "7.2.0" |
| | | dependencies: |
| | | "has-flag" "^4.0.0" |
| | |
| | | |
| | | "vue-loader-v16@npm:vue-loader@^16.1.0": |
| | | "integrity" "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==" |
| | | "resolved" "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz" |
| | | "resolved" "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz" |
| | | "version" "16.8.3" |
| | | dependencies: |
| | | "chalk" "^4.1.0" |