Procházet zdrojové kódy

Merge branch 'master' of http://47.100.37.243:10191/wutt/manHourHousekeeper

Min před 1 rokem
rodič
revize
4192a0ef68

+ 2 - 2
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ProdProcedureController.java

@@ -49,10 +49,10 @@ public class ProdProcedureController {
      */
     @RequestMapping("/changeProdProcedure")
     public HttpRespMsg changeProdProcedure ( Integer productId ,String productName,String version, String  prodProcedures){
-
+        System.out.println(prodProcedures);
         List<ProdProcedure> prodProcedureList= null;
         prodProcedureList =Arrays.asList(JSONObject.parseObject(prodProcedures,ProdProcedure[].class));
-
+        System.out.println(prodProcedureList);
         return prodProcedureService.changeProdProcedure(request, prodProcedureList,productId,productName,version);
     }
 

+ 1 - 1
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProdProcedureServiceImpl.java

@@ -151,8 +151,8 @@ public class ProdProcedureServiceImpl extends ServiceImpl<ProdProcedureMapper, P
                         .eq(user.getCompanyId() != null, ProdProcedure::getCompanyId, user.getCompanyId())
                         .eq(StringUtils.isNotBlank(version), ProdProcedure::getVersionNumber, version)
                         .eq(productId != null, ProdProcedure::getProductId, productId)
-
         );
+        System.out.println(prodProcedureList);
         httpRespMsg.data=prodProcedureList;
         return httpRespMsg;
     }

+ 1 - 1
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProductServiceImpl.java

@@ -432,7 +432,7 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
                     return prodProcedure.getProductName().equals(procedure.getProductName()) && !prodProcedure.getVersionNumber().equals(procedure.getVersionNumber());
                 }).count()>0){
 
-                    msg.setError("一个产品只能导入一个产品号");
+                    msg.setError("一个产品只能导入一个版本号");
                     return msg;
                 }
 

+ 19 - 13
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/UserServiceImpl.java

@@ -1865,11 +1865,12 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
             sheet.setColumnWidth(2, 20 * 256);
             sheet.setColumnWidth(3, 20 * 256);
             sheet.setColumnWidth(4, 20 * 256);
-            sheet.setColumnWidth(5, 10 * 256);
-
+            sheet.setColumnWidth(5, 20 * 256);
             sheet.setColumnWidth(6, 10 * 256);
+
             sheet.setColumnWidth(7, 10 * 256);
             sheet.setColumnWidth(8, 10 * 256);
+            sheet.setColumnWidth(9, 10 * 256);
             //设置为居中加粗
             HSSFCellStyle headStyle = workbook.createCellStyle();
             HSSFFont font = workbook.createFont();
@@ -1890,22 +1891,26 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
             headCell.setCellValue(MessageUtils.message("role.role"));
             headCell.setCellStyle(headStyle);
             headCell = headRow.createCell(3);
+            //headCell.setCellValue("工种");
+            headCell.setCellValue("工种");
+            headCell.setCellStyle(headStyle);
+            headCell = headRow.createCell(4);
             //headCell.setCellValue("手机号");
             headCell.setCellValue(MessageUtils.message("excel.phoneNumber"));
             headCell.setCellStyle(headStyle);
-            headCell = headRow.createCell(4);
+            headCell = headRow.createCell(5);
             //headCell.setCellValue("部门");
             headCell.setCellValue(MessageUtils.message("excel.department"));
             headCell.setCellStyle(headStyle);
-            headCell = headRow.createCell(5);
+            headCell = headRow.createCell(6);
             //headCell.setCellValue("月薪");
             headCell.setCellValue(MessageUtils.message("excel.MonSalary"));
             headCell.setCellStyle(headStyle);
-            headCell = headRow.createCell(6);
+            headCell = headRow.createCell(7);
             //headCell.setCellValue("时薪");
             headCell.setCellValue(MessageUtils.message("excel.hourlyWage"));
             headCell.setCellStyle(headStyle);
-            headCell = headRow.createCell(7);
+            headCell = headRow.createCell(8);
             //headCell.setCellValue("证书");
             headCell.setCellValue(MessageUtils.message("excel.certificate"));
             headCell.setCellStyle(headStyle);
@@ -1952,14 +1957,15 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                     row.createCell(1).setCellValue(item.getName());
                 }
                 row.createCell(2).setCellValue(item.getRoleName());
