HydEquipment.php 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. <?php
  2. namespace catchAdmin\hydraulic\controller;
  3. error_reporting(1);
  4. use catchAdmin\equipment\model\EquipmentType;
  5. use catcher\base\CatchRequest as Request;
  6. use catcher\CatchResponse;
  7. use catcher\base\CatchController;
  8. use catchAdmin\hydraulic\model\HydEquipment as hydEquipmentModel;
  9. use catchAdmin\hydraulic\model\Hydraulic;
  10. use catchAdmin\hydraulic\model\Wrench;
  11. use catchAdmin\system\model\SysDictData;
  12. use catcher\base\CatchRequest;
  13. use PhpParser\Node\Stmt\Catch_;
  14. use think\facade\Db;
  15. class HydEquipment extends CatchController
  16. {
  17. protected $hydEquipmentModel;
  18. public function __construct(HydEquipmentModel $hydEquipmentModel)
  19. {
  20. $this->hydEquipmentModel = $hydEquipmentModel;
  21. }
  22. /**
  23. * 列表
  24. * @time 2022年06月21日 11:02
  25. * @param Request $request
  26. */
  27. public function index(Request $request) : \think\Response
  28. {
  29. return CatchResponse::paginate($this->hydEquipmentModel->getList());
  30. }
  31. /**
  32. * 保存信息
  33. * @time 2022年06月21日 11:02
  34. * @param Request $request
  35. */
  36. public function save(Request $request) : \think\Response
  37. {
  38. $data = $request->post();
  39. $hydraulic = null;
  40. $wrench = null;
  41. $hydequ=[
  42. // 物料号
  43. 'material_number'=>$data['material_number'],
  44. // 设备类别
  45. 'equipment_type'=>$data['equipment_type'],
  46. // 工具名称
  47. 'name'=>$data['name'],
  48. // 设备型号
  49. 'equipment_model'=>$data['equipment_model'],
  50. // 发放单位
  51. 'issue_unit'=>$data['issue_unit'],
  52. // 固定资产编号
  53. 'fixed_asset_number'=>$data['fixed_asset_number'],
  54. // 类固定资产编号
  55. 'fixed_asset_number2'=>$data['fixed_asset_number2'],
  56. // 序列号
  57. 'serial_number'=>$data['serial_number'],
  58. // 出厂编号
  59. 'factory_number'=>$data['factory_number'],
  60. // 上次校验时间
  61. 'check_last_time'=>$data['check_last_time'],
  62. // 下次校验时间
  63. 'check_next_time'=>$data['check_next_time'],
  64. // 校验状态
  65. 'check_status'=>$data['check_status'],
  66. // 状态
  67. 'status'=>$data['status'],
  68. 'address'=>$data['address'],
  69. 'longitude'=>$data['longitude'],
  70. 'latitude'=>$data['latitude']
  71. ];
  72. Db::startTrans();
  73. try{
  74. $id = $this->hydEquipmentModel->storeBy($hydequ);
  75. if($data['equipment_type']==2)
  76. {
  77. $hydraulic=[
  78. // 编号
  79. 'number'=>$data['number'],
  80. // 所属部门
  81. 'department_id'=>$data['department_id'],
  82. 'remark'=>$data['remark']?$data['remark']:'',
  83. 'max_pressure'=>$data['max_pressure'],
  84. 'min_pressure'=>$data['min_pressure'],
  85. 'imei'=>$data['imei'],
  86. 'effective_period'=>$data['effective_period'],
  87. //设备的id
  88. 'eq_id'=>$id
  89. ];
  90. Hydraulic::create($hydraulic);
  91. }
  92. //保存扳手
  93. if($data['equipment_type']==3||$data['equipment_type']==4)
  94. {
  95. $wrench = [
  96. // 编号
  97. 'number'=>$data['number'],
  98. //设备id
  99. 'eq_id'=>$id,
  100. // 所属部门
  101. 'department_id'=>$data['department_id'],
  102. 'remark'=>$data['remark']?$data['remark']:'',
  103. 'pressure'=>$data['pressure'],
  104. 'angle_sensor'=>$data['angle_sensor'],
  105. // 扭矩
  106. 'torque'=>$data['torque'],
  107. ];
  108. Wrench::create($wrench);
  109. }
  110. }catch(\Exception $e)
  111. {
  112. Db::rollback();
  113. return CatchResponse::fail($e->getMessage());
  114. }
  115. Db::commit();
  116. return CatchResponse::success();
  117. }
  118. /**
  119. * 读取
  120. * @time 2022年06月21日 11:02
  121. * @param $id
  122. */
  123. public function read($id) : \think\Response
  124. {
  125. return CatchResponse::success($this->hydEquipmentModel->findBy($id));
  126. }
  127. /**
  128. * 更新
  129. * @time 2022年06月21日 11:02
  130. * @param Request $request
  131. * @param $id
  132. */
  133. public function update(Request $request, $id) : \think\Response
  134. {
  135. $data = $request->post();
  136. $hydraulic = null;
  137. $wrench = null;
  138. $hydequ=[
  139. // 物料号
  140. 'material_number'=>$data['material_number'],
  141. // 设备类别
  142. 'equipment_type'=>$data['equipment_type'],
  143. // 工具名称
  144. 'name'=>$data['name'],
  145. // 设备型号
  146. 'equipment_model'=>$data['equipment_model'],
  147. // 发放单位
  148. 'issue_unit'=>$data['issue_unit'],
  149. // 固定资产编号
  150. 'fixed_asset_number'=>$data['fixed_asset_number'],
  151. // 类固定资产编号
  152. 'fixed_asset_number2'=>$data['fixed_asset_number2'],
  153. // 序列号
  154. 'serial_number'=>$data['serial_number'],
  155. // 出厂编号
  156. 'factory_number'=>$data['factory_number'],
  157. // 上次校验时间
  158. 'check_last_time'=>$data['check_last_time']?strstr($data['check_last_time'],'-')?strtotime($data['check_last_time']):$data['check_last_time']:'',
  159. // 下次校验时间
  160. 'check_next_time'=>$data['check_next_time']?strstr($data['check_next_time'],'-')?strtotime($data['check_next_time']):$data['check_next_time']:'',
  161. // 校验状态
  162. 'check_status'=>$data['check_status'],
  163. // 状态
  164. 'status'=>$data['status'],
  165. 'address'=>$data['address'],
  166. 'longitude'=>$data['longitude'],
  167. 'latitude'=>$data['latitude']
  168. ];
  169. if($data['equipment_type']==2)
  170. {
  171. $hydraulic=[
  172. // 编号
  173. 'number'=>$data['number'],
  174. // 所属部门
  175. 'department_id'=>$data['department_id'],
  176. //备注
  177. 'remark'=>$data['remark'],
  178. 'max_pressure'=>$data['max_pressure'],
  179. 'min_pressure'=>$data['min_pressure'],
  180. 'imei'=>$data['imei'],
  181. 'effective_period'=>$data['effective_period'],
  182. //设备的id
  183. 'eq_id'=>$id
  184. ];
  185. Hydraulic::where('eq_id',$id)->update($hydraulic);
  186. }
  187. //保存扳手
  188. if($data['equipment_type']==3||$data['equipment_type']==4)
  189. {
  190. $wrench = [
  191. // 编号
  192. 'number'=>$data['number'],
  193. //设备id
  194. 'eq_id'=>$id,
  195. // 所属部门
  196. 'department_id'=>$data['department_id'],
  197. 'remark'=>$data['remark'],
  198. 'pressure'=>$data['pressure'],
  199. 'angle_sensor'=>$data['angle_sensor'],
  200. // 扭矩
  201. 'torque'=>$data['torque'],
  202. ];
  203. Wrench::where('id',$data['list']['id'])->update($wrench);
  204. }
  205. return CatchResponse::success($this->hydEquipmentModel->updateBy($id, $hydequ));
  206. }
  207. /**
  208. * 删除
  209. * @time 2022年06月21日 11:02
  210. * @param $id
  211. */
  212. public function delete($id) : \think\Response
  213. {
  214. $data = array();
  215. $where = [];
  216. if(is_array($id))
  217. {
  218. $where[]=['id','in',$id];
  219. $data = $this->hydEquipmentModel->where($where)->select()->toArray();
  220. }
  221. else
  222. {
  223. $list = $this->hydEquipmentModel->where('id',$id)->find();
  224. $data[] = $list;
  225. }
  226. Db::startTrans();
  227. try{
  228. foreach($data as $item)
  229. {
  230. if($item['equipment_type']==2)
  231. {
  232. Hydraulic::where('eq_id','=',$item['id'])->delete();
  233. }
  234. if($item['equipment_type']==3||$item['equipment_type']==4)
  235. {
  236. Wrench::where('eq_id','=',$item['id'])->delete();
  237. }
  238. }
  239. $this->hydEquipmentModel->deleteBy($id,true);
  240. }catch (\Exception $e)
  241. {
  242. Db::rollback();
  243. return CatchResponse::fail($e->getMessage());
  244. }
  245. Db::commit();
  246. return CatchResponse::success();
  247. }
  248. /**
  249. * @Descripttion: 获取设备状态和校验状态
  250. * @name: likang
  251. * @return {*}
  252. */
  253. public function getHydEquipmentType(Request $request)
  254. {
  255. $data=$request->get();
  256. $code = $data['code'];
  257. $sysDict = new SysDictData();
  258. $list = $sysDict->getTypesByCodeWithRemark($code,'');
  259. return CatchResponse::success($list);
  260. }
  261. /**
  262. * 根据设备类别统计每个设备的总数
  263. */
  264. public function getTotalByEquipmentType($id)
  265. {
  266. $list = EquipmentType::where('pid',$id)->order('order asc')->field('id,name')->limit(4)->select();
  267. foreach($list as $key=>$value)
  268. {
  269. $list[$key]['total']=$this->hydEquipmentModel->where('equipment_type',$value['id'])->count();
  270. }
  271. return CatchResponse::success($list);
  272. }
  273. }