解决图片颜色模型是CMCY时缩放图片会出错的问题,引入第三方包解决
| | |
| | | */ |
| | | var hasDelGroup=false;//删除分组用到 |
| | | $(function(){ |
| | | $("body").append("<div id='deskTopWindowUP'></div>"); |
| | | $("body").append("<div id='deskTopWindowUP' style='overflow: hidden'></div>"); |
| | | $("#inputFormid").keydown(function(e){ |
| | | var flag = checkSession();//session失效后弹出登录框,flag为true时表示已经失效 |
| | | if(flag){ |
| | |
| | | <div region="north" border="false" style="padding-top:15px;padding-bottom:15px;text-align:center;background:#fff;"> |
| | | <span>您有太长时间没有操作了,请重新登录!</span> |
| | | </div> |
| | | <div region="center" border="false" style="text-align:center;padding-top:25px;background:#fff;border:1px solid #ccc;"> |
| | | <div region="center" border="false" style="overflow:hidden;text-align:center;padding-top:25px;background:#fff;border:1px solid #ccc;"> |
| | | |
| | | <%-- <form id="loginForm" method="post" action="/againLogin.do">--%> |
| | | <input type="hidden" id="dbid" name="dbid" value="<%= dataSourceEntity != null? dataSourceEntity.getDbId():"" %>"/> |
| | |
| | | //写入标题 |
| | | setCell(p.getTitle() + ":", ws, row, col == -1 ? 0 : col, null); |
| | | int rcol = col + 1; |
| | | String value = putRowC(wb, ws, row, panel.get(0), new String[]{p.getFild()}, rcol, exporttitles, false, picFileds, dbid, imageHostUrl, page.getFormid() + ""); //压一行到sheet |
| | | final Map<String, String> fileType = getFileType(dbid, panel, picFileds); |
| | | String value = putRowC(wb, ws, row, panel.get(0), new String[]{p.getFild()}, rcol, exporttitles, false, picFileds, dbid, imageHostUrl, page.getFormid() + "",fileType); //压一行到sheet |
| | | if (!"".equals(value)) sb.append(value).append("-"); |
| | | tempNum = row; |
| | | col = rcol + 1; |
| | |
| | | putRow(ws, rowNum, title);//压入标题 |
| | | rowNum += 1; |
| | | } |
| | | |
| | | Map<String, String> fileType = getFileType(dbid, datas, picFileds); |
| | | for (int i = 0; i < datas.size(); i++, rowNum++) {//写sheet |
| | | Map map = (Map) datas.get(i); |
| | | putRowC(wb, ws, rowNum, map, filed, 0, "", false, picFileds, dbid, imageHostUrl, page.getFormid() + ""); //压一行到sheet |
| | | |
| | | putRowC(wb, ws, rowNum, map, filed, 0, "", false, picFileds, dbid, imageHostUrl, page.getFormid() + "",fileType); //压一行到sheet |
| | | //处理第三表 |
| | | try { |
| | | if (page.getGrid3Data() != null && page.getGrid3Data().size() > 0) { |
| | |
| | | }).collect(Collectors.toList()); |
| | | |
| | | for (Map<String, Object> map2 : list) { |
| | | putRowC(wb, ws, ++rowNum, map2, filed, 1, "", true, picFileds, dbid, imageHostUrl, page.getFormid() + ""); //压一行到sheet |
| | | putRowC(wb, ws, ++rowNum, map2, filed, 1, "", true, picFileds, dbid, imageHostUrl, page.getFormid() + "",fileType); //压一行到sheet |
| | | } |
| | | |
| | | } |
| | |
| | | if (!"".equalsIgnoreCase(ex)) { |
| | | Map<String, ExcelPO> param = new HashMap<String, ExcelPO>(); |
| | | String[] tem = ex.split(";"); |
| | | if (StringUtils.isNotBlank(page.getTbColsOut())){ |
| | | if (StringUtils.isNotBlank(page.getTbColsOut())) { |
| | | String[] tbCols = page.getTbColsOut().split("#M#");//#M#是行号docItem,需要排除 |
| | | String[] values = tbCols[0].split("#p#"); |
| | | ; |
| | | for (String key : tem) { |
| | | String[] ss = key.split("#"); |
| | | ExcelPO po = new PoiExcelWriter().new ExcelPO(); |
| | | po.setKey(ss[0]); |
| | | //ss[1]格式:汇总类型|自定义汇总公式(其他类型为空)|字段在excel的位置_T_字段在9802的位置|数字格式 |
| | | String[] indexArry = ss[1].split("\\|")[2].split("_T_"); |
| | | po.setFum(ss[1]); |
| | | if (indexArry.length == 1) { |
| | | throw new ApplicationException("汇总列格式已更新,请通过右下角的小助手[点我一键解决]重新生成页面后再操作"); |
| | | String[] values = tbCols[0].split("#p#"); |
| | | ; |
| | | for (String key : tem) { |
| | | String[] ss = key.split("#"); |
| | | ExcelPO po = new PoiExcelWriter().new ExcelPO(); |
| | | po.setKey(ss[0]); |
| | | //ss[1]格式:汇总类型|自定义汇总公式(其他类型为空)|字段在excel的位置_T_字段在9802的位置|数字格式 |
| | | String[] indexArry = ss[1].split("\\|")[2].split("_T_"); |
| | | po.setFum(ss[1]); |
| | | if (indexArry.length == 1) { |
| | | throw new ApplicationException("汇总列格式已更新,请通过右下角的小助手[点我一键解决]重新生成页面后再操作"); |
| | | } |
| | | try { |
| | | po.setNum(Double.parseDouble(values[Integer.parseInt(indexArry[1])]));//indexArry[1]为汇总列在9802中的真实位置 |
| | | } catch (Exception e) { |
| | | po.setNum(0); |
| | | } |
| | | param.put(ss[0], po); |
| | | } |
| | | try { |
| | | po.setNum(Double.parseDouble(values[Integer.parseInt(indexArry[1])]));//indexArry[1]为汇总列在9802中的真实位置 |
| | | } catch (Exception e) { |
| | | po.setNum(0); |
| | | } |
| | | param.put(ss[0], po); |
| | | prossFormula(wb, ws, rowNum, param);//常规 |
| | | } |
| | | prossFormula(wb, ws, rowNum, param);//常规 |
| | | } |
| | | } |
| | | //--------end |
| | | Map<String, Object> map = new HashMap<String, Object>(); |
| | |
| | | } |
| | | } |
| | | |
| | | private boolean fnEquals(Object o1, Object o2) { |
| | | /** |
| | | * |
| | | * @param dbid |
| | | * @param list 数据 |
| | | * @param key 附件字段名称 |
| | | * @return |
| | | */ |
| | | private Map<String, String> getFileType(String dbid, List list,String key) { |
| | | |
| | | return o1.equals(o2); |
| | | HashMap<String, String> fileType = new HashMap<>(); |
| | | try { |
| | | SpObserver.setDBtoInstance("_" + dbid); |
| | | BaseService baseService = (BaseService) FactoryBean.getBean("BaseService"); |
| | | StringJoiner joiner = new StringJoiner(" or "); |
| | | if(list!=null&&list.size()>0) { |
| | | list.stream().forEach(x->{ |
| | | Map<String,Object> m =(Map<String, Object>) x; |
| | | if(m.get(key)!=null&&StringUtils.isNotBlank(m.get(key)+"")) { |
| | | joiner.add("unid='" + (m.get(key) + "").split(";")[0] + "'"); |
| | | } |
| | | }); |
| | | final List<Map<String, Object>> maps = baseService.getSimpleJdbcTemplate().queryForList("set nocount on\n "+ |
| | | " select cast(unid as varchar(100))+';'+cast(seq as varchar(10)) as unid,FileType from _sys_Attachment9 where " +joiner.toString()+" \n"+ |
| | | "union\n" + |
| | | "select cast(unid as varchar(100))+';'+cast(seq as varchar(10)) as unid,FileType from _sys_Attachment where "+joiner.toString()+"\n"); |
| | | if (maps != null && maps.size() > 0) { |
| | | for (Map<String, Object> map : maps) { |
| | | fileType.put(GridUtils.prossRowSetDataType_String(map, "unid"), GridUtils.prossRowSetDataType_String(map, "FileType")); |
| | | } |
| | | } |
| | | } |
| | | return fileType; |
| | | } catch (Exception ex) { |
| | | return fileType; |
| | | } finally { |
| | | SpObserver.setDBtoInstance(); |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * @param flg true表示常常规统计:汇总,计算,...,false表示自定义公式统计 |
| | | */ |
| | | private void prossFormula( SXSSFWorkbook wb, SXSSFSheet ws, int rowNum, Map<String, ExcelPO> param) {// |
| | | private void prossFormula(SXSSFWorkbook wb, SXSSFSheet ws, int rowNum, Map<String, ExcelPO> param) {// |
| | | for (Entry<String, ExcelPO> en : param.entrySet()) { |
| | | ExcelPO po = en.getValue(); |
| | | double total=po.getNum(); |
| | | double total = po.getNum(); |
| | | String[] vo = po.getFum().split("\\|");//1,null,5,数字格式; |
| | | String[] colIndex=vo[2].split("_T_");//取字段在execl的位置 |
| | | String[] colIndex = vo[2].split("_T_");//取字段在execl的位置 |
| | | String format = getNumFormat(vo[3]);//数字格式 |
| | | if (!"".equalsIgnoreCase(format)) { |
| | | String datetimestyle[] = format.split("-"); |
| | | if (datetimestyle.length >= 2) { |
| | | setCellDouble(total, ws, rowNum + 1, Integer.parseInt(colIndex[0]), null); |
| | | } else { |
| | | setCellDouble(total, ws, rowNum + 1, Integer.parseInt(colIndex[0]), getCellStyle(format, wb)); |
| | | } |
| | | } else { |
| | | if (!"".equalsIgnoreCase(format)) { |
| | | String datetimestyle[] = format.split("-"); |
| | | if (datetimestyle.length >= 2) { |
| | | setCellDouble(total, ws, rowNum + 1, Integer.parseInt(colIndex[0]), null); |
| | | } else { |
| | | setCellDouble(total, ws, rowNum + 1, Integer.parseInt(colIndex[0]), getCellStyle(format, wb)); |
| | | } |
| | | } else { |
| | | setCellDouble(total, ws, rowNum + 1, Integer.parseInt(colIndex[0]), null); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | return byteArrayOutputStream.toByteArray(); |
| | | } |
| | | |
| | | private String putRowC(SXSSFWorkbook wb, SXSSFSheet ws, int rowNum, Object cells, String[] filed, int j, String titles, boolean isThreeData, String picFileds, String dbid, String imageHostUrl, String formid) { |
| | | private String putRowC(SXSSFWorkbook wb, SXSSFSheet ws, int rowNum, Object cells, String[] filed, int j, String titles, boolean isThreeData, String picFileds, String dbid, String imageHostUrl, String formid,Map<String, String> fileType) { |
| | | Map map = (Map) cells; |
| | | boolean flg = false; |
| | | if (j > 0 && !isThreeData) flg = true; |
| | |
| | | byte[] imgByte = null; |
| | | |
| | | |
| | | String str = GridUtils.prossRowSetDataType_String(map, fieldTexts[0].trim().toLowerCase()); |
| | | String uuid = GridUtils.prossRowSetDataType_String(map, fieldTexts[0].trim().toLowerCase()); |
| | | map.put(fieldTexts[0].trim().toLowerCase(), "");//清空附件内容 |
| | | String[] strArray = str.split(";"); |
| | | String[] strArray = uuid.split(";"); |
| | | |
| | | for (int i = 1; i < strArray.length; i++) { |
| | | String txt = strArray[0] + ";" + strArray[i]; |
| | |
| | | } |
| | | txt = txt.replace(";", "@p@").replace(";", "."); |
| | | } else { |
| | | txt = txt.replace(";", "@p@") + ".jpg"; |
| | | //txt = txt.replace(";", "@p@") + ".jpg"; |
| | | String fileExt="."+fileType.get(txt); |
| | | txt=txt.replace(";", "@p@")+fileExt ; |
| | | } |
| | | |
| | | imgUrl = imageHostUrl + "/uploads/attachment/" + dbid + "/" + formid + "/" + txt; |
| | |
| | | String remitter;//汇款人 |
| | | String remitterTel;//汇款人电话 |
| | | String bankDocCode;//汇款单号 |
| | | String accountName;//汇款银行账号 |
| | | String accountCode;//汇款银行账号 |
| | | String accountName;//汇款银行账号名称 |
| | | String amount;//金额 |
| | | String uploads;//附件 |
| | | } |
| | |
| | | public class T150348Entity { |
| | | String bankDocCode;//汇款单号 |
| | | String accountName;//汇款银行账号 |
| | | String accountCode; |
| | | String amount;//金额 |
| | | List<String> uploads;//附件 |
| | | } |
| | |
| | | @Override |
| | | public T150201Entity getT150201(String docCode, Task task,String dbid) { |
| | | List<T150201TempEntity> list=this.jdbcTemplate.query("set nocount on \n" + |
| | | " select b.docCode,convert(varchar(10), b.docdate,120) as docDate,b.ccCode,b.ccName,b.vndCode,b.vndName,b.hDMemo,b.amount as totalAmount,b.bankCode,b.bankName,b.bankAccount,b.uploads,(SELECT stuff((SELECT',' + CONVERT(VARCHAR, pODoccode) FROM t150201D a where a.DocCode=b.DocCode FOR XML PATH ('')),1,1,'')) as pODoccode,c.UserName as remitter,c.tel as remitterTel,(select isnull(a.subacctname,'') + case when isnull(a.BankCode,'') <> '' then ' 【' + isnull(a.BankCode,'') + '】 'else '' end from t110706 a join t110702 b on a.Acctcode = b.Acctcode where a.subacctcode=d.AccountCode) as AccountName,d.Amount,d.BankDocCode " + |
| | | " select b.docCode,convert(varchar(10), b.docdate,120) as docDate,b.ccCode,b.ccName,b.vndCode,b.vndName,b.hDMemo,b.amount as totalAmount,b.bankCode,b.bankName,b.bankAccount,b.uploads,(SELECT stuff((SELECT',' + CONVERT(VARCHAR, pODoccode) FROM t150201D a where a.DocCode=b.DocCode FOR XML PATH ('')),1,1,'')) as pODoccode,c.UserName as remitter,c.tel as remitterTel,(select isnull(a.BankCode,'') from t110706 a join t110702 b on a.Acctcode = b.Acctcode where a.subacctcode=d.AccountCode) as AccountCode,(select isnull(a.subacctname,'') from t110706 a join t110702 b on a.Acctcode = b.Acctcode where a.subacctcode=d.AccountCode) as AccountName,d.Amount,d.BankDocCode " + |
| | | " from t150201H b \n" + |
| | | " left join _sys_loginuser c on c.usercode=replace(b.CurChecked,',','') \n" + |
| | | " left join t150348 d on d.Doccode=b.DocCode \n" + |
| | |
| | | t150348Entity.setAmount(x.getAmount()); |
| | | t150348Entity.setBankDocCode(x.getBankDocCode()); |
| | | t150348Entity.setAccountName(x.getAccountName()); |
| | | t150348Entity.setAccountCode(x.getAccountCode()); |
| | | if(StringUtils.isNotBlank(x.getUploads())) { |
| | | //取出附件拼接url需要的数据 |
| | | final List<com.yc.open.mutual.entity.AttachmentEntity> attachmentInfo = mutualServiceIfc.getAttachmentInfo(x.getUploads(), task.getAffectedFormId(), "uploads", 0); |