云mes_2020年Q1汇总
<h3>一.菜单改造</h3>
<pre><code>通过执行/nisbos/docs/sql/变更--sys_menu新增字段menu_params.sql脚本,给sys_menu表新增一列menu_params用来存储菜单的参数
menu_params的存储格式:
{
type":""
}
当type的值为excelData表示通过dataId打开excel导入数据
当type的值为fullScreen表示全屏打开
示例:
{"type":"fullScreen"}
{"type":"excelData","dataId":1}</code></pre>
<h3>二.使用easy poi做excel上传</h3>
<pre><code>*修复easypoi bug:
使用ImportUtil导入含有日期格式单元格的excel文件时:若指定的参数pojoClass为Map,取得的值为空
修复文件路径:
/mes-web/src/main/java/cn/afterturn/easypoi/excel/imports/CellValueService.java</code></pre>
<h3>三.导入excel列头后,动态生成菜单</h3>
<pre><code>提供接口:
/mes-web/src/main/java/com/nisbos/mes/system/service/impl/MenuServiceImpl.java
中的 saveExcelMenu 方法</code></pre>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/6a87c18bff0682079e521a05a55fd11f?showdoc=.jpg" alt="" /></p>
<pre><code>可以看到可以通过 MenuConstant 常量类的 EXCEL_MENU_PARENT_ID 常量来设置生成菜单的父目录
新生成的菜单设置了参数值,详见:一.菜单改造 </code></pre>
<h3>四.动态生成菜单数据的查询,excel列对应的数据导入</h3>
<pre><code>通过 三.导入excel列头后,动态生成菜单 步骤动态生成菜单后,当点击生成菜单的时候,需要查询之前导入的excel列头数据:</code></pre>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/1758dbbd5dfc067d003787136b476470?showdoc=.jpg" alt="" /></p>
<pre><code>可以看到该页面分为a,b,c,d4个模块,其中:
a:
为之前导入的excel列头,有 员工 ,员工姓名两列,数据为同步跳转传递过来的colList遍历出来,转为bootstrapTable展示列头需要的tile和field两个字段</code></pre>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/876091282b84276d2b3be3366c03cf61?showdoc=.jpg" alt="" /></p>
<pre><code> b:
同a,colList转为chosen插件需要的字符串,点击查询按钮调用reLoad函数:将需要查询的字段作为searchName,s查询值作为searchValue传到后台做查询,并刷新列表数据</code></pre>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/acb57822e578d023d50aea3562b1c2e8?showdoc=.jpg" alt="" /></p>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/8b284de4cbab5ceb736912aea8c9d61a?showdoc=.jpg" alt="" /></p>
<pre><code>c:
导入对应的列头数据使用com.nisbos.mes.mes.pro.impl.ProDataServiceImpl的saveByDatatmplId方法:
通过getFieldTypeClass获取字段类型的class,返回值如:Date.class
convertAndGetFieldValue是通过getFieldTypeClass返回的字段类型class,做字段的类型转换,如:
new SimpleDateFormat("yyyy-MM-dd").parse(field)
使用invoke反射调用方法来设置对应字段的值</code></pre>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/6a680fb85f2a57f2a4dae32329d6b7ac?showdoc=.jpg" alt="" /></p>
<pre><code>d:
根据b模块传来的将需要查询的字段作为searchName和searchValue查询mes_pro_datatmplcol表的数据</code></pre>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/9663f266942ed93c7a8616230a47972e?showdoc=.jpg" alt="" /></p>
<h5>五:其他</h5>
<pre><code>a.字典数据加入本地缓存(ehcache)
b.登录页面后,当前用户名的展示:</code></pre>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/91a8efa8d628984897f0b2dbe57e9b42?showdoc=.jpg" alt="" /></p>
<pre><code>c.云mes特定登录页面的权限,无序跳转,浏览器兼容问题的解决:</code></pre>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/e472c0437fa62ed2c8b6c97fa2dc6c41?showdoc=.jpg" alt="" /></p>
<pre><code>d.mes项目在windows平台的打包以及部署
e.下拉框树(input框+tree),富文本编辑器</code></pre>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/74f7c7c149f00a9308ebc941e8560291?showdoc=.jpg" alt="" />
<img src="https://www.showdoc.cc/server/api/common/visitfile/sign/e1514fc138e471a723c230ff2f87eb70?showdoc=.jpg" alt="" /></p>
<pre><code>f.excel导入需要校验,将校验结果用批注展示(easypoi无法完成此功能,使用的是原生的apache poi):</code></pre>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/a23b91a96a93aa1d641a9ab3136aab17?showdoc=.jpg" alt="" /></p>
<pre><code>g.菜单展示无序问题的排查</code></pre>