max('order_number'); if(empty($order_number)){ $number = str_pad(1,3,'0',STR_PAD_LEFT); $number = $str . $number; }else{ $tmp = substr($order_number, -3); $tmp = $tmp + 1; //超过999 if(strlen($tmp) > 3) return ''; $number = str_pad($tmp,3,'0',STR_PAD_LEFT); $number = $str . $number; } return $number; } //施工单订单合同号 public static function createConstructionOrderNumber1($prefix){ $str = $prefix . date('Ymd',time()); $order_number = Construction::where('order_number','Like','%'. $str . '%') ->max('order_number'); if(empty($order_number)){ $number = str_pad(1,3,'0',STR_PAD_LEFT); $number = $str . $number; }else{ $tmp = substr($order_number, -3); $tmp = $tmp + 1; //超过999 if(strlen($tmp) > 3) return ''; $number = str_pad($tmp,3,'0',STR_PAD_LEFT); $number = $str . $number; } return $number; } static function generateOrderNumber() { // 获取当前日期 $date = date('Ymd', time()); // 从数据库中获取已存在的最大单据号 $maxOrderNumber = SalesOrder::max('order_number'); // 定义单据号位数 $digitCount = 6; // 如果数据库中没有单据号,则从000001开始 if(empty($maxOrderNumber)){ $number = $date . str_pad(1, $digitCount, '0', STR_PAD_LEFT); }else{ // 获取数字部分 $lastNumber = substr($maxOrderNumber, -1 * $digitCount); $lastNumber = (int)$lastNumber; // 数字自增 $number = $lastNumber + 1; $number = str_pad($number, $digitCount, '0', STR_PAD_LEFT); // 拼接单据号 $number = $date . $number; } return $number; } }