|
@@ -933,36 +933,44 @@ class inputAction extends Action
|
|
{
|
|
{
|
|
$modenum = $this->post('modenum');
|
|
$modenum = $this->post('modenum');
|
|
$flow = m('flow')->initflow($modenum);
|
|
$flow = m('flow')->initflow($modenum);
|
|
|
|
+ // 要导入的字段
|
|
$rows = m('flow_element')->getall('mid='.$flow->modeid.' and `isdr`=1 and `iszb`=0','name,isbt,fields,isonly','`sort`,`id`');
|
|
$rows = m('flow_element')->getall('mid='.$flow->modeid.' and `isdr`=1 and `iszb`=0','name,isbt,fields,isonly','`sort`,`id`');
|
|
$fields = $fieldss = '';
|
|
$fields = $fieldss = '';
|
|
if(!$rows)return returnerror('没有导入的字段');
|
|
if(!$rows)return returnerror('没有导入的字段');
|
|
$onlyfield = array();
|
|
$onlyfield = array();
|
|
|
|
+ // 确定必填、唯一字段
|
|
foreach($rows as $k=>$rs){
|
|
foreach($rows as $k=>$rs){
|
|
$fields.=','.$rs['fields'].'';
|
|
$fields.=','.$rs['fields'].'';
|
|
if($rs['isbt']=='1')$fieldss.=','.$rs['fields'].'';
|
|
if($rs['isbt']=='1')$fieldss.=','.$rs['fields'].'';
|
|
if($rs['isonly']=='1')$onlyfield[] = $rs['fields']; //唯一字段
|
|
if($rs['isonly']=='1')$onlyfield[] = $rs['fields']; //唯一字段
|
|
}
|
|
}
|
|
|
|
+ // 字段名
|
|
$fields = substr($fields, 1);
|
|
$fields = substr($fields, 1);
|
|
|
|
+ // 必填字段名
|
|
if($fieldss!='')$fieldss = substr($fieldss,1);
|
|
if($fieldss!='')$fieldss = substr($fieldss,1);
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ // 需要导入的数据,提交过来的
|
|
$data = c('html')->importdata($fields, $fieldss); //获取提交过来要导入的数据库
|
|
$data = c('html')->importdata($fields, $fieldss); //获取提交过来要导入的数据库
|
|
if(!$data)return returnerror('没有可导入的数据,注意*是必填的哦');
|
|
if(!$data)return returnerror('没有可导入的数据,注意*是必填的哦');
|
|
|
|
|
|
$msgstr = '';
|
|
$msgstr = '';
|
|
-
|
|
|
|
- //保存前判断
|
|
|
|
|
|
+
|
|
|
|
+ // 保存前判断
|
|
if(method_exists($flow,'flowdaorubefore')){
|
|
if(method_exists($flow,'flowdaorubefore')){
|
|
$data = $flow->flowdaorubefore($data);
|
|
$data = $flow->flowdaorubefore($data);
|
|
if(is_string($data))return returnerror($data);
|
|
if(is_string($data))return returnerror($data);
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
//判断是否有重复
|
|
//判断是否有重复
|
|
$ldata = array();
|
|
$ldata = array();
|
|
foreach($data as $k=>$rs){
|
|
foreach($data as $k=>$rs){
|
|
$bos = true;
|
|
$bos = true;
|
|
|
|
+ // 唯一字段检查
|
|
foreach($onlyfield as $onid){
|
|
foreach($onlyfield as $onid){
|
|
|
|
+ // 数组中查找值,在获取重复数据的数组中查找唯一id
|
|
$val = arrvalue($rs, $onid);
|
|
$val = arrvalue($rs, $onid);
|
|
if(!isempt($val)){
|
|
if(!isempt($val)){
|
|
|
|
+ // 如果找到了记录一下对应字段,用于前端输出
|
|
$tos = $flow->rows("`$onid`='$val'");
|
|
$tos = $flow->rows("`$onid`='$val'");
|
|
if($tos>0){
|
|
if($tos>0){
|
|
$bos = false;
|
|
$bos = false;
|
|
@@ -971,15 +979,18 @@ class inputAction extends Action
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ // 没找到、没有唯一字段,则记录到$ldata数组中。
|
|
if($bos)$ldata[] = $rs;
|
|
if($bos)$ldata[] = $rs;
|
|
}
|
|
}
|
|
|
|
+ // 判断数组如果为空,则报个提示,没有需要导入的数据。。
|
|
if(!$ldata)return returnerror('没有可导入的数据'.$msgstr.'');
|
|
if(!$ldata)return returnerror('没有可导入的数据'.$msgstr.'');
|
|
|
|
+ // 获取字段
|
|
$allfields = $this->db->getallfields('[Q]'.$flow->mtable.'');
|
|
$allfields = $this->db->getallfields('[Q]'.$flow->mtable.'');
|
|
-
|
|
|
|
|
|
+
|
|
$oi = 0;
|
|
$oi = 0;
|
|
$dorudat= array();
|
|
$dorudat= array();
|
|
foreach($ldata as $k=>$rs){
|
|
foreach($ldata as $k=>$rs){
|
|
-
|
|
|
|
|
|
+
|
|
$id = (int)arrvalue($rs,'id','0');
|
|
$id = (int)arrvalue($rs,'id','0');
|
|
$where = '';
|
|
$where = '';
|
|
if($id>0){
|
|
if($id>0){
|