Explorar o código

外部单位-附件删除调整

sangwenwei hai 9 meses
pai
achega
4f02c89458

+ 5 - 0
src/main/java/com/jeeplus/modules/sys/dao/WorkattachmentDao.java

@@ -5,6 +5,7 @@ package com.jeeplus.modules.sys.dao;
 
 import com.jeeplus.common.persistence.CrudDao;
 import com.jeeplus.common.persistence.annotation.MyBatisDao;
+import com.jeeplus.modules.externalUnit.entity.ExternalUnitWorkClientAttachment;
 import com.jeeplus.modules.sys.entity.Workattachment;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
 import org.apache.ibatis.annotations.Param;
@@ -97,6 +98,10 @@ public interface WorkattachmentDao extends CrudDao<Workattachment> {
      */
     Integer queryMaterialListFile(Workattachment workattachment);
 
+    ExternalUnitWorkClientAttachment getExterFile(String id);
+
+    void deleteExter(ExternalUnitWorkClientAttachment workattachment);
+
     /**
      * 根据id获取对象
      */

+ 50 - 0
src/main/java/com/jeeplus/modules/sys/service/WorkattachmentService.java

@@ -262,6 +262,51 @@ public class WorkattachmentService extends CrudService<WorkattachmentDao, Workat
 
 	}
 
