package com.yc.service.upload; import com.yc.action.grid.GridUtils; import com.yc.entity.attachment.AttachmentOAParam; import com.yc.entity.attachment.AttachmentOaEntity; import com.yc.service.BaseService; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import java.util.List; import java.util.Map; /** * @Author xinyb * @Date 15:32 2022/11/1 **/ @Service("AttachmentOaImpl") public class AttachmentOaImpl extends BaseService implements AttachmentOaIfc { @Override public List> getAttachmentOAUserInfo(String unid, Integer seq, String keyword) { try { //hasView是null值的时候表示没添加过权限设置,统一返回1。后期设置0表示不能查看 String sql = "set nocount on;\n" + " select a.cccode,a.ccname,a.usercode,a.username,isnull(b.hasview,1) hasview,isnull(b.hasdownload,0) hasdownload," + " isnull(b.hasdelete,0) hasdelete,isnull(b.hasUpdate,0) hasupdate,b.startdate,b.enddate," + " isnull(b.allowdownnums,0) allowdownnums,isnull(b.allowviewnums,0) allowviewnums,isnull(b.allowupdateNums,0) allowupdatenums, \n" + " isnull(b.viewNums,0) viewnums,isnull(b.downNums,0) downnums,isnull(b.updateNums,0) updatenums," + " (case when a.UserCode=b.usercode then 1 else 0 end) checked from _sys_LoginUser a " + " left join _sys_AttachmentPermission b on a.UserCode=b.usercode and b.unid=" + GridUtils.prossSqlParm(unid) + " " + " and b.seq=" + seq + " where a.inActive <> 1"; if (StringUtils.isNotBlank(keyword)) {//查询条件 sql += " and (a.ccname like '%" + keyword + "%' or a.username like '%" + keyword + "%')"; } return jdbcTemplate.queryForList(sql); } catch (Exception e) { throw e; } } @Override public Integer setAttachmentOAUser(AttachmentOAParam param) { try { List oaEntity = param.getOaEntities(); String sql = "set nocount on ; \n" + " declare @unid varchar(100) =" + GridUtils.prossSqlParm(param.getUnid()) + "," + " @seq int =" + param.getSeq() + "\n"; sql += " delete a from _sys_AttachmentPermission a where a.unid=@unid and a.seq=@seq\n" ; for (AttachmentOaEntity entity : oaEntity) { sql += "insert into _sys_AttachmentPermission(uNid,seq,userCode,username,hasView,hasDownload,hasDelete,hasUpdate,startDate," + "endDate,dateFlag,AllowDownNums,AllowViewNums,AllowUpdateNums,downNums,viewNums,updateNums)"; sql += " values (@unid,@seq," + GridUtils.prossSqlParm(entity.getUserCode()) + "," + GridUtils.prossSqlParm(entity.getUserName()) + "," + (entity.isHasView() ? 1 : 0) + "," + (entity.isHasDownload() ? 1 : 0) + "," + (entity.isHasDelete() ? 1 : 0) + "," + (entity.isHasUpdate() ? 1 : 0)+","+ (StringUtils.isNotBlank(entity.getStartDate()) ? "convert(varchar(10),'" + entity.getStartDate() + "',120)" : null) + "," + (StringUtils.isNotBlank(entity.getEndDate()) ? "convert(varchar(10),'" + entity.getEndDate() + "',120)" : null) + "," + "2," + entity.getAllowDownNums() + "," + entity.getAllowViewNums() + ","+entity.getAllowUpdateNums()+"," + entity.getDownNums()+","+entity.getViewNums()+","+entity.getUpdateNums()+") \n"; } // sql+="select @@ROWCOUNT"; Integer cont = jdbcTemplate.update(sql); return cont; } catch (Exception e) { throw e; } } @Override public Map getAttachmentOAInfo(AttachmentOAParam param) { try { String sql="declare @date datetime=CONVERT(varchar(100), GETDATE(), 12)," + " @unid varchar(100)="+GridUtils.prossSqlParm(param.getUnid())+",@seq int ="+param.getSeq()+"," + " @userCode varchar(50)="+GridUtils.prossSqlParm(param.getUserCode())+"\n" + " declare @hasView int,@hasDownload int,@hasDelete int,@startDate datetime ,@endDate datetime,@reutrn bit\n" + " select @hasView=isnull(a.hasView,1),@hasDownload=isnull(a.hasDownload,0),@hasDelete=isnull(a.hasdelete,0),\n" + " @startDate=a.startDate,@endDate=a.endDate from _sys_AttachmentPermission a \n" + " where a.unid=@unid and seq=@seq and a.usercode=@userCode\n" + " if @@ROWCOUNT = 1\n" + " begin\n" + " if @startDate is null set @startDate=@date\n" + " if @endDate is null set @endDate=@date\n" + " select @reutrn =1 from _sys_AttachmentPermission a \n" + " where (@date between @startDate and @endDate) and a.unid=@unid and seq=@seq and a.usercode=@userCode\n" + " if @reutrn is null\n" + " begin\n" + " set @hasView=0\n" + " set @hasDownload=0\n" + " set @hasDelete=0\n" + " end\n" + " select (case when @hasView=1 then 'true' else 'false' end) as hasView,\n" + " (case when @hasDownload=1 then 'true' else 'false' end) as hasDownload,\n" + " (case when @hasDelete=1 then 'true' else 'false' end) as hasDelete\n" + " end\n" + "else\n" + " begin\n" + " select 'true' as hasView,'false' as hasDownload,'false' as hasDelete\n" + " end"; return jdbcTemplate.queryForMap(sql); }catch (Exception e){ throw e; } } @Override public String getAttachmentAllow(AttachmentOAParam param) { try { String sql="declare @type varchar(20) = "+GridUtils.prossSqlParm(param.getType())+" , " + "@unid varchar(200) = "+GridUtils.prossSqlParm(param.getUnid())+" , @seq int = "+param.getSeq()+" ," + "@userCode varchar(50) = "+GridUtils.prossSqlParm(param.getUserCode())+" \n" + "declare @hasView int,@hasDownload int ,@hasDetele int,@allowViewNums int,@allowDownNums int,@viewNums int,@downNums int\n" + "declare @memo varchar(200)\n" + "declare @totaViewNums int,@totaDownNums int ,@totaUpdateNums int,@isTable9 bit,@cont bit\n" + "select @hasView=a.hasview,@hasDownload=a.hasDownload,@hasDetele=a.hasdelete,@allowViewNums=isnull(a.AllowViewNums,0),@allowDownNums=isnull(a.AllowDownNums,0),@viewNums=isnull(a.viewNums,0),@downNums=isnull(a.downNums,0) from _sys_AttachmentPermission a where a.unid=@unid and a.seq=@seq and a.usercode=@userCode\n" + "if @@ROWCOUNT > 0\n" + " begin\n" + " if @type='view'\n" + " begin\n" + " if @allowViewNums = 0\n" + " begin\n" + " set @memo=convert(varchar(20),@allowViewNums)+';'+convert(varchar(20),@viewNums)+';'\n" + " +convert(varchar(20),@allowDownNums)+';'+convert(varchar(20),@downNums)+';'+@type+';-1;你在此附件允许查看的次数已经用完'\n" + "\t\t\t\t\t set @cont=0\n" + " end\n" + " else\n" + " begin\n" + " set @allowViewNums = @allowViewNums - 1\n" + " set @viewNums = @viewNums + 1\n" + " update a set a.allowViewNums=@allowViewNums,a.ViewNums=@viewNums from _sys_AttachmentPermission a where a.unid=@unid and a.seq=@seq and a.usercode=@userCode \n" + " set @memo=convert(varchar(20),@allowViewNums)+';'+convert(varchar(20),@viewNums)+';'\n" + " +convert(varchar(20),@allowDownNums)+';'+convert(varchar(20),@downNums)+';'+@type+';0;已更新次数'\n" + "\t\t\t\t\tset @cont=1\n" + " end\t\t\t \n" + " end\n" + " else if @type='down'\n" + " begin\n" + " if @allowDownNums = 0\n" + " begin\n" + " set @memo=convert(varchar(20),@allowViewNums)+';'+convert(varchar(20),@viewNums)+';'\n" + " +convert(varchar(20),@allowDownNums)+';'+convert(varchar(20),@downNums)+';'+@type+';-1;你在此附件允许下载的次数已经用完'\n" + "\t\t\t\t\t set @cont=0\n" + " end\n" + " else\n" + " begin\n" + " set @allowDownNums = @allowDownNums - 1\n" + " set @downNums = @downNums + 1\n" + " update a set a.AllowDownNums=@allowDownNums,a.downNums=@downNums from _sys_AttachmentPermission a where a.unid=@unid and a.seq=@seq and a.usercode=@userCode\n" + " set @memo=convert(varchar(20),@allowViewNums)+';'+convert(varchar(20),@viewNums)+';'\n" + " +convert(varchar(20),@allowDownNums)+';'+convert(varchar(20),@downNums)+';'+@type+';0;已更新次数'\n" + "\t\t\t\t\t set @cont=1\n" + " end\t\t\t \n" + " end\n" + " else\n" + " begin\n" + " set @memo='0;0;0;0;'+@type+';-1;错误操作类型;0;0'\n" + " end \n" + " end\n" + "else\n" + " begin\n" + " set @memo='0;0;0;0;'+@type+';0;此用户未设置权限'\n" + "\t set @cont=1\n" + " end\n" + "\n" + "---更新附件表里的数量\n" + "if @cont is not null\n" + "begin\n" + "select @totaViewNums=a.viewNums,@totaDownNums=a.DownNums,@totaUpdateNums=a.UpdateNums from _sys_Attachment a where a.UNID=@unid and a.seq=@seq \n" + "if @@ROWCOUNT = 0\n" + "\t begin\n" + "\t\t set @isTable9=1\n" + "\t\t select @totaViewNums=a.viewNums,@totaDownNums=a.DownNums,@totaUpdateNums=a.UpdateNums from _sys_Attachment9 a where a.UNID=@unid and a.seq=@seq\n" + "\t\tend\n" + " set @totaViewNums=isnull(@totaViewNums,0) \n" + " set @totaDownNums=isnull(@totaDownNums,0) \n" + " set @totaUpdateNums=isnull(@totaUpdateNums,0) \n" + "if @cont = 1\n" + " begin\n" + " if @type='view'\n" + " begin\n" + " set @totaViewNums = @totaViewNums + 1\n" + " \t\tif @isTable9 = 1\n" + "\t\t begin\n" + "\t\t\t\t update b set b.ViewNums=@totaViewNums from _sys_Attachment9 b where b.unid=@unid and b.seq=@seq \n" + "\t\t end\n" + "\t\telse\n" + "\t\t begin\n" + "\t\t\t\t update b set b.ViewNums=@totaViewNums from _sys_Attachment b where b.unid=@unid and b.seq=@seq \n" + "\t\t\tend \n" + " end\n" + " else if @type='down'\n" + " begin\n" + " set @totaDownNums = @totaDownNums + 1\n" + "\t if @isTable9 = 1\n" + "\t\t begin\n" + "\t\t\t update b set b.DownNums=@totaDownNums from _sys_Attachment9 b where b.unid=@unid and b.seq=@seq \n" + "\t\t end\n" + "\t else\n" + "\t\t begin\n" + "\t\t update b set b.DownNums=@totaDownNums from _sys_Attachment b where b.unid=@unid and b.seq=@seq \n" + "\t end \n" + " end\n" + " end\n" + " set @memo=@memo+';'+convert (varchar(20),@totaViewnums)+';'+convert (varchar(20),@totaDownNums)\n" + "end\n" + "select @memo as memo"; return jdbcTemplate.queryForObject(sql,String.class); }catch (Exception e){ throw e; } } }