update.component.html 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461
  1. <nz-spin [nzSpinning]="saveLoading">
  2. <!-- 主数据 -->
  3. <nz-table nzSize="small" [nzNoResult]="' '" nzBordered #basicTable [nzShowPagination]="false" style="margin-bottom: 5px;">
  4. <thead>
  5. <tr>
  6. <!-- 异常工时信息统计单 -->
  7. <th colspan="13">
  8. <h2><strong>生产日报表</strong></h2>
  9. </th>
  10. </tr>
  11. </thead>
  12. <tbody>
  13. <tr>
  14. <!-- <td style="width: 25%;">姓名</td>
  15. <td style="width: 25%;" colSpan="2">
  16. <nz-select [(ngModel)]="fbsAbnormalWorkingHours.personnelIdU8" style="width: 100%;" nzShowSearch nzAllowClear
  17. nzPlaceHolder="请选择" (ngModelChange)="personnelChange($event)">
  18. <ng-container *ngFor="let proper of properList">
  19. <nz-option [nzLabel]="proper.cpersonname" [nzValue]="proper.cpersoncode"> </nz-option>
  20. </ng-container>
  21. </nz-select>
  22. </td> -->
  23. <td colSpan="2">日期</td>
  24. <td colspan="11">
  25. <nz-date-picker [(ngModel)]="fbsAbnormalWorkingHours.date" nzPlaceHolder="请选择" >
  26. </nz-date-picker>
  27. </td>
  28. </tr>
  29. <tr>
  30. <td>出勤工时</td>
  31. <td>应到人数</td>
  32. <td style="width: 8%;">
  33. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.numberOfPeopleToArrive" [nzMin]="0" [nzStep]="1">
  34. </nz-input-number>
  35. </td>
  36. <td>实到人数</td>
  37. <td style="width: 8%;">
  38. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.actualNumberOfPeople" [nzMin]="0" [nzStep]="1">
  39. </nz-input-number>
  40. </td>
  41. <td>请假</td>
  42. <td style="width: 8%;">
  43. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.lleave" [nzMin]="0" [nzStep]="1">
  44. </nz-input-number>
  45. </td>
  46. <td>旷工</td>
  47. <td style="width: 8%;">
  48. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.absenteeism" [nzMin]="0" [nzStep]="1">
  49. </nz-input-number>
  50. </td>
  51. <td>离职</td>
  52. <td style="width: 8%;">
  53. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.quit" [nzMin]="0" [nzStep]="1">
  54. </nz-input-number>
  55. </td>
  56. <td>出勤工时</td>
  57. <td style="width: 8%;">
  58. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.attendanceHours" [nzMin]="0" [nzStep]="1">
  59. </nz-input-number>
  60. </td>
  61. </tr>
  62. <tr>
  63. <td>加班记录</td>
  64. <td>加班人数</td>
  65. <td>
  66. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.overtimePeople" [nzMin]="0" [nzStep]="1">
  67. </nz-input-number>
  68. </td>
  69. <td>加班工时</td>
  70. <td>
  71. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.overtimeHours" [nzMin]="0" [nzStep]="1">
  72. </nz-input-number>
  73. </td>
  74. <td>加班原因</td>
  75. <td colspan="7">
  76. <textarea rows="2" nz-input [(ngModel)]="fbsAbnormalWorkingHours.overtimeReason"></textarea>
  77. </td>
  78. </tr>
  79. <tr>
  80. <td rowSpan="5">无效工时</td>
  81. <td >培训</td>
  82. <td >
  83. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.train" [nzMin]="0" [nzStep]="1"></nz-input-number>
  84. </td>
  85. <td >备注</td>
  86. <td colspan="9">
  87. <input nz-input [(ngModel)]="fbsAbnormalWorkingHours.trainMemo" />
  88. </td>
  89. </tr>
  90. <tr>
  91. <td >会议</td>
  92. <td >
  93. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.meeting" [nzMin]="0" [nzStep]="1"></nz-input-number>
  94. </td>
  95. <td >备注</td>
  96. <td colspan="9">
  97. <input nz-input [(ngModel)]="fbsAbnormalWorkingHours.meetingMemo" />
  98. </td>
  99. </tr>
  100. <tr>
  101. <td>待料</td>
  102. <td>
  103. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.researchAndDevelopment" [nzMin]="0" [nzStep]="1">
  104. </nz-input-number>
  105. </td>
  106. <td >备注</td>
  107. <td colspan="9">
  108. <input nz-input [(ngModel)]="fbsAbnormalWorkingHours.researchAndDevelopmentMemo" />
  109. </td>
  110. </tr>
  111. <tr>
  112. <td >5S</td>
  113. <td >
  114. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.fiveS" [nzMin]="0" [nzStep]="1"></nz-input-number>
  115. </td>
  116. <td >备注</td>
  117. <td colspan="9">
  118. <input nz-input [(ngModel)]="fbsAbnormalWorkingHours.fiveSMemo" />
  119. </td>
  120. </tr>
  121. <!-- <tr>
  122. <td >打包</td>
  123. <td >
  124. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.pack" [nzMin]="0" [nzStep]="1"></nz-input-number>
  125. </td>
  126. <td >备注</td>
  127. <td colspan="9">
  128. <input nz-input [(ngModel)]="fbsAbnormalWorkingHours.packMemo" />
  129. </td>
  130. </tr> -->
  131. <tr>
  132. <td >其他</td>
  133. <td >
  134. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.other" [nzMin]="0" [nzStep]="1"></nz-input-number>
  135. </td>
  136. <td >备注</td>
  137. <td colspan="9">
  138. <input nz-input [(ngModel)]="fbsAbnormalWorkingHours.otherMemo" />
  139. </td>
  140. </tr>
  141. <!-- <tr>
  142. <td rowSpan="6">异常工时统计</td>
  143. <td>质量</td>
  144. <td>
  145. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.quality" [nzMin]="0" [nzStep]="1"></nz-input-number>
  146. </td>
  147. <td >备注</td>
  148. <td colspan="9">
  149. <input nz-input [(ngModel)]="fbsAbnormalWorkingHours.qualityMemo" />
  150. </td>
  151. </tr>
  152. <tr>
  153. <td>物料</td>
  154. <td>
  155. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.materiel" [nzMin]="0" [nzStep]="1"></nz-input-number>
  156. </td>
  157. <td >备注</td>
  158. <td colspan="9">
  159. <input nz-input [(ngModel)]="fbsAbnormalWorkingHours.materielMemo" />
  160. </td>
  161. </tr>
  162. <tr>
  163. <td>设备</td>
  164. <td>
  165. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.equipment" [nzMin]="0" [nzStep]="1"></nz-input-number>
  166. </td>
  167. <td >备注</td>
  168. <td colspan="9">
  169. <input nz-input [(ngModel)]="fbsAbnormalWorkingHours.equipmentMemo" />
  170. </td>
  171. </tr>
  172. <tr>
  173. <td>设计</td>
  174. <td>
  175. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.design" [nzMin]="0" [nzStep]="1"></nz-input-number>
  176. </td>
  177. <td >备注</td>
  178. <td colspan="9">
  179. <input nz-input [(ngModel)]="fbsAbnormalWorkingHours.designMemo" />
  180. </td>
  181. </tr>
  182. <tr>
  183. <td>能源</td>
  184. <td>
  185. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.energy" [nzMin]="0" [nzStep]="1"></nz-input-number>
  186. </td>
  187. <td >备注</td>
  188. <td colspan="9">
  189. <input nz-input [(ngModel)]="fbsAbnormalWorkingHours.energyMemo" />
  190. </td>
  191. </tr>
  192. <tr>
  193. <td>计划</td>
  194. <td>
  195. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.plan" [nzMin]="0" [nzStep]="1"></nz-input-number>
  196. </td>
  197. <td >备注</td>
  198. <td colspan="9">
  199. <input nz-input [(ngModel)]="fbsAbnormalWorkingHours.planMemo" />
  200. </td>
  201. </tr> -->
  202. <!-- <tr>
  203. <td>设计</td>
  204. <td>
  205. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.design" [nzMin]="0" [nzStep]="1"></nz-input-number>
  206. </td>
  207. <td>返工</td>
  208. <td>
  209. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.rework" [nzMin]="0" [nzStep]="1"></nz-input-number>
  210. </td>
  211. </tr>
  212. <tr>
  213. <td>物料</td>
  214. <td>
  215. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.materiel" [nzMin]="0" [nzStep]="1"></nz-input-number>
  216. </td>
  217. <td>能源</td>
  218. <td>
  219. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.energy" [nzMin]="0" [nzStep]="1"></nz-input-number>
  220. </td>
  221. <td>其他</td>
  222. <td>
  223. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.other" [nzMin]="0" [nzStep]="1"></nz-input-number>
  224. </td>
  225. </tr>
  226. <tr>
  227. <td>设备</td>
  228. <td>
  229. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.equipment" [nzMin]="0" [nzStep]="1"></nz-input-number>
  230. </td>
  231. <td>计划</td>
  232. <td>
  233. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.plan" [nzMin]="0" [nzStep]="1"></nz-input-number>
  234. </td>
  235. <td></td>
  236. <td></td>
  237. </tr>
  238. <tr>
  239. <td rowSpan="2">仓库工时统计</td>
  240. <td>配料</td>
  241. <td>
  242. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.mixedIngredients" [nzMin]="0" [nzStep]="1">
  243. </nz-input-number>
  244. </td>
  245. <td>入库</td>
  246. <td>
  247. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.warehousing" [nzMin]="0" [nzStep]="1"></nz-input-number>
  248. </td>
  249. <td>打包</td>
  250. <td>
  251. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.pack" [nzMin]="0" [nzStep]="1"></nz-input-number>
  252. </td>
  253. </tr>
  254. <tr>
  255. <td>其他</td>
  256. <td>
  257. <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.warehouseOthers" [nzMin]="0" [nzStep]="1">
  258. </nz-input-number>
  259. </td>
  260. <td>备注</td>
  261. <td colSpan="3">
  262. <textarea rows="2" nz-input [(ngModel)]="fbsAbnormalWorkingHours.memo"></textarea>
  263. </td>
  264. </tr> -->
  265. <tr>
  266. <!-- <td>改善措施</td>
  267. <td>当日派工产品</td>
  268. <td>
  269. <nz-select [(ngModel)]="fbsAbnormalWorkingHours.productId" style="width: 100%;" nzShowSearch
  270. nzAllowClear nzPlaceHolder="请选择" (ngModelChange)="productChange($event)">
  271. <ng-container *ngFor="let produc of productList">
  272. <nz-option [nzLabel]="produc.product" [nzValue]="produc.productId"> </nz-option>
  273. </ng-container>
  274. </nz-select>
  275. </td>
  276. <td>不良品数量</td>
  277. <td><nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.rejectsNumber" [nzMin]="0" [nzStep]="1"></nz-input-number></td> -->
  278. <!-- <td>异常类别</td>
  279. <td>
  280. <nz-select [(ngModel)]="fbsAbnormalWorkingHours.typeId" style="width: 100%;" nzShowSearch
  281. nzAllowClear nzPlaceHolder="请选择" (ngModelChange)="typeChange($event)">
  282. <ng-container *ngFor="let type of typeListSelect">
  283. <nz-option [nzLabel]="type.typeName" [nzValue]="type.id"> </nz-option>
  284. </ng-container>
  285. </nz-select>
  286. </td> -->
  287. </tr>
  288. <tr></tr>
  289. </tbody>
  290. </nz-table>
  291. <!-- 子表数据 -->
  292. <div nz-row nzGutter="24" >
  293. <!-- 异常原因描述 -->
  294. <div nz-col nzMd="24" nzLg="24">
  295. <nz-card nzTitle="异常原因描述">
  296. <!-- 按钮 -->
  297. <div nz-row [nzGutter]="24">
  298. <div nz-col nzMd="24" nzLg="24">
  299. <button (click)="describeAddRow()" nz-button nzType="primary">新增</button>
  300. </div>
  301. </div>
  302. <!-- 表格 -->
  303. <nz-table style="margin-top: 5px;" nzSize="small" #editRowTable nzBordered [nzData]="describeList" [nzShowPagination]="false" [nzFrontPagination]=false>
  304. <thead>
  305. <tr>
  306. <th nzWidth="5%">序号</th>
  307. <th nzWidth="8%">项目编码</th>
  308. <th nzWidth="8%">项目名称</th>
  309. <th nzWidth="8%">工作中心</th>
  310. <th nzWidth="8%">订单编号</th>
  311. <th nzWidth="8%">物料编码</th>
  312. <th nzWidth="8%">物料名称</th>
  313. <th nzWidth="5%">计划数量</th>
  314. <!-- <th nzWidth="5%">不良品数量</th> -->
  315. <th nzWidth="15%">异常描述</th>
  316. <th nzWidth="8%">异常分类</th>
  317. <th nzWidth="5%">异常工时</th>
  318. <th nzWidth="10%">不良物料名称</th>
  319. <th nzWidth="5%">不良率(%)</th>
  320. <!-- <th nzWidth="5%">数量</th>
  321. <th nzWidth="5%">不良数量</th> -->
  322. <th nzWidth="10%">操作</th>
  323. </tr>
  324. </thead>
  325. <tbody>
  326. <tr *ngFor="let data of editRowTable.data">
  327. <td>{{data.sort}}</td>
  328. <td>{{data.costItemCode}}</td>
  329. <td>{{data.projectName}}</td>
  330. <td>{{data.workCenter}}</td>
  331. <td>{{data.productionOrderNumberName}}</td>
  332. <td>
  333. <ng-container >
  334. <nz-select [(ngModel)]="data.productId" style="width: 100%;" nzShowSearch nzAllowClear
  335. nzPlaceHolder="请选择" (ngModelChange)="productChange($event,data)"
  336. [nzDropdownMatchSelectWidth]="false">
  337. <ng-container *ngFor="let produc of productList">
  338. <nz-option [nzLabel]="produc.productId" [nzValue]="produc.productId"> </nz-option>
  339. </ng-container>
  340. </nz-select>
  341. </ng-container>
  342. </td>
  343. <!-- <td>
  344. <nz-select [(ngModel)]="data.type" style="width: 100%;" nzShowSearch nzAllowClear nzPlaceHolder="请选择"
  345. [nzDropdownMatchSelectWidth]="false">
  346. <nz-option nzLabel="产品" nzValue="产品"> </nz-option>
  347. <nz-option nzLabel="物料" nzValue="物料"> </nz-option>
  348. </nz-select>
  349. </td> -->
  350. <td>
  351. <!-- 选择产品 -->
  352. <!-- <ng-container *ngIf="data.type=='产品'"> -->
  353. <ng-container >
  354. <nz-select [(ngModel)]="data.productId" style="width: 100%;" nzShowSearch nzAllowClear
  355. nzPlaceHolder="请选择" (ngModelChange)="productChange($event,data)"
  356. [nzDropdownMatchSelectWidth]="false">
  357. <ng-container *ngFor="let produc of productList">
  358. <nz-option [nzLabel]="produc.product" [nzValue]="produc.productId"> </nz-option>
  359. </ng-container>
  360. </nz-select>
  361. </ng-container>
  362. <!-- 选择物料 -->
  363. <!-- <ng-container *ngIf="data.type=='物料'">
  364. <input [(ngModel)]="data.product" nz-input
  365. placeholder="请输入" />
  366. </ng-container> -->
  367. <!-- {{data.product}} -->
  368. </td>
  369. <td>
  370. <!-- <ng-container *ngIf="data.type=='产品'">
  371. {{data.plannedQuantity}}
  372. </ng-container>
  373. <ng-container *ngIf="data.type=='物料'">
  374. <nz-input-number [(ngModel)]="data.plannedQuantity" [nzMin]="0" [nzStep]="1"></nz-input-number>
  375. </ng-container> -->
  376. {{data.plannedQuantity}}
  377. </td>
  378. <!-- <td><nz-input-number [(ngModel)]="data.rejectsNumber" [nzMin]="0" [nzStep]="1"></nz-input-number></td> -->
  379. <td><textarea rows="1" nz-input [(ngModel)]="data.describes"></textarea></td>
  380. <td>
  381. <ng-container >
  382. <nz-select [(ngModel)]="data.anomalyClassification" style="width: 100%;" nzShowSearch nzAllowClear
  383. nzPlaceHolder="请选择"
  384. [nzDropdownMatchSelectWidth]="false">
  385. <nz-option nzLabel="设计" nzValue="1"> </nz-option>
  386. <nz-option nzLabel="物料" nzValue="2"> </nz-option>
  387. <nz-option nzLabel="计划" nzValue="3"> </nz-option>
  388. <nz-option nzLabel="制程" nzValue="4"> </nz-option>
  389. <nz-option nzLabel="其他" nzValue="5"> </nz-option>
  390. <nz-option nzLabel="设计" nzValue="6"> </nz-option>
  391. </nz-select>
  392. </ng-container>
  393. </td>
  394. <td><nz-input-number [(ngModel)]="data.abnormalWorkingHours" [nzMin]="0" [nzStep]="1"></nz-input-number></td>
  395. <td>
  396. <!-- <nz-select [(ngModel)]="data.typeId" style="width: 100%;" nzShowSearch
  397. nzAllowClear nzPlaceHolder="请选择" (ngModelChange)="typeChange($event,data)">
  398. <ng-container *ngFor="let type of typeListSelect">
  399. <nz-option [nzLabel]="type.typeName" [nzValue]="type.id"> </nz-option>
  400. </ng-container>
  401. </nz-select> -->
  402. <input nz-input name="data.materielName" [(ngModel)]="data.materielName" />
  403. </td>
  404. <td><nz-input-number [(ngModel)]="data.defectiveRate" [nzMin]="0" [nzStep]="1"></nz-input-number></td>
  405. <!-- <td>
  406. <nz-input-number [(ngModel)]="data.materielNumberOfTasks" [nzMin]="0" [nzStep]="1"></nz-input-number>
  407. </td>
  408. <td>
  409. <nz-input-number [(ngModel)]="data.materielBadNumber" [nzMin]="0" [nzStep]="1"></nz-input-number>
  410. </td> -->
  411. <td><a nz-popconfirm nzTitle="是否删除?" (nzOnConfirm)="describeDeleteRow(data.sort)">删除</a></td>
  412. </tr>
  413. </tbody>
  414. </nz-table>
  415. </nz-card>
  416. </div>
  417. <!-- 异常类型 -->
  418. <!-- <div nz-col nzMd="24" nzLg="12">
  419. <nz-card nzTitle="异常类别">
  420. <div nz-row [nzGutter]="24">
  421. <div nz-col nzMd="24" nzLg="24">
  422. <button (click)="typeAddRow()" nz-button nzType="primary">新增</button>
  423. </div>
  424. </div>
  425. <nz-table style="margin-top: 5px;" nzSize="small" #typeTable nzBordered [nzData]="typeList" [nzShowPagination]="false" [nzFrontPagination]=false>
  426. <thead>
  427. <tr>
  428. <th nzWidth="10%">序号</th>
  429. <th nzWidth="80%">异常类型</th>
  430. <th nzWidth="10%">操作</th>
  431. </tr>
  432. </thead>
  433. <tbody>
  434. <tr *ngFor="let data of typeTable.data">
  435. <td>{{data.sort}}</td>
  436. <td><input nz-input placeholder="请输入" [(ngModel)]="data.typeName" /></td>
  437. <td><a nz-popconfirm nzTitle="是否删除?" (nzOnConfirm)="typeDeleteRow(data.sort)">删除</a></td>
  438. </tr>
  439. </tbody>
  440. </nz-table>
  441. </nz-card>
  442. </div> -->
  443. </div>
  444. </nz-spin>
  445. <!-- 底部按钮 -->
  446. <div class="base">
  447. <!-- 底部关闭按钮 -->
  448. <a nz-popconfirm style="margin-right: 2%" nzTitle="确认关闭吗(关闭前请确认数据已保存)" (nzOnConfirm)="close()">
  449. <button nz-button class="ant-btn buttonDistance"><span>关闭
  450. </span></button>
  451. </a>
  452. <!-- 底部保存按钮 -->
  453. <button nzbutton (click)="save()" nz-button nzType="primary" [nzLoading]="saveLoading"><span>保存</span></button>
  454. </div>