+	//删除附件
+	//阿里云文件地址http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/attachment-file/workBidingDocument/3fcf03e37b3ba0fd5c7821998e392395.doc
+	//其中阿里云删除接口所需的参数 key 指的是 attachment-file/workBidingDocument/3fcf03e37b3ba0fd5c7821998e392395.doc
+	@Transactional(readOnly = false)
+	public void deleteExterFileFromAliyun(ExternalUnitWorkClientAttachment workattachment,String url) {
+		if(workattachment != null){
+			this.deleteExter(workattachment);
+		}
+		if (StringUtils.isNotBlank(url)) {
+//			String aliyunUrl = Global.getAliyunUrl();
+//			String aliDownloadUrl = Global.getAliDownloadUrl();
+//			String cons = "";
+//			if (url.contains(aliyunUrl)){
+//				cons = aliyunUrl;
+//			}else if (url.contains("http://gangwan-app.oss-cn-hangzhou.aliyuncs.com")){
+//				cons = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com";
+//			}else {
+//				cons = aliDownloadUrl;
+//			}
+//			final String[] arr = url.split(cons + "/");
+//			String key = arr[1];
+//			logger.info("key="+key);
+//			OSSClientUtil ossClientUtil = new OSSClientUtil();
+//			if (StringUtils.isNotBlank(key)) {
+//				ossClientUtil.deleteSingleObject(key);
+//			}
+//			Workattachment workattachment1 = new Workattachment();
+//			workattachment1.setUrl(url);
+//			deleteByUrl(workattachment1);
+			try {
+				int index = url.indexOf(".com");
+				String 	path = URLDecoder.decode(url.substring(index + 4, url.length()), "UTF-8");
+				BOSClientUtil bosClientUtil = new BOSClientUtil();
+				bosClientUtil.deleteObject(path);
+			}catch (Exception e){
+				logger.error("Exception e:"+e);
+			}
+		}
+
+	}
+
+	public void deleteExter(ExternalUnitWorkClientAttachment workattachment) {
+		workattachmentDao.deleteExter(workattachment);
+	}
+
 	public List<Workattachment> findAttachment(String attachmentId,String type) {
 		List<Workattachment>  workattachmentList = new ArrayList<>();
 		if(StringUtils.isNotBlank(attachmentId)){
@@ -1068,6 +1113,11 @@ public class WorkattachmentService extends CrudService<WorkattachmentDao, Workat
 		return workattachmentDao.queryMaterialListFile(workattachment);
 	}
 
+	public ExternalUnitWorkClientAttachment getExterFile(String id) {
+		return workattachmentDao.getExterFile(id);
+	}
+
+
 	/**
 	 * 根据id获取对象
 	 */

+ 38 - 0
src/main/java/com/jeeplus/modules/sys/web/WorkattachmentController.java

@@ -14,6 +14,7 @@ import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.utils.excel.ExportExcel;
 import com.jeeplus.common.utils.excel.ImportExcel;
 import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.externalUnit.entity.ExternalUnitWorkClientAttachment;
 import com.jeeplus.modules.projectmaterialstorage.service.ProjectMaterialStorageService;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
@@ -290,6 +291,43 @@ public class WorkattachmentController extends BaseController {
 	 *  单个删除阿里云上的文件,同时更新相关对象的附件信息
 	 *  阿里云文件地址http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/attachment-file/workBidingDocument/3fcf03e37b3ba0fd5c7821998e392395.doc
 	 *  其中阿里云删除接口所需的参数 key 指的是 attachment-file/workBidingDocument/3fcf03e37b3ba0fd5c7821998e392395.doc
+	 * @return
+	 */
+	@RequestMapping("/deleteExterFileFromAliyun")
+	@ResponseBody
+	public HashMap<Object, Object> deleteExterFileFromAliyun(String id,String type,String url,Model model){
+		ExternalUnitWorkClientAttachment workAttachment1 = workattachmentService.getExterFile(id);
+		if(StringUtils.isNotBlank(id)) {
+			ExternalUnitWorkClientAttachment workattachment = workattachmentService.getExterFile(id);
+			if("1".equals(uploadMode) || "2".equals(uploadMode)) {
+				workattachmentService.deleteExterFileFromAliyun(workattachment, workattachment == null ? url : workattachment.getUrl());
+			}else{
+				SftpClientUtil sftpClientUtil=new SftpClientUtil();
+				try {
+					if(null != workattachment){
+						sftpClientUtil.delete(workattachment.getUrl());
+					}else{
+						sftpClientUtil.delete(url);
+					}
+
+					if(workattachment != null){
+						workattachmentService.deleteExter(workattachment);
+					}
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		HashMap<Object, Object> map = Maps.newHashMap();
+		map.put("str","success");
+
+		return map;
+	}
+
+	/**
+	 *  单个删除阿里云上的文件,同时更新相关对象的附件信息
+	 *  阿里云文件地址http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/attachment-file/workBidingDocument/3fcf03e37b3ba0fd5c7821998e392395.doc
+	 *  其中阿里云删除接口所需的参数 key 指的是 attachment-file/workBidingDocument/3fcf03e37b3ba0fd5c7821998e392395.doc
 	 *  电子发票报销专用,需下载文件并对文件进行分析,获取对应
 	 * @return
 	 */

+ 11 - 0
src/main/resources/mappings/modules/sys/WorkattachmentDao.xml

@@ -37,6 +37,13 @@
 		WHERE a.id = #{id}
 	</select>
 
+	<select id="getExterFile" resultType="ExternalUnitWorkClientAttachment" >
+		SELECT
+		<include refid="workattachmentColumns"/>
+		FROM exterunit_work_attachment a
+		<include refid="workattachmentJoins"/>
+		WHERE a.id = #{id}
+	</select>
 
 
 	<select id="getBasedDataAndWorkAttachmentInfo" resultType="com.jeeplus.modules.sys.entity.Workattachment" >
@@ -332,6 +339,10 @@
 		DELETE FROM work_attachment
 		WHERE id = #{id}
 	</update>
+	<update id="deleteExter">
+		DELETE FROM exterunit_work_attachment
+		WHERE id = #{id}
+	</update>
 
 	<!--物理删除-->
 	<update id="deleteByUrl">

+ 1 - 1
src/main/webapp/webpage/modules/externalUnit/capitalDemandFormAudit.jsp

@@ -379,7 +379,7 @@
 									</c:choose>
 									<c:if test="${workClientAttachment.createBy.id eq fns:getUser().id}">
 										<a href="javascript:void(0)"
-										   onclick="deleteFileFromAliyun(this,'${ctx}/sys/workattachment/deleteFileFromAliyun?url=${workClientAttachment.url}&id=${workClientAttachment.id}&type=2','addFile')"
+										   onclick="deleteFileFromAliyun(this,'${ctx}/sys/workattachment/deleteExterFileFromAliyun?url=${workClientAttachment.url}&id=${workClientAttachment.id}&type=2','addFile')"
 										   class="op-btn op-btn-delete"><i class="fa fa-trash"></i>&nbsp;删除</a>
 									</c:if>
 <%--									<c:if test="${workClientAttachment.collectFlag != 1}">--%>

+ 1 - 1
src/main/webapp/webpage/modules/externalUnit/externalUnitFileForm.jsp

@@ -252,7 +252,7 @@
 									</c:choose>
 									<c:if test="${workClientAttachment.createBy.id eq fns:getUser().id}">
 										<a href="javascript:void(0)"
-										   onclick="deleteFileFromAliyun(this,'${ctx}/sys/workattachment/deleteFileFromAliyun?url=${workClientAttachment.url}&id=${workClientAttachment.id}&type=2','addFile')"
+										   onclick="deleteFileFromAliyun(this,'${ctx}/sys/workattachment/deleteExterFileFromAliyun?url=${workClientAttachment.url}&id=${workClientAttachment.id}&type=2','addFile')"
 										   class="op-btn op-btn-delete"><i class="fa fa-trash"></i>&nbsp;删除</a>
 									</c:if>
 								</div>

+ 1 - 1
src/main/webapp/webpage/modules/externalUnit/externalUnitProjectFile.jsp

@@ -308,7 +308,7 @@
 									<a href="javascript:location.href='${ctx}/workfullmanage/workFullManage/downLoadAttach?file='+encodeURIComponent('${workClientAttachment.url}');" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
 									<c:if test="${workClientAttachment.createBy.id eq fns:getUser().id}">
 										<a href="javascript:void(0)"
-										   onclick="deleteFileFromAliyun(this,'${ctx}/sys/workattachment/deleteFileFromAliyun?url=${workClientAttachment.url}&id=${workClientAttachment.id}&type=2','addFile')"
+										   onclick="deleteFileFromAliyun(this,'${ctx}/sys/workattachment/deleteExterFileFromAliyun?url=${workClientAttachment.url}&id=${workClientAttachment.id}&type=2','addFile')"
 										   class="op-btn op-btn-delete"><i class="fa fa-trash"></i>&nbsp;删除</a>
 									</c:if>
 								</div>

+ 1 - 1
src/main/webapp/webpage/modules/externalUnit/feedbackFormAdd.jsp

@@ -319,7 +319,7 @@
 									</c:choose>
 									<c:if test="${workClientAttachment.createBy.id eq fns:getUser().id}">
 										<a href="javascript:void(0)"
-										   onclick="deleteFileFromAliyun(this,'${ctx}/sys/workattachment/deleteFileFromAliyun?url=${workClientAttachment.url}&id=${workClientAttachment.id}&type=2','addFile')"
+										   onclick="deleteFileFromAliyun(this,'${ctx}/sys/workattachment/deleteExterFileFromAliyun?url=${workClientAttachment.url}&id=${workClientAttachment.id}&type=2','addFile')"
 										   class="op-btn op-btn-delete"><i class="fa fa-trash"></i>&nbsp;删除</a>
 									</c:if>
 <%--									<c:if test="${workClientAttachment.collectFlag != 1}">--%>

+ 1 - 1
src/main/webapp/webpage/modules/externalUnit/feedbackFormModify.jsp

@@ -326,7 +326,7 @@
 									</c:choose>
 									<c:if test="${workClientAttachment.createBy.id eq fns:getUser().id}">
 										<a href="javascript:void(0)"
-										   onclick="deleteFileFromAliyun(this,'${ctx}/sys/workattachment/deleteFileFromAliyun?url=${workClientAttachment.url}&id=${workClientAttachment.id}&type=2','addFile')"
+										   onclick="deleteFileFromAliyun(this,'${ctx}/sys/workattachment/deleteExterFileFromAliyun?url=${workClientAttachment.url}&id=${workClientAttachment.id}&type=2','addFile')"
 										   class="op-btn op-btn-delete"><i class="fa fa-trash"></i>&nbsp;删除</a>
 									</c:if>
 									<c:if test="${workClientAttachment.collectFlag != 1}">