-                row.createCell(3).setCellValue(item.getPhone());
+                row.createCell(3).setCellValue(item.getWorkType());
+                row.createCell(4).setCellValue(item.getPhone());
                 if(wxCorpInfo!=null&&!isPrivateDeploy){
-                    row.createCell(4).setCellValue("$departmentName="+(item.getCorpwxDeptid()==null?" ":item.getCorpwxDeptid())+"$");
+                    row.createCell(5).setCellValue("$departmentName="+(item.getCorpwxDeptid()==null?" ":item.getCorpwxDeptid())+"$");
                 }else {
-                    row.createCell(4).setCellValue(item.getDepartmentName());
+                    row.createCell(5).setCellValue(item.getDepartmentName());
                 }
-                row.createCell(5).setCellValue(item.getMonthCost()==null? 0 : item.getMonthCost().intValue());
-                row.createCell(6).setCellValue(item.getCost() == null?0.0 : item.getCost().doubleValue());
+                row.createCell(6).setCellValue(item.getMonthCost()==null? 0 : item.getMonthCost().intValue());
+                row.createCell(7).setCellValue(item.getCost() == null?0.0 : item.getCost().doubleValue());
                 List<UserCert> certList = userCertList.stream().distinct().filter(uc -> uc.getUserId().equals(item.getId())).collect(Collectors.toList());
                 if(certList.size()>0){
                     String s="";
@@ -1970,9 +1976,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                             s+=certList.get(i).getCertName()+" "+certList.get(i).getCertDate();
                         }
                     }
-                    row.createCell(7).setCellValue(s);
+                    row.createCell(8).setCellValue(s);
                 }else {
-                    row.createCell(7).setCellValue("");
+                    row.createCell(8).setCellValue("");
                 }
                 for (int i = 0; i < userCustomList.size(); i++) {
                     String value="";

+ 24 - 15
fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/views/planView/InsertionPlan/InsertionPlanAdd.vue

@@ -6,32 +6,32 @@
       @failed="onFailed">
       <!-- 内容 -->
       <div class="InsertionPlanBox contentRoll">
-        <van-field v-model.trim="inserFrom.taskChangeNoticeNum" :readonly="false" label="任务变更通知号" placeholder="请输入"
+        <van-field v-model.trim="inserFrom.taskChangeNoticeNum" :readonly="beDeptList" label="任务变更通知号" placeholder="请输入"
           :rules="[{ pattern }]" />
-        <van-field v-model.trim="inserFrom.taskName" :readonly="false" label="任务名称" placeholder="请输入"
+        <van-field v-model.trim="inserFrom.taskName" :readonly="beDeptList" label="任务名称" placeholder="请输入"
           :rules="[{ pattern }]" />
-        <van-field readonly clickable :readonly="false" v-model.trim="inserFrom.taskTypeName" label="任务类型"
+        <van-field clickable :readonly="beDeptList" v-model.trim="inserFrom.taskTypeName" label="任务类型"
           placeholder="请选择" @click="selectClick('taskTypeId', 'taskTypeName', 'taskTypeNameColumns')" />
-        <van-field v-model.trim="inserFrom.planManNum" :readonly="false" label="计划人数" placeholder="请输入"
+        <van-field v-model.trim="inserFrom.planManNum" :readonly="beDeptList" label="计划人数" placeholder="请输入"
           :rules="[{ pattern }]" />
-        <van-field v-model.trim="inserFrom.num" type="number" :readonly="false" label="数量" placeholder="请输入"
+        <van-field v-model.trim="inserFrom.num" type="number" :readonly="beDeptList" label="数量" placeholder="请输入"
           :rules="[{ pattern }]" />
-        <van-field v-model.trim.number="inserFrom.planWorkHour" type="number" :readonly="false" label="计划工时"
+        <van-field v-model.trim.number="inserFrom.planWorkHour" type="number" :readonly="beDeptList" label="计划工时"
           placeholder="请输入" :rules="[{ pattern }]" />
-        <van-field v-model.trim.number="inserFrom.moneyOfJob" type="number" :readonly="false" label="单价"
+        <van-field v-model.trim.number="inserFrom.moneyOfJob" type="number" :readonly="beDeptList" label="单价"
           :placeholder="`请输入  元/小时`" :rules="[{ pattern }]" />
-        <van-field readonly clickable :readonly="false" v-model.trim="inserFrom.checkTypeName" label="质检类型"
+        <van-field clickable :readonly="beDeptList" v-model.trim="inserFrom.checkTypeName" label="质检类型"
           placeholder="请选择" @click="selectClick('checkType', 'checkTypeName', 'checkTypeNameColumns')" />
-        <van-field v-model.trim="inserFrom.stationIdName" :readonly="true" label="工位" placeholder="请输入" />
-        <van-field v-model.trim="inserFrom.foremanName" :readonly="true" label="工长" placeholder="请输入" />
-        <van-field :readonly="false" :formatter="formatDate" v-model="inserFrom.startDate" label="开工时间" placeholder="请选择"
+        <van-field v-model.trim="inserFrom.stationIdName" readonly label="工位" placeholder="请输入" />
+        <van-field v-model.trim="inserFrom.foremanName" readonly label="工长" placeholder="请输入" />
+        <van-field :readonly="beDeptList" :formatter="formatDate" v-model="inserFrom.startDate" label="开工时间" placeholder="请选择"
           @click="selectTime('startDate')" />
-        <van-field :readonly="false" :formatter="formatDate" v-model="inserFrom.endDate" label="完工时间" placeholder="请选择"
+        <van-field :readonly="beDeptList" :formatter="formatDate" v-model="inserFrom.endDate" label="完工时间" placeholder="请选择"
           @click="selectTime('endDate')" />
         <van-field v-model="inserFrom.describtion" rows="4" autosize label="描述" type="textarea" placeholder="请输入" />
       </div>
       <!-- 提交按钮 -->
-      <div class="InsertionPlanBtn">
+      <div class="InsertionPlanBtn" v-if="!beDeptList">
         <van-button round block type="info" :loading="loadingBtn" native-type="submit">提交</van-button>
       </div>
     </van-form>
@@ -83,12 +83,21 @@ export default {
       selectNameId: '',
 
       taskTypeNameColumns: [],
-      checkTypeNameColumns: [{ id: 0, name: '自检' }, { id: 1, name: '互检' }, { id: 2, name: '专检' }]
+      checkTypeNameColumns: [{ id: 0, name: '自检' }, { id: 1, name: '互检' }, { id: 2, name: '专检' }],
+
+      beDeptList: false,
     };
   },
   computed: {},
   watch: {},
