igds-basic/src/main/java/com/ld/igds/basic/controller/FileController.java
@@ -2,16 +2,20 @@ import com.ld.igds.basic.manager.FileManager; import com.ld.igds.data.PageResponse; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.URLEncoder; @@ -25,81 +29,145 @@ @RequestMapping("basic/file") public class FileController { @Autowired private FileManager fileManager; @Autowired private FileManager fileManager; /** * é¿ä¼ åºå ¥åºå¾ç * * @param file * @param request * @return * @throws IOException */ @RequestMapping("/update-file") public PageResponse<String> updateAreationPos( @RequestParam(value = "file", required = true) MultipartFile file, HttpServletRequest request) throws IOException { /** * é¿ä¼ åºå ¥åºå¾ç * * @param file * @param request * @return * @throws IOException */ @RequestMapping("/update-file") public PageResponse<String> updateAreationPos( @RequestParam(value = "file", required = true) MultipartFile file, HttpServletRequest request) throws IOException { String plateNum = request.getParameter("plateNum"); String plateNum = request.getParameter("plateNum"); return fileManager.upLoadInoutImg(file, plateNum); } return fileManager.upLoadInoutImg(file, plateNum); } /** * ä¸è½½ä»ä¸´æ¶ç®å½ä¸è½½ï¼éè¦é¡¹ç®åç§°åå½åç»ç» * * @param request * @return * @throws IOException */ @RequestMapping("/download-temp") public int downloadTemp( @RequestParam(value = "fileName", required = false) String fileName, @RequestParam(value = "companyId", required = false) String companyId, HttpServletRequest request, HttpServletResponse response) throws IOException { /** * ä¸è½½ä»ä¸´æ¶ç®å½ä¸è½½ï¼éè¦é¡¹ç®åç§°åå½åç»ç» * * @param request * @return * @throws IOException */ @RequestMapping("/download-temp") public int downloadTemp( @RequestParam(value = "fileName", required = false) String fileName, @RequestParam(value = "companyId", required = false) String companyId, HttpServletRequest request, HttpServletResponse response) throws IOException { if (StringUtils.isEmpty(fileName) || StringUtils.isEmpty(companyId)) { response.sendError(404, "缺å°ä¸è½½åæ°æ¡ä»¶ï¼æ æ³æ§è¡ä¸è½½ã"); return 404; } File file = fileManager.getTempFilePath(fileName, companyId); if (StringUtils.isEmpty(fileName) || StringUtils.isEmpty(companyId)) { response.sendError(404, "缺å°ä¸è½½åæ°æ¡ä»¶ï¼æ æ³æ§è¡ä¸è½½ã"); return 404; } File file = fileManager.getTempFilePath(fileName, companyId); if (!file.exists()) { response.sendError(404, "没æè·åå°éè¦ä¸è½½çæä»¶ï¼å¯è½å·²è¢«å é¤"); return 404; } if (!file.exists()) { response.sendError(404, "没æè·åå°éè¦ä¸è½½çæä»¶ï¼å¯è½å·²è¢«å é¤"); return 404; } response.setContentType("application/octet-stream"); response.setHeader("content-type", "application/octet-stream"); response.setHeader("Content-Length", String.valueOf(file.length())); response.setHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(fileName, "utf8")); byte[] buffer = new byte[1024]; OutputStream os; try (FileInputStream fis = new FileInputStream(file); BufferedInputStream bis = new BufferedInputStream(fis)) { os = response.getOutputStream(); int i = bis.read(buffer); while (i != -1) { os.write(buffer); i = bis.read(buffer); } response.setContentType("application/octet-stream"); response.setHeader("content-type", "application/octet-stream"); response.setHeader("Content-Length", String.valueOf(file.length())); response.setHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(fileName, "utf8")); byte[] buffer = new byte[1024]; fis.close(); bis.close(); os.close(); os.flush(); } catch (Exception e) { response.sendError(500, "æä»¶ä¸è½½åºéï¼" + e.getMessage()); OutputStream os; try (FileInputStream fis = new FileInputStream(file); BufferedInputStream bis = new BufferedInputStream(fis)) { os = response.getOutputStream(); int i = bis.read(buffer); while (i != -1) { os.write(buffer); i = bis.read(buffer); } log.error("------------æä»¶ä¸è½½å¤±è´¥--{}", e); return 500; } fis.close(); bis.close(); os.close(); os.flush(); } catch (Exception e) { response.sendError(500, "æä»¶ä¸è½½åºéï¼" + e.getMessage()); return 200; } log.error("------------æä»¶ä¸è½½å¤±è´¥--{}", e); return 500; } /** * æä»¶æµè·åå¾çæ¾ç¤ºå°é¡µé¢--é对ä»å ææ * * @param fileName * @param timeStr * ææçå¹´ææ¥æ¶åç§ yyyyMMddHHmmss * @param response * @return * @throws IOException */ @RequestMapping(value = "/view-snap-depot", method = RequestMethod.GET, produces = { "application/vnd.ms-excel;charset=UTF-8" }) public String getDepotSnap(String fileName, String timeStr, HttpServletResponse response) throws IOException { return 200; } // 设置è¿åå å®¹æ ¼å¼ response.setContentType("image/jpeg/jpg/png/gif/bmp/tiff/svg"); String filePath; // å建ä¸ä¸ªè¾å ¥æµ InputStream in = null; // å建è¾åºæµ OutputStream os = null; try { if (null == fileName || null == timeStr) { filePath = fileManager.getFailImg(); }else{ filePath = fileManager.getSnapFilePath(fileName, timeStr); File file = new File(filePath); if(file.exists()){ log.debug("----ææå¾çå°å-------{}", filePath); }else{ filePath = fileManager.getFailImg(); log.debug("----æªè·åå°å¾çº¸ï¼é»è®¤å°å-------{}", filePath); } } // ç¨è¯¥æä»¶å建ä¸ä¸ªè¾å ¥æµ in = new FileInputStream(filePath); // å建è¾åºæµ os = response.getOutputStream(); byte[] b = new byte[1024]; while (in.read(b) != -1) { os.write(b); } in.close(); os.close(); return null; } catch (Exception e) { e.printStackTrace(); return null; } finally { if (null != in) { in.close(); } if (null != os) { os.close(); } } } } igds-basic/src/main/java/com/ld/igds/basic/manager/FileManager.java
@@ -5,13 +5,17 @@ import com.ld.igds.file.CoreFileService; import com.ld.igds.util.ContextUtil; import com.ld.igds.util.FilesUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.ClassPathResource; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; @@ -160,4 +164,17 @@ String path = filesUtil.getTempPath(companyId) + "/" + fileName; return new File(path); } public String getSnapFilePath(String fileName, String dateStr) { return fileService.getSnapFilePath(dateStr) + "/" + fileName; } public String getFailImg() throws IOException { String failImg = "static/images/img-fail.jpg"; ClassPathResource readFile = new ClassPathResource(failImg); return readFile.getFile().getAbsolutePath(); } } igds-core/src/main/java/com/ld/igds/file/CoreFileService.java
@@ -48,6 +48,15 @@ * @return */ public String getSnapFilePath(Date date); /** * æ ¹æ®æ¶é´è·åç³»ç»é ç½®çä»å è§é¢ææè·¯å¾ * ç³»ç»éä»¶è·¯å¾ä»¥yyyyMM为ç®å½è¿è¡åå * * @param date * @return */ public String getSnapFilePath(String date); /** * æ ¹æ®æ¶é´è·åç³»ç»é ç½®çéä»¶è·¯å¾å°å igds-core/src/main/java/com/ld/igds/file/impl/CoreFileServiceImpl.java
@@ -48,6 +48,20 @@ } return basePath; } @Override public String getSnapFilePath(String dateStr) { if (null == dateStr) return null; if(dateStr.length()>6) dateStr = dateStr.substring(0, 6); String basePath = configData.getFilePath() + "SNAP/" + dateStr+ "/"; File file = new File(basePath); if (!file.exists()) { file.mkdirs(); } return basePath; } @Override public String getCommonFilePath(Date date) { igds-inout/src/main/java/com/ld/igds/inout/service/HInoutReportService.java
@@ -18,7 +18,7 @@ String hql = " from " + InoutRecord.class.getName() + " where companyId=:companyId "; Map<String, Object> args = new HashMap<String, Object>(); Map<String, Object> args = new HashMap<>(); args.put("companyId", ContextUtil.getCompanyId()); if (null != param) { @@ -38,14 +38,8 @@ if (StringUtils.isNotEmpty(str)) { hql += " and type=:type "; args.put("type", str); } str = (String) param.get("type"); if (StringUtils.isEmpty(str)) { }else{ hql += " and type <> 'LOSS' and type <> 'OVER'"; } else { hql += " and type=:type "; args.put("type", str); } str = (String) param.get("customerId"); igds-security/src/main/java/com/ld/igds/models/SecSnapDepot.java
@@ -44,11 +44,11 @@ private String result="SUCCESS"; @JSONField(format = "yyyy-MM-dd HH:mm:ss") @Column(name = "UPDATE_TIME_", length = 1) @Column(name = "UPDATE_TIME_") @PropertyDef(label = "æææ¶é´") private Date updateTime; @Column(name = "FILE_SUFFIX_", length = 6) @Column(name = "FILE_SUFFIX_", length = 4) @PropertyDef(label = "å¾åæä»¶åç¼å") private String fileSuffix = "jpg"; igds-security/src/main/java/com/ld/igds/sec/service/SecSnapDepotService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,51 @@ package com.ld.igds.sec.service; import com.bstek.bdf2.core.orm.hibernate.HibernateDao; import com.bstek.dorado.data.provider.Page; import com.ld.igds.models.SecSnapDepot; import com.ld.igds.util.DateUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Repository; import java.util.Date; import java.util.HashMap; import java.util.Map; @Repository public class SecSnapDepotService extends HibernateDao { public void pageSnapDepot(Page<SecSnapDepot> page, Map<String, Object> param) throws Exception { String hql = " from " + SecSnapDepot.class.getName() + " where companyId=:companyId and deptId=:deptId"; Map<String, Object> args = new HashMap<>(); args.put("companyId", param.get("companyId")); args.put("deptId", param.get("deptId")); String str = (String) param.get("depotId"); if (StringUtils.isNotEmpty(str)) { hql += " and depotId =:depotId"; args.put("depotId", str); } Date date = (Date) param.get("start"); if (null != date) { hql += " and updateTime >=:start"; args.put("start", DateUtil.getCurZero(date)); } date = (Date) param.get("end"); if (null != date) { hql += " and updateTime <:end"; args.put("end", DateUtil.getNextZero(date)); } String countHql = "select count(1) " + hql; hql += " order by updateTime desc"; this.pagingQuery(page, hql, countHql, args); } } igds-security/src/main/java/com/ld/igds/sec/view/SecSnapDepot.view.xml
@@ -73,55 +73,124 @@ <Property name="label">æ´æ°æ¶é´</Property> </PropertyDef> </DataType> <DataType name="dtQuery"> <PropertyDef name="depotId"> <Property/> <Property name="label">æå±ä»åº</Property> </PropertyDef> <PropertyDef name="start"> <Property name="label">èµ·å§æ¥æ</Property> <Property name="dataType">Date</Property> </PropertyDef> <PropertyDef name="end"> <Property name="label">æªæ¢æ¥æ</Property> <Property name="dataType">Date</Property> </PropertyDef> </DataType> </Model> <View layout="padding:5;regionPadding:5"> <Property name="packages">font-awesome,css-common</Property> <DataSet id="dsMain"> <Property name="loadMode">lazy</Property> <Property name="dataType">[dtMain]</Property> <Property name="dataProvider">secSnapDepotPR#pageSnapDepot</Property> <Property name="pageSize">12</Property> </DataSet> <DataSet id="dsConf"> <Property name="dataType">[dtConf]</Property> </DataSet> <ToolBar> <ToolBarLabel> <Property name="text">èåæ ï¼</Property> </ToolBarLabel> <Fill/> <ToolBarButton> <ClientEvent name="onClick">view.get("#dialogConf").show();
 </ClientEvent> <Property name="caption">ææé ç½®</Property> </ToolBarButton> </ToolBar> <Container layout="regionPadding:10" layoutConstraint="center"> <Property name="exClassName">bg-color</Property> <DataGrid layoutConstraint="center padding:5px"> <Property name="dataSet">dsMain</Property> <Property name="readOnly">true</Property> <RowNumColumn> <Property name="width">50</Property> </RowNumColumn> <DataColumn name="depotId"> <Property name="property">depotId</Property> </DataColumn> <DataColumn name="updateTime"> <Property name="property">updateTime</Property> </DataColumn> <DataColumn name="zpsj"> <Property name="property">zpsj</Property> </DataColumn> <DataColumn name="txwjhzm"> <Property name="property">txwjhzm</Property> </DataColumn> <DataColumn name="wjmc"> <Property name="property">wjmc</Property> </DataColumn> <DataColumn name="yzwbh"> <Property name="property">yzwbh</Property> </DataColumn> </DataGrid> </Container> <DataSet id="dsQuery"> <ClientEvent name="onReady">self.insert({});</ClientEvent> <Property name="dataType">dtQuery</Property> </DataSet> <Panel layout="regionPadding:10"> <Property name="caption">è§é¢å¾åä¿¡æ¯ç®¡ç</Property> <Property name="iconClass">fa fa-bars</Property> <Buttons/> <Children> <Container> <Property name="contentOverflow">hidden</Property> <Property name="exClassName">bg-color</Property> <AutoForm> <Property name="cols">80,*,*,*,*</Property> <Property name="dataSet">dsQuery</Property> <Label> <Property name="text">æ¥è¯¢æ¡ä»¶ï¼</Property> </Label> <AutoFormElement> <Property name="name">depotId</Property> <Property name="property">depotId</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">start</Property> <Property name="property">start</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">end</Property> <Property name="property">end</Property> <Editor/> </AutoFormElement> <Container layout="regionPadding:10"> <Button layoutConstraint="left"> <ClientEvent name="onClick">var entity = view.get("#dsQuery.data:#");
 view.get("#dsMain").set("parameter",entity).flushAsync(function(){
 $notify("æ¥è¯¢æåï¼");
 });</ClientEvent> <Property name="caption">æ¥è¯¢</Property> <Property name="exClassName">btn-normal</Property> <Property name="iconClass">fa fa-search</Property> </Button> <Button layoutConstraint="left"> <ClientEvent name="onClick">view.get("#dsQuery").setData({});</ClientEvent> <Property name="caption">éç½®</Property> <Property name="exClassName">btn-warn</Property> <Property name="iconClass">fa fa-refresh</Property> </Button> <Button layoutConstraint="left"> <ClientEvent name="onClick">view.get("#dialogConf").show();</ClientEvent> <Property name="caption">ææé ç½®</Property> <Property name="exClassName">btn-default</Property> <Property name="iconClass">fa fa-cogs</Property> </Button> </Container> </AutoForm> </Container> <Container layoutConstraint="center"> <Property name="exClassName">bg-color</Property> <DataBlockView> <ClientEvent name="onRenderBlock">
 var time = arg.data.get("zpsj").formatDate("Y-m-d H:i");
 var hwdm = arg.data.getText("hwdm");
 var cfdm = arg.data.getText("cfdm");
 var kqdm = arg.data.getText("kqdm");
 var imgSrc = "../../grain/file/get-depot-snap?filePath="+arg.data.get("wjdz");
 var htm = "<div><img src='"+imgSrc+"' style='height:250px; width:100%;'><div><span style='padding-left:10px;'>åºåºï¼"+kqdm+"</span><span style='float:right;padding-right:10px;'>仿¿ï¼"+cfdm+"</span></div><div><span style='padding-left:10px;'>è´§ä½ï¼"+hwdm+"</span><span style='float:right;padding-right:10px;'>æ¶é´ï¼"+time+"</span></div></div>";
 
 arg.dom.innerHTML = htm;
 arg.progressDefault=false;</ClientEvent> <Property name="dataSet">dsMain</Property> <Property name="blockHeight">300</Property> <Property name="blockWidth">390</Property> <Property name="blockLayout">vertical</Property> <Property name="horiPadding">15</Property> <Property name="horiSpacing">15</Property> <Property name="vertPadding">15</Property> <Property name="vertSpacing">15</Property> <Property name="lineSize">4</Property> </DataBlockView> </Container> <ToolBar layoutConstraint="bottom"> <Fill/> <DataPilot layoutConstraint="right"> <Property name="dataSet">dsMain</Property> <Property name="itemCodes">pageSize,pages</Property> </DataPilot> </ToolBar> </Children> <Tools/> </Panel> <Dialog id="dialogConf"> <Buttons/> <Children> @@ -145,5 +214,9 @@ </Children> <Tools/> </Dialog> <AjaxAction id="ajaxDel"> <Property name="service">videoImgPR#delData</Property> <Property name="confirmMessage">å½åæ°æ®å é¤åæ æ³æ¢å¤ï¼è¯·ç¡®è®¤è¦å é¤ä¹ï¼</Property> </AjaxAction> </View> </ViewConfig> igds-security/src/main/java/com/ld/igds/sec/view/SecSnapDepotPR.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,44 @@ package com.ld.igds.sec.view; import com.bstek.dorado.annotation.DataProvider; import com.bstek.dorado.data.provider.Page; import com.ld.igds.models.SecSnapDepot; import com.ld.igds.sec.service.SecSnapDepotService; import com.ld.igds.util.ContextUtil; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.HashMap; import java.util.Map; /** * @author: andy.jia * @description: ä»å ææä¿¡æ¯è·å管ç * @version: */ @Component public class SecSnapDepotPR { @Resource private SecSnapDepotService snapDepotService; /** * secSnapDepotPR#pageSnapDepot * * @param param * @throws Exception */ @DataProvider public void pageSnapDepot(Page<SecSnapDepot> page, Map<String, Object> param) throws Exception { if(null == param) param = new HashMap<>(); param.put("companyId", ContextUtil.getCompanyId()); param.put("deptId", ContextUtil.subDeptId(null)); snapDepotService.pageSnapDepot(page,param); } } igds-web/src/main/resources/d7/css/common.css
@@ -2,6 +2,22 @@ /** éåD7çé ç½®**/ /** block **/ /** 注æå¼ºå¶ä¸º4å **/ .block{ width:24.2% !important; } .d-block-view .block{ border: 1px solid #39aef5; } .d-block-view .block-current{ border: 1px solid #39aef5; } /** dataGridç表头 **/ .d-grid .header-table .header .caption { margin-left: 4px; igds-web/src/main/resources/static/images/img-fail.jpg
igds-web/src/main/resources/static/img/aerial-5000_001.png