通达报表、 项目管控、微信集成
华安检测科技股份有限公司 董洁明
一、OA选型过程
实施概况:华安检测是一家服务型的企业,针对国家目前的政策,要求企业强制性做职业卫生、安全等服务,公司的业务成爆炸性的增长,针对这种状况,公司针对即将上市的长远规划及管理需要,要求对各个环节进行掌控,同时实现无纸化办公。
项目启动前,我们进行了大量的调研,先后走访了多家OA软件供应商,并考察了多家OA产品,通过现场演示、试用,最终选择了北京的通达OA。
其主要优点是:技术领先、人性化设计、易用性强、性价比最高、易于维护和后续升级服务及时,不仅仅是办公软件,更是管理工具。
我们最最看重的是:用通达报表组件的统计、项目管控、微信集成。如:客户分配汇总、业务销售周报、业务销售月报、销售数据月度基础统计、技术部门绩效表、请假/加班报表、合同号自动发放管理。
2016年3月份启动OA项目;4月份实施;7月份在公司总部试运行OA工作流;2016年10月份试运行报表组件,实现项目管控、日常审批、移动微信办公。
二、目前通达OA的使用情况
公告、新闻、内部邮件、即时通讯、文件柜、车辆管理、工作流、人力资源模块的绩效考核、微信集成。
工作计划、会议安排、网络硬盘、个人考勤模块实现部分应用。
OA系统与微信集成应用,二次开发。
三、通达OA功能与实际应用举例
通达OA功能很强大,日常的审批不在话下,下面重点列举几个我公司的定期检测项目管理。
1、公司的需求概况
根据我公司的业务范围主要三大类:职业卫生专业技术服务、安全生产专业技术服务、配套服务。根据项目类型,创建了9大流程:定期检测、预评价、现状评价、控制效果评价、安全设施设计专篇、配套服务、安全生产标准化、安全健康分类分级、其他。涉及公司所有部门:总监室、市场部、财务部、技术部、检测部、质控部、行政部等公司及分公司各部门。
公司的行业特点是服务型的,需要去企业洽谈、调查、采样等服务,员工基本都处于外出的状态。分公司分布于各地。
需要实现项目管控:
通过每个节点限制办理时限,超时统计,来提高办理效率。
获得客户分配汇总、业务销售周报、业务销售月报、销售数据月度基础统计、技术部门绩效表。
实现分公司人员异地办公、业务人员、技术人员等移动办公。
2、流程设计
以定期检测为例,项目从非主营业务提供审批-客户登记-客户分配-业务现场调查-报价方案编写-报价审批-报价方案发给客户-合同申请制作-签订合同-合同交接-初款收取-财务启动项目-技术总监室负责人分配- 部门负责人分配-项目负责人-现场调查-方案编写-方案审核-现场采样-样品交接-实验室接收-检测数据报告-项目报告编写-报告初审-报告技审-质控审核-报告装订盖章-尾款收取-市场总监室接收报告-业务部门接收-业务主责人-客户报告签收(非常规交付)-行政归档等。总共70多个节点,8个子流程。几乎涉及公司所有部门。
四、报表管理
1、公司通过获取主流程实时数据生成相应报表,及时掌握项目及业绩情况。如下图:
2、《个人业务报表》包含六大模块(也包含月份、周数、时间等的筛选及合计):
基本信息:部门、组别、姓名。
销售业绩:基本绩效目标、业务绩效目标、职业卫生报价产值、安全生产报价产值、已完成销售总额、绩效业绩目标总额、绩效业绩完成率。
综合客户签单情况:综合客户总量、已签客户数量、综合签单率、流失客户数量、流失率。
新增客户:累计新增数量、已签单数量、签单率。
原有客户:累计启动数量、已签单数量、签单率。
流失启动客户:累计启动数量、已签单数量、签单率。
《业务组业绩汇总表》和《部门业务汇总表》
3、项目进度表
根据通达提供的源代码,经过公司二次开发,我司申请了《职业卫生服务客户管理系统》、《职业卫生服务项目管理系统》两个软件著作权。并助力公司认定高新技术企业(已获批,并公示中)。
五、移动办公
根据公司员工基本每天都在外的特点,使用微信与OA集成,极大的方便了公司的办公管理。
六、二次开发
1、空白合同
根据需要,分公司的业务人员需要大批量的签订合同,通过空白合同审批预领取大批空白合同,针对已经使用的空白合同 可批量查询使用情况。对未使用的空白合同定期回收。空白合同审批单,如下图:
2、部分代码
jQuery(function(){
jQuery("*[name=DATA_17]").click(function(){
jQuery("*[name=DATA_18]").toggle();
});
jQuery("*[name=DATA_12]").click(function(){
jQuery("*[name=DATA_54]").toggle();
});
jQuery("*[name=DATA_13]").click(function(){
jQuery("*[name=DATA_55]").toggle();
});
jQuery("*[name=DATA_14]").click(function(){
jQuery("*[name=DATA_56]").toggle();
});
jQuery("*[name=DATA_15]").click(function(){
jQuery("*[name=DATA_57]").toggle();
});
jQuery("*[name=DATA_16]").click(function(){
jQuery("*[name=DATA_58]").toggle();
});
jQuery("*[name=DATA_52]").click(function(){
jQuery("*[name=DATA_59]").toggle();
});
jQuery("*[name=DATA_53]").click(function(){
jQuery("*[name=DATA_60]").toggle();
});
jQuery("#countnum").click(function(){ //计算合同份数
var num= {};
var i;
var count_num;
count_num=0;
num[0]=parseInt(jQuery("*[name=DATA_18]").val());
num[1]=parseInt(jQuery("*[name=DATA_54]").val());
num[2]=parseInt(jQuery("*[name=DATA_55]").val());
num[3]=parseInt(jQuery("*[name=DATA_56]").val());
num[4]=parseInt(jQuery("*[name=DATA_57]").val());
num[5]=parseInt(jQuery("*[name=DATA_58]").val());
num[6]=parseInt(jQuery("*[name=DATA_59]").val());
num[7]=parseInt(jQuery("*[name=DATA_60]").val());
for(i=0;i<=7;i++){
if(isNaN(num[i])){
num[i]=0;
}
count_num+=num[i];
}
count_num=2*count_num;
jQuery("*[name=DATA_50]").val(count_num);
});
jQuery("*[name=DATA_49]").blur(function(){
var str;
str=jQuery("*[name=DATA_49]").val();
str=str.replace(/[\r\n]/g," ");
str=str.replace(/\s+/g,' ');
jQuery("*[name=DATA_49]").val(str);
});
jQuery("#check").click(function(){
var cont =jQuery("*[name=DATA_49]").val();
jQuery.ajax({
url:'/flow_myfun/check.php'+'?num='+cont,
type:'get',
dataType:'json',
data:cont,
success:function(result){
if(result){
var showhtml="<table class='tb1' border='1'><tr><th>内部编号</th><th>合同编号</th><th>客户名称</th><th>制作日期</th><th>市场总监室审批</th></tr>";
// alert(result.length);
for (var i=0;i<result.length;i++){
if(result[i]['hth']=="尚未分配") result[i]['nbbh'] = "<font color='#FF0000'>" +result[i]['nbbh'] +"</font>";
showhtml+="<tr><td>"+result[i]['nbbh']+"</td>"+"<td>"+result[i]['hth']+"</td><td>"+result[i]['khmc']+"</td><td>"+result[i]['zzrq']+"</td><td>"+result[i]['zjqm']+"</td></tr>";
}
jQuery("#chakan").html(showhtml+"</table>");
}
}
});
});
})
2、合同号自动生成
部分代码:
DELIMITER $$
USE `TD_OA`$$
DROP TRIGGER IF EXISTS `auto_ht_num_2`$$
CREATE
TRIGGER `auto_ht_num_2` BEFORE INSERT ON `test_cfq`
FOR EACH ROW
BEGIN
DECLARE y_numtemp,t_account,num INT;
DECLARE ht_ms TEXT;
#获取当月月总数,
SELECT LEFT(code_order,2) INTO num FROM sys_code WHERE parent_no='proj_type' AND code_name=new.xmlx;
SELECT MAX(y_num) INTO y_numtemp FROM test_cfq WHERE xmlx IN(SELECT code_name FROM sys_code WHERE LEFT(code_order,2)=num) AND y_m=new.y_m;
#换月归零
IF y_numtemp IS NULL
THEN
SET y_numtemp=0;
END IF;
#合同前缀
SELECT code_no INTO ht_ms FROM sys_code WHERE parent_no='proj_type' AND code_name =new.xmlx;
#获取合同总数,换年归零
SELECT MAX(account) INTO t_account FROM test_cfq WHERE xmlx IN(SELECT code_name FROM sys_code WHERE LEFT(code_order,2)=num) AND LEFT(y_m,4)=LEFT(new.y_m,4);
#跨年归零
IF t_account IS NULL
THEN
SET t_account=0;
END IF;
#更新字段
SET new.account=t_account+1;
SET new.y_num=y_numtemp+1;
SET new.htbh = CONCAT(ht_ms,new.y_m,new.y_num,'-',new.account);
END;
$$
DELIMITER ;
3、客户通过手机进度项目进度查询:
部分代码:
<table width="77%" align="center" class="TableList" border="1">
<?php
$htbh = $_POST['htbh'];
$khmc = $_POST['dwqm'];
$con = mysql_connect("192.168.1.252:3336","test","123456");
if (!$con)
{
echo 'error,数据库连接失败!';
}
mysql_select_db("td_oa", $con);
$querry = "select * from vw_jdcx_b where htbh="."'".$htbh."'and xmmc=\"$khmc\"";
$querry2 ="select * from vw_xmjd where htbh="."'".$htbh."' and xmmc=\"$khmc\"";
$result1 = mysql_query($querry2);
$xm=mysql_fetch_array($result1);
if($xm[htbh]){
echo '<tr class="TableHeader"><td nowrap align="center" colspan="3" class="TableHeader" style="background-color: #e3e3e2"><b>
客户名称:'.$xm[xmmc].'<br>'.'(合同号:'.$xm[htbh].')</b><br></td></tr>'; }
else{
if($htbh){
echo '<br>';
echo '
<script type="text/javascript">
alert("输入错误,请核对后再输入!");
</script>';
unset($htbh);
unset($khmc);
}
}
$result = mysql_query($querry);
$i=1;
while($row=mysql_fetch_array($result)){ //遍历SQL语句执行结果把值赋给数组
if($prcs_name==$row[prcs_name]){
continue;
}
if($i%2==0){
echo'<tr class="TableLine2">';}
else{
echo '<tr class="TableLine1">';
}
echo '<td nowrap align="center" rowspan="1">第<b><span class="Big4">'.$i.'</span></b>步 </td>';
echo '<td><span >'.$row[prcs_name].'</span>
</td>
<td id="1_1"><font color="#009900">开始于:'.$row[PRCS_TIME].'</font><br>';
if($row[PRCS_FLAG]==2){
echo '<font color="#FF0000">正在办理中。。。</font>';}else{
echo'<font color="#FF0000">结束于:'.$row[DELIVER_TIME].'</font><br></td>
</tr>';}
$prcs_name = $row[prcs_name];
$i++;
}
mysql_close($con);
?>
</table>
七、通达的服务
在OA创建阶段,通达工程师现场服务很专业,沟通和创建过程很顺畅,OA交付后,在使用的过程中遇到问题均可在通达OA服务群里得到满意解答,通达的技术人员很专业,责任心很强,售后服务也很棒,在此真的很感谢通达及各位工程师。
八、产生的效益
增强公司级分公司之间的合作与沟通
增强各商业数据的准确性与时效性
项目统一管理,提高项目产出率。
降低运营与生产成本
提高工作效率与质量
获得软件著作权及高新技术企业
提高与客户的互动。
对员工
减少数据重复输入,在不同部门中共享数据
标准化流程,提高工作效率
提高客服满意度,尤其是在工时,质量与准时交货率方面
对管理者
将公司和分公司统一管理。
将项目统一管理,更准确的了解企业的项目运行状况。
更清楚,客观得了解员工效率。
实时掌握本部门的业绩数据,提高部门工作效率。
方便客户关注项目进展情况。