fs-danaus
2024-03-16 a2ecbf17d6ba1c7b135fe10bb4cdfefa05b75add
src/com/yc/app/v2/service/impl/DanJunFormServiceImpl.java
@@ -14,6 +14,7 @@
import com.yc.service.sqlformat.utils.SqlFormatUtils;
import com.yc.utils.SessionKey;
import org.apache.commons.lang3.StringUtils;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.stereotype.Service;
import java.util.Base64;
@@ -99,6 +100,7 @@
            ) {
                return;
            }
            String doccode=null;
            try {
                //getPageNum>1表示分页取数,5,8的主表只有一条记录,分页后是没有数据,而不是没权限查看
                if(page.getPageNum()==1) {
@@ -107,7 +109,7 @@
                    //解码出错表示不是base64编码
                    where=new String(Base64.getDecoder().decode(page.getOrigWhere()),"utf-8");
                }catch (Exception e){}
                    String doccode=where.toLowerCase().replaceAll("(?i)doccode='", "").replace("'", "").toUpperCase();
                     doccode=where.toLowerCase().replaceAll("(?i)doccode='", "").replace("'", "").toUpperCase();
                    String enterName = gridService.getSimpleJdbcTemplate().queryForObject("select entername from " + page.getTableName() + " where " +where, String.class);
                    if (enterName != null) {
@@ -118,13 +120,20 @@
                        throw new ApplicationException("单据【" + doccode + "】已删除", -1003);
                    }
                }
            } catch (Exception e) {
            }catch (EmptyResultDataAccessException ex){
                throw new ApplicationException("查找不到此单据【"+doccode+"】", -1003);
            }catch (Exception e) {
                    throw new ApplicationException(e.getMessage(), -1003);
            }
        }
    }
    @Override
    protected String getDataformid(GformEntity gformEntity) {
        return "";
    }
    @Override
@@ -159,6 +168,33 @@
                //没设置则按钮不显示
                sb.append(",0 as [RevokeBtn_Visible]");
            }
            //---------------在线交流,流程跟踪 by danaus 2024-03-15 09:36
            Integer isShowOnlineMsg = gformEntity.getIsshowonlinemsg();//是否显示,1显示,0不显示
            String showOnlineMsgExpression = gformEntity.getShowOnlineMsgExpression();//表达式
            Integer isShowProcessTracking = gformEntity.getIsshowprocesstracking();
            String showProcessTrackingExpression = gformEntity.getShowProcessTrackingExpression();
            //--在线交流sql表达式
            if (isShowOnlineMsg != null && isShowOnlineMsg == 1) {
                if (org.apache.commons.lang3.StringUtils.isNotBlank(showOnlineMsgExpression)) {
                    sb.append(",(case when " + showOnlineMsgExpression + " then 1 else 0 end) as [isShowOnlineMsgBtn_Visible]");
                } else {
                    //没有设置表达式,默认显示
                    sb.append(",1 as [isShowOnlineMsgBtn_Visible]");
                }
            } else {
                sb.append(",0 as [isShowOnlineMsgBtn_Visible]");
            }
            //--流程跟踪sql表达式
            if (isShowProcessTracking != null && isShowProcessTracking == 1) {
                if (org.apache.commons.lang3.StringUtils.isNotBlank(showProcessTrackingExpression)) {
                    sb.append(",(case when " + showProcessTrackingExpression + " then 1 else 0 end) as [isShowProcessTrackingBtn_Visible]");
                } else {
                    sb.append(",1 as [isShowProcessTrackingBtn_Visible]");
                }
            } else {
                sb.append(",0 as [isShowProcessTrackingBtn_Visible]");
            }
            //-----------
        }
        return sb.toString();
    }
@@ -167,7 +203,7 @@
    public void perDanJuOpenProc(FormVOEntity formVOEntity, Map<String, String> env) {
        try {
            //---TODO 打开单据执行已读状态处理
            String execProc = gridService.getSimpleJdbcTemplate().queryForObject("set nocount on \n update a set a.isread=1 from t219001 a where a.usercode=? and a.formid=? and a.formtype=? and a.doccode=? \n declare @execproc varchar(200)  \n select @execproc=isnull(execproc,'') from _sysOpenDoc where formid=? and formtype=? \n select @execproc", String.class, env.get(SessionKey.USERCODE), formVOEntity.getFormId(), formVOEntity.getFormType(), formVOEntity.getDocCode(), formVOEntity.getFormId(), formVOEntity.getFormType());
            String execProc = gridService.getSimpleJdbcTemplate().queryForObject("set nocount on \n update a set a.isread=1,ReadDateTime=getdate()  from t219001 a where a.usercode=? and a.formid=? and a.formtype=? and a.doccode=? \n declare @execproc varchar(200)  \n select @execproc=isnull(execproc,'') from _sysOpenDoc where formid=? and formtype=? \n select @execproc", String.class, env.get(SessionKey.USERCODE), formVOEntity.getFormId(), formVOEntity.getFormType(), formVOEntity.getDocCode(), formVOEntity.getFormId(), formVOEntity.getFormType());
            if (StringUtils.isNotBlank(execProc)) {
                gridService.getSimpleJdbcTemplate().execute(" exec " + replaceStringFormSessionValues(execProc, env));
            }
@@ -200,6 +236,6 @@
    @Override
    public Integer getGridControlType(GFieldEntity gFieldEntity, GformEntity gformEntity) {
        //默认取面板类型
        return gFieldEntity.getControltype();
        return gFieldEntity.getControltype()==null?1:gFieldEntity.getControltype();
    }
}