Inspect.php 55 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\controller\Api;
  4. use \think\Request;
  5. use \think\Db;
  6. /**
  7. * 检验计件单据维护接口
  8. */
  9. class Inspect extends Api
  10. {
  11. protected $noNeedLogin = ['*'];
  12. protected $noNeedRight = ['*'];
  13. /**
  14. * 首页
  15. *
  16. */
  17. public function index()
  18. {
  19. $this->success('请求成功');
  20. }
  21. /**
  22. * 获取手工检验左侧菜单栏
  23. *
  24. * @ApiMethod GET
  25. */
  26. public function getInspectCount(){
  27. if (Request::instance()->isGet() == false){
  28. $this->error('非法请求');
  29. }
  30. $rows = db('db_手工检验')
  31. ->field('LEFT(sys_rq, 10) as date, COUNT(*) as counts')
  32. ->group('date')
  33. ->order('UniqId desc')
  34. ->limit(30)
  35. ->select();
  36. $num = db('db_手工检验')
  37. ->where('sys_rq','>=',$rows[count($rows)-1]['date'])
  38. ->count();
  39. $arr = db('db_手工检验')
  40. ->field('LEFT(sys_rq, 10) as date, rtrim(sys_id) as sys_id, COUNT(*) as count')
  41. ->where('sys_rq','>=',$rows[count($rows)-1]['date'])
  42. ->group('date, sys_id')
  43. ->limit($num)
  44. ->select();
  45. foreach($rows as $key=>$value){
  46. $rows[$key]['sys'] = [];
  47. foreach($arr as $k=>$v){
  48. if($value['date'] == $v['date']){
  49. unset($v['date']);
  50. array_push($rows[$key]['sys'],$v);
  51. unset($arr[$k]);
  52. }
  53. }
  54. }
  55. $this->success('请求成功',$rows);
  56. }
  57. /**
  58. * 获取手工检验左侧菜单栏
  59. * 通过工单
  60. * @ApiMethod GET
  61. */
  62. public function getInspectCountByGdbh(){
  63. if (Request::instance()->isGet() == false){
  64. $this->error('非法请求');
  65. }
  66. $sql = 'SELECT DISTINCT sczl_gdbh FROM `db_手工检验` ORDER BY sczl_gdbh DESC LIMIT 65 ';
  67. $list = db()->query($sql);
  68. // $rows = db('db_手工检验')
  69. // ->field('sczl_gdbh')
  70. // ->group('sczl_gdbh')
  71. // ->order('sczl_gdbh desc')
  72. // ->limit(65)
  73. // ->select();
  74. foreach ($list as $key => $value){
  75. $dataCount = db('db_手工检验')->alias('d')
  76. ->where('sczl_gdbh',$value['sczl_gdbh'])
  77. ->where('SUBSTR(d.sczl_yjgx,1,2) = g.yj_Yjno')
  78. ->field('rtrim(d.sys_id) as sys_id, rtrim(g.yj_yjmc) as yj_yjmc')
  79. ->join(['工单_印件资料'=>'g'],'d.sczl_gdbh=g.Yj_Gdbh')
  80. ->order('sys_id asc')
  81. ->select();
  82. $list[$key]['cpmc'] = $dataCount[0]['yj_yjmc'];
  83. // 提取 sys_id 列成新数组
  84. $sysIds = array_column($dataCount, 'sys_id');
  85. //统计每个不同的 sys_id 的数量
  86. $counts = array_count_values($sysIds);
  87. $i = 0;
  88. foreach ($counts as $k=>$v){
  89. $list[$key]['sys'][$i]['sys_id'] = $k;
  90. $list[$key]['sys'][$i]['count'] = $v;
  91. $i++;
  92. }
  93. }
  94. $this->success('请求成功',$list);
  95. }
  96. /**
  97. * 获取某个日期手工单据
  98. *
  99. * @ApiMethod GET
  100. * @params string date
  101. */
  102. public function getDateList(){
  103. if (Request::instance()->isGet() == false){
  104. $this->error('非法请求');
  105. }
  106. $params = Request::instance()->param();
  107. if (!isset($params['date']) || empty($params['date'])) $this->error('参数缺失');
  108. $page = 1;
  109. $limit = 15;
  110. if (isset($params['page']) && !empty($params['page'])) $page = $params['page'];
  111. if (isset($params['limit']) && !empty($params['limit'])) $limit = $params['limit'];
  112. if(strpos($params['date'],'-')){
  113. $where = ['a.sys_rq'=>['like',$params['date'].'%']];
  114. $option = ['sys_rq'=>['like',$params['date'].'%']];
  115. }else{
  116. $where = ['a.sczl_gdbh'=>$params['date']];
  117. $option = ['sczl_gdbh'=>$params['date']];
  118. }
  119. if (isset($params['sys_id']) && !empty($params['sys_id'])){
  120. $where['a.sys_id'] = ['LIKE',$params['sys_id'].'%'];
  121. $option['sys_id'] = ['LIKE',$params['sys_id'].'%'];
  122. }
  123. $field = 'a.sczl_gdbh,a.sczl_yjgx,rtrim(a.sczl_gxmc) as sczl_gxmc,DATE(a.sczl_rq) as sczl_rq,a.sczl_cl,a.sczl_dedh,a.sczl_废品率系数,a.sczl_检验类别,a.sczl_bh0,
  124. rtrim(a.qczl_NumDesc) as qczl_NumDesc,rtrim(a.sys_id) as sys_id,a.sys_rq,a.mod_rq,a.UniqId,b.千件工价,b.日定额,rtrim(c.员工姓名) as 员工姓名,rtrim(d.yj_yjmc) as yj_yjmc';
  125. $list = db('db_手工检验')->alias('a')
  126. ->join('dic_lzde b','a.sczl_dedh = b.sys_bh','left')
  127. ->join('人事_基本资料 c','a.sczl_bh0 = c.员工编号','left')
  128. ->join('工单_印件资料 d','a.sczl_gdbh = d.Yj_Gdbh','left')
  129. ->where($where)
  130. ->where('SUBSTR(a.sczl_yjgx,1,2) = d.yj_Yjno')
  131. ->field($field)->page($page,$limit)->order('a.sczl_rq,a.UniqId asc')->select();
  132. $count = db('db_手工检验')->where($option)->count();
  133. $data['data'] = $list;
  134. $data['total'] = $count;
  135. $this->success('请求成功',$data);
  136. }
  137. /**
  138. * 获取机器检验左侧菜单栏
  139. *
  140. * @ApiMethod GET
  141. */
  142. public function getMachineCount(){
  143. if (Request::instance()->isGet() == false){
  144. $this->error('非法请求');
  145. }
  146. $sql = 'SELECT DISTINCT DATE(sys_rq) AS sys_rq FROM `db_机器检验` ORDER BY sys_rq DESC LIMIT 30 ';
  147. $list = db()->query($sql);
  148. foreach ($list as $key => $value){
  149. $where = [$value['sys_rq'].'00:00:00',$value['sys_rq'].'24:00:00'];
  150. $dataCount = db('db_机器检验')->where('sys_rq','between time',$where)->field('rtrim(sys_id) as sys_id')->order('sys_id asc')->select();
  151. $list[$key]['count'] = count($dataCount);
  152. // 提取 sys_id 列成新数组
  153. $sysIds = array_column($dataCount, 'sys_id');
  154. //统计每个不同的 sys_id 的数量
  155. $counts = array_count_values($sysIds);
  156. $i = 0;
  157. foreach ($counts as $k=>$v){
  158. $list[$key]['sys'][$i]['sys_id'] = $k;
  159. $list[$key]['sys'][$i]['count'] = $v;
  160. $i++;
  161. }
  162. }
  163. $this->success('请求成功',$list);
  164. }
  165. /**
  166. * 获取机器检验左侧菜单栏
  167. *
  168. * @ApiMethod GET
  169. */
  170. public function getMachineCountByGdbh(){
  171. if (Request::instance()->isGet() == false){
  172. $this->error('非法请求');
  173. }
  174. $sql = 'SELECT DISTINCT sczl_gdbh FROM `db_机器检验` ORDER BY sczl_gdbh DESC LIMIT 65 ';
  175. $list = Db::query($sql);
  176. foreach ($list as $key => $value){
  177. $dataCount = Db::name('db_机器检验')->alias('d')
  178. ->where('sczl_gdbh',$value['sczl_gdbh'])
  179. ->field('rtrim(d.sys_id) as sys_id, rtrim(g.Gd_cpmc) as Gd_cpmc')
  180. ->join(['工单_基本资料'=>'g'],'d.sczl_gdbh=g.Gd_gdbh')
  181. ->order('sys_id asc')
  182. ->select();
  183. $list[$key]['cpmc'] = $dataCount[0]['Gd_cpmc'];
  184. // 提取 sys_id 列成新数组
  185. $sysIds = array_column($dataCount, 'sys_id');
  186. //统计每个不同的 sys_id 的数量
  187. $counts = array_count_values($sysIds);
  188. $i = 0;
  189. foreach ($counts as $k=>$v){
  190. $list[$key]['sys'][$i]['sys_id'] = $k;
  191. $list[$key]['sys'][$i]['count'] = $v;
  192. $i++;
  193. }
  194. }
  195. $this->success('请求成功',$list);
  196. }
  197. /**
  198. * 获取某个日期机器单据
  199. *
  200. * @ApiMethod GET
  201. * @params string date
  202. */
  203. public function getDateMachine(){
  204. if (Request::instance()->isGet() == false){
  205. $this->error('非法请求');
  206. }
  207. $params = Request::instance()->param();
  208. if (!isset($params['date']) || empty($params['date'])) $this->error('参数缺失');
  209. $page = 1;
  210. $limit = 15;
  211. if (isset($params['page']) && !empty($params['page'])) $page = $params['page'];
  212. if (isset($params['limit']) && !empty($params['limit'])) $limit = $params['limit'];
  213. if(strpos($params['date'],'-')){
  214. $where = ['a.sys_rq'=>['like',$params['date'].'%']];
  215. $option = ['sys_rq'=>['like',$params['date'].'%']];
  216. }else{
  217. $where = ['a.sczl_gdbh'=>$params['date']];
  218. $option = ['sczl_gdbh'=>$params['date']];
  219. }
  220. if (isset($params['sys_id']) && !empty($params['sys_id'])){
  221. $where['a.sys_id'] = ['LIKE',$params['sys_id'].'%'];
  222. $option['sys_id'] = ['LIKE',$params['sys_id'].'%'];
  223. }
  224. $field = 'a.sczl_gdbh,trim(a.sczl_yjgx) as sczl_yjgx,rtrim(a.sczl_gxmc) as sczl_gxmc,a.sczl_jtbh,a.sczl_bzdh,DATE(a.sczl_rq) as sczl_rq,a.sczl_cl,rtrim(a.sczl_单据类型) as sczl_单据类型,
  225. a.sczl_设备运行工时,a.sczl_dedh,a.sczl_废品率系数,rtrim(a.sczl_检验类别) as sczl_检验类别,a.sczl_bh1,a.sczl_bh2,a.sczl_bh3,a.sczl_bh4,a.qczl_NumDesc,rtrim(a.sys_id) as sys_id,
  226. a.sys_rq,a.mod_rq,a.UniqId,b.千件工价,b.日定额,rtrim(c1.员工姓名) as sczl_bh1_name,rtrim(c2.员工姓名) as sczl_bh2_name,rtrim(c3.员工姓名) as sczl_bh3_name,
  227. rtrim(c4.员工姓名) as sczl_bh4_name,rtrim(d.yj_yjmc) as yj_yjmc';
  228. $list = db('db_机器检验')->alias('a')
  229. ->join('dic_lzde b','a.sczl_dedh = b.sys_bh','left')
  230. ->join('人事_基本资料 c1','a.sczl_bh1 = c1.员工编号','left')
  231. ->join('人事_基本资料 c2','a.sczl_bh2 = c2.员工编号','left')
  232. ->join('人事_基本资料 c3','a.sczl_bh3 = c3.员工编号','left')
  233. ->join('人事_基本资料 c4','a.sczl_bh4 = c4.员工编号','left')
  234. ->join('工单_印件资料 d','a.sczl_gdbh = d.Yj_Gdbh','left')
  235. ->where($where)
  236. ->where('SUBSTR(a.sczl_yjgx,1,2) = d.yj_Yjno')
  237. ->field($field)->page($page,$limit)->order('a.UniqId desc')->select();
  238. $count = db('db_机器检验')->where($option)->count();
  239. $data['data'] = $list;
  240. $data['total'] = $count;
  241. $this->success('请求成功',$data);
  242. }
  243. /**
  244. * 定位
  245. * @ApiMethod (GET)
  246. * @param string $gdbh 工单编号
  247. * @param string $cpmc 产品名称
  248. * @param string $page 页码
  249. * @param string $limit 数量
  250. */
  251. public function locate()
  252. {
  253. //get请求
  254. if(!$this->request->isGet()){
  255. $this->error('请求方式错误');
  256. }
  257. $req = $this->request->param();
  258. $page = 1;
  259. $limit = 15;
  260. if (isset($req['page']) && !empty($req['page'])) $page = $req['page'];
  261. if (isset($req['limit']) && !empty($req['limit'])) $limit = $req['limit'];
  262. if (isset($req['gdbh']) && !empty($req['gdbh'])){
  263. $where = [
  264. 'a.sczl_gdbh'=>[ 'like', '%' . $req['gdbh'] . '%']
  265. ];
  266. $field = 'a.sczl_gdbh,a.sczl_yjgx,rtrim(a.sczl_gxmc) as sczl_gxmc,DATE(a.sczl_rq) as sczl_rq,a.sczl_cl,a.sczl_dedh,a.sczl_废品率系数,a.sczl_检验类别,a.sczl_bh0,
  267. rtrim(a.qczl_NumDesc) as qczl_NumDesc,rtrim(a.sys_id) as sys_id,a.sys_rq,a.mod_rq,a.UniqId,b.千件工价,b.日定额,rtrim(c.员工姓名) as 员工姓名,rtrim(d.yj_yjmc) as yj_yjmc';
  268. $rows = db('db_手工检验')->alias('a')
  269. ->join('dic_lzde b','a.sczl_dedh = b.sys_bh','left')
  270. ->join('人事_基本资料 c','a.sczl_bh0 = c.员工编号','left')
  271. ->join('工单_印件资料 d','a.sczl_gdbh = d.Yj_Gdbh','left')
  272. ->where($where)
  273. ->where('SUBSTR(a.sczl_yjgx,1,2) = d.yj_Yjno')
  274. ->field($field)->page($page,$limit)->order('a.sczl_rq,a.UniqId asc')->select();
  275. $option['sczl_gdbh'] = [ 'like', '%' . $req['gdbh'] . '%'];
  276. $total = db('db_手工检验')->where($option)->count();
  277. }else{
  278. if (isset($req['cpmc']) && !empty($req['cpmc'])){
  279. //查询工单表
  280. $gd = db('工单_基本资料')
  281. ->where('Gd_cpmc', 'LIKE', '%'.$req['cpmc'].'%')
  282. ->column('Gd_gdbh');
  283. $where = [
  284. 'a.sczl_gdbh'=>['in', $gd]
  285. ];
  286. $field = 'a.sczl_gdbh,a.sczl_yjgx,rtrim(a.sczl_gxmc) as sczl_gxmc,DATE(a.sczl_rq) as sczl_rq,a.sczl_cl,a.sczl_dedh,a.sczl_废品率系数,a.sczl_检验类别,a.sczl_bh0,
  287. rtrim(a.qczl_NumDesc) as qczl_NumDesc,rtrim(a.sys_id) as sys_id,a.sys_rq,a.mod_rq,a.UniqId,b.千件工价,b.日定额,rtrim(c.员工姓名) as 员工姓名,rtrim(d.yj_yjmc) as yj_yjmc';
  288. $rows = db('db_手工检验')->alias('a')
  289. ->join('dic_lzde b','a.sczl_dedh = b.sys_bh','left')
  290. ->join('人事_基本资料 c','a.sczl_bh0 = c.员工编号','left')
  291. ->join('工单_印件资料 d','a.sczl_gdbh = d.Yj_Gdbh','left')
  292. ->where($where)
  293. ->where('SUBSTR(a.sczl_yjgx,1,2) = d.yj_Yjno')
  294. ->field($field)->page($page,$limit)->order('a.sczl_rq,a.UniqId asc')->select();
  295. $option['sczl_gdbh'] = ['in', $gd];
  296. $total = db('db_手工检验')->where($option)->count();
  297. }else{
  298. $this->error('参数错误');
  299. }
  300. }
  301. $data = [
  302. 'total' => $total,
  303. 'rows' => $rows,
  304. ];
  305. $this->success('成功',$data);
  306. }
  307. /**
  308. * 定位
  309. * @ApiMethod (GET)
  310. * @param string $gdbh 工单编号
  311. * @param string $cpmc 产品名称
  312. * @param string $page 页码
  313. * @param string $limit 数量
  314. */
  315. public function machineLocate()
  316. {
  317. //get请求
  318. if(!$this->request->isGet()){
  319. $this->error('请求方式错误');
  320. }
  321. $req = $this->request->param();
  322. $page = 1;
  323. $limit = 15;
  324. if (isset($req['page']) && !empty($req['page'])) $page = $req['page'];
  325. if (isset($req['limit']) && !empty($req['limit'])) $limit = $req['limit'];
  326. if (isset($req['gdbh']) && !empty($req['gdbh'])){
  327. $where = [
  328. 'sczl_gdbh'=>[ 'like', '%' . $req['gdbh'] . '%']
  329. ];
  330. $where['a.sczl_单据类型'] = '初检单';
  331. $field = 'a.sczl_gdbh,trim(a.sczl_yjgx) as sczl_yjgx,rtrim(a.sczl_gxmc) as sczl_gxmc,a.sczl_jtbh,a.sczl_bzdh,DATE(a.sczl_rq) as sczl_rq,a.sczl_cl,rtrim(a.sczl_单据类型) as sczl_单据类型,
  332. a.sczl_设备运行工时,a.sczl_dedh,a.sczl_废品率系数,rtrim(a.sczl_检验类别) as sczl_检验类别,a.sczl_bh1,a.sczl_bh2,a.sczl_bh3,a.sczl_bh4,a.qczl_NumDesc,rtrim(a.sys_id) as sys_id,
  333. a.sys_rq,a.mod_rq,a.UniqId,b.千件工价,b.日定额,rtrim(c1.员工姓名) as sczl_bh1_name,rtrim(c2.员工姓名) as sczl_bh2_name,rtrim(c3.员工姓名) as sczl_bh3_name,
  334. rtrim(c4.员工姓名) as sczl_bh4_name,rtrim(d.yj_yjmc) as yj_yjmc';
  335. $rows = db('db_机器检验')->alias('a')
  336. ->join('dic_lzde b','a.sczl_dedh = b.sys_bh','left')
  337. ->join('人事_基本资料 c1','a.sczl_bh1 = c1.员工编号','left')
  338. ->join('人事_基本资料 c2','a.sczl_bh2 = c2.员工编号','left')
  339. ->join('人事_基本资料 c3','a.sczl_bh3 = c3.员工编号','left')
  340. ->join('人事_基本资料 c4','a.sczl_bh4 = c4.员工编号','left')
  341. ->join('工单_印件资料 d','a.sczl_gdbh = d.Yj_Gdbh','left')
  342. ->where($where)
  343. ->where('SUBSTR(a.sczl_yjgx,1,2) = d.yj_Yjno')
  344. ->field($field)->page($page,$limit)->order('a.sczl_rq asc,a.UniqId desc')->select();
  345. $option['sczl_单据类型'] = '初检单';
  346. $option['sczl_gdbh'] = [ 'like', '%' . $req['gdbh'] . '%'];
  347. $total = db('db_机器检验')->where($option)->count();
  348. }else{
  349. if (isset($req['cpmc']) && !empty($req['cpmc'])){
  350. //查询工单表
  351. $gd = db('工单_基本资料')
  352. ->where('Gd_cpmc', 'LIKE', '%'.$req['cpmc'].'%')
  353. ->column('Gd_gdbh');
  354. $where = [
  355. 'sczl_gdbh'=>['in', $gd]
  356. ];
  357. $where['a.sczl_单据类型'] = '初检单';
  358. $field = 'a.sczl_gdbh,trim(a.sczl_yjgx) as sczl_yjgx,rtrim(a.sczl_gxmc) as sczl_gxmc,a.sczl_jtbh,a.sczl_bzdh,DATE(a.sczl_rq) as sczl_rq,a.sczl_cl,rtrim(a.sczl_单据类型) as sczl_单据类型,
  359. a.sczl_设备运行工时,a.sczl_dedh,a.sczl_废品率系数,rtrim(a.sczl_检验类别) as sczl_检验类别,a.sczl_bh1,a.sczl_bh2,a.sczl_bh3,a.sczl_bh4,a.qczl_NumDesc,rtrim(a.sys_id) as sys_id,
  360. a.sys_rq,a.mod_rq,a.UniqId,b.千件工价,b.日定额,rtrim(c1.员工姓名) as sczl_bh1_name,rtrim(c2.员工姓名) as sczl_bh2_name,rtrim(c3.员工姓名) as sczl_bh3_name,
  361. rtrim(c4.员工姓名) as sczl_bh4_name,rtrim(d.yj_yjmc) as yj_yjmc';
  362. $rows = db('db_机器检验')->alias('a')
  363. ->join('dic_lzde b','a.sczl_dedh = b.sys_bh','left')
  364. ->join('人事_基本资料 c1','a.sczl_bh1 = c1.员工编号','left')
  365. ->join('人事_基本资料 c2','a.sczl_bh2 = c2.员工编号','left')
  366. ->join('人事_基本资料 c3','a.sczl_bh3 = c3.员工编号','left')
  367. ->join('人事_基本资料 c4','a.sczl_bh4 = c4.员工编号','left')
  368. ->join('工单_印件资料 d','a.sczl_gdbh = d.Yj_Gdbh','left')
  369. ->where($where)
  370. ->where('SUBSTR(a.sczl_yjgx,1,2) = d.yj_Yjno')
  371. ->field($field)->page($page,$limit)->order('a.sczl_rq asc,a.UniqId desc')->select();
  372. $option['sczl_单据类型'] = '初检单';
  373. $option['sczl_gdbh'] = ['in', $gd];
  374. $total = db('db_机器检验')->where($option)->count();
  375. }else{
  376. $this->error('参数错误');
  377. }
  378. }
  379. $data = [
  380. 'total' => $total,
  381. 'rows' => $rows,
  382. ];
  383. $this->success('成功',$data);
  384. }
  385. /**
  386. * 获取信息
  387. * @ApiMethod (GET)
  388. * @param string $UniqId UniqId
  389. */
  390. public function getInfo()
  391. {
  392. //get请求
  393. if(!$this->request->isGet()){
  394. $this->error('请求方式错误');
  395. }
  396. $req = $this->request->param();
  397. if (isset($req['UniqId']) && !empty($req['UniqId'])){
  398. $UniqId = $req['UniqId'];
  399. }else{
  400. $this->error('参数错误');
  401. }
  402. $where['a.UniqId'] = $UniqId;
  403. $field = 'DATE(a.sczl_rq) as sczl_rq, a.sczl_bzdh,a.sczl_bh0, rtrim(c0.员工姓名) as sczl_bh0_name, a.sczl_cl0, a.sczl_fp0,
  404. a.sczl_gdbh,trim(a.sczl_yjgx) as sczl_yjgx,rtrim(a.sczl_gxmc) as sczl_gxmc,rtrim(d.yj_yjmc) as yj_yjmc,
  405. a.sczl_cl,rtrim(a.sczl_dedh) as sczl_dedh,rtrim(a.sczl_检验类别) as sczl_检验类别,a.sczl_废品率系数,
  406. a.sczl_jsss,a.sczl_冲定额,a.qczl_Num as 流程单号1,a.qczl_NumDesc1 as 流程单号2,a.qczl_NumDesc2 as 流程单号3,
  407. a.qczl_NumDesc3 as 流程单号4,a.qczl_NumDesc4 as 流程单号5,a.qczl_NumDesc5 as 流程单号6,
  408. a.qczl_NumDesc6 as 流程单号7,a.qczl_NumDesc7 as 流程单号8,a.qczl_NumDesc8 as 流程单号9,
  409. rtrim(a.qczl_NumDesc) as qczl_NumDesc,rtrim(a.sczl_desc) as sczl_desc,
  410. a.sczl_bh1,a.sczl_bh2,a.sczl_bh3,a.sczl_bh4,a.sczl_bh5, a.sczl_bh6,
  411. a.sczl_bh7,a.sczl_bh8,a.sczl_bh9,a.sczl_bh10,a.sczl_bh11, a.sczl_bh12,
  412. rtrim(c1.员工姓名) as sczl_bh1_name,rtrim(c2.员工姓名) as sczl_bh2_name,
  413. rtrim(c3.员工姓名) as sczl_bh3_name,rtrim(c4.员工姓名) as sczl_bh4_name,
  414. rtrim(c5.员工姓名) as sczl_bh5_name,rtrim(c6.员工姓名) as sczl_bh6_name,
  415. rtrim(c7.员工姓名) as sczl_bh7_name,rtrim(c8.员工姓名) as sczl_bh8_name,
  416. rtrim(c9.员工姓名) as sczl_bh9_name,rtrim(c10.员工姓名) as sczl_bh10_name,
  417. rtrim(c11.员工姓名) as sczl_bh11_name,rtrim(c12.员工姓名) as sczl_bh12_name,
  418. a.sczl_cl1,a.sczl_cl2,a.sczl_cl3,a.sczl_cl4,a.sczl_cl5,a.sczl_cl6,
  419. a.sczl_cl7,a.sczl_cl8,a.sczl_cl9,a.sczl_cl10,a.sczl_cl11,a.sczl_cl12,
  420. a.sczl_fp1,a.sczl_fp2,a.sczl_fp3,a.sczl_fp4,a.sczl_fp5,a.sczl_fp6,
  421. a.sczl_fp7,a.sczl_fp8,a.sczl_fp9,a.sczl_fp10,a.sczl_fp11,a.sczl_fp12';
  422. $rows = db('db_手工检验')->alias('a')
  423. ->join('人事_基本资料 c0','a.sczl_bh0 = c0.员工编号','left')
  424. ->join('人事_基本资料 c1','a.sczl_bh1 = c1.员工编号','left')
  425. ->join('人事_基本资料 c2','a.sczl_bh2 = c2.员工编号','left')
  426. ->join('人事_基本资料 c3','a.sczl_bh3 = c3.员工编号','left')
  427. ->join('人事_基本资料 c4','a.sczl_bh4 = c4.员工编号','left')
  428. ->join('人事_基本资料 c5','a.sczl_bh5 = c5.员工编号','left')
  429. ->join('人事_基本资料 c6','a.sczl_bh6 = c6.员工编号','left')
  430. ->join('人事_基本资料 c7','a.sczl_bh7 = c7.员工编号','left')
  431. ->join('人事_基本资料 c8','a.sczl_bh8 = c8.员工编号','left')
  432. ->join('人事_基本资料 c9','a.sczl_bh9 = c9.员工编号','left')
  433. ->join('人事_基本资料 c10','a.sczl_bh10 = c10.员工编号','left')
  434. ->join('人事_基本资料 c11','a.sczl_bh11 = c11.员工编号','left')
  435. ->join('人事_基本资料 c12','a.sczl_bh12 = c12.员工编号','left')
  436. ->join('工单_印件资料 d','a.sczl_gdbh = d.Yj_Gdbh','left')
  437. ->where($where)
  438. ->where('SUBSTR(a.sczl_yjgx,1,2) = d.yj_Yjno')
  439. ->field($field)->find();
  440. $this->success('成功',$rows);
  441. }
  442. /**
  443. * 获取信息
  444. * @ApiMethod (GET)
  445. * @param string $UniqId UniqId
  446. */
  447. public function getMachineInfo()
  448. {
  449. //get请求
  450. if(!$this->request->isGet()){
  451. $this->error('请求方式错误');
  452. }
  453. $req = $this->request->param();
  454. if (isset($req['UniqId']) && !empty($req['UniqId'])){
  455. $UniqId = $req['UniqId'];
  456. }else{
  457. $this->error('参数错误');
  458. }
  459. $where['a.UniqId'] = $UniqId;
  460. $field = 'a.sczl_gdbh,trim(a.sczl_yjgx) as sczl_yjgx,rtrim(a.sczl_gxmc) as sczl_gxmc,
  461. a.sczl_jtbh,a.sczl_bzdh,DATE(a.sczl_rq) as sczl_rq,a.sczl_cl,a.sczl_PgCl,
  462. rtrim(a.sczl_单据类型) as sczl_单据类型,rtrim(a.sczl_dedh) as sczl_dedh,
  463. a.sczl_装版工时,a.sczl_保养工时,a.sczl_异常停机工时,a.sczl_设备运行工时,
  464. a.sczl_废品率系数,rtrim(a.sczl_检验类别) as sczl_检验类别,
  465. a.sczl_bh1,a.sczl_bh2,a.sczl_bh3,a.sczl_bh4,a.sczl_bh5, a.sczl_bh6,a.sczl_bh7,a.sczl_bh8,
  466. a.qczl_Num as 流程单号1,a.qczl_NumDesc1 as 流程单号2,a.qczl_NumDesc2 as 流程单号3,
  467. a.qczl_NumDesc3 as 流程单号4,a.qczl_NumDesc4 as 流程单号5,a.qczl_NumDesc5 as 流程单号6,
  468. a.qczl_NumDesc6 as 流程单号7,a.qczl_NumDesc7 as 流程单号8,a.qczl_NumDesc8 as 流程单号9,
  469. rtrim(a.qczl_NumDesc) as qczl_NumDesc,rtrim(a.sczl_desc) as sczl_desc,
  470. rtrim(c1.员工姓名) as sczl_bh1_name,rtrim(c2.员工姓名) as sczl_bh2_name,
  471. rtrim(c3.员工姓名) as sczl_bh3_name,rtrim(c4.员工姓名) as sczl_bh4_name,
  472. rtrim(c5.员工姓名) as sczl_bh5_name,rtrim(c6.员工姓名) as sczl_bh6_name,
  473. rtrim(c7.员工姓名) as sczl_bh7_name,rtrim(c8.员工姓名) as sczl_bh8_name,
  474. a.sczl_rate1, a.sczl_rate2, a.sczl_rate3, a.sczl_rate4,
  475. a.sczl_rate5, a.sczl_rate6, a.sczl_rate7, a.sczl_rate8,
  476. rtrim(d.yj_yjmc) as yj_yjmc';
  477. $rows = db('db_机器检验')->alias('a')
  478. ->join('dic_lzde b','a.sczl_dedh = b.sys_bh','left')
  479. ->join('人事_基本资料 c1','a.sczl_bh1 = c1.员工编号','left')
  480. ->join('人事_基本资料 c2','a.sczl_bh2 = c2.员工编号','left')
  481. ->join('人事_基本资料 c3','a.sczl_bh3 = c3.员工编号','left')
  482. ->join('人事_基本资料 c4','a.sczl_bh4 = c4.员工编号','left')
  483. ->join('人事_基本资料 c5','a.sczl_bh5 = c5.员工编号','left')
  484. ->join('人事_基本资料 c6','a.sczl_bh6 = c6.员工编号','left')
  485. ->join('人事_基本资料 c7','a.sczl_bh7 = c7.员工编号','left')
  486. ->join('人事_基本资料 c8','a.sczl_bh8 = c8.员工编号','left')
  487. ->join('工单_印件资料 d','a.sczl_gdbh = d.Yj_Gdbh','left')
  488. ->where($where)
  489. ->where('SUBSTR(a.sczl_yjgx,1,2) = d.yj_Yjno')
  490. ->field($field)->find();
  491. $this->success('成功',$rows);
  492. }
  493. /**
  494. * 查询印件工序及产品名称
  495. * @ApiMethod (GET)
  496. * @param string $gdbh 工单编号
  497. * @param string $gxmc 工序名称
  498. */
  499. public function getGxMc()
  500. {
  501. //get请求
  502. if(!$this->request->isGet()){
  503. $this->error('请求方式错误');
  504. }
  505. $req = $this->request->param();
  506. if (isset($req['gdbh']) && !empty($req['gdbh'])){
  507. $gdbh = $req['gdbh'];
  508. }else{
  509. $this->error('参数错误');
  510. }
  511. $gxmc = ['手检','手检(圆切)','次品检','抽检','大张翻检'];
  512. $gxmcs = [];
  513. foreach ($gxmc as $k=>$v){
  514. array_push($gxmcs,['like','%'.$v.'%']);
  515. }
  516. array_push($gxmcs,'OR');
  517. $rows = db()->table('工单_印件资料')->alias('g')
  518. ->field('rtrim(g.yj_yjmc) as Gd_cpmc, g.yj_Yjno as Gy0_yjno, c.Gy0_gxh, rtrim(c.Gy0_gxmc) as Gy0_gxmc')
  519. ->where(['g.Yj_Gdbh'=>$gdbh])
  520. ->where(['c.Gy0_gxmc'=>$gxmcs])
  521. ->join(['工单_工艺资料'=>'c'],'c.Gy0_gdbh=g.Yj_Gdbh and g.yj_Yjno=c.Gy0_yjno')
  522. ->select();
  523. foreach ($rows as $key=>$value){
  524. $rows[$key]['jyGx'] = sprintf("%02d", $value['Gy0_yjno']).'-'.$value['Gy0_gxh'];
  525. }
  526. $this->success('成功',$rows);
  527. }
  528. /**
  529. * 查询印件工序及产品名称
  530. * @ApiMethod (GET)
  531. * @param string $gdbh 工单编号
  532. * @param string $gxmc 工序名称
  533. */
  534. public function getMachineGxMc()
  535. {
  536. //get请求
  537. if(!$this->request->isGet()){
  538. $this->error('请求方式错误');
  539. }
  540. $req = $this->request->param();
  541. if (isset($req['gdbh']) && !empty($req['gdbh'])){
  542. $gdbh = $req['gdbh'];
  543. }else{
  544. $this->error('参数错误');
  545. }
  546. $gxmc = ['机检'];
  547. $gxmcs = [];
  548. foreach ($gxmc as $k=>$v){
  549. array_push($gxmcs,['like','%'.$v.'%']);
  550. }
  551. array_push($gxmcs,'OR');
  552. $rows = db()->table('工单_印件资料')->alias('g')
  553. ->field('rtrim(g.yj_yjmc) as Gd_cpmc, g.yj_Yjno as Gy0_yjno, c.Gy0_gxh, rtrim(c.Gy0_gxmc) as Gy0_gxmc')
  554. ->where(['g.Yj_Gdbh'=>$gdbh])
  555. ->where(['c.Gy0_gxmc'=>$gxmcs])
  556. ->join(['工单_工艺资料'=>'c'],'c.Gy0_gdbh=g.Yj_Gdbh and g.yj_Yjno=c.Gy0_yjno')
  557. ->select();
  558. foreach ($rows as $key=>$value){
  559. $rows[$key]['jyGx'] = sprintf("%02d", $value['Gy0_yjno']).'-'.$value['Gy0_gxh'];
  560. }
  561. $this->success('成功',$rows);
  562. }
  563. /**
  564. * 查询定额代号
  565. * @ApiMethod (GET)
  566. */
  567. public function getDedh()
  568. {
  569. //get请求
  570. if(!$this->request->isGet()){
  571. $this->error('请求方式错误');
  572. }
  573. $row = db('dic_lzde')
  574. ->field('Key_, sys_bh, rtrim(sys_mc) as sys_mc')
  575. ->where('sys_mc','初检(手工)')
  576. ->find();
  577. $rows = db('dic_lzde')
  578. ->field('sys_bh, rtrim(sys_mc) as sys_mc')
  579. // ->where('Parent',$row['Key_'])
  580. ->where('sys_bh','like',$row['sys_bh'].'%')
  581. ->where('sys_bh','<>',$row['sys_bh'])
  582. ->select();
  583. $row['bh_mc'] = $rows;
  584. $this->success('成功',$row);
  585. }
  586. /**
  587. * 查询定额代号
  588. * @ApiMethod (GET)
  589. */
  590. public function getMachineDedh()
  591. {
  592. //get请求
  593. if(!$this->request->isGet()){
  594. $this->error('请求方式错误');
  595. }
  596. // $req = $this->request->param();
  597. // if (isset($req['sys_mc']) && !empty($req['sys_mc'])){
  598. // $sys_mc = $req['sys_mc'];
  599. // }else{
  600. // $this->error('参数错误');
  601. // }
  602. $row = db('dic_lzde')
  603. ->field('Key_, sys_bh, rtrim(sys_mc) as sys_mc')
  604. ->where('适用机型','JP01#')
  605. ->find();
  606. $rows = db('dic_lzde')
  607. ->field('sys_bh, rtrim(sys_mc) as sys_mc')
  608. // ->where('Parent',$row['Key_'])
  609. ->where('sys_bh','like',$row['sys_bh'].'%')
  610. ->where('sys_bh','<>',$row['sys_bh'])
  611. ->select();
  612. $row['bh_mc'] = $rows;
  613. $this->success('成功',$row);
  614. }
  615. /**
  616. * 查询废品系数
  617. * @ApiMethod (GET)
  618. */
  619. public function getScrapFactor()
  620. {
  621. //get请求
  622. if(!$this->request->isGet()){
  623. $this->error('请求方式错误');
  624. }
  625. $req = $this->request->param();
  626. isset($req['gdbh']) && !empty($req['gdbh']) ? $gdbh = $req['gdbh'] : $this->error('参数错误');
  627. isset($req['yjno']) && !empty($req['yjno']) ? $yjno = $req['yjno'] : $this->error('参数错误');
  628. isset($req['gxh']) && !empty($req['gxh']) ? $gxh = $req['gxh'] : $this->error('参数错误');
  629. isset($req['type']) && !empty($req['type']) ? $type = $req['type'] : $this->error('参数错误');
  630. switch ($type){
  631. case '正品板':
  632. $field = '人工检_正品板 as num';
  633. case '次品板':
  634. $field = '人工检_次品板 as num';
  635. case '废品板':
  636. $field = '人工检_废检 as num';
  637. }
  638. $rows = db('工单_工艺资料')
  639. ->field($field)
  640. ->where(['Gy0_gdbh'=>$gdbh, 'Gy0_yjno'=>$yjno, 'Gy0_gxh'=>$gxh])
  641. ->find();
  642. $this->success('成功',$rows);
  643. }
  644. /**
  645. * 查询废品系数
  646. * @ApiMethod (GET)
  647. */
  648. public function getMachineScrapFactor()
  649. {
  650. //get请求
  651. if(!$this->request->isGet()){
  652. $this->error('请求方式错误');
  653. }
  654. $req = $this->request->param();
  655. isset($req['gdbh']) && !empty($req['gdbh']) ? $gdbh = $req['gdbh'] : $this->error('参数错误');
  656. isset($req['yjno']) && !empty($req['yjno']) ? $yjno = $req['yjno'] : $this->error('参数错误');
  657. isset($req['gxh']) && !empty($req['gxh']) ? $gxh = $req['gxh'] : $this->error('参数错误');
  658. isset($req['type']) && !empty($req['type']) ? $type = $req['type'] : $this->error('参数错误');
  659. switch ($type){
  660. case '正品板':
  661. $field = '机检_正品板 as num';
  662. case '次品板':
  663. $field = '机检_次品板 as num';
  664. case '废品板':
  665. $field = '机检_废检 as num';
  666. }
  667. $rows = db('工单_工艺资料')
  668. ->field($field)
  669. ->where(['Gy0_gdbh'=>$gdbh, 'Gy0_yjno'=>$yjno, 'Gy0_gxh'=>$gxh])
  670. ->find();
  671. $this->success('成功',$rows);
  672. }
  673. /**
  674. * 查询机台
  675. * @ApiMethod (GET)
  676. */
  677. public function getJtbh()
  678. {
  679. //get请求
  680. if(!$this->request->isGet()){
  681. $this->error('请求方式错误');
  682. }
  683. $req = $this->request->param();
  684. if (isset($req['sys_mc']) && !empty($req['sys_mc'])){
  685. $sys_mc = $req['sys_mc'];
  686. }else{
  687. $this->error('参数错误');
  688. }
  689. // $row = db('dic_lzde')
  690. // ->field('Key_, sys_bh, rtrim(sys_mc) as sys_mc')
  691. // ->where('sys_mc',$sys_mc)
  692. // ->find();
  693. $rows = db('dic_lzde')->alias('d')
  694. ->field('rtrim(s.设备编号) as jtbh, rtrim(s.设备名称) as jtmc')
  695. // ->where('Parent',$row['Key_'])
  696. ->where('d.适用机型','like','JP%')
  697. ->join(['设备_基本资料'=>'s'],'d.适用机型=s.设备编号')
  698. ->select();
  699. $this->success('成功',$rows);
  700. }
  701. /**
  702. * 新增
  703. * @ApiMethod (POST)
  704. * @param string
  705. */
  706. public function add()
  707. {
  708. if(!$this->request->isPost()){
  709. $this->error('请求方式错误');
  710. }
  711. $req = $this->request->param();
  712. //sczl_num, sczl_gs, sczl_fp
  713. $arr = [
  714. 'sys_id','sczl_rq','sczl_bzdh','sczl_bh0','sczl_cl0','sczl_fp0',
  715. 'sczl_gdbh','sczl_yjgx','sczl_gxmc',
  716. 'sczl_cl','sczl_dedh','sczl_检验类别','sczl_废品率系数',
  717. 'sczl_jsss','sczl_冲定额',
  718. 'qczl_Num','qczl_NumDesc1','qczl_NumDesc2','qczl_NumDesc3','qczl_NumDesc4',
  719. 'qczl_NumDesc5','qczl_NumDesc6','qczl_NumDesc7','qczl_NumDesc8','qczl_NumDesc',
  720. 'sczl_bh1','sczl_bh2','sczl_bh3','sczl_bh4','sczl_bh5', 'sczl_bh6',
  721. 'sczl_bh7','sczl_bh8','sczl_bh9','sczl_bh10','sczl_bh11', 'sczl_bh12',
  722. 'sczl_cl1','sczl_cl2','sczl_cl3','sczl_cl4','sczl_cl5','sczl_cl6',
  723. 'sczl_cl7','sczl_cl8','sczl_cl9','sczl_cl10','sczl_cl11','sczl_cl12',
  724. 'sczl_fp1','sczl_fp2','sczl_fp3','sczl_fp4','sczl_fp5','sczl_fp6',
  725. 'sczl_fp7','sczl_fp8','sczl_fp9','sczl_fp10','sczl_fp11','sczl_fp12','sczl_desc'
  726. ];
  727. $data = [];
  728. foreach ($arr as $key => $value){
  729. if (!(isset($req[$value]))){
  730. $this->error('参数错误',$value,$key+1);
  731. }
  732. $data[$value] = $req[$value];
  733. }
  734. $data['sys_rq'] = date('Y-m-d H:i:s');
  735. //查询UniqId
  736. $UniqId = db('db_手工检验')->max('UniqId');
  737. $data['UniqId'] = $UniqId < 10000000 ? 10000000 : $UniqId + 1;
  738. //开启事务
  739. db()->startTrans();
  740. try{
  741. $sql = db('db_手工检验')->fetchSql(true)->insert($data);
  742. $bool = db()->query($sql);
  743. // 提交事务
  744. db()->commit();
  745. } catch (\Exception $e) {
  746. // 回滚事务
  747. db()->rollback();
  748. $this->error($e->getMessage());
  749. }
  750. if($bool===false) $this->error('失败');
  751. $this->success('成功');
  752. }
  753. /**
  754. * 新增
  755. * @ApiMethod (POST)
  756. * @param string
  757. */
  758. public function machineAdd()
  759. {
  760. if(!$this->request->isPost()){
  761. $this->error('请求方式错误');
  762. }
  763. $req = $this->request->param();
  764. //sczl_num, sczl_NumDesc, sczl_fp
  765. $arr = [
  766. 'sys_id','sczl_rq','sczl_bzdh',
  767. 'sczl_gdbh','sczl_yjgx','sczl_gxmc',
  768. 'sczl_jtbh','sczl_单据类型','sczl_检验类别','sczl_废品率系数',
  769. 'sczl_cl','sczl_PgCl','sczl_dedh',
  770. 'qczl_Num','qczl_NumDesc1','qczl_NumDesc2','qczl_NumDesc3','qczl_NumDesc4',
  771. 'qczl_NumDesc5','qczl_NumDesc6','qczl_NumDesc7','qczl_NumDesc8','qczl_NumDesc',
  772. 'sczl_装版工时','sczl_保养工时','sczl_异常停机工时','sczl_设备运行工时',
  773. 'sczl_bh1','sczl_bh2','sczl_bh3','sczl_bh4','sczl_bh5', 'sczl_bh6','sczl_bh7','sczl_bh8',
  774. 'sczl_desc'
  775. ];
  776. $data = [];
  777. foreach ($arr as $key => $value){
  778. if (!(isset($req[$value]))){
  779. $this->error('参数错误',$value,$key+1);
  780. }
  781. $data[$value] = $req[$value];
  782. }
  783. $data['sys_rq'] = date('Y-m-d H:i:s');
  784. //查询UniqId
  785. $UniqId = db('db_机器检验')->max('UniqId');
  786. $data['UniqId'] = $UniqId < 10000000 ? 10000000 : $UniqId + 1;
  787. //开启事务
  788. db()->startTrans();
  789. try{
  790. $sql = db('db_机器检验')->fetchSql(true)->insert($data);
  791. $bool = db()->query($sql);
  792. // 提交事务
  793. db()->commit();
  794. } catch (\Exception $e) {
  795. // 回滚事务
  796. db()->rollback();
  797. $this->error($e->getMessage());
  798. }
  799. if($bool===false) $this->error('失败');
  800. $this->success('成功');
  801. }
  802. /**
  803. * 修改
  804. * @ApiMethod (POST)
  805. * @param string 'UniqId'
  806. */
  807. public function edit()
  808. {
  809. if(!$this->request->isPost()){
  810. $this->error('请求方式错误');
  811. }
  812. $req = $this->request->param();
  813. $arr = [
  814. 'sczl_rq','sczl_bzdh','sczl_bh0','sczl_cl0','sczl_fp0',
  815. 'sczl_gdbh','sczl_yjgx','sczl_gxmc',
  816. 'sczl_cl','sczl_dedh','sczl_检验类别','sczl_废品率系数',
  817. 'sczl_jsss','sczl_冲定额',
  818. 'qczl_Num','qczl_NumDesc1','qczl_NumDesc2','qczl_NumDesc3','qczl_NumDesc4',
  819. 'qczl_NumDesc5','qczl_NumDesc6','qczl_NumDesc7','qczl_NumDesc8','qczl_NumDesc',
  820. 'sczl_bh1','sczl_bh2','sczl_bh3','sczl_bh4','sczl_bh5', 'sczl_bh6',
  821. 'sczl_bh7','sczl_bh8','sczl_bh9','sczl_bh10','sczl_bh11', 'sczl_bh12',
  822. 'sczl_cl1','sczl_cl2','sczl_cl3','sczl_cl4','sczl_cl5','sczl_cl6',
  823. 'sczl_cl7','sczl_cl8','sczl_cl9','sczl_cl10','sczl_cl11','sczl_cl12',
  824. 'sczl_fp1','sczl_fp2','sczl_fp3','sczl_fp4','sczl_fp5','sczl_fp6',
  825. 'sczl_fp7','sczl_fp8','sczl_fp9','sczl_fp10','sczl_fp11','sczl_fp12','sczl_desc'
  826. ];
  827. $data = [];
  828. foreach ($arr as $key => $value){
  829. if (!(isset($req[$value]))){
  830. continue;
  831. }
  832. $data[$value] = $req[$value];
  833. }
  834. if (!(isset($req['UniqId']) && trim($req['UniqId'])!='')){
  835. $this->error('参数错误','UniqId',100);
  836. }
  837. $data['mod_rq'] = date('Y-m-d H:i:s');
  838. //开启事务
  839. db()->startTrans();
  840. try{
  841. $sql = db('db_手工检验')->where('UniqId',$req['UniqId'])->fetchSql(true)->update($data);
  842. $bool = db()->query($sql);
  843. // 提交事务
  844. db()->commit();
  845. } catch (\Exception $e) {
  846. // 回滚事务
  847. db()->rollback();
  848. $this->error($e->getMessage());
  849. }
  850. if($bool===false) $this->error('失败');
  851. $this->success('成功');
  852. }
  853. /**
  854. * 修改
  855. * @ApiMethod (POST)
  856. * @param string 'UniqId'
  857. */
  858. public function machineEdit()
  859. {
  860. if(!$this->request->isPost()){
  861. $this->error('请求方式错误');
  862. }
  863. $req = $this->request->param();
  864. $arr = [
  865. 'sys_id','sczl_rq','sczl_bzdh',
  866. 'sczl_gdbh','sczl_yjgx','sczl_gxmc',
  867. 'sczl_jtbh','sczl_单据类型','sczl_检验类别','sczl_废品率系数',
  868. 'sczl_cl','sczl_PgCl','sczl_dedh',
  869. 'qczl_Num','qczl_NumDesc1','qczl_NumDesc2','qczl_NumDesc3','qczl_NumDesc4',
  870. 'qczl_NumDesc5','qczl_NumDesc6','qczl_NumDesc7','qczl_NumDesc8','qczl_NumDesc',
  871. 'sczl_装版工时','sczl_保养工时','sczl_异常停机工时','sczl_设备运行工时',
  872. 'sczl_bh1','sczl_bh2','sczl_bh3','sczl_bh4','sczl_bh5', 'sczl_bh6','sczl_bh7','sczl_bh8',
  873. 'sczl_desc'
  874. ];
  875. $data = [];
  876. foreach ($arr as $key => $value){
  877. if (!(isset($req[$value]))){
  878. continue;
  879. }
  880. $data[$value] = $req[$value];
  881. }
  882. if (!(isset($req['UniqId']) && trim($req['UniqId'])!='')){
  883. $this->error('参数错误','UniqId',100);
  884. }
  885. $data['mod_rq'] = date('Y-m-d H:i:s');
  886. //开启事务
  887. db()->startTrans();
  888. try{
  889. $sql = db('db_机器检验')->where('UniqId',$req['UniqId'])->fetchSql(true)->update($data);
  890. $bool = db()->query($sql);
  891. // 提交事务
  892. db()->commit();
  893. } catch (\Exception $e) {
  894. // 回滚事务
  895. db()->rollback();
  896. $this->error($e->getMessage());
  897. }
  898. if($bool===false) $this->error('失败');
  899. $this->success('成功');
  900. }
  901. /**
  902. * 修改
  903. * @ApiMethod (POST)
  904. * @param string 'UniqId'
  905. */
  906. public function del()
  907. {
  908. if(!$this->request->isPost()){
  909. $this->error('请求方式错误');
  910. }
  911. $req = $this->request->param();
  912. if (!(isset($req['UniqId']) && trim($req['UniqId'])!='')){
  913. $this->error('参数错误','UniqId',100);
  914. }
  915. //开启事务
  916. db()->startTrans();
  917. try{
  918. $bool = db('db_手工检验')->where('UniqId',$req['UniqId'])->delete();
  919. // 提交事务
  920. db()->commit();
  921. } catch (\Exception $e) {
  922. // 回滚事务
  923. db()->rollback();
  924. $this->error($e->getMessage());
  925. }
  926. if($bool===false) $this->error('失败');
  927. $this->success('成功');
  928. }
  929. /**
  930. * 修改
  931. * @ApiMethod (POST)
  932. * @param string 'UniqId'
  933. */
  934. public function machineDel()
  935. {
  936. if(!$this->request->isPost()){
  937. $this->error('请求方式错误');
  938. }
  939. $req = $this->request->param();
  940. if (!(isset($req['UniqId']) && trim($req['UniqId'])!='')){
  941. $this->error('参数错误','UniqId',100);
  942. }
  943. //开启事务
  944. db()->startTrans();
  945. try{
  946. $bool = db('db_机器检验')->where('UniqId',$req['UniqId'])->delete();
  947. // 提交事务
  948. db()->commit();
  949. } catch (\Exception $e) {
  950. // 回滚事务
  951. db()->rollback();
  952. $this->error($e->getMessage());
  953. }
  954. if($bool===false) $this->error('失败');
  955. $this->success('成功');
  956. }
  957. /**
  958. * 工序汇总导出
  959. * @ApiMethod (GET)
  960. * @param string date
  961. * @param string sys_id
  962. * @param array fields
  963. */
  964. public function export(){
  965. if(!$this->request->isGet()){
  966. $this->error('请求方式错误');
  967. }
  968. $req = $this->request->param();
  969. $where = [];
  970. if (!isset($req['date']) || empty($req['date'])) $this->error('参数缺失');
  971. if (!(isset($req['fields']) && count($req['fields'])!=0)){
  972. $this->error('参数错误','fields',100);
  973. }
  974. if(strpos($req['date'],'-')){
  975. $where = ['a.sys_rq'=>['like',$req['date'].'%']];
  976. }else{
  977. $where = ['a.sczl_gdbh'=>$req['date']];
  978. }
  979. if (isset($req['sys_id']) && !empty($req['sys_id'])){
  980. $where['a.sys_id'] = ['LIKE',$req['sys_id'].'%'];
  981. }
  982. $field = '';
  983. $arr = [
  984. 'sczl_gdyj' =>['工单印件','CONCAT(a.sczl_gdbh, "--", rtrim(d.yj_yjmc)) as sczl_gdyj'],
  985. 'sczl_yjgx' =>['印件工序','CONCAT(rtrim(a.sczl_yjgx), " -", rtrim(a.sczl_gxmc)) as sczl_yjgx'],
  986. 'sczl_rq' =>['日期','LEFT(a.sczl_rq, 10) as sczl_rq'],
  987. 'sczl_cl' =>['计件产量','a.sczl_cl'],
  988. '千件工价' =>['千件工价','b.千件工价'],
  989. 'sczl_检验类别' =>['检验类别','rtrim(a.sczl_检验类别) as sczl_检验类别'],
  990. 'sczl_废品率系数' =>['废品率系数','a.sczl_废品率系数'],
  991. '日定额' =>['日定额','b.日定额'],
  992. 'sczl_bh0' =>['组长编号','a.sczl_bh0'],
  993. 'name' =>['组长姓名','rtrim(c.员工姓名) as name'],
  994. 'qczl_NumDesc' =>['流程单备注','a.qczl_NumDesc'],
  995. ];
  996. $data[0] = [];
  997. foreach ($req['fields'] as $k=>$v){
  998. if(array_key_exists($v,$arr)){
  999. if ($k==0){
  1000. $field .= $arr[$v][1];
  1001. }else{
  1002. $field .= ','.$arr[$v][1];
  1003. }
  1004. array_push($data[0],$arr[$v][0]);
  1005. }
  1006. }
  1007. $rows = db('db_手工检验')->alias('a')
  1008. ->join('dic_lzde b','a.sczl_dedh = b.sys_bh','left')
  1009. ->join('人事_基本资料 c','a.sczl_bh0 = c.员工编号','left')
  1010. ->join('工单_印件资料 d','a.sczl_gdbh = d.Yj_Gdbh','left')
  1011. ->where($where)
  1012. ->where('SUBSTR(a.sczl_yjgx,1,2) = d.yj_Yjno')
  1013. ->field($field)->order('a.sczl_rq,a.UniqId asc')->select();
  1014. foreach ($rows as $key=>$value) {
  1015. if (isset($value['sczl_cl'])) $value['sczl_cl'] = floatval($value['sczl_cl']);
  1016. if (isset($value['千件工价'])) $value['千件工价'] = floatval($value['千件工价']);
  1017. $subArray = [];
  1018. foreach ($req['fields'] as $k=>$v){
  1019. if(array_key_exists($v,$arr)){
  1020. if($value[$v]){
  1021. array_push($subArray,$value[$v]);
  1022. }else{
  1023. array_push($subArray,'');
  1024. }
  1025. }
  1026. }
  1027. array_push($data,$subArray);
  1028. }
  1029. $this->success('成功',['file_name'=>$req['file_name'],'data'=>$data]);
  1030. }
  1031. /**
  1032. * 工序汇总导出
  1033. * @ApiMethod (GET)
  1034. * @param string file_name
  1035. * @param string date
  1036. * @param string sys_id
  1037. * @param array fields
  1038. */
  1039. public function machineExport(){
  1040. if(!$this->request->isGet()){
  1041. $this->error('请求方式错误');
  1042. }
  1043. $req = $this->request->param();
  1044. if (!isset($req['date']) || empty($req['date'])) $this->error('参数缺失');
  1045. if (!(isset($req['fields']) && count($req['fields'])!=0)){
  1046. $this->error('参数错误','fields',100);
  1047. }
  1048. if(strpos($req['date'],'-')){
  1049. $where = ['a.sys_rq'=>['like','%'.$req['date'].'%']];
  1050. }else{
  1051. $where = ['a.sczl_gdbh'=>$req['date']];
  1052. }
  1053. if (isset($req['sys_id']) && !empty($req['sys_id'])){
  1054. $where['a.sys_id'] = ['LIKE','%'.$req['sys_id'].'%'];
  1055. }
  1056. $field = '';
  1057. $arr = [
  1058. 'sczl_单据类型' =>['分类','rtrim(a.sczl_单据类型) as sczl_单据类型'],
  1059. 'sczl_gdyj' =>['工单印件','CONCAT(a.sczl_gdbh, "--", rtrim(d.yj_yjmc)) as sczl_gdyj'],
  1060. 'sczl_yjgx' =>['印件工序','CONCAT(rtrim(a.sczl_yjgx), " -", rtrim(a.sczl_gxmc)) as sczl_yjgx'],
  1061. 'sczl_jtbh' =>['机台编号','a.sczl_jtbh'],
  1062. 'sczl_rq' =>['日期','LEFT(a.sczl_rq, 10) as sczl_rq'],
  1063. 'sczl_cl' =>['计件产量','a.sczl_cl'],
  1064. 'sczl_检验类别' =>['检验类别','rtrim(a.sczl_检验类别) as sczl_检验类别'],
  1065. 'sczl_废品率系数' =>['废品率系数','a.sczl_废品率系数'],
  1066. '日定额' =>['日定额','b.日定额'],
  1067. 'sczl_bh1' =>['员工姓名1','rtrim(c1.员工姓名) as sczl_bh1'],
  1068. 'sczl_bh2' =>['员工姓名2','rtrim(c2.员工姓名) as sczl_bh2'],
  1069. 'sczl_bh3' =>['员工姓名3','rtrim(c3.员工姓名) as sczl_bh3'],
  1070. 'sczl_bh4' =>['员工姓名4','rtrim(c4.员工姓名) as sczl_bh4'],
  1071. 'sczl_bzdh' =>['班组代号','a.sczl_bzdh'],
  1072. '千件工价' =>['千件工价','b.千件工价'],
  1073. 'sczl_设备运行工时' =>['通电工时','a.sczl_设备运行工时'],
  1074. 'qczl_NumDesc' =>['流程单备注','a.qczl_NumDesc'],
  1075. ];
  1076. $data[0] = [];
  1077. foreach ($req['fields'] as $k=>$v){
  1078. if(array_key_exists($v,$arr)){
  1079. if ($k==0){
  1080. $field .= $arr[$v][1];
  1081. }else{
  1082. $field .= ','.$arr[$v][1];
  1083. }
  1084. array_push($data[0],$arr[$v][0]);
  1085. }
  1086. }
  1087. $rows = db('db_机器检验')->alias('a')
  1088. ->join('dic_lzde b','a.sczl_dedh = b.sys_bh','left')
  1089. ->join('人事_基本资料 c1','a.sczl_bh1 = c1.员工编号','left')
  1090. ->join('人事_基本资料 c2','a.sczl_bh2 = c2.员工编号','left')
  1091. ->join('人事_基本资料 c3','a.sczl_bh3 = c3.员工编号','left')
  1092. ->join('人事_基本资料 c4','a.sczl_bh4 = c4.员工编号','left')
  1093. ->join('工单_印件资料 d','a.sczl_gdbh = d.Yj_Gdbh','left')
  1094. ->where($where)
  1095. ->where('SUBSTR(a.sczl_yjgx,1,2) = d.yj_Yjno')
  1096. ->field($field)->order('a.UniqId desc')->select();
  1097. foreach ($rows as $key=>$value) {
  1098. if (isset($value['sczl_cl'])) $value['sczl_cl'] = floatval($value['sczl_cl']);
  1099. if (isset($value['千件工价'])) $value['千件工价'] = floatval($value['千件工价']);
  1100. if (isset($value['sczl_设备运行工时'])) $value['sczl_设备运行工时'] = floatval($value['sczl_设备运行工时']);
  1101. $subArray = [];
  1102. foreach ($req['fields'] as $k=>$v){
  1103. if(array_key_exists($v,$arr)){
  1104. if($value[$v]){
  1105. array_push($subArray,$value[$v]);
  1106. }else{
  1107. array_push($subArray,'');
  1108. }
  1109. }
  1110. }
  1111. array_push($data,$subArray);
  1112. }
  1113. $this->success('成功',['file_name'=>$req['file_name'],'data'=>$data]);
  1114. }
  1115. /**
  1116. * 月度汇总导出
  1117. * @ApiMethod (GET)
  1118. * @param string month
  1119. * @param string file_name
  1120. * @param array fields
  1121. */
  1122. public function monthExport(){
  1123. if(!$this->request->isGet()){
  1124. $this->error('请求方式错误');
  1125. }
  1126. $req = $this->request->param();
  1127. if (isset($req['date']) && !empty($req['date'])){
  1128. $where = ['a.sczl_rq'=>['like',$req['date'].'%']];
  1129. }else{
  1130. $this->error('参数缺失');
  1131. }
  1132. if (!(isset($req['fields']) && count($req['fields'])!=0)){
  1133. $this->error('参数错误','fields',100);
  1134. }
  1135. $field = '';
  1136. $arr = [
  1137. 'sczl_rq' =>['日期','LEFT(a.sczl_rq, 10) as sczl_rq'],
  1138. 'sczl_gdbh' =>['工单编号','a.sczl_gdbh'],
  1139. 'sczl_gdyj' =>['工单印件','rtrim(d.yj_yjmc) as sczl_gdyj'],
  1140. 'sczl_yjgx' =>['印件工序','CONCAT(rtrim(a.sczl_yjgx), " -", rtrim(a.sczl_gxmc)) as sczl_yjgx'],
  1141. 'sczl_cl' =>['计件产量','sum(a.sczl_cl) as sczl_cl'],
  1142. ];
  1143. $data[0] = [];
  1144. foreach ($req['fields'] as $k=>$v){
  1145. if(array_key_exists($v,$arr)){
  1146. if ($k==0){
  1147. $field .= $arr[$v][1];
  1148. }else{
  1149. $field .= ','.$arr[$v][1];
  1150. }
  1151. array_push($data[0],$arr[$v][0]);
  1152. }
  1153. }
  1154. $rows = db('db_手工检验')->alias('a')
  1155. ->field($field)
  1156. ->where($where)
  1157. ->where('SUBSTR(a.sczl_yjgx,1,2) = d.yj_Yjno')
  1158. ->join('工单_印件资料 d', 'a.sczl_gdbh = d.Yj_Gdbh', 'left')
  1159. ->group('a.sczl_gdbh, d.yj_yjmc, a.sczl_yjgx')
  1160. ->order('a.sczl_gdbh asc')
  1161. ->select();
  1162. foreach ($rows as $key=>$value) {
  1163. if (isset($value['sczl_cl'])) $value['sczl_cl'] = floatval($value['sczl_cl']);
  1164. $subArray = [];
  1165. foreach ($req['fields'] as $k=>$v){
  1166. if(array_key_exists($v,$arr)){
  1167. if($value[$v]){
  1168. array_push($subArray,$value[$v]);
  1169. }else{
  1170. array_push($subArray,'');
  1171. }
  1172. }
  1173. }
  1174. array_push($data,$subArray);
  1175. }
  1176. $this->success('成功',['file_name'=>$req['file_name'],'data'=>$data]);
  1177. }
  1178. /**
  1179. * 手检流程单统计导出
  1180. * @ApiMethod (GET)
  1181. * @param string start_time
  1182. * @param string end_time
  1183. * @param string file_name
  1184. * @param array fields
  1185. */
  1186. public function handInspectExport(){
  1187. if(!$this->request->isGet()){
  1188. $this->error('请求方式错误');
  1189. }
  1190. $req = $this->request->param();
  1191. $arr = [
  1192. 'start_time', 'end_time', 'file_name'
  1193. ];
  1194. foreach ($arr as $key => $value){
  1195. if (!isset($req[$value])){
  1196. $this->error('参数错误',$value,$key+1);
  1197. }
  1198. }
  1199. if (!(isset($req['fields']) && count($req['fields'])!=0)){
  1200. $this->error('参数错误','fields',100);
  1201. }
  1202. $field = '';
  1203. $arr = [
  1204. 'sczl_gdbh' =>['工单编号',''],
  1205. 'sczl_yjgx' =>['印件工序','rtrim(sczl_yjgx) as sczl_yjgx'],
  1206. 'sczl_gxmc' =>['工序名称','rtrim(sczl_gxmc) as sczl_gxmc'],
  1207. 'sczl_rq' =>['日期','sczl_rq'],
  1208. 'sczl_Num' =>['流程单号','qczl_Num,qczl_NumDesc1,qczl_NumDesc2,qczl_NumDesc3,qczl_NumDesc4,qczl_NumDesc5,qczl_NumDesc6,qczl_NumDesc7,qczl_NumDesc8'],
  1209. 'sczl_cl' =>['质检产量','qczl_Num,qczl_NumDesc1,qczl_NumDesc2,qczl_NumDesc3,qczl_NumDesc4,qczl_NumDesc5,qczl_NumDesc6,qczl_NumDesc7,qczl_NumDesc8,sczl_cl'],
  1210. ];
  1211. $data[0] = [];
  1212. foreach ($req['fields'] as $k=>$v){
  1213. if(array_key_exists($v,$arr)){
  1214. if ($k==0){
  1215. $field .= $arr[$v][1];
  1216. }else{
  1217. $field .= ','.$arr[$v][1];
  1218. }
  1219. array_push($data[0],$arr[$v][0]);
  1220. }
  1221. }
  1222. $rows = db('db_手工检验')
  1223. ->field('sczl_gdbh,'.$field)
  1224. ->where('sczl_rq',['>=',$req['start_time']],['<=',$req['end_time']],'and')
  1225. ->where('qczl_Num|qczl_NumDesc1|qczl_NumDesc2|qczl_NumDesc3|qczl_NumDesc4|qczl_NumDesc5|qczl_NumDesc6|qczl_NumDesc7|qczl_NumDesc8','<>',0)
  1226. ->order('sczl_gdbh asc')
  1227. ->select();
  1228. $data = [];
  1229. $brr = [
  1230. 'qczl_Num','qczl_NumDesc1','qczl_NumDesc2','qczl_NumDesc3','qczl_NumDesc4',
  1231. 'qczl_NumDesc5','qczl_NumDesc6','qczl_NumDesc7','qczl_NumDesc8'
  1232. ];
  1233. foreach($rows as $key=>$value){
  1234. $flag = 0;
  1235. foreach($brr as $ke=>$va){
  1236. if ($value[$va]!=0){
  1237. $subArray = [];
  1238. foreach ($req['fields'] as $k=>$v) {
  1239. if (array_key_exists($v, $arr)) {
  1240. if ($v=='sczl_cl'){
  1241. if ($flag==0){
  1242. $subArray['sczl_cl'] = $value['sczl_cl'];
  1243. }else{
  1244. $subArray['sczl_cl'] = 0;
  1245. }
  1246. }else if ($v=='sczl_Num'){
  1247. $subArray['sczl_Num'] = $value[$va];
  1248. }else{
  1249. $subArray[$v] = $value[$v];
  1250. }
  1251. }
  1252. }
  1253. $flag++;
  1254. if(array_key_exists($value['sczl_gdbh'].'-'.$value['sczl_rq'].'-'.$value[$va],$data)){
  1255. if(array_key_exists('sczl_cl',$subArray)){
  1256. $data[$value['sczl_gdbh'].'-'.$value['sczl_rq'].'-'.$value[$va]]['sczl_cl'] += $value['sczl_cl'];
  1257. }
  1258. }else{
  1259. $data[$value['sczl_gdbh'].'-'.$value['sczl_rq'].'-'.$value[$va]] = $subArray;
  1260. }
  1261. }
  1262. }
  1263. }
  1264. $data = array_values($data);
  1265. $this->success('成功',['file_name'=>$req['file_name'],'data'=>$data]);
  1266. }
  1267. }