Fieldproprietor.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400
  1. <?php
  2. namespace app\admin\controller\field;
  3. use app\admin\BaseController;
  4. use think\facade\Db;
  5. use think\facade\View;
  6. use app\admin\model\Fieldrules as FieldrulesModel;
  7. use app\admin\model\CostProject as CostprojectModel;
  8. use app\admin\model\Admin as AdminModel;
  9. //业主
  10. class Fieldproprietor extends BaseController{
  11. protected $FeildrulesModel;
  12. protected $CostprojectModel;
  13. public function initialize(){
  14. parent::initialize();
  15. $this->AdminModel = new AdminModel;
  16. $this->FieldrulesModel = new FieldrulesModel;
  17. $this->CostprojectModel = new CostprojectModel;
  18. }
  19. public function add(){
  20. if(request()->isAjax()){
  21. $param = get_params();
  22. if (!empty($param['id']) && $param['id'] > 0) { //编辑
  23. $id = $param['id'];
  24. unset($param['id']);//移除传来的id,id是自增的
  25. $param_1 = array();
  26. $param_2 = array();
  27. foreach($param as $key => $value){
  28. if(strripos($key, '_edit')){
  29. $param_2[$key] = $value;
  30. }else{
  31. $param_1[$key] = $value;
  32. }
  33. }
  34. $data[] = array();
  35. $field_data = json_encode($param_1);
  36. $field_data_edit = json_encode($param_2);
  37. $operator_nickname = get_login_admin('nickname');
  38. $data = [
  39. 'field_rules' => $field_data,
  40. 'field_edit_rules' => $field_data_edit,
  41. 'operator' => $operator_nickname,
  42. ];
  43. Db::startTrans();
  44. try{
  45. $result = $this->FieldrulesModel->where('id', $id)->save($data);
  46. Db::commit();
  47. }catch(\Exception $e){
  48. // 回滚事务
  49. Db::rollback();
  50. return to_assign(1, '保存失败:' . $e->getMessage());
  51. }
  52. if(!$result){
  53. return to_assign(1, '保存失败:' . '网络异常');
  54. }
  55. return to_assign(0,"操作成功",$id);
  56. }else{ //新增
  57. // halt($param);
  58. $param_1 = array();
  59. $param_2 = array();
  60. foreach($param as $key => $value){
  61. if(strripos($key, '_edit')){
  62. $param_2[$key] = $value;
  63. }else{
  64. $param_1[$key] = $value;
  65. }
  66. }
  67. $field_data = json_encode($param_1);
  68. $field_data_edit = json_encode($param_2);
  69. $operator_nickname = get_login_admin('nickname');
  70. $data = array();
  71. $data = [
  72. 'field_rules' => $field_data,
  73. 'field_edit_rules' => $field_data_edit,
  74. 'operator' => $operator_nickname,
  75. ];
  76. Db::startTrans();
  77. try{
  78. //自增id
  79. $result = $this->FieldrulesModel->insertGetId($data);
  80. Db::commit();
  81. }catch(\Exception $e){
  82. // 回滚事务
  83. Db::rollback();
  84. return to_assign(1, '保存失败:' . $e->getMessage());
  85. }
  86. if(!$result){
  87. return to_assign(1, '保存失败:' . '网络异常');
  88. }
  89. }
  90. return to_assign(0,"操作成功",$result);
  91. }else{
  92. $id = empty(get_params('id')) ? 0 : get_params('id');
  93. $login_admin = get_login_admin();
  94. // dump($login_admin);
  95. $where_unit = array();
  96. if($login_admin['permission'] != 1){
  97. $where_unit[] = [
  98. ['unit_name', '=', $login_admin['unit_name']],
  99. ];
  100. }
  101. if ($id > 0) { // 编辑
  102. $field = self::field_rules($id);
  103. $field_edit = self::field_edit_rules($id);
  104. $field = array_merge($field, $field_edit);
  105. }else{ // 新增
  106. $field = self::field_project();
  107. }
  108. // halt($field);
  109. View::assign('field', $field);
  110. View::assign('id', $id);
  111. return view();
  112. }
  113. }
  114. public function delete(){
  115. $id = get_params('id');
  116. $result = $this->FieldrulesModel->where('id', $id)->delete();
  117. if($result){
  118. add_log('delete', $id);
  119. return to_assign(0, "删除成功");
  120. }else{
  121. return to_assign(1, "删除失败");
  122. }
  123. }
  124. // 获取可读字段
  125. public function field_rules($id){
  126. //可读字段
  127. $field_rules = $this->FieldrulesModel->where('id', $id)->order('id', 'desc')->value('field_rules');
  128. $field_rules = json_decode($field_rules,true);
  129. return $field_rules;
  130. }
  131. // 获取可编辑字段
  132. public function field_edit_rules($id){
  133. //可读字段
  134. $field_edit_rules = $this->FieldrulesModel->where('id', $id)->order('id', 'desc')->value('field_edit_rules');
  135. $field_edit_rules = json_decode($field_edit_rules,true);
  136. return $field_edit_rules;
  137. }
  138. // zjl获取可读字段
  139. public function get_field_rules($admin_id){
  140. //可读字段
  141. $field_rules = $this->FieldrulesModel->where('admin_id', $admin_id)->order('id', 'desc')->value('field_rules');
  142. $field_rules = json_decode($field_rules,true);
  143. if(empty($field_rules)){
  144. $field_rules = 0;
  145. }
  146. return $field_rules;
  147. }
  148. // zjl获取可读字段
  149. // public function get_field_rules_New($admin_id){
  150. // $group_id = Db::name('admin_group_access')->where('uid', $admin_id)->value('group_id');
  151. // //可读字段
  152. // $field_rules = $this->FieldrulesModel->where('group_id', $group_id)->order('id', 'desc')->value('field_rules');
  153. // $field_rules = json_decode($field_rules,true);
  154. // if(empty($field_rules)){
  155. // $field_rules = 0;
  156. // }
  157. // return $field_rules;
  158. // }
  159. // 获取可读字段
  160. public function get_field_rules_New($admin_id){
  161. // $admin_id = 67;
  162. $group_id = Db::name('admin_group_access')->where('uid', $admin_id)->value('group_id');
  163. //可读字段
  164. $field_rules = $this->FieldrulesModel->where('group_id', $group_id)->order('id', 'desc')->value('field_rules');
  165. // dump($field_rules);
  166. $field_rules = json_decode($field_rules,true);
  167. if(empty($field_rules)){
  168. $field_rules = [
  169. "project_status" => "1",
  170. "project_status_edit" => "1",
  171. "project_num" => "1",
  172. "project_num_edit" => "1",
  173. "project_name" => "1",
  174. "project_name_edit" => "1",
  175. "project_time" => "1",
  176. "project_time_edit" => "1",
  177. "entrust_unit" => "1",
  178. "entrust_unit_edit" => "1",
  179. "entrust_head" => "1",
  180. "entrust_head_edit" => "1",
  181. "entrust_phone" => "1",
  182. "entrust_phone_edit" => "1",
  183. "review_unit" => "1",
  184. "review_unit_edit" => "1",
  185. "review_head" => "1",
  186. "review_head_edit" => "1",
  187. "review_head_phone" => "1",
  188. "review_head_phone_edit" => "1",
  189. "sent_review_unit" => "1",
  190. "sent_review_unit_edit" => "1",
  191. "sent_review_head" => "1",
  192. "sent_review_head_edit" => "1",
  193. "sent_review_phone" => "1",
  194. "sent_review_phone_edit" => "1",
  195. "construction_unit" => "1",
  196. "construction_unit_edit" => "1",
  197. "construction_head" => "1",
  198. "construction_head_edit" => "1",
  199. "construction_phone" => "1",
  200. "construction_phone_edit" => "1",
  201. "project_scale" => "1",
  202. "project_scale_edit" => "1",
  203. "project_region" => "1",
  204. "project_region_edit" => "1",
  205. "engineering_category" => "1",
  206. "engineering_category_edit" => "1",
  207. "engineering_type" => "1",
  208. "engineering_type_edit" => "1",
  209. "fiscal_nature" => "1",
  210. "fiscal_nature_edit" => "1",
  211. "sent_review_cost" => "1",
  212. "sent_review_cost_edit" => "1",
  213. "preparation_amount" => "1",
  214. "preparation_amount_edit" => "1",
  215. "sent_review_amount" => "1",
  216. "sent_review_amount_edit" => "1",
  217. "sent_review_approver_amount" => "1",
  218. "sent_review_approver_amount_edit" => "1",
  219. "construction_approver_amount" => "1",
  220. "construction_approver_amount_edit" => "1",
  221. "authorize_amount" => "1",
  222. "authorize_amount_edit" => "1",
  223. "review_add_reduce_amount" => "1",
  224. "review_add_reduce_amount_edit" => "1",
  225. "review_add_reduce_rate" => "1",
  226. "review_add_reduce_rate_edit" => "1",
  227. "report_time" => "1",
  228. "report_time_edit" => "1",
  229. "charge_standard" => "1",
  230. "charge_standard_edit" => "1",
  231. "invoicing__amount" => "1",
  232. "invoicing__amount_edit" => "1",
  233. "invoicing__num" => "1",
  234. "invoicing__num_edit" => "1",
  235. "operate_name" => "1",
  236. "operate_name_edit" => "1",
  237. "operate_team_names" => "1",
  238. "operate_team_names_edit" => "1",
  239. "project_dead_time" => "1",
  240. "project_dead_time_edit" => "1",
  241. "create_time" => "1",
  242. "create_time_edit" => "1",
  243. ];
  244. }
  245. // dump($field_rules);
  246. return $field_rules;
  247. }
  248. public function field_project(){
  249. $c_field = Db::query("show full columns from cp_cost_project");
  250. $field[] = array();
  251. foreach($c_field as $key => $value){
  252. $field[$key] = $value['Field'];
  253. }
  254. $field = array_flip($field);
  255. unset($field['id']);
  256. foreach($field as $key => $value){
  257. $field[$key] = 0;
  258. }
  259. return $field;
  260. }
  261. public function get_field_rules_edit_New($admin_id){
  262. // $admin_id = 67;
  263. $group_id = Db::name('admin_group_access')->where('uid', $admin_id)->value('group_id');
  264. //可读字段
  265. $field_rules = $this->FieldrulesModel->where('group_id', $group_id)->order('id', 'desc')->value('field_edit_rules');
  266. // dump($field_rules);
  267. $field_rules = json_decode($field_rules,true);
  268. if(empty($field_rules)){
  269. $field_rules = [
  270. "project_status" => "1",
  271. "project_status_edit" => "1",
  272. "project_num" => "1",
  273. "project_num_edit" => "1",
  274. "project_name" => "1",
  275. "project_name_edit" => "1",
  276. "project_time" => "1",
  277. "project_time_edit" => "1",
  278. "entrust_unit" => "1",
  279. "entrust_unit_edit" => "1",
  280. "entrust_head" => "1",
  281. "entrust_head_edit" => "1",
  282. "entrust_phone" => "1",
  283. "entrust_phone_edit" => "1",
  284. "review_unit" => "1",
  285. "review_unit_edit" => "1",
  286. "review_head" => "1",
  287. "review_head_edit" => "1",
  288. "review_head_phone" => "1",
  289. "review_head_phone_edit" => "1",
  290. "sent_review_unit" => "1",
  291. "sent_review_unit_edit" => "1",
  292. "sent_review_head" => "1",
  293. "sent_review_head_edit" => "1",
  294. "sent_review_phone" => "1",
  295. "sent_review_phone_edit" => "1",
  296. "construction_unit" => "1",
  297. "construction_unit_edit" => "1",
  298. "construction_head" => "1",
  299. "construction_head_edit" => "1",
  300. "construction_phone" => "1",
  301. "construction_phone_edit" => "1",
  302. "project_scale" => "1",
  303. "project_scale_edit" => "1",
  304. "project_region" => "1",
  305. "project_region_edit" => "1",
  306. "engineering_category" => "1",
  307. "engineering_category_edit" => "1",
  308. "engineering_type" => "1",
  309. "engineering_type_edit" => "1",
  310. "fiscal_nature" => "1",
  311. "fiscal_nature_edit" => "1",
  312. "sent_review_cost" => "1",
  313. "sent_review_cost_edit" => "1",
  314. "preparation_amount" => "1",
  315. "preparation_amount_edit" => "1",
  316. "sent_review_amount" => "1",
  317. "sent_review_amount_edit" => "1",
  318. "sent_review_approver_amount" => "1",
  319. "sent_review_approver_amount_edit" => "1",
  320. "construction_approver_amount" => "1",
  321. "construction_approver_amount_edit" => "1",
  322. "authorize_amount" => "1",
  323. "authorize_amount_edit" => "1",
  324. "review_add_reduce_amount" => "1",
  325. "review_add_reduce_amount_edit" => "1",
  326. "review_add_reduce_rate" => "1",
  327. "review_add_reduce_rate_edit" => "1",
  328. "report_time" => "1",
  329. "report_time_edit" => "1",
  330. "charge_standard" => "1",
  331. "charge_standard_edit" => "1",
  332. "invoicing__amount" => "1",
  333. "invoicing__amount_edit" => "1",
  334. "invoicing__num" => "1",
  335. "invoicing__num_edit" => "1",
  336. "operate_name" => "1",
  337. "operate_name_edit" => "1",
  338. "operate_team_names" => "1",
  339. "operate_team_names_edit" => "1",
  340. "project_dead_time" => "1",
  341. "project_dead_time_edit" => "1",
  342. "create_time" => "1",
  343. "create_time_edit" => "1",
  344. ];
  345. }
  346. // dump($field_rules);
  347. return $field_rules;
  348. }
  349. }