DataChange.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <?php
  2. namespace app\admin\controller;
  3. use app\admin\model\GoodZixun;use app\cxinv\model\CaixiaoData;use think\App;use think\facade\Validate;class DataChange extends Base{
  4. public function __construct(App $app) {
  5. parent::__construct($app);
  6. $this->model=new \app\admin\model\DataChange();
  7. }
  8. public function create(){
  9. $param =$this->request->only(["code"=>'',"source"=>"","remark"=>"","type"=>"",'oaCode'=>'',"change"=>"","apply_id"=>""],
  10. "post","trim");
  11. $valid =Validate::rule([
  12. "code|订单编号"=>"require",
  13. "source|修正类型"=>"require|number|in:1,2,3", # 1 数据修正 2 二次议价咨询单 3 数据同步结算
  14. "type|订单类型"=>"require|number|in:1,2,3",# 1 采购单 2 销售单 3 咨询商品
  15. "apply_id|申请人"=>"require|number",
  16. "change|修改字段内容"=>"require|array"
  17. ]);
  18. if($valid->check($param)==false) return error($valid->getError());
  19. $array_diff=[];
  20. if($param['type']==1){
  21. $purchOrder = \app\admin\model\PurcheaseOrder::where("cgdNo",$param['code'])->findOrEmpty();
  22. if($purchOrder->isEmpty()) return error("采购单不存在");
  23. $orderIsCheck = CaixiaoData::order_is_check($param['code'],1);
  24. if(!empty($orderIsCheck)){
  25. return error("采购单存在已对账数据",10005,$orderIsCheck);
  26. }
  27. if($purchOrder['order_source']!=2) return error("供应商非咨询单订单不可修改");
  28. $array_diff=array_diff($param['change'],$purchOrder->toArray());
  29. if(array_key_exists("supplierNo",$array_diff)){
  30. $persion = \app\user\model\Supplier::where("code",$array_diff['supplierNo'])->findOrEmpty();
  31. $array_diff['cgder'] =$persion->person?:'';
  32. $array_diff['cgder_id'] =$persion->personid?:'';
  33. }
  34. $before= array_diff($purchOrder->toArray(),$param['change']);
  35. }
  36. if($param['type']==2){
  37. $saleOrder = \app\admin\model\Sale::where("orderCode",$param['code'])->findOrEmpty();
  38. if($saleOrder->isEmpty()) return error("销售单不存在");
  39. $orderIsCheck = CaixiaoData::order_is_check($param['code']);
  40. if(!empty($orderIsCheck)){
  41. return error("销售单存在已对账数据",10005,$orderIsCheck);
  42. }
  43. $array_diff=array_diff($param['change'],$saleOrder->toArray());
  44. $before= array_diff($saleOrder->toArray(),$param['change']);
  45. }
  46. if($param['type']==3){
  47. $good = GoodZixun::where("spuCode",$param['code'])->findOrEmpty();
  48. if($good->isEmpty()) return error("咨询商品不存在");
  49. $array_diff=array_diff($param['change'],$good->toArray());
  50. $before= array_diff($good->toArray(),$param['change']);
  51. }
  52. $isT= $this->model->where(["code"=>$param['code'],"status"=>1])->findOrEmpty();
  53. if($isT->isEmpty()==false)return error("订单修改存在未完成得流程");
  54. $data=[
  55. 'code'=>$param['code'],
  56. 'type'=>$param['type'],
  57. 'source'=>$param['source'],
  58. 'before'=>$before,
  59. 'after'=>$array_diff,
  60. 'oaCode'=>$param['oaCode'],
  61. 'apply_id'=>$param['apply_id'],
  62. 'apply_name'=>\app\user\model\User::where("account_id",$param['apply_id'])->value("nickname",""),
  63. 'creater_id'=>$this->uid,
  64. 'creater'=>$this->uname,
  65. 'remark'=>$param['remark'],
  66. 'status'=>$param['source']==3?2:1,
  67. ];
  68. $this->model->create($data);
  69. return success("新建成功");
  70. }
  71. public function list(){
  72. $param = $this->request->only(['code'=>'','oaCode'=>'','type'=>'','source'=>'','apply_name'=>'','status'=>'','page'=>1,
  73. 'size'=>15],'post','trim');
  74. $param['source']==''?: $where[]=['source','=',$param['source']];
  75. $param['code']==''?: $where[]=['code','like',"%{$param['code']}%"];
  76. $param['apply_name']==''?: $where[]=['apply_name','like',"%{$param['apply_name']}%"];
  77. $param['oaCode']==''?: $where[]=['oaCode','like',"%{$param['oaCode']}%"];
  78. $param['type']==''?: $where[]=['type','=',$param['type']];
  79. $param['status']==''?: $where[]=['status','=',$param['status']];
  80. $list = $this->model->where($where)->order('id','desc')->paginate(['page'=>$param['page'],
  81. 'list_rows'=>$param['size']]);
  82. return success('获取成功',['list'=>$list->items(),'count'=>$list->total()]);
  83. }
  84. public function info(){
  85. $param = $this->request->only(['id'],'post','trim');
  86. $info = $this->model->findOrEmpty($param['id']);
  87. return success('获取成功',$info);
  88. }
  89. public function status(){
  90. $param = $this->request->only(['id'=>"",'status'=>"",'remark'=>""],'post','trim');
  91. $Valid =Validate::rule(["id|申请id"=>"require","status|状态"=>"require|number|in:2,3"]);
  92. if($Valid->check($param)==false) return error($Valid->getError());
  93. $info = $this->model->findOrEmpty($param['id']);
  94. if($info->isEmpty())return error('未找到申请单数据');
  95. if($info->status!=1) return error("申请单数据已审核");
  96. $info->status=$param['status'];
  97. $info->remark=$param['remark'];
  98. if($param['status']==2){
  99. if($param['type']==1){
  100. $orderIsCheck = CaixiaoData::order_is_check($param['code'],1);
  101. if(!empty($orderIsCheck)){
  102. return error('采购单存在已对账数据',10005,$orderIsCheck);
  103. }
  104. }
  105. if($param['type']==2){
  106. $orderIsCheck = CaixiaoData::order_is_check($param['code']);
  107. if(!empty($orderIsCheck)){
  108. return error('销售单存在已对账数据',10005,$orderIsCheck);
  109. }
  110. }
  111. }
  112. $info->save();
  113. return success("操作成功");
  114. }
  115. }