commit
485e93ae43
@ -68,7 +68,7 @@ class BeforehandOrderLists extends BaseAdminDataLists implements ListsSearchInte
|
||||
break;
|
||||
}
|
||||
return BeforehandOrder::where($this->searchWhere)
|
||||
->field(['id', 'order_id', 'store_id', 'order_type', 'total_num', 'total_price', 'outbound_id', 'admin_id', 'create_time', 'status', 'mark', 'warehousing_id', 'file'])
|
||||
->field(['id', 'order_id', 'order_sn','store_id', 'order_type', 'total_num', 'total_price', 'outbound_id', 'admin_id', 'create_time', 'status', 'mark', 'warehousing_id', 'file'])
|
||||
->limit($this->limitOffset, $this->limitLength)
|
||||
->order(['id' => 'desc'])
|
||||
->select()->each(function ($item) {
|
||||
|
@ -12,6 +12,9 @@ use app\common\model\delivery_service\DeliveryService;
|
||||
use app\common\model\dict\DictData;
|
||||
use app\common\model\store_product\StoreProduct;
|
||||
use app\common\model\store_product_price\StoreProductPrice;
|
||||
use app\common\model\store_product_unit\StoreProductUnit;
|
||||
use app\common\model\user\User;
|
||||
use app\common\service\workWechat\ProductOffer;
|
||||
use support\exception\BusinessException;
|
||||
use think\facade\Db;
|
||||
|
||||
@ -136,8 +139,9 @@ class PurchaseProductOfferLogic extends BaseLogic
|
||||
'after_sales' => $params['after_sales'],
|
||||
]);
|
||||
$find = StoreProductPrice::where(['offer_id' => $params['id']])->find();
|
||||
$top_cate_id = StoreProduct::where('id', $offer['product_id'])->value('top_cate_id');
|
||||
$dict_data = DictData::where('type_value', 'price_lv_' . $top_cate_id)->field('name,value')->select();
|
||||
$product = StoreProduct::where('id', $offer['product_id'])->withTrashed()->field('store_name,top_cate_id')->find();
|
||||
$unit_name=StoreProductUnit::where('id', $offer['unit'])->value('name');
|
||||
$dict_data = DictData::where('type_value', 'price_lv_' . $product['top_cate_id'])->field('name,value')->select();
|
||||
$data = [];
|
||||
$data['bhoid'] = $offer['order_id'];
|
||||
$data['offer_id'] = $params['id'];
|
||||
@ -167,6 +171,17 @@ class PurchaseProductOfferLogic extends BaseLogic
|
||||
StoreProductPrice::create($data);
|
||||
}
|
||||
Db::commit();
|
||||
$offer['store_name']=$product['store_name'];
|
||||
$offer['unit_name']=$unit_name;
|
||||
$offer['buyer_name']=User::where('id',$offer['buyer_id'])->value('real_name');
|
||||
if($offer['pay_type']==1){
|
||||
$offer['pay_type_name']='赊账';
|
||||
}elseif($offer['pay_type']==2){
|
||||
$offer['pay_type_name']='现金';
|
||||
}else{
|
||||
$offer['pay_type_name']='没设置';
|
||||
}
|
||||
ProductOffer::push($offer);
|
||||
return true;
|
||||
} catch (\Throwable $e) {
|
||||
Db::rollback();
|
||||
|
@ -8,11 +8,14 @@ use app\common\logic\StoreFinanceFlowLogic;
|
||||
use app\admin\logic\store_product\StoreProductLogic;
|
||||
use app\admin\validate\tools\GenerateTableValidate;
|
||||
use app\admin\logic\tools\GeneratorLogic;
|
||||
use app\api\lists\purchase_product_offer\PurchaseProductOfferListsTwo;
|
||||
use app\api\logic\order\OrderLogic as OrderOrderLogic;
|
||||
use app\common\cache\ExportCache;
|
||||
use app\common\logic\PayNotifyLogic;
|
||||
use app\common\logic\store_order\StoreOrderLogic;
|
||||
use app\common\model\beforehand_order_record\BeforehandOrderRecord;
|
||||
use app\common\model\Config as ModelConfig;
|
||||
use app\common\model\purchase_product_offer\PurchaseProductOffer;
|
||||
use app\common\model\store_branch_product\StoreBranchProduct;
|
||||
use app\common\model\store_finance_flow\StoreFinanceFlow;
|
||||
use app\common\model\store_order\StoreOrder;
|
||||
@ -50,7 +53,7 @@ use PhpOffice\PhpWord\Style\Font;
|
||||
|
||||
class IndexController extends BaseApiController
|
||||
{
|
||||
public $notNeedLogin = ['index', 'app_update', 'express_list', 'province', 'city', 'area', 'street', 'village', 'brigade', 'config', 'push', 'view_beforehand_order_record', 'view_beforehand_order_record_enter'];
|
||||
public $notNeedLogin = ['index', 'app_update', 'express_list', 'province', 'city', 'area', 'street', 'village', 'brigade', 'config', 'push', 'purchase_product_offer'];
|
||||
|
||||
public function index()
|
||||
{
|
||||
@ -251,55 +254,29 @@ class IndexController extends BaseApiController
|
||||
return $this->success('ok', ['data' => $a]);
|
||||
}
|
||||
|
||||
public function view_beforehand_order_record()
|
||||
/**
|
||||
* @notes 采购商品下载
|
||||
*/
|
||||
public function purchase_product_offer()
|
||||
{
|
||||
$id = $this->request->get('id');
|
||||
$is_xlsx = $this->request->get('is_xlsx');
|
||||
if ($is_xlsx == 1) {
|
||||
$xlsx_name = '清单';
|
||||
} elseif ($is_xlsx == 2) {
|
||||
$xlsx_name = '分单';
|
||||
} elseif ($is_xlsx == 3) {
|
||||
$xlsx_name = '采购';
|
||||
} elseif ($is_xlsx == 4) {
|
||||
$xlsx_name = '出库';
|
||||
$date=$this->request->get('date');
|
||||
if($date){
|
||||
$this->request->setGet(['date'=>$date,'export'=>2]);
|
||||
$lists=new PurchaseProductOfferListsTwo();
|
||||
$exportDownloadUrl = $lists->createExcel($lists->setExcelFields(), $lists->lists());
|
||||
$fileKey=explode('?file=',$exportDownloadUrl)[1];
|
||||
//通过文件缓存的key获取文件储存的路径
|
||||
$exportCache = new ExportCache();
|
||||
$fileInfo = $exportCache->getFile($fileKey);
|
||||
if (empty($fileInfo)) {
|
||||
return $this->fail('下载文件不存在');
|
||||
}
|
||||
return view('beforehand_order/record', ['id' => $id, 'is_xlsx' => $is_xlsx, 'xlsx_name' => $xlsx_name]);
|
||||
}
|
||||
public function view_beforehand_order_record_enter()
|
||||
{
|
||||
$id = $this->request->post('id');
|
||||
$check = $this->request->post('check');
|
||||
$is_xlsx = $this->request->post('is_xlsx', 0);
|
||||
if ($is_xlsx) {
|
||||
if ($is_xlsx == 1) {
|
||||
$file_path = BeforehandOrderLogic::OrderList(['id' => $id]);
|
||||
return $this->success('导出成功', ['url' => $file_path]);
|
||||
} elseif ($is_xlsx == 2) {
|
||||
$file_path = BeforehandOrderLogic::OrderAllocation(['id' => $id]);
|
||||
return $this->success('导出成功', ['url' => $file_path]);
|
||||
} elseif ($is_xlsx == 3) {
|
||||
$file_path = BeforehandOrderLogic::OrderInfo(['id' => $id]);
|
||||
return $this->success('导出成功', ['url' => $file_path]);
|
||||
} elseif ($is_xlsx == 4) {
|
||||
$file_path = BeforehandOrderLogic::OrderOutbound(['id' => $id]);
|
||||
return $this->success('导出成功', ['url' => $file_path]);
|
||||
} else {
|
||||
return $this->fail('导出失败');
|
||||
}
|
||||
}
|
||||
$check_id = 0;
|
||||
if ($check == '001') {
|
||||
$check_id = 14;
|
||||
}
|
||||
if ($check == '002') {
|
||||
$check_id = 6;
|
||||
}
|
||||
$res = BeforehandOrderRecord::where(['id' => $id])->update(['check_user_id' => $check_id, 'status' => 1]);
|
||||
if ($res) {
|
||||
return $this->success('审核通过');
|
||||
} else {
|
||||
return $this->fail('审核失败');
|
||||
//下载前删除缓存
|
||||
Cache::delete($fileKey);
|
||||
return response()->download($fileInfo['src'] . $fileInfo['name'],$fileInfo['name']);
|
||||
}else{
|
||||
return $this->fail('时间不能为空');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,111 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\lists\purchase_product_offer;
|
||||
|
||||
|
||||
use app\common\model\purchase_product_offer\PurchaseProductOffer;
|
||||
use app\common\lists\ListsSearchInterface;
|
||||
use app\common\model\delivery_service\DeliveryService;
|
||||
use app\common\model\store_product\StoreProduct;
|
||||
use app\common\model\store_product_unit\StoreProductUnit;
|
||||
use app\api\lists\BaseApiDataLists;
|
||||
use app\common\model\store_category\StoreCategory;
|
||||
use app\common\lists\ListsExcelInterface;
|
||||
use app\common\model\user\User;
|
||||
|
||||
/**
|
||||
* 采购供应链商品列表
|
||||
* Class PurchaseProductOfferLists
|
||||
* @package app\admin\listspurchase_product_offer
|
||||
*/
|
||||
class PurchaseProductOfferListsTwo extends BaseApiDataLists implements ListsSearchInterface,ListsExcelInterface
|
||||
{
|
||||
|
||||
/**
|
||||
* @notes 设置搜索条件
|
||||
* @return \string[][]
|
||||
* @author admin
|
||||
* @date 2024/08/14 15:06
|
||||
*/
|
||||
public function setSearch(): array
|
||||
{
|
||||
return [
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取采购供应链商品列表
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
* @author admin
|
||||
* @date 2024/08/14 15:06
|
||||
*/
|
||||
public function lists(): array
|
||||
{
|
||||
$this->searchWhere[]=['buyer_confirm','=',1];
|
||||
return PurchaseProductOffer::where($this->searchWhere)
|
||||
->whereDay('create_time',$this->request->get('date'))
|
||||
->field(['id', 'order_id', 'product_id', 'price', 'buyer_nums', 'unit', 'total_price', 'buyer_confirm', 'buyer_id','mark'])
|
||||
->limit($this->limitOffset, $this->limitLength)
|
||||
->order(['product_id'=>'desc','id' => 'desc'])
|
||||
->select()->each(function($item){
|
||||
$find=StoreProduct::where('id',$item->product_id)->find();
|
||||
$item->store_name=$find->store_name;
|
||||
$item->unit_name=StoreProductUnit::where('id',$item->unit)->value('name');
|
||||
$item->category_name=StoreCategory::where('id',$find->top_cate_id)->value('name');
|
||||
$item->buyer_name=User::where('id',$item['buyer_id'])->value('real_name');
|
||||
|
||||
})
|
||||
->toArray();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取采购供应链商品数量
|
||||
* @return int
|
||||
* @author admin
|
||||
* @date 2024/08/14 15:06
|
||||
*/
|
||||
public function count(): int
|
||||
{
|
||||
return PurchaseProductOffer::where($this->searchWhere)->whereDay('create_time',$this->request->get('date'))->count();
|
||||
|
||||
}
|
||||
/**
|
||||
* @notes 导出文件名
|
||||
* @return string
|
||||
* @author 乔峰
|
||||
* @date 2022/11/24 16:17
|
||||
*/
|
||||
public function setFileName(): string
|
||||
{
|
||||
return '采购列表';
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 导出字段
|
||||
* @return string[]
|
||||
* @author 乔峰
|
||||
* @date 2022/11/24 16:17
|
||||
*/
|
||||
public function setExcelFields(): array
|
||||
{
|
||||
$data=[
|
||||
'order_id' => '订单id',
|
||||
'product_id' => '商品id',
|
||||
'store_name' => '商品名称',
|
||||
'unit_name' => '单位',
|
||||
'category_name' => '分类',
|
||||
'buyer_nums' => '数量',
|
||||
'buyer_name' => '采购人',
|
||||
'price' => '采购单价',
|
||||
'total_price' => '采购总价',
|
||||
'mark' => '备注',
|
||||
];
|
||||
return $data;
|
||||
}
|
||||
}
|
39
app/common/service/workWechat/ProductOffer.php
Normal file
39
app/common/service/workWechat/ProductOffer.php
Normal file
@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\service\workWechat;
|
||||
|
||||
use app\common\service\Curl;
|
||||
use support\Log;
|
||||
|
||||
class ProductOffer
|
||||
{
|
||||
public static function push($data)
|
||||
{
|
||||
try {
|
||||
$url = getenv('PUSHPRODUCTOFFER');
|
||||
if($url){
|
||||
$order_id = $data['order_id'];
|
||||
$store_name = $data['store_name'];
|
||||
$num = $data['buyer_nums'];
|
||||
$unit_name = $data['unit_name'];
|
||||
$price = $data['price'];
|
||||
$create_time = $data['create_time'];
|
||||
$buyer_name = $data['buyer_name'];
|
||||
$pay_type = $data['pay_type_name'];
|
||||
$urls=getenv('APP_URL')."/api/purchase_product_offer?date=".$data['create_time'];
|
||||
$arr = ["msgtype" => "markdown", "markdown" => ["content" => "有新的采购商品
|
||||
>订单ID:<font color=\"comment\">$order_id</font>
|
||||
>商品名称:<font color=\"comment\">$store_name</font>
|
||||
>数量/单位:<font color=\"comment\">$num/$unit_name</font>
|
||||
>采购人:<font color=\"comment\">$buyer_name</font>
|
||||
>采购金额:<font color=\"comment\">$price</font>
|
||||
>采购时间:<font color=\"comment\">$create_time</font>
|
||||
>支付方式:<font color=\"comment\">$pay_type</font>
|
||||
[下载今日采购表格]($urls)"]];
|
||||
(new Curl())->postJson($url, json_encode($arr, true));
|
||||
}
|
||||
} catch (\Throwable $e) {
|
||||
Log::error('推送商品信息保存:'.$e->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user