ly 1 周之前
父节点
当前提交
a3ae4375c1

+ 15 - 6
master/src/main/java/com/ruoyi/project/sems/controller/TMeasureThicknessController.java

@@ -717,15 +717,24 @@ public class TMeasureThicknessController extends BaseController {
      * @throws IllegalArgumentException 如果尺寸未在对照表中定义
      */
     public static double convertInchStringToMillimeters(String input) throws ParseException, IllegalArgumentException {
-        // 1. 移除单位符号和空格
-        String sanitized = input.trim()
-                .replaceAll("[\"iInN]$", "")  // 移除末尾的 "、in、inch
-                .replaceAll("\\s+", "");      // 移除中间空格
+        // 1. 去除空格并转为小写
+        String sanitized = input.trim().toLowerCase().replaceAll("\\s+", "");
 
-        // 2. 解析为 double 类型的英寸值
+        // 2. 如果是以 mm 结尾的,直接取前面的数值部分返回
+        if (sanitized.endsWith("mm")) {
+            String numberPart = sanitized.substring(0, sanitized.length() - 2);
+            return parseStringToDouble(numberPart);
+        }
+
+        // 3. 处理英寸单位(移除 "、in、inch 等)
+        sanitized = sanitized.replaceAll("inch$", "")
+                .replaceAll("in$", "")
+                .replaceAll("\"$", "");
+
+        // 4. 解析为 double 类型的英寸值
         double inches = parseStringToDouble(sanitized);
 
-        // 3. 查找对照表并返回毫米值
+        // 5. 查找对照表并返回毫米值
         if (INCH_TO_MM_MAP.containsKey(inches)) {
             return INCH_TO_MM_MAP.get(inches);
         } else {

+ 6 - 0
master/src/main/java/com/ruoyi/project/system/controller/SysLoginController.java

@@ -22,6 +22,7 @@ import com.ruoyi.framework.web.controller.BaseController;
 import com.ruoyi.project.system.service.ISysUserService;
 import io.jsonwebtoken.*;
 import lombok.extern.flogger.Flogger;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.ParameterizedTypeReference;
 import org.springframework.data.redis.core.RedisTemplate;
@@ -103,6 +104,11 @@ public class SysLoginController extends BaseController {
         // 生成6位随机验证码
         String code = String.valueOf(new Random().nextInt(899999) + 100000);
 
+        //判断是否有手机号
+        if(StringUtils.isEmpty(sysUser.getPhonenumber())) {
+            return AjaxResult.error("该用户未绑定手机号");
+        }
+
         // 将验证码存入 Redis,有效期5分钟
         redisTemplate.opsForValue().set(sysUser.getPhonenumber(), code, 5, TimeUnit.MINUTES);
 

二进制
master/src/main/resources/static/word/sems/measure/cehou.docx


+ 1 - 1
ui/src/views/sems/thickness/home/dashboard/botPie.vue

@@ -129,7 +129,7 @@ export default {
             }
           }
         },title: {
-          text: '管道预估剩余寿命分成', // 标题内容
+          text: '管道预估剩余寿命', // 标题内容
           top: '5%',
           left:'3%',    // 距离顶部5%
           textStyle: {     // 文字样式

+ 1 - 1
ui/src/views/sems/thickness/home/dashboard/botPieRight.vue

@@ -137,7 +137,7 @@ export default {
             }
           }))
         },title: {
-          text: '设备预估剩余寿命分成', // 标题内容
+          text: '设备预估剩余寿命', // 标题内容
           top: '5%',
           left:'3%',    // 距离顶部5%
           textStyle: {     // 文字样式

+ 1 - 1
ui/src/views/sems/thickness/home/dashboard/midLeft.vue

@@ -88,7 +88,7 @@ export default {
             color: '#fff'
           }
         }, title: {
-          text: '达到预估寿命极限的管道统计', // 标题内容  // 水平居中
+          text: '达到预估寿命极限的管道', // 标题内容  // 水平居中
           top: '7%',
           left: '3%',   // 距离顶部5%
           textStyle: {     // 文字样式

+ 1 - 1
ui/src/views/sems/thickness/home/dashboard/midRight.vue

@@ -85,7 +85,7 @@ export default {
           bottom: 60
         },
         title: {
-          text: '达到预估寿命极限的设备统计', // 标题内容  // 水平居中
+          text: '达到预估寿命极限的设备', // 标题内容  // 水平居中
           top: '7%',
           left: '3%',   // 距离顶部5%
           textStyle: {     // 文字样式

+ 0 - 3
ui/src/views/sems/thickness/stress/index.vue

@@ -70,7 +70,6 @@
     <el-table v-loading="loading" :data="stressList" @selection-change="handleSelectionChange" :height="clientHeight" border>
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="材料名称" align="center" prop="name" width="150" />
-      <el-table-column label="是否不锈钢" align="center" prop="isSteel" :show-overflow-tooltip="true"/>
       <el-table-column label="是否不锈钢" align="center" prop="isSteel" :show-overflow-tooltip="true">
         <template slot-scope="scope">
           {{ scope.row.isSteel == 1 ? '是' : '否' }}
@@ -99,13 +98,11 @@
       <el-table-column label="550" align="center" prop="c550" :show-overflow-tooltip="true"/>
       <el-table-column label="575" align="center" prop="c575" :show-overflow-tooltip="true"/>
       <el-table-column label="600" align="center" prop="c600" :show-overflow-tooltip="true"/>
-      <el-table-column label="创建人" align="center" prop="createrCode" :show-overflow-tooltip="true"/>
       <el-table-column label="创建时间" align="center" prop="createdate" width="100">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.createdate, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="修改人" align="center" prop="updaterCode" :show-overflow-tooltip="true"/>
       <el-table-column label="修改时间" align="center" prop="updatedate" width="100">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.updatedate, '{y}-{m}-{d}') }}</span>

+ 86 - 36
ui/src/views/sems/thickness/thicknessData/index.vue

@@ -202,7 +202,7 @@
 <!--      <el-table-column label="腐蚀类型" align="center" prop="corrosionType" :show-overflow-tooltip="true"/>-->
 <!--      <el-table-column label="腐蚀照片" align="center" prop="photo" :show-overflow-tooltip="true"/>-->
 <!--      <el-table-column label="原因分析" align="center" prop="analysis" :show-overflow-tooltip="true"/>-->
-      <el-table-column :label="$t('公称壁厚(mm)')" align="center" prop="nominalTickness" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('名义壁厚(mm)')" align="center" prop="nominalTickness" :show-overflow-tooltip="true"/>
       <el-table-column :label="$t('最小允许壁厚(mm)')" align="center" prop="thicknessMin" :show-overflow-tooltip="true"/>
       <el-table-column :label="$t('短期腐蚀速率(mm/year)')" align="center" prop="stCorrosion" :show-overflow-tooltip="true"/>
       <el-table-column :label="$t('长期腐蚀速率(mm/year)')" align="center" prop="ltCorrosion" :show-overflow-tooltip="true"/>
@@ -410,6 +410,23 @@
             >{{dict.dictLabel}}</el-radio>
           </el-radio-group>
         </el-form-item>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item :label="$t('名义壁厚(mm)')" prop="nominalTickness">
+              <el-input v-model="form.nominalTickness" :placeholder="$t('请输入') + $t('名义壁厚(mm)')" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item :label="$t('最小允许壁厚(mm)')" label-width="150px" prop="thicknessMin">
+              <el-input v-model="form.thicknessMin" :placeholder="$t('请输入') + $t('最小允许壁厚(mm)')" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item :label="$t('检测编号')" prop="measureNo">
+              <el-input v-model="form.measureNo" :placeholder="$t('请输入') + $t('检测编号')" />
+            </el-form-item>
+          </el-col>
+        </el-row>
         <el-form-item :label="$t('测厚位置')"  prop="checkUrl">
             <el-upload
               ref="analysis"
@@ -481,9 +498,6 @@
         </el-form-item>
         <el-row>
           <el-col :span="8">
-        <el-form-item :label="$t('公称壁厚(mm)')" prop="nominalTickness">
-          <el-input v-model="form.nominalTickness" :placeholder="$t('请输入') + $t('名义壁厚(mm)')" />
-        </el-form-item>
             <el-form-item :label="$t('原因分析附件')" prop="analysisUrl">
               <el-upload
                 ref="analysis"
@@ -504,15 +518,8 @@
               </el-upload>
             </el-form-item>
           </el-col>
-          <el-col :span="16">
-        <el-form-item :label="$t('最小允许壁厚(mm)')" label-width="150px" prop="thicknessMin">
-          <el-input v-model="form.thicknessMin" :placeholder="$t('请输入') + $t('最小允许壁厚(mm)')" />
-        </el-form-item>
-          </el-col>
         </el-row>
-        <el-form-item :label="$t('检测编号')" prop="measureNo">
-          <el-input v-model="form.measureNo" :placeholder="$t('请输入') + $t('检测编号')" />
-        </el-form-item>
+
 
       <el-row>
         <el-col :span="8">
@@ -738,7 +745,7 @@
         </el-descriptions-item>
         <el-descriptions-item span="1">
           <template slot="label">
-            {{ $t('公称壁厚(mm)') }}
+            {{ $t('名义壁厚(mm)') }}
           </template>
           {{ dataForm.nominalTickness }}
         </el-descriptions-item>
@@ -943,6 +950,7 @@
         <iframe :src="pdf.pdfUrl" frameborder="0" width="100%" height="700px"></iframe>
       </div>
     </el-dialog>
+
     <record v-if="recordVisible" ref="record" @refreshDataList="getList" :showFlag="showFlag" @closeChildDialog="closeChildDialog"></record>
   </div>
 </template>
@@ -989,6 +997,8 @@ export default {
       // 部门树选项
       deptOptions: undefined,
       clientHeight:300,
+      remarksDialogVisible: false, // 控制弹窗显示
+
       // 是否显示弹出层
       open: false,
       visible: false,
@@ -1192,7 +1202,7 @@ export default {
           { required: true, message: "原因分析不能为空", trigger: "blur" }
         ],*/
         nominalTickness: [
-          { required: true, message: this.$t('公称壁厚(mm)')+this.$t('不能为空'), trigger: "blur" }
+          { required: true, message: this.$t('名义壁厚(mm)')+this.$t('不能为空'), trigger: "blur" }
         ],
         // thicknessMin: [
         //   { required: true, message: this.$t('最小允许壁厚(mm)')+this.$t('不能为空'), trigger: "blur" }
@@ -1730,32 +1740,61 @@ export default {
       a.setAttribute('href', process.env.VUE_APP_BASE_API + url)
       a.click()
     },
-    //备注
-    remarksHeader(h, {column, $index}) {
-      return [
-        column.label,
-        h(
-          "el-tooltip",
-          {
+
+      remarksHeader(h, { column }) {
+        const popoverId = "remarksPopover";
+
+        return [
+          column.label,
+          h('el-popover', {
             props: {
-              content: (function () {
-                return '管道:弯头-W,直管-Z,大小头-Y,三通-S; 设备:管箱,筒体,封头,换热管,罐壁,罐顶,罐底\n' +
-                  '\n'
-              })(),
-              placement: "top"
+              placement: 'bottom',
+              width: 400,
+              trigger: 'hover',
+              popperClass: 'custom-tooltip-popper'
+            },
+            scopedSlots: {
+              default: () => [
+                h('table', { class: 'custom-tooltip-table' }, [
+                  h('thead', [
+                    h('tr', [
+                      h('th', '分类'),
+                      h('th', '部件'),
+                      h('th', '代号')
+                    ])
+                  ]),
+                  h('tbody', [
+                    h('tr', [h('td', { attrs: { rowspan: 4 } }, '管道'), h('td', '弯头'), h('td', 'W')]),
+                    h('tr', [h('td', '直管'), h('td', 'Z')]),
+                    h('tr', [h('td', '大小头'), h('td', 'Y')]),
+                    h('tr', [h('td', '三通'), h('td', 'S')]),
+                    h('tr', [h('td', { attrs: { rowspan: 6 } }, '设备'), h('td', '管箱'), h('td', '')]),
+                    h('tr', [h('td', '筒体'), h('td', '')]),
+                    h('tr', [h('td', '封头'), h('td', '')]),
+                    h('tr', [h('td', '换热管'), h('td', '')]),
+                    h('tr', [h('td', '罐壁'), h('td', '')]),
+                    h('tr', [h('td', '罐顶'), h('td', '')])
+                  ])
+                ])
+              ]
             }
-          },
-          [
-            h("span", {
+          }, [
+            h('span', {
+              slot: 'reference',
               class: {
-                "el-icon-question": true,
-                "report-headerTips": true
-              }
+                'el-icon-question': true,
+                'report-headerTips': true
+              },
+              style: 'margin-left: 4px; cursor: pointer;'
             })
-          ]
-        )
-      ]
-    },
+          ])
+        ];
+      }
+
+
+
+
+
   }
 };
 </script>
@@ -1763,4 +1802,15 @@ export default {
 .otherMethod {
   width: 40%;
 }
+.custom-tooltip-table {
+  border-collapse: collapse;
+  width: 100%;
+  font-size: 14px;
+  text-align: center;
+}
+.custom-tooltip-table th,
+.custom-tooltip-table td {
+  border: 1px solid #ccc;
+  padding: 6px 10px;
+}
 </style>