fujitsu.jsp 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312
  1. <!DOCTYPE HTML>
  2. <%@ page language="java" pageEncoding="UTF-8" import="java.util.*" contentType="text/html; charset=UTF-8"%>
  3. <%@include file="/jsp/framework/head.jsp"%>
  4. <%@ taglib uri="/WEB-INF/hnisi.tld" prefix="hnisi"%>
  5. <%
  6. String sdzlid = (DTOUtil.getValue("sdzlid") == ""? "" : DTOUtil.getValue("sdzlid"));
  7. String sdjlid = (DTOUtil.getValue("sdjlid") == ""? "" : DTOUtil.getValue("sdjlid"));
  8. Map dataMap = new HashMap();
  9. dataMap = (Map) DTOUtil.getData().get("dataMap") == null?null:(Map) DTOUtil.getData().get("dataMap");
  10. final String putObjectUrl = ConfUtil.getParam("GGFW_WJFW_UPLOAD_URL");
  11. final String usertoken=(String)request.getSession().getAttribute("usertoken");
  12. %>
  13. <html>
  14. <style>
  15. html,body{
  16. width: 100%;
  17. height: 100%;
  18. margin: 0;
  19. padding: 0;
  20. }
  21. .div-default:active, .div-default:hover {
  22. background-color:#FFFACD;
  23. }
  24. .zllb-div1{
  25. padding: 10px 5px 10px 5px;
  26. background: #fbfbfb;
  27. border-top: 1px solid #efefef;
  28. border-bottom: 1px solid #efefef;
  29. }
  30. .zllb-div2{
  31. padding: 10px 5px 10px 5px;
  32. background: #fff;
  33. border-top: 1px solid #fff;
  34. border-bottom: 1px solid #fff;
  35. }
  36. .div-on {
  37. background-color:#FFFACD;
  38. border-color: #8c8c8c;
  39. color: #8c8c8c;
  40. }
  41. .imgcard {
  42. float: left;
  43. position: relative;
  44. border: 1px solid #ccc;
  45. padding-bottom: 5px;
  46. float: left;
  47. margin-right: 10px;
  48. margin-bottom: 10px;
  49. }
  50. .imgcard .title {
  51. text-align: center;
  52. }
  53. </style>
  54. <head lang="zh-cn">
  55. <meta charset="utf-8">
  56. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  57. <meta name="viewport" content="width=device-width,initial-scale=1">
  58. <title>扫描仪</title>
  59. </head>
  60. <body>
  61. <div id="root" style="width: 100%;height: 100%;padding:0 0 5px 0;">
  62. <div class="row" style="height:100%;margin:10px 0">
  63. <!-- 第一块资料类别 -->
  64. <div class="col col-2">
  65. <div class="section" style="width: 100%;height: 100%;">
  66. <div class="section-title">
  67. <img class="title-icon" src="${ctx}/themes/zjrs/images/title-icon.png" />
  68. <span class="section-title-text">资料类别</span>
  69. </div>
  70. <div id="zllb" class="bg_set" style="overflow:auto;">
  71. <%if(dataMap != null){
  72. List<Map<String, Object>> sdzlList = (List) dataMap.get("sdzlList");
  73. if(sdzlList != null){
  74. for(int i=0;i<sdzlList.size();i++){
  75. %>
  76. <div id="zllbdiv<%=sdzlList.get(i).get("SDZLID") %>" <%if(i%2 == 0){ %> class="zllb-div1 div-default" <%}else{ %> class="zllb-div2 div-default" <%} %> onclick="setSdzlid('<%=sdzlList.get(i).get("SDZLID")%>')">
  77. <%
  78. if("1".equals(sdzlList.get(i).get("SFBSBZ"))){
  79. %>
  80. <a style="color:red;">*</a>
  81. <%
  82. }
  83. %>
  84. <%=(String) sdzlList.get(i).get("ZLLBMC")%>(<a id="zllb<%=sdzlList.get(i).get("SDZLID") %>" style="color:blue;"><%=sdzlList.get(i).get("CNT")%></a>)
  85. </div>
  86. <%
  87. }
  88. }
  89. } %>
  90. </div>
  91. </div>
  92. </div>
  93. <div class="col col-10">
  94. <div class="section" style="width: 100%;height: 100%;">
  95. <div class="section-title">
  96. <img class="title-icon" src="${ctx}/themes/zjrs/images/title-icon.png" />
  97. <span class="section-title-text">扫描结果</span>
  98. <span class="section-title-extra-btn">
  99. <a style="color:red;">扫描完成确认无误后,请务必点击【保存】;若提示"数据请求错误",请减少文件数量重新扫描。</a>
  100. <a class="btn btn-primary" onclick="doScan()">扫描</a>&nbsp;&nbsp;&nbsp;&nbsp;
  101. <a class="btn btn-primary" onclick="doSave()">保存</a>&nbsp;&nbsp;&nbsp;&nbsp;
  102. <a class="btn btn-ghost" onclick="doClear()">清空</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  103. <a class="btn btn-primary" onclick="goBack()">返回</a>
  104. </span>
  105. </div>
  106. <div id="image_list_div" class="bg_set" style="overflow:auto;">
  107. </div>
  108. </div>
  109. </div>
  110. </div>
  111. </div>
  112. </body>
  113. <script src="/web/jsp/shoudan/web/mainview/js/socket.io.js"></script>
  114. <script type="text/javascript">
  115. var GVAR_FUJITSU= {
  116. "sdzlid":"<%=sdzlid%>",
  117. "sdjlid":"<%=sdjlid%>",
  118. "camidx":"0"
  119. };
  120. //如果GVAR已经定义了则追加
  121. if(GVAR){
  122. GVAR = $.extend(GVAR, GVAR_FUJITSU);
  123. }else{
  124. var GVAR = GVAR_FUJITSU;
  125. }
  126. var imgObj = {};//拍摄照片结果
  127. var imgCnt = 0;//拍摄照片计数
  128. var imgSaveCnt = 0;//保存照片计数
  129. //初始化界面
  130. $(function(){
  131. //计算高度
  132. var distance = document.documentElement.clientHeight;
  133. var divHeight = distance-62;
  134. document.getElementById("zllb").style.height= divHeight + "px";//左侧div
  135. document.getElementById("image_list_div").style.height= divHeight + "px";//右侧div
  136. var sdzlid = "<%=sdzlid%>";
  137. if(sdzlid.length > 0){
  138. //默认选中传参sdzl
  139. setSdzlid(sdzlid);
  140. }
  141. });
  142. //切换收单资料id
  143. function setSdzlid(sdzlid){
  144. //div增加选中样式
  145. var div = document.getElementById("zllbdiv"+sdzlid);
  146. div.className += ' div-on';
  147. if(GVAR.sdzlid != sdzlid && GVAR.sdzlid != ""){
  148. var divdel = document.getElementById("zllbdiv"+GVAR.sdzlid);
  149. var classVal = divdel.getAttribute("class");
  150. classVal = classVal.replace(" div-on","");
  151. divdel.setAttribute("class",classVal);
  152. }
  153. GVAR.sdzlid = sdzlid;
  154. }
  155. var ws;
  156. function initWS(){
  157. ws = new WebSocket("ws://127.0.0.1:11345/Laputa");
  158. ws.onopen = function() {
  159. console.log("Openened connection to websocket");
  160. };
  161. ws.onclose = function() {
  162. console.log("Close connection to websocket");
  163. // 断线重连
  164. initWS();
  165. };
  166. ws.onmessage = function(e) {
  167. var obj = JSON.parse(e.data);
  168. if (obj.InterFace == "GetDevice") {
  169. alert(e.data);
  170. if (obj.DeviceNames == undefined) {
  171. alert("未找到任何设备");
  172. }
  173. }else if(obj.InterFace=="GetFullImage"){
  174. alert("未使用该接口");
  175. }else if (obj.InterFace == "Scan") {
  176. if (obj.RstCode == "0001") {
  177. alert("扫描失败" + obj.RstMesg);
  178. }
  179. }else if(obj.InterFace == "Transmission_LocalToWeb") {
  180. //保存数据到图片集
  181. imgCnt++;
  182. imgSaveCnt++;
  183. var imgKey = "img" + imgCnt;
  184. imgObj[imgKey] = obj.Base64;
  185. var html = '<div class="imgcard" id="'+obj.FileId+'">' +
  186. '<img src="data:image/jpeg;base64,' + obj.Base64 +
  187. '" style="width:200px;height: 150px;" />' +
  188. '<div class="title">'+obj.FileName+'</div>' +
  189. "</div>";
  190. $("#image_list_div").append(html);
  191. }else if (obj.InterFace == "GetVersion") {
  192. alert(obj.version);
  193. }else{
  194. alert(e.data);
  195. }
  196. };
  197. }
  198. initWS();
  199. //扫描
  200. function doScan(){
  201. //构建一个Json对象
  202. var scanObj = {
  203. InterFace: "Scan",
  204. DeviceName: "AutoScanSource",
  205. DoubleSide: 0,//设置扫描页,0:双面扫描,1:正面扫描 2:反面扫描
  206. DPI: 200,//设置扫描分辨率, 100,200,300等
  207. ShowUI: 0,
  208. ShowProcess: 1,//设置扫描时是否显示进度提示,0:关闭,1:开启
  209. Rote: 360,//设置扫描文件旋转,0:不旋转,90:旋转90度,180:旋转180度,270:旋转270度,360:自动旋转
  210. Color: 3,//设置扫描文件色彩,1:黑白,2:灰度,3:彩色
  211. MultipleFeeding: 0,//设置开启重张检测,0:关闭,1:低,2:中 3:高
  212. MultipleFeedingAction: 0,//设置开启重张检测后动作,0:停止,1:停止生成图片,2:停止留介质再扫描仪中 3:继续
  213. BlankImageDeletion:0,//设置空白页检测,0:关闭,1:开启
  214. ContentAmount: 5,//设置空白页检测百分比 1-100(有效数据占全幅的百分比)
  215. EnableLocalSettings: 0,//设置生效,0:调用页面设置属性进行扫描,1:使用本地设置进行扫描
  216. Thumbnail:{//设置是否启用缩率图,以及缩率图的宽高
  217. Enable:0,//设置是否启用缩率图; 0:关闭 1:开启
  218. Height:150,//设置缩率图高度
  219. Width:200},//设置缩率图宽度
  220. DeleteFile:1,//删除本地文件;0:关闭 1:开启
  221. Prefix: "img"
  222. };
  223. ws.send(JSON.stringify(scanObj));
  224. }
  225. //返回
  226. function goBack(){
  227. var title=encodeURIComponent('收单页面');
  228. window.location.href = "${ctx}/shoudan/web/mainview/mainview.do?title="+title+"&sdzlid="+ GVAR.sdzlid +"&sdjlid="+GVAR.sdjlid;
  229. }
  230. //清空
  231. function doClear(){
  232. document.getElementById("image_list_div").innerHTML = "";
  233. imgObj = {};//拍摄照片结果
  234. imgCnt = 0;//拍摄照片计数
  235. imgSaveCnt = 0;//保存照片计数
  236. }
  237. //保存
  238. function doSave(){
  239. if(imgSaveCnt > 0){
  240. var url = "<%=putObjectUrl%>";
  241. var token = "<%=usertoken%>";
  242. if(CFW.oValid.fnIsNull(token)){
  243. alert("系统登录超时,上传失败,请重新登录后上传!");
  244. return;
  245. }
  246. var tyccids = putFiles(url,token);
  247. var mParams={
  248. sdzlid:GVAR.sdzlid,
  249. tyccids:tyccids
  250. };
  251. CFW.oAJax.doService("mainviewService.saveSdzlmx", mParams, '正在上传资料信息...',
  252. function(mData) {
  253. if(mData[0].FLAG=="1"){
  254. alert("保存成功!");
  255. //更新资料类别总数
  256. var cnt = document.getElementById("zllb"+GVAR.sdzlid).innerHTML;
  257. var zlmxCnt = parseInt(cnt) + imgSaveCnt;
  258. document.getElementById("zllb"+GVAR.sdzlid).innerHTML = zlmxCnt;
  259. doClear();
  260. }else{
  261. alert("保存失败!");
  262. }
  263. }
  264. );
  265. }else{
  266. alert("请扫描需要保存的文件!");
  267. }
  268. }
  269. //文件上传,返回统一存储ID
  270. function putFiles(url,token){
  271. var tyccids = "";
  272. for(var i=0;i<imgSaveCnt;i++){
  273. var formdata = new FormData();
  274. var imgindex=i+1;
  275. const blob = base64ToBlob("data:image/jpeg;base64,"+imgObj["img"+imgindex]);
  276. const file = blobToFile(blob, "img"+imgindex+".jpg");
  277. formdata.append('file', file, "img"+imgindex+".jpg");
  278. formdata.append('business', 'business1');
  279. var tyccid = putObject(url,token,formdata);
  280. tyccids +=tyccid+",";
  281. }
  282. return tyccids;
  283. }
  284. </script>
  285. <script src="${ctx}/jsp/shoudan/web/mainview/js/put-object-to-fileserver.js"></script>
  286. </html>