MaterialService.php 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. <?php
  2. namespace App\Service;
  3. use App\Model\BasicMaterial;
  4. use App\Model\Depart;
  5. use App\Model\Employee;
  6. use App\Model\EmployeeDepartPermission;
  7. use App\Model\EmployeeMenuPermission;
  8. use App\Model\EmployeeTeamPermission;
  9. use App\Model\Material;
  10. use App\Model\MaterialDetail;
  11. use App\Model\Role;
  12. use App\Model\SysMenu;
  13. use App\Model\Team;
  14. use Illuminate\Support\Facades\DB;
  15. use Illuminate\Support\Facades\Hash;
  16. /**
  17. * 人员相关
  18. * @package App\Models
  19. */
  20. class MaterialService extends Service
  21. {
  22. public function basicMaterialEdit($data){
  23. if($this->isEmpty($data,'id')) return [201,'ID不存在!'];
  24. list($status,$msg) = $this->basicMaterialRule($data);
  25. if(!$status) return [$status,$msg];
  26. $first = BasicMaterial::where('title',$data['title'])->where('id','<>',$data['id'])->where('del_time',0)->first();
  27. if(!empty($first))return [false,'工号已存在!'];
  28. $model = new BasicMaterial();
  29. $model = $model->where('id',$data['id'])->first();
  30. $model->id_card = $data['title'];
  31. $model->save();
  32. return [true,'保存成功!'];
  33. }
  34. public function basicMaterialAdd($data,$user){
  35. list($status,$msg) = $this->basicMaterialRule($data);
  36. if(!$status) return [$status,$msg];
  37. $first = BasicMaterial::where('title',$data['title'])->where('del_time',0)->first();
  38. if(!empty($first))return [false,'名称已存在!'];
  39. $model = new BasicMaterial();
  40. $model->title = $data['title'];
  41. $model->save();
  42. return [true,'保存成功!'];
  43. }
  44. public function basicMaterialDel($data){
  45. if($this->isEmpty($data,'id')) return [false,'ID必须!'];
  46. BasicMaterial::where('id',$data['id'])->update([
  47. 'del_time'=>time()
  48. ]);
  49. return [true,'删除成功'];
  50. }
  51. public function basicMaterialList($data){
  52. $list = BasicMaterial::where('del_time',0)->select('title','crt_time','upd_time','id')->orderBy('id','desc');
  53. $list = $this->limit($list,'',$data);
  54. return [200,$list];
  55. }
  56. public function basicMaterialRule($data){
  57. if($this->isEmpty($data,'title')) return [false,'名称不存在!'];
  58. return [true,''];
  59. }
  60. public function MaterialEdit($data){
  61. list($status,$msg) = $this->MaterialRule($data);
  62. if(!$status) return [$status,$msg];
  63. if($this->isEmpty($data,'id')) return [false,'ID必传'];
  64. $first = Material::where('title',$data['title'])->where('id','<>',$data['id'])->where('del_time',0)->first();
  65. if(!empty($first))return [false,'名称已存在!'];
  66. $first = Material::where('abbreviation_title',$data['abbreviation_title'])->where('id','<>',$data['id'])->where('del_time',0)->first();
  67. if(!empty($first))return [false,'简称已存在!'];
  68. DB::beginTransaction();
  69. try{
  70. $model = new Material();
  71. $model = $model->where('id',$data['id'])->first();
  72. $model->b_m_id = $data['b_m_id'] ;
  73. $model->title = $data['title'] ;
  74. $model->abbreviation_title = $data['abbreviation_title'] ;
  75. $model->unit = $data['unit'] ;
  76. $model->remark = $data['remark'] ?? '' ;
  77. $model->img_url = $data['img_url'] ?? '' ;
  78. $model->save();
  79. $detail_insert = [];
  80. MaterialDetail::where('material_id',$model->id)->update([
  81. 'del_time' => time()
  82. ]);
  83. if(isset($data['children'])){
  84. foreach ($data['children'] as $v){
  85. $detail_insert[] = [
  86. 'material_id' => $model->id,
  87. 'price' => $v['price'],
  88. 'long' => $v['long'],
  89. 'width' => $v['width'],
  90. 'high' => $v['high'],
  91. 'code' => $v['code'],
  92. 'brand' => $v['brand'],
  93. ];
  94. }
  95. }
  96. MaterialDetail::insert($detail_insert);
  97. DB::commit();
  98. }catch (\Exception $e){
  99. DB::rollBack();
  100. return [false,$e->getMessage()];
  101. }
  102. return [true,'保存成功!'];
  103. }
  104. public function MaterialAdd($data,$user){
  105. // if($this->isEmpty($data,'title')) return [201,'名称不存在!'];
  106. list($status,$msg) = $this->MaterialRule($data);
  107. if(!$status) return [$status,$msg];
  108. $first = Material::where('title',$data['title'])->where('del_time',0)->first();
  109. if(!empty($first))return [false,'名称已存在!'];
  110. $first = Material::where('abbreviation_title',$data['abbreviation_title'])->where('del_time',0)->first();
  111. if(!empty($first))return [false,'简称已存在!'];
  112. DB::beginTransaction();
  113. try{
  114. $model = new Material();
  115. $model->b_m_id = $data['b_m_id'] ;
  116. $model->title = $data['title'] ;
  117. $model->abbreviation_title = $data['abbreviation_title'] ;
  118. $model->unit = $data['unit'] ;
  119. $model->remark = $data['remark'] ?? '' ;
  120. $model->img_url = $data['img_url'] ?? '' ;
  121. $model->save();
  122. $detail_insert = [];
  123. if(isset($data['detail'])){
  124. foreach ($data['detail'] as $v){
  125. $detail_insert[] = [
  126. 'material_id' => $model->id,
  127. 'price' => $v['price'],
  128. 'long' => $v['long'],
  129. 'width' => $v['width'],
  130. 'high' => $v['high'],
  131. 'code' => $v['code'],
  132. 'brand' => $v['brand'],
  133. ];
  134. }
  135. }
  136. MaterialDetail::insert($detail_insert);
  137. DB::commit();
  138. }catch (\Exception $e){
  139. DB::rollBack();
  140. return [false,$e->getMessage()];
  141. }
  142. return [true,'保存成功!'];
  143. }
  144. public function MaterialDel($data){
  145. if($this->isEmpty($data,'id')) return [false,'ID必须!'];
  146. Material::where('id',$data['id'])->update([
  147. 'del_time'=>time()
  148. ]);
  149. MaterialDetail::where('material_id',$data['id'])->update([
  150. 'del_time'=>time()
  151. ]);
  152. return [true,'删除成功'];
  153. }
  154. public function MaterialList($data){
  155. $list = Material::where('del_time',0)->select('title','b_m_id','abbreviation_title','unit','crt_time','upd_time','id')->orderBy('id','desc');
  156. $list = $this->limit($list,'',$data);
  157. return [true,$list];
  158. }
  159. public function MaterialDetail($data){
  160. if($this->isEmpty($data,'id')) return [false,'ID必传'];
  161. $id = $data['id'];
  162. $detail = Material::where('del_time',0)->where('id',$id)->select('title','b_m_id','abbreviation_title','unit','crt_time','upd_time','id')->first();
  163. if(empty($detail)) return [false,'数据不存在!'];
  164. $detail['detail'] = MaterialDetail::where('material_id',$id)->select('price','long','width','high','crt_time','upd_time','code','brand')->get()->toArray();
  165. return [true,$detail];
  166. }
  167. public function MaterialRule($data){
  168. if($this->isEmpty($data,'b_m_id')) return [false,'物料分类不存在!'];
  169. if($this->isEmpty($data,'title')) return [false,'物料名称不存在!'];
  170. if($this->isEmpty($data,'abbreviation_title')) return [false,'物料简称不存在!'];
  171. if($this->isEmpty($data,'unit')) return [false,'物料单位不存在!'];
  172. return [true,''];
  173. }
  174. }