|
@@ -104,6 +104,8 @@ class Transfer extends Start_Controller {
|
|
|
}
|
|
}
|
|
|
else if($arg == 'sczexcel'){
|
|
else if($arg == 'sczexcel'){
|
|
|
$this->_sczexcel();
|
|
$this->_sczexcel();
|
|
|
|
|
+ }else if($arg == 'czbmsfcz'){
|
|
|
|
|
+ $this->_czbmIsOutExcel();
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
@@ -3044,4 +3046,186 @@ class Transfer extends Start_Controller {
|
|
|
header( "Expires: 0" );
|
|
header( "Expires: 0" );
|
|
|
exit($str);
|
|
exit($str);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 导出excel 操作部门是否出库
|
|
|
|
|
+ */
|
|
|
|
|
+ public function _czbmIsOutExcel(){
|
|
|
|
|
+
|
|
|
|
|
+ if($this->input->method() == 'get'){
|
|
|
|
|
+ $number = $this->input->get('number',true);
|
|
|
|
|
+ $color = $this->input->get('color',true);
|
|
|
|
|
+ $purchase = $this->input->get('purchase',true);
|
|
|
|
|
+ $transfer = $this->input->get('transfer',true);
|
|
|
|
|
+ $lx = $this->input->get('lx',true);
|
|
|
|
|
+ $type = $this->input->get('type',true);
|
|
|
|
|
+ $pm = $this->input->get('pm',true);
|
|
|
|
|
+ $jiaji = $this->input->get('jiaji',true);
|
|
|
|
|
+ $timetk = $this->input->get('timetk',true);
|
|
|
|
|
+ $timetj = $this->input->get('timetj',true);
|
|
|
|
|
+ $timetk = strtotime($timetk);
|
|
|
|
|
+ $timetj = strtotime($timetj);
|
|
|
|
|
+ $where = '1=1';
|
|
|
|
|
+ if($number)
|
|
|
|
|
+ {
|
|
|
|
|
+ $where .= " and number = '$number'";
|
|
|
|
|
+ }
|
|
|
|
|
+ if($pm){
|
|
|
|
|
+ $where .= " and pm like '%".$pm."%'";
|
|
|
|
|
+ }
|
|
|
|
|
+ if($purchase)
|
|
|
|
|
+ {
|
|
|
|
|
+ $where .= " and purchase = '$purchase'";
|
|
|
|
|
+ }
|
|
|
|
|
+ if($color)
|
|
|
|
|
+ {
|
|
|
|
|
+ $where .= " and fpdata like '%-".$color."-%'";
|
|
|
|
|
+ }
|
|
|
|
|
+ if($lx)
|
|
|
|
|
+ {
|
|
|
|
|
+ if($lx == 1)
|
|
|
|
|
+ {
|
|
|
|
|
+ $where .= " and ordernumber = ''";
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ $where .= " and ordernumber != ''";
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if($jiaji){
|
|
|
|
|
+ if($jiaji == 1){
|
|
|
|
|
+ $where .= " and is_jiaji = 0";
|
|
|
|
|
+ }
|
|
|
|
|
+ if($jiaji == 2){
|
|
|
|
|
+ $where .= " and is_jiaji = 2";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ //数据排序
|
|
|
|
|
+ $order_str = "id desc";
|
|
|
|
|
+
|
|
|
|
|
+ $where .= " and ctime12 > '$timetk' and ctime12 < '$timetj'";
|
|
|
|
|
+ if($type)
|
|
|
|
|
+ {
|
|
|
|
|
+ if($type == 3){
|
|
|
|
|
+ if($transfer)
|
|
|
|
|
+ {
|
|
|
|
|
+ $where .= " and rk like '%|".$transfer."|%' and rk != ck";
|
|
|
|
|
+ }
|
|
|
|
|
+ }else{
|
|
|
|
|
+ $type = ($type==1)?'rk':'ck';
|
|
|
|
|
+ if($transfer)
|
|
|
|
|
+ {
|
|
|
|
|
+ $where .= " and $type like '%|".$transfer."|%'";
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ if($transfer)
|
|
|
|
|
+ {
|
|
|
|
|
+ $where .= " and rk like '%|".$transfer."|%'";
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //取得信息列表
|
|
|
|
|
+ $info_list = $this->systemtransfer->find_all($where,'*',$order_str);
|
|
|
|
|
+ $transfer = $this->transfer->find_all();
|
|
|
|
|
+ $t = array();
|
|
|
|
|
+ foreach ($transfer as $v)
|
|
|
|
|
+ {
|
|
|
|
|
+ $t[$v['id']] = $v['title'];
|
|
|
|
|
+ $ot[$v['id']] = ($v['orvertime']>0)?$v['orvertime']*24*3600:0;
|
|
|
|
|
+ }
|
|
|
|
|
+ $final_list = [];
|
|
|
|
|
+ //格式化数据
|
|
|
|
|
+ foreach ($info_list as $key=>$value)
|
|
|
|
|
+ {
|
|
|
|
|
+ $transfer_list = $this->_get_transfer_data($value,$t);
|
|
|
|
|
+ $final_list[] = [
|
|
|
|
|
+ 'number'=>$value['number'],
|
|
|
|
|
+ 'pm'=>$value['pm'],
|
|
|
|
|
+ 'transfer_list'=>$transfer_list,
|
|
|
|
|
+ ];
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ echo "<pre>";
|
|
|
|
|
+ print_r($final_list);
|
|
|
|
|
+ die;
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public function _get_transfer_data($info,$t){
|
|
|
|
|
+ $rk_list = explode('|',trim($info['rk'],'|'));
|
|
|
|
|
+ $rk_time = explode('|',trim($info['rktime'],'|'));
|
|
|
|
|
+ $ck_list = explode('|',trim($info['ck'],'|'));
|
|
|
|
|
+ $ck_time = explode('|',trim($info['cktime'],'|'));
|
|
|
|
|
+
|
|
|
|
|
+ if(count($rk_time) < count($ck_time)){
|
|
|
|
|
+ return [
|
|
|
|
|
+ 'code'=>-1,
|
|
|
|
|
+ 'msg'=>'数据异常,('.$info['id'].')联系技术',
|
|
|
|
|
+ ];
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $tran_list = [];
|
|
|
|
|
+ $len = count($rk_list);
|
|
|
|
|
+ $ck_index = 0;
|
|
|
|
|
+ for($i = 0;$i < $len;$i++){
|
|
|
|
|
+
|
|
|
|
|
+ if(isset($rk_list[$i]) && empty($ck_list[$ck_index]) ){
|
|
|
|
|
+ $tran_list[] = [
|
|
|
|
|
+ 'lx'=>$rk_list[$i],
|
|
|
|
|
+ 'lx_show'=>(isset($t[$rk_list[$i]])?$t[$rk_list[$i]]:''),
|
|
|
|
|
+ 'rk_time'=>$rk_time[$i],
|
|
|
|
|
+ 'ck_time'=>'',
|
|
|
|
|
+ 'is_over'=>1,//未出库
|
|
|
|
|
+ ];
|
|
|
|
|
+ }else{
|
|
|
|
|
+ if($rk_list[$i] == $ck_list[$ck_index]){
|
|
|
|
|
+ $tran_list[] = [
|
|
|
|
|
+ 'lx'=>$rk_list[$i],
|
|
|
|
|
+ 'lx_show'=>(isset($t[$rk_list[$i]])?$t[$rk_list[$i]]:''),
|
|
|
|
|
+ 'rk_time'=>$rk_time[$i],
|
|
|
|
|
+ 'ck_time'=>$ck_time[$ck_index],
|
|
|
|
|
+ 'is_over'=>2,//已出库
|
|
|
|
|
+ ];
|
|
|
|
|
+ $ck_index++;
|
|
|
|
|
+ }else if($rk_list[$i] != $ck_list[$ck_index]){
|
|
|
|
|
+ if($rk_list[$i] == $ck_list[$ck_index-1]){
|
|
|
|
|
+ //估计是之前完成 或者 成品库 强制扫入
|
|
|
|
|
+ $tran_list[] = [
|
|
|
|
|
+ 'lx'=>$rk_list[$i],
|
|
|
|
|
+ 'lx_show'=>(isset($t[$rk_list[$i]])?$t[$rk_list[$i]]:''),
|
|
|
|
|
+ 'rk_time'=>$rk_time[$i],
|
|
|
|
|
+ 'ck_time'=>$ck_time[$ck_index-1],
|
|
|
|
|
+ 'is_over'=>2,//已出库
|
|
|
|
|
+ ];
|
|
|
|
|
+ }else if($rk_list[$i] == $ck_list[$ck_index+1]){
|
|
|
|
|
+ //估计是完成 或者 成品库 强制扫出了
|
|
|
|
|
+ $tran_list[] = [
|
|
|
|
|
+ 'lx'=>$rk_list[$i],
|
|
|
|
|
+ 'lx_show'=>(isset($t[$rk_list[$i]])?$t[$rk_list[$i]]:''),
|
|
|
|
|
+ 'rk_time'=>$rk_time[$i],
|
|
|
|
|
+ 'ck_time'=>$ck_time[$ck_index+1],
|
|
|
|
|
+ 'is_over'=>2,//已出库
|
|
|
|
|
+ ];
|
|
|
|
|
+ $ck_index++;
|
|
|
|
|
+ $ck_index++;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ return $tran_list;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|