-  created() { },
+  created() { 
+    let beDeptList = JSON.parse(localStorage.getItem('userInfo')).beDeptList || []
+    if(beDeptList && beDeptList.length > 0) {
+      this.beDeptList = false
+    } else {
+      this.beDeptList = true
+    }
+   },
   mounted() {
     console.log(this.$route.params)
     if(this.$route.params.item) {

+ 10 - 10
fhKeeper/formulahousekeeper/timesheet-workshop/config/index.js

@@ -4,17 +4,17 @@ var path = require('path')
 //var ip = '47.101.180.183'
 // var ip = '47.100.37.243'
 // var ip = '192.168.10.2'
-var ip = '192.168.2.12' 
+// var ip = '192.168.2.12' 
 
-// var os = require('os'), ip = '', ifaces = os.networkInterfaces() // 获取本机ip
-// for (var i in ifaces) {
-//     for (var j in ifaces[i]) {
-//         var val = ifaces[i][j]
-//         if (val.family === 'IPv4' && val.address !== '127.0.0.1') {
-//             ip = val.address
-//         }
-//     }
-// }
+var os = require('os'), ip = '', ifaces = os.networkInterfaces() // 获取本机ip
+for (var i in ifaces) {
+    for (var j in ifaces[i]) {
+        var val = ifaces[i][j]
+        if (val.family === 'IPv4' && val.address !== '127.0.0.1') {
+            ip = val.address
+        }
+    }
+}
 // 1196735749
 module.exports = {
   build: {

+ 72 - 27
fhKeeper/formulahousekeeper/timesheet-workshop/src/views/product/list.vue

@@ -2,10 +2,9 @@
     <section>
         <!--工具条-->
         <el-col :span="24" class="toolbar" style="padding-bottom: 0px;">
+
             <el-form :inline="true">
-                <el-form-item >
-                    <span style="font-size:16px;color:#606266">{{ titleName }}</span>
-                </el-form-item>
+                <h1>{{ titleName }}</h1>
                 <el-form-item label="产品名称">
                     <el-input v-model="name" placeholder="请输入" clearable="true" size="small">
                     </el-input>
@@ -15,7 +14,7 @@
                     </el-input>
                 </el-form-item>
                 <el-form-item>
-                    <el-button @click="getList" size="small">查</el-button>
+                    <el-button @click="getList" size="small">查</el-button>
                 </el-form-item>
                 <!--操作按钮-->
                 <el-form-item style="float:right;">
@@ -50,7 +49,7 @@
                     <el-form label-position="left" inline class="demo-table-expand">
                         <el-form-item label="派工单">
                             <span>版本号:</span>
-                            <el-select v-model="procedureVersion" placeholder="请选择版本号"
+                            <el-select v-model="props.row.tableProdProcedure.version" placeholder="请选择版本号"
                                 @change="changeProcedureVersion(props.row)">
                                 <el-option v-for="item in props.row.tableProdProcedure.versions" :key="item" :label="item"
                                     :value="item">
@@ -61,9 +60,9 @@
                             <el-table :data="props.row.tableProdProcedure.procedureList" border style="width: 100%">
                                 <el-table-column prop="name" label="工序名称" width="180">
                                 </el-table-column>
-                                <el-table-column prop="unitPrice" label="单件工时" width="180">
+                                <el-table-column prop="workingTime" label="单件工时" width="180">
                                 </el-table-column>
-                                <el-table-column prop="workingTime" label="单件工价" width="180">
+                                <el-table-column prop="unitPrice" label="单件工价" width="180">
                                 </el-table-column>
                                 <el-table-column label="质检类型" width="180">
                                     <template slot-scope="scope">
@@ -238,19 +237,19 @@
 
                 <el-input placeholder="请输入工序版本号" v-model="procedureVersion" clearable maxlength="50" class="input-pM"></el-input>
                 <el-table :data="procedureLit" style="width: 100%">
-                    <el-table-column prop="name" label="工序名称" clearable maxlength="30" width="180">
+                    <el-table-column prop="name" label="工序名称"  width="180">
                         <template slot-scope="scope">
-                            <el-input v-model="scope.row.name" placeholder="请输入"></el-input>
+                            <el-input v-model="scope.row.name" clearable placeholder="请输入"  maxlength="30"></el-input>
                         </template>
                     </el-table-column>
                     <el-table-column prop="workingTime" label="单件工时"  width="180">
                         <template slot-scope="scope">
-                            <el-input v-model="scope.row.unitPrice" clearable maxlength="11" placeholder="请输入"></el-input>
+                            <el-input v-model="scope.row.workingTime"   clearable maxlength="11" placeholder="请输入"></el-input>
                         </template>
                     </el-table-column>
                     <el-table-column prop="unitPrice" label="单件工价"  width="180">
                         <template slot-scope="scope">
-                            <el-input v-model="scope.row.workingTime" clearable maxlength="9"  placeholder="请输入"></el-input>
+                            <el-input v-model="scope.row.unitPrice"   clearable maxlength="9"  placeholder="请输入"></el-input>
                         </template>
                     </el-table-column>
                     <el-table-column label="质检类型" width="180">
@@ -326,6 +325,8 @@
 
                 <el-button @click.native="deletePro(1, addForm)" v-if="addForm.id" style="float:left">{{ $t('btn.delete')
                 }}</el-button>
+                <el-button v-if="prodEditActive == 1"   @click="backStep()"
+                        :loading="addLoading">上一步</el-button>
                 <el-button @click.native="addFormVisible = false">{{ $t('btn.cancel') }}</el-button>
                 <el-button v-if="prodEditActive == 0" type="primary" @click="submitInsert(0)"
                     :loading="addLoading">保存</el-button>
@@ -386,11 +387,11 @@
             </div>
             <span slot="footer" class="dialog-footer">
                 <el-button @click="isganttshow = false">取 消</el-button>
-                <el-button type="primary" @click="isganttshowCa = true; title = '新增'">新增</el-button>
+                <el-button type="primary" @click="isganttshowCa = true; title = '新增产品'; category={}">新增</el-button>
             </span>
         </el-dialog>
         <!-- 复制产品 -->
-        <el-dialog :title="title" :visible.sync="copyVisible" width="30%">
+        <el-dialog title="产品复制" :visible.sync="copyVisible" width="30%">
             <div>
                 <el-form ref="form" :model="category" label-width="80px">
                     <el-form-item label="产品名称">
@@ -1142,13 +1143,13 @@ export default {
                         break
                     }
                 }
-                console.log(index, '索引')
+                console.log(index, '索引', row.id,'id')
+
                 this.http.post("/prod-procedure/getVersions", { productId: row.id },
                     res => {
                         this.list[index].tableProdProcedure.versions = res.data
-                        this.procedureVersion = res.data[res.data.length - 1]
-                        this.getProdProcedureVersion(row.id, index)
-
+                        this.list[index].tableProdProcedure.version = res.data[res.data.length - 1]
+                        this.getProdProcedureVersion(row.id, this.list[index].tableProdProcedure.version, index)
 
                     })
                 /*   this.http.post("/prod-material/getVersions", { productId: row.id },
@@ -1160,9 +1161,9 @@ export default {
                       }) */
             }
         },
-        getProdProcedureVersion(id, index) {
-            if (this.procedureVersion != null && this.procedureVersion != '') {
-                this.http.post("/prod-procedure/getInfo", { version: this.procedureVersion, productId: id },
+        getProdProcedureVersion(id,version, index) {
+            if (version != null && version != '') {
+                this.http.post("/prod-procedure/getInfo", { version: version, productId: id },
                     res => {
                         // this.list[index].tableProdProcedure.procedureList = res.data;
                         // this.$forceUpdate();
@@ -1183,22 +1184,48 @@ export default {
 
         },
         submitSequence(addSequence) {
+
             let flag=true
             
-
-            if (version === '') {
+            if (this.procedureVersion === null|| this.procedureVersion==='') {
                 flag=false
             }
 
-            for (let i = 0; i < this.procedureLit.length; i++) {
-                console.log(this.procedureLit[i].name === '')
-                if (this.procedureLit[i].name === '' || this.procedureLit[i].unitPrice === '' || this.procedureLit[i].workingTime === '' || this.procedureLit[i].checkType === '') {
-                    flag= false
-                    break
+           
+            if ((this.procedureVersion != null || this.procedureVersion != '') && (this.procedureLit.length == 0 || this.procedureLit.length == null)) {
+                flag = false
+            }
+            //数字
+            const reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/
+            const r = /^\+?[1-9][0-9]*$/; // 正整数
+            if(flag){
+                 for (let i = 0; i < this.procedureLit.length; i++) {
+                    console.log(this.procedureLit[i].name === '')
+                    if (this.procedureLit[i].name === '' || this.procedureLit[i].unitPrice === '' || this.procedureLit[i].workingTime === '' || this.procedureLit[i].checkType === '') {
+                        flag = false
+                        break
+                    }
+
+                     if(!reg.test(this.procedureLit[i].unitPrice)|| !r.test(this.procedureLit[i].workingTime)){
+                        this.$message({
+                            message: "请输入正确的单件工时为和工价格式,工时为正整数,工价可保留两位小数",
+                            type: "error"
+                        });
+
+                        return 
+                    } 
+
+                  
                 }
+
+            }
+
+            if ((this.procedureVersion == null || this.procedureVersion === '')  && (this.procedureLit.length == 0 || this.procedureLit.length == null)) {
+                flag = true
             }
            
             if(flag){
+
                  this.addLoading = true;
                 let procedureString = JSON.stringify(this.procedureLit);
                 this.http.post('/prod-procedure/changeProdProcedure', {
@@ -1251,6 +1278,23 @@ export default {
 
            
 
+        },
+        //工序返回上一步
+        backStep(){
+            this.prodEditActive =0
+            this.http.post('/product/get', { id: this.productId },
+                res => {
+                    if (res.code == "ok") {
+                        this.addForm = res.data;
+                    }
+                });
+
+             this.addFormVisible = true;
+            if (this.user.company.packageEngineering == 1) {
+                if (this.professionList.length == 0) {
+                    this.getProfessionList();
+                }
+            }    
         },
 
         //删除工序
@@ -3268,6 +3312,7 @@ export default {
                                         type: "success"
                                     });
                                     if (addSequence) {
+                                        this.title="派工单"
                                         //进入工序录入
                                         this.http.post('/prod-procedure/getProdProcedureList', { productId: this.productId },
                                             res => {