{"version":3,"file":"rh-wms.mjs","sources":["../../../../projects/rh/wms/supplier-portal/supplier-portal.service.ts","../../../../projects/rh/wms/supplier-portal/purchase-order-manage/purchase-order-manage.component.ts","../../../../projects/rh/wms/supplier-portal/purchase-order-manage/purchase-order-manage.component.html","../../../../projects/rh/wms/supplier-portal/advance-receipt-manage/advance-receipt-manage.component.ts","../../../../projects/rh/wms/supplier-portal/advance-receipt-manage/advance-receipt-manage.component.html","../../../../projects/rh/wms/supplier-portal/purchase-order-manage/purchase-order-print/purchase-order-print.component.ts","../../../../projects/rh/wms/supplier-portal/purchase-order-manage/purchase-order-print/purchase-order-print.component.html","../../../../projects/rh/wms/supplier-portal/in-order-print/in-order-print.component.ts","../../../../projects/rh/wms/supplier-portal/in-order-print/in-order-print.component.html","../../../../projects/rh/wms/supplier-portal/supplier-portal.module.ts","../../../../projects/rh/wms/shared-manage/shared-manage-model.ts","../../../../projects/rh/wms/shared-manage/inventory-control/inventory-control-data.ts","../../../../projects/rh/wms/shared-manage/inventory-control/inventory-control-manage.service.ts","../../../../projects/rh/wms/shared-manage/inventory-control/inventory-control-special-type.directive.ts","../../../../projects/rh/wms/shared-manage/warehouse-business/warehouse-business-conf-selector/warehouse-business-conf-table/warehouse-business-conf-table.component.ts","../../../../projects/rh/wms/shared-manage/warehouse-business/warehouse-business-conf-selector/warehouse-business-conf-table/warehouse-business-conf-table.component.html","../../../../projects/rh/wms/shared-manage/warehouse-business/warehouse-business-conf-selector/warehouse-business-conf-selector.component.ts","../../../../projects/rh/wms/shared-manage/warehouse-business/warehouse-business-conf-selector/warehouse-business-conf-selector.component.html","../../../../projects/rh/wms/shared-manage/shared-manage.service.ts","../../../../projects/rh/wms/shared-manage/common/attach-file-upload/attach-file-upload.component.ts","../../../../projects/rh/wms/shared-manage/common/attach-file-upload/attach-file-upload.component.html","../../../../projects/rh/wms/shared-manage/common/attach-file-manage/attach-file-manage.component.ts","../../../../projects/rh/wms/shared-manage/common/attach-file-manage/attach-file-manage.component.html","../../../../projects/rh/wms/inventory-manage/inventory-manage-model.ts","../../../../projects/rh/wms/shared-manage/common/import-data-manage/import-data-manage.component.ts","../../../../projects/rh/wms/shared-manage/common/import-data-manage/import-data-manage.component.html","../../../../projects/rh/wms/shared-manage/warehouse-business/business-warehouse-selector/business-warehouse-table/business-warehouse-table.component.ts","../../../../projects/rh/wms/shared-manage/warehouse-business/business-warehouse-selector/business-warehouse-table/business-warehouse-table.component.html","../../../../projects/rh/wms/shared-manage/warehouse-business/business-warehouse-selector/business-warehouse-selector.component.ts","../../../../projects/rh/wms/shared-manage/warehouse-business/business-warehouse-selector/business-warehouse-selector.component.html","../../../../projects/rh/wms/shared-manage/shared-manage.module.ts","../../../../projects/rh/wms/wms-model.ts","../../../../projects/rh/wms/wms.service.ts","../../../../projects/rh/wms/tool-kit/tool-kit.service.ts","../../../../projects/rh/wms/tool-kit/tool-kit-model.ts","../../../../projects/rh/wms/tool-kit/warehouse-business-conf/snippets/list-warehouse-categories-selector/list-warehouse-categories-table/list-warehouse-categories-table.component.ts","../../../../projects/rh/wms/tool-kit/warehouse-business-conf/snippets/list-warehouse-categories-selector/list-warehouse-categories-table/list-warehouse-categories-table.component.html","../../../../projects/rh/wms/tool-kit/warehouse-business-conf/snippets/list-warehouse-categories-selector/list-warehouse-categories-selector.component.ts","../../../../projects/rh/wms/tool-kit/warehouse-business-conf/snippets/list-warehouse-categories-selector/list-warehouse-categories-selector.component.html","../../../../projects/rh/wms/tool-kit/warehouse-business-conf/snippets/list-warehouse-conf-selector/config-data.ts","../../../../projects/rh/wms/tool-kit/warehouse-business-conf/snippets/list-warehouse-conf-selector/list-warehouse-conf-selector.component.ts","../../../../projects/rh/wms/tool-kit/warehouse-business-conf/snippets/list-warehouse-conf-selector/list-warehouse-conf-selector.component.html","../../../../projects/rh/wms/tool-kit/warehouse-business-conf/warehouse-business-conf.component.ts","../../../../projects/rh/wms/tool-kit/warehouse-business-conf/warehouse-business-conf.component.html","../../../../projects/rh/wms/tool-kit/business-mode-config/business-mode-config-data.ts","../../../../projects/rh/wms/tool-kit/business-mode-config/business-mode-config.component.ts","../../../../projects/rh/wms/tool-kit/business-mode-config/business-mode-config.component.html","../../../../projects/rh/wms/tool-kit/product-sys-para-config/product-sys-para-config.component.ts","../../../../projects/rh/wms/tool-kit/product-sys-para-config/product-sys-para-config.component.html","../../../../projects/rh/wms/tool-kit/warehouse-business-conf/snippets/list-warehouses-selector/list-warehouses-table/list-warehouses-table.component.ts","../../../../projects/rh/wms/tool-kit/warehouse-business-conf/snippets/list-warehouses-selector/list-warehouses-table/list-warehouses-table.component.html","../../../../projects/rh/wms/tool-kit/warehouse-business-conf/snippets/list-warehouses-selector/list-warehouses-selector.component.ts","../../../../projects/rh/wms/tool-kit/warehouse-business-conf/snippets/list-warehouses-selector/list-warehouses-selector.component.html","../../../../projects/rh/wms/tool-kit/exception-handle/web-api-invokes-logs/web-api-invokes-logs.component.ts","../../../../projects/rh/wms/tool-kit/exception-handle/web-api-invokes-logs/web-api-invokes-logs.component.html","../../../../projects/rh/wms/tool-kit/exception-handle/esweb-api-invokes-exception-logs/esweb-api-invokes-exception-logs.component.ts","../../../../projects/rh/wms/tool-kit/exception-handle/esweb-api-invokes-exception-logs/esweb-api-invokes-exception-logs.component.html","../../../../projects/rh/wms/tool-kit/exception-handle/esinvokes-exception-compensagion/esinvokes-exception-compensagion.component.ts","../../../../projects/rh/wms/tool-kit/exception-handle/esinvokes-exception-compensagion/esinvokes-exception-compensagion.component.html","../../../../projects/rh/wms/tool-kit/tool-kit.module.ts","../../../../projects/rh/wms/business-manage/business-type.ts","../../../../projects/rh/wms/business-manage/other-business/other-business.service.ts","../../../../projects/rh/wms/business-manage/business-manage-model.ts","../../../../projects/rh/wms/business-manage/business-manage.service.ts","../../../../projects/rh/wms/business-manage/other-business/other-business-model.ts","../../../../projects/rh/wms/business-manage/other-business/snippets/other-in-source-data-table/other-in-source-data-table.component.ts","../../../../projects/rh/wms/business-manage/other-business/snippets/other-in-source-data-table/other-in-source-data-table.component.html","../../../../projects/rh/wms/business-manage/other-business/other-in-plan/other-in-plan-details/other-in-plan-details.component.ts","../../../../projects/rh/wms/business-manage/other-business/other-in-plan/other-in-plan-details/other-in-plan-details.component.html","../../../../projects/rh/wms/business-manage/other-business/other-in-plan/other-in-plan.component.ts","../../../../projects/rh/wms/business-manage/other-business/other-in-plan/other-in-plan.component.html","../../../../projects/rh/wms/business-manage/other-business/snippets/other-out-source-data-table/other-out-source-data-table.component.ts","../../../../projects/rh/wms/business-manage/other-business/snippets/other-out-source-data-table/other-out-source-data-table.component.html","../../../../projects/rh/wms/business-manage/other-business/other-out-plan/other-out-plan-details/other-out-plan-details.component.ts","../../../../projects/rh/wms/business-manage/other-business/other-out-plan/other-out-plan-details/other-out-plan-details.component.html","../../../../projects/rh/wms/business-manage/other-business/other-out-plan/other-out-plan.component.ts","../../../../projects/rh/wms/business-manage/other-business/other-out-plan/other-out-plan.component.html","../../../../projects/rh/wms/business-manage/other-business/detail-source-table-config.ts","../../../../projects/rh/wms/business-manage/other-business/other-in-handle/other-in-handle-details/other-in-handle-details.component.ts","../../../../projects/rh/wms/business-manage/other-business/other-in-handle/other-in-handle-details/other-in-handle-details.component.html","../../../../projects/rh/wms/business-manage/other-business/snippets/other-in-plan-order-selector/other-in-plan-order-table/other-in-plan-order-table.component.ts","../../../../projects/rh/wms/business-manage/other-business/snippets/other-in-plan-order-selector/other-in-plan-order-table/other-in-plan-order-table.component.html","../../../../projects/rh/wms/business-manage/other-business/snippets/other-in-plan-order-selector/other-in-plan-order-selector.component.ts","../../../../projects/rh/wms/business-manage/other-business/snippets/other-in-plan-order-selector/other-in-plan-order-selector.component.html","../../../../projects/rh/wms/business-manage/other-business/other-in-handle/other-in-handle.component.ts","../../../../projects/rh/wms/business-manage/other-business/other-in-handle/other-in-handle.component.html","../../../../projects/rh/wms/business-manage/other-business/other-out-handle/other-out-handle-details/other-out-handle-details.component.ts","../../../../projects/rh/wms/business-manage/other-business/other-out-handle/other-out-handle-details/other-out-handle-details.component.html","../../../../projects/rh/wms/business-manage/other-business/snippets/other-out-plan-order-selector/other-out-plan-order-table/other-out-plan-order-table.component.ts","../../../../projects/rh/wms/business-manage/other-business/snippets/other-out-plan-order-selector/other-out-plan-order-table/other-out-plan-order-table.component.html","../../../../projects/rh/wms/business-manage/other-business/snippets/other-out-plan-order-selector/other-out-plan-order-selector.component.ts","../../../../projects/rh/wms/business-manage/other-business/snippets/other-out-plan-order-selector/other-out-plan-order-selector.component.html","../../../../projects/rh/wms/business-manage/other-business/other-out-handle/other-out-handle.component.ts","../../../../projects/rh/wms/business-manage/other-business/other-out-handle/other-out-handle.component.html","../../../../projects/rh/wms/business-manage/other-business/other-business.module.ts","../../../../projects/rh/wms/business-manage/production-business/production-business.service.ts","../../../../projects/rh/wms/business-manage/production-business/production-business-model.ts","../../../../projects/rh/wms/business-manage/production-business/detail-source-table-config.ts","../../../../projects/rh/wms/business-manage/production-business/production-in-plan/production-in-plan-details/production-in-plan-details.component.ts","../../../../projects/rh/wms/business-manage/production-business/production-in-plan/production-in-plan-details/production-in-plan-details.component.html","../../../../projects/rh/wms/business-manage/production-business/snippets/production-warehousing-source-order-selector/prouction-warehousing-source-order-table/prouction-warehousing-source-order-table.component.ts","../../../../projects/rh/wms/business-manage/production-business/snippets/production-warehousing-source-order-selector/prouction-warehousing-source-order-table/prouction-warehousing-source-order-table.component.html","../../../../projects/rh/wms/business-manage/production-business/snippets/production-warehousing-source-order-selector/production-warehousing-source-order-selector.component.ts","../../../../projects/rh/wms/business-manage/production-business/snippets/production-warehousing-source-order-selector/production-warehousing-source-order-selector.component.html","../../../../projects/rh/wms/business-manage/production-business/production-in-plan/production-in-plan.component.ts","../../../../projects/rh/wms/business-manage/production-business/production-in-plan/production-in-plan.component.html","../../../../projects/rh/wms/business-manage/production-business/snippets/prodcution-warehousing-plan-selector/prodcution-warehousing-plan-table/prodcution-warehousing-plan-table.component.ts","../../../../projects/rh/wms/business-manage/production-business/snippets/prodcution-warehousing-plan-selector/prodcution-warehousing-plan-table/prodcution-warehousing-plan-table.component.html","../../../../projects/rh/wms/business-manage/production-business/snippets/prodcution-warehousing-plan-selector/prodcution-warehousing-plan-selector.component.ts","../../../../projects/rh/wms/business-manage/production-business/snippets/prodcution-warehousing-plan-selector/prodcution-warehousing-plan-selector.component.html","../../../../projects/rh/wms/business-manage/production-business/product-returned-material-in-plan/product-returned-material-in-plan-details/product-returned-material-in-plan-details.component.ts","../../../../projects/rh/wms/business-manage/production-business/product-returned-material-in-plan/product-returned-material-in-plan-details/product-returned-material-in-plan-details.component.html","../../../../projects/rh/wms/business-manage/production-business/snippets/return-warehousing-source-order-selector/return-warehousing-source-order-table/return-warehousing-source-order-table.component.ts","../../../../projects/rh/wms/business-manage/production-business/snippets/return-warehousing-source-order-selector/return-warehousing-source-order-table/return-warehousing-source-order-table.component.html","../../../../projects/rh/wms/business-manage/production-business/snippets/return-warehousing-source-order-selector/return-warehousing-source-order-selector.component.ts","../../../../projects/rh/wms/business-manage/production-business/snippets/return-warehousing-source-order-selector/return-warehousing-source-order-selector.component.html","../../../../projects/rh/wms/business-manage/production-business/product-returned-material-in-plan/product-returned-material-in-plan.component.ts","../../../../projects/rh/wms/business-manage/production-business/product-returned-material-in-plan/product-returned-material-in-plan.component.html","../../../../projects/rh/wms/business-manage/production-business/product-picking-material-out-plan/product-picking-material-out-plan-details/product-picking-material-out-plan-details.component.ts","../../../../projects/rh/wms/business-manage/production-business/product-picking-material-out-plan/product-picking-material-out-plan-details/product-picking-material-out-plan-details.component.html","../../../../projects/rh/wms/business-manage/production-business/snippets/production-picking-source-order-selector/production-picking-source-order-table/production-picking-source-order-table.component.ts","../../../../projects/rh/wms/business-manage/production-business/snippets/production-picking-source-order-selector/production-picking-source-order-table/production-picking-source-order-table.component.html","../../../../projects/rh/wms/business-manage/production-business/snippets/production-picking-source-order-selector/production-picking-source-order-selector.component.ts","../../../../projects/rh/wms/business-manage/production-business/snippets/production-picking-source-order-selector/production-picking-source-order-selector.component.html","../../../../projects/rh/wms/business-manage/production-business/product-picking-material-out-plan/product-picking-material-out-plan.component.ts","../../../../projects/rh/wms/business-manage/production-business/product-picking-material-out-plan/product-picking-material-out-plan.component.html","../../../../projects/rh/wms/business-manage/production-business/snippets/return-warehousing-plan-selector/return-warehousing-plan-table/return-warehousing-plan-table.component.ts","../../../../projects/rh/wms/business-manage/production-business/snippets/return-warehousing-plan-selector/return-warehousing-plan-table/return-warehousing-plan-table.component.html","../../../../projects/rh/wms/business-manage/production-business/snippets/return-warehousing-plan-selector/return-warehousing-plan-selector.component.ts","../../../../projects/rh/wms/business-manage/production-business/snippets/return-warehousing-plan-selector/return-warehousing-plan-selector.component.html","../../../../projects/rh/wms/business-manage/production-business/snippets/production-picking-plan-selector/production-picking-plan-table/production-picking-plan-table.component.ts","../../../../projects/rh/wms/business-manage/production-business/snippets/production-picking-plan-selector/production-picking-plan-table/production-picking-plan-table.component.html","../../../../projects/rh/wms/business-manage/production-business/snippets/production-picking-plan-selector/production-picking-plan-selector.component.ts","../../../../projects/rh/wms/business-manage/production-business/snippets/production-picking-plan-selector/production-picking-plan-selector.component.html","../../../../projects/rh/wms/business-manage/shared-business/selector/material-inventory-lotnum-selector/material-inventory-lotnum-selector.component.ts","../../../../projects/rh/wms/business-manage/shared-business/selector/material-inventory-lotnum-selector/material-inventory-lotnum-selector.component.html","../../../../projects/rh/wms/business-manage/shared-business/shared-business.module.ts","../../../../projects/rh/wms/business-manage/production-business/product-picking-material-out-handle/product-picking-material-out-handle-details/product-picking-material-out-handle-details.component.ts","../../../../projects/rh/wms/business-manage/production-business/product-picking-material-out-handle/product-picking-material-out-handle-details/product-picking-material-out-handle-details.component.html","../../../../projects/rh/wms/business-manage/production-business/product-picking-material-out-handle/product-picking-material-out-handle.component.ts","../../../../projects/rh/wms/business-manage/production-business/product-picking-material-out-handle/product-picking-material-out-handle.component.html","../../../../projects/rh/wms/business-manage/production-business/product-returned-material-in-handle/product-returned-material-in-handle-details/product-returned-material-in-handle-details.component.ts","../../../../projects/rh/wms/business-manage/production-business/product-returned-material-in-handle/product-returned-material-in-handle-details/product-returned-material-in-handle-details.component.html","../../../../projects/rh/wms/business-manage/production-business/product-returned-material-in-handle/product-returned-material-in-handle.component.ts","../../../../projects/rh/wms/business-manage/production-business/product-returned-material-in-handle/product-returned-material-in-handle.component.html","../../../../projects/rh/wms/business-manage/production-business/production-in-handle/production-in-handle-details/production-in-handle-details.component.ts","../../../../projects/rh/wms/business-manage/production-business/production-in-handle/production-in-handle-details/production-in-handle-details.component.html","../../../../projects/rh/wms/business-manage/production-business/production-in-handle/production-in-handle.component.ts","../../../../projects/rh/wms/business-manage/production-business/production-in-handle/production-in-handle.component.html","../../../../projects/rh/wms/business-manage/production-business/production-business.module.ts","../../../../projects/rh/wms/business-manage/purchase-business/purchase-business.service.ts","../../../../projects/rh/wms/business-manage/purchase-business/purchase-business-model.ts","../../../../projects/rh/wms/business-manage/purchase-business/detail-source-table-config.ts","../../../../projects/rh/wms/business-manage/purchase-business/purchase-in-plan/purchase-in-plan-details/purchase-in-plan-details.component.ts","../../../../projects/rh/wms/business-manage/purchase-business/purchase-in-plan/purchase-in-plan-details/purchase-in-plan-details.component.html","../../../../projects/rh/wms/business-manage/purchase-business/snippets/purchase-warehousing-source-order-selector/purchase-warehousing-source-order-table/purchase-warehousing-source-order-table.component.ts","../../../../projects/rh/wms/business-manage/purchase-business/snippets/purchase-warehousing-source-order-selector/purchase-warehousing-source-order-table/purchase-warehousing-source-order-table.component.html","../../../../projects/rh/wms/business-manage/purchase-business/snippets/purchase-warehousing-source-order-selector/purchase-warehousing-source-order-selector.component.ts","../../../../projects/rh/wms/business-manage/purchase-business/snippets/purchase-warehousing-source-order-selector/purchase-warehousing-source-order-selector.component.html","../../../../projects/rh/wms/business-manage/purchase-business/purchase-in-plan/purchase-in-plan.component.ts","../../../../projects/rh/wms/business-manage/purchase-business/purchase-in-plan/purchase-in-plan.component.html","../../../../projects/rh/wms/business-manage/purchase-business/snippets/purchase-warehousing-plan-selector/purchase-warehousing-plan-table/purchase-warehousing-plan-table.component.ts","../../../../projects/rh/wms/business-manage/purchase-business/snippets/purchase-warehousing-plan-selector/purchase-warehousing-plan-table/purchase-warehousing-plan-table.component.html","../../../../projects/rh/wms/business-manage/purchase-business/snippets/purchase-warehousing-plan-selector/purchase-warehousing-plan-selector.component.ts","../../../../projects/rh/wms/business-manage/purchase-business/snippets/purchase-warehousing-plan-selector/purchase-warehousing-plan-selector.component.html","../../../../projects/rh/wms/business-manage/purchase-business/purchase-returned-out-plan/purchase-returned-out-plan-details/purchase-returned-out-plan-details.component.ts","../../../../projects/rh/wms/business-manage/purchase-business/purchase-returned-out-plan/purchase-returned-out-plan-details/purchase-returned-out-plan-details.component.html","../../../../projects/rh/wms/business-manage/purchase-business/purchase-returned-out-plan/purchase-returned-out-plan.component.ts","../../../../projects/rh/wms/business-manage/purchase-business/purchase-returned-out-plan/purchase-returned-out-plan.component.html","../../../../projects/rh/wms/business-manage/purchase-business/purchase-in-handle/purchase-in-handle-details/purchase-in-handle-details.component.ts","../../../../projects/rh/wms/business-manage/purchase-business/purchase-in-handle/purchase-in-handle-details/purchase-in-handle-details.component.html","../../../../projects/rh/wms/business-manage/purchase-business/purchase-in-handle/purchase-in-handle.component.ts","../../../../projects/rh/wms/business-manage/purchase-business/purchase-in-handle/purchase-in-handle.component.html","../../../../projects/rh/wms/business-manage/purchase-business/purchase-returned-out-handle/purchase-returned-out-handle-details/purchase-returned-out-handle-details.component.ts","../../../../projects/rh/wms/business-manage/purchase-business/purchase-returned-out-handle/purchase-returned-out-handle-details/purchase-returned-out-handle-details.component.html","../../../../projects/rh/wms/business-manage/purchase-business/snippets/purchase-returned-out-plan-selector/purchase-returned-out-plan-table/purchase-returned-out-plan-table.component.ts","../../../../projects/rh/wms/business-manage/purchase-business/snippets/purchase-returned-out-plan-selector/purchase-returned-out-plan-table/purchase-returned-out-plan-table.component.html","../../../../projects/rh/wms/business-manage/purchase-business/snippets/purchase-returned-out-plan-selector/purchase-returned-out-plan-selector.component.ts","../../../../projects/rh/wms/business-manage/purchase-business/snippets/purchase-returned-out-plan-selector/purchase-returned-out-plan-selector.component.html","../../../../projects/rh/wms/business-manage/purchase-business/snippets/purchase-returned-out-source-order-selector/purchase-returned-out-source-order-table/purchase-returned-out-source-order-table.component.ts","../../../../projects/rh/wms/business-manage/purchase-business/snippets/purchase-returned-out-source-order-selector/purchase-returned-out-source-order-table/purchase-returned-out-source-order-table.component.html","../../../../projects/rh/wms/business-manage/purchase-business/snippets/purchase-returned-out-source-order-selector/purchase-returned-out-source-order-selector.component.ts","../../../../projects/rh/wms/business-manage/purchase-business/snippets/purchase-returned-out-source-order-selector/purchase-returned-out-source-order-selector.component.html","../../../../projects/rh/wms/business-manage/purchase-business/purchase-returned-out-handle/purchase-returned-out-handle.component.ts","../../../../projects/rh/wms/business-manage/purchase-business/purchase-returned-out-handle/purchase-returned-out-handle.component.html","../../../../projects/rh/wms/business-manage/purchase-business/snippets/material-inventory-detail-choose/material-inventory-detail-choose.component.ts","../../../../projects/rh/wms/business-manage/purchase-business/snippets/material-inventory-detail-choose/material-inventory-detail-choose.component.html","../../../../projects/rh/wms/business-manage/purchase-business/purchase-business.module.ts","../../../../projects/rh/wms/business-manage/sale-business/sale-business.service.ts","../../../../projects/rh/wms/business-manage/sale-business/sale-business-model.ts","../../../../projects/rh/wms/business-manage/sale-business/detail-source-table-config.ts","../../../../projects/rh/wms/business-manage/sale-business/sale-out-plan/sale-out-plan-details/sale-out-plan-details.component.ts","../../../../projects/rh/wms/business-manage/sale-business/sale-out-plan/sale-out-plan-details/sale-out-plan-details.component.html","../../../../projects/rh/wms/business-manage/sale-business/snippets/sale-out-warehousing-source-order-selector/sale-out-warehousing-source-order-table/sale-out-warehousing-source-order-table.component.ts","../../../../projects/rh/wms/business-manage/sale-business/snippets/sale-out-warehousing-source-order-selector/sale-out-warehousing-source-order-table/sale-out-warehousing-source-order-table.component.html","../../../../projects/rh/wms/business-manage/sale-business/snippets/sale-out-warehousing-source-order-selector/sale-out-warehousing-source-order-selector.component.ts","../../../../projects/rh/wms/business-manage/sale-business/snippets/sale-out-warehousing-source-order-selector/sale-out-warehousing-source-order-selector.component.html","../../../../projects/rh/wms/business-manage/sale-business/sale-out-plan/sale-out-plan.component.ts","../../../../projects/rh/wms/business-manage/sale-business/sale-out-plan/sale-out-plan.component.html","../../../../projects/rh/wms/business-order-manage/business-type.ts","../../../../projects/rh/wms/business-manage/sale-business/sale-returned-in-plan/sale-returned-in-plan-details/sale-returned-in-plan-details.component.ts","../../../../projects/rh/wms/business-manage/sale-business/sale-returned-in-plan/sale-returned-in-plan-details/sale-returned-in-plan-details.component.html","../../../../projects/rh/wms/business-manage/sale-business/sale-returned-in-plan/sale-returned-in-plan.component.ts","../../../../projects/rh/wms/business-manage/sale-business/sale-returned-in-plan/sale-returned-in-plan.component.html","../../../../projects/rh/wms/business-manage/sale-business/sale-out-handle/sale-out-handle-details/sale-out-handle-details.component.ts","../../../../projects/rh/wms/business-manage/sale-business/sale-out-handle/sale-out-handle-details/sale-out-handle-details.component.html","../../../../projects/rh/wms/business-manage/sale-business/snippets/sale-out-warehousing-plan-selector/sale-out-warehousing-plan-table/sale-out-warehousing-plan-table.component.ts","../../../../projects/rh/wms/business-manage/sale-business/snippets/sale-out-warehousing-plan-selector/sale-out-warehousing-plan-table/sale-out-warehousing-plan-table.component.html","../../../../projects/rh/wms/business-manage/sale-business/snippets/sale-out-warehousing-plan-selector/sale-out-warehousing-plan-selector.component.ts","../../../../projects/rh/wms/business-manage/sale-business/snippets/sale-out-warehousing-plan-selector/sale-out-warehousing-plan-selector.component.html","../../../../projects/rh/wms/business-manage/sale-business/sale-out-handle/sale-out-handle.component.ts","../../../../projects/rh/wms/business-manage/sale-business/sale-out-handle/sale-out-handle.component.html","../../../../projects/rh/wms/business-manage/sale-business/sale-returned-in-handle/sale-returned-in-handle-details/sale-returned-in-handle-details.component.ts","../../../../projects/rh/wms/business-manage/sale-business/sale-returned-in-handle/sale-returned-in-handle-details/sale-returned-in-handle-details.component.html","../../../../projects/rh/wms/business-manage/sale-business/snippets/sale-return-plan-order-selector/sale-return-plan-table/sale-return-plan-table.component.ts","../../../../projects/rh/wms/business-manage/sale-business/snippets/sale-return-plan-order-selector/sale-return-plan-table/sale-return-plan-table.component.html","../../../../projects/rh/wms/business-manage/sale-business/snippets/sale-return-plan-order-selector/sale-return-plan-order-selector.component.ts","../../../../projects/rh/wms/business-manage/sale-business/snippets/sale-return-plan-order-selector/sale-return-plan-order-selector.component.html","../../../../projects/rh/wms/business-manage/sale-business/sale-returned-in-handle/sale-returned-in-handle.component.ts","../../../../projects/rh/wms/business-manage/sale-business/sale-returned-in-handle/sale-returned-in-handle.component.html","../../../../projects/rh/wms/business-manage/sale-business/sale-business.module.ts","../../../../projects/rh/wms/business-manage/stay-stock-manage/detail-source-table-config.ts","../../../../projects/rh/wms/business-manage/stay-stock-manage/stay-stock-business.service.ts","../../../../projects/rh/wms/business-manage/stay-stock-manage/snippets/material-inventory-choose-transfer/material-inventory-choose-transfer.component.ts","../../../../projects/rh/wms/business-manage/stay-stock-manage/snippets/material-inventory-choose-transfer/material-inventory-choose-transfer.component.html","../../../../projects/rh/wms/business-manage/stay-stock-manage/allocate-transfer-handle/allocate-transfer-handle-details/allocate-transfer-handle-details.component.ts","../../../../projects/rh/wms/business-manage/stay-stock-manage/allocate-transfer-handle/allocate-transfer-handle-details/allocate-transfer-handle-details.component.html","../../../../projects/rh/wms/business-manage/stay-stock-manage/snippets/allocate-transfer-plan-selector/allocate-transfer-plan-table/allocate-transfer-plan-table.component.ts","../../../../projects/rh/wms/business-manage/stay-stock-manage/snippets/allocate-transfer-plan-selector/allocate-transfer-plan-table/allocate-transfer-plan-table.component.html","../../../../projects/rh/wms/business-manage/stay-stock-manage/snippets/allocate-transfer-plan-selector/allocate-transfer-plan-selector.component.ts","../../../../projects/rh/wms/business-manage/stay-stock-manage/snippets/allocate-transfer-plan-selector/allocate-transfer-plan-selector.component.html","../../../../projects/rh/wms/business-manage/stay-stock-manage/allocate-transfer-handle/allocate-transfer-handle.component.ts","../../../../projects/rh/wms/business-manage/stay-stock-manage/allocate-transfer-handle/allocate-transfer-handle.component.html","../../../../projects/rh/wms/business-manage/stay-stock-manage/stay-stock-business-model.ts","../../../../projects/rh/wms/business-manage/stay-stock-manage/allocate-transfer-plan/allocate-transfer-plan-detail/allocate-transfer-plan-detail.component.ts","../../../../projects/rh/wms/business-manage/stay-stock-manage/allocate-transfer-plan/allocate-transfer-plan-detail/allocate-transfer-plan-detail.component.html","../../../../projects/rh/wms/business-manage/stay-stock-manage/allocate-transfer-plan/allocate-transfer-plan.component.ts","../../../../projects/rh/wms/business-manage/stay-stock-manage/allocate-transfer-plan/allocate-transfer-plan.component.html","../../../../projects/rh/wms/business-manage/stay-stock-manage/location-move-handle/location-move-handle-details/location-move-handle-details.component.ts","../../../../projects/rh/wms/business-manage/stay-stock-manage/location-move-handle/location-move-handle-details/location-move-handle-details.component.html","../../../../projects/rh/wms/business-manage/stay-stock-manage/snippets/location-move-plan-selector/location-move-plan-table/location-move-plan-table.component.ts","../../../../projects/rh/wms/business-manage/stay-stock-manage/snippets/location-move-plan-selector/location-move-plan-table/location-move-plan-table.component.html","../../../../projects/rh/wms/business-manage/stay-stock-manage/snippets/location-move-plan-selector/location-move-plan-selector.component.ts","../../../../projects/rh/wms/business-manage/stay-stock-manage/snippets/location-move-plan-selector/location-move-plan-selector.component.html","../../../../projects/rh/wms/business-manage/stay-stock-manage/location-move-handle/location-move-handle.component.ts","../../../../projects/rh/wms/business-manage/stay-stock-manage/location-move-handle/location-move-handle.component.html","../../../../projects/rh/wms/business-manage/stay-stock-manage/location-move-plan/location-move-plan-details/location-move-plan-details.component.ts","../../../../projects/rh/wms/business-manage/stay-stock-manage/location-move-plan/location-move-plan-details/location-move-plan-details.component.html","../../../../projects/rh/wms/business-manage/stay-stock-manage/location-move-plan/location-move-plan.component.ts","../../../../projects/rh/wms/business-manage/stay-stock-manage/location-move-plan/location-move-plan.component.html","../../../../projects/rh/wms/business-manage/stay-stock-manage/stay-stock-business-module.ts","../../../../projects/rh/wms/business-manage/business-manage.module.ts","../../../../projects/rh/wms/config-manage/wms-configuration/wms-configuration.component.ts","../../../../projects/rh/wms/config-manage/basic-data/basic-data-model.ts","../../../../projects/rh/wms/config-manage/basic-data/basic-data.service.ts","../../../../projects/rh/wms/config-manage/basic-data/material-setting/material-setting.component.ts","../../../../projects/rh/wms/config-manage/basic-data/material-setting/material-setting.component.html","../../../../projects/rh/wms/config-manage/basic-data/customer-info-setting/customer-info-setting.component.ts","../../../../projects/rh/wms/config-manage/basic-data/customer-info-setting/customer-info-setting.component.html","../../../../projects/rh/wms/config-manage/basic-data/supplier-info-setting/supplier-info-setting.component.ts","../../../../projects/rh/wms/config-manage/basic-data/supplier-info-setting/supplier-info-setting.component.html","../../../../projects/rh/wms/config-manage/basic-data/basic-data.module.ts","../../../../projects/rh/wms/config-manage/config-manage.module.ts","../../../../projects/rh/wms/inventory-manage/inventory-control/inventory-control.service.ts","../../../../projects/rh/wms/inventory-manage/inventory-control/snippets/material-inventory-details-table/material-inventory-details-table.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-control/snippets/material-inventory-details-table/material-inventory-details-table.component.html","../../../../projects/rh/wms/inventory-manage/inventory-control/inventory-lock/inventory-lock.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-control/inventory-lock/inventory-lock.component.html","../../../../projects/rh/wms/inventory-manage/inventory-control/inventory-init/total-inventory-import/total-inventory-import.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-control/inventory-init/total-inventory-import/total-inventory-import.component.html","../../../../projects/rh/wms/inventory-manage/inventory-control/inventory-init/inventory-details-import/inventory-details-import.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-control/inventory-init/inventory-details-import/inventory-details-import.component.html","../../../../projects/rh/wms/inventory-manage/inventory-search/inventory-query/snippets/inventory-query-storage-location/inventory-query-storage-location.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-search/inventory-query/snippets/inventory-query-storage-location/inventory-query-storage-location.component.html","../../../../projects/rh/wms/inventory-manage/inventory-search/inventory-query/snippets/inventory-query-details/inventory-query-details.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-search/inventory-query/snippets/inventory-query-details/inventory-query-details.component.html","../../../../projects/rh/wms/inventory-manage/inventory-search/inventory-search.service.ts","../../../../projects/rh/wms/inventory-manage/inventory-search/inventory-query/snippets/inventory-query-in-out-details/inventory-query-in-out-details.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-search/inventory-query/snippets/inventory-query-in-out-details/inventory-query-in-out-details.component.html","../../../../projects/rh/wms/inventory-manage/inventory-search/inventory-query/snippets/inventory-query-area/inventory-query-area.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-search/inventory-query/snippets/inventory-query-area/inventory-query-area.component.html","../../../../projects/rh/wms/inventory-manage/inventory-search/inventory-query/snippets/inventory-query-shelf/inventory-query-shelf.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-search/inventory-query/snippets/inventory-query-shelf/inventory-query-shelf.component.html","../../../../projects/rh/wms/inventory-manage/inventory-control/inventory-init/inventory-import/inventory-import.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-control/inventory-init/inventory-import/inventory-import.component.html","../../../../projects/rh/wms/inventory-manage/inventory-search/inventory-query/inventory-query.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-search/inventory-query/inventory-query.component.html","../../../../projects/rh/wms/inventory-manage/inventory-search/advanced-inventory-query/advanced-inventory-query.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-search/advanced-inventory-query/advanced-inventory-query.component.html","../../../../projects/rh/wms/inventory-manage/inventory-manage.service.ts","../../../../projects/rh/wms/inventory-manage/inventory-search/inventory-in-out-details/inventory-in-out-details-by-business/inventory-in-out-details-by-business.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-search/inventory-in-out-details/inventory-in-out-details-by-business/inventory-in-out-details-by-business.component.html","../../../../projects/rh/wms/inventory-manage/inventory-search/inventory-in-out-details/inventory-in-out-details.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-search/inventory-in-out-details/inventory-in-out-details.component.html","../../../../projects/rh/wms/inventory-manage/inventory-search/immediate-inventory-in-out-details/immediate-inventory-in-out-details.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-search/immediate-inventory-in-out-details/immediate-inventory-in-out-details.component.html","../../../../projects/rh/wms/inventory-manage/inventory-search/inventory-search.module.ts","../../../../projects/rh/wms/inventory-manage/inventory-control/inventory-control.module.ts","../../../../projects/rh/wms/inventory-manage/inventory-count/inventory-count.service.ts","../../../../projects/rh/wms/inventory-manage/inventory-count/inventory-verification-scheme/inventory-verification-scheme.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-count/inventory-verification-scheme/inventory-verification-scheme.component.html","../../../../projects/rh/wms/inventory-manage/inventory-count/snippets/inventory-verification-scheme-selector/inventory-verification-scheme-table/inventory-verification-scheme-table.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-count/snippets/inventory-verification-scheme-selector/inventory-verification-scheme-table/inventory-verification-scheme-table.component.html","../../../../projects/rh/wms/inventory-manage/inventory-count/snippets/inventory-verification-scheme-selector/inventory-verification-scheme-selector.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-count/snippets/inventory-verification-scheme-selector/inventory-verification-scheme-selector.component.html","../../../../projects/rh/wms/inventory-manage/inventory-count/inventory-verification-order/inventory-verification-data-source/inventory-verification-data-source.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-count/inventory-verification-order/inventory-verification-data-source/inventory-verification-data-source.component.html","../../../../projects/rh/wms/inventory-manage/inventory-count/inventory-verification-order/inventory-verification-order-details/inventory-verification-order-details.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-count/inventory-verification-order/inventory-verification-order-details/inventory-verification-order-details.component.html","../../../../projects/rh/wms/inventory-manage/inventory-count/inventory-verification-difference/snippets/inventory-verification-snapshoot/inventory-verification-snapshoot.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-count/inventory-verification-difference/snippets/inventory-verification-snapshoot/inventory-verification-snapshoot.component.html","../../../../projects/rh/wms/inventory-manage/inventory-count/inventory-verification-order/inventory-verification-order.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-count/inventory-verification-order/inventory-verification-order.component.html","../../../../projects/rh/wms/inventory-manage/inventory-count/inventory-verification-handle/inventory-verification-handle.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-count/inventory-verification-handle/inventory-verification-handle.component.html","../../../../projects/rh/wms/inventory-manage/inventory-count/snippets/material-inventory-detail-selector/material-inventory-detail-table/material-inventory-detail-table.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-count/snippets/material-inventory-detail-selector/material-inventory-detail-table/material-inventory-detail-table.component.html","../../../../projects/rh/wms/inventory-manage/inventory-count/snippets/material-inventory-detail-selector/material-inventory-detail-selector.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-count/snippets/material-inventory-detail-selector/material-inventory-detail-selector.component.html","../../../../projects/rh/wms/inventory-manage/inventory-count/inventory-verification-difference/snippets/replay-manage/replay-manage.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-count/inventory-verification-difference/snippets/replay-manage/replay-manage.component.html","../../../../projects/rh/wms/inventory-manage/inventory-count/inventory-verification-difference/snippets/inventory-gain-loss-manage/inventory-gain-loss-manage.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-count/inventory-verification-difference/snippets/inventory-gain-loss-manage/inventory-gain-loss-manage.component.html","../../../../projects/rh/wms/inventory-manage/inventory-count/inventory-verification-difference/snippets/difference-audit/difference-audit.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-count/inventory-verification-difference/snippets/difference-audit/difference-audit.component.html","../../../../projects/rh/wms/inventory-manage/inventory-count/inventory-verification-difference/inventory-verification-difference.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-count/inventory-verification-difference/inventory-verification-difference.component.html","../../../../projects/rh/wms/inventory-manage/inventory-count/inventory-count.module.ts","../../../../projects/rh/wms/inventory-manage/inventory-adjust/inventory-adjust.service.ts","../../../../projects/rh/wms/inventory-manage/inventory-adjust/clear-zero-inventory/clear-zero-inventory.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-adjust/clear-zero-inventory/clear-zero-inventory.component.html","../../../../projects/rh/wms/inventory-manage/inventory-adjust/abnormal-inventory-adjustment/abnormal-inventory-adjustment.component.ts","../../../../projects/rh/wms/inventory-manage/inventory-adjust/abnormal-inventory-adjustment/abnormal-inventory-adjustment.component.html","../../../../projects/rh/wms/inventory-manage/inventory-adjust/inventory-adjust.module.ts","../../../../projects/rh/wms/inventory-manage/inventory-manage.module.ts","../../../../projects/rh/wms/business-order-manage/sale-order-manage/sale-order-manage.service.ts","../../../../projects/rh/wms/business-order-manage/business-order-manage.service.ts","../../../../projects/rh/wms/business-order-manage/sale-order-manage/sale-delivery-order-model.ts","../../../../projects/rh/wms/business-order-manage/shared/purchase-order-material-choose-table/purchase-order-material-choose-table.component.ts","../../../../projects/rh/wms/business-order-manage/shared/purchase-order-material-choose-table/purchase-order-material-choose-table.component.html","../../../../projects/rh/wms/business-order-manage/sale-order-manage/sale-delivery-order/sale-delivery-order-detail/sale-delivery-order-detail.component.ts","../../../../projects/rh/wms/business-order-manage/sale-order-manage/sale-delivery-order/sale-delivery-order-detail/sale-delivery-order-detail.component.html","../../../../projects/rh/wms/business-order-manage/sale-order-manage/sale-delivery-order/sale-delivery-order.component.ts","../../../../projects/rh/wms/business-order-manage/sale-order-manage/sale-delivery-order/sale-delivery-order.component.html","../../../../projects/rh/wms/business-order-manage/purchase-order-manage/purchase-order-manage.service.ts","../../../../projects/rh/wms/business-order-manage/purchase-order-manage/purchase-order-manage-model.ts","../../../../projects/rh/wms/business-order-manage/purchase-order-manage/purchase-order/purchase-order-detail/purchase-order-detail.component.ts","../../../../projects/rh/wms/business-order-manage/purchase-order-manage/purchase-order/purchase-order-detail/purchase-order-detail.component.html","../../../../projects/rh/wms/business-order-manage/purchase-order-manage/purchase-order/purchase-order.component.ts","../../../../projects/rh/wms/business-order-manage/purchase-order-manage/purchase-order/purchase-order.component.html","../../../../projects/rh/wms/business-order-manage/production-order-manage/production-order-manage.service.ts","../../../../projects/rh/wms/business-order-manage/shared/product-order-bom-table/product-order-bom-table.component.ts","../../../../projects/rh/wms/business-order-manage/shared/product-order-bom-table/product-order-bom-table.component.html","../../../../projects/rh/wms/business-order-manage/shared/product-plan-bom-table/product-plan-bom-table.component.ts","../../../../projects/rh/wms/business-order-manage/shared/product-plan-bom-table/product-plan-bom-table.component.html","../../../../projects/rh/wms/business-order-manage/shared/shared.module.ts","../../../../projects/rh/wms/business-order-manage/purchase-order-manage/snippets/purchase-order-detail-data-table/purchase-order-detail-data-table.component.ts","../../../../projects/rh/wms/business-order-manage/purchase-order-manage/snippets/purchase-order-detail-data-table/purchase-order-detail-data-table.component.html","../../../../projects/rh/wms/business-order-manage/purchase-order-manage/purchase-advance-receipt-order/purchase-advance-receipt-order-detail/purchase-advance-receipt-order-detail.component.ts","../../../../projects/rh/wms/business-order-manage/purchase-order-manage/purchase-advance-receipt-order/purchase-advance-receipt-order-detail/purchase-advance-receipt-order-detail.component.html","../../../../projects/rh/wms/business-order-manage/purchase-order-manage/purchase-advance-receipt-order/purchase-advance-receipt-order.component.ts","../../../../projects/rh/wms/business-order-manage/purchase-order-manage/purchase-advance-receipt-order/purchase-advance-receipt-order.component.html","../../../../projects/rh/wms/business-order-manage/purchase-order-manage/purchase-order-manage.module.ts","../../../../projects/rh/wms/business-order-manage/production-order-manage/production-plan-manage/production-plan-manage.component.ts","../../../../projects/rh/wms/business-order-manage/production-order-manage/production-plan-manage/production-plan-manage.component.html","../../../../projects/rh/wms/business-order-manage/production-order-manage/production-feeding-manage/production-feeding-details/production-feeding-details.component.ts","../../../../projects/rh/wms/business-order-manage/production-order-manage/production-feeding-manage/production-feeding-details/production-feeding-details.component.html","../../../../projects/rh/wms/business-order-manage/production-order-manage/production-feeding-manage/production-feeding-manage.component.ts","../../../../projects/rh/wms/business-order-manage/production-order-manage/production-feeding-manage/production-feeding-manage.component.html","../../../../projects/rh/wms/business-order-manage/production-order-manage/production-replenishment-manage/production-replenishment-details/production-replenishment-details.component.ts","../../../../projects/rh/wms/business-order-manage/production-order-manage/production-replenishment-manage/production-replenishment-details/production-replenishment-details.component.html","../../../../projects/rh/wms/business-order-manage/production-order-manage/production-replenishment-manage/production-replenishment-manage.component.ts","../../../../projects/rh/wms/business-order-manage/production-order-manage/production-replenishment-manage/production-replenishment-manage.component.html","../../../../projects/rh/wms/business-order-manage/production-order-manage/production-order-manage.module.ts","../../../../projects/rh/wms/business-order-manage/sale-order-manage/snippets/sale-order-data-table/sale-order-data-table.component.ts","../../../../projects/rh/wms/business-order-manage/sale-order-manage/snippets/sale-order-data-table/sale-order-data-table.component.html","../../../../projects/rh/wms/business-order-manage/sale-order-manage/sale-order/sale-order-detail/sale-order-detail.component.ts","../../../../projects/rh/wms/business-order-manage/sale-order-manage/sale-order/sale-order-detail/sale-order-detail.component.html","../../../../projects/rh/wms/business-order-manage/sale-order-manage/sale-order/sale-order.component.ts","../../../../projects/rh/wms/business-order-manage/sale-order-manage/sale-order/sale-order.component.html","../../../../projects/rh/wms/business-order-manage/sale-order-manage/sale-order-manage.module.ts","../../../../projects/rh/wms/business-order-manage/business-order-manage.module.ts","../../../../projects/rh/wms/inventory-manage/index.ts","../../../../projects/rh/wms/wms.module.ts","../../../../projects/rh/wms/rh-wms.ts"],"sourcesContent":["import { RhApiUrlsService } from 'rh-base/core';\nimport { DataResultT, OpResult, RhBaseDto, RhSelectableDto } from 'rh-base/model';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class RhSupplierPortalService {\n\n  constructor(private apiUrls: RhApiUrlsService) { }\n\n}\n","import { RhSupplierPortalService } from './../supplier-portal.service';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { RhBaseDto, DataResultT, RhSelectableDto, RhTableButtonInfoDto, CodeClassModel, RhDynamicTableFieldDto, RhTableQueryOptionDto, RhLoginedUserDto, RhSafeAny, RhSelectItem } from 'rh-base/model';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\nimport { LabelPrintOutput, RhLabelService } from 'rh-label';\n\n@Component({\n  selector: 'rh-purchase-order-manage',\n  templateUrl: './purchase-order-manage.component.html',\n  styleUrls: ['./purchase-order-manage.component.less']\n})\nexport class RhPurchaseOrderManageComponent implements OnInit {\n\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  //selectedData: RhSelectableDto;\n  defaultQueryDto: RhBaseDto = {};\n\n  defaultFieldDataset = [];\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    // new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto))\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('create', '生成预收货单', 'primary', false, 'file', false, null, (datas) => this.openCreateModal(datas as RhBaseDto[]), false),\n    // new RhTableButtonInfoDto('print', '打印', 'primary', false, 'printer', false, null, (datas) => this.openPrintTab(datas as RhBaseDto[]), false)\n  ];\n\n  extraButtonDataset: RhTableButtonInfoDto[] = [];\n\n  // 生产预收货单\n  currentUser: RhLoginedUserDto;\n  isShowCreateModal = false;\n  createDto: RhBaseDto = {};\n  /** 生成的标签数据 */\n  currentLabelPrintOutput: LabelPrintOutput;\n  labelPrintDataResult: DataResultT<LabelPrintOutput[]>;\n  labelPrintSign: string;\n  // 打印\n  /** 选中的打印机 */\n  selectedPrinter: string;\n  /** 打印机列表 */\n  printerList: RhSafeAny[] = [];\n  /** 打印loading */\n  printLoading = false;\n  /** 打印接口提交对象 */\n  printDto: RhBaseDto;\n  /** 预览接口提交对象 */\n  previewDto: RhBaseDto;\n\n  constructor(private storage: RhStorageService, private labelSer: RhLabelService) {\n    //\n  }\n\n  ngOnInit(): void {\n    this.currentUser = this.storage.getUserSession()?.User;\n    this.initDefaultQueryDto();\n  }\n\n  initDefaultQueryDto() {\n    const userDomain = this.storage.getUserDomain();\n    this.defaultQueryDto = { SupplierCode: userDomain?.SupplierCode || null, _timestamp: Date.now() };\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  //#region 生产预收货单区域开始\n  /** 打开创建采购预收货单据弹窗 */\n  openCreateModal(datas: RhSelectableDto[]) {\n    this.createDto = {\n      DetailDtos: datas,\n      OrderCreatorName: this.currentUser.DisplayName,\n      OrderCreatorCode: this.currentUser.UserName,\n    };\n    this.isShowCreateModal = true;\n  }\n\n  /** 关闭创建采购预收货单据弹窗 */\n  closeCreateModal() {\n    this.isShowCreateModal = false;\n  }\n\n  /** 创建采购预收货单据表单返回 */\n  onCreateData(result: DataResultT<RhSafeAny>) {\n    if (result.Success) {\n      MsgHelper.ShowSuccessMessage('生成预收货单成功！');\n      this.closeCreateModal();\n      this.getDatas();\n    } else {\n      MsgHelper.ShowWarningMessage(`生成预收货单失败！${result.Message}`);\n    }\n  }\n  //#endregion 生产预收货单区域结束\n\n  //#region 打印区域开始\n  // openPrintTab(datas: RhSelectableDto[]) {\n  //   if (datas.length !== 1) {\n  //     return MsgHelper.ShowWarningMessage('请选中一条数据进行打印操作！');\n  //   }\n  //   this.selectedData = datas[0];\n  //   this.selectedIndex = 1;\n  // }\n\n  // closePrintTab() {\n  //   this.selectedIndex = 0;\n  // }\n\n  // closePreviewTab() {\n  //   this.selectedIndex = 1;\n  // }\n\n  // /** 获取本地打印机 */\n  // getPrinterList() {\n  //   this.labelSer.GetPrintersByLocal().subscribe(res => {\n  //     if (res.Success) {\n  //       this.printerList = res.Attach.map(ele => {\n  //         const name = ele.PrinterName;\n  //         return { Text: name, Value: name };\n  //       });\n  //     } else {\n  //       this.printerList = [];\n  //     }\n  //   }, error => {\n  //     console.log(error)\n  //   })\n  // }\n\n  // /** 获取标签打印参数 */\n  // getLabelPrintOutput(data: LabelPrintOutput) {\n  //   this.currentLabelPrintOutput = data;\n  //   const dataset = this.currentLabelPrintOutput.Datas as RhSelectableDto[];\n  //   // 错误提示\n  //   if (!dataset || !dataset.length) {\n  //     return MsgHelper.ShowWarningMessage(`生成的条码数据为空！`);\n  //   }\n  //   if (!dataset[0]['PrintTemplateId']) {\n  //     return MsgHelper.ShowWarningMessage(`生成的条码数据没有模板ID字段【PrintTemplateId】`);\n  //   }\n  //   this.labelPrintDataResult = { Attach: this.currentLabelPrintOutput.Datas } as RhSafeAny;\n  //   // 打印操作需要同步数据\n  //   this.labelPrintSign = this.currentLabelPrintOutput.PrintSign;\n  //   // 生成预览对象\n  //   this.previewDto = {\n  //     TemplateId: dataset[0]['PrintTemplateId'],\n  //     LabelDataSource: dataset.map(data => {\n  //       return { Master: data, Details: [] }\n  //     })\n  //   };\n  //   // 获取本地打印机\n  //   this.getPrinterList();\n  //   this.selectedIndex = 2;\n  // }\n\n  // /** 打印标签 */\n  // printLabelData() {\n  //   if (!this.selectedPrinter) {\n  //     return MsgHelper.ShowWarningMessage('请先选择打印机！');\n  //   }\n  //   // 获取打印数据源\n  //   const printDatasource = this.labelPrintDataResult?.Attach || [];\n  //   if (!printDatasource.length) {\n  //     return MsgHelper.ShowWarningMessage('没有打印数据源！');\n  //   }\n  //   if (printDatasource.some(ele => !ele['PrintTemplateId'])) {\n  //     return MsgHelper.ShowWarningMessage('找不到对应的标签模板！');\n  //   }\n  //   // 打印模型\n  //   this.printDto = {};\n  //   this.printDto.TemplateId = printDatasource[0]['PrintTemplateId'];\n  //   this.printDto.PrinterIp = this.selectedPrinter;\n  //   this.printDto.LabelDataSource = printDatasource.map(data => {\n  //     return { Master: data, Details: [] }\n  //   });\n  //   this.printLoading = true;\n  //   this.labelSer.LabelPrintByLocal(this.printDto).subscribe(res => {\n  //     if (res.Success) {\n  //       MsgHelper.ShowSuccessMessage('打印指令发送成功！');\n  //       // 同步数据\n  //       if (this.labelPrintSign) {\n  //         this.labelSer.TransferTempLabelDataToOfficialData(this.labelPrintSign).subscribe(res => {\n  //           if (!res.Success) {\n  //             MsgHelper.ShowWarningMessage(`打印数据同步失败！${res.Message}`);\n  //           }\n  //         });\n  //       }\n  //       this.closePreviewTab();\n  //     } else {\n  //       MsgHelper.ShowWarningMessage(`打印指令发送失败！${res.Message}`);\n  //     }\n  //     this.printLoading = false;\n  //   }, () => this.printLoading = false);\n  // }\n\n  //#endregion 打印区域结束\n}\n\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                    (rhResetChange)=\"initDefaultQueryDto()\"\n                    [rhValue]=\"defaultQueryDto\"\n                  ></rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                [rhExtraButtonDataset]=\"extraButtonDataset\"\n              >\n                <ng-template rhTemplate=\"CanTransactAuxQty\" let-item let-data=\"data\">\n                  <rh-editable-hover-field\n                    [rhData]=\"data\"\n                    rhField=\"CanTransactAuxQty\"\n                    rhType=\"number\"\n                    [rhMin]=\"0\"\n                    [rhPlaceHolder]=\"item.displayName\"\n                    [rhRequired]=\"false\"\n                  >\n                  </rh-editable-hover-field>\n                </ng-template>\n                <ng-template rhTemplate=\"CanTransactQty\" let-item let-data=\"data\">\n                  <rh-editable-hover-field\n                    [rhData]=\"data\"\n                    rhField=\"CanTransactQty\"\n                    rhType=\"number\"\n                    [rhMin]=\"0\"\n                    [rhPlaceHolder]=\"item.displayName\"\n                  >\n                  </rh-editable-hover-field>\n                </ng-template>\n              </rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <!-- <nz-tab *ngIf=\"selectedIndex\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>数据打印</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closePrintTab()\"></i></span>\n      </ng-template>\n      <div>\n        <rh-purchase-order-print\n          [rhOrderCode]=\"selectedData?.OrderCode\"\n          (rhLabelPrintOutput)=\"getLabelPrintOutput($event)\"\n        ></rh-purchase-order-print>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex > 1\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据预览</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closePreviewTab()\"></i></span>\n      </ng-template>\n      <div class=\"print-handle\">\n        <nz-select\n          [(ngModel)]=\"selectedPrinter\"\n          name=\"value\"\n          nzPlaceHolder=\"请选择打印机\"\n          nzAllowClear\n          style=\"min-width: 200px; margin-right: 8px\"\n        >\n          <nz-option *ngFor=\"let item of printerList\" [nzLabel]=\"item.Text\" [nzValue]=\"item.Value\"> </nz-option>\n        </nz-select>\n        <button\n          nz-button\n          [nzType]=\"'primary'\"\n          type=\"button\"\n          (click)=\"printLabelData()\"\n          [disabled]=\"labelPrintDataResult?.Attach.length === 0\"\n          [nzLoading]=\"printLoading\"\n        >\n          <i nz-icon nzType=\"printer\" nzTheme=\"outline\"></i>\n          打印标签\n        </button>\n      </div>\n      <nz-tabset>\n        <nz-tab nzTitle=\"标签数据\">\n          <rh-dynamic-table [rhName]=\"'LabelPrintDataLibraryTable'\" [rhTableData]=\"labelPrintDataResult\"></rh-dynamic-table>\n        </nz-tab>\n        <nz-tab nzTitle=\"标签预览\">\n          <rh-material-inventory-label-preview [rhPreviewDto]=\"previewDto\"></rh-material-inventory-label-preview>\n        </nz-tab>\n      </nz-tabset>\n    </nz-tab> -->\n  </nz-tabset>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowCreateModal\"\n  nzTitle=\"生成预收货单据\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeCreateModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #createForm\n    rhName=\"createForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"createDto\"\n    (rhInterfaceDataChange)=\"onCreateData($event)\"\n    (rhClose)=\"closeCreateModal()\"\n  ></rh-dynamic-form\n></nz-modal>\n","import { RhLabelService } from 'rh-label';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { RhBaseDto, DataResultT, RhSelectableDto, CodeClassModel, RhDynamicTableFieldDto, RhTableQueryOptionDto, RhTableButtonInfoDto, RhSafeAny } from 'rh-base/model';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\n\n@Component({\n  selector: 'rh-advance-receipt-manage',\n  templateUrl: './advance-receipt-manage.component.html',\n  styleUrls: ['./advance-receipt-manage.component.less']\n})\nexport class RhAdvanceReceiptManageComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  selectedData: RhSelectableDto;\n  selectedDatas: RhSelectableDto[] = [];\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultQueryDto: RhBaseDto = {};\n\n  defaultFieldDataset = [];\n\n  detailTableInterface = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'SupplierPortalApi',\n    interfaceName: 'GetPurchaseAdvanceReceiptOrderDetailDatas'\n  };\n  detailTableFieldDataset = [];\n  detailQueryDto = {};\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('print', '打印', 'primary', false, 'printer', false, null, (datas, buttonInfo) => this.getLabelTemplate(datas as RhBaseDto[], buttonInfo), false, true)\n  ];\n\n  // 是否打开预览弹窗\n  isShowPreviewModal = false;\n  // 标签模板Code\n  defaultTemplateCode = 'AdvanceReceipt';\n  // 标签模板ID\n  defaultTemplateId: string;\n  /** 选中的打印机 */\n  selectedPrinter: string;\n  /** 打印机列表 */\n  printerList: RhSafeAny[] = [];\n  /** 打印loading */\n  printLoading = false;\n  /** 打印接口提交对象 */\n  printDto: RhBaseDto;\n  /** 预览接口提交对象 */\n  previewDto: RhBaseDto;\n\n  constructor(private labelSer: RhLabelService, private storage: RhStorageService) {\n    //\n  }\n\n  ngOnInit(): void {\n    this.initDefaultQueryDto();\n  }\n\n  initDefaultQueryDto() {\n    const userDomain = this.storage.getUserDomain();\n    this.defaultQueryDto = { SupplierCode: userDomain?.SupplierCode || null, _timestamp: Date.now() };\n  }\n\n  openDetailTab(dto: { data: RhBaseDto }) {\n    //\n    this.selectedData = dto.data;\n    this.detailQueryDto = { OrderCode: this.selectedData.OrderCode ? `$${this.selectedData.OrderCode}` : null };\n    this.selectedIndex = 1;\n  }\n\n  closeDetailTab() {\n    //\n    this.selectedIndex = 0;\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  /** 获取预收货单据标签模板ID */\n  getLabelTemplate(datas: RhBaseDto[], buttonInfo: RhTableButtonInfoDto) {\n    this.selectedDatas = datas;\n    buttonInfo.loading = true;\n    this.labelSer.GetLabelTemplateDatas({ TemplateCode: this.defaultTemplateCode }).subscribe(res => {\n      if (res.Success) {\n        if (res.Attach?.length) {\n          this.defaultTemplateId = res.Attach[0].Id;\n          this.openPreviewModal();\n        } else {\n          MsgHelper.ShowWarningMessage(`找不到预收货单据对应模板，请先设计标签模板（模板代码【${this.defaultTemplateCode}】）！`);\n        }\n      } else {\n        MsgHelper.ShowWarningMessage(`获取预收货单据标签模板失败！${res.Message}`);\n      }\n      buttonInfo.loading = false;\n    }, () => buttonInfo.loading = false);\n  }\n\n  /** 打开预览弹窗 */\n  openPreviewModal() {\n    // 获取本地打印机\n    this.getPrinterList();\n    this.previewDto = {\n      TemplateId: this.defaultTemplateId,\n      LabelDataSource: this.selectedDatas.map(data => {\n        return { Master: data, Details: [] }\n      })\n    };\n    this.isShowPreviewModal = true;\n  }\n\n  closePreviewModal() {\n    this.isShowPreviewModal = false;\n  }\n\n  /** 打印标签 */\n  printLabelData() {\n    if (!this.selectedPrinter) {\n      return MsgHelper.ShowWarningMessage('请先选择打印机！');\n    }\n    // 获取打印数据源\n    const printDatasource = this.selectedDatas || [];\n    if (!printDatasource.length) {\n      return MsgHelper.ShowWarningMessage('没有打印数据源！');\n    }\n    if (!this.defaultTemplateId) {\n      return MsgHelper.ShowWarningMessage('找不到对应的标签模板！');\n    }\n    // 打印模型\n    this.printDto = {};\n    this.printDto.TemplateId = this.defaultTemplateId;\n    this.printDto.PrinterIp = this.selectedPrinter;\n    this.printDto.LabelDataSource = printDatasource.map(data => {\n      return { Master: data, Details: [] }\n    });\n    this.printLoading = true;\n    this.labelSer.LabelPrintByLocal(this.printDto).subscribe(res => {\n      if (res.Success) {\n        MsgHelper.ShowSuccessMessage('打印指令发送成功！');\n        this.closePreviewModal();\n      } else {\n        MsgHelper.ShowWarningMessage(`打印指令发送失败！${res.Message}`);\n      }\n      this.printLoading = false;\n    }, () => this.printLoading = false);\n  }\n\n  /** 获取本地打印机 */\n  getPrinterList() {\n    this.labelSer.GetPrintersByLocal().subscribe(res => {\n      if (res.Success) {\n        this.printerList = res.Attach.map(ele => {\n          const name = ele.PrinterName;\n          return { Text: name, Value: name };\n        });\n      } else {\n        this.printerList = [];\n      }\n    }, error => {\n      console.log(error)\n    })\n  }\n\n}\n\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                    (rhResetChange)=\"initDefaultQueryDto()\"\n                    [rhValue]=\"defaultQueryDto\"\n                  ></rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              ></rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeDetailTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"基础信息\">\n              <rh-dynamic-description rhName=\"editDescription\" [rhValue]=\"selectedData\"></rh-dynamic-description>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"单据明细\">\n              <rh-dynamic-single-table\n                rhName=\"detailTable\"\n                [rhInterfaceInfo]=\"detailTableInterface\"\n                [rhDefaultFieldDataset]=\"detailTableFieldDataset\"\n                [rhPara]=\"detailQueryDto\"\n              ></rh-dynamic-single-table>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<rh-draggable-modal\n  [rhVisible]=\"isShowPreviewModal\"\n  (rhClose)=\"closePreviewModal()\"\n  [rhTitle]=\"'打印预览'\"\n  [rhWidth]=\"'60vw'\"\n  [rhMaskClosable]=\"false\"\n>\n  <div class=\"rh-full\">\n    <div class=\"print-handle\">\n      <nz-select\n        [(ngModel)]=\"selectedPrinter\"\n        name=\"value\"\n        nzPlaceHolder=\"请选择打印机\"\n        nzAllowClear\n        style=\"min-width: 200px; margin-right: 8px\"\n      >\n        <nz-option *ngFor=\"let item of printerList\" [nzLabel]=\"item.Text\" [nzValue]=\"item.Value\"> </nz-option>\n      </nz-select>\n      <button\n        nz-button\n        [nzType]=\"'primary'\"\n        type=\"button\"\n        (click)=\"printLabelData()\"\n        [disabled]=\"selectedDatas.length === 0\"\n        [nzLoading]=\"printLoading\"\n      >\n        <i nz-icon nzType=\"printer\" nzTheme=\"outline\"></i>\n        打印标签\n      </button>\n    </div>\n    <rh-material-inventory-label-preview *ngIf=\"isShowPreviewModal\" [rhPreviewDto]=\"previewDto\"></rh-material-inventory-label-preview>\n  </div>\n</rh-draggable-modal>\n","import { Component, Input, OnInit, Output, ViewChild, EventEmitter, SimpleChanges } from '@angular/core';\nimport { MsgHelper, ObjectHelper, RhStorageService } from 'rh-base/core';\nimport { CodeClassModel, DataResultT, RhBaseDto, RhDynamicTableFieldDto, RhSelectableDto, RhTableQueryOptionDto } from 'rh-base/model';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { LabelListPrintInput, LabelPrintInput, LabelPrintOutput, ParaSettingsQueryDto, RhLabelService } from 'rh-label';\n\n@Component({\n  selector: 'rh-purchase-order-print',\n  templateUrl: './purchase-order-print.component.html',\n  styleUrls: ['./purchase-order-print.component.less']\n})\nexport class PurchaseOrderPrintComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() rhOrderCode: string;\n  @Input() rhRefreshSign: number;\n  @Output() rhLabelPrintOutput = new EventEmitter<LabelPrintOutput>();\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  defaultFieldDataset = [];\n\n  /** 打印份数 */\n  currentPrintCopys = 1;\n  // 选中的数据\n  // selectedData: RhSelectableDto = null;\n  selectedDatas: RhSelectableDto[] = [];\n  // 选中的模板\n  selectedLabelSpecifyDto: RhSelectableDto = null;\n  // 生成打印数据loading\n  createLoading = false;\n\n  // wms标签最大运行打印数量\n  wmsLabelPrintSheetsAllowMax: number;\n  // 默认标签模板selector传入值\n  defaultLabelRule = { RuleId: 'PurchaseMaterialLabel', LabelBusinessTypeCode: 'InWareHouseLabel' };\n  // 默认查询对象\n  defaultQueryDto: RhBaseDto = {};\n\n  constructor(private labelSer: RhLabelService, private storage: RhStorageService) {\n    //\n  }\n\n  ngOnInit(): void {\n    this.initDefaultQueryDto();\n    this.getWmsLabelPrintSheetsAllowMax();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhOrderCode, rhRefreshSign } = changes;\n    if (rhOrderCode && rhOrderCode.currentValue) {\n      // this.defaultQueryDto = { OrderCode: this.rhOrderCode ? `$${this.rhOrderCode}` : null };\n      this.initDefaultQueryDto();\n    }\n    if (rhRefreshSign && rhRefreshSign.currentValue && !rhRefreshSign.firstChange) this.getDatas();\n  }\n\n  initDefaultQueryDto() {\n    const userDomain = this.storage.getUserDomain();\n    this.defaultQueryDto = {\n      SupplierCode: userDomain?.SupplierCode || null, _timestamp: Date.now(),\n      OrderCode: this.rhOrderCode ? `$${this.rhOrderCode}` : null\n    };\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    this.selectedDatas = [];\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    } else {\n      this.dataresult.Attach.forEach(ele => ele.PackageQty = ele.PrintTotalQty = ele.PrintSheets = 1);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  // 获取选中的数据\n  // getSelectedDataChange(data: RhSelectableDto) {\n  //   this.selectedData = data;\n  // }\n  getSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas || [];\n  }\n\n  // 获取选中的模板\n  getSelectedLabelSpecify(data: RhSelectableDto) {\n    this.selectedLabelSpecifyDto = data;\n  }\n\n  printCheck() {\n    // if (this.wmsLabelPrintSheetsAllowMax && this.wmsLabelPrintSheetsAllowMax < this.selectedData.PrintSheets) {\n    //   MsgHelper.ShowWarningMessage(`打印张数不能超过标签最大允许打印张数：${this.wmsLabelPrintSheetsAllowMax}`);\n    //   return false;\n    // }\n    if (this.wmsLabelPrintSheetsAllowMax && this.selectedDatas.find(ele => ele.PrintSheets > this.wmsLabelPrintSheetsAllowMax)) {\n      MsgHelper.ShowWarningMessage(`打印张数不能超过标签最大允许打印张数：${this.wmsLabelPrintSheetsAllowMax}`);\n      return false;\n    }\n    return true;\n  }\n\n  createLabel() {\n    this.createLoading = true;\n    const dto = LabelListPrintInput.create();\n    dto.LabelType = this.defaultLabelRule.RuleId;\n    dto.RuleId = this.defaultLabelRule.RuleId;\n    // 选中的数据处理\n    const datas = this.selectedDatas.map(ele => {\n      const temp = LabelPrintInput.create();\n      ObjectHelper.MapT(ele, dto, true, false);\n      temp.PrintPara = ele;\n      temp.PrintTotalQty = ele.PrintTotalQty;\n      temp.PrintSheets = ele.PrintSheets;\n      temp.PackageQty = ele.PackageQty;\n      temp.PrintCopys = this.currentPrintCopys;\n      temp.LabelType = this.defaultLabelRule.RuleId;\n      temp.RuleId = this.defaultLabelRule.RuleId;\n      return temp\n    });\n    dto.Inputs = datas;\n    // 标签模板赋值\n    dto.PrintTemplateCode = this.selectedLabelSpecifyDto.TemplateCode;\n    dto.PrintTemplateName = this.selectedLabelSpecifyDto.TemplateName;\n    dto.PrintTemplateId = this.selectedLabelSpecifyDto.Id.toString();\n    this.labelSer.LabelListPrint(dto).subscribe(result => {\n      if (result.Success) {\n        this.rhLabelPrintOutput.emit(result.Attach);\n      } else {\n        MsgHelper.ShowWarningMessage(`标签打印失败！${result.Message}`);\n      }\n      this.createLoading = false;\n    }, () => this.createLoading = false)\n  }\n\n  getWmsLabelPrintSheetsAllowMax() {\n    const queryDto = ParaSettingsQueryDto.create();\n    queryDto.ModuleKey = 'Wms';\n    queryDto.ParameterCode = 'WmsLabelPrintSheetsAllowMax';\n    this.labelSer.GetParaSettingsDatas(queryDto).subscribe(result => {\n      if (result.Success) {\n        this.wmsLabelPrintSheetsAllowMax = Number(result.Attach[0].ParameterValue);\n      }\n    })\n  }\n\n  setPrintTotalQty(data: RhSelectableDto) {\n    data.PrintTotalQty = data.PrintSheets * data.PackageQty;\n  }\n\n  setPrintSheets(data: RhSelectableDto) {\n    data.PrintSheets = Math.ceil(data.PrintTotalQty / data.PackageQty);\n  }\n\n\n}\n\n\n","<div class=\"rh-full\">\n  <d-splitter orientation=\"vertical\">\n    <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n      <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n        <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n          <ng-template #nzAlertTemplate>\n            <rh-dynamic-form\n              #queryForm\n              rhName=\"PurchaseInSourceOrderDetailQueryForm\"\n              rhType=\"query\"\n              (rhInterfaceDataChange)=\"setDatas($event)\"\n              (rhDataloadingChange)=\"dataLoadingChange($event)\"\n              (rhOutParaChange)=\"setInitFieldDataset($event)\"\n              (rhResetChange)=\"initDefaultQueryDto()\"\n              [rhValue]=\"defaultQueryDto\"\n            >\n              <ng-template\n                rhTemplate=\"SupplierCode\"\n                let-formGroup\n                let-setting=\"setting\"\n                let-hostConfig=\"hostSetting\"\n                let-formData=\"formData\"\n              >\n                <nz-form-item *ngIf=\"!defaultQueryDto?.SupplierCode\">\n                  <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                    <rh-form-field\n                      name=\"SupplierCode\"\n                      [formControl]=\"formGroup.get('SupplierCode')\"\n                      rhFormType=\"edit\"\n                      [rhFieldData]=\"setting\"\n                      [rhSize]=\"hostConfig?.rhSize\"\n                      [rhData]=\"formData\"\n                    ></rh-form-field>\n                  </nz-form-control>\n                </nz-form-item>\n              </ng-template>\n              <ng-template\n                rhTemplate=\"SupplierName\"\n                let-formGroup\n                let-setting=\"setting\"\n                let-hostConfig=\"hostSetting\"\n                let-formData=\"formData\"\n              >\n                <nz-form-item *ngIf=\"!defaultQueryDto?.SupplierCode\">\n                  <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                    <rh-form-field\n                      name=\"SupplierName\"\n                      [formControl]=\"formGroup.get('SupplierName')\"\n                      rhFormType=\"edit\"\n                      [rhFieldData]=\"setting\"\n                      [rhSize]=\"hostConfig?.rhSize\"\n                      [rhData]=\"formData\"\n                    ></rh-form-field>\n                  </nz-form-control>\n                </nz-form-item>\n              </ng-template>\n            </rh-dynamic-form>\n          </ng-template>\n        </nz-alert>\n      </div>\n    </d-splitter-pane>\n    <d-splitter-pane>\n      <div class=\"rh-full\">\n        <div class=\"flex-area\" style=\"margin: 1rem\">\n          <rh-label-template-selector\n            [rhLabelRuleDto]=\"defaultLabelRule\"\n            (rhLabelSpecifyChange)=\"getSelectedLabelSpecify($event)\"\n          ></rh-label-template-selector>\n          <button\n            nz-button\n            nzSize=\"small\"\n            nzType=\"primary\"\n            type=\"button\"\n            (click)=\"createLabel()\"\n            [disabled]=\"!selectedDatas.length || !selectedLabelSpecifyDto\"\n            [nzLoading]=\"createLoading\"\n          >\n            <i nz-icon nzType=\"barcode\" nzTheme=\"outline\"></i>生成条码\n          </button>\n        </div>\n        <rh-dynamic-table\n          rhName=\"PurchaseInSourceOrderDetailTable\"\n          [rhTableData]=\"dataresult\"\n          [rhTableDataloading]=\"dataLoading\"\n          [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n          (rhRefresh)=\"refreshDatas($event)\"\n          (rhSelectedDatasChange)=\"getSelectedDatasChange($event)\"\n        >\n          <ng-template rhTemplate=\"PackageQty\" let-item let-data=\"data\">\n            <rh-editable-hover-field [rhData]=\"data\" rhField=\"PackageQty\" rhType=\"number\" [rhMin]=\"1\" rhPlaceHolder=\"包装数量\">\n            </rh-editable-hover-field>\n          </ng-template>\n          <ng-template rhTemplate=\"PrintTotalQty\" let-item let-data=\"data\">\n            <rh-editable-hover-field\n              [rhData]=\"data\"\n              rhField=\"PrintTotalQty\"\n              rhType=\"number\"\n              [rhMin]=\"1\"\n              rhPlaceHolder=\"打印数量\"\n              (rhValueChange)=\"setPrintSheets(data)\"\n            >\n            </rh-editable-hover-field>\n          </ng-template>\n          <ng-template rhTemplate=\"PrintSheets\" let-item let-data=\"data\">\n            <rh-editable-hover-field\n              [rhData]=\"data\"\n              rhField=\"PrintSheets\"\n              rhType=\"number\"\n              [rhMin]=\"1\"\n              rhPlaceHolder=\"打印张数\"\n              (rhValueChange)=\"setPrintTotalQty(data)\"\n            >\n            </rh-editable-hover-field>\n          </ng-template>\n        </rh-dynamic-table>\n      </div>\n    </d-splitter-pane>\n  </d-splitter>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\nimport { DataResultT, OpResult, RhBaseDto, RhLoginedUserDto, RhSafeAny, RhSelectableDto } from 'rh-base/model';\nimport { LabelPrintOutput, RhLabelService } from 'rh-label';\n\n@Component({\n  selector: 'rh-in-order-print',\n  templateUrl: './in-order-print.component.html',\n  styleUrls: ['./in-order-print.component.less']\n})\nexport class RhInOrderPrintComponent implements OnInit {\n\n  // toolUrl = 'http://192.168.0.88:6021/configuration/RhLabelPrintHelper.exe';\n\n  selectedIndex = 0;\n  /** 生成的标签数据 */\n  currentLabelPrintOutput: LabelPrintOutput;\n  labelPrintDataResult: DataResultT<LabelPrintOutput[]>;\n  labelPrintSign: string;\n  // 打印\n  /** 选中的打印机 */\n  selectedPrinter: string;\n  /** 打印机列表 */\n  printerList: RhSafeAny[] = [];\n  /** 打印loading */\n  printLoading = false;\n  /** 打印接口提交对象 */\n  printDto: RhBaseDto;\n  /** 预览接口提交对象 */\n  previewDto: RhBaseDto;\n  /** 标签数据刷新标志 */\n  labelDataRefreshSign = Date.now();\n  /** 当前登录人 */\n  currentUser: RhLoginedUserDto;\n\n  get toolUrl() {\n    return this.labelSer.downloadUrl;\n  }\n\n  constructor(private labelSer: RhLabelService, private storage: RhStorageService) { }\n\n  ngOnInit(): void {\n    // this.getPrinterList();\n    // 获取当前登录人\n    this.currentUser = this.storage.getUserSession()?.User;\n  }\n\n  closePreviewTab() {\n    this.selectedIndex = 0;\n  }\n\n  /** 获取本地打印机 */\n  getPrinterList() {\n    this.labelSer.GetPrintersByLocal().subscribe(res => {\n      if (res.Success) {\n        this.printerList = res.Attach.map(ele => {\n          const name = ele.PrinterName;\n          return { Text: name, Value: name };\n        });\n      } else {\n        this.printerList = [];\n      }\n    }, error => {\n      console.log(error)\n    })\n  }\n\n  /** 获取标签打印参数 */\n  getLabelPrintOutput(data: LabelPrintOutput) {\n    this.currentLabelPrintOutput = data;\n    const dataset = this.currentLabelPrintOutput.Datas as RhSelectableDto[];\n    // 错误提示\n    if (!dataset || !dataset.length) {\n      return MsgHelper.ShowWarningMessage(`生成的条码数据为空！`);\n    }\n    if (!dataset[0]['PrintTemplateId']) {\n      return MsgHelper.ShowWarningMessage(`生成的条码数据没有模板ID字段【PrintTemplateId】`);\n    }\n    this.labelPrintDataResult = { Attach: this.currentLabelPrintOutput.Datas } as RhSafeAny;\n    // 打印操作需要同步数据\n    this.labelPrintSign = this.currentLabelPrintOutput.PrintSign;\n    // 生成预览对象\n    this.previewDto = {\n      TemplateId: dataset[0]['PrintTemplateId'],\n      LabelDataSource: dataset.map(data => {\n        return { Master: data, Details: [] }\n      })\n    };\n    // 获取本地打印机\n    this.getPrinterList();\n    this.selectedIndex = 1;\n  }\n\n  /** 打印标签 */\n  printLabelData() {\n    if (!this.selectedPrinter) {\n      return MsgHelper.ShowWarningMessage('请先选择打印机！');\n    }\n    // 获取打印数据源\n    const printDatasource = this.labelPrintDataResult?.Attach || [];\n    if (!printDatasource.length) {\n      return MsgHelper.ShowWarningMessage('没有打印数据源！');\n    }\n    if (printDatasource.some(ele => !ele['PrintTemplateId'])) {\n      return MsgHelper.ShowWarningMessage('找不到对应的标签模板！');\n    }\n    // 打印模型\n    this.printDto = {};\n    this.printDto.TemplateId = printDatasource[0]['PrintTemplateId'];\n    this.printDto.PrinterIp = this.selectedPrinter;\n    this.printDto.LabelDataSource = printDatasource.map(data => {\n      return { Master: data, Details: [] }\n    });\n    this.printLoading = true;\n    this.labelSer.LabelPrintByLocal(this.printDto).subscribe({\n      next: async res => {\n        if (res.Success) {\n          MsgHelper.ShowSuccessMessage('打印指令发送成功！');\n          // 同步数据\n          const logDto = {\n            PrinterCode: this.currentUser?.UserName,\n            PrinterName: this.currentUser?.DisplayName,\n            sign: null,\n            LabelDtos: []\n          };\n          let syncRes: OpResult;\n          if (this.labelPrintSign) { // 打印\n            logDto.sign = this.labelPrintSign;\n          } else { // 补打\n            logDto.LabelDtos = printDatasource;\n          }\n          syncRes = await this.labelSer.LabelPrintLogRecord(logDto).toPromise();\n          if (!syncRes.Success) {\n            MsgHelper.ShowWarningMessage(`打印数据同步失败！${res.Message}`);\n          }\n          this.labelDataRefreshSign = Date.now();\n          this.closePreviewTab();\n        } else {\n          MsgHelper.ShowWarningMessage(`打印指令发送失败！${res.Message}`);\n        }\n        this.printLoading = false;\n      },\n      error: () => {\n        this.printLoading = false;\n      }\n    });\n  }\n\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" [nzTabBarExtraContent]=\"extraTpl\">\n    <ng-template #extraTpl>\n      <button\n        style=\"margin-right: 1vw\"\n        nzSize=\"small\"\n        nz-button\n        nz-dropdown\n        [nzDropdownMenu]=\"menu\"\n        type=\"button\"\n        [nzPlacement]=\"'bottomCenter'\"\n        nzTrigger=\"click\"\n      >\n        <i nz-icon nzType=\"download\" nzTheme=\"outline\"></i>工具下载\n      </button>\n      <nz-dropdown-menu #menu=\"nzDropdownMenu\">\n        <ul nz-menu>\n          <li nz-menu-item>\n            <a href=\"{{ toolUrl }}\"><i nz-icon nzType=\"download\" nzTheme=\"outline\"></i>打印插件</a>\n          </li>\n        </ul>\n      </nz-dropdown-menu>\n    </ng-template>\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据打印</span>\n      </ng-template>\n      <div>\n        <rh-purchase-order-print [rhRefreshSign]=\"labelDataRefreshSign\" (rhLabelPrintOutput)=\"getLabelPrintOutput($event)\"></rh-purchase-order-print>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>数据预览</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closePreviewTab()\"></i></span>\n      </ng-template>\n      <div class=\"print-handle\">\n        <nz-select\n          [(ngModel)]=\"selectedPrinter\"\n          name=\"value\"\n          nzPlaceHolder=\"请选择打印机\"\n          nzAllowClear\n          style=\"min-width: 200px; margin-right: 8px\"\n        >\n          <nz-option *ngFor=\"let item of printerList\" [nzLabel]=\"item.Text\" [nzValue]=\"item.Value\"> </nz-option>\n        </nz-select>\n        <button\n          nz-button\n          [nzType]=\"'primary'\"\n          type=\"button\"\n          (click)=\"printLabelData()\"\n          [disabled]=\"labelPrintDataResult?.Attach.length === 0\"\n          [nzLoading]=\"printLoading\"\n        >\n          <i nz-icon nzType=\"printer\" nzTheme=\"outline\"></i>\n          打印标签\n        </button>\n      </div>\n      <nz-tabset>\n        <nz-tab nzTitle=\"标签数据\">\n          <rh-dynamic-table [rhName]=\"'LabelPrintDataLibraryTable'\" [rhTableData]=\"labelPrintDataResult\"></rh-dynamic-table>\n        </nz-tab>\n        <nz-tab nzTitle=\"标签预览\">\n          <rh-material-inventory-label-preview [rhPreviewDto]=\"previewDto\"></rh-material-inventory-label-preview>\n        </nz-tab>\n      </nz-tabset>\n    </nz-tab>\n  </nz-tabset>\n</div>\n","import { RhLabelModule } from 'rh-label';\nimport { NgModule } from '@angular/core';\nimport { RhSharedModule } from 'rh-base/shared';\nimport { RhSupplierPortalService } from './supplier-portal.service';\nimport { RhPurchaseOrderManageComponent } from './purchase-order-manage/purchase-order-manage.component';\nimport { RhAdvanceReceiptManageComponent } from './advance-receipt-manage/advance-receipt-manage.component';\nimport { PurchaseOrderPrintComponent } from './purchase-order-manage/purchase-order-print/purchase-order-print.component';\nimport { RhInOrderPrintComponent } from './in-order-print/in-order-print.component';\n\nconst COMMOPENTS = [RhPurchaseOrderManageComponent, RhAdvanceReceiptManageComponent];\n\nconst SNIPPETS = [PurchaseOrderPrintComponent];\n\n@NgModule({\n  declarations: [...COMMOPENTS, ...SNIPPETS, RhInOrderPrintComponent],\n  imports: [RhSharedModule, RhLabelModule],\n  providers: [RhSupplierPortalService]\n})\nexport class RhSupplierPortalModule { }\n","//#region 锁库区域开始\n\nimport { UploadFileOption } from 'rh-base/model';\n\n/** 锁库配置查询数据传输对象 */\nexport class MaterialInventoryLockConfigQueryDto {\n    constructor(\n        /** 锁库类型 */\n        public LockType: string,\n        /** 是否锁库 */\n        public IsLocked: boolean,\n        /** 条码 */\n        public SN: string,\n        /** 物料代码 */\n        public MaterialCode: string,\n        /** 物料名称 */\n        public MaterialName: string,\n        /** 物料规格 */\n        public MaterialSpecification: string,\n        /** 物料属性 */\n        public MaterialAttribute: string,\n        /** 物料类别 */\n        public MaterialCategory: string,\n        /** 单位 */\n        public ExpiryUnit: string,\n        /** 计量单位 */\n        public MeasureUnit: string,\n        /** 权重 */\n        public Grade: number,\n        /** 仓库代码 */\n        public WarehouseCode: string,\n        /** 仓库名称 */\n        public WarehouseName: string,\n        /** 库位代码 */\n        public StorageLocationCode: string,\n        /** 库位名称 */\n        public StorageLocationName: string,\n        /** 数量 */\n        public Qty: number,\n        /** 批次号 */\n        public LotNum: string,\n        /** 生产日期 */\n        public ProductionDate: Date,\n        /** 开始生产日期 */\n        public StartProductionDate: Date,\n        /** 结束生产日期 */\n        public EndProductionDate: Date,\n        /** 生产日期区间 */\n        public ProductionDateRange: Date,\n        /** 生产时间 */\n        public ProductionTime: Date,\n        /** 开始生产时间 */\n        public StartProductionTime: Date,\n        /** 结束生产时间 */\n        public EndProductionTime: Date,\n        /** 生产时间区间 */\n        public ProductionTimeRange: Date,\n        /** 保质期 */\n        public ExpiryDays: number,\n        /** 可用数量 */\n        public AvailableQty: number,\n        /** 冻结数量 */\n        public FreezeQty: number,\n        /** 有效期 */\n        public ExpirationDate: Date,\n        /** 开始有效期 */\n        public StartExpirationDate: Date,\n        /** 结束有效期 */\n        public EndExpirationDate: Date,\n        /** 有效期区间 */\n        public ExpirationDateRange: Date,\n        /** 备注 */\n        public Remark: string,\n        /** 扩展字段1 */\n        public SField1: string,\n        /** 扩展字段2 */\n        public SField2: string,\n        /** 扩展字段3 */\n        public SField3: string,\n        /** 扩展字段4 */\n        public FField1: number,\n        /** 扩展字段5 */\n        public FField2: number,\n        /** 扩展字段6 */\n        public FField3: number,\n        /** 扩展字段7 */\n        public DField1: Date,\n        /** 开始扩展字段7 */\n        public StartDField1: Date,\n        /** 结束扩展字段7 */\n        public EndDField1: Date,\n        /** 扩展字段8 */\n        public DField2: Date,\n        /** 开始扩展字段8 */\n        public StartDField2: Date,\n        /** 结束扩展字段8 */\n        public EndDField2: Date,\n        /** 扩展字段9 */\n        public DField3: Date,\n        /** 开始扩展字段9 */\n        public StartDField3: Date,\n        /** 结束扩展字段9 */\n        public EndDField3: Date,\n        /** 扩展字段10 */\n        public DField4: Date,\n        /** 开始扩展字段10 */\n        public StartDField4: Date,\n        /** 结束扩展字段10 */\n        public EndDField4: Date,\n        /** 工厂代码 */\n        public FactoryCode: string,\n        /** 查询模式 */\n        public Mode: number,\n        /** 需要返回的结果数量 */\n        public MaxResultCount: number,\n        /** 跳过的数量 */\n        public SkipCount: number,\n    ) { }\n    static create(): MaterialInventoryLockConfigQueryDto {\n        return new MaterialInventoryLockConfigQueryDto(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);\n    }\n}\n\n/** 锁库配置表 */\nexport class MaterialInventoryLockConfigDto {\n    constructor(\n        /** 锁库类型 */\n        public LockType: string,\n        /** 是否锁库 */\n        public IsLocked: boolean,\n        /** 条码 */\n        public SN: string,\n        /** 物料代码 */\n        public MaterialCode: string,\n        /** 物料名称 */\n        public MaterialName: string,\n        /** 物料规格 */\n        public MaterialSpecification: string,\n        /** 物料属性 */\n        public MaterialAttribute: string,\n        /** 物料类别 */\n        public MaterialCategory: string,\n        /** 单位 */\n        public ExpiryUnit: string,\n        /** 计量单位 */\n        public MeasureUnit: string,\n        /** 权重 */\n        public Grade: number,\n        /** 仓库代码 */\n        public WarehouseCode: string,\n        /** 仓库名称 */\n        public WarehouseName: string,\n        /** 库位代码 */\n        public StorageLocationCode: string,\n        /** 库位名称 */\n        public StorageLocationName: string,\n        /** 数量 */\n        public Qty: number,\n        /** 批次号 */\n        public LotNum: string,\n        /** 生产日期 */\n        public ProductionDate: Date,\n        /** 生产时间 */\n        public ProductionTime: Date,\n        /** 保质期 */\n        public ExpiryDays: number,\n        /** 可用数量 */\n        public AvailableQty: number,\n        /** 冻结数量 */\n        public FreezeQty: number,\n        /** 有效期 */\n        public ExpirationDate: Date,\n        /** 备注 */\n        public Remark: string,\n        /** 扩展字段1 */\n        public SField1: string,\n        /** 扩展字段2 */\n        public SField2: string,\n        /** 扩展字段3 */\n        public SField3: string,\n        /** 扩展字段4 */\n        public FField1: number,\n        /** 扩展字段5 */\n        public FField2: number,\n        /** 扩展字段6 */\n        public FField3: number,\n        /** 扩展字段7 */\n        public DField1: Date,\n        /** 扩展字段8 */\n        public DField2: Date,\n        /** 扩展字段9 */\n        public DField3: Date,\n        /** 扩展字段10 */\n        public DField4: Date,\n        /** 工厂代码 */\n        public FactoryCode: string,\n        /** 创建时间 */\n        public CreationTime: Date,\n        /** 创建人Id */\n        public CreatorUserId: number,\n        /** 创建人名字 */\n        public CreatorUserName: string,\n        /** 上一次修改时间 */\n        public LastModificationTime: Date,\n        /** 上一次修改人Id */\n        public LastModifierUserId: number,\n        /** 上一次修改人名字 */\n        public LastModifierUserName: string,\n        /** 主键 */\n        public Id: number,\n        /** */\n        public OpSign: number,\n    ) { }\n    static create(): MaterialInventoryLockConfigDto {\n        return new MaterialInventoryLockConfigDto(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);\n    }\n}\n//#endregion 锁库区域结束\n\n//#region 附件区域\n/** 附件信息查询数据传输对象 */\nexport class AttachFileInfoQueryDto {\n    constructor(\n        /** 系统附件唯一码 */\n        public AttachFileInfoCode: string,\n        /** 单据类型 */\n        public OrderType: string,\n        /** 单据代码 */\n        public OrderCode: string,\n        /** 文件名称 */\n        public FileName: string,\n        /** 备注 */\n        public Remark: string,\n        /** 查询模式 */\n        public Mode: number,\n        /** 需要返回的结果数量 */\n        public MaxResultCount: number,\n        /** 跳过的数量 */\n        public SkipCount: number\n    ) { }\n    static create(): AttachFileInfoQueryDto {\n        return new AttachFileInfoQueryDto(\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null\n        );\n    }\n}\n\n/** 附件信息表 */\nexport class AttachFileInfoDto {\n    constructor(\n        /** 系统附件唯一码 */\n        public AttachFileInfoCode: string,\n        /** 单据类型 */\n        public OrderType: string,\n        /** 单据代码 */\n        public OrderCode: string,\n        /** 文件名称 */\n        public FileName: string,\n        /** 相对路径 */\n        public DirectoryRelativePath: string,\n        /** 备注 */\n        public Remark: string,\n        /** */\n        public FactoryCode: string,\n        /** */\n        public DField1: Date,\n        /** */\n        public DField2: Date,\n        /** */\n        public DField3: Date,\n        /** */\n        public DField4: Date,\n        /** */\n        public SField1: string,\n        /** */\n        public SField2: string,\n        /** */\n        public SField3: string,\n        /** */\n        public FField1: number,\n        /** */\n        public FField2: number,\n        /** */\n        public FField3: number,\n        /** 创建时间 */\n        public CreationTime: Date,\n        /** 创建人Id */\n        public CreatorUserId: number,\n        /** 创建人名字 */\n        public CreatorUserName: string,\n        /** 上一次修改时间 */\n        public LastModificationTime: Date,\n        /** 上一次修改人Id */\n        public LastModifierUserId: number,\n        /** 上一次修改人名字 */\n        public LastModifierUserName: string,\n        /** */\n        public Id: number,\n        /** */\n        public OpSign: number\n    ) { }\n    static create(): AttachFileInfoDto {\n        return new AttachFileInfoDto(\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null\n        );\n    }\n}\n\n/** 附件上传表 */\nexport class UploadAttachFilesDto {\n    constructor(\n        /** 单据类型 */\n        public OrderType: string,\n        /** 单据代码 */\n        public OrderCode: string,\n        /** 工厂代码 */\n        public FactoryCode: string,\n        /** 附件信息 */\n        public UploadFileOptions: UploadFileOption[]\n    ) { }\n    static create(): UploadAttachFilesDto {\n        return new UploadAttachFilesDto(null, null, null, []);\n    }\n}\n//#endregion 附件区域结束\n\n//#region 库存导入区域开始\n/** 数据导入模型 */\nexport class DataImportDto {\n    constructor(\n        /** 模块代码 */\n        public ModuleCode: string,\n        /** 业务代码 */\n        public BusinessCode: string,\n        /** 工厂代码 */\n        public FactoryCode: string,\n        /** 文件流字符串 */\n        public FileStreamString: string,\n        /** 操作员编码 */\n        public OperatorCode: string,\n        /** 操作员名称 */\n        public OperatorName: string\n    ) { }\n    static create(): DataImportDto {\n        return new DataImportDto(null, null, null, null, null, null);\n    }\n}\n\n/** 其他入库导入模型 */\nexport class OtherInImportDto {\n    constructor(\n        /** 单据创建人代码 */\n        public OrderCreatorCode: string,\n        /** 单据创建人名称 */\n        public OrderCreatorName: string,\n        /** GTS占比(10%） */\n        public DeminimisDm10: number,\n        /** GTS占比(25%） */\n        public DeminimisDm25: number,\n        /** 是否受EAR管辖(10%) */\n        public EarFlgDm10: number,\n        /** 是否受EAR管辖(25%) */\n        public EarFlgDm25: number,\n        /** ECCN是否可用 */\n        public IsEccnValid: boolean,\n        /** ECCN码 */\n        public Eccn: string,\n        /** 账户别名（ERP） */\n        public AccountDisplayName: string,\n        /** 其他入库类型 */\n        public OtherOrderType: string,\n        /** 入库仓库代码 */\n        public InWarehouseCode: string,\n        /** 入库仓库名称 */\n        public InWarehouseName: string,\n        /** 入库库位代码 */\n        public InStorageLocationCode: string,\n        /** 入库库位名称 */\n        public InStorageLocationName: string,\n        /** 办理数量 */\n        public TransactQty: number,\n        /** 备注 */\n        public Remark: string,\n        /** 物料代码 */\n        public MaterialCode: string,\n        /** 工厂代码 */\n        public FactoryCode: string,\n        /** 是否紧急 */\n        public IsEmergency: boolean,\n        /** 生产日期 */\n        public ProductionDate: Date\n    ) { }\n    static create(): OtherInImportDto {\n        return new OtherInImportDto(\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null\n        );\n    }\n}\n\n/** 其他出库导入模型 */\nexport class OtherOutImportDto {\n    constructor(\n        /** 单据创建人代码 */\n        public OrderCreatorCode: string,\n        /** 单据创建人名称 */\n        public OrderCreatorName: string,\n        /** GTS占比(10%） */\n        public DeminimisDm10: number,\n        /** GTS占比(25%） */\n        public DeminimisDm25: number,\n        /** 是否受EAR管辖(10%) */\n        public EarFlgDm10: number,\n        /** 是否受EAR管辖(25%) */\n        public EarFlgDm25: number,\n        /** ECCN是否可用 */\n        public IsEccnValid: boolean,\n        /** ECCN码 */\n        public Eccn: string,\n        /** 生产日期 */\n        public ProductionDate: Date,\n        /** 账户别名（ERP） */\n        public AccountDisplayName: string,\n        /** 其他出库类型 */\n        public OtherOrderType: string,\n        /** 项目（ERP） */\n        public ProjName: string,\n        /** 出库仓库代码 */\n        public OutWarehouseCode: string,\n        /** 客户代码 */\n        public CustomerCode: string,\n        /** 客户名称 */\n        public CustomerName: string,\n        /** 出库仓库名称 */\n        public OutWarehouseName: string,\n        /** 出库库位代码 */\n        public OutStorageLocationCode: string,\n        /** 出库库位名称 */\n        public OutStorageLocationName: string,\n        /** 办理数量 */\n        public TransactQty: number,\n        /** 备注 */\n        public Remark: string,\n        /** 物料代码 */\n        public MaterialCode: string,\n        /** 工厂代码 */\n        public FactoryCode: string,\n        /** 源单类型 */\n        public SourceOrderType: string,\n        /** 源单号 */\n        public SourceOrderId: string\n    ) { }\n    static create(): OtherOutImportDto {\n        return new OtherOutImportDto(\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null,\n            null\n        );\n    }\n}\n\n/** 库存导入模型 */\nexport class MaterialInventoryParameter {\n    constructor(\n        /** 仓库名称 */\n        public WarehouseName: string,\n        /** 仓库代码 */\n        public WarehouseCode: string,\n        /** 生产时间 */\n        public ProductionTime: Date,\n        /** 工厂代码 */\n        public FactoryCode: string,\n        /** 实际数量 */\n        public AvailableQty: number,\n        /** 单据代码 */\n        public OrderId: string,\n        /** 物料代码 */\n        public MaterialCode: string,\n        /** 物料名称 */\n        public MaterialName: string,\n        /** 库位代码 */\n        public StorageLocationCode: string,\n        /** 库位名称 */\n        public StorageLocationName: string,\n        /** 批次号 */\n        public LotNum: string,\n    ) { }\n    static create(): MaterialInventoryParameter {\n        return new MaterialInventoryParameter(null, null, null, null, null, null, null, null, null, null, null);\n    }\n}\n  //#endregion 库存导入区域结束\n","/** 锁库类型 */\r\nexport const MaterialInventoryLockType = {\r\n    'Factory': 'Factory',\r\n    'Warehouse': 'Warehouse',\r\n    'StorageLocation': 'StorageLocation',\r\n    'LotNum': 'LotNum',\r\n    'Material': 'Material',\r\n    'OverdueMaterial': 'OverdueMaterial',\r\n    'Custom': 'Custom'\r\n};\r\n\r\n/** 特殊锁库类型对应字段 */\r\nexport const FormFieldNameMapped = {\r\n    'Factory': 'FactoryCode',\r\n    'Warehouse': 'WarehouseCode',\r\n    'StorageLocation': 'StorageLocationCode',\r\n    'LotNum': 'LotNum',\r\n    'Material': 'MaterialCode'\r\n};\r\n\r\n/** 特殊锁库类型对应字段显示 */\r\nexport const FormFieldDisplayNameMapped = {\r\n    'Factory': '工厂',\r\n    'Warehouse': '仓库',\r\n    'StorageLocation': '库位',\r\n    'LotNum': '批次',\r\n    'Material': '物料'\r\n};","import { Injectable } from '@angular/core';\r\nimport { RhApiUrlsService, RhStorageService, MsgHelper } from 'rh-base/core';\r\nimport { RhLoginedUserDto, DataResultT, RhSafeAny } from 'rh-base/model';\r\nimport { MaterialInventoryLockConfigQueryDto, MaterialInventoryLockConfigDto } from '../shared-manage-model';\r\nimport { Observable } from 'rxjs';\r\nimport { MaterialInventoryLockType } from './inventory-control-data';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class RhInventoryControlManageService {\r\n\r\n  currentUser: RhLoginedUserDto;\r\n  /** 锁库后，库存操作行为：禁止|通知 */\r\n  afterLocked: 'forbid' | 'notice' = 'forbid';\r\n\r\n  constructor(private apiUrls: RhApiUrlsService, private storage: RhStorageService) {\r\n    this.currentUser = this.storage.getUserSession().User;\r\n  }\r\n\r\n  /** 根据指定的行为，控制获取锁库信息的后续操作 */\r\n  enableInventoryOperation(dtos: RhSafeAny[]): Observable<boolean> {\r\n    return new Observable((observer) => {\r\n      this.getLockedInfo(dtos).subscribe((lockedInfo: string) => {\r\n        if (lockedInfo) {\r\n          if (this.afterLocked === 'forbid') {\r\n            observer.next(false);\r\n          } else {\r\n            observer.next(true);\r\n          }\r\n          MsgHelper.ShowWarningModal(lockedInfo);\r\n        } else {\r\n          observer.next(true);\r\n        }\r\n        observer.complete();\r\n      }, () => {\r\n        observer.next(false);\r\n        observer.complete();\r\n      })\r\n    })\r\n  }\r\n\r\n  /** 单据提交判断锁库状态 */\r\n  getLockedInfo(dtos: RhSafeAny[]): Observable<string> {\r\n    return new Observable((observer) => {\r\n      const queryDto = MaterialInventoryLockConfigQueryDto.create();\r\n      queryDto.IsLocked = true;\r\n      queryDto.Mode = 8;\r\n      this.GetMaterialInventoryLockConfigDatas(queryDto).subscribe(result => {\r\n        if (result.Success) {\r\n          const datas = result.Attach;\r\n          let lockedInfo: string = null;\r\n          for (let i = 0; i < dtos.length; i++) {\r\n            const dto = dtos[i];\r\n            for (let j = 0; j < datas.length; j++) {\r\n              const item = datas[j];\r\n              switch (item.LockType) {\r\n                case MaterialInventoryLockType.Warehouse:\r\n                  if (dto.WarehouseCode === item.WarehouseCode) {\r\n                    lockedInfo = `仓库【${dto.WarehouseCode}】已锁定！无法进行库存操作，锁库原因：${item.Remark}`;\r\n                  }\r\n                  break;\r\n                case MaterialInventoryLockType.StorageLocation:\r\n                  if (dto.StorageLocationCode === item.StorageLocationCode) {\r\n                    lockedInfo = `库位【${dto.StorageLocationCode}】已锁定！无法进行库存操作，锁库原因：${item.Remark}`;\r\n                  }\r\n                  break;\r\n                case MaterialInventoryLockType.Factory:\r\n                  if (dto.FactoryCode === item.FactoryCode) {\r\n                    lockedInfo = `工厂【${dto.FactoryCode}】已锁定！无法进行库存操作，锁库原因：${item.Remark}`;\r\n                  }\r\n                  break;\r\n                case MaterialInventoryLockType.LotNum:\r\n                  if (dto.LotNum === item.LotNum && dto.MaterialCode === item.MaterialCode) {\r\n                    lockedInfo = `物料【${dto.MaterialCode}】批次【${dto.LotNum}】已锁定！无法进行库存操作，锁库原因：${item.Remark}`;\r\n                  }\r\n                  break;\r\n                case MaterialInventoryLockType.Material:\r\n                  if (dto.MaterialCode === item.MaterialCode) {\r\n                    lockedInfo = `物料【${dto.MaterialCode}】已锁定！无法进行库存操作，锁库原因：${item.Remark}`;\r\n                  }\r\n                  break;\r\n                case MaterialInventoryLockType.OverdueMaterial:\r\n                  if (dto.LotNum === item.LotNum && dto.MaterialCode === item.MaterialCode) {\r\n                    lockedInfo = `物料【${dto.MaterialCode}】批次【${dto.LotNum}】已锁定！无法进行库存操作，锁库原因：${item.Remark}`;\r\n                  }\r\n                  break;\r\n                case MaterialInventoryLockType.Custom:\r\n                  let exp = true;\r\n                  const customFields = ['MaterialCode', 'LotNum', 'WarehouseCode', 'StorageLocationCode', 'FactoryCode'];\r\n                  customFields.forEach(field => {\r\n                    if (item[field]) {\r\n                      exp = exp && item[field] === dto[field];\r\n                    }\r\n                  });\r\n                  if (exp) {\r\n                    lockedInfo = `库存已锁定！无法进行库存操作，锁库原因：${item.Remark}`;\r\n                  }\r\n                  break;\r\n                default:\r\n                  break;\r\n              }\r\n              if (lockedInfo) break;\r\n            }\r\n            if (lockedInfo) break;\r\n          }\r\n          observer.next(lockedInfo);\r\n        } else {\r\n          observer.next(null);\r\n        }\r\n        observer.complete();\r\n      }, () => {\r\n        observer.next(null);\r\n        observer.complete();\r\n      });\r\n    });\r\n  }\r\n\r\n  /**\r\n   * 获取当前登录用户的工厂锁库信息\r\n   */\r\n  enableInventoryOperationAfterFactoryLocked(): Observable<boolean> {\r\n    return new Observable((observer) => {\r\n      const queryDto = MaterialInventoryLockConfigQueryDto.create();\r\n      queryDto.LockType = 'Factory';\r\n      queryDto.IsLocked = true;\r\n      queryDto.Mode = 8;\r\n      queryDto.FactoryCode = this.currentUser.FactoryCode;\r\n      this.GetMaterialInventoryLockConfigDatas(queryDto).subscribe(result => {\r\n        if (result.Success && result.Attach && result.Attach.length) {\r\n          if (this.afterLocked === 'forbid') {\r\n            observer.next(false);\r\n          } else {\r\n            observer.next(true);\r\n          }\r\n          const temp = result.Attach[0];\r\n          MsgHelper.ShowWarningModal(`工厂【${temp.FactoryCode}】已锁定！无法进行库存操作，锁库原因：${temp.Remark}`);\r\n        } else {\r\n          observer.next(true);\r\n        }\r\n        observer.complete();\r\n      }, () => {\r\n        observer.next(false);\r\n        observer.complete();\r\n      })\r\n    });\r\n  };\r\n\r\n  /**\r\n   *  获取锁库配置\r\n   */\r\n  GetMaterialInventoryLockConfigDatas(queryDto: MaterialInventoryLockConfigQueryDto): Observable<DataResultT<MaterialInventoryLockConfigDto[]>> {\r\n    return this.apiUrls.PostRhpWms('MaterialInventoryLockConfigWebApi', 'GetMaterialInventoryLockConfigDatas', queryDto);\r\n  }\r\n}\r\n","import { RhInventoryControlManageService } from './inventory-control-manage.service';\r\nimport { Directive, Input, ElementRef } from '@angular/core';\r\nimport { NG_ASYNC_VALIDATORS, AsyncValidator, AbstractControl, ValidationErrors } from '@angular/forms';\r\nimport { MaterialInventoryLockConfigQueryDto } from '../shared-manage-model';\r\nimport { Observable, of } from 'rxjs';\r\nimport { FormFieldNameMapped, FormFieldDisplayNameMapped } from './inventory-control-data';\r\n\r\n@Directive({\r\n  selector: '[rhInventoryControlSpecialType]',\r\n  providers: [{\r\n    provide: NG_ASYNC_VALIDATORS,\r\n    useExisting: RhInventoryControlSpecialTypeDirective,\r\n    multi: true\r\n  }]\r\n})\r\nexport class RhInventoryControlSpecialTypeDirective implements AsyncValidator {\r\n\r\n  @Input('rhInventoryControlSpecialType') lockType: 'Warehouse' | 'StorageLocation' | 'Material' | 'Factory';\r\n\r\n  fieldNameMapped = FormFieldNameMapped;\r\n\r\n  fieldDisplayNameMapped = FormFieldDisplayNameMapped;\r\n\r\n  constructor(private el: ElementRef, private operator: RhInventoryControlManageService) { }\r\n\r\n  initQueryDto() {\r\n    const dto = MaterialInventoryLockConfigQueryDto.create();\r\n    dto.IsLocked = true;\r\n    dto.LockType = this.lockType;\r\n    dto.Mode = 8;\r\n    return dto;\r\n  }\r\n\r\n  validate(control: AbstractControl): Observable<ValidationErrors | null> {\r\n    const fieldName = this.fieldNameMapped[this.lockType];\r\n    const fieldDisplayName = this.fieldDisplayNameMapped[this.lockType];\r\n    const value = control.value;\r\n    if (!value || !this.lockType || !fieldName) {\r\n      return of(null);\r\n    }\r\n    const queryDto = this.initQueryDto();\r\n    queryDto[fieldName] = value;\r\n    return new Observable((observer) => {\r\n      this.operator.GetMaterialInventoryLockConfigDatas(queryDto).subscribe(result => {\r\n        if (result.Success && result.Attach && result.Attach.length) {\r\n          observer.next({ isLocked: { errorTip: `${fieldDisplayName}【${value}】已锁定` } });\r\n        } else {\r\n          observer.next(null);\r\n        }\r\n        observer.complete();\r\n      }, () => {\r\n        observer.next(null);\r\n        observer.complete();\r\n      })\r\n    })\r\n  }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild, Output, Input, EventEmitter } from '@angular/core';\nimport {\n  DataResultT,\n  RhSelectableDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhDynamicInterfaceDto,\n  RhTableQueryOptionDto\n} from 'rh-base/model';\nimport { CustomizeBaseTableComponent, DynamicFormComponent } from 'rh-base/shared';\n\n@Component({\n  selector: 'rh-warehouse-business-conf-table',\n  templateUrl: './warehouse-business-conf-table.component.html',\n  styleUrls: ['./warehouse-business-conf-table.component.less']\n})\nexport class WarehouseBusinessConfTableComponent extends CustomizeBaseTableComponent implements OnInit {\n\n  @Input() rhName = 'WarehouseBusinessConfSelector';\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  @Input() rhSingleMode = true;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n  @Input() rhDefaultQueryDto = {} as any;\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [\n    { name: 'BusinessTypeCode', displayName: '业务类型', placeholder: '业务类型', editable: false, isExact: true, type: 'array', config: { moduleKey: 'Wms', groupKey: 'MaterialInventory', paraCode: 'WmsBusinessTypes' } },\n    { name: 'FactoryCode', displayName: '工厂代码', placeholder: '工厂代码', editable: false, isExact: true, type: 'array', config: { port: '52880', controllerName: 'FactoryLayoutWebApi', interfaceName: 'GetFactoryInfoSelectItems' } }\n  ];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [\n    { name: 'BusinessTypeCode', displayName: '业务类型代码', width: 100 },\n    { name: 'BusinessTypeName', displayName: '业务类型名称', width: 100 },\n    { name: 'ConfigMode', displayName: '配置模式', width: 100, type: 'array', config: { moduleKey: 'Wms', groupKey: 'WarehouseBusinessConfigMode', paraCode: 'WarehouseBusinessConfigMode' } },\n    { name: 'Remark', displayName: '备注', width: 100 },\n    { name: 'FactoryCode', displayName: '工厂代码', width: 100 },\n  ];\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  constructor() {\n    //\n    super();\n  }\n\n  ngOnInit(): void {\n    //\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n}\n\n","<!-- 搜索Form区域 -->\n<div class=\"search-area rh-full\">\n    <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n        <ng-template #searchTpl>\n            <rh-dynamic-form #queryForm rhName=\"{{ rhName }}Form\" [rhValue]=\"rhDefaultQueryDto\"\n                (rhInterfaceDataChange)=\"setDatas($event)\" (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                (rhOutParaChange)=\"setInitFieldDataset($event)\" [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n                [(rhFormInterface)]=\"rhInterfaceInfo\">\n            </rh-dynamic-form>\n        </ng-template>\n    </nz-alert>\n</div>\n<!-- 搜索结果Table展示区域 -->\n<div class=\"table-area\">\n    <rh-dynamic-table rhName=\"{{ rhName }}Table\" [rhTableData]=\"dataresult\" [rhTableDataloading]=\"dataLoading\"\n        [rhDefaultFieldDataset]=\"defaultTableFieldDataset\" (rhRefresh)=\"refreshDatas($event)\"\n        (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\" [rhSingleMode]=\"rhSingleMode\"></rh-dynamic-table>\n</div>","import { Component, Output, Input, ChangeDetectorRef, EventEmitter, SimpleChanges, ViewChild } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport {\n  RhDynamicFormFieldDto,\n  RhSafeAny,\n  RhDynamicCustomizeControlConfigDto,\n  RhRelatedFieldDataDto,\n  RhCustomizeEventSettingDto,\n  RhSelectableDto,\n  RhDynamicInterfaceDto\n} from 'rh-base/model';\nimport { provideValueAccessor, RhRouteHelper } from 'rh-base/core';\nimport { Router } from '@angular/router';\nimport { NzSizeLDSType } from 'ng-zorro-antd/core/types';\nimport { CustomizeBaseControlComponent, RhBaseDynamicService } from 'rh-base/shared';\nimport { WarehouseBusinessConfTableComponent } from './warehouse-business-conf-table/warehouse-business-conf-table.component';\n\n@Component({\n  selector: 'rh-warehouse-business-conf-selector',\n  templateUrl: './warehouse-business-conf-selector.component.html',\n  styleUrls: ['./warehouse-business-conf-selector.component.less'],\n  providers: [provideValueAccessor(WarehouseBusinessConfSelectorComponent)]\n})\nexport class WarehouseBusinessConfSelectorComponent extends CustomizeBaseControlComponent {\n  rhRelatedFieldData = null;\n  @ViewChild(WarehouseBusinessConfTableComponent) tableComp: WarehouseBusinessConfTableComponent;\n  @Input() rhDynamicKey = 'WarehouseBusinessConfSelector';\n  @Input() rhTitle = '选择仓库业务配置';\n  @Input() declare rhSize: NzSizeLDSType;\n  iconSetting = 'search';\n  @Input() rhSingleMode = true;\n\n  formKeyFieldName = 'BusinessTypeCode';\n  formTextFieldName = 'BusinessTypeName';\n\n  modelKeyFieldName = 'BusinessTypeCode';\n  modelTextFieldName = 'BusinessTypeName';\n\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto>();\n  /** 对应table选中的数据 */\n  rhModel: RhSelectableDto = {};\n\n  /** 动态form字段配置数据 */\n  @Input() rhFieldData: RhDynamicFormFieldDto;\n  /** 整个form的数据 */\n  @Input() declare rhData: RhSafeAny;\n  @Input() rhDefaultQueryDto = {};\n\n  /** selector input上展示的数据，一般为中文 */\n  //displayName: string;\n\n  //selectedData: RhSelectableDto;\n\n  /** 自定义组件的自定义执行函数 */\n  cb: (data: RhSafeAny, ctx: RhSafeAny) => void;\n\n  /** 该组件关联的form名称 */\n  formName: string;\n\n  url: string;\n\n  /** 设置默认搜索接口 */\n  defaultFormInterface: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'WarehouseBusinessConfWebApi',\n    interfaceName: 'GetWarehouseBusinessConfDatas'\n  };\n\n  constructor(\n    public fb: UntypedFormBuilder,\n    public cdr: ChangeDetectorRef,\n    public dynamicSer: RhBaseDynamicService,\n    public router: Router\n  ) {\n    super(cdr, dynamicSer);\n    this.url = RhRouteHelper.getRealRoute(this.router.url);\n  }\n\n  ngOnInit(): void {\n    this.rhPlaceholder = this.rhFieldData?.placeholder ? (this.rhFieldData.placeholder as any) : this.rhPlaceholder;\n    this.formName = this.rhFieldData.relatedComponentName;\n    this.setCbValue();\n  }\n\n  // 自定义表单项配置\n  ngOnChanges(changes: SimpleChanges) {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue && rhData.currentValue[this.formKeyFieldName] === null) {\n      this.resetControlValue();\n    } else {\n      this.rhModel = {};\n    }\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    if (data?.length === 1) {\n      this.selectedData = data[0];\n    } else {\n      this.selectedData = null;\n    }\n  }\n\n  getTargetDatas(code: string) {\n    if (!this.defaultFormInterface) {\n      return;\n    }\n    const queryDto = {};\n    queryDto[this.modelKeyFieldName] = `$${code}`;\n    this.getTargetDatasVisHttpHandler(this.defaultFormInterface, queryDto, this.rhFieldData);\n  }\n\n  //#region customize selector interface区域\n  confirmSelect() {\n    this.rhModel = this.selectedData;\n    this.rhModelChange.emit(this.rhModel);\n    this.value = this.rhModel[this.modelKeyFieldName];\n    this.displayName = this.rhModel[this.modelTextFieldName];\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // 执行对应控件定义的代码\n    if (this.cb) {\n      this.cb(this.rhData, this.rhModel);\n    }\n    this.setFormDataViaRelatedDatas();\n    // 执行form的相关字段赋值操作\n    this.triggerRelatedForm();\n    this.closeDataModal();\n  }\n\n  resetControlValue() {\n    this.displayName = null;\n    // 重置form对应数据对象\n    this.rhData[this.formKeyFieldName] = null;\n    this.rhData[this.formTextFieldName] = null;\n    const relatedDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedModelDatas;\n    if (relatedDatas?.length) {\n      relatedDatas.forEach((ele) => {\n        this.rhData[ele.mappedName] = null;\n      });\n    }\n    this.rhModel = null;\n  }\n\n  setCbValue() {\n    const cbString = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.cb;\n    if (cbString) {\n      const fn = Function(`return ${cbString}`);\n      if (fn) {\n        this.cb = fn();\n      } else {\n        this.cb = this.setFormData;\n      }\n    } else {\n      // 当没有配置回调函数时，执行默认的回调函数\n      this.cb = this.setFormData;\n    }\n  }\n\n  /** 设置form对应的数据对象的值\n   * @param data form对应的数据对象\n   * @params 设置或者对应table选择的数据\n   */\n  setFormData(data: RhSafeAny, ctx: RhSelectableDto) {\n    data[this.formKeyFieldName] = ctx[this.modelKeyFieldName];\n    data[this.formTextFieldName] = ctx[this.modelTextFieldName];\n  }\n\n  setFormDataViaRelatedDatas() {\n    const relatedDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedModelDatas;\n    if (relatedDatas?.length) {\n      relatedDatas.forEach((ele) => {\n        this.rhData[ele.mappedName] = this.rhModel[ele.sourceName];\n      });\n    }\n  }\n\n  triggerRelatedForm() {\n    const tempDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedFieldDatas;\n    const relatedDatas: RhRelatedFieldDataDto[] =\n      tempDatas && tempDatas.length\n        ? tempDatas\n        : [\n            { sourceName: this.modelKeyFieldName, mappedName: this.formKeyFieldName },\n            { sourceName: this.modelTextFieldName, mappedName: this.formTextFieldName }\n          ];\n    const data: RhCustomizeEventSettingDto = {\n      id: `${this.url}_${this.formName}`,\n      eventType: null,\n      options: null,\n      value: this.rhModel,\n      relatedFieldDatas: relatedDatas\n    };\n    this.dynamicSer.formCustomizeEventTrigger(data);\n  }\n  //#endregion customize selector interface区域结束\n}\n","<nz-input-group [nzSize]=\"rhSize\" [nzSuffix]=\"suffixIconSearch\" [nzAddOnAfter]=\"addOnAfter\">\n  <input type=\"text\" nz-input [ngModel]=\"displayName\" [placeholder]=\"rhPlaceholder\" readonly=\"readonly\" />\n</nz-input-group>\n<ng-template #suffixIconSearch>\n  <a *ngIf=\"displayName && !rhDisabled\" class=\"link-suffix\" (click)=\"clearInputInfo()\">\n    <i nz-icon nzType=\"close-circle\"></i>\n  </a>\n</ng-template>\n\n<ng-template #addOnAfter>\n  <button nz-button nzType=\"link\" type=\"button\" nzSize=\"small\">\n    <a (click)=\"openDataModal($event)\">\n      <i nz-icon [nzType]=\"iconSetting\"></i>\n    </a>\n  </button>\n</ng-template>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"rhTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedData\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-warehouse-business-conf-table\n        [rhModel]=\"rhModel\"\n        (rhModelChange)=\"onSelectModal($event)\"\n        [rhInterfaceInfo]=\"defaultFormInterface\"\n        [rhDefaultQueryDto]=\"rhDefaultQueryDto\"\n      >\n      </rh-warehouse-business-conf-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { Injectable } from '@angular/core';\nimport { RhApiUrlsService, RhPortType, RhPortLocalFieldType } from 'rh-base/core';\nimport { Observable } from 'rxjs';\nimport { OpResult, DataResultT } from 'rh-base/model';\nimport {\n  AttachFileInfoDto,\n  AttachFileInfoQueryDto,\n  UploadAttachFilesDto,\n  DataImportDto,\n  OtherInImportDto,\n  OtherOutImportDto,\n  MaterialInventoryParameter\n} from './shared-manage-model';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class RhSharedManageService {\n  constructor(private apiUrls: RhApiUrlsService) {}\n\n  // 最早选择时间 限制\n  disabledStartDate = (startValue: Date): boolean => {\n    return startValue.getTime() < new Date(new Date().toLocaleDateString()).getTime();\n  };\n\n  downAttachFileInfoDatas(file: AttachFileInfoDto) {\n    const url = this.apiUrls.GetApiOperateUrl(\n      RhPortType.mdp,\n      'AttachFileInfoWebApi',\n      `DownloadAttachFile?attachFileInfoCode=${file.AttachFileInfoCode}`,\n      RhPortLocalFieldType.mdp\n    );\n    const a = document.createElement('a');\n    a.href = url;\n    a.target = '_blank';\n    a.id = 'file_download';\n    document.body.appendChild(a);\n    const alink = document.getElementById('file_download');\n    alink.click();\n    alink.parentNode.removeChild(a);\n  }\n\n  /**\n   *  获取附件信息\n   */\n  GetAttachFileInfoDatas(queryDto: AttachFileInfoQueryDto): Observable<DataResultT<AttachFileInfoDto[]>> {\n    return this.apiUrls.PostMdp('AttachFileInfoWebApi', 'GetAttachFileInfoDatas', queryDto);\n  }\n\n  /**\n   *  附件上传\n   */\n  UploadAttachFiles(dto: UploadAttachFilesDto): Observable<OpResult> {\n    return this.apiUrls.PostMdp('AttachFileInfoWebApi', 'UploadAttachFiles', dto);\n  }\n\n  /**\n   *  移除附件数据\n   */\n  RemoveAttachFileInfoDatas(dtos: AttachFileInfoDto[]): Observable<OpResult> {\n    return this.apiUrls.PostMdp('AttachFileInfoWebApi', 'RemoveAttachFileInfoDatas', dtos);\n  }\n\n  /**\n   *  数据导入\n   */\n  DataImport(dto: DataImportDto): Observable<DataResultT<Object[]>> {\n    return this.apiUrls.PostRhpWms('DataImportExportApi', 'DataImport', dto);\n  }\n\n  /**\n   *  通过数据导入创建杂项入库单\n   */\n  CreateOtherInOrderByDataImport(dtos: OtherInImportDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('InOrderWebApi', 'CreateOtherInOrderByDataImport', dtos);\n  }\n\n  /**\n   *  按照导入数据创建杂项出库表\n   */\n  CreateOtherOutOrderByDataImport(dtos: OtherOutImportDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OutOrderWebApi', 'CreateOtherOutOrderByDataImport', dtos);\n  }\n\n  /**\n   *  保存库存导入信息\n   */\n  StoreMaterialDataImport(dtos: MaterialInventoryParameter[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('MaterialInventoryWebApi', 'StoreMaterialDataImport', dtos);\n  }\n\n  /**\n   *  创建物料库存\n   */\n  CreateInitializeInventory(MaterialInventoryParameter: MaterialInventoryParameter[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('MaterialInventoryWebApi', 'CreateInitializeInventory', MaterialInventoryParameter);\n  }\n}\n","import { UploadAttachFilesDto } from './../../shared-manage-model';\nimport { RhSharedManageService } from './../../shared-manage.service';\nimport { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { NzSizeLDSType } from 'ng-zorro-antd/core/types';\nimport { NzButtonType } from 'ng-zorro-antd/button';\nimport { NzUploadFile } from 'ng-zorro-antd/upload';\nimport { UploadFileOption, RhSafeAny, RhBaseDto } from 'rh-base/model';\nimport { Observable, Observer } from 'rxjs';\nimport { MsgHelper } from 'rh-base/core';\n\n@Component({\n  selector: 'rh-attach-file-upload',\n  templateUrl: './attach-file-upload.component.html',\n  styleUrls: ['./attach-file-upload.component.less'],\n})\nexport class RhAttachFileUploadComponent implements OnInit {\n  @Input() rhOrder: RhBaseDto;\n  @Input() rhOrderType: string;\n  /** 导入button的type */\n  @Input() rhContent = '附件上传';\n  /** button类型 */\n  @Input() rhType: NzButtonType = 'default';\n  /** 导入button的size */\n  @Input() rhSize: NzSizeLDSType = 'small';\n  @Input() rhTitle = '附件上传';\n  @Output() rhSuccess = new EventEmitter();\n  @Output() rhFail = new EventEmitter();\n\n  isShowUploadModal = false;\n  isDirectoryUploadEnable = false;\n\n  uploading = false;\n  /** 上传的文件列表 */\n  uploadFileList: NzUploadFile[] = [];\n  /** 上传的文件数据列表 */\n  uploadDatas: UploadFileOption[] = [];\n\n  constructor(private operator: RhSharedManageService) { }\n\n  ngOnInit(): void { }\n\n  closeUploadFileModal() {\n    this.isShowUploadModal = false;\n    this.uploadFileList = [];\n    this.uploadDatas = [];\n  }\n\n  openUploadFileModal() {\n    this.isShowUploadModal = true;\n  }\n\n  beforeUpload = (file: NzUploadFile) => {\n    return new Observable((observer: Observer<boolean>) => {\n      const reader = new FileReader();\n      reader.readAsDataURL(file as RhSafeAny);\n      reader.onload = () => {\n        const dto = UploadFileOption.create();\n        dto.FileStream = reader.result as RhSafeAny;\n        dto.FileName = file.name;\n        const list = dto.FileName.split('.');\n        dto.FileExtensionName = list.length === 2 ? list[1] : null;\n        this.uploadDatas = this.uploadDatas.concat(dto);\n        this.uploadFileList = this.uploadFileList.concat(file);\n        observer.next(false);\n        observer.complete();\n      };\n      reader.onerror = (e) => {\n        MsgHelper.ShowWarningModal(`读取文件失败！${e}`);\n        observer.next(false);\n        observer.complete();\n      };\n    });\n  };\n\n  removeFile = (file: NzUploadFile) => {\n    const itemIndex = this.uploadDatas.findIndex(\n      (data) => data.FileName === file.name\n    );\n    if (itemIndex !== -1) {\n      this.uploadDatas.splice(itemIndex, 1);\n    }\n    return true;\n  };\n\n  handleUpload() {\n    this.uploading = true;\n    const dto = UploadAttachFilesDto.create();\n    dto.OrderCode = this.rhOrder.OrderId;\n    dto.OrderType = this.rhOrderType;\n    dto.UploadFileOptions = this.uploadDatas;\n    this.operator.UploadAttachFiles(dto).subscribe(\n      (result) => {\n        if (result && result.Success) {\n          MsgHelper.ShowSuccessMessage('附件数据上传成功！');\n          this.closeUploadFileModal();\n          this.rhSuccess.emit();\n        } else {\n          MsgHelper.ShowWarningModal(`附件数据上传失败！${result.Message}`);\n          this.rhFail.emit();\n        }\n        this.uploading = false;\n      },\n      () => (this.uploading = false)\n    );\n  }\n}\n","<!-- 文档上传对话框 -->\n<button\n  style=\"margin-bottom: 10px\"\n  nz-button\n  type=\"button\"\n  (click)=\"openUploadFileModal()\"\n  [nzType]=\"rhType\"\n  title=\"附件上传\"\n  [nzSize]=\"rhSize\"\n>\n  <i nz-icon nzType=\"upload\" nzTheme=\"outline\"></i>\n  {{ rhContent }}\n</button>\n<nz-modal\n  [nzVisible]=\"isShowUploadModal\"\n  (nzOnCancel)=\"closeUploadFileModal()\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  [nzMaskClosable]=\"false\"\n  [nzTitle]=\"rhTitle\"\n>\n  <div *nzModalContent style=\"padding: 0px 20px\">\n    <nz-upload\n      nzType=\"drag\"\n      [(nzFileList)]=\"uploadFileList\"\n      [nzBeforeUpload]=\"beforeUpload\"\n      [nzRemove]=\"removeFile\"\n      [nzMultiple]=\"false\"\n      nzListType=\"text\"\n      [nzDirectory]=\"isDirectoryUploadEnable\"\n    >\n      <p class=\"ant-upload-drag-icon\">\n        <i nz-icon nzType=\"inbox\"></i>\n      </p>\n      <p *ngIf=\"!isDirectoryUploadEnable\" class=\"ant-upload-text\">\n        点击选择文件或拖拽文件到此区域\n      </p>\n      <p *ngIf=\"isDirectoryUploadEnable\" class=\"ant-upload-text\">\n        点击选择文件或拖拽文件到此区域\n      </p>\n      <p *ngIf=\"!isDirectoryUploadEnable\" class=\"ant-upload-hint\">\n        支持多文件上传\n      </p>\n      <p *ngIf=\"isDirectoryUploadEnable\" class=\"ant-upload-hint\">\n        请选择一个文件夹\n      </p>\n    </nz-upload>\n    <div style=\"text-align: center\">\n      <button\n        nz-button\n        [nzType]=\"'primary'\"\n        [nzLoading]=\"uploading\"\n        (click)=\"handleUpload()\"\n        [disabled]=\"uploadFileList.length == 0\"\n        style=\"margin-top: 16px\"\n      >\n        {{ uploading ? \"上传中...\" : \"点击上传\" }}\n      </button>\n    </div>\n  </div>\n</nz-modal>\n","import { AttachFileInfoDto, AttachFileInfoQueryDto } from './../../shared-manage-model';\nimport { RhSharedManageService } from './../../shared-manage.service';\nimport { RhBaseDto } from 'rh-base/model';\nimport { Component, OnInit, Input, SimpleChanges } from '@angular/core';\nimport { MsgHelper } from 'rh-base/core';\n\n@Component({\n  selector: 'rh-attach-file-manage',\n  templateUrl: './attach-file-manage.component.html',\n  styleUrls: ['./attach-file-manage.component.less'],\n})\nexport class RhAttachFileManageComponent implements OnInit {\n  @Input() rhOrder: RhBaseDto;\n  @Input() rhEnableAttachFileHandle = false;\n  @Input() rhBusinessType: string;\n\n  /** 入库单附件 */\n  attachFileDataset: AttachFileInfoDto[] = [];\n  fileAreaLoading = false;\n\n  constructor(private inOutStockManageSer: RhSharedManageService) {}\n\n  ngOnInit(): void {}\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhOrder } = changes;\n    if (rhOrder && rhOrder.currentValue && this.rhOrder.OrderId) {\n      this.getAttachFileInfoDatas();\n    }\n  }\n\n  /** 获取入库单附件 */\n  getAttachFileInfoDatas() {\n    const queryDto = AttachFileInfoQueryDto.create();\n    queryDto.OrderCode = this.rhOrder.OrderId;\n    this.fileAreaLoading = true;\n    this.inOutStockManageSer.GetAttachFileInfoDatas(queryDto).subscribe(\n      (result) => {\n        if (result.Success) {\n          this.attachFileDataset = result.Attach;\n        } else {\n          this.attachFileDataset = [];\n          // 不用报错\n          // MsgHelper.ShowWarningMessage(`获取附件信息失败！${result.Message}`);\n        }\n        this.fileAreaLoading = false;\n      },\n      () => {\n        this.attachFileDataset = [];\n        this.fileAreaLoading = false;\n      }\n    );\n  }\n\n  /** 下载入库单附件 */\n  downAttachFileInfoDatas(file: AttachFileInfoDto) {\n    this.inOutStockManageSer.downAttachFileInfoDatas(file);\n  }\n\n  /** 移除附件数据 */\n  removeAttachFileInfoDatas(file: AttachFileInfoDto) {\n    MsgHelper.ShowDeleteConfirm('删除后数据无法恢复，是否确定？', () => {\n      this.fileAreaLoading = true;\n      this.inOutStockManageSer.RemoveAttachFileInfoDatas([file]).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('移除附件数据成功！');\n            this.getAttachFileInfoDatas();\n          } else {\n            MsgHelper.ShowWarningMessage(`移除附件数据失败！${result.Message}`);\n          }\n          this.fileAreaLoading = false;\n        },\n        () => {\n          this.fileAreaLoading = false;\n        }\n      );\n    });\n  }\n}\n","<nz-spin [nzSpinning]=\"fileAreaLoading\">\n  <rh-attach-file-upload\n    [rhOrder]=\"rhOrder\"\n    [rhOrderType]=\"rhBusinessType\"\n    (rhSuccess)=\"getAttachFileInfoDatas()\"\n  ></rh-attach-file-upload>\n  <div nz-row nzGutter=\"8\">\n    <ng-container *ngFor=\"let file of attachFileDataset\">\n      <span\n        nz-col\n        nzSpan=\"5\"\n        class=\"attach-file-container\"\n        [title]=\"file.FileName\"\n      >\n        <i nz-icon nzType=\"file\" nzTheme=\"outline\"></i>\n        <a\n          (click)=\"downAttachFileInfoDatas(file)\"\n          style=\"text-decoration: underline\"\n          >{{ file.FileName }}\n          </a>\n      </span>\n      <span\n        nz-col\n        nzSpan=\"1\"\n        class=\"close-icon\"\n        (click)=\"removeAttachFileInfoDatas(file)\"\n      >\n        <i\n          nz-icon\n          nzType=\"delete\"\n          nzTheme=\"outline\"\n          title=\"删除\"\n        ></i>\n      </span>\n    </ng-container>\n  </div>\n</nz-spin>\n","/** 盘点方案查询数据传输对象 */\nexport class InventoryVerificationSchemeQueryDto {\n  constructor(\n    /** 盘点方案代码 */\n    public SchemeCode: string,\n    /** 盘点方案名称 */\n    public SchemeName: string,\n    /** 盘点年份 */\n    public Year: number,\n    /** 审核人代码 */\n    public AuditorCode: string,\n    /** 审核人名称 */\n    public AuditorName: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 盘点方案类型（月度、年中、年末） */\n    public SchemeType: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 当前状态（启用禁用） */\n    public OrderStatus: string,\n    /** 开始日期 */\n    public StartDate: Date,\n    /** 开始开始日期 */\n    public StartStartDate: Date,\n    /** 结束开始日期 */\n    public EndStartDate: Date,\n    /** 开始日期区间 */\n    public StartDateRange: Date,\n    /** 结束日期 */\n    public EndDate: Date,\n    /** 开始结束日期 */\n    public StartEndDate: Date,\n    /** 结束结束日期 */\n    public EndEndDate: Date,\n    /** 结束日期区间 */\n    public EndDateRange: Date,\n    /** 制单人代号 */\n    public CreatorCode: string,\n    /** 制单人代号 */\n    public CreatorName: string,\n    /** 制单时间 */\n    public Createtime: Date,\n    /** 开始制单时间 */\n    public StartCreatetime: Date,\n    /** 结束制单时间 */\n    public EndCreatetime: Date,\n    /** 备注 */\n    public Remark: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): InventoryVerificationSchemeQueryDto {\n    return new InventoryVerificationSchemeQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 盘点方案表 */\nexport class InventoryVerificationSchemeDto {\n  constructor(\n    /** 盘点方案代码 */\n    public SchemeCode: string,\n    /** 盘点方案名称 */\n    public SchemeName: string,\n    /** 盘点年份 */\n    public Year: number,\n    /** 审核人代码 */\n    public AuditorCode: string,\n    /** 审核人名称 */\n    public AuditorName: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 盘点方案类型（月度、年中、年末） */\n    public SchemeType: string,\n    /** 当前状态 */\n    public OrderStatus: string,\n    /** 开始日期 */\n    public StartDate: Date,\n    /** 结束日期 */\n    public EndDate: Date,\n    /** 制单人代号 */\n    public CreatorCode: string,\n    /** 制单人代号 */\n    public CreatorName: string,\n    /** 制单时间 */\n    public Createtime: Date,\n    /** 备注 */\n    public Remark: string,\n    /** */\n    public CreatorUserId: number,\n    /** */\n    public CreatorUserName: string,\n    /** */\n    public CreationTime: Date,\n    /** */\n    public LastModifierUserId: number,\n    /** */\n    public LastModifierUserName: string,\n    /** */\n    public LastModificationTime: Date,\n    /** */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): InventoryVerificationSchemeDto {\n    return new InventoryVerificationSchemeDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 盘点单表头查询数据传输对象 */\nexport class InventoryVerificationOrderMasterQueryDto {\n  OrderCode: any;\n  constructor(\n    /** 盘点单号 */\n    public OrderId: string,\n    /** 盘点类型(盲盘，明盘) */\n    public VerificationType: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 当前状态 */\n    public OrderStatus: string,\n    /** 盘点方案代码 */\n    public SchemeCode: string,\n    /** 盘点方案名称 */\n    public SchemeName: string,\n    /** 开始日期 */\n    public StartDate: Date,\n    /** 开始开始日期 */\n    public StartStartDate: Date,\n    /** 结束开始日期 */\n    public EndStartDate: Date,\n    /** 开始日期区间 */\n    public StartDateRange: Date,\n    /** 结束日期 */\n    public EndDate: Date,\n    /** 开始结束日期 */\n    public StartEndDate: Date,\n    /** 结束结束日期 */\n    public EndEndDate: Date,\n    /** 结束日期区间 */\n    public EndDateRange: Date,\n    /** 制单人代号 */\n    public CreatorCode: string,\n    /** 制单人代号 */\n    public CreatorName: string,\n    /** 制单时间 */\n    public Createtime: Date,\n    /** 开始制单时间 */\n    public StartCreatetime: Date,\n    /** 结束制单时间 */\n    public EndCreatetime: Date,\n    /** 审核人代码 */\n    public AuditorCode: string,\n    /** 审核人名称 */\n    public AuditorName: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 开始审核日期 */\n    public StartAuditDate: Date,\n    /** 结束审核日期 */\n    public EndAuditDate: Date,\n    /** 审核日期区间 */\n    public AuditDateRange: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 开始审核时间 */\n    public StartAuditTime: Date,\n    /** 结束审核时间 */\n    public EndAuditTime: Date,\n    /** 审核时间区间 */\n    public AuditTimeRange: Date,\n    /** 盘点人代码 */\n    public InventoryVerificaterCode: string,\n    /** 盘点人名称 */\n    public InventoryVerificaterName: string,\n    /** 备注 */\n    public Remark: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): InventoryVerificationOrderMasterQueryDto {\n    return new InventoryVerificationOrderMasterQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 盘点单表头表 */\nexport class InventoryVerificationOrderMasterDto {\n  OrderCode: any;\n  constructor(\n    /** 盘点单号 */\n    public OrderId: string,\n    /** 盘点类型(盲盘，明盘) */\n    public VerificationType: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 当前状态 */\n    public OrderStatus: string,\n    /** 盘点方案代码 */\n    public SchemeCode: string,\n    /** 盘点方案名称 */\n    public SchemeName: string,\n    /** 开始日期 */\n    public StartDate: Date,\n    /** 结束日期 */\n    public EndDate: Date,\n    /** 制单人代号 */\n    public CreatorCode: string,\n    /** 制单人代号 */\n    public CreatorName: string,\n    /** 制单时间 */\n    public Createtime: Date,\n    /** 审核人代码 */\n    public AuditorCode: string,\n    /** 审核人名称 */\n    public AuditorName: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 盘点人代码 */\n    public InventoryVerificaterCode: string,\n    /** 盘点人名称 */\n    public InventoryVerificaterName: string,\n    /** 备注 */\n    public Remark: string,\n    /** */\n    public CreatorUserId: number,\n    /** */\n    public CreatorUserName: string,\n    /** */\n    public CreationTime: Date,\n    /** */\n    public LastModifierUserId: number,\n    /** */\n    public LastModifierUserName: string,\n    /** */\n    public LastModificationTime: Date,\n    /** */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): InventoryVerificationOrderMasterDto {\n    return new InventoryVerificationOrderMasterDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 盘点单明细表 */\nexport class InventoryVerificationOrderDetailDto {\n  OrderCode: any;\n  PrimaryKey: any;\n  constructor(\n    /** 盘点结果类型（盘盈、盘亏） */\n    public InvResultType: string,\n    /** 任务单号 */\n    public OrderId: string,\n    /** 盘点方案代码 */\n    public SchemeCode: string,\n    /** 盘点方案名称 */\n    public SchemeName: string,\n    /** SN码 */\n    public SN: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 货架代码 */\n    public WarehouseShelfCode: string,\n    /** 货架名称 */\n    public WarehouseShelfName: string,\n    /** 库区代码 */\n    public WarehouseAreaCode: string,\n    /** 库区名称 */\n    public WarehouseAreaName: string,\n    /** 库位代码 */\n    public StorageLocationCode: string,\n    /** 库位名称 */\n    public StorageLocationName: string,\n    /** 单位 */\n    public MeasureUnit: string,\n    /** 辅助单位 */\n    public MeasureAuxUnit: string,\n    /** 批次号 */\n    public LotNum: string,\n    /** 差异数量 */\n    public DiffQty: number,\n    /** 盘点数量 */\n    public AvailableQty: number,\n    /** 盘点过程 */\n    public InventoryProcess: string,\n    /** 库存 */\n    public InventoryQty: number,\n    /** 备注 */\n    public Remark: string,\n    /**  */\n    public CreatorUserId: number,\n    /**  */\n    public CreatorUserName: string,\n    /**  */\n    public CreationTime: Date,\n    /**  */\n    public LastModifierUserId: number,\n    /**  */\n    public LastModifierUserName: string,\n    /**  */\n    public LastModificationTime: Date,\n    /**  */\n    public Id: number,\n    /** 生产日期 */\n    // public ProductionTime:Date,\n    /** 生产日期 */\n    public ProductionDate: Date,\n    /**  */\n    public OpSign: number,\n    /** 是否额外物料 */\n    public IsExtraMaterial: boolean\n  ) {}\n  static create(): InventoryVerificationOrderDetailDto {\n    return new InventoryVerificationOrderDetailDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n/** 盘点单明细查询数据传输对象 */\nexport class InventoryVerificationOrderDetailQueryDto {\n  OrderCode: any;\n  constructor(\n    /** 是否已经盘点 */\n    public IsVerified: boolean,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 任务单号 */\n    public OrderId: string,\n    /** 盘点方案代码 */\n    public SchemeCode: string,\n    /** 盘点方案名称 */\n    public SchemeName: string,\n    /** SN码 */\n    public SN: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 货架代码 */\n    public WarehouseShelfCode: string,\n    /** 货架名称 */\n    public WarehouseShelfName: string,\n    /** 库区代码 */\n    public WarehouseAreaCode: string,\n    /** 库区名称 */\n    public WarehouseAreaName: string,\n    /** 库位代码 */\n    public StorageLocationCode: string,\n    /** 库位名称 */\n    public StorageLocationName: string,\n    /** 盘点过程 */\n    public InventoryProcess: string,\n    /** 单位 */\n    public MeasureUnit: string,\n    /** 辅助单位 */\n    public MeasureAuxUnit: string,\n    /** 批次号 */\n    public LotNum: string,\n    /** 库存 */\n    public InventoryQty: number,\n    /** 备注 */\n    public Remark: string,\n    /** 是否额外物料 */\n    public IsExtraMaterial: boolean,\n    /** 盘点结果类型（盘盈、盘亏） */\n    public InvResultType: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): InventoryVerificationOrderDetailQueryDto {\n    return new InventoryVerificationOrderDetailQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 盘盈盘亏明细表 */\nexport class InventoryVerificationResultDetailDto {\n  constructor(\n    /** 任务单号 */\n    public OrderId: string,\n    /** 盘点结果类型（盘盈、盘亏） */\n    public InvResultType: string,\n    /** 差异数量 */\n    public DiffQty: number,\n    /** 盘点方案代码 */\n    public SchemeCode: string,\n    /** 盘点方案名称 */\n    public SchemeName: string,\n    /** SN码 */\n    public SN: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 货架代码 */\n    public WarehouseShelfCode: string,\n    /** 货架名称 */\n    public WarehouseShelfName: string,\n    /** 库区代码 */\n    public WarehouseAreaCode: string,\n    /** 库区名称 */\n    public WarehouseAreaName: string,\n    /** 库位代码 */\n    public StorageLocationCode: string,\n    /** 库位名称 */\n    public StorageLocationName: string,\n    /** 单位 */\n    public MeasureUnit: string,\n    /** 辅助单位 */\n    public MeasureAuxUnit: string,\n    /** 批次号 */\n    public LotNum: string,\n    /** 库存 */\n    public InventoryQty: number,\n    /** 确认数量 */\n    public AvailableQty: number,\n    /** 备注 */\n    public Remark: string,\n    /** */\n    public CreatorUserId: number,\n    /** */\n    public CreatorUserName: string,\n    /** */\n    public CreationTime: Date,\n    /** */\n    public LastModifierUserId: number,\n    /** */\n    public LastModifierUserName: string,\n    /** */\n    public LastModificationTime: Date,\n    /** */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): InventoryVerificationResultDetailDto {\n    return new InventoryVerificationResultDetailDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 盘盈盘亏明细查询数据传输对象 */\nexport class InventoryVerificationResultDetailQueryDto {\n  constructor(\n    /** 任务单号 */\n    public OrderId: string,\n    /** 盘点结果类型（盘盈、盘亏） */\n    public InvResultType: string,\n    /** 差异数量 */\n    public DiffQty: number,\n    /** 盘点方案代码 */\n    public SchemeCode: string,\n    /** 盘点方案名称 */\n    public SchemeName: string,\n    /** SN码 */\n    public SN: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 单位 */\n    public MeasureUnit: string,\n    /** 辅助单位 */\n    public MeasureAuxUnit: string,\n    /** 批次号 */\n    public LotNum: string,\n    /** 库存 */\n    public InventoryQty: number,\n    /** 确认数量 */\n    public AvailableQty: number,\n    /** 备注 */\n    public Remark: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): InventoryVerificationResultDetailQueryDto {\n    return new InventoryVerificationResultDetailQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 盘盈盘亏明细查询数据传输对象 */\nexport class InventoryVerificationResultQueryDto {\n  OrderCode: any;\n  constructor(\n    /** 任务单号 */\n    public OrderId: string,\n    /** 盘点结果类型（盘盈、盘亏） */\n    public InvResultType: string,\n    /** 差异数量 */\n    public DiffQty: number,\n    /** 盘点方案代码 */\n    public SchemeCode: string,\n    /** 盘点方案名称 */\n    public SchemeName: string,\n    /** SN码 */\n    public SN: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 单位 */\n    public MeasureUnit: string,\n    /** 辅助单位 */\n    public MeasureAuxUnit: string,\n    /** 批次号 */\n    public LotNum: string,\n    /** 库存 */\n    public InventoryQty: number,\n    /** 确认数量 */\n    public AvailableQty: number,\n    /** 备注 */\n    public Remark: string,\n    /** */\n    public Id: number,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): InventoryVerificationResultQueryDto {\n    return new InventoryVerificationResultQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 盘盈盘亏明细表 */\nexport class InventoryVerificationResultDto {\n  constructor(\n    /** 任务单号 */\n    public OrderId: string,\n    /** 盘点结果类型（盘盈、盘亏） */\n    public InvResultType: string,\n    /** 差异数量 */\n    public DiffQty: number,\n    /** 盘点方案代码 */\n    public SchemeCode: string,\n    /** 盘点方案名称 */\n    public SchemeName: string,\n    /** SN码 */\n    public SN: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 货架代码 */\n    public WarehouseShelfCode: string,\n    /** 货架名称 */\n    public WarehouseShelfName: string,\n    /** 库区代码 */\n    public WarehouseAreaCode: string,\n    /** 库区名称 */\n    public WarehouseAreaName: string,\n    /** 库位代码 */\n    public StorageLocationCode: string,\n    /** 库位名称 */\n    public StorageLocationName: string,\n    /** 单位 */\n    public MeasureUnit: string,\n    /** 辅助单位 */\n    public MeasureAuxUnit: string,\n    /** 批次号 */\n    public LotNum: string,\n    /** 库存 */\n    public InventoryQty: number,\n    /** 确认数量 */\n    public AvailableQty: number,\n    /** 备注 */\n    public Remark: string,\n    /** */\n    public CreatorUserId: number,\n    /** */\n    public CreatorUserName: string,\n    /** */\n    public CreationTime: Date,\n    /** */\n    public LastModifierUserId: number,\n    /** */\n    public LastModifierUserName: string,\n    /** */\n    public LastModificationTime: Date,\n    /** */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): InventoryVerificationResultDto {\n    return new InventoryVerificationResultDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 出入库单明细 */\nexport class InOutOrderDetailQueryDtoByWarehouse {\n  constructor(\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** */\n    public StorageLocationCode: string,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 出入库单号 */\n    public OrderId: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 批次号 */\n    public LotNum: string,\n    /** 生产日期 */\n    public ProductionDate: Date,\n    /** 是否已完成 */\n    public IsCompleted: boolean,\n    /** 条码 */\n    public SN: string,\n    /** 办理数量 */\n    public TransactQty: number,\n    /** 备注 */\n    public Remark: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 自增键 */\n    public Id: number,\n    /** 入库仓库代码 */\n    public InWarehouseCode_Or1: string,\n    /** 出库仓库代码 */\n    public OutWarehouseCode_Or1: string,\n    /** 出库库位代码 */\n    public OutStorageLocationCode_Or2: string,\n    /** 入库库位代码 */\n    public InStorageLocationCode_Or2: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): InOutOrderDetailQueryDtoByWarehouse {\n    return new InOutOrderDetailQueryDtoByWarehouse(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 出入库单明细 */\nexport class InOutOrderDetailDto {\n  constructor(\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 本次接收数量 */\n    public GoodQty: number,\n    /** 供应商代码 */\n    public PoSupplierId: string,\n    /** 供应商（英） */\n    public SupplierCode: string,\n    /** 供应商（中） */\n    public SupplierName: string,\n    /** 送货单号 */\n    public DeliveryOrderNo: string,\n    /** ECCN码 */\n    public Eccn: string,\n    /** ECCN是否可用 */\n    public IsEccnValid: boolean,\n    /** 是否受EAR管辖(25%) */\n    public EarFlgDm25: number,\n    /** 是否受EAR管辖(10%) */\n    public EarFlgDm10: number,\n    /** GTS占比(25%) */\n    public DeminimisDm25: number,\n    /** GTS占比(10%) */\n    public DeminimisDm10: number,\n    /** 产品状态 */\n    public ProductState: string,\n    /** 规格型号 */\n    public BrandStyleEn: string,\n    /** 拆分状态 */\n    public SplitStateName: string,\n    /** 验收单号 */\n    public InspectOrderCode: string,\n    /** 入库日期 */\n    public CompletedTime: Date,\n    /** 报检提交时间 */\n    public ReportInspectTime: Date,\n    /** 报检提交人代码 */\n    public ReportInspectorCode: string,\n    /** 报检提交人名称 */\n    public ReportInspectorName: string,\n    /** 质检人代码 */\n    public InspectorCode: string,\n    /** 质检人名称 */\n    public InspectorName: string,\n    /** 辅助数量 */\n    public MeasureAuxQty: number,\n    /** 辅助单位 */\n    public MeasureAuxUnit: string,\n    /** 出入库单号 */\n    public OrderId: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 生产日期 */\n    public ProductionDate: Date,\n    /** 出库仓库代码 */\n    public OutWarehouseCode: string,\n    /** 出库仓库名称 */\n    public OutWarehouseName: string,\n    /** 出库库区代码 */\n    public OutWarehouseAreaCode: string,\n    /** 出库库区名称 */\n    public OutWarehouseAreaName: string,\n    /** 出库货架代码 */\n    public OutWarehouseShelfCode: string,\n    /** 出库货架名称 */\n    public OutWarehouseShelfName: string,\n    /** 出库库位代码 */\n    public OutStorageLocationCode: string,\n    /** 出库库位名称 */\n    public OutStorageLocationName: string,\n    /** 入库仓库代码 */\n    public InWarehouseCode: string,\n    /** 入库仓库名称 */\n    public InWarehouseName: string,\n    /** 入库库区代码 */\n    public InWarehouseAreaCode: string,\n    /** 入库库区名称 */\n    public InWarehouseAreaName: string,\n    /** 入库货架代码 */\n    public InWarehouseShelfCode: string,\n    /** 入库货架名称 */\n    public InWarehouseShelfName: string,\n    /** 入库库位代码 */\n    public InStorageLocationCode: string,\n    /** 入库库位名称 */\n    public InStorageLocationName: string,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 保质期单位 */\n    public ExpiryUnit: string,\n    /** 有效期 */\n    public ExpirationDate: Date,\n    /** 发货地址 */\n    public ShippingAddress: string,\n    /** 批次号 */\n    public LotNum: string,\n    /** 条码 */\n    public SN: string,\n    /** 是否已完成 */\n    public IsCompleted: boolean,\n    /** 办理数量 */\n    public TransactQty: number,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number,\n    /** 是否黑名单 */\n    public IsBlackList: boolean,\n    /** 办理人代码 */\n    public TransactorCode: string,\n    /** 办理人名称 */\n    public TransactorName: string,\n    /** 承运商 */\n    public Carrier: string,\n    /** 箱数 */\n    public PackingQty: number,\n    /** 是否紧急 */\n    public IsEmergency: boolean\n  ) {}\n  static create(): InOutOrderDetailDto {\n    return new InOutOrderDetailDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 出入库单明细 */\nexport class InOutOrderDetailQueryDto {\n  constructor(\n    /** 出入库单号 */\n    public OrderId: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 批次号 */\n    public LotNum: string,\n    /** 是否已完成 */\n    public IsCompleted: boolean,\n    /** 条码 */\n    public SN: string,\n    /** 办理数量 */\n    public TransactQty: number,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 开始扩展字段7 */\n    public StartDField1: Date,\n    /** 结束扩展字段7 */\n    public EndDField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 开始扩展字段8 */\n    public StartDField2: Date,\n    /** 结束扩展字段8 */\n    public EndDField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 开始扩展字段9 */\n    public StartDField3: Date,\n    /** 结束扩展字段9 */\n    public EndDField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 开始扩展字段10 */\n    public StartDField4: Date,\n    /** 结束扩展字段10 */\n    public EndDField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 自增键 */\n    public Id: number,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): InOutOrderDetailQueryDto {\n    return new InOutOrderDetailQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 出入库单表头模型 */\nexport class InOutOrderMasterQueryDto {\n  constructor(\n    /** 出入库单号 */\n    public OrderId: string,\n    /** 单据类型(入库、出库、调拨、盘点、移库) */\n    public OrderType: string,\n    /** 业务类型 */\n    public BusinessType: string,\n    /** 出库仓库代码 */\n    public OutWarehouseCode: string,\n    /** 出库仓库名称 */\n    public OutWarehouseName: string,\n    /** 出库库区代码 */\n    public OutWarehouseAreaCode: string,\n    /** 出库库区名称 */\n    public OutWarehouseAreaName: string,\n    /** 出库货架代码 */\n    public OutWarehouseShelfCode: string,\n    /** 出库货架名称 */\n    public OutWarehouseShelfName: string,\n    /** 出库库位代码 */\n    public OutStorageLocationCode: string,\n    /** 出库库位名称 */\n    public OutStorageLocationName: string,\n    /** 入库仓库代码 */\n    public InWarehouseCode: string,\n    /** 入库仓库名称 */\n    public InWarehouseName: string,\n    /** 入库库区代码 */\n    public InWarehouseAreaCode: string,\n    /** 入库库区名称 */\n    public InWarehouseAreaName: string,\n    /** 入库货架代码 */\n    public InWarehouseShelfCode: string,\n    /** 入库货架名称 */\n    public InWarehouseShelfName: string,\n    /** 入库库位代码 */\n    public InStorageLocationCode: string,\n    /** 入库库位名称 */\n    public InStorageLocationName: string,\n    /** 计划单号 */\n    public PlanOrderId: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 办理人 */\n    public OrderCreatorCode: string,\n    /** 办理人代码 */\n    public OrderCreatorName: string,\n    /** 办理日期 */\n    public OrderCreateDate: Date,\n    /** 开始办理日期 */\n    public StartTransactDate: Date,\n    /** 结束办理日期 */\n    public EndTransactDate: Date,\n    /** 办理日期区间 */\n    public TransactDateRange: Date,\n    /** 办理时间 */\n    public OrderCreateTime: Date,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 开始办理时间 */\n    public StartTransactTime: Date,\n    /** 结束办理时间 */\n    public EndTransactTime: Date,\n    /** 办理时间区间 */\n    public TransactTimeRange: Date,\n    /** 供应商 */\n    public Supplier: string,\n    /** 供应商Id */\n    public SupplierId: string,\n    /** 到货日期 */\n    public ArrivalDate: Date,\n    /** 联系人 */\n    public Contacts: string,\n    /** 联系电话 */\n    public ContactNumber: string,\n    /** 承运商 */\n    public Carrier: string,\n    /** 收货地址 */\n    public ReceivingAddress: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 开始扩展字段7 */\n    public StartDField1: Date,\n    /** 结束扩展字段7 */\n    public EndDField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 开始扩展字段8 */\n    public StartDField2: Date,\n    /** 结束扩展字段8 */\n    public EndDField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 开始扩展字段9 */\n    public StartDField3: Date,\n    /** 结束扩展字段9 */\n    public EndDField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 开始扩展字段10 */\n    public StartDField4: Date,\n    /** 结束扩展字段10 */\n    public EndDField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 自增键 */\n    public Id: number,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): InOutOrderMasterQueryDto {\n    return new InOutOrderMasterQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 移库查询 */\nexport class LocationMoveTransferOrderQueryDto {\n  constructor(\n    /** 移库单号 */\n    public OrderId: string,\n    /** 计划单号 */\n    public PlanOrderId: string,\n    /** 办理日期 */\n    public TransactDate: Date,\n    /** 办理时间 */\n    public TransactTime: Date,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人Id */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 办理人代号 */\n    public TransactorCode: string,\n    /** 办理人 */\n    public TransactorName: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 调入库区代码 */\n    public InWarehouseAreaCode: string,\n    /** 调入库区名称 */\n    public InWarehouseAreaName: string,\n    /** 调入货架代码 */\n    public InWarehouseShelfCode: string,\n    /** 调入货架名称 */\n    public InWarehouseShelfName: string,\n    /** 调入库位代码 */\n    public InStorageLocationCode: string,\n    /** 调入库位名称 */\n    public InStorageLocationName: string,\n    /** 调出库区代码 */\n    public OutWarehouseAreaCode: string,\n    /** 调出库区名称 */\n    public OutWarehouseAreaName: string,\n    /** 调出货架代码 */\n    public OutWarehouseShelfCode: string,\n    /** 调出货架名称 */\n    public OutWarehouseShelfName: string,\n    /** 调出库位代码 */\n    public OutStorageLocationCode: string,\n    /** 调出库位名称 */\n    public OutStorageLocationName: string,\n    /** 单据创建人 */\n    public OrderCreatorCode: string,\n    /** 单据创建人名称 */\n    public OrderCreatorName: string,\n    /** 单据创建日期 */\n    public OrderCreateDate: Date,\n    /** 单据创建时间 */\n    public OrderCreateTime: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** */\n    public OpSign: number,\n    /** */\n    public Id: number\n  ) {}\n  static create(): LocationMoveTransferOrderQueryDto {\n    return new LocationMoveTransferOrderQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 锁库配置表 */\nexport class MaterialInventoryLockConfigDto {\n  constructor(\n    /** 锁库类型 */\n    public LockType: string,\n    /** 是否锁库 */\n    public IsLocked: boolean,\n    /** 条码 */\n    public SN: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 单位 */\n    public ExpiryUnit: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 权重 */\n    public Grade: number,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 库位代码 */\n    public StorageLocationCode: string,\n    /** 库位名称 */\n    public StorageLocationName: string,\n    /** 数量 */\n    public Qty: number,\n    /** 批次号 */\n    public LotNum: string,\n    /** 生产日期 */\n    public ProductionDate: Date,\n    /** 生产时间 */\n    public ProductionTime: Date,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 可用数量 */\n    public AvailableQty: number,\n    /** 冻结数量 */\n    public FreezeQty: number,\n    /** 有效期 */\n    public ExpirationDate: Date,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): MaterialInventoryLockConfigDto {\n    return new MaterialInventoryLockConfigDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 数据导入模型 */\nexport class DataImportDto {\n  constructor(\n    /** 模块代码 */\n    public ModuleCode: string,\n    /** 业务代码 */\n    public BusinessCode: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 文件流字符串 */\n    public FileStreamString: string,\n    /** 操作员编码 */\n    public OperatorCode: string,\n    /** 操作员名称 */\n    public OperatorName: string\n  ) {}\n  static create(): DataImportDto {\n    return new DataImportDto(null, null, null, null, null, null);\n  }\n}\n\n/** 下载盘点模板模型 */\nexport class DownloadInventoryVerificaTamplateDto {\n  OrderCode: any;\n  constructor(\n    /** 单号 */\n    public OrderId: string,\n    /** 选择仓库 */\n    public WarehouseCodes: string[]\n  ) {}\n  static create(): DownloadInventoryVerificaTamplateDto {\n    return new DownloadInventoryVerificaTamplateDto(null, null);\n  }\n}\n\n/** 查询数据传输对象 */\nexport class View_InventoryVerificationOrderMasterQueryDto {\n  constructor(\n    /** 盘点单号 */\n    public OrderId: string,\n    /** 盘点类型(盲盘，明盘) */\n    public VerificationType: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 当前状态 */\n    public OrderStatus: string,\n    /** 盘点方案代码 */\n    public SchemeCode: string,\n    /** 盘点方案名称 */\n    public SchemeName: string,\n    /** 开始日期 */\n    public StartDate: Date,\n    /** 开始开始日期 */\n    public StartStartDate: Date,\n    /** 结束开始日期 */\n    public EndStartDate: Date,\n    /** 开始日期区间 */\n    public StartDateRange: Date,\n    /** 结束日期 */\n    public EndDate: Date,\n    /** 开始结束日期 */\n    public StartEndDate: Date,\n    /** 结束结束日期 */\n    public EndEndDate: Date,\n    /** 结束日期区间 */\n    public EndDateRange: Date,\n    /** 制单人代号 */\n    public CreatorCode: string,\n    /** 制单人代号 */\n    public CreatorName: string,\n    /** 制单时间 */\n    public Createtime: Date,\n    /** 开始制单时间 */\n    public StartCreatetime: Date,\n    /** 结束制单时间 */\n    public EndCreatetime: Date,\n    /** 审核人代码 */\n    public AuditorCode: string,\n    /** 审核人名称 */\n    public AuditorName: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 开始审核日期 */\n    public StartAuditDate: Date,\n    /** 结束审核日期 */\n    public EndAuditDate: Date,\n    /** 审核日期区间 */\n    public AuditDateRange: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 开始审核时间 */\n    public StartAuditTime: Date,\n    /** 结束审核时间 */\n    public EndAuditTime: Date,\n    /** 审核时间区间 */\n    public AuditTimeRange: Date,\n    /** 盘点人代码 */\n    public InventoryVerificaterCode: string,\n    /** 盘点人名称 */\n    public InventoryVerificaterName: string,\n    /** 备注 */\n    public Remark: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): View_InventoryVerificationOrderMasterQueryDto {\n    return new View_InventoryVerificationOrderMasterQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 盘点单表头表 */\nexport class View_InventoryVerificationOrderMasterDto {\n  constructor(\n    /** 仓库代码 */\n    public WarehouseCodes: string[],\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 主键 */\n    public PrimaryKey: string,\n    /** 盘点单号 */\n    public OrderId: string,\n    /** 盘点类型(盲盘，明盘) */\n    public VerificationType: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 当前状态 */\n    public OrderStatus: string,\n    /** 盘点方案代码 */\n    public SchemeCode: string,\n    /** 盘点方案名称 */\n    public SchemeName: string,\n    /** 开始日期 */\n    public StartDate: Date,\n    /** 结束日期 */\n    public EndDate: Date,\n    /** 制单人代号 */\n    public CreatorCode: string,\n    /** 制单人代号 */\n    public CreatorName: string,\n    /** 制单时间 */\n    public Createtime: Date,\n    /** 审核人代码 */\n    public AuditorCode: string,\n    /** 审核人名称 */\n    public AuditorName: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 盘点人代码 */\n    public InventoryVerificaterCode: string,\n    /** 盘点人名称 */\n    public InventoryVerificaterName: string,\n    /** 备注 */\n    public Remark: string,\n    /** */\n    public CreatorUserId: number,\n    /** */\n    public CreatorUserName: string,\n    /** */\n    public CreationTime: Date,\n    /** */\n    public LastModifierUserId: number,\n    /** */\n    public LastModifierUserName: string,\n    /** */\n    public LastModificationTime: Date,\n    /** */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): View_InventoryVerificationOrderMasterDto {\n    return new View_InventoryVerificationOrderMasterDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n","import { OtherInImportDto, OtherOutImportDto, MaterialInventoryParameter } from './../../shared-manage-model';\nimport { DataImportDto } from './../../../inventory-manage/inventory-manage-model';\nimport { RhSharedManageService } from './../../shared-manage.service';\nimport { RhSelectableDto, RhSafeAny, RhLoginedUserDto, DataResultT, RhTableButtonInfoDto, OpResult, RhSelectItem } from 'rh-base/model';\nimport { Component, OnInit, Input, Output, EventEmitter, SimpleChanges } from '@angular/core';\nimport { NzUploadFile, UploadFilter } from 'ng-zorro-antd/upload';\nimport { MsgHelper, RhStorageService, FileHelper, RhApiUrlsService, RhPortType, RhPortLocalFieldType } from 'rh-base/core';\nimport { Observable, Observer } from 'rxjs';\n\n@Component({\n  selector: 'rh-import-data-manage',\n  templateUrl: './import-data-manage.component.html',\n  styleUrls: ['./import-data-manage.component.less']\n})\nexport class RhImportDataManageComponent implements OnInit {\n  @Input() rhBusinessCode: string;\n  @Output() rhClose = new EventEmitter();\n\n  // 模板下载\n  // isShowTempleteDownloadModal = false;\n  // templateDataresult: DataResultT<RhSelectableDto[]>;\n  // templateDataLoading = false;\n  // editButtonDataset: RhTableButtonInfoDto[] = [\n  //   new RhTableButtonInfoDto(\n  //     'download',\n  //     '下载',\n  //     'default',\n  //     'download',\n  //     false,\n  //     null,\n  //     (data) => this.downloadTemplateData(data),\n  //     true\n  //   ),\n  // ];\n\n  factoryCode: string;\n  currentUser: RhLoginedUserDto;\n  storeLoading = false;\n  downloadLoading = false;\n  // 数据源\n  otherOrderTypes: RhSelectItem[] = [];\n\n  // ******** excel导入 ********\n  isShowImportFlesModal = false;\n  // 上传文件\n  isShowUploadDrawer = false;\n  isDirectoryUploadEnable = false;\n  uploading = false;\n  uploadFileList: NzUploadFile[] = [];\n  uploadDatas: DataImportDto;\n  // 导入的数据\n  importDatas: RhSelectableDto[] = [];\n  // 返回的表头信息\n  dataHeadFields: { FieldName: string; FieldDescription: string }[] = [];\n  tableWidth = '0px';\n\n  uploadFilter: UploadFilter[] = [\n    {\n      name: 'fileType',\n      fn: (fileList: NzUploadFile[]) => {\n        const filterFileList = fileList.filter((f) => /\\.xlsx$/.test(f.name.toLocaleLowerCase()));\n        if (fileList.length !== filterFileList.length) {\n          MsgHelper.ShowWarningMessage('请上传xlsx格式的文件！');\n          return filterFileList;\n        }\n        return fileList;\n      }\n    }\n  ];\n\n  constructor(private operator: RhSharedManageService, private storage: RhStorageService, private apiUrls: RhApiUrlsService) {}\n\n  ngOnInit(): void {\n    this.currentUser = this.storage.getUserSession()?.User;\n    this.factoryCode = this.storage.getUserSession()?.User?.FactoryCode;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhBusinessCode } = changes;\n    if (rhBusinessCode && rhBusinessCode) {\n      this.getOtherOrderTypes();\n    }\n  }\n\n  // 导入excel\n  openImportFlesModal() {\n    this.uploadDatas = DataImportDto.create();\n    this.uploadDatas.BusinessCode = this.rhBusinessCode;\n    this.uploadDatas.FactoryCode = this.factoryCode;\n    this.uploadDatas.OperatorCode = this.currentUser.UserName;\n    this.uploadDatas.OperatorName = this.currentUser.DisplayName;\n    this.isShowImportFlesModal = true;\n  }\n\n  closeImportFlesModal() {\n    this.isShowImportFlesModal = false;\n    this.uploadFileList = [];\n    this.uploadDatas = null;\n  }\n\n  beforeUpload = (file: NzUploadFile) => {\n    if (this.uploadFileList.length >= 1) {\n      MsgHelper.ShowWarningMessage('每次只能上传一个文件!');\n      return false;\n    }\n    return new Observable((observer: Observer<boolean>) => {\n      const reader = new FileReader();\n      reader.readAsDataURL(file as RhSafeAny);\n      reader.onload = () => {\n        this.uploadDatas.FileStreamString = reader.result as RhSafeAny;\n        // 只有一个文件\n        // this.uploadFileList = this.uploadFileList.concat(file);\n        this.uploadFileList = [file];\n        observer.next(false);\n        observer.complete();\n      };\n      reader.onerror = (e) => {\n        MsgHelper.ShowWarningModal(`读取文件失败！${e}`);\n        observer.next(false);\n        observer.complete();\n      };\n    });\n  };\n\n  handleUpload() {\n    // this.uploadDatas.BusinessCode = this.rhBusinessType;\n    this.uploading = true;\n    this.operator.DataImport(this.uploadDatas).subscribe(\n      (result) => {\n        if (result && result.Success) {\n          MsgHelper.ShowSuccessMessage('文件上传成功！');\n          this.importDatas = result.Attach;\n          this.dataHeadFields = result.DataHeadFields;\n          this.tableWidth = this.dataHeadFields.length * 120 + 'px';\n          this.closeImportFlesModal();\n        } else {\n          MsgHelper.ShowWarningModal(`文件上传失败！${result.Message}`);\n        }\n        this.uploading = false;\n      },\n      () => (this.uploading = false)\n    );\n  }\n\n  // 保存数据\n  storeImportedDatas() {\n    if (this.importDatas.some((f) => !f.Success)) {\n      MsgHelper.ShowWarningMessage('请修改错误后重新导入！');\n    } else {\n      let obj: Observable<OpResult>;\n      switch (this.rhBusinessCode) {\n        case 'OtherIn':\n          const otherInTemp = this.importDatas.map((f) => {\n            f.OrderCreatorCode = this.currentUser.UserName;\n            f.OrderCreatorName = this.currentUser.DisplayName;\n            return f;\n          });\n          obj = this.operator.CreateOtherInOrderByDataImport(otherInTemp as OtherInImportDto[]);\n          break;\n        case 'OtherOut':\n          const otherOutTemp = this.importDatas.map((f) => {\n            f.OrderCreatorCode = this.currentUser.UserName;\n            f.OrderCreatorName = this.currentUser.DisplayName;\n            return f;\n          });\n          obj = this.operator.CreateOtherOutOrderByDataImport(otherOutTemp as OtherOutImportDto[]);\n        case 'MaterialInventory':\n          const res = this.importDatas.map(({ Success, Message, ...rest }) => ({ ...rest }));\n          const MaterialInventoryTemp = res.map((f) => {\n            f.OrderCreatorCode = this.currentUser.UserName;\n            f.OrderCreatorName = this.currentUser.DisplayName;\n            return f;\n          });\n          obj = this.operator.CreateInitializeInventory(MaterialInventoryTemp as MaterialInventoryParameter[]);\n          break;\n        default:\n          break;\n      }\n      if (obj) {\n        this.storeLoading = true;\n        obj.subscribe(\n          (result) => {\n            if (result.Success) {\n              MsgHelper.ShowSuccessMessage('保存成功！');\n              this.importDatas = [];\n            } else {\n              MsgHelper.ShowWarningMessage(`保存失败！${result.Message}`);\n            }\n            this.storeLoading = false;\n          },\n          () => (this.storeLoading = false)\n        );\n      } else {\n        MsgHelper.ShowWarningMessage('找不到输入的业务代码！');\n      }\n    }\n  }\n\n  getDataType(data: string) {\n    if (data) {\n      const tmp = data.toString().trim().toLowerCase();\n      const dateReg = new RegExp(/\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?/, 'i');\n      if (['true', 'false'].includes(tmp)) {\n        return 'boolean';\n      } else if (dateReg.test(tmp)) {\n        return 'date';\n      }\n    }\n    return 'string';\n  }\n\n  /** 清空数据 */\n  clearImportedDatas() {\n    MsgHelper.ShowConfirmModal('是否继续', '是否清空所有导入的模板数据？', () => {\n      this.importDatas = [];\n      MsgHelper.ShowSuccessMessage('数据清空成功！');\n    });\n  }\n\n  removeImportTempData(index: number) {\n    MsgHelper.ShowConfirmModal('是否继续', '是否移除选中的数据？', () => {\n      this.importDatas.splice(index, 1);\n      this.importDatas = [...this.importDatas];\n    });\n  }\n\n  closeImportTab() {\n    this.rhClose.emit();\n  }\n\n  downloadTemplate() {\n    let url: string;\n    let fileName: string;\n    switch (this.rhBusinessCode) {\n      case 'OtherIn':\n        url = this.apiUrls.GetApiOperateUrl(\n          RhPortType.rhpwms,\n          'InOrderWebApi',\n          'DownloadOtherInOrderDataImportFile',\n          RhPortLocalFieldType.rhpwms\n        );\n        fileName = `杂项入库单导入模板${new Date().getTime()}.xlsx`;\n        break;\n      case 'OtherOut':\n        url = this.apiUrls.GetApiOperateUrl(\n          RhPortType.rhpwms,\n          'OutOrderWebApi',\n          'DownloadOtherOutOrderDataImportFile',\n          RhPortLocalFieldType.rhpwms\n        );\n        fileName = `杂项出库单导入模板${new Date().getTime()}.xlsx`;\n        break;\n      case 'MaterialInventory':\n        url = this.apiUrls.GetApiOperateUrl(\n          RhPortType.rhpwms,\n          'MaterialInventoryWebApi',\n          'DownloadInventoryImportTemplate',\n          RhPortLocalFieldType.rhpwms\n        );\n        fileName = `库存导入模板${new Date().getTime()}.xlsx`;\n        break;\n      default:\n        break;\n    }\n    if (url) {\n      MsgHelper.ShowGlobalLoadingMessage('正在下载文件，请稍候。。。');\n      FileHelper.downloadFileViaGet(url, fileName);\n      this.downloadLoading = true;\n      setTimeout(() => {\n        this.downloadLoading = false;\n        MsgHelper.CloseGlobalLoadingMessage();\n      }, 1000);\n    } else {\n      MsgHelper.ShowWarningMessage('找不到输入的业务代码！');\n    }\n  }\n\n  // 辅助数据\n  getOtherOrderTypes() {\n    this.otherOrderTypes = [];\n    const moduleKey = 'Wms';\n    let groupKey = 'InWarehouse';\n    let paraCode = 'OtherInOrderType';\n    if (this.rhBusinessCode === 'OtherOut') {\n      groupKey = 'OutWarehouse';\n      paraCode = 'OtherOutOrderType';\n    }\n    this.apiUrls.getSettingEntry(moduleKey, groupKey, paraCode).subscribe((result) => {\n      if (result.Success) {\n        this.otherOrderTypes = result.Attach;\n      }\n    });\n  }\n  // openTempleteDownloadModal() {\n  //   this.isShowTempleteDownloadModal = true;\n  // }\n\n  // closeTempleteDownloadModal() {\n  //   this.isShowTempleteDownloadModal = false;\n  // }\n\n  // getTemplateDatas() {\n  //   //\n  // }\n\n  // downloadTemplateData(data: RhSelectableDto) {\n  //   //\n  // }\n}\n","<div class=\"rh-full\">\n  <nz-table\n    #importDataTable\n    [nzData]=\"importDatas\"\n    [nzShowPagination]=\"false\"\n    [nzFrontPagination]=\"false\"\n    nzSize=\"small\"\n    [nzLoading]=\"uploading\"\n    nzBordered\n    [nzTitle]=\"importTableTitle\"\n    [nzScroll]=\"{ x: tableWidth, y: '50vh' }\"\n  >\n    <ng-template #importTableTitle>\n      <button nz-button nzType=\"default\" type=\"button\" [nzLoading]=\"downloadLoading\" (click)=\"downloadTemplate()\">\n        <i nz-icon nzType=\"download\" nzTheme=\"outline\"></i>下载模板\n      </button>\n      <nz-divider nzType=\"vertical\"></nz-divider>\n      <button nz-button nz-dropdown [nzDropdownMenu]=\"importMenu\" [nzPlacement]=\"'bottomCenter'\" nzTrigger=\"click\">\n        <i nz-icon nzType=\"upload\" nzTheme=\"outline\"></i>导入数据\n      </button>\n      <nz-dropdown-menu #importMenu=\"nzDropdownMenu\">\n        <ul nz-menu>\n          <li nz-menu-item>\n            <button nz-button nzType=\"default\" type=\"button\" (click)=\"openImportFlesModal()\">\n              <i nz-icon nzType=\"import\" nzTheme=\"outline\"></i>Excel导入\n            </button>\n          </li>\n        </ul>\n      </nz-dropdown-menu>\n      <nz-divider nzType=\"vertical\"></nz-divider>\n      <button\n        nz-button\n        nzType=\"primary\"\n        type=\"button\"\n        [disabled]=\"!importDatas.length\"\n        [nzLoading]=\"storeLoading\"\n        (click)=\"storeImportedDatas()\"\n      >\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存数据\n      </button>\n      <nz-divider nzType=\"vertical\"></nz-divider>\n      <button nz-button nzType=\"default\" nzDanger type=\"button\" [disabled]=\"!importDatas.length\" (click)=\"clearImportedDatas()\">\n        <i nz-icon nzType=\"delete\" nzTheme=\"outline\"></i>清空数据\n      </button>\n      <button style=\"float: right\" nz-button nzType=\"default\" type=\"button\" (click)=\"closeImportTab()\">\n        <i nz-icon nzType=\"rollback\" nzTheme=\"outline\"></i>返回\n      </button>\n    </ng-template>\n\n    <thead>\n      <tr>\n        <th *ngFor=\"let th of dataHeadFields\">{{ th.FieldDescription }}</th>\n        <!-- <th nzWidth=\"120px\">ECCN码</th>\n        <th nzWidth=\"150px\">ECCN是否可用</th>\n        <th nzWidth=\"150px\">是否受EAR管辖(25%)</th>\n        <th nzWidth=\"150px\">是否受EAR管辖(10%)</th>\n        <th nzWidth=\"150px\">GTS占比(25%)</th>\n        <th nzWidth=\"150px\">GTS占比(10%)</th> -->\n        <th nzWidth=\"100px\" nzRight=\"0px\">操作</th>\n      </tr>\n    </thead>\n    <tbody>\n      <tr\n        *ngFor=\"let item of importDataTable.data; let i = index\"\n        [style.background-color]=\"item.Success ? '' : '#F56C6C'\"\n        nz-tooltip\n        [nzTooltipTitle]=\"item.Success ? '' : item.Message\"\n      >\n        <td nzWidth=\"120px\">\n          <a *ngIf=\"item.Success\"><i nz-icon nzType=\"check\" nzTheme=\"outline\"></i></a>\n          <a *ngIf=\"!item.Success\"><i nz-icon nzType=\"warning\" nzTheme=\"outline\" style=\"color: orange\"></i></a>\n          <ng-container *ngTemplateOutlet=\"dataTransfer; context: { $implicit: item, name: dataHeadFields[0].FieldName }\"></ng-container>\n        </td>\n        <td nzWidth=\"120px\" *ngFor=\"let td of dataHeadFields.slice(1)\">\n          <ng-container *ngTemplateOutlet=\"dataTransfer; context: { $implicit: item, name: td.FieldName }\"></ng-container>\n        </td>\n        <!-- <td>{{ item.Eccn }}</td>\n        <td>{{ item.IsEccnValid | bool }}</td>\n        <td>{{ item.EarFlgDm25 }}</td>\n        <td>{{ item.EarFlgDm10 }}</td>\n        <td>{{ item.DeminimisDm25 }}</td>\n        <td>{{ item.DeminimisDm10 }}</td> -->\n        <td nzRight=\"0px\">\n          <a (click)=\"removeImportTempData(i)\">\n            <span class=\"rh-color-danger\"><i nz-icon nzType=\"delete\" nzTheme=\"outline\"></i></span>\n          </a>\n        </td>\n      </tr>\n    </tbody>\n  </nz-table>\n</div>\n\n<!-- 模板下载modal -->\n<!-- <nz-modal\n  [nzVisible]=\"isShowTempleteDownloadModal\"\n  (nzOnCancel)=\"closeTempleteDownloadModal()\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  [nzMaskClosable]=\"false\"\n  nzTitle=\"模板列表\"\n  [nzWidth]=\"'70vw'\"\n>\n  <rh-dynamic-table\n    rhName=\"importTemplateTable\"\n    [rhTableData]=\"templateDataresult\"\n    [rhTableDataloading]=\"templateDataLoading\"\n    [rhEditButtonDataset]=\"editButtonDataset\"\n  ></rh-dynamic-table>\n</nz-modal> -->\n\n<!-- excel导入modal -->\n<nz-modal\n  [nzVisible]=\"isShowImportFlesModal\"\n  (nzOnCancel)=\"closeImportFlesModal()\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  [nzMaskClosable]=\"false\"\n  nzTitle=\"文档上传\"\n>\n  <div *nzModalContent style=\"padding: 0px 20px\">\n    <nz-upload\n      nzType=\"drag\"\n      [(nzFileList)]=\"uploadFileList\"\n      [nzBeforeUpload]=\"beforeUpload\"\n      [nzMultiple]=\"!isDirectoryUploadEnable\"\n      nzListType=\"text\"\n      [nzDirectory]=\"isDirectoryUploadEnable\"\n      [nzFilter]=\"uploadFilter\"\n    >\n      <p class=\"ant-upload-drag-icon\">\n        <i nz-icon nzType=\"inbox\"></i>\n      </p>\n      <p *ngIf=\"!isDirectoryUploadEnable\" class=\"ant-upload-text\">点击选择文件或拖拽文件到此区域</p>\n      <p *ngIf=\"isDirectoryUploadEnable\" class=\"ant-upload-text\">点击选择文件或拖拽文件到此区域</p>\n      <p *ngIf=\"isDirectoryUploadEnable\" class=\"ant-upload-hint\">请选择一个文件夹</p>\n    </nz-upload>\n    <div style=\"text-align: center\">\n      <button\n        nz-button\n        [nzType]=\"'primary'\"\n        [nzLoading]=\"uploading\"\n        (click)=\"handleUpload()\"\n        [disabled]=\"uploadFileList.length == 0\"\n        style=\"margin-top: 16px\"\n      >\n        {{ uploading ? '上传中...' : '点击上传' }}\n      </button>\n    </div>\n  </div>\n</nz-modal>\n\n<ng-template #dataTransfer let-item let-name=\"name\">\n  <ng-container *ngIf=\"name === 'OtherOrderType'; else commonTpl\">\n    {{ item[name] | mapToDisplay: otherOrderTypes }}\n  </ng-container>\n  <ng-template #commonTpl>\n    <ng-container [ngSwitch]=\"getDataType(item[name])\">\n      <ng-container *ngSwitchCase=\"'string'\">{{ item[name] }}</ng-container>\n      <ng-container *ngSwitchCase=\"'boolean'\">{{ item[name] | bool }}</ng-container>\n      <ng-container *ngSwitchCase=\"'date'\">{{ item[name] | date: 'yyyy-MM-dd' }}</ng-container>\n    </ng-container>\n  </ng-template>\n</ng-template>\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { CustomizeBaseTableComponent, DynamicFormComponent, DynamicTableComponent } from 'rh-base/shared';\nimport { RhSelectableDto, RhDynamicInterfaceDto, DataResultT, RhTableQueryOptionDto, CodeClassModel, RhDynamicTableFieldDto, RhSafeAny, RhPaginationMode } from 'rh-base/model';\nimport { MsgHelper } from 'rh-base/core';\n\n@Component({\n  selector: 'rh-business-warehouse-table',\n  templateUrl: './business-warehouse-table.component.html',\n  styleUrls: ['./business-warehouse-table.component.less']\n})\nexport class BusinessWarehouseTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @ViewChild('nzTable', { static: false }) nzTableCmt: DynamicTableComponent;\n\n  @Input() rhName = 'BusinessWarehouseSelector';\n  @Input() rhSingleMode = true;\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [\n    { name: 'WarehouseCode', displayName: '仓库代码', placeholder: '仓库代码', editable: true },\n    { name: 'WarehouseName', displayName: '仓库名称', placeholder: '仓库名称', editable: true }\n  ];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [\n    { name: 'WarehouseCode', displayName: '仓库代码', width: 140 },\n    { name: 'WarehouseName', displayName: '仓库名称', width: 140 },\n    { name: 'WarehouseCategory', displayName: '仓库类别', width: 120, type: 'array', config: { moduleKey: 'MDP', groupKey: 'WareHouseManagement', paraCode: 'WarehouseCategory' } },\n    { name: 'WarehouseErpCode', displayName: 'Erp关联代码', width: 140 },\n    { name: 'WarehouseErpName', displayName: 'Erp关联名称', width: 140 },\n    { name: 'OrganizationStructureCode', displayName: '部门代码', width: 140 },\n    { name: 'OrganizationStructureName', displayName: '部门名称', width: 140 },\n    { name: 'OrganizationStructureDisplayName', displayName: '部门描述', width: 140 },\n    { name: 'OrganizationStructureExternalCode', displayName: '组织架构外部编码', width: 140 },\n    { name: 'ChargeUserCode', displayName: '负责人ID', width: 140 },\n    { name: 'ChargeUserName', displayName: '负责人名称', width: 140 },\n    { name: 'Remark', displayName: '备注', width: 150, rhEllipsis: true }\n  ];\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  beforeSubmit = (data) => {\n    data.Mode = 8;\n    return true;\n  };\n\n  constructor() {\n    super();\n  }\n\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit(): void {\n    setTimeout(() => {\n      if (this.nzTableCmt.hostConfig)\n        this.nzTableCmt.hostConfig = { ...this.nzTableCmt.hostConfig, rhFrontPagination: RhPaginationMode.front };\n    });\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  setDatas(result: DataResultT<RhSelectableDto[]>) {\n    if (result && result.Success) {\n      const queryDto = this.queryFormCmt.defaultForm.value;\n      if (queryDto) {\n        if (queryDto.WarehouseCode) {\n          result.Attach = result.Attach.filter(data => data.WarehouseCode.includes(queryDto.WarehouseCode));\n        }\n        if (queryDto.WarehouseName) {\n          result.Attach = result.Attach.filter(data => data.WarehouseName.includes(queryDto.WarehouseName));\n        }\n      }\n      this.dataresult = result;\n      this.rhDatasetChange.next(result.Attach);\n    } else {\n      this.dataresult = { Success: false, Attach: [] } as RhSafeAny;\n      this.rhDatasetChange.next(null);\n      MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n    }\n  }\n\n}\n","<!-- 搜索Form区域 -->\n<div class=\"search-area\">\n    <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n        <ng-template #searchTpl>\n            <rh-dynamic-form #queryForm rhName=\"{{rhName}}Form\" [rhValue]=\"rhDefaultQueryDto||{}\"\n                (rhInterfaceDataChange)=\"setDatas($event)\" (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                (rhOutParaChange)=\"setInitFieldDataset($event)\" [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n                [(rhFormInterface)]=\"rhInterfaceInfo\" [rhBeforeSubmit]=\"beforeSubmit\"></rh-dynamic-form>\n        </ng-template>\n    </nz-alert>\n</div>\n<!-- 搜索结果Table展示区域 -->\n<div class=\"table-area\">\n    <rh-dynamic-table #nzTable rhName=\"{{rhName}}Table\" [rhTableData]=\"dataresult\" [rhTableDataloading]=\"dataLoading\"\n        [rhDefaultFieldDataset]=\"defaultTableFieldDataset\" (rhRefresh)=\"refreshDatas($event)\"\n        (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\" [rhSingleMode]=\"rhSingleMode\"></rh-dynamic-table>\n</div>","import { Component, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, SimpleChanges } from '@angular/core';\nimport { CustomizeBaseControlComponent, RhBaseDynamicService } from 'rh-base/shared';\nimport { provideValueAccessor, RhRouteHelper } from 'rh-base/core';\nimport { NzSizeLDSType } from 'ng-zorro-antd/core/types';\nimport {\n  RhSelectableDto,\n  RhDynamicFormFieldDto,\n  RhSafeAny,\n  RhDynamicInterfaceDto,\n  RhDynamicCustomizeControlConfigDto,\n  RhRelatedFieldDataDto,\n  RhCustomizeEventSettingDto,\n  RhRelatedFieldDataType\n} from 'rh-base/model';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { BusinessWarehouseTableComponent } from './business-warehouse-table/business-warehouse-table.component';\n\n@Component({\n  selector: 'rh-business-warehouse-selector',\n  templateUrl: './business-warehouse-selector.component.html',\n  styleUrls: ['./business-warehouse-selector.component.less'],\n  providers: [provideValueAccessor(BusinessWarehouseSelectorComponent)]\n})\nexport class BusinessWarehouseSelectorComponent extends CustomizeBaseControlComponent {\n  rhRelatedFieldData: RhRelatedFieldDataType;\n  @ViewChild(BusinessWarehouseTableComponent) tableComp: BusinessWarehouseTableComponent;\n  @Input() rhDynamicKey = 'BusinessWarehouseSelector';\n  @Input() rhTitle = '选择业务仓库';\n  @Input() declare rhSize: NzSizeLDSType;\n  iconSetting = 'search';\n  @Input() rhSingleMode = true;\n\n  formKeyFieldName = 'WarehouseCode';\n  formTextFieldName = 'WarehouseName';\n\n  modelKeyFieldName = 'WarehouseCode';\n  modelTextFieldName = 'WarehouseName';\n\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto>();\n  /** 对应table选中的数据 */\n  rhModel: RhSelectableDto = {};\n\n  /** 动态form字段配置数据 */\n  @Input() rhFieldData: RhDynamicFormFieldDto;\n\n  /** 自定义组件的自定义执行函数 */\n  cb: (data: RhSafeAny, ctx: RhSafeAny) => void;\n\n  /** 该组件关联的form名称 */\n  formName: string;\n\n  url: string;\n\n  /** 设置默认搜索接口 */\n  defaultFormInterface: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'ConfigurationWebApi',\n    interfaceName: 'GetBusinessWithsWarehouseDatas'\n  };\n  rhUrlHandler: boolean;\n\n  constructor(\n    public fb: UntypedFormBuilder,\n    public cdr: ChangeDetectorRef,\n    public dynamicSer: RhBaseDynamicService,\n    public router: Router\n  ) {\n    super(cdr, dynamicSer);\n  }\n\n  ngOnInit(): void {\n    this.url = RhRouteHelper.getRealRoute(this.router.url, this.rhUrlHandler);\n    this.rhPlaceholder = this.rhFieldData?.placeholder ? (this.rhFieldData.placeholder as any) : this.rhPlaceholder;\n    this.formName = this.rhFieldData.relatedComponentName;\n    this.setCbValue();\n  }\n\n  // 自定义表单项配置\n  ngOnChanges(changes: SimpleChanges) {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue && rhData.currentValue[this.formKeyFieldName] === null) {\n      this.resetControlValue();\n    } else {\n      this.rhModel = {};\n    }\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    if (data?.length === 1) {\n      this.selectedData = data[0];\n    } else {\n      this.selectedData = null;\n    }\n  }\n\n  getTargetDatas(code: string) {\n    if (!this.defaultFormInterface) {\n      return;\n    }\n    const queryDto = {};\n    queryDto[this.modelKeyFieldName] = `${code}`;\n    this.getTargetDatasVisHttpHandler(this.defaultFormInterface, queryDto, this.rhFieldData);\n  }\n\n  getTargetDatasVisHttpHandler(interInfo: RhDynamicInterfaceDto, queryDto: Record<string, unknown>, fieldData?: RhDynamicFormFieldDto) {\n    this.dynamicSer\n      .httpHandler(interInfo.interfaceType, interInfo.port, interInfo.controllerName, interInfo.interfaceName, queryDto)\n      .subscribe(\n        (result) => {\n          const modelTextFieldName = this.modelKeyFieldName;\n          const modelKeyFieldName = this.modelTextFieldName;\n          if (result && result.Success && result.Attach.length >= 1) {\n            if (result?.Attach?.length > 1) {\n              if (queryDto) {\n                if (queryDto.WarehouseCode) {\n                  result.Attach = result.Attach.filter((data) => data.WarehouseCode.includes(queryDto.WarehouseCode));\n                }\n                if (queryDto.WarehouseName) {\n                  result.Attach = result.Attach.filter((data) => data.WarehouseName.includes(queryDto.WarehouseName));\n                }\n              }\n            }\n            this.rhModel = result.Attach[0];\n            this.displayName = this.rhModel[modelKeyFieldName];\n            this.displayName = this.getDisplayNameByMode(fieldData).toString();\n          } else {\n            this.rhModel = {};\n            // 当搜索代码对应的中文名称时。则直接显示中文\n            this.displayName = this._value as string;\n          }\n        },\n        () => {\n          this.displayName = null;\n        }\n      );\n  }\n\n  //#region customize selector interface区域\n  confirmSelect() {\n    this.rhModel = this.selectedData;\n    this.rhModelChange.emit(this.rhModel);\n    this.value = this.rhModel[this.modelKeyFieldName];\n    this.displayName = this.rhModel[this.modelTextFieldName];\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // 执行对应控件定义的代码\n    if (this.cb) {\n      this.cb(this.rhData, this.rhModel);\n    }\n    this.setFormDataViaRelatedDatas();\n    // 执行form的相关字段赋值操作\n    this.triggerRelatedForm();\n    this.closeDataModal();\n  }\n\n  resetControlValue() {\n    this._value = null;\n    this.onChange?.(this._value);\n    this.displayName = null;\n    // 重置form对应数据对象\n    this.rhData[this.formKeyFieldName] = null;\n    this.rhData[this.formTextFieldName] = null;\n    const relatedDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedModelDatas;\n    if (relatedDatas?.length) {\n      relatedDatas.forEach((ele) => {\n        this.rhData[ele.mappedName] = null;\n      });\n    }\n    this.rhModel = null;\n  }\n\n  setCbValue() {\n    const cbString = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.cb;\n    if (cbString) {\n      const fn = Function(`return ${cbString}`);\n      if (fn) {\n        this.cb = fn();\n      } else {\n        this.cb = this.setFormData;\n      }\n    } else {\n      // 当没有配置回调函数时，执行默认的回调函数\n      this.cb = this.setFormData;\n    }\n  }\n\n  /** 设置form对应的数据对象的值\n   * @param data form对应的数据对象\n   * @params 设置或者对应table选择的数据\n   */\n  setFormData(data: RhSafeAny, ctx: RhSelectableDto) {\n    data[this.formKeyFieldName] = ctx[this.modelKeyFieldName];\n    data[this.formTextFieldName] = ctx[this.modelTextFieldName];\n  }\n\n  setFormDataViaRelatedDatas() {\n    const relatedDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedModelDatas;\n    if (relatedDatas?.length) {\n      relatedDatas.forEach((ele) => {\n        this.rhData[ele.mappedName] = this.rhModel[ele.sourceName];\n      });\n    }\n  }\n\n  triggerRelatedForm() {\n    const tempDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedFieldDatas;\n    const relatedDatas: RhRelatedFieldDataDto[] =\n      tempDatas && tempDatas.length\n        ? tempDatas\n        : [\n            { sourceName: this.modelKeyFieldName, mappedName: this.formKeyFieldName },\n            { sourceName: this.modelTextFieldName, mappedName: this.formTextFieldName }\n          ];\n    const data: RhCustomizeEventSettingDto = {\n      id: `${this.url}_${this.formName}`,\n      eventType: null,\n      options: null,\n      value: this.rhModel,\n      relatedFieldDatas: relatedDatas\n    };\n    this.dynamicSer.formCustomizeEventTrigger(data);\n  }\n  //#endregion customize selector interface区域结束\n}\n","<nz-input-group [nzSize]=\"rhSize\" [nzSuffix]=\"suffixIconSearch\" [nzAddOnAfter]=\"addOnAfter\">\n  <input type=\"text\" nz-input [ngModel]=\"displayName\" [placeholder]=\"rhPlaceholder\" readonly=\"readonly\" />\n</nz-input-group>\n<ng-template #suffixIconSearch>\n  <a *ngIf=\"displayName && !rhDisabled\" class=\"link-suffix\" (click)=\"clearInputInfo()\">\n    <i nz-icon nzType=\"close-circle\"></i>\n  </a>\n</ng-template>\n\n<ng-template #addOnAfter>\n  <button nz-button nzType=\"link\" type=\"button\" nzSize=\"small\">\n    <a (click)=\"openDataModal($event)\">\n      <i nz-icon [nzType]=\"iconSetting\"></i>\n    </a>\n  </button>\n</ng-template>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"rhTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedData\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-business-warehouse-table\n        [rhName]=\"rhDynamicKey\"\n        [rhModel]=\"rhModel\"\n        (rhModelChange)=\"onSelectModal($event)\"\n        [rhDefaultQueryDto]=\"rhDefaultQueryDto\"\n        [rhInterfaceInfo]=\"defaultFormInterface\"\n      ></rh-business-warehouse-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { NgModule } from '@angular/core';\nimport { RhSharedModule } from 'rh-base/shared';\nimport { RhInventoryControlSpecialTypeDirective } from './inventory-control/inventory-control-special-type.directive';\nimport { WarehouseBusinessConfSelectorComponent } from './warehouse-business/warehouse-business-conf-selector/warehouse-business-conf-selector.component';\nimport { WarehouseBusinessConfTableComponent } from './warehouse-business/warehouse-business-conf-selector/warehouse-business-conf-table/warehouse-business-conf-table.component';\nimport { RhAttachFileManageComponent } from './common/attach-file-manage/attach-file-manage.component';\nimport { RhAttachFileUploadComponent } from './common/attach-file-upload/attach-file-upload.component';\nimport { RhImportDataManageComponent } from './common/import-data-manage/import-data-manage.component';\nimport { BusinessWarehouseSelectorComponent } from './warehouse-business/business-warehouse-selector/business-warehouse-selector.component';\nimport { BusinessWarehouseTableComponent } from './warehouse-business/business-warehouse-selector/business-warehouse-table/business-warehouse-table.component';\n\n\nconst DIRECTIVES = [RhInventoryControlSpecialTypeDirective];\nconst COMMPONENTS = [\n  WarehouseBusinessConfSelectorComponent,\n  RhAttachFileManageComponent,\n  RhAttachFileUploadComponent,\n  RhImportDataManageComponent,\n  BusinessWarehouseSelectorComponent\n];\nconst SNIPPETS = [\n  WarehouseBusinessConfTableComponent,\n  BusinessWarehouseTableComponent\n];\n\n@NgModule({\n  declarations: [...COMMPONENTS, ...SNIPPETS, ...DIRECTIVES],\n  imports: [RhSharedModule],\n  exports: [...COMMPONENTS, ...DIRECTIVES]\n})\nexport class RhSharedManageModule { }\n","import { RhSelectableDto } from 'rh-base/model';\n//#region 系统参数配置区域开始\n\n/** 系统参数列表模型 */\nexport class ParaSettingEntryDto {\n  constructor(\n    /** 模块键值 */\n    public ModuleKey: string,\n    /** 分组键值 */\n    public GroupKey: string,\n    /** 参数键值 */\n    public ParameterCode: string,\n    /** 参数项编码 */\n    public ParameterEntryCode: string,\n    /** 参数项值 */\n    public ParameterEntryValue: string,\n    /** 参数类型 */\n    public ParameterType: string,\n    /** 排序 */\n    public SortId: number,\n    /** 是否可编辑 */\n    public CanEditable: boolean,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number,\n    /** 参数组 */\n    public ParameterGroup: string\n  ) {}\n  static create(): ParaSettingEntryDto {\n    return new ParaSettingEntryDto(null, null, null, null, null, null, null, null, null, null, null);\n  }\n}\n\n/** 仓库配置模型 */\nexport class WarehouseConfigQueryDto {\n  constructor(\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 仓库类别 */\n    public WarehouseCategory: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 组织架构外部编码 */\n    public OrganizationStructureExternalCode: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): WarehouseConfigQueryDto {\n    return new WarehouseConfigQueryDto(null, null, null, null, null, null, null, null);\n  }\n}\n\n/** 仓库配置模型 */\nexport class WarehouseConfigDto {\n  constructor(\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** Erp关联代码 */\n    public WarehouseErpCode: string,\n    /** Erp关联名称 */\n    public WarehouseErpName: string,\n    /** 仓库类别 */\n    public WarehouseCategory: string,\n    /** 部门代码 */\n    public OrganizationStructureCode: string,\n    /** 部门名称 */\n    public OrganizationStructureName: string,\n    /** 部门描述 */\n    public OrganizationStructureDisplayName: string,\n    /** 组织架构外部编码 */\n    public OrganizationStructureExternalCode: string,\n    /** 是否启用库位 */\n    public IsUseStockPlaceManage: boolean,\n    /** 负责人ID */\n    public ChargeUserCode: string,\n    /** 备注 */\n    public Remark: string,\n    /** 负责人名称 */\n    public ChargeUserName: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** */\n    public SField1: string,\n    /** */\n    public SField2: string,\n    /** */\n    public SField3: string,\n    /** */\n    public FField1: number,\n    /** */\n    public FField2: number,\n    /** */\n    public FField3: number,\n    /** */\n    public DField1: Date,\n    /** */\n    public DField2: Date,\n    /** */\n    public DField3: Date,\n    /** */\n    public DField4: Date,\n    /** 上次修改时间 */\n    public LastModificationTime: Date,\n    /** 上次修改人ID */\n    public LastModifierUserId: number,\n    /** 上次修改人 */\n    public LastModifierUserName: string,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {}\n  static create(): WarehouseConfigDto {\n    return new WarehouseConfigDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n//#endregion 系统参数配置区域结束\n\n//#region 入库计划区域开始\n\n/** 入库计划明细查询模型 */\nexport class InPlanOrderDetailQueryDto {\n  constructor(\n    /** 入库计划号 */\n    public PlanOrderId: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 计划数量 */\n    public PlanQty: number,\n    /** 入库数量 */\n    public ReceivedQty: number,\n    /** 批次号 */\n    public LotNum: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 开始扩展字段7 */\n    public StartDField1: Date,\n    /** 结束扩展字段7 */\n    public EndDField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 开始扩展字段8 */\n    public StartDField2: Date,\n    /** 结束扩展字段8 */\n    public EndDField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 开始扩展字段9 */\n    public StartDField3: Date,\n    /** 结束扩展字段9 */\n    public EndDField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 开始扩展字段10 */\n    public StartDField4: Date,\n    /** 结束扩展字段10 */\n    public EndDField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n\n  static create(): InPlanOrderDetailQueryDto {\n    return new InPlanOrderDetailQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 入库计划明细模型 */\nexport class InPlanOrderDetailDto extends RhSelectableDto {\n  constructor(\n    /** 入库计划号 */\n    public PlanOrderId: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 规格型号 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 包装单位 */\n    public MeasureUnit: string,\n    /** 源单已计划数量 */\n    public SourcePlannedQty: number,\n    /** 源单需求数量 */\n    public DemandQty: number,\n    /** 计划数量 */\n    public PlanQty: number,\n    /** 已办理数量 */\n    // public HandledQty: number,\n    /** 已收数量 */\n    public ReceivedQty: number,\n    /** 退还数量 */\n    public RefusedQty: number,\n    /** 批次号 */\n    public LotNum: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {\n    super();\n  }\n\n  static create(): InPlanOrderDetailDto {\n    return new InPlanOrderDetailDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 入库计划明细 */\nexport class InPlanOrderDetailReadDto extends RhSelectableDto {\n  constructor(\n    /** 源单已计划数量 */\n    public SourcePlannedQty: number,\n    /** 是否开启条形码 */\n    public IsEnableSN: boolean,\n    /** 是否开启批次号 */\n    public IsEnableLotNum: boolean,\n    /** 是否开启保质期 */\n    public IsEnableExpirationDate: boolean,\n    /** 辅助数量 */\n    public MeasureAuxQty: number,\n    /** 辅助单位 */\n    public MeasureAuxUnit: string,\n    /** 入库计划号 */\n    public PlanOrderId: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 规格型号 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 包装单位 */\n    public MeasureUnit: string,\n    /** 源单需求数量 */\n    public DemandQty: number,\n    /** 源单数量 */\n    public SourceOrderQty: number,\n    /** 计划数量 */\n    public PlanQty: number,\n    /** 已收数量 */\n    public ReceivedQty: number,\n    /** 退还数量 */\n    public RefusedQty: number,\n    /** 批次号 */\n    public LotNum: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {\n    super();\n  }\n  static create(): InPlanOrderDetailReadDto {\n    return new InPlanOrderDetailReadDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 入库计划表头模型 */\nexport class InPlanOrderMasterDto {\n  constructor(\n    /** 业务办理人代号 */\n    public TransactorCode: string,\n    /** 业务办理人 */\n    public TransactorName: string,\n    /** 入库计划号 */\n    public PlanOrderId: string,\n    /** 业务类型 */\n    public BusinessType: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 质检人 */\n    public Inspector: string,\n    /** 质检人ID */\n    public InspectorId: string,\n    /** 制单人 */\n    public Creator: string,\n    /** 制单人代码 */\n    public CreatorId: string,\n    /** 制单日期 */\n    public CreateDate: Date,\n    /** 制单时间 */\n    public CreateTime: Date,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人代码 */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {}\n\n  static create(): InPlanOrderMasterDto {\n    return new InPlanOrderMasterDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 审核入库计划模型 */\nexport class AuditInPlanOrderDto {\n  constructor(\n    /** 入库计划号 */\n    public PlanOrderId: string,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人代码 */\n    public AuditorId: string,\n    /** 是否审核通过 */\n    public IsPass: boolean,\n    /** 审核信息 */\n    public AuditMessage: string\n  ) {}\n\n  static create(): AuditInPlanOrderDto {\n    return new AuditInPlanOrderDto(null, null, null, null, null);\n  }\n}\n\n/** 入库计划源单查询模型 */\nexport class InPlanSourceOrderDetailQueryDto {\n  constructor(\n    /** 源单编码 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRow: string\n  ) {}\n  static create(): InPlanSourceOrderDetailQueryDto {\n    return new InPlanSourceOrderDetailQueryDto(null, null);\n  }\n}\n\n/** 入库计划源单明细 */\nexport class InPlanSourceOrderDetailDto {\n  constructor(\n    /** 源单编码 */\n    public SourceOrderId: string,\n    /** 源单名称 */\n    public SourceOrderName: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 计划数量 */\n    public PlanQty: number,\n    /** 已收数量 */\n    public ReceivedQty: number,\n    /** 批次号 */\n    public LotNum: string,\n    /** 源单行号 */\n    public SourceOrderRow: string\n  ) {}\n  static create(): InPlanSourceOrderDetailDto {\n    return new InPlanSourceOrderDetailDto(null, null, null, null, null, null, null);\n  }\n}\n\n/** 创建入库单输出参数 */\nexport class CreateInPlanOrderInput {\n  constructor(\n    /** 采购入库单信息 */\n    public PurchaseInOrderDto: PurchaseInOrderDto,\n    /** 其他入库单信息 */\n    public OtherInOrderDto: OtherInOrderDto,\n    /** 入库计划单明细 */\n    public InPlanOrderDetailDtos: InPlanOrderDetailDto[],\n    /** 入库计划号 */\n    public PlanOrderId: string,\n    /** 业务类型 */\n    public BusinessType: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 制单人 */\n    public Creator: string,\n    /** 制单人代码 */\n    public CreatorId: string,\n    /** 制单日期 */\n    public CreateDate: Date,\n    /** 制单时间 */\n    public CreateTime: Date,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人代码 */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {}\n  static create(): CreateInPlanOrderInput {\n    return new CreateInPlanOrderInput(\n      PurchaseInOrderDto.create(),\n      OtherInOrderDto.create(),\n      [],\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 采购入库表 */\nexport class PurchaseInOrderDto {\n  constructor(\n    /** 入库计划单号 */\n    public PlanOrderId: string,\n    /** 入库单号 */\n    public OrderId: string,\n    /** 供应商 */\n    public Supplier: string,\n    /** 供应商Id */\n    public SupplierId: string,\n    /** 到货日期 */\n    public ArrivalDate: Date,\n    /** 联系人 */\n    public Contacts: string,\n    /** 联系电话 */\n    public ContactNumber: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): PurchaseInOrderDto {\n    return new PurchaseInOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 其他入库表 */\nexport class OtherInOrderDto {\n  constructor(\n    /** 入库计划单号 */\n    public PlanOrderId: string,\n    /** 入库单号 */\n    public OrderId: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): OtherInOrderDto {\n    return new OtherInOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 生产计划单模型 */\nexport class ProductionPlanOrderQueryDto {\n  constructor(\n    /** 生产计划编码 */\n    public ProductionPlanCode: string,\n    /** EPR生产计划编码 */\n    public ErpProductionPlanCode: string,\n    /** 销售订单号 */\n    public SaleOrderCode: string,\n    /** 关联生产单号 */\n    public RelationProductionCode: string,\n    /** 生产类型 */\n    public ProductionType: string,\n    /** 计划类别 */\n    public PlanCategory: string,\n    /** 工艺路线代码 */\n    public ProcessRoutingCode: string,\n    /** 产品编码 */\n    public ProductCode: string,\n    /** 产品名称 */\n    public ProductName: string,\n    /** 产品ERP编码 */\n    public ProductErpCode: string,\n    /** 产品BOM编码 */\n    public ProductBomCode: string,\n    /** 生产计划来源 */\n    public ProductionPlanSource: string,\n    /** 客户编码 */\n    public CustomerCode: string,\n    /** 客户名称 */\n    public CustomerName: string,\n    /** 计划开始日期区间 */\n    public PlanStartDateRange: Date,\n    /** 计划结束日期区间 */\n    public PlanEndDateRange: Date,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 控制状态 */\n    public ControlStatus: string,\n    /** 部门编码 */\n    public OrganizationStructureCode: string,\n    /** 部门名称 */\n    public OrganizationStructureName: string,\n    /** 外部编码 */\n    public OrganizationStructureExternalCode: string,\n    /** 工作中心编码 */\n    public WorkCenterCode: string,\n    /** 工作中心名称 */\n    public WorkCenterName: string,\n    /** 资源编码 */\n    public ResourceCode: string,\n    /** 资源名称 */\n    public ResourceName: string,\n    /** 是否紧急 */\n    public IsEmergency: boolean[],\n    /** 是否外协 */\n    public IsOutSource: boolean[],\n    /** 是否排产 */\n    public IsScheduling: boolean[],\n    /** 主计划编码 */\n    public MasterProductionPlanCode: string,\n    /** 父计划编码 */\n    public ParentProductionPlanCode: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): ProductionPlanOrderQueryDto {\n    return new ProductionPlanOrderQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 生产计划单模型 */\nexport class ProductionPlanOrderDto {\n  constructor(\n    /** 生产计划编码 */\n    public ProductionPlanCode: string,\n    /** EPR生产计划编码 */\n    public ErpProductionPlanCode: string,\n    /** ERP生产计划编码行号 */\n    public ErpProductionPlanRowNo: number,\n    /** 销售订单号 */\n    public SaleOrderCode: string,\n    /** 关联生产单号 */\n    public RelationProductionCode: string,\n    /** 关联生产单行号 */\n    public RelationProductionRowNo: number,\n    /** 生产类型 */\n    public ProductionType: string,\n    /** 计划类别 */\n    public PlanCategory: string,\n    /** 计划员 */\n    public PlanScheduler: string,\n    /** 工艺路线代码 */\n    public ProcessRoutingCode: string,\n    /** 产品编码 */\n    public ProductCode: string,\n    /** 产品名称 */\n    public ProductName: string,\n    /** 产品图号 */\n    public ProductDrawCode: string,\n    /** 产品规格 */\n    public ProductSpecification: string,\n    /** 产品ERP编码 */\n    public ProductErpCode: string,\n    /** 产品ERP名称 */\n    public ProductErpName: string,\n    /** 产品BOM编码 */\n    public ProductBomCode: string,\n    /** 生产计划来源 */\n    public ProductionPlanSource: string,\n    /** 客户编码 */\n    public CustomerCode: string,\n    /** 客户名称 */\n    public CustomerName: string,\n    /** 计划开始日期 */\n    public PlanStartDate: Date,\n    /** 计划开始时间 */\n    public PlanStartTime: Date,\n    /** 计划结束日期 */\n    public PlanEndDate: Date,\n    /** 计划结束时间 */\n    public PlanEndTime: Date,\n    /** 实际开始日期 */\n    public ActualStartDate: Date,\n    /** 实际开始时间 */\n    public ActualStartTime: Date,\n    /** 实际结束日期 */\n    public ActualEndDate: Date,\n    /** 实际结束时间 */\n    public ActualEndTime: Date,\n    /** 计划数量 */\n    public PlanQty: number,\n    /** 已完工数量 */\n    public CompeletedQty: number,\n    /** 未完工数量 */\n    public UnCompeletedQty: number,\n    /** 良品数量 */\n    public GoodQty: number,\n    /** 不良品数量 */\n    public BadQty: number,\n    /** 报废数量 */\n    public ScrappedQty: number,\n    /** 一次不良数量 */\n    public OneGoodQty: number,\n    /** 让步接收数量 */\n    public ConcessionReceiveQty: number,\n    /** 返工良品数量 */\n    public ReworkGoodQty: number,\n    /** 返工报废数量 */\n    public ReworkScrappedQty: number,\n    /** 返工不良数量 */\n    public ReworkBadQty: number,\n    /** 实际投入数量 */\n    public ActualInputQty: number,\n    /** 实际产出数量 */\n    public ActualOutPutQty: number,\n    /** 入库数量 */\n    public InWarehouseQty: number,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 控制状态 */\n    public ControlStatus: string,\n    /** 控制原因 */\n    public ControlReason: string,\n    /** 部门编码 */\n    public OrganizationStructureCode: string,\n    /** 部门名称 */\n    public OrganizationStructureName: string,\n    /** 部门描述 */\n    public OrganizationStructureDisplayName: string,\n    /** 外部编码 */\n    public OrganizationStructureExternalCode: string,\n    /** 工作中心编码 */\n    public WorkCenterCode: string,\n    /** 工作中心名称 */\n    public WorkCenterName: string,\n    /** 资源编码 */\n    public ResourceCode: string,\n    /** 资源名称 */\n    public ResourceName: string,\n    /** 流程卡份数 */\n    public ProductionFlowCardCount: number,\n    /** 流程卡数量 */\n    public ProductionFlowCardQty: number,\n    /** 生产已派工数量 */\n    public ProductionDispatchQty: number,\n    /** 生产已派工单量 */\n    public ProductionDispatchCount: number,\n    /** 优先级 */\n    public PriorityLevel: number,\n    /** 是否紧急 */\n    public IsEmergency: boolean,\n    /** 是否超时 */\n    public IsTimeout: boolean,\n    /** 是否外协 */\n    public IsOutSource: boolean,\n    /** 是否排产 */\n    public IsScheduling: boolean[],\n    /** 计划生产用时 */\n    public ProductionPlanTime: number,\n    /** 实际生产用时 */\n    public ActualProductionTime: number,\n    /** 生产调试用时 */\n    public ProductiongDebugTime: number,\n    /** 主计划编码 */\n    public MasterProductionPlanCode: string,\n    /** 父计划编码 */\n    public ParentProductionPlanCode: string,\n    /** 齐套状况 */\n    public ProductPrepareStatus: string,\n    /** 工厂编码 */\n    public FactoryCode: string,\n    /** */\n    public SField1: string,\n    /** */\n    public SField2: string,\n    /** */\n    public SField3: string,\n    /** */\n    public FField1: number,\n    /** */\n    public FField2: number,\n    /** */\n    public FField3: number,\n    /** */\n    public DField1: Date,\n    /** */\n    public DField2: Date,\n    /** */\n    public DField3: Date,\n    /** */\n    public DField4: Date,\n    /** */\n    public Remark: string,\n    /** 操作年份 */\n    public OpYear: number,\n    /** 操作月份 */\n    public OpMonth: number,\n    /** 操作日 */\n    public OpDay: number,\n    /** 上次修改时间 */\n    public LastModificationTime: Date,\n    /** 上次修改人ID */\n    public LastModifierUserId: number,\n    /** 上次修改人 */\n    public LastModifierUserName: string,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {}\n  static create(): ProductionPlanOrderDto {\n    return new ProductionPlanOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 生产入库计划数据模型 */\nexport class View_ProduceInPlanOrderDto {\n  constructor(\n    /** 入库计划号 */\n    public PlanOrderId: string,\n    /** 业务类型 */\n    public BusinessType: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 质检人 */\n    public Inspector: string,\n    /** 质检人ID */\n    public InspectorId: string,\n    /** 制单人 */\n    public Creator: string,\n    /** 制单人代码 */\n    public CreatorId: string,\n    /** 制单日期 */\n    public CreateDate: Date,\n    /** 制单时间 */\n    public CreateTime: Date,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人代码 */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 备注 */\n    public Remark: string,\n    /** 入库单ID */\n    public OrderId: string,\n    /** 工单代码 */\n    public ProductionPlanCode: string,\n    /** 产品代码 */\n    public ProductCode: string,\n    /** 产品名称 */\n    public ProductName: string,\n    /** 产品规格 */\n    public ProductSpecification: string,\n    /** 客户代码 */\n    public CustomerCode: string,\n    /** 客户名称 */\n    public CustomerName: string,\n    /** 组织架构代码 */\n    public OrganizationStructureCode: string,\n    /** 组织架构代码别名 */\n    public OrganizationStructureDisplayName: string,\n    /** 组织架构外部代码 */\n    public OrganizationStructureExternalCode: string,\n    /** 组织架构名称 */\n    public OrganizationStructureName: string,\n    /** 计划开始日期 */\n    public PlanStartDate: Date,\n    /** 计划结束日期 */\n    public PlanEndDate: Date,\n    /** 计划员 */\n    public PlanScheduler: string,\n    /** 工艺路线代码 */\n    public ProcessRoutingCode: string,\n    /** 产品bom编码 */\n    public ProductBomCode: string,\n    /** 生产类型 */\n    public ProductionType: string,\n    /** 资源名称 */\n    public ResourceName: string,\n    /** 资源代码 */\n    public ResourceCode: string,\n    /** 销售订单代码 */\n    public SaleOrderCode: string,\n    /** 工作中心名称 */\n    public WorkCenterCode: string,\n    /** 工作中心名称 */\n    public WorkCenterName: string,\n    /** */\n    public DField1: Date,\n    /** */\n    public DField2: Date,\n    /** */\n    public DField3: Date,\n    /** */\n    public DField4: Date,\n    /** */\n    public SField1: string,\n    /** */\n    public SField2: string,\n    /** */\n    public SField3: string,\n    /** */\n    public FField1: number,\n    /** */\n    public FField2: number,\n    /** */\n    public FField3: number,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** */\n    public FactoryCode: string,\n    /** */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): View_ProduceInPlanOrderDto {\n    return new View_ProduceInPlanOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 物料档案模型 */\nexport class MaterialDocumentQueryDto {\n  constructor(\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 保质期单位 */\n    public ExpiryUnit: string,\n    /** 启用有效期单位 */\n    public IsEnableExpirationDate: boolean[],\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 供应商代码 */\n    public SupplierCode: string,\n    /** 供应商名称 */\n    public SupplierName: string,\n    /** 客户编码 */\n    public CustomerCode: string,\n    /** 客户名称 */\n    public CustomerName: string,\n    /** 客户产品编码 */\n    public CustomerProductCode: string,\n    /** 启用BOM编码 */\n    public UsingBomCode: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 生产类型 */\n    public ProductionType: string,\n    /** 是否半成品 */\n    public IsSemiFinishedProduct: boolean[],\n    /** 是否产品 */\n    public IsProduct: boolean[],\n    /** 是否物料 */\n    public IsMaterial: boolean[],\n    /** 是否启用条码 */\n    public IsEnableSN: boolean[],\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): MaterialDocumentQueryDto {\n    return new MaterialDocumentQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 物料档案模型 */\nexport class MaterialDocumentDto {\n  constructor(\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 保质期单位 */\n    public ExpiryUnit: string,\n    /** 启用有效期单位 */\n    public IsEnableExpirationDate: boolean[],\n    /** 关联旧物料编码 */\n    public MappedOldMaterialCode: string,\n    /** 供应商代码 */\n    public SupplierCode: string,\n    /** 供应商名称 */\n    public SupplierName: string,\n    /** 是否半成品 */\n    public IsSemiFinishedProduct: boolean,\n    /** 是否产品 */\n    public IsProduct: boolean,\n    /** 是否物料 */\n    public IsMaterial: boolean,\n    /** 是否启用条码 */\n    public IsEnableSN: boolean,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** ERP物料代码 */\n    public MaterialErpCode: string,\n    /** ERP物料名称 */\n    public MaterialErpName: string,\n    /** ERP物料规格 */\n    public MaterialErpSpecification: string,\n    /** 默认车间 */\n    public DefaultWorkShopCode: string,\n    /** 默认仓库 */\n    public DefaultWarehouse: string,\n    /** 默认库位 */\n    public DefaultStockPlace: string,\n    /** 物料状态 */\n    public MaterialState: string,\n    /** 客户编码 */\n    public CustomerCode: string,\n    /** 客户名称 */\n    public CustomerName: string,\n    /** 客户产品编码 */\n    public CustomerProductCode: string,\n    /** 启用BOM编码 */\n    public UsingBomCode: string,\n    /** 生产类型 */\n    public ProductionType: string,\n    /** 备注 */\n    public Remark: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** */\n    public SField1: string,\n    /** */\n    public SField2: string,\n    /** */\n    public SField3: string,\n    /** */\n    public FField1: number,\n    /** */\n    public FField2: number,\n    /** */\n    public FField3: number,\n    /** */\n    public DField1: Date,\n    /** */\n    public DField2: Date,\n    /** */\n    public DField3: Date,\n    /** */\n    public DField4: Date,\n    /** 上次修改时间 */\n    public LastModificationTime: Date,\n    /** 上次修改人ID */\n    public LastModifierUserId: number,\n    /** 上次修改人 */\n    public LastModifierUserName: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建用户Id */\n    public CreatorUserId: number,\n    /** 创建用户名称 */\n    public CreatorUserName: string,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {}\n  static create(): MaterialDocumentDto {\n    return new MaterialDocumentDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 办理生产入库模型 */\nexport class TransactProduceInOrderInput {\n  constructor(\n    /** 入库单号 */\n    public OrderId: string,\n    /** 入库仓库代码 */\n    public InWarehouseCode: string,\n    /** 入库仓库名称 */\n    public InWarehouseName: string,\n    /** 入库库区代码 */\n    public InWarehouseAreaCode: string,\n    /** 入库库区名称 */\n    public InWarehouseAreaName: string,\n    /** 入库货架代码 */\n    public InWarehouseShelfCode: string,\n    /** 入库货架名称 */\n    public InWarehouseShelfName: string,\n    /** 入库库位代码 */\n    public InStorageLocationCode: string,\n    /** 入库库位名称 */\n    public InStorageLocationName: string,\n    /** 计划单号 */\n    public PlanOrderId: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 办理人 */\n    public OrderCreatorCode: string,\n    /** 办理人代码 */\n    public OrderCreatorName: string,\n    /** 客户代码 */\n    public CustomerCode: string,\n    /** 客户名称 */\n    public CustomerName: string,\n    /** 组织架构代码 */\n    public OrganizationStructureCode: string,\n    /** 组织架构代码别名 */\n    public OrganizationStructureDisplayName: string,\n    /** 组织架构外部代码 */\n    public OrganizationStructureExternalCode: string,\n    /** 组织架构名称 */\n    public OrganizationStructureName: string,\n    /** 计划开始日期 */\n    public PlanStartDate: Date,\n    /** 计划结束日期 */\n    public PlanEndDate: Date,\n    /** 计划员 */\n    public PlanScheduler: string,\n    /** 工艺路线代码 */\n    public ProcessRoutingCode: string,\n    /** 产品bom编码 */\n    public ProductBomCode: string,\n    /** 生产类型 */\n    public ProductionType: string,\n    /** 资源名称 */\n    public ResourceName: string,\n    /** 资源代码 */\n    public ResourceCode: string,\n    /** 销售订单代码 */\n    public SaleOrderCode: string,\n    /** 工作中心名称 */\n    public WorkCenterCode: string,\n    /** 工作中心名称 */\n    public WorkCenterName: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {}\n  static create(): TransactProduceInOrderInput {\n    return new TransactProduceInOrderInput(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 查询数据传输对象 */\nexport class View_SaleBackPlanOrderQueryDto {\n  constructor(\n    /** */\n    public OrderStatus: string,\n    /** */\n    public Carrier: string,\n    /** */\n    public FField2: number,\n    /** */\n    public FactoryCode: string,\n    /** */\n    public TransactorCode: string,\n    /** */\n    public BusinessType: string,\n    /** */\n    public SField2: string,\n    /** */\n    public DField2: Date,\n    /** 开始 */\n    public StartDField2: Date,\n    /** 结束 */\n    public EndDField2: Date,\n    /** */\n    public ReceivingAddress: string,\n    /** */\n    public CreatorId: string,\n    /** */\n    public SourceOrderRowNum: string,\n    /** */\n    public DField1: Date,\n    /** 开始 */\n    public StartDField1: Date,\n    /** 结束 */\n    public EndDField1: Date,\n    /** */\n    public SourceOrderId: string,\n    /** */\n    public Creator: string,\n    /** */\n    public AuditorId: string,\n    /** */\n    public FField1: number,\n    /** */\n    public DField4: Date,\n    /** 开始 */\n    public StartDField4: Date,\n    /** 结束 */\n    public EndDField4: Date,\n    /** */\n    public Inspector: string,\n    /** */\n    public CreateTime: Date,\n    /** 开始 */\n    public StartCreateTime: Date,\n    /** 结束 */\n    public EndCreateTime: Date,\n    /** 区间 */\n    public CreateTimeRange: Date,\n    /** */\n    public SField1: string,\n    /** */\n    public CustomerName: string,\n    /** */\n    public AuditDate: Date,\n    /** 开始 */\n    public StartAuditDate: Date,\n    /** 结束 */\n    public EndAuditDate: Date,\n    /** 区间 */\n    public AuditDateRange: Date,\n    /** */\n    public DField3: Date,\n    /** 开始 */\n    public StartDField3: Date,\n    /** 结束 */\n    public EndDField3: Date,\n    /** */\n    public CreateDate: Date,\n    /** 开始 */\n    public StartCreateDate: Date,\n    /** 结束 */\n    public EndCreateDate: Date,\n    /** 区间 */\n    public CreateDateRange: Date,\n    /** */\n    public AuditMessage: string,\n    /** */\n    public TransactorName: string,\n    /** */\n    public WarehouseCode: string,\n    /** */\n    public AuditTime: Date,\n    /** 开始 */\n    public StartAuditTime: Date,\n    /** 结束 */\n    public EndAuditTime: Date,\n    /** 区间 */\n    public AuditTimeRange: Date,\n    /** */\n    public SField3: string,\n    /** */\n    public Auditor: string,\n    /** */\n    public PlanOrderId: string,\n    /** */\n    public InspectorId: string,\n    /** */\n    public Remark: string,\n    /** */\n    public CustomerCode: string,\n    /** */\n    public FField3: number,\n    /** */\n    public WarehouseName: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): View_SaleBackPlanOrderQueryDto {\n    return new View_SaleBackPlanOrderQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 销售退货表 */\nexport class View_SaleBackPlanOrderDto {\n  constructor(\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 承运商 */\n    public Carrier: string,\n    /** */\n    public FField2: number,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 办理人代号 */\n    public TransactorCode: string,\n    /** 业务类型 */\n    public BusinessType: string,\n    /** */\n    public SField2: string,\n    /** */\n    public DField2: Date,\n    /** 收货地址 */\n    public ReceivingAddress: string,\n    /** 创建人Id */\n    public CreatorId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** */\n    public LastModifierUserId: number,\n    /** */\n    public DField1: Date,\n    /** 源单代码 */\n    public SourceOrderId: string,\n    /** 创建人 */\n    public Creator: string,\n    /** 审核人Id */\n    public AuditorId: string,\n    /** */\n    public FField1: number,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** */\n    public DField4: Date,\n    /** 质检人 */\n    public Inspector: string,\n    /** */\n    public CreateTime: Date,\n    /** */\n    public SField1: string,\n    /** 客户名称 */\n    public CustomerName: string,\n    /** */\n    public AuditDate: Date,\n    /** */\n    public Id: number,\n    /** */\n    public DField3: Date,\n    /** */\n    public CreateDate: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 创建人名称 */\n    public CreatorUserName: string,\n    /** */\n    public CreationTime: Date,\n    /** 办理人名称 */\n    public TransactorName: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** */\n    public AuditTime: Date,\n    /** */\n    public SField3: string,\n    /** */\n    public LastModificationTime: Date,\n    /** 审核人 */\n    public Auditor: string,\n    /** 计划单号 */\n    public PlanOrderId: string,\n    /** 质检人Id */\n    public InspectorId: string,\n    /** 备注 */\n    public Remark: string,\n    /** 客户代号 */\n    public CustomerCode: string,\n    /** */\n    public LastModifierUserName: string,\n    /** */\n    public FField3: number,\n    /** 仓库名 */\n    public WarehouseName: string,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): View_SaleBackPlanOrderDto {\n    return new View_SaleBackPlanOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 销售退货表 */\nexport class SaleBackBusinessOrderDto {\n  constructor(\n    /** 质检人 */\n    public Inspector: string,\n    /** 质检人ID */\n    public InspectorId: string,\n    /** 办理日期 */\n    public TransactDate: Date,\n    /** 办理时间 */\n    public TransactTime: Date,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人Id */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 办理人代号 */\n    public TransactorCode: string,\n    /** 办理人 */\n    public TransactorName: string,\n    /** 出库单号 */\n    public OrderId: string,\n    /** 入库仓库代码 */\n    public InWarehouseCode: string,\n    /** 入库仓库名称 */\n    public InWarehouseName: string,\n    /** 入库库区代码 */\n    public InWarehouseAreaCode: string,\n    /** 入库库区名称 */\n    public InWarehouseAreaName: string,\n    /** 入库货架代码 */\n    public InWarehouseShelfCode: string,\n    /** 入库货架名称 */\n    public InWarehouseShelfName: string,\n    /** 入库库位代码 */\n    public InStorageLocationCode: string,\n    /** 入库库位名称 */\n    public InStorageLocationName: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 单据创建人 */\n    public OrderCreatorCode: string,\n    /** 单据创建人名称 */\n    public OrderCreatorName: string,\n    /** 单据创建日期 */\n    public OrderCreateDate: Date,\n    /** 单据创建时间 */\n    public OrderCreateTime: Date,\n    /** 入库计划单号 */\n    public PlanOrderId: string,\n    /** 承运商 */\n    public Carrier: string,\n    /** 客户代码 */\n    public CustomerCode: string,\n    /** 客户名称 */\n    public CustomerName: string,\n    /** 收货地址 */\n    public ReceivingAddress: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): SaleBackBusinessOrderDto {\n    return new SaleBackBusinessOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 销售订单查询模型 */\nexport class SaleBackSourceOrderQueryDto {\n  constructor(\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 源单编码 */\n    public SourceOrderId: string,\n    /** 源单名称 */\n    public SourceOrderName: string\n  ) {}\n  static create(): SaleBackSourceOrderQueryDto {\n    return new SaleBackSourceOrderQueryDto(null, null, null);\n  }\n}\n\n/** 销售订单源单 */\nexport class SaleBackSourceOrder {\n  constructor(\n    /** 源单完成数量 */\n    public SourceCompletedQty: number,\n    /** 辅助单位 */\n    public MeasureAuxUnit: string,\n    /** 源单编码 */\n    public SourceOrderId: string,\n    /** 源单名称 */\n    public SourceOrderName: string,\n    /** 源单行号 */\n    public SourceOrderRow: string,\n    /** 源单物料代码 */\n    public SourceOrderMaterialCode: string,\n    /** 源单物料规格 */\n    public SourceOrderMaterialSpecification: string,\n    /** 源单数量 */\n    public SourceOrderQty: number,\n    /** 源单物料名称 */\n    public SourceOrderMaterialName: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 保质期单位 */\n    public ExpiryUnit: string,\n    /** 有效期 */\n    public ExpirationDate: Date,\n    /** 是否启用保质期 */\n    public IsEnableExpirationDate: boolean[],\n    /** 是否启用批次号 */\n    public IsEnableLotNum: boolean[],\n    /** 是否启用序列号 */\n    public IsEnableSN: boolean[],\n    /** 入库计划单号 */\n    public PlanOrderId: string,\n    /** 承运商 */\n    public Carrier: string,\n    /** 客户代码 */\n    public CustomerCode: string,\n    /** 客户名称 */\n    public CustomerName: string,\n    /** 收货地址 */\n    public ReceivingAddress: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): SaleBackSourceOrder {\n    return new SaleBackSourceOrder(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 出入库单表头模型 */\nexport class InOutOrderMasterQueryDto {\n  constructor(\n    /** 出入库单号 */\n    public OrderId: string,\n    /** 单据类型(入库、出库、调拨、盘点、移库) */\n    public OrderType: string,\n    /** 业务类型 */\n    public BusinessType: string,\n    /** 出库仓库代码 */\n    public OutWarehouseCode: string,\n    /** 出库仓库名称 */\n    public OutWarehouseName: string,\n    /** 出库库区代码 */\n    public OutWarehouseAreaCode: string,\n    /** 出库库区名称 */\n    public OutWarehouseAreaName: string,\n    /** 出库货架代码 */\n    public OutWarehouseShelfCode: string,\n    /** 出库货架名称 */\n    public OutWarehouseShelfName: string,\n    /** 出库库位代码 */\n    public OutStorageLocationCode: string,\n    /** 出库库位名称 */\n    public OutStorageLocationName: string,\n    /** 入库仓库代码 */\n    public InWarehouseCode: string,\n    /** 入库仓库名称 */\n    public InWarehouseName: string,\n    /** 入库库区代码 */\n    public InWarehouseAreaCode: string,\n    /** 入库库区名称 */\n    public InWarehouseAreaName: string,\n    /** 入库货架代码 */\n    public InWarehouseShelfCode: string,\n    /** 入库货架名称 */\n    public InWarehouseShelfName: string,\n    /** 入库库位代码 */\n    public InStorageLocationCode: string,\n    /** 入库库位名称 */\n    public InStorageLocationName: string,\n    /** 计划单号 */\n    public PlanOrderId: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 办理人 */\n    public OrderCreatorCode: string,\n    /** 办理人代码 */\n    public OrderCreatorName: string,\n    /** 办理日期 */\n    public OrderCreateDate: Date,\n    /** 开始办理日期 */\n    public StartTransactDate: Date,\n    /** 结束办理日期 */\n    public EndTransactDate: Date,\n    /** 办理日期区间 */\n    public TransactDateRange: Date,\n    /** 办理时间 */\n    public OrderCreateTime: Date,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 开始办理时间 */\n    public StartTransactTime: Date,\n    /** 结束办理时间 */\n    public EndTransactTime: Date,\n    /** 办理时间区间 */\n    public TransactTimeRange: Date,\n    /** 供应商 */\n    public Supplier: string,\n    /** 供应商Id */\n    public SupplierId: string,\n    /** 到货日期 */\n    public ArrivalDate: Date,\n    /** 联系人 */\n    public Contacts: string,\n    /** 联系电话 */\n    public ContactNumber: string,\n    /** 承运商 */\n    public Carrier: string,\n    /** 收货地址 */\n    public ReceivingAddress: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 开始扩展字段7 */\n    public StartDField1: Date,\n    /** 结束扩展字段7 */\n    public EndDField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 开始扩展字段8 */\n    public StartDField2: Date,\n    /** 结束扩展字段8 */\n    public EndDField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 开始扩展字段9 */\n    public StartDField3: Date,\n    /** 结束扩展字段9 */\n    public EndDField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 开始扩展字段10 */\n    public StartDField4: Date,\n    /** 结束扩展字段10 */\n    public EndDField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 自增键 */\n    public Id: number,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): InOutOrderMasterQueryDto {\n    return new InOutOrderMasterQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n/** 其他出库表 */\nexport class OtherOutBusinessOrderDto {\n  constructor(\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人Id */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: string,\n    /** 审核时间 */\n    public AuditTime: string,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 业务办理人代号 */\n    public TransactorCode: string,\n    /** 业务办理人 */\n    public TransactorName: string,\n    /** 出库仓库代码 */\n    public OutWarehouseCode: string,\n    /** 出库仓库名称 */\n    public OutWarehouseName: string,\n    /** 出库库区代码 */\n    public OutWarehouseAreaCode: string,\n    /** 出库库区名称 */\n    public OutWarehouseAreaName: string,\n    /** 出库货架代码 */\n    public OutWarehouseShelfCode: string,\n    /** 出库货架名称 */\n    public OutWarehouseShelfName: string,\n    /** 出库库位代码 */\n    public OutStorageLocationCode: string,\n    /** 出库库位名称 */\n    public OutStorageLocationName: string,\n    /** 办理人 */\n    public OrderCreatorCode: string,\n    /** 办理人代码 */\n    public OrderCreatorName: string,\n    /** 办理日期 */\n    public OrderCreateDate: Date,\n    /** 办理时间 */\n    public OrderCreateTime: Date,\n    /** 出库计划单号 */\n    public PlanOrderId: string,\n    /** 业务类型 */\n    public OtherOrderType: string,\n    /** 客户 */\n    public CustomerName: string,\n    /** 客户Id */\n    public CustomerCode: string,\n    /** 出库单号 */\n    public OrderId: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): OtherOutBusinessOrderDto {\n    return new OtherOutBusinessOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 生产入库单表 */\nexport class ProduceInBusinessOrderDto {\n  constructor(\n    /** 业务办理人代号 */\n    public TransactorCode: string,\n    /** 业务办理人 */\n    public TransactorName: string,\n    /** 入库仓库代码 */\n    public InWarehouseCode: string,\n    /** 入库仓库名称 */\n    public InWarehouseName: string,\n    /** 入库库区代码 */\n    public InWarehouseAreaCode: string,\n    /** 入库库区名称 */\n    public InWarehouseAreaName: string,\n    /** 入库货架代码 */\n    public InWarehouseShelfCode: string,\n    /** 入库货架名称 */\n    public InWarehouseShelfName: string,\n    /** 入库库位代码 */\n    public InStorageLocationCode: string,\n    /** 入库库位名称 */\n    public InStorageLocationName: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 办理人 */\n    public OrderCreatorCode: string,\n    /** 办理人代码 */\n    public OrderCreatorName: string,\n    /** 入库计划ID */\n    public PlanOrderId: string,\n    /** 入库单ID */\n    public OrderId: string,\n    /** 工单代码 */\n    public ProductionPlanCode: string,\n    /** 产品代码 */\n    public ProductCode: string,\n    /** 产品名称 */\n    public ProductName: string,\n    /** 产品规格 */\n    public ProductSpecification: string,\n    /** 客户代码 */\n    public CustomerCode: string,\n    /** 客户名称 */\n    public CustomerName: string,\n    /** 组织架构代码 */\n    public OrganizationStructureCode: string,\n    /** 组织架构代码别名 */\n    public OrganizationStructureDisplayName: string,\n    /** 组织架构外部代码 */\n    public OrganizationStructureExternalCode: string,\n    /** 组织架构名称 */\n    public OrganizationStructureName: string,\n    /** 计划开始日期 */\n    public PlanStartDate: Date,\n    /** 计划结束日期 */\n    public PlanEndDate: Date,\n    /** 计划员 */\n    public PlanScheduler: string,\n    /** 工艺路线代码 */\n    public ProcessRoutingCode: string,\n    /** 产品bom编码 */\n    public ProductBomCode: string,\n    /** 生产类型 */\n    public ProductionType: string,\n    /** 资源名称 */\n    public ResourceName: string,\n    /** 资源代码 */\n    public ResourceCode: string,\n    /** 销售订单代码 */\n    public SaleOrderCode: string,\n    /** 工作中心名称 */\n    public WorkCenterCode: string,\n    /** 工作中心名称 */\n    public WorkCenterName: string,\n    /** 良品数量 */\n    public GoodQty: number,\n    /** 不良品数量 */\n    public BadQty: number,\n    /** 备注 */\n    public Remark: string,\n    /** */\n    public DField1: Date,\n    /** */\n    public DField2: Date,\n    /** */\n    public DField3: Date,\n    /** */\n    public DField4: Date,\n    /** */\n    public SField1: string,\n    /** */\n    public SField2: string,\n    /** */\n    public SField3: string,\n    /** */\n    public FField1: number,\n    /** */\n    public FField2: number,\n    /** */\n    public FField3: number,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** */\n    public FactoryCode: string,\n    /** */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): ProduceInBusinessOrderDto {\n    return new ProduceInBusinessOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 其他入库表 */\nexport class OtherInBusinessOrderDto {\n  constructor(\n    /** 业务办理人代号 */\n    public TransactorCode: string,\n    /** 业务办理人 */\n    public TransactorName: string,\n    /** 入库仓库代码 */\n    public InWarehouseCode: string,\n    /** 入库仓库名称 */\n    public InWarehouseName: string,\n    /** 入库库区代码 */\n    public InWarehouseAreaCode: string,\n    /** 入库库区名称 */\n    public InWarehouseAreaName: string,\n    /** 入库货架代码 */\n    public InWarehouseShelfCode: string,\n    /** 入库货架名称 */\n    public InWarehouseShelfName: string,\n    /** 入库库位代码 */\n    public InStorageLocationCode: string,\n    /** 入库库位名称 */\n    public InStorageLocationName: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 办理人 */\n    public OrderCreatorCode: string,\n    /** 办理人代码 */\n    public OrderCreatorName: string,\n    /** 办理日期 */\n    public OrderCreateDate: Date,\n    /** 办理时间 */\n    public OrderCreateTime: Date,\n    /** 入库计划单号 */\n    public PlanOrderId: string,\n    /** 业务类型 */\n    public OtherOrderType: string,\n    /** 供应商 */\n    public Supplier: string,\n    /** 供应商Id */\n    public SupplierId: string,\n    /** 入库单号 */\n    public OrderId: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): OtherInBusinessOrderDto {\n    return new OtherInBusinessOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 生产入库源单查询模型 */\nexport class ProduceInSourceOrderQueryDto {\n  constructor(\n    /** 生产订单单号 */\n    public SourceOrderId: string,\n    /** 工厂代码 */\n    public FactoryCode: string\n  ) {}\n  static create(): ProduceInSourceOrderQueryDto {\n    return new ProduceInSourceOrderQueryDto(null, null);\n  }\n}\n\n/** 外部采购订单信息查询模型 */\nexport class ExtPurchaseOrderQueryDto {\n  constructor(\n    /** 采购单号 */\n    public PurchaseCode: string,\n    /** 采购单日期区间 */\n    public OrderCreateDateRange: Date,\n    /** 物料编号 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 供应商代码 */\n    public SupplierCode: string,\n    /** 供应商名称 */\n    public SupplierName: string,\n    /** 工厂代码 */\n    public FactoryCode: string\n  ) {}\n  static create(): ExtPurchaseOrderQueryDto {\n    return new ExtPurchaseOrderQueryDto(null, null, null, null, null, null, null);\n  }\n}\n\n/** 采购单明细模型(外部系统) */\nexport class ExtPurchaseOrderDto extends RhSelectableDto {\n  constructor(\n    /** 采购单号 */\n    public PurchaseCode: string,\n    /** 采购单行号 */\n    public PurchaseOrderRowNum: string,\n    /** 采购日期 */\n    public PurchaseDate: Date,\n    /** 交货日期 */\n    public DeliveryDate: Date,\n    /** 采购数量 */\n    public PurchaseQty: number,\n    /** 已收数量 */\n    public ReceivedQty: number,\n    /** 未收数量 */\n    public UnReceiveQty: number,\n    /** 交货上限% */\n    public DeliveryUpperLimit: number,\n    /** 交货下限% */\n    public DeliveryLowwerLimit: number,\n    /** 单据创建日期 */\n    public OrderCreateDate: Date,\n    /** 供应商代码 */\n    public SupplierCode: string,\n    /** 供应商名称 */\n    public SupplierName: string,\n    /** 供应商批次 */\n    public SupplierLotNum: string,\n    /** 物料编号 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 测量单位 */\n    public MeasureUnit: string,\n    /** 备注 */\n    public Remark: string,\n    /** 工厂代码 */\n    public FactoryCode: string\n  ) {\n    super();\n  }\n  static create(): ExtPurchaseOrderDto {\n    return new ExtPurchaseOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n/** 生产入库计划查询模型 */\nexport class View_ProduceInOrderQueryDto {\n  constructor(\n    /** 入库计划号 */\n    public PlanOrderId: string,\n    /** 业务类型 */\n    public BusinessType: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 质检人 */\n    public Inspector: string,\n    /** 质检人ID */\n    public InspectorId: string,\n    /** 制单人 */\n    public Creator: string,\n    /** 制单人代码 */\n    public CreatorId: string,\n    /** 制单日期 */\n    public CreateDate: Date,\n    /** 制单时间 */\n    public CreateTime: Date,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人代码 */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 工单代码 */\n    public ProductionPlanCode: string,\n    /** 产品代码 */\n    public ProductCode: string,\n    /** 产品名称 */\n    public ProductName: string,\n    /** 产品规格 */\n    public ProductSpecification: string,\n    /** 客户代码 */\n    public CustomerCode: string,\n    /** 客户名称 */\n    public CustomerName: string,\n    /** 组织架构代码 */\n    public OrganizationStructureCode: string,\n    /** 组织架构代码别名 */\n    public OrganizationStructureDisplayName: string,\n    /** 组织架构外部代码 */\n    public OrganizationStructureExternalCode: string,\n    /** 组织架构名称 */\n    public OrganizationStructureName: string,\n    /** 计划员 */\n    public PlanScheduler: string,\n    /** 工艺路线代码 */\n    public ProcessRoutingCode: string,\n    /** 产品bom编码 */\n    public ProductBomCode: string,\n    /** 生产类型 */\n    public ProductionType: string,\n    /** 资源名称 */\n    public ResourceName: string,\n    /** 资源代码 */\n    public ResourceCode: string,\n    /** 销售订单代码 */\n    public SaleOrderCode: string,\n    /** 工作中心名称 */\n    public WorkCenterCode: string,\n    /** 工作中心名称 */\n    public WorkCenterName: string,\n    /** 备注 */\n    public Remark: string,\n    /** */\n    public SField1: string,\n    /** */\n    public SField2: string,\n    /** */\n    public SField3: string,\n    /** */\n    public FField1: number,\n    /** */\n    public FField2: number,\n    /** */\n    public FField3: number,\n    /** */\n    public DField1: Date,\n    /** */\n    public DField2: Date,\n    /** */\n    public DField3: Date,\n    /** */\n    public DField4: Date,\n    /** */\n    public FactoryCode: string,\n    /** */\n    public Id: number,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): View_ProduceInOrderQueryDto {\n    return new View_ProduceInOrderQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 其他入库计划 查询数据传输对象 */\nexport class View_OtherInPlanOrderQueryDto {\n  constructor(\n    /** 入库单号 */\n    public OrderId: string,\n    /** 入库计划号 */\n    public PlanOrderId: string,\n    /** 业务类型 */\n    public BusinessType: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 库区代码 */\n    public WarehouseAreaCode: string,\n    /** 库区名称 */\n    public WarehouseAreaName: string,\n    /** 货架代码 */\n    public WarehouseShelfCode: string,\n    /** 货架名称 */\n    public WarehouseShelfName: string,\n    /** 库位代码 */\n    public StorageLocationCode: string,\n    /** 库位名称 */\n    public StorageLocationName: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 制单人 */\n    public Creator: string,\n    /** 制单人代码 */\n    public CreatorId: string,\n    /** 制单日期 */\n    public CreateDate: Date,\n    /** 制单时间 */\n    public CreateTime: Date,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人代码 */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 备注 */\n    public Remark: string,\n    /** */\n    public SField1: string,\n    /** */\n    public SField3: string,\n    /** */\n    public SField2: string,\n    /** */\n    public FField1: number,\n    /** */\n    public FField3: number,\n    /** */\n    public FField2: number,\n    /** */\n    public DField1: Date,\n    /** */\n    public DField2: Date,\n    /** */\n    public DField3: Date,\n    /** */\n    public DField4: Date,\n    /** */\n    public FactoryCode: string,\n    /** */\n    public CreationTime: Date,\n    /** */\n    public CreatorUserId: number,\n    /** */\n    public CreatorUserName: string,\n    /** */\n    public LastModificationTime: Date,\n    /** */\n    public LastModifierUserId: number,\n    /** */\n    public LastModifierUserName: string,\n    /** */\n    public Id: number,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): View_OtherInPlanOrderQueryDto {\n    return new View_OtherInPlanOrderQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 其他入库计划 */\nexport class View_OtherInPlanOrderDto {\n  constructor(\n    /** 业务办理人代号 */\n    public TransactorCode: string,\n    /** 业务办理人 */\n    public TransactorName: string,\n    /** 入库单号 */\n    public OrderId: string,\n    /** 业务类型 */\n    public OtherOrderType: string,\n    /** 供应商 */\n    public Supplier: string,\n    /** 供应商Id */\n    public SupplierId: string,\n    /** 入库计划号 */\n    public PlanOrderId: string,\n    /** 业务类型 */\n    public BusinessType: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 制单人 */\n    public Creator: string,\n    /** 制单人代码 */\n    public CreatorId: string,\n    /** 制单日期 */\n    public CreateDate: Date,\n    /** 制单时间 */\n    public CreateTime: Date,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人代码 */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 备注 */\n    public Remark: string,\n    /** */\n    public SField1: string,\n    /** */\n    public SField3: string,\n    /** */\n    public SField2: string,\n    /** */\n    public FField1: number,\n    /** */\n    public FField3: number,\n    /** */\n    public FField2: number,\n    /** */\n    public DField1: Date,\n    /** */\n    public DField2: Date,\n    /** */\n    public DField3: Date,\n    /** */\n    public DField4: Date,\n    /** */\n    public FactoryCode: string,\n    /** */\n    public CreationTime: Date,\n    /** */\n    public CreatorUserId: number,\n    /** */\n    public CreatorUserName: string,\n    /** */\n    public LastModificationTime: Date,\n    /** */\n    public LastModifierUserId: number,\n    /** */\n    public LastModifierUserName: string,\n    /** */\n    public OpSign: number,\n    /** */\n    public Id: number\n  ) {}\n  static create(): View_OtherInPlanOrderDto {\n    return new View_OtherInPlanOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 其他出库计划查询模型 */\nexport class View_OtherOutPlanOrderQueryDto {\n  constructor(\n    /** */\n    public OrderId: string,\n    /** */\n    public CreatorId: string,\n    /** */\n    public AuditDate: Date,\n    /** 开始 */\n    public StartAuditDate: Date,\n    /** 结束 */\n    public EndAuditDate: Date,\n    /** 区间 */\n    public AuditDateRange: Date,\n    /** */\n    public SField2: string,\n    /** */\n    public DField4: Date,\n    /** 开始 */\n    public StartDField4: Date,\n    /** 结束 */\n    public EndDField4: Date,\n    /** */\n    public CreateTime: Date,\n    /** 开始 */\n    public StartCreateTime: Date,\n    /** 结束 */\n    public EndCreateTime: Date,\n    /** 区间 */\n    public CreateTimeRange: Date,\n    /** */\n    public OrderStatus: string,\n    /** */\n    public FField2: number,\n    /** */\n    public InspectorId: string,\n    /** */\n    public Auditor: string,\n    /** */\n    public DField3: Date,\n    /** 开始 */\n    public StartDField3: Date,\n    /** 结束 */\n    public EndDField3: Date,\n    /** */\n    public WarehouseName: string,\n    /** */\n    public Creator: string,\n    /** */\n    public AuditTime: Date,\n    /** 开始 */\n    public StartAuditTime: Date,\n    /** 结束 */\n    public EndAuditTime: Date,\n    /** 区间 */\n    public AuditTimeRange: Date,\n    /** */\n    public FactoryCode: string,\n    /** */\n    public SourceOrderId: string,\n    /** */\n    public CreateDate: Date,\n    /** 开始 */\n    public StartCreateDate: Date,\n    /** 结束 */\n    public EndCreateDate: Date,\n    /** 区间 */\n    public CreateDateRange: Date,\n    /** */\n    public Remark: string,\n    /** */\n    public FField3: number,\n    /** */\n    public Inspector: string,\n    /** */\n    public BusinessType: string,\n    /** */\n    public SField3: string,\n    /** */\n    public DField2: Date,\n    /** 开始 */\n    public StartDField2: Date,\n    /** 结束 */\n    public EndDField2: Date,\n    /** */\n    public WarehouseCode: string,\n    /** */\n    public AuditMessage: string,\n    /** */\n    public FField1: number,\n    /** */\n    public SourceOrderRowNum: string,\n    /** */\n    public PlanOrderId: string,\n    /** */\n    public AuditorId: string,\n    /** */\n    public SField1: string,\n    /** */\n    public DField1: Date,\n    /** 开始 */\n    public StartDField1: Date,\n    /** 结束 */\n    public EndDField1: Date,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): View_OtherOutPlanOrderQueryDto {\n    return new View_OtherOutPlanOrderQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 其他出库表 */\nexport class View_OtherOutPlanOrderDto {\n  constructor(\n    /** 业务办理人代号 */\n    public TransactorCode: string,\n    /** 业务办理人 */\n    public TransactorName: string,\n    /** 业务类型 */\n    public OtherOrderType: string,\n    /** 客户 */\n    public CustomerName: string,\n    /** 客户Id */\n    public CustomerCode: string,\n    /** 出库单号 */\n    public OrderId: string,\n    /** 建单人id */\n    public CreatorId: string,\n    /** 最后修改人Id */\n    public LastModifierUserId: number,\n    /** 审核时间 */\n    public AuditDate: Date,\n    /** */\n    public SField2: string,\n    /** */\n    public DField4: Date,\n    /** */\n    public CreateTime: Date,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 建单用户id */\n    public CreatorUserId: number,\n    /** */\n    public FField2: number,\n    /** 检查人 */\n    public InspectorId: string,\n    /** 审核人 */\n    public Auditor: string,\n    /** 建单人名称 */\n    public CreatorUserName: string,\n    /** */\n    public DField3: Date,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 最后修改用户名 */\n    public LastModifierUserName: string,\n    /** 建单人 */\n    public Creator: string,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 工厂单号 */\n    public FactoryCode: string,\n    /** 源单号 */\n    public SourceOrderId: string,\n    /** 创建日期 */\n    public CreateDate: Date,\n    /** 备注 */\n    public Remark: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** */\n    public FField3: number,\n    /** 检查人 */\n    public Inspector: string,\n    /** 业务类型 */\n    public BusinessType: string,\n    /** */\n    public SField3: string,\n    /** */\n    public DField2: Date,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** */\n    public Id: number,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** */\n    public FField1: number,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 计划单号 */\n    public PlanOrderId: string,\n    /** */\n    public LastModificationTime: Date,\n    /** 审核人Id */\n    public AuditorId: string,\n    /** */\n    public SField1: string,\n    /** */\n    public DField1: Date,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): View_OtherOutPlanOrderDto {\n    return new View_OtherOutPlanOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 采购入库计划 */\nexport class View_PurchaseInPlanOrderQueryDto {\n  constructor(\n    /** 入库计划单号 */\n    public PlanOrderId: string,\n    /** 业务类型 */\n    public BusinessType: string,\n    /** 入库单号 */\n    public OrderId: string,\n    /** 供应商 */\n    public Supplier: string,\n    /** 到货日期 */\n    public ArrivalDate: Date,\n    /** 联系人 */\n    public Contacts: string,\n    /** 联系电话 */\n    public ContactNumber: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 审核人代码 */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 制单人 */\n    public Creator: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 制单人代码 */\n    public CreatorId: string,\n    /** 制单日期 */\n    public CreateDate: Date,\n    /** 制单时间 */\n    public CreateTime: Date,\n    /** 备注 */\n    public Remark: string,\n    /** */\n    public SField1: string,\n    /** */\n    public SField2: string,\n    /** */\n    public SField3: string,\n    /** */\n    public FField1: number,\n    /** */\n    public FField2: number,\n    /** */\n    public FField3: number,\n    /** */\n    public DField1: Date,\n    /** */\n    public DField2: Date,\n    /** */\n    public DField3: Date,\n    /** */\n    public DField4: Date,\n    /** */\n    public FactoryCode: string,\n    /** */\n    public CreationTime: Date,\n    /** */\n    public CreatorUserId: number,\n    /** */\n    public CreatorUserName: string,\n    /** */\n    public LastModificationTime: Date,\n    /** */\n    public LastModifierUserId: number,\n    /** */\n    public LastModifierUserName: string,\n    /** */\n    public SupplierId: string,\n    /** */\n    public Id: number,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): View_PurchaseInPlanOrderQueryDto {\n    return new View_PurchaseInPlanOrderQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 采购入库计划 */\nexport class View_PurchaseInPlanOrderDto {\n  constructor(\n    /** 质检人ID */\n    public InspectorId: string,\n    /** 质检人 */\n    public Inspector: string,\n    /** 采购员 */\n    public Purchaser: string,\n    /** 采购员Id */\n    public PurchaserId: string,\n    /** 业务办理人代号 */\n    public TransactorCode: string,\n    /** 业务办理人 */\n    public TransactorName: string,\n    /** 入库计划单号 */\n    public PlanOrderId: string,\n    /** 业务类型 */\n    public BusinessType: string,\n    /** 入库单号 */\n    public OrderId: string,\n    /** 供应商 */\n    public Supplier: string,\n    /** 到货日期 */\n    public ArrivalDate: Date,\n    /** 联系人 */\n    public Contacts: string,\n    /** 联系电话 */\n    public ContactNumber: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 库区名称 */\n    public WarehouseAreaName: string,\n    /** 库区代码 */\n    public WarehouseAreaCode: string,\n    /** 货架代码 */\n    public WarehouseShelfCode: string,\n    /** 货架名称 */\n    public WarehouseShelfName: string,\n    /** 库位代码 */\n    public StorageLocationCode: string,\n    /** 库位名称 */\n    public StorageLocationName: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 审核人代码 */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 制单人 */\n    public Creator: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 制单人代码 */\n    public CreatorId: string,\n    /** 制单日期 */\n    public CreateDate: Date,\n    /** 制单时间 */\n    public CreateTime: Date,\n    /** 备注 */\n    public Remark: string,\n    /** */\n    public SField1: string,\n    /** */\n    public SField2: string,\n    /** */\n    public SField3: string,\n    /** */\n    public FField1: number,\n    /** */\n    public FField2: number,\n    /** */\n    public FField3: number,\n    /** */\n    public DField1: Date,\n    /** */\n    public DField2: Date,\n    /** */\n    public DField3: Date,\n    /** */\n    public DField4: Date,\n    /** */\n    public FactoryCode: string,\n    /** */\n    public CreationTime: Date,\n    /** */\n    public CreatorUserId: number,\n    /** */\n    public CreatorUserName: string,\n    /** */\n    public LastModificationTime: Date,\n    /** */\n    public LastModifierUserId: number,\n    /** */\n    public LastModifierUserName: string,\n    /** */\n    public SupplierId: string,\n    /** */\n    public OpSign: number,\n    /** */\n    public Id: number\n  ) {}\n  static create(): View_PurchaseInPlanOrderDto {\n    return new View_PurchaseInPlanOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 查询数据传输对象 */\nexport class View_MaterialBackInPlanOrderQueryDto {\n  constructor(\n    /** 最后修改人ID */\n    public LastModifierUserId: number,\n    /** 审核人 */\n    public Auditor: string,\n    /** 备注 */\n    public Remark: string,\n    /** 生产计划员 */\n    public ProductionScheduler: string,\n    /** 制单人名称 */\n    public CreatorUserName: string,\n    /** 制单人ID */\n    public CreatorId: string,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** */\n    public SField3: string,\n    /** */\n    public FField3: number,\n    /** */\n    public PlanOrderId: string,\n    /** 最后修改时间 */\n    public LastModificationTime: Date,\n    /** 创建时间 */\n    public CreateTime: Date,\n    /** 开始 */\n    public StartCreateTime: Date,\n    /** 结束 */\n    public EndCreateTime: Date,\n    /** 区间 */\n    public CreateTimeRange: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 开始 */\n    public StartAuditTime: Date,\n    /** 结束 */\n    public EndAuditTime: Date,\n    /** 区间 */\n    public AuditTimeRange: Date,\n    /** */\n    public DField3: Date,\n    /** 开始 */\n    public StartDField3: Date,\n    /** 结束 */\n    public EndDField3: Date,\n    /** 检查人 */\n    public Inspector: string,\n    /** 审核人Id */\n    public AuditorId: string,\n    /** */\n    public Id: number,\n    /** 创建日期 */\n    public CreationTime: Date,\n    /** 源单ID */\n    public SourceOrderId: string,\n    /** 创建人 */\n    public Creator: string,\n    /** */\n    public FField1: number,\n    /** */\n    public DField1: Date,\n    /** 开始 */\n    public StartDField1: Date,\n    /** 结束 */\n    public EndDField1: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** */\n    public SourceOrderRowNum: string,\n    /** */\n    public BusinessType: string,\n    /** */\n    public CreateDate: Date,\n    /** 开始 */\n    public StartCreateDate: Date,\n    /** 结束 */\n    public EndCreateDate: Date,\n    /** 区间 */\n    public CreateDateRange: Date,\n    /** */\n    public SField1: string,\n    /** */\n    public DField4: Date,\n    /** 开始 */\n    public StartDField4: Date,\n    /** 结束 */\n    public EndDField4: Date,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 开始 */\n    public StartAuditDate: Date,\n    /** 结束 */\n    public EndAuditDate: Date,\n    /** 区间 */\n    public AuditDateRange: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** */\n    public SField2: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** */\n    public DField2: Date,\n    /** 开始 */\n    public StartDField2: Date,\n    /** 结束 */\n    public EndDField2: Date,\n    /** */\n    public FField2: number,\n    /** 退料入库单 */\n    public PickingInOrderCode: string,\n    /** 检查人ID */\n    public InspectorId: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): View_MaterialBackInPlanOrderQueryDto {\n    return new View_MaterialBackInPlanOrderQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 表 */\nexport class View_MaterialBackInPlanOrderDto {\n  constructor(\n    /** 业务办理人代号 */\n    public TransactorCode: string,\n    /** 业务办理人 */\n    public TransactorName: string,\n    /** 最后修改人ID */\n    public LastModifierUserId: number,\n    /** 审核人 */\n    public Auditor: string,\n    /** 备注 */\n    public Remark: string,\n    /** 生产计划员 */\n    public ProductionScheduler: string,\n    /** 制单人名称 */\n    public CreatorUserName: string,\n    /** 制单人ID */\n    public CreatorId: string,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** */\n    public SField3: string,\n    /** */\n    public FField3: number,\n    /** */\n    public PlanOrderId: string,\n    /** 最后修改时间 */\n    public LastModificationTime: Date,\n    /** 创建时间 */\n    public CreateTime: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** */\n    public DField3: Date,\n    /** 检查人 */\n    public Inspector: string,\n    /** 审核人Id */\n    public AuditorId: string,\n    /** */\n    public Id: number,\n    /** 创建日期 */\n    public CreationTime: Date,\n    /** 源单ID */\n    public SourceOrderId: string,\n    /** 创建人 */\n    public Creator: string,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** */\n    public FField1: number,\n    /** */\n    public DField1: Date,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 业务类型 */\n    public BusinessType: string,\n    /** 最后修改人名称 */\n    public LastModifierUserName: string,\n    /** 创建日期 */\n    public CreateDate: Date,\n    /** */\n    public SField1: string,\n    /** */\n    public DField4: Date,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 工厂代号 */\n    public FactoryCode: string,\n    /** */\n    public SField2: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** */\n    public DField2: Date,\n    /** */\n    public FField2: number,\n    /** 退料入库单 */\n    public PickingInOrderCode: string,\n    /** 检查人Id */\n    public InspectorId: string,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): View_MaterialBackInPlanOrderDto {\n    return new View_MaterialBackInPlanOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 退料入库查询模型 */\nexport class MaterialBackInOrderQueryDto {\n  constructor(\n    /** 生产订单Id */\n    public SourceOrderId: string,\n    /** 领料单号 */\n    public PickingOrderCode: string,\n    /** 工厂代码 */\n    public FactoryCode: string\n  ) {}\n  static create(): MaterialBackInOrderQueryDto {\n    return new MaterialBackInOrderQueryDto(null, null, null);\n  }\n}\n\n/** 生产领料源单明细 */\nexport class MaterialBackInOrderDto extends RhSelectableDto {\n  constructor(\n    /** 生产订单Id */\n    public SourceOrderId: string,\n    /** 生产订单名称 */\n    public SourceOrderName: string,\n    /** 生产订单行号 */\n    public SourceOrderRow: string,\n    /** 领料单物料代码 */\n    public SourceOrderMaterialCode: string,\n    /** 领料单物料名称 */\n    public SourceOrderMaterialName: string,\n    /** 领料单单数量 */\n    public SourceOrderQty: number,\n    /** 领料单物料规格 */\n    public SourceOrderMaterialSpecification: string,\n    /** 备注 */\n    public Remark: string,\n    /**  */\n    public FactoryCode: string,\n    /** 领料单号 */\n    public PickingOrderCode: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 保质期单位 */\n    public ExpiryUnit: string,\n    /** 有效期 */\n    public ExpirationDate: Date,\n    /** 计划数量 */\n    public PlanQty: number,\n    /** 是否启用保质期 */\n    public IsEnableExpirationDate: boolean,\n    /** 是否启用批次号 */\n    public IsEnableLotNum: boolean,\n    /** 是否启用序列号 */\n    public IsEnableSN: boolean\n  ) {\n    super();\n  }\n  static create(): MaterialBackInOrderDto {\n    return new MaterialBackInOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 生产领料源单查询 */\nexport class PickingSourceOrderQueryDto {\n  constructor(\n    /** 源单编码 */\n    public SourceOrderId: string,\n    /** 工厂代码 */\n    public FactoryCode: string\n  ) {}\n  static create(): PickingSourceOrderQueryDto {\n    return new PickingSourceOrderQueryDto(null, null);\n  }\n}\n\n/** 生产领料源单 */\nexport class PickingSourceOrderDto {\n  constructor(\n    /** 源单编码 */\n    public SourceOrderId: string,\n    /** 产品代码 */\n    public ProductCode: string,\n    /** 产品名称 */\n    public ProductName: string,\n    /** 产品规格 */\n    public ProductSpecification: string,\n    /** 产品BOM编码 */\n    public ProductBomCode: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 领料单号 */\n    public PickingOrderCode: string\n  ) {}\n  static create(): PickingSourceOrderDto {\n    return new PickingSourceOrderDto(null, null, null, null, null, null, null);\n  }\n}\n\n/** 退料入库查询模型 */\nexport class OutPickingOutSourceOrderQueryDto {\n  constructor(\n    /** 生产订单Id */\n    public SourceOrderId: string,\n    /** 领料单号 */\n    public PickingOrderCode: string,\n    /** 工厂代码 */\n    public FactoryCode: string\n  ) {}\n  static create(): OutPickingOutSourceOrderQueryDto {\n    return new OutPickingOutSourceOrderQueryDto(null, null, null);\n  }\n}\n\n/** 生产领料源单明细 */\nexport class OutPickingOutSourceOrderDto {\n  constructor(\n    /** 生产订单Id */\n    public SourceOrderId: string,\n    /** 生产订单名称 */\n    public SourceOrderName: string,\n    /** 生产订单行号 */\n    public SourceOrderRow: string,\n    /** 辅助单位 */\n    public MeasureAuxUnit: string,\n    /** 领料单物料代码 */\n    public SourceOrderMaterialCode: string,\n    /** 领料单物料名称 */\n    public SourceOrderMaterialName: string,\n    /** 领料单单数量 */\n    public SourceOrderQty: number,\n    /** 领料单物料规格 */\n    public SourceOrderMaterialSpecification: string,\n    /** 备注 */\n    public Remark: string,\n    /** */\n    public FactoryCode: string,\n    /** 领料单号 */\n    public PickingOrderCode: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 保质期单位 */\n    public ExpiryUnit: string,\n    /** 有效期 */\n    public ExpirationDate: Date,\n    /** 计划数量 */\n    public PlanQty: number,\n    /** 是否启用保质期 */\n    public IsEnableExpirationDate: boolean[],\n    /** 是否启用批次号 */\n    public IsEnableLotNum: boolean[],\n    /** 是否启用序列号 */\n    public IsEnableSN: boolean[]\n  ) {}\n  static create(): OutPickingOutSourceOrderDto {\n    return new OutPickingOutSourceOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 查询数据传输对象 */\nexport class View_OutPickingOutPlanOrderQueryDto {\n  constructor(\n    /** */\n    public ArrivalDate: Date,\n    /** 开始 */\n    public StartArrivalDate: Date,\n    /** 结束 */\n    public EndArrivalDate: Date,\n    /** 区间 */\n    public ArrivalDateRange: Date,\n    /** */\n    public FField1: number,\n    /** */\n    public AuditMessage: string,\n    /** */\n    public Auditor: string,\n    /** */\n    public FField3: number,\n    /** */\n    public WarehouseName: string,\n    /** */\n    public Remark: string,\n    /** */\n    public BusinessType: string,\n    /** */\n    public CreatorId: string,\n    /** */\n    public FField2: number,\n    /** */\n    public ContactNumber: string,\n    /** */\n    public PlanOrderId: string,\n    /** */\n    public OrderStatus: string,\n    /** */\n    public Inspector: string,\n    /** */\n    public DField2: Date,\n    /** 开始 */\n    public StartDField2: Date,\n    /** 结束 */\n    public EndDField2: Date,\n    /** */\n    public Supplier: string,\n    /** */\n    public SField2: string,\n    /** */\n    public SourceOrderRowNum: string,\n    /** */\n    public AuditDate: Date,\n    /** 开始 */\n    public StartAuditDate: Date,\n    /** 结束 */\n    public EndAuditDate: Date,\n    /** 区间 */\n    public AuditDateRange: Date,\n    /** */\n    public FactoryCode: string,\n    /** */\n    public DField1: Date,\n    /** 开始 */\n    public StartDField1: Date,\n    /** 结束 */\n    public EndDField1: Date,\n    /** */\n    public SourceOrderId: string,\n    /** */\n    public TransactorName: string,\n    /** */\n    public DField3: Date,\n    /** 开始 */\n    public StartDField3: Date,\n    /** 结束 */\n    public EndDField3: Date,\n    /** */\n    public Contacts: string,\n    /** */\n    public SField3: string,\n    /** 业务办理人代号 */\n    public TransactorCode: string,\n    /** */\n    public CreateTime: Date,\n    /** 开始 */\n    public StartCreateTime: Date,\n    /** 结束 */\n    public EndCreateTime: Date,\n    /** 区间 */\n    public CreateTimeRange: Date,\n    /** */\n    public WarehouseCode: string,\n    /** */\n    public SField1: string,\n    /** */\n    public InspectorId: string,\n    /** */\n    public CreateDate: Date,\n    /** 开始 */\n    public StartCreateDate: Date,\n    /** 结束 */\n    public EndCreateDate: Date,\n    /** 区间 */\n    public CreateDateRange: Date,\n    /** */\n    public AuditTime: Date,\n    /** 开始 */\n    public StartAuditTime: Date,\n    /** 结束 */\n    public EndAuditTime: Date,\n    /** 区间 */\n    public AuditTimeRange: Date,\n    /** */\n    public Creator: string,\n    /** */\n    public AuditorId: string,\n    /** */\n    public DField4: Date,\n    /** 开始 */\n    public StartDField4: Date,\n    /** 结束 */\n    public EndDField4: Date,\n    /** 供应商Id */\n    public SupplierId: string,\n    /** 采购人Id */\n    public PurchaserId: string,\n    /** 采购人 */\n    public Purchaser: string,\n    /** 领料单号 */\n    public PickingOrderCode: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): View_OutPickingOutPlanOrderQueryDto {\n    return new View_OutPickingOutPlanOrderQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 委外领料表 */\nexport class View_OutPickingOutPlanOrderDto {\n  constructor(\n    /** */\n    public ArrivalDate: Date,\n    /** */\n    public FField1: number,\n    /** */\n    public AuditMessage: string,\n    /** */\n    public Auditor: string,\n    /** */\n    public CreatorUserName: string,\n    /** */\n    public FField3: number,\n    /** */\n    public WarehouseName: string,\n    /** */\n    public Remark: string,\n    /** */\n    public BusinessType: string,\n    /** */\n    public CreatorId: string,\n    /** */\n    public LastModifierUserName: string,\n    /** */\n    public FField2: number,\n    /** */\n    public ContactNumber: string,\n    /** */\n    public PlanOrderId: string,\n    /** */\n    public OrderStatus: string,\n    /** */\n    public Inspector: string,\n    /** */\n    public DField2: Date,\n    /** */\n    public Supplier: string,\n    /** */\n    public SField2: string,\n    /** */\n    public SourceOrderRowNum: string,\n    /** */\n    public AuditDate: Date,\n    /** */\n    public FactoryCode: string,\n    /** */\n    public DField1: Date,\n    /** */\n    public SourceOrderId: string,\n    /** */\n    public TransactorName: string,\n    /** */\n    public LastModifierUserId: number,\n    /** */\n    public DField3: Date,\n    /** */\n    public Contacts: string,\n    /** */\n    public SField3: string,\n    /** 业务办理人代号 */\n    public TransactorCode: string,\n    /** */\n    public CreateTime: Date,\n    /** */\n    public CreatorUserId: number,\n    /** */\n    public WarehouseCode: string,\n    /** */\n    public SField1: string,\n    /** */\n    public InspectorId: string,\n    /** */\n    public CreateDate: Date,\n    /** */\n    public Id: number,\n    /** */\n    public CreationTime: Date,\n    /** */\n    public AuditTime: Date,\n    /** */\n    public Creator: string,\n    /** */\n    public AuditorId: string,\n    /** */\n    public DField4: Date,\n    /** */\n    public LastModificationTime: Date,\n    /** */\n    public OpSign: number,\n    /** 供应商Id */\n    public SupplierId: string,\n    /** 采购人Id */\n    public PurchaserId: string,\n    /** 采购人 */\n    public Purchaser: string,\n    /** 领料单号 */\n    public PickingOrderCode: string\n  ) {}\n  static create(): View_OutPickingOutPlanOrderDto {\n    return new View_OutPickingOutPlanOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n//#endregion 入库计划区域结束\n\n//#region 入库办理区域开始\n/** 出入库单表头模型 */\nexport class InOutOrderMasterDto extends RhSelectableDto {\n  constructor(\n    /** 出入库单号 */\n    public OrderId: string,\n    /** 单据类型(入库、出库、调拨、盘点、移库) */\n    public OrderType: string,\n    /** 业务类型 */\n    public BusinessType: string,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 出库仓库代码 */\n    public OutWarehouseCode: string,\n    /** 出库仓库名称 */\n    public OutWarehouseName: string,\n    /** 出库库区代码 */\n    public OutWarehouseAreaCode: string,\n    /** 出库库区名称 */\n    public OutWarehouseAreaName: string,\n    /** 出库货架代码 */\n    public OutWarehouseShelfCode: string,\n    /** 出库货架名称 */\n    public OutWarehouseShelfName: string,\n    /** 出库库位代码 */\n    public OutStorageLocationCode: string,\n    /** 出库库位名称 */\n    public OutStorageLocationName: string,\n    /** 入库仓库代码 */\n    public InWarehouseCode: string,\n    /** 入库仓库名称 */\n    public InWarehouseName: string,\n    /** 入库库区代码 */\n    public InWarehouseAreaCode: string,\n    /** 入库库区名称 */\n    public InWarehouseAreaName: string,\n    /** 入库货架代码 */\n    public InWarehouseShelfCode: string,\n    /** 入库货架名称 */\n    public InWarehouseShelfName: string,\n    /** 入库库位代码 */\n    public InStorageLocationCode: string,\n    /** 入库库位名称 */\n    public InStorageLocationName: string,\n    /** 计划单号 */\n    public PlanOrderId: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 办理人 */\n    public OrderCreatorCode: string,\n    /** 办理人代码 */\n    public OrderCreatorName: string,\n    /** 办理日期 */\n    public OrderCreateDate: Date,\n    /** 办理时间 */\n    public OrderCreateTime: Date,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人代码 */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 生产调度员 */\n    public ProductionScheduler: string,\n    /** 供应商 */\n    public Supplier: string,\n    /** 供应商Id */\n    public SupplierId: string,\n    /** 到货日期 */\n    public ArrivalDate: Date,\n    /** 联系人 */\n    public Contacts: string,\n    /** 联系电话 */\n    public ContactNumber: string,\n    /** 客户代码 */\n    public CustomerCode: string,\n    /** 客户名称 */\n    public CustomerName: string,\n    /** 承运商 */\n    public Carrier: string,\n    /** 收货地址 */\n    public ReceivingAddress: string,\n    /** 组织架构代码 */\n    public OrganizationStructureCode: string,\n    /** 组织架构代码别名 */\n    public OrganizationStructureDisplayName: string,\n    /** 组织架构外部代码 */\n    public OrganizationStructureExternalCode: string,\n    /** 组织架构名称 */\n    public OrganizationStructureName: string,\n    /** 计划开始日期 */\n    public PlanStartDate: Date,\n    /** 计划结束日期 */\n    public PlanEndDate: Date,\n    /** 计划员 */\n    public PlanScheduler: string,\n    /** 工艺路线代码 */\n    public ProcessRoutingCode: string,\n    /** 产品bom编码 */\n    public ProductBomCode: string,\n    /** 生产类型 */\n    public ProductionType: string,\n    /** 资源名称 */\n    public ResourceName: string,\n    /** 资源代码 */\n    public ResourceCode: string,\n    /** 销售订单代码 */\n    public SaleOrderCode: string,\n    /** 工作中心名称 */\n    public WorkCenterCode: string,\n    /** 工作中心名称 */\n    public WorkCenterName: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {\n    super();\n  }\n  static create(): InOutOrderMasterDto {\n    return new InOutOrderMasterDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 生产入库源单模型 */\nexport class ProduceInSourceOrderDto {\n  constructor(\n    /** 生产订单单号 */\n    public SourceOrderId: string,\n    /** 生产订单名称 */\n    public SourceOrderName: string,\n    /** 生产订单行号 */\n    public SourceOrderRow: string,\n    /** 源单物料代码 */\n    public SourceOrderMaterialCode: string,\n    /** 源单数量 */\n    public SourceOrderQty: number,\n    /** 源单物料规格 */\n    public SourceOrderMaterialSpecification: string,\n    /** 源单已计划数量 */\n    public SourcePlannedQty: number,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 源单物料名称 */\n    public SourceOrderMaterialName: string,\n    /** 过期时间 */\n    public ExpirationDate: Date,\n    /** 保质期单位 */\n    public ExpiryUnit: string,\n    /** 完成数量 */\n    public SourceCompletedQty: number,\n    /** 是否开启条形码 */\n    public IsEnableSN: boolean[],\n    /** 是否开启批次号 */\n    public IsEnableLotNum: boolean[],\n    /** 是否开启保质期 */\n    public IsEnableExpirationDate: boolean[],\n    /** 入库计划ID */\n    public PlanOrderId: string,\n    /** 入库单ID */\n    public OrderId: string,\n    /** 工单代码 */\n    public ProductionPlanCode: string,\n    /** 产品代码 */\n    public ProductCode: string,\n    /** 产品名称 */\n    public ProductName: string,\n    /** 产品规格 */\n    public ProductSpecification: string,\n    /** 客户代码 */\n    public CustomerCode: string,\n    /** 客户名称 */\n    public CustomerName: string,\n    /** 组织架构代码 */\n    public OrganizationStructureCode: string,\n    /** 组织架构代码别名 */\n    public OrganizationStructureDisplayName: string,\n    /** 组织架构外部代码 */\n    public OrganizationStructureExternalCode: string,\n    /** 组织架构名称 */\n    public OrganizationStructureName: string,\n    /** 计划开始日期 */\n    public PlanStartDate: Date,\n    /** 计划结束日期 */\n    public PlanEndDate: Date,\n    /** 计划员 */\n    public PlanScheduler: string,\n    /** 工艺路线代码 */\n    public ProcessRoutingCode: string,\n    /** 产品bom编码 */\n    public ProductBomCode: string,\n    /** 生产类型 */\n    public ProductionType: string,\n    /** 资源名称 */\n    public ResourceName: string,\n    /** 资源代码 */\n    public ResourceCode: string,\n    /** 销售订单代码 */\n    public SaleOrderCode: string,\n    /** 工作中心名称 */\n    public WorkCenterCode: string,\n    /** 工作中心名称 */\n    public WorkCenterName: string,\n    /** 备注 */\n    public Remark: string,\n    /** */\n    public DField1: Date,\n    /** */\n    public DField2: Date,\n    /** */\n    public DField3: Date,\n    /** */\n    public DField4: Date,\n    /** */\n    public SField1: string,\n    /** */\n    public SField2: string,\n    /** */\n    public SField3: string,\n    /** */\n    public FField1: number,\n    /** */\n    public FField2: number,\n    /** */\n    public FField3: number,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** */\n    public FactoryCode: string,\n    /** */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): ProduceInSourceOrderDto {\n    return new ProduceInSourceOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n/** 出入库单明细 */\nexport class InOutOrderDetailDto extends RhSelectableDto {\n  constructor(\n    /** 辅助数量 */\n    public MeasureAuxQty: number,\n    /** 辅助单位 */\n    public MeasureAuxUnit: string,\n    /** 出入库单号 */\n    public OrderId: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 生产日期 */\n    public ProductionDate: Date,\n    /** 出库仓库代码 */\n    public OutWarehouseCode: string,\n    /** 出库仓库名称 */\n    public OutWarehouseName: string,\n    /** 出库库区代码 */\n    public OutWarehouseAreaCode: string,\n    /** 出库库区名称 */\n    public OutWarehouseAreaName: string,\n    /** 出库货架代码 */\n    public OutWarehouseShelfCode: string,\n    /** 出库货架名称 */\n    public OutWarehouseShelfName: string,\n    /** 出库库位代码 */\n    public OutStorageLocationCode: string,\n    /** 出库库位名称 */\n    public OutStorageLocationName: string,\n    /** 入库仓库代码 */\n    public InWarehouseCode: string,\n    /** 入库仓库名称 */\n    public InWarehouseName: string,\n    /** 入库库区代码 */\n    public InWarehouseAreaCode: string,\n    /** 入库库区名称 */\n    public InWarehouseAreaName: string,\n    /** 入库货架代码 */\n    public InWarehouseShelfCode: string,\n    /** 入库货架名称 */\n    public InWarehouseShelfName: string,\n    /** 入库库位代码 */\n    public InStorageLocationCode: string,\n    /** 入库库位名称 */\n    public InStorageLocationName: string,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 保质期单位 */\n    public ExpiryUnit: string,\n    /** 有效期 */\n    public ExpirationDate: Date,\n    /** 发货地址 */\n    public ShippingAddress: string,\n    /** 批次号 */\n    public LotNum: string,\n    /** 条码 */\n    public SN: string,\n    /** 是否已完成 */\n    public IsCompleted: boolean,\n    /** 办理数量 */\n    public TransactQty: number,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {\n    super();\n  }\n  static create(): InOutOrderDetailDto {\n    return new InOutOrderDetailDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 当前出入库单明细 */\nexport class CurrentInOutOrderDetailDto extends RhSelectableDto {\n  constructor(\n    /** 已完成数量 */\n    public CompletedQty: number,\n    /** 计划数量 */\n    public PlanQty: number,\n    /** 源单需求数量 */\n    public DemandQty: number,\n    /** 完成退料数量 */\n    public ReturnQty: number,\n    /** 库存数量 */\n    public InventoryQty: number,\n    /** 辅助数量 */\n    public MeasureAuxQty: number,\n    /** 辅助单位 */\n    public MeasureAuxUnit: string,\n    /** 出入库单号 */\n    public OrderId: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 生产日期 */\n    public ProductionDate: Date,\n    /** 出库仓库代码 */\n    public OutWarehouseCode: string,\n    /** 出库仓库名称 */\n    public OutWarehouseName: string,\n    /** 出库库区代码 */\n    public OutWarehouseAreaCode: string,\n    /** 出库库区名称 */\n    public OutWarehouseAreaName: string,\n    /** 出库货架代码 */\n    public OutWarehouseShelfCode: string,\n    /** 出库货架名称 */\n    public OutWarehouseShelfName: string,\n    /** 出库库位代码 */\n    public OutStorageLocationCode: string,\n    /** 出库库位名称 */\n    public OutStorageLocationName: string,\n    /** 入库仓库代码 */\n    public InWarehouseCode: string,\n    /** 入库仓库名称 */\n    public InWarehouseName: string,\n    /** 入库库区代码 */\n    public InWarehouseAreaCode: string,\n    /** 入库库区名称 */\n    public InWarehouseAreaName: string,\n    /** 入库货架代码 */\n    public InWarehouseShelfCode: string,\n    /** 入库货架名称 */\n    public InWarehouseShelfName: string,\n    /** 入库库位代码 */\n    public InStorageLocationCode: string,\n    /** 入库库位名称 */\n    public InStorageLocationName: string,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 保质期单位 */\n    public ExpiryUnit: string,\n    /** 有效期 */\n    public ExpirationDate: Date,\n    /** 发货地址 */\n    public ShippingAddress: string,\n    /** 批次号 */\n    public LotNum: string,\n    /** 条码 */\n    public SN: string,\n    /** 是否已完成 */\n    public IsCompleted: boolean,\n    /** 办理数量 */\n    public TransactQty: number,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {\n    super();\n  }\n  static create(): CurrentInOutOrderDetailDto {\n    return new CurrentInOutOrderDetailDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 采购入库表 */\nexport class PurchaseInWarehouseBusinessOrderDto {\n  constructor(\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人Id */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 业务办理人代号 */\n    public TransactorCode: string,\n    /** 业务办理人 */\n    public TransactorName: string,\n    /** 入库仓库代码 */\n    public InWarehouseCode: string,\n    /** 入库仓库名称 */\n    public InWarehouseName: string,\n    /** 入库库区代码 */\n    public InWarehouseAreaCode: string,\n    /** 入库库区名称 */\n    public InWarehouseAreaName: string,\n    /** 入库货架代码 */\n    public InWarehouseShelfCode: string,\n    /** 入库货架名称 */\n    public InWarehouseShelfName: string,\n    /** 入库库位代码 */\n    public InStorageLocationCode: string,\n    /** 入库库位名称 */\n    public InStorageLocationName: string,\n    /** 计划单号 */\n    public PlanOrderId: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 办理人 */\n    public OrderCreatorCode: string,\n    /** 办理人代码 */\n    public OrderCreatorName: string,\n    /** 入库单号 */\n    public OrderId: string,\n    /** 采购员 */\n    public Purchaser: string,\n    /** 采购员Id */\n    public PurchaserId: string,\n    /** 供应商 */\n    public Supplier: string,\n    /** 供应商Id */\n    public SupplierId: string,\n    /** 到货日期 */\n    public ArrivalDate: Date,\n    /** 联系人 */\n    public Contacts: string,\n    /** 联系电话 */\n    public ContactNumber: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): PurchaseInWarehouseBusinessOrderDto {\n    return new PurchaseInWarehouseBusinessOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 领料单表表 */\nexport class MaterialBackInBusinessOrderDto {\n  constructor(\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人Id */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 业务办理人代号 */\n    public TransactorCode: string,\n    /** 业务办理人 */\n    public TransactorName: string,\n    /** 入库单号 */\n    public OrderId: string,\n    /** 入库仓库代码 */\n    public InWarehouseCode: string,\n    /** 入库仓库名称 */\n    public InWarehouseName: string,\n    /** 入库库区代码 */\n    public InWarehouseAreaCode: string,\n    /** 入库库区名称 */\n    public InWarehouseAreaName: string,\n    /** 入库货架代码 */\n    public InWarehouseShelfCode: string,\n    /** 入库货架名称 */\n    public InWarehouseShelfName: string,\n    /** 入库库位代码 */\n    public InStorageLocationCode: string,\n    /** 入库库位名称 */\n    public InStorageLocationName: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 办理人 */\n    public OrderCreatorCode: string,\n    /** 办理人代码 */\n    public OrderCreatorName: string,\n    /** 办理日期 */\n    public OrderCreateDate: Date,\n    /** 办理时间 */\n    public OrderCreateTime: Date,\n    /** 入库计划ID */\n    public PlanOrderId: string,\n    /** 领料单号 */\n    public PickingInOrderCode: string,\n    /** 生产调度员 */\n    public ProductionScheduler: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): MaterialBackInBusinessOrderDto {\n    return new MaterialBackInBusinessOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n//#endregion 入库办理区域结束\n\n//#region 出库计划区域开始\n/** 出库计划明细查询数据传输对象 */\nexport class OutPlanOrderDetailQueryDto {\n  constructor(\n    /** 入库计划号 */\n    public PlanOrderId: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 计划数量 */\n    public PlanQty: number,\n    /** 入库数量 */\n    public ReceivedQty: number,\n    /** 退回数量 */\n    public RefusedQty: number,\n    /** 批次号 */\n    public LotNum: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 开始扩展字段7 */\n    public StartDField1: Date,\n    /** 结束扩展字段7 */\n    public EndDField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 开始扩展字段8 */\n    public StartDField2: Date,\n    /** 结束扩展字段8 */\n    public EndDField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 开始扩展字段9 */\n    public StartDField3: Date,\n    /** 结束扩展字段9 */\n    public EndDField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 开始扩展字段10 */\n    public StartDField4: Date,\n    /** 结束扩展字段10 */\n    public EndDField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): OutPlanOrderDetailQueryDto {\n    return new OutPlanOrderDetailQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 出库计划明细表 */\nexport class OutPlanOrderDetailDto extends RhSelectableDto {\n  constructor(\n    /** 入库计划号 */\n    public PlanOrderId: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 计划数量 */\n    public PlanQty: number,\n    /** 入库数量 */\n    public ReceivedQty: number,\n    /** 退回数量 */\n    public RefusedQty: number,\n    /** 批次号 */\n    public LotNum: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {\n    super();\n  }\n  static create(): OutPlanOrderDetailDto {\n    return new OutPlanOrderDetailDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 出库计划表 */\nexport class OutPlanOrderMasterDto {\n  constructor(\n    /** 出库计划单号 */\n    public PlanOrderId: string,\n    /** 出库业务类型 */\n    public BusinessType: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 质检人Id */\n    public InspectorId: string,\n    /** 质检人 */\n    public Inspector: string,\n    /** 制单人 */\n    public Creator: string,\n    /** 制单人代码 */\n    public CreatorId: string,\n    /** 制单日期 */\n    public CreateDate: Date,\n    /** 制单时间 */\n    public CreateTime: Date,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人代码 */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 出库单状态 */\n    public OrderStatus: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): OutPlanOrderMasterDto {\n    return new OutPlanOrderMasterDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 创建入库单输出参数 */\nexport class CreateOutPlanOrderInput {\n  constructor(\n    /** 生产领料出库单信息 */\n    public PickingOutOrderDto: PickingOutOrderDto,\n    /** */\n    public OutPlanOrderDetailDtos: OutPlanOrderDetailDto[],\n    /** 出库计划单号 */\n    public PlanOrderId: string,\n    /** 出库业务类型 */\n    public BusinessType: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 质检人Id */\n    public InspectorId: string,\n    /** 质检人 */\n    public Inspector: string,\n    /** 制单人 */\n    public Creator: string,\n    /** 制单人代码 */\n    public CreatorId: string,\n    /** 制单日期 */\n    public CreateDate: Date,\n    /** 制单时间 */\n    public CreateTime: Date,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人代码 */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 出库单状态 */\n    public OrderStatus: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): CreateOutPlanOrderInput {\n    return new CreateOutPlanOrderInput(\n      PickingOutOrderDto.create(),\n      [],\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 领料单表表 */\nexport class PickingOutOrderDto {\n  constructor(\n    /** 出库计划ID */\n    public PlanOrderId: string,\n    /** 领料单号 */\n    public PickingOutOrderCode: string,\n    /** 生产调度员 */\n    public ProductionScheduler: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): PickingOutOrderDto {\n    return new PickingOutOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 外部领料单查询模型 */\nexport class ExternalPickingOutOrderDetailQueryDto {\n  constructor(\n    /** 领料单号 */\n    public PickingOutOrderCode: string\n  ) {}\n  static create(): ExternalPickingOutOrderDetailQueryDto {\n    return new ExternalPickingOutOrderDetailQueryDto(null);\n  }\n}\n\n/** 外部生产领料出库详情明细 */\nexport class ExternalPickingOutOrderDetailDto {\n  constructor(\n    /** 领料单号 */\n    public PickingOutOrderCode: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 计划数量 */\n    public PlanQty: number\n  ) {}\n  static create(): ExternalPickingOutOrderDetailDto {\n    return new ExternalPickingOutOrderDetailDto(null, null, null, null, null, null, null, null, null);\n  }\n}\n\n/** 销售订单源单 */\nexport class SaleOutSourceOrder extends RhSelectableDto {\n  constructor(\n    /** 源单编码 */\n    public SourceOrderId: string,\n    /** 源单名称 */\n    public SourceOrderName: string,\n    /** 源单行号 */\n    public SourceOrderRow: string,\n    /** 源单物料代码 */\n    public SourceOrderMaterialCode: string,\n    /** 源单物料规格 */\n    public SourceOrderMaterialSpecification: string,\n    /** 源单数量 */\n    public SourceOrderQty: number,\n    /** 源单物料名称 */\n    public SourceOrderMaterialName: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 保质期单位 */\n    public ExpiryUnit: string,\n    /** 有效期 */\n    public ExpirationDate: Date,\n    /** 是否启用保质期 */\n    public IsEnableExpirationDate: boolean,\n    /** 是否启用批次号 */\n    public IsEnableLotNum: boolean,\n    /** 是否启用序列号 */\n    public IsEnableSN: boolean,\n    /** 入库计划单号 */\n    public PlanOrderId: string,\n    /** 客户代码 */\n    public CustomerCode: string,\n    /** 客户名称 */\n    public CustomerName: string,\n    /** 承运商 */\n    public Carrier: string,\n    /** 收货地址 */\n    public ReceivingAddress: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {\n    super();\n  }\n  static create(): SaleOutSourceOrder {\n    return new SaleOutSourceOrder(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 销售订单查询模型 */\nexport class SaleOutSourceOrderQueryDto {\n  constructor(\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 源单编码 */\n    public SourceOrderId: string\n  ) {}\n  static create(): SaleOutSourceOrderQueryDto {\n    return new SaleOutSourceOrderQueryDto(null, null);\n  }\n}\n\n/** 生产领料出库计划查询模型 */\nexport class View_PickingOutPlanOrderQueryDto {\n  constructor(\n    /** 出库计划单号 */\n    public PlanOrderId: string,\n    /** 出库业务类型 */\n    public BusinessType: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 质检人Id */\n    public InspectorId: string,\n    /** 质检人 */\n    public Inspector: string,\n    /** 制单人 */\n    public Creator: string,\n    /** 制单人代码 */\n    public CreatorId: string,\n    /** 制单日期 */\n    public CreateDate: Date,\n    /** 开始制单日期 */\n    public StartCreateDate: Date,\n    /** 结束制单日期 */\n    public EndCreateDate: Date,\n    /** 制单日期区间 */\n    public CreateDateRange: Date,\n    /** 制单时间 */\n    public CreateTime: Date,\n    /** 开始制单时间 */\n    public StartCreateTime: Date,\n    /** 结束制单时间 */\n    public EndCreateTime: Date,\n    /** 制单时间区间 */\n    public CreateTimeRange: Date,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人代码 */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 开始审核日期 */\n    public StartAuditDate: Date,\n    /** 结束审核日期 */\n    public EndAuditDate: Date,\n    /** 审核日期区间 */\n    public AuditDateRange: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 开始审核时间 */\n    public StartAuditTime: Date,\n    /** 结束审核时间 */\n    public EndAuditTime: Date,\n    /** 审核时间区间 */\n    public AuditTimeRange: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 出库单状态 */\n    public OrderStatus: string,\n    /** */\n    public Id: number,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): View_PickingOutPlanOrderQueryDto {\n    return new View_PickingOutPlanOrderQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 生产领料出库计划 */\nexport class View_PickingOutPlanOrderDto {\n  constructor(\n    /** 领料单号 */\n    public PickingOutOrderCode: string,\n    /** 生产调度员 */\n    public ProductionScheduler: string,\n    /** 业务办理人代号 */\n    public TransactorCode: string,\n    /** 业务办理人 */\n    public TransactorName: string,\n    /** 出库计划单号 */\n    public PlanOrderId: string,\n    /** 出库业务类型 */\n    public BusinessType: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 质检人Id */\n    public InspectorId: string,\n    /** 质检人 */\n    public Inspector: string,\n    /** 制单人 */\n    public Creator: string,\n    /** 制单人代码 */\n    public CreatorId: string,\n    /** 制单日期 */\n    public CreateDate: Date,\n    /** 制单时间 */\n    public CreateTime: Date,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人代码 */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 出库单状态 */\n    public OrderStatus: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): View_PickingOutPlanOrderDto {\n    return new View_PickingOutPlanOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 销售出库计划查询数据传输对象 */\nexport class View_SaleOutPlanOrderQueryDto {\n  constructor(\n    /** 出库计划单号 */\n    public PlanOrderId: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 质检人Id */\n    public InspectorId: string,\n    /** 质检人 */\n    public Inspector: string,\n    /** 制单人 */\n    public Creator: string,\n    /** 制单人代码 */\n    public CreatorId: string,\n    /** 制单日期 */\n    public CreateDate: Date,\n    /** 制单日期区间 */\n    public CreateDateRange: Date,\n    /** 出库单状态 */\n    public OrderStatus: string,\n    /** 承运商 */\n    public Carrier: string,\n    /** 客户代码 */\n    public CustomerCode: string,\n    /** 客户名称 */\n    public CustomerName: string,\n    /** 收货地址 */\n    public ReceivingAddress: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): View_SaleOutPlanOrderQueryDto {\n    return new View_SaleOutPlanOrderQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 销售出库计划 */\nexport class View_SaleOutPlanOrderDto {\n  constructor(\n    /** 承运商 */\n    public Carrier: string,\n    /** 客户代码 */\n    public CustomerCode: string,\n    /** 客户名称 */\n    public CustomerName: string,\n    /** 收货地址 */\n    public ReceivingAddress: string,\n    /** 业务办理人代号 */\n    public TransactorCode: string,\n    /** 业务办理人 */\n    public TransactorName: string,\n    /** 出库计划单号 */\n    public PlanOrderId: string,\n    /** 出库业务类型 */\n    public BusinessType: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 质检人Id */\n    public InspectorId: string,\n    /** 质检人 */\n    public Inspector: string,\n    /** 制单人 */\n    public Creator: string,\n    /** 制单人代码 */\n    public CreatorId: string,\n    /** 制单日期 */\n    public CreateDate: Date,\n    /** 制单时间 */\n    public CreateTime: Date,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人代码 */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 出库单状态 */\n    public OrderStatus: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): View_SaleOutPlanOrderDto {\n    return new View_SaleOutPlanOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 查询数据传输对象 */\nexport class View_MaterialInventoryOfLotNumQueryDto {\n  constructor(\n    /** */\n    public WarehouseName: string,\n    /** */\n    public MaterialName: string,\n    /** */\n    public AvailableQty: number,\n    /** */\n    public MaterialCategory: string,\n    /** */\n    public FreezeQty: number,\n    /** */\n    public MaterialAttribute: string,\n    /** */\n    public WarehouseCode: string,\n    /** */\n    public FactoryCode: string,\n    /** */\n    public InventoryQty: number,\n    /** */\n    public LotNum: string,\n    /** */\n    public MaterialCode: string,\n    /** */\n    public MeasureUnit: string,\n    /** */\n    public MaterialSpecification: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): View_MaterialInventoryOfLotNumQueryDto {\n    return new View_MaterialInventoryOfLotNumQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 表 */\nexport class View_MaterialInventoryOfLotNumDto {\n  constructor(\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 可用数量 */\n    public AvailableQty: number,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 冻结数量 */\n    public FreezeQty: number,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** */\n    public Id: number,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 可用数量 */\n    public InventoryQty: number,\n    /** 批次号 */\n    public LotNum: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): View_MaterialInventoryOfLotNumDto {\n    return new View_MaterialInventoryOfLotNumDto(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);\n  }\n}\n\n/** 采购入库源单查询模型 */\nexport class PurchaseBackSourceOrderQueryDto {\n  constructor(\n    /** 采购单号 */\n    public SourceOrderId: string,\n    /** 工厂代码 */\n    public FactoryCode: string\n  ) {}\n  static create(): PurchaseBackSourceOrderQueryDto {\n    return new PurchaseBackSourceOrderQueryDto(null, null);\n  }\n}\n\n/** 采购入库源单模型 */\nexport class PurchaseBackSourceOrderDto extends RhSelectableDto {\n  constructor(\n    /** 采购单号 */\n    public SourceOrderId: string,\n    /** 采购单名称 */\n    public SourceOrderName: string,\n    /** 采购单行号 */\n    public SourceOrderRow: string,\n    /** 源单物料代码 */\n    public SourceOrderMaterialCode: string,\n    /** 源单物料规格 */\n    public SourceOrderMaterialSpecification: string,\n    /** 辅助单位 */\n    public MeasureAuxUnit: string,\n    /** 源单数量 */\n    public SourceOrderQty: number,\n    /** 源单已计划数量 */\n    public SourcePlannedQty: number,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 源单物料名称 */\n    public SourceOrderMaterialName: string,\n    /** 过期时间 */\n    public ExpirationDate: Date,\n    /** 保质期单位 */\n    public ExpiryUnit: string,\n    /** 完成数量 */\n    public SourceCompletedQty: number,\n    /** 是否开启条形码 */\n    public IsEnableSN: boolean,\n    /** 是否开启批次号 */\n    public IsEnableLotNum: boolean,\n    /** 是否开启保质期 */\n    public IsEnableExpirationDate: boolean,\n    /** 入库计划单号 */\n    public PlanOrderId: string,\n    /** 供应商 */\n    public Supplier: string,\n    /** 供应商Id */\n    public SupplierId: string,\n    /** 采购人Id */\n    public PurchaserId: string,\n    /** 采购人 */\n    public Purchaser: string,\n    /** 到货日期 */\n    public ArrivalDate: Date,\n    /** 联系人 */\n    public Contacts: string,\n    /** 联系电话 */\n    public ContactNumber: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {\n    super();\n  }\n  static create(): PurchaseBackSourceOrderDto {\n    return new PurchaseBackSourceOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 查询数据传输对象 */\nexport class View_PurchaseBackPlanOrderQueryDto {\n  constructor(\n    /** */\n    public FField3: number,\n    /** */\n    public AuditorId: string,\n    /** */\n    public SField1: string,\n    /** */\n    public BusinessType: string,\n    /** */\n    public PurchaserId: string,\n    /** */\n    public Inspector: string,\n    /** */\n    public AuditMessage: string,\n    /** */\n    public FField1: number,\n    /** */\n    public Contacts: string,\n    /** */\n    public SourceOrderId: string,\n    /** */\n    public SField2: string,\n    /** */\n    public TransactorName: string,\n    /** */\n    public WarehouseName: string,\n    /** */\n    public CreateDate: Date,\n    /** 开始 */\n    public StartCreateDate: Date,\n    /** 结束 */\n    public EndCreateDate: Date,\n    /** 区间 */\n    public CreateDateRange: Date,\n    /** */\n    public DField3: Date,\n    /** 开始 */\n    public StartDField3: Date,\n    /** 结束 */\n    public EndDField3: Date,\n    /** 备注 */\n    public Remark: string,\n    /** 计划单号 */\n    public PlanOrderId: string,\n    /** 质检人Id */\n    public InspectorId: string,\n    /** 制单人Id */\n    public CreatorId: string,\n    /** */\n    public AuditTime: Date,\n    /** 开始 */\n    public StartAuditTime: Date,\n    /** 结束 */\n    public EndAuditTime: Date,\n    /** 区间 */\n    public AuditTimeRange: Date,\n    /** */\n    public SupplierId: string,\n    /** */\n    public DField4: Date,\n    /** 开始 */\n    public StartDField4: Date,\n    /** 结束 */\n    public EndDField4: Date,\n    /** */\n    public ArrivalDate: Date,\n    /** 开始 */\n    public StartArrivalDate: Date,\n    /** 结束 */\n    public EndArrivalDate: Date,\n    /** 区间 */\n    public ArrivalDateRange: Date,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 审核人 */\n    public Auditor: string,\n    /** */\n    public DField1: Date,\n    /** 开始 */\n    public StartDField1: Date,\n    /** 结束 */\n    public EndDField1: Date,\n    /** 办理人代号 */\n    public TransactorCode: string,\n    /** */\n    public CreateTime: Date,\n    /** 开始 */\n    public StartCreateTime: Date,\n    /** 结束 */\n    public EndCreateTime: Date,\n    /** 区间 */\n    public CreateTimeRange: Date,\n    /** */\n    public DField2: Date,\n    /** 开始 */\n    public StartDField2: Date,\n    /** 结束 */\n    public EndDField2: Date,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** */\n    public FField2: number,\n    /** 联系电话 */\n    public ContactNumber: string,\n    /** 供应商 */\n    public Supplier: string,\n    /** */\n    public AuditDate: Date,\n    /** 开始 */\n    public StartAuditDate: Date,\n    /** 结束 */\n    public EndAuditDate: Date,\n    /** 区间 */\n    public AuditDateRange: Date,\n    /** 工厂代号 */\n    public FactoryCode: string,\n    /** */\n    public SField3: string,\n    /** 仓库代号 */\n    public WarehouseCode: string,\n    /** 采购人 */\n    public Purchaser: string,\n    /** 创建人 */\n    public Creator: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): View_PurchaseBackPlanOrderQueryDto {\n    return new View_PurchaseBackPlanOrderQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 表 */\nexport class View_PurchaseBackPlanOrderDto {\n  constructor(\n    /** 供应商 */\n    public Supplier: string,\n    /** 供应商Id */\n    public SupplierId: string,\n    /** 到货日期 */\n    public ArrivalDate: Date,\n    /** 联系人 */\n    public Contacts: string,\n    /** 联系电话 */\n    public ContactNumber: string,\n    /** 采购员 */\n    public Purchaser: string,\n    /** 采购员Id */\n    public PurchaserId: string,\n    /** 办理人代号 */\n    public TransactorCode: string,\n    /** 办理人 */\n    public TransactorName: string,\n    /** 出库计划单号 */\n    public PlanOrderId: string,\n    /** 出库业务类型 */\n    public BusinessType: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 质检人Id */\n    public InspectorId: string,\n    /** 质检人 */\n    public Inspector: string,\n    /** 制单人 */\n    public Creator: string,\n    /** 制单人代码 */\n    public CreatorId: string,\n    /** 制单日期 */\n    public CreateDate: Date,\n    /** 制单时间 */\n    public CreateTime: Date,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人代码 */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 出库单状态 */\n    public OrderStatus: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): View_PurchaseBackPlanOrderDto {\n    return new View_PurchaseBackPlanOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n//#endregion 出库计划区域结束\n\n//#region 出库办理区域开始\n/** 出库计划库存查询模型 */\nexport class OutPlanMaterialInventoryQueryDto {\n  constructor(\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 出库计划单号 */\n    public OrderId: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 库区代码 */\n    public WarehouseAreaCode: string,\n    /** 货架代码 */\n    public WarehouseShelfCode: string,\n    /** 库位代码 */\n    public StorageLocationCode: string\n  ) {}\n  static create(): OutPlanMaterialInventoryQueryDto {\n    return new OutPlanMaterialInventoryQueryDto(null, null, null, null, null, null);\n  }\n}\n\n/** 出库计划库存模型 */\nexport class OutPlanMaterialInventoryDto extends RhSelectableDto {\n  constructor(\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 库位代码 */\n    public StorageLocationCode: string,\n    /** 库位名称 */\n    public StorageLocationName: string,\n    /** 库区代码 */\n    public WarehouseAreaCode: string,\n    /** 库区名称 */\n    public WarehouseAreaName: string,\n    /** 货架代码 */\n    public WarehouseShelfCode: string,\n    /** 货架名称 */\n    public WarehouseShelfName: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计划数量 */\n    public PlanQty: number,\n    /** 计划已出数量 */\n    public PlannedQty: number,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 库存数量 */\n    public InventoryQty: number,\n    /** 冻结数量 */\n    public FreezeQty: number,\n    /** 可用数量 */\n    public AvailableQty: number,\n    /** 生产日期 */\n    public ProductionDate: Date,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 保质期单位 */\n    public ExpiryUnit: string,\n    /** 有效期 */\n    public ExpirationDate: Date,\n    /** 备注 */\n    public Remark: string\n  ) {\n    super();\n  }\n  static create(): OutPlanMaterialInventoryDto {\n    return new OutPlanMaterialInventoryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 库存明细表 */\nexport class MaterialInventoryDetailDto extends RhSelectableDto {\n  constructor(\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 库位代码 */\n    public StorageLocationCode: string,\n    /** 库位名称 */\n    public StorageLocationName: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 冻结数量 */\n    public FreezeQty: number,\n    /** 可用数量 */\n    public AvailableQty: number,\n    /** 生产日期 */\n    public ProductionDate: Date,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 保质期单位 */\n    public ExpiryUnit: string,\n    /** 有效期 */\n    public ExpirationDate: Date,\n    /** 权重 */\n    public Grade: number,\n    /** 数量 */\n    public Qty: number,\n    /** 条码 */\n    public SN: string,\n    /** 批次号 */\n    public LotNum: string,\n    /** 生产时间 */\n    public ProductionTime: Date,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {\n    super();\n  }\n  static create(): MaterialInventoryDetailDto {\n    return new MaterialInventoryDetailDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 完整库存明细查询数据传输对象 */\nexport class OverAllMaterialInventoryDetailQueryDto {\n  constructor(\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 库区代码 */\n    public WarehouseAreaCode: string,\n    /** 库区名称 */\n    public WarehouseAreaName: string,\n    /** 货架代码 */\n    public WarehouseShelfCode: string,\n    /** 货架名称 */\n    public WarehouseShelfName: string,\n    /** 库位代码 */\n    public StorageLocationCode: string,\n    /** 库位名称 */\n    public StorageLocationName: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 权重 */\n    public Grade: number,\n    /** 数量 */\n    public Qty: number,\n    /** 条码 */\n    public SN: string,\n    /** 批次号 */\n    public LotNum: string,\n    /** 生产日期 */\n    public ProductionDate: Date,\n    /** 开始生产日期 */\n    public StartProductionDate: Date,\n    /** 结束生产日期 */\n    public EndProductionDate: Date,\n    /** 生产日期区间 */\n    public ProductionDateRange: Date,\n    /** 生产时间 */\n    public ProductionTime: Date,\n    /** 开始生产时间 */\n    public StartProductionTime: Date,\n    /** 结束生产时间 */\n    public EndProductionTime: Date,\n    /** 生产时间区间 */\n    public ProductionTimeRange: Date,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 开始扩展字段7 */\n    public StartDField1: Date,\n    /** 结束扩展字段7 */\n    public EndDField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 开始扩展字段8 */\n    public StartDField2: Date,\n    /** 结束扩展字段8 */\n    public EndDField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 开始扩展字段9 */\n    public StartDField3: Date,\n    /** 结束扩展字段9 */\n    public EndDField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 开始扩展字段10 */\n    public StartDField4: Date,\n    /** 结束扩展字段10 */\n    public EndDField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 自增键 */\n    public Id: number,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): OverAllMaterialInventoryDetailQueryDto {\n    return new OverAllMaterialInventoryDetailQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 完整库存明细表 */\nexport class OverAllMaterialInventoryDetailDto {\n  constructor(\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 库区代码 */\n    public WarehouseAreaCode: string,\n    /** 库区名称 */\n    public WarehouseAreaName: string,\n    /** 货架代码 */\n    public WarehouseShelfCode: string,\n    /** 货架名称 */\n    public WarehouseShelfName: string,\n    /** 库位代码 */\n    public StorageLocationCode: string,\n    /** 库位名称 */\n    public StorageLocationName: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 权重 */\n    public Grade: number,\n    /** 数量 */\n    public Qty: number,\n    /** 冻结数量 */\n    public FreezeQty: number,\n    /** 可用数量 */\n    public AvailableQty: number,\n    /** 条码 */\n    public SN: string,\n    /** 批次号 */\n    public LotNum: string,\n    /** 生产日期 */\n    public ProductionDate: Date,\n    /** 生产时间 */\n    public ProductionTime: Date,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 保质期单位 */\n    public ExpiryUnit: string,\n    /** 有效期 */\n    public ExpirationDate: Date,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 自增键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): OverAllMaterialInventoryDetailDto {\n    return new OverAllMaterialInventoryDetailDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 出入库明细查询模型 */\nexport class InOutOrderDetailQueryDto {\n  constructor(\n    /** 出入库单号 */\n    public OrderId: string,\n    /** 业务类型 */\n    public BusinessType: string,\n    /** 源单单号 */\n    public SourceOrderId: string,\n    /** 条码 */\n    public SN: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): InOutOrderDetailQueryDto {\n    return new InOutOrderDetailQueryDto(null, null, null, null, null, null, null, null, null);\n  }\n}\n\n/** 生产领料源单查询模型 */\nexport class PickingOutSourceOrderQueryDto {\n  constructor(\n    /** 领料单号 */\n    public PickingOrderCode: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 源单编码 */\n    public SourceOrderId: string\n  ) {}\n  static create(): PickingOutSourceOrderQueryDto {\n    return new PickingOutSourceOrderQueryDto(null, null, null);\n  }\n}\n\n/** 生产领料源单模型 */\nexport class PickingOutSourceOrderDto extends RhSelectableDto {\n  constructor(\n    /** 源单编码 */\n    public SourceOrderId: string,\n    /** 源单名称 */\n    public SourceOrderName: string,\n    /** 源单行号 */\n    public SourceOrderRow: string,\n    /** 源单物料代码 */\n    public SourceOrderMaterialCode: string,\n    /** 源单物料规格 */\n    public SourceOrderMaterialSpecification: string,\n    /** 源单数量 */\n    public SourceOrderQty: number,\n    /** 源单物料名称 */\n    public SourceOrderMaterialName: string,\n    /** 源单已出库数量 */\n    public SourceCompletedQty: number,\n    /** 库存数量 */\n    public InventoryQty: number,\n    /** */\n    public FactoryCode: string,\n    /** */\n    public Remark: string,\n    /** 领料单号 */\n    public PickingOrderCode: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 保质期单位 */\n    public ExpiryUnit: string,\n    /** 有效期 */\n    public ExpirationDate: Date,\n    /** 计划数量 */\n    public PlanQty: number,\n    /** 是否启用保质期 */\n    public IsEnableExpirationDate: boolean,\n    /** 是否启用批次号 */\n    public IsEnableLotNum: boolean,\n    /** 是否启用序列号 */\n    public IsEnableSN: boolean\n  ) {\n    super();\n  }\n  static create(): PickingOutSourceOrderDto {\n    return new PickingOutSourceOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 委外领料表 */\nexport class OutPickingOutBusinessOrderDto {\n  constructor(\n    /** 办理日期 */\n    public TransactDate: Date,\n    /** 办理时间 */\n    public TransactTime: Date,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人Id */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 办理人代号 */\n    public TransactorCode: string,\n    /** 办理人 */\n    public TransactorName: string,\n    /** 出库单号 */\n    public OrderId: string,\n    /** 出库仓库代码 */\n    public OutWarehouseCode: string,\n    /** 出库仓库名称 */\n    public OutWarehouseName: string,\n    /** 出库库区代码 */\n    public OutWarehouseAreaCode: string,\n    /** 出库库区名称 */\n    public OutWarehouseAreaName: string,\n    /** 出库货架代码 */\n    public OutWarehouseShelfCode: string,\n    /** 出库货架名称 */\n    public OutWarehouseShelfName: string,\n    /** 出库库位代码 */\n    public OutStorageLocationCode: string,\n    /** 出库库位名称 */\n    public OutStorageLocationName: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 办理人代号 */\n    public OrderCreatorCode: string,\n    /** 办理人名称 */\n    public OrderCreatorName: string,\n    /** 质检人 */\n    public Inspector: string,\n    /** 质检人ID */\n    public InspectorId: string,\n    /** 入库计划单号 */\n    public PlanOrderId: string,\n    /** 供应商 */\n    public Supplier: string,\n    /** 到货日期 */\n    public ArrivalDate: Date,\n    /** 联系人 */\n    public Contacts: string,\n    /** 联系电话 */\n    public ContactNumber: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /** 供应商Id */\n    public SupplierId: string,\n    /** 采购人Id */\n    public PurchaserId: string,\n    /** 采购人 */\n    public Purchaser: string,\n    /** */\n    public OpSign: number,\n    /** 领料单号 */\n    public PickingOrderCode: string\n  ) {}\n  static create(): OutPickingOutBusinessOrderDto {\n    return new OutPickingOutBusinessOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 出库计划明细库存数量查询模型 */\nexport class OutPlanDetailMaterialInventoryQueryDto {\n  constructor(\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 仓库代码 */\n    public WarehouseCode: string\n  ) {}\n  static create(): OutPlanDetailMaterialInventoryQueryDto {\n    return new OutPlanDetailMaterialInventoryQueryDto(null, null);\n  }\n}\n\n/** 库存明细查询数据传输对象 */\nexport class MaterialInventoryDetailQueryDto {\n  constructor(\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 库位代码 */\n    public StorageLocationCode: string,\n    /** 库位名称 */\n    public StorageLocationName: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 权重 */\n    public Grade: number,\n    /** 数量 */\n    public Qty: number,\n    /** 条码 */\n    public SN: string,\n    /** 批次号 */\n    public LotNum: string,\n    /** 生产日期 */\n    public ProductionDate: Date,\n    /** 开始生产日期 */\n    public StartProductionDate: Date,\n    /** 结束生产日期 */\n    public EndProductionDate: Date,\n    /** 生产日期区间 */\n    public ProductionDateRange: Date,\n    /** 生产时间 */\n    public ProductionTime: Date,\n    /** 开始生产时间 */\n    public StartProductionTime: Date,\n    /** 结束生产时间 */\n    public EndProductionTime: Date,\n    /** 生产时间区间 */\n    public ProductionTimeRange: Date,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 开始扩展字段7 */\n    public StartDField1: Date,\n    /** 结束扩展字段7 */\n    public EndDField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 开始扩展字段8 */\n    public StartDField2: Date,\n    /** 结束扩展字段8 */\n    public EndDField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 开始扩展字段9 */\n    public StartDField3: Date,\n    /** 结束扩展字段9 */\n    public EndDField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 开始扩展字段10 */\n    public StartDField4: Date,\n    /** 结束扩展字段10 */\n    public EndDField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 自增键 */\n    public Id: number,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): MaterialInventoryDetailQueryDto {\n    return new MaterialInventoryDetailQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 出库计划明细库存数量 */\nexport class OutPlanDetailMaterialInventoryDto {\n  constructor(\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 库存数量 */\n    public InventoryQty: number\n  ) {}\n  static create(): OutPlanDetailMaterialInventoryDto {\n    return new OutPlanDetailMaterialInventoryDto(null, null);\n  }\n}\n\n/** 领料单表表 */\nexport class PickingOutBusinessOrderDto {\n  constructor(\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人Id */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 业务办理人代号 */\n    public TransactorCode: string,\n    /** 业务办理人 */\n    public TransactorName: string,\n    /** 出库单号 */\n    public OrderId: string,\n    /** 出库仓库代码 */\n    public OutWarehouseCode: string,\n    /** 出库仓库名称 */\n    public OutWarehouseName: string,\n    /** 出库库区代码 */\n    public OutWarehouseAreaCode: string,\n    /** 出库库区名称 */\n    public OutWarehouseAreaName: string,\n    /** 出库货架代码 */\n    public OutWarehouseShelfCode: string,\n    /** 出库货架名称 */\n    public OutWarehouseShelfName: string,\n    /** 出库库位代码 */\n    public OutStorageLocationCode: string,\n    /** 出库库位名称 */\n    public OutStorageLocationName: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 办理人 */\n    public OrderCreatorCode: string,\n    /** 办理人代码 */\n    public OrderCreatorName: string,\n    /** 办理日期 */\n    public OrderCreateDate: Date,\n    /** 办理时间 */\n    public OrderCreateTime: Date,\n    /** 出库计划ID */\n    public PlanOrderId: string,\n    /** 领料单号 */\n    public PickingOutOrderCode: string,\n    /** 生产调度员 */\n    public ProductionScheduler: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): PickingOutBusinessOrderDto {\n    return new PickingOutBusinessOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 销售出库表 */\nexport class SaleOutBusinessOrderDto {\n  constructor(\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人Id */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 业务办理人代号 */\n    public TransactorCode: string,\n    /** 业务办理人 */\n    public TransactorName: string,\n    /** 出库单号 */\n    public OrderId: string,\n    /** 出库仓库代码 */\n    public OutWarehouseCode: string,\n    /** 出库仓库名称 */\n    public OutWarehouseName: string,\n    /** 出库库区代码 */\n    public OutWarehouseAreaCode: string,\n    /** 出库库区名称 */\n    public OutWarehouseAreaName: string,\n    /** 出库货架代码 */\n    public OutWarehouseShelfCode: string,\n    /** 出库货架名称 */\n    public OutWarehouseShelfName: string,\n    /** 出库库位代码 */\n    public OutStorageLocationCode: string,\n    /** 出库库位名称 */\n    public OutStorageLocationName: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 办理人 */\n    public OrderCreatorCode: string,\n    /** 办理人代码 */\n    public OrderCreatorName: string,\n    /** 办理日期 */\n    public OrderCreateDate: Date,\n    /** 办理时间 */\n    public OrderCreateTime: Date,\n    /** 计划单号 */\n    public PlanOrderId: string,\n    /** 客户代码 */\n    public CustomerCode: string,\n    /** 客户名称 */\n    public CustomerName: string,\n    /** 承运商 */\n    public Carrier: string,\n    /** 收货地址 */\n    public ReceivingAddress: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): SaleOutBusinessOrderDto {\n    return new SaleOutBusinessOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 采购退货表 */\nexport class PurchaseBackBusinessOrderDto {\n  constructor(\n    /** 质检人 */\n    public Inspector: string,\n    /** 质检人ID */\n    public InspectorId: string,\n    /** 办理日期 */\n    public TransactDate: Date,\n    /** 办理时间 */\n    public TransactTime: Date,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人Id */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 办理人代号 */\n    public TransactorCode: string,\n    /** 办理人 */\n    public TransactorName: string,\n    /** 出库单号 */\n    public OrderId: string,\n    /** 出库仓库代码 */\n    public OutWarehouseCode: string,\n    /** 出库仓库名称 */\n    public OutWarehouseName: string,\n    /** 出库库区代码 */\n    public OutWarehouseAreaCode: string,\n    /** 出库库区名称 */\n    public OutWarehouseAreaName: string,\n    /** 出库货架代码 */\n    public OutWarehouseShelfCode: string,\n    /** 出库货架名称 */\n    public OutWarehouseShelfName: string,\n    /** 出库库位代码 */\n    public OutStorageLocationCode: string,\n    /** 出库库位名称 */\n    public OutStorageLocationName: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 单据创建人 */\n    public OrderCreatorCode: string,\n    /** 单据创建人名称 */\n    public OrderCreatorName: string,\n    /** 单据创建日期 */\n    public OrderCreateDate: Date,\n    /** 单据创建时间 */\n    public OrderCreateTime: Date,\n    /** 入库计划单号 */\n    public PlanOrderId: string,\n    /** 供应商 */\n    public Supplier: string,\n    /** 供应商Id */\n    public SupplierId: string,\n    /** 采购人Id */\n    public PurchaserId: string,\n    /** 采购人 */\n    public Purchaser: string,\n    /** 到货日期 */\n    public ArrivalDate: Date,\n    /** 联系人 */\n    public Contacts: string,\n    /** 联系电话 */\n    public ContactNumber: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /**  */\n    public OpSign: number\n  ) {}\n  static create(): PurchaseBackBusinessOrderDto {\n    return new PurchaseBackBusinessOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n//#endregion 出库办理区域结束\n\n//#region 调拨计划区域开始\n/** 调拨计划查询表 */\nexport class AllocateTransferPlanOrderQueryDto {\n  constructor(\n    /** 转移类型（移库/调拨） */\n    public TransferType: string,\n    /** 转移单号 */\n    public PlanOrderId: string,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 出库仓库代码 */\n    public OutWarehouseCode: string,\n    /** 出库仓库名称 */\n    public OutWarehouseName: string,\n    /** 出库库区代码 */\n    public OutWarehouseAreaCode: string,\n    /** 出库库区名称 */\n    public OutWarehouseAreaName: string,\n    /** 出库货架代码 */\n    public OutWarehouseShelfCode: string,\n    /** 出库货架名称 */\n    public OutWarehouseShelfName: string,\n    /** 出库库位代码 */\n    public OutStorageLocationCode: string,\n    /** 出库库位名称 */\n    public OutStorageLocationName: string,\n    /** 入库仓库代码 */\n    public InWarehouseCode: string,\n    /** 入库仓库名称 */\n    public InWarehouseName: string,\n    /** 入库库区代码 */\n    public InWarehouseAreaCode: string,\n    /** 入库库区名称 */\n    public InWarehouseAreaName: string,\n    /** 入库货架代码 */\n    public InWarehouseShelfCode: string,\n    /** 入库货架名称 */\n    public InWarehouseShelfName: string,\n    /** 入库库位代码 */\n    public InStorageLocationCode: string,\n    /** 入库库位名称 */\n    public InStorageLocationName: string,\n    /** 备注 */\n    public Remark: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): AllocateTransferPlanOrderQueryDto {\n    return new AllocateTransferPlanOrderQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 物料转移单表 */\nexport class MaterialTransferPlanOrderMasterDto {\n  constructor(\n    /** 转移单号 */\n    public PlanOrderId: string,\n    /** 转移类型（移库/调拨） */\n    public TransferType: string,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 出库仓库代码 */\n    public OutWarehouseCode: string,\n    /** 出库仓库名称 */\n    public OutWarehouseName: string,\n    /** 出库库区代码 */\n    public OutWarehouseAreaCode: string,\n    /** 出库库区名称 */\n    public OutWarehouseAreaName: string,\n    /** 出库货架代码 */\n    public OutWarehouseShelfCode: string,\n    /** 出库货架名称 */\n    public OutWarehouseShelfName: string,\n    /** 出库库位代码 */\n    public OutStorageLocationCode: string,\n    /** 出库库位名称 */\n    public OutStorageLocationName: string,\n    /** 入库仓库代码 */\n    public InWarehouseCode: string,\n    /** 入库仓库名称 */\n    public InWarehouseName: string,\n    /** 入库库区代码 */\n    public InWarehouseAreaCode: string,\n    /** 入库库区名称 */\n    public InWarehouseAreaName: string,\n    /** 入库货架代码 */\n    public InWarehouseShelfCode: string,\n    /** 入库货架名称 */\n    public InWarehouseShelfName: string,\n    /** 入库库位代码 */\n    public InStorageLocationCode: string,\n    /** 入库库位名称 */\n    public InStorageLocationName: string,\n    /** 制单人 */\n    public Creator: string,\n    /** 制单人代码 */\n    public CreatorId: string,\n    /** 制单日期 */\n    public CreateDate: Date,\n    /** 制单时间 */\n    public CreateTime: Date,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人代码 */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): MaterialTransferPlanOrderMasterDto {\n    return new MaterialTransferPlanOrderMasterDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 物料转移单明细查询数据传输对象 */\nexport class MaterialTransferPlanOrderDetailQueryDto {\n  constructor(\n    /** 转移单号 */\n    public PlanOrderId: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 批次号 */\n    public LotNum: string,\n    /** 生产日期 */\n    public ProductionDate: Date,\n    /** 开始生产日期 */\n    public StartProductionDate: Date,\n    /** 结束生产日期 */\n    public EndProductionDate: Date,\n    /** 生产日期区间 */\n    public ProductionDateRange: Date,\n    /** 保质期时长 */\n    public ExpiryDays: number,\n    /** 保质期 */\n    public ExpirationDate: Date,\n    /** 开始保质期 */\n    public StartExpirationDate: Date,\n    /** 结束保质期 */\n    public EndExpirationDate: Date,\n    /** 保质期区间 */\n    public ExpirationDateRange: Date,\n    /** 有效期单位 */\n    public ExpiryUnit: string,\n    /** 条码 */\n    public SN: string,\n    /** 办理数量 */\n    public TransactQty: number,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 开始扩展字段7 */\n    public StartDField1: Date,\n    /** 结束扩展字段7 */\n    public EndDField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 开始扩展字段8 */\n    public StartDField2: Date,\n    /** 结束扩展字段8 */\n    public EndDField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 开始扩展字段9 */\n    public StartDField3: Date,\n    /** 结束扩展字段9 */\n    public EndDField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 开始扩展字段10 */\n    public StartDField4: Date,\n    /** 结束扩展字段10 */\n    public EndDField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): MaterialTransferPlanOrderDetailQueryDto {\n    return new MaterialTransferPlanOrderDetailQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 物料转移单明细表 */\nexport class MaterialTransferPlanOrderDetailDto extends RhSelectableDto {\n  constructor(\n    /** 转移单号 */\n    public PlanOrderId: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 批次号 */\n    public LotNum: string,\n    /** 生产日期 */\n    public ProductionDate: Date,\n    /** 保质期时长 */\n    public ExpiryDays: number,\n    /** 保质期 */\n    public ExpirationDate: Date,\n    /** 有效期单位 */\n    public ExpiryUnit: string,\n    /** 条码 */\n    public SN: string,\n    /** 办理数量 */\n    public TransactQty: number,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {\n    super();\n  }\n  static create(): MaterialTransferPlanOrderDetailDto {\n    return new MaterialTransferPlanOrderDetailDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n//#endregion 调拨计划区域结束\n\n//#region 调拨办理区域开始\n/** 调拨办理单 */\nexport class AllocateTransferBusinessOrder {\n  constructor(\n    /** 调拨单号 */\n    public OrderId: string,\n    /** 办理日期 */\n    public TransactDate: Date,\n    /** 办理时间 */\n    public TransactTime: Date,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人Id */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 办理人代号 */\n    public TransactorCode: string,\n    /** 办理人 */\n    public TransactorName: string,\n    /** 调入仓库代码 */\n    public InWarehouseCode: string,\n    /** 调入仓库名称 */\n    public InWarehouseName: string,\n    /** 调入库区代码 */\n    public InWarehouseAreaCode: string,\n    /** 调入库区名称 */\n    public InWarehouseAreaName: string,\n    /** 调入货架代码 */\n    public InWarehouseShelfCode: string,\n    /** 调入货架名称 */\n    public InWarehouseShelfName: string,\n    /** 调入库位代码 */\n    public InStorageLocationCode: string,\n    /** 调入库位名称 */\n    public InStorageLocationName: string,\n    /** 调出仓库代码 */\n    public OutWarehouseCode: string,\n    /** 调出仓库名称 */\n    public OutWarehouseName: string,\n    /** 调出库区代码 */\n    public OutWarehouseAreaCode: string,\n    /** 调出库区名称 */\n    public OutWarehouseAreaName: string,\n    /** 调出货架代码 */\n    public OutWarehouseShelfCode: string,\n    /** 调出货架名称 */\n    public OutWarehouseShelfName: string,\n    /** 调出库位代码 */\n    public OutStorageLocationCode: string,\n    /** 调出库位名称 */\n    public OutStorageLocationName: string,\n    /** 单据创建人 */\n    public OrderCreatorCode: string,\n    /** 单据创建人名称 */\n    public OrderCreatorName: string,\n    /** 单据创建日期 */\n    public OrderCreateDate: Date,\n    /** 单据创建时间 */\n    public OrderCreateTime: Date,\n    /** */\n    public OpSign: number,\n    /** */\n    public Id: number\n  ) {}\n  static create(): AllocateTransferBusinessOrder {\n    return new AllocateTransferBusinessOrder(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 调拨单明细 */\nexport class AllocateTransferDetailDto {\n  constructor(\n    /** 辅助数量 */\n    public MeasureAuxQty: number,\n    /** 辅助单位 */\n    public MeasureAuxUnit: string,\n    /** 出入库单号 */\n    public OrderId: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 生产日期 */\n    public ProductionDate: Date,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 保质期单位 */\n    public ExpiryUnit: string,\n    /** 有效期 */\n    public ExpirationDate: Date,\n    /** 批次号 */\n    public LotNum: string,\n    /** 条码 */\n    public SN: string,\n    /** 是否已完成 */\n    public IsCompleted: boolean,\n    /** 办理数量 */\n    public TransactQty: number,\n    /** 备注 */\n    public Remark: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {}\n  static create(): AllocateTransferDetailDto {\n    return new AllocateTransferDetailDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 审核调拨单模型 */\nexport class AuditAllocateTransferOrderDto {\n  constructor(\n    /** 调拨单号 */\n    public OrderId: string,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人代码 */\n    public AuditorId: string,\n    /** 是否审核通过 */\n    public IsPass: boolean,\n    /** 审核信息 */\n    public AuditMessage: string\n  ) {}\n  static create(): AuditAllocateTransferOrderDto {\n    return new AuditAllocateTransferOrderDto(null, null, null, null, null);\n  }\n}\n\n/** 调拨办理单 */\nexport class AllocateTransferOrder {\n  constructor(\n    /** 调拨单号 */\n    public OrderId: string,\n    /** 计划单号 */\n    public PlanOrderId: string,\n    /** 办理日期 */\n    public TransactDate: Date,\n    /** 办理时间 */\n    public TransactTime: Date,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人Id */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 办理人代号 */\n    public TransactorCode: string,\n    /** 办理人 */\n    public TransactorName: string,\n    /** 调入仓库代码 */\n    public InWarehouseCode: string,\n    /** 调入仓库名称 */\n    public InWarehouseName: string,\n    /** 调入库区代码 */\n    public InWarehouseAreaCode: string,\n    /** 调入库区名称 */\n    public InWarehouseAreaName: string,\n    /** 调入货架代码 */\n    public InWarehouseShelfCode: string,\n    /** 调入货架名称 */\n    public InWarehouseShelfName: string,\n    /** 调入库位代码 */\n    public InStorageLocationCode: string,\n    /** 调入库位名称 */\n    public InStorageLocationName: string,\n    /** 调出仓库代码 */\n    public OutWarehouseCode: string,\n    /** 调出仓库名称 */\n    public OutWarehouseName: string,\n    /** 调出库区代码 */\n    public OutWarehouseAreaCode: string,\n    /** 调出库区名称 */\n    public OutWarehouseAreaName: string,\n    /** 调出货架代码 */\n    public OutWarehouseShelfCode: string,\n    /** 调出货架名称 */\n    public OutWarehouseShelfName: string,\n    /** 调出库位代码 */\n    public OutStorageLocationCode: string,\n    /** 调出库位名称 */\n    public OutStorageLocationName: string,\n    /** 单据创建人 */\n    public OrderCreatorCode: string,\n    /** 单据创建人名称 */\n    public OrderCreatorName: string,\n    /** 单据创建日期 */\n    public OrderCreateDate: Date,\n    /** 单据创建时间 */\n    public OrderCreateTime: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** */\n    public OpSign: number,\n    /** */\n    public Id: number\n  ) {}\n  static create(): AllocateTransferOrder {\n    return new AllocateTransferOrder(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 调拨单明细 */\nexport class MaterialTransferDetailDto {\n  constructor(\n    /** 辅助数量 */\n    public MeasureAuxQty: number,\n    /** 辅助单位 */\n    public MeasureAuxUnit: string,\n    /** 出入库单号 */\n    public OrderId: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 生产日期 */\n    public ProductionDate: Date,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 保质期单位 */\n    public ExpiryUnit: string,\n    /** 有效期 */\n    public ExpirationDate: Date,\n    /** 批次号 */\n    public LotNum: string,\n    /** 条码 */\n    public SN: string,\n    /** 是否已完成 */\n    public IsCompleted: boolean,\n    /** 办理数量 */\n    public TransactQty: number,\n    /** 备注 */\n    public Remark: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {}\n  static create(): MaterialTransferDetailDto {\n    return new MaterialTransferDetailDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n//#endregion 调拨办理区域结束\n\n//#region 移库计划区域开始\n/** 移库计划查询模型 */\nexport class LocationMovePlanOrderQueryDto {\n  constructor(\n    /** 移库计划单号 */\n    public PlanOrderId: string,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 移出仓库代码 */\n    public OutWarehouseCode: string,\n    /** 移出仓库名称 */\n    public OutWarehouseName: string,\n    /** 移出库区代码 */\n    public OutWarehouseAreaCode: string,\n    /** 移出库区名称 */\n    public OutWarehouseAreaName: string,\n    /** 移出货架代码 */\n    public OutWarehouseShelfCode: string,\n    /** 移出货架名称 */\n    public OutWarehouseShelfName: string,\n    /** 移出库位代码 */\n    public OutStorageLocationCode: string,\n    /** 移出库位名称 */\n    public OutStorageLocationName: string,\n    /** 移入仓库代码 */\n    public InWarehouseCode: string,\n    /** 移入仓库名称 */\n    public InWarehouseName: string,\n    /** 移入库区代码 */\n    public InWarehouseAreaCode: string,\n    /** 移入库区名称 */\n    public InWarehouseAreaName: string,\n    /** 移入货架代码 */\n    public InWarehouseShelfCode: string,\n    /** 移入货架名称 */\n    public InWarehouseShelfName: string,\n    /** 移入库位代码 */\n    public InStorageLocationCode: string,\n    /** 移入库位名称 */\n    public InStorageLocationName: string,\n    /** 备注 */\n    public Remark: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): LocationMovePlanOrderQueryDto {\n    return new LocationMovePlanOrderQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 物料转移单明细 */\nexport class MaterialTransferPlanOrderDetailReadDto {\n  constructor(\n    /** 库存数量 */\n    public InventoryQty: number,\n    /** 转移单号 */\n    public PlanOrderId: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 批次号 */\n    public LotNum: string,\n    /** 生产日期 */\n    public ProductionDate: Date,\n    /** 保质期时长 */\n    public ExpiryDays: number,\n    /** 保质期 */\n    public ExpirationDate: Date,\n    /** 有效期单位 */\n    public ExpiryUnit: string,\n    /** 条码 */\n    public SN: string,\n    /** 办理数量 */\n    public TransactQty: number,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建时间 */\n    public CreationTime: Date,\n    /** 创建人Id */\n    public CreatorUserId: number,\n    /** 创建人名字 */\n    public CreatorUserName: string,\n    /** 上一次修改时间 */\n    public LastModificationTime: Date,\n    /** 上一次修改人Id */\n    public LastModifierUserId: number,\n    /** 上一次修改人名字 */\n    public LastModifierUserName: string,\n    /** 主键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): MaterialTransferPlanOrderDetailReadDto {\n    return new MaterialTransferPlanOrderDetailReadDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 移库计划模型 */\nexport class LocationMovePlanOrderDto {\n  constructor(\n    /** 移库计划单号 */\n    public PlanOrderId: string,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 调入库区代码 */\n    public InWarehouseAreaCode: string,\n    /** 调入库区名称 */\n    public InWarehouseAreaName: string,\n    /** 调入货架代码 */\n    public InWarehouseShelfCode: string,\n    /** 调入货架名称 */\n    public InWarehouseShelfName: string,\n    /** 调入库位代码 */\n    public InStorageLocationCode: string,\n    /** 调入库位名称 */\n    public InStorageLocationName: string,\n    /** 调出库区代码 */\n    public OutWarehouseAreaCode: string,\n    /** 调出库区名称 */\n    public OutWarehouseAreaName: string,\n    /** 调出货架代码 */\n    public OutWarehouseShelfCode: string,\n    /** 调出货架名称 */\n    public OutWarehouseShelfName: string,\n    /** 调出库位代码 */\n    public OutStorageLocationCode: string,\n    /** 调出库位名称 */\n    public OutStorageLocationName: string,\n    /** 制单人 */\n    public Creator: string,\n    /** 制单人代码 */\n    public CreatorId: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 主键 */\n    public Id: number,\n    /** */\n    public OpSign: number\n  ) {}\n  static create(): LocationMovePlanOrderDto {\n    return new LocationMovePlanOrderDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n//#endregion 移库计划区域结束\n\n//#region 移库办理区域开始\n/** 移库单模型 */\nexport class LocationMoveTransferOrder {\n  constructor(\n    /** 移库单号 */\n    public OrderId: string,\n    /** 计划单号 */\n    public PlanOrderId: string,\n    /** 办理日期 */\n    public TransactDate: Date,\n    /** 办理时间 */\n    public TransactTime: Date,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人Id */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 办理人代号 */\n    public TransactorCode: string,\n    /** 办理人 */\n    public TransactorName: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 调入库区代码 */\n    public InWarehouseAreaCode: string,\n    /** 调入库区名称 */\n    public InWarehouseAreaName: string,\n    /** 调入货架代码 */\n    public InWarehouseShelfCode: string,\n    /** 调入货架名称 */\n    public InWarehouseShelfName: string,\n    /** 调入库位代码 */\n    public InStorageLocationCode: string,\n    /** 调入库位名称 */\n    public InStorageLocationName: string,\n    /** 调出库区代码 */\n    public OutWarehouseAreaCode: string,\n    /** 调出库区名称 */\n    public OutWarehouseAreaName: string,\n    /** 调出货架代码 */\n    public OutWarehouseShelfCode: string,\n    /** 调出货架名称 */\n    public OutWarehouseShelfName: string,\n    /** 调出库位代码 */\n    public OutStorageLocationCode: string,\n    /** 调出库位名称 */\n    public OutStorageLocationName: string,\n    /** 单据创建人 */\n    public OrderCreatorCode: string,\n    /** 单据创建人名称 */\n    public OrderCreatorName: string,\n    /** 单据创建日期 */\n    public OrderCreateDate: Date,\n    /** 单据创建时间 */\n    public OrderCreateTime: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** */\n    public OpSign: number,\n    /** */\n    public Id: number\n  ) {}\n  static create(): LocationMoveTransferOrder {\n    return new LocationMoveTransferOrder(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 办理 */\nexport class TransactLocationMoveOrderInput {\n  constructor(\n    /** 移库单号 */\n    public OrderId: string,\n    /** 计划单号 */\n    public PlanOrderId: string,\n    /** 办理日期 */\n    public TransactDate: Date,\n    /** 办理时间 */\n    public TransactTime: Date,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人Id */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 办理人代号 */\n    public TransactorCode: string,\n    /** 办理人 */\n    public TransactorName: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 调入库区代码 */\n    public InWarehouseAreaCode: string,\n    /** 调入库区名称 */\n    public InWarehouseAreaName: string,\n    /** 调入货架代码 */\n    public InWarehouseShelfCode: string,\n    /** 调入货架名称 */\n    public InWarehouseShelfName: string,\n    /** 调入库位代码 */\n    public InStorageLocationCode: string,\n    /** 调入库位名称 */\n    public InStorageLocationName: string,\n    /** 调出库区代码 */\n    public OutWarehouseAreaCode: string,\n    /** 调出库区名称 */\n    public OutWarehouseAreaName: string,\n    /** 调出货架代码 */\n    public OutWarehouseShelfCode: string,\n    /** 调出货架名称 */\n    public OutWarehouseShelfName: string,\n    /** 调出库位代码 */\n    public OutStorageLocationCode: string,\n    /** 调出库位名称 */\n    public OutStorageLocationName: string,\n    /** 单据创建人 */\n    public OrderCreatorCode: string,\n    /** 单据创建人名称 */\n    public OrderCreatorName: string,\n    /** 单据创建日期 */\n    public OrderCreateDate: Date,\n    /** 单据创建时间 */\n    public OrderCreateTime: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** */\n    public OpSign: number,\n    /** */\n    public Id: number\n  ) {}\n  static create(): TransactLocationMoveOrderInput {\n    return new TransactLocationMoveOrderInput(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 审核移库单 */\nexport class AuditLocationMoveOrderDto {\n  constructor(\n    /** 调拨单号 */\n    public OrderId: string,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人代码 */\n    public AuditorId: string,\n    /** 是否审核通过 */\n    public IsPass: boolean,\n    /** 审核信息 */\n    public AuditMessage: string\n  ) {}\n  static create(): AuditLocationMoveOrderDto {\n    return new AuditLocationMoveOrderDto(null, null, null, null, null);\n  }\n}\n\n/** 转移单明细 */\nexport class InOutMaterialTransferDetialDto {\n  constructor(\n    /** 库存数量 */\n    public InventoryQty: number,\n    /** 辅助数量 */\n    public MeasureAuxQty: number,\n    /** 辅助单位 */\n    public MeasureAuxUnit: string,\n    /** 出入库单号 */\n    public OrderId: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 生产日期 */\n    public ProductionDate: Date,\n    /** 出库仓库代码 */\n    public OutWarehouseCode: string,\n    /** 出库仓库名称 */\n    public OutWarehouseName: string,\n    /** 出库库区代码 */\n    public OutWarehouseAreaCode: string,\n    /** 出库库区名称 */\n    public OutWarehouseAreaName: string,\n    /** 出库货架代码 */\n    public OutWarehouseShelfCode: string,\n    /** 出库货架名称 */\n    public OutWarehouseShelfName: string,\n    /** 出库库位代码 */\n    public OutStorageLocationCode: string,\n    /** 出库库位名称 */\n    public OutStorageLocationName: string,\n    /** 入库仓库代码 */\n    public InWarehouseCode: string,\n    /** 入库仓库名称 */\n    public InWarehouseName: string,\n    /** 入库库区代码 */\n    public InWarehouseAreaCode: string,\n    /** 入库库区名称 */\n    public InWarehouseAreaName: string,\n    /** 入库货架代码 */\n    public InWarehouseShelfCode: string,\n    /** 入库货架名称 */\n    public InWarehouseShelfName: string,\n    /** 入库库位代码 */\n    public InStorageLocationCode: string,\n    /** 入库库位名称 */\n    public InStorageLocationName: string,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 保质期单位 */\n    public ExpiryUnit: string,\n    /** 有效期 */\n    public ExpirationDate: Date,\n    /** 发货地址 */\n    public ShippingAddress: string,\n    /** 批次号 */\n    public LotNum: string,\n    /** 条码 */\n    public SN: string,\n    /** 是否已完成 */\n    public IsCompleted: boolean,\n    /** 办理数量 */\n    public TransactQty: number,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {}\n  static create(): InOutMaterialTransferDetialDto {\n    return new InOutMaterialTransferDetialDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n//#endregion 移库办理区域结束\n","import { Injectable } from '@angular/core';\nimport { DataResultT, OpResult, RhSelectItem } from 'rh-base/model';\nimport { RhApiUrlsService } from 'rh-base/core';\nimport { Observable } from 'rxjs';\nimport {\n  InPlanOrderDetailQueryDto,\n  InPlanOrderDetailDto,\n  InPlanOrderMasterDto,\n  AuditInPlanOrderDto,\n  InOutOrderDetailDto,\n  InOutOrderMasterDto,\n  InPlanSourceOrderDetailQueryDto,\n  InPlanSourceOrderDetailDto,\n  CreateInPlanOrderInput,\n  ProductionPlanOrderDto,\n  ProductionPlanOrderQueryDto,\n  MaterialDocumentQueryDto,\n  MaterialDocumentDto,\n  OutPlanOrderDetailQueryDto,\n  OutPlanOrderDetailDto,\n  OutPlanOrderMasterDto,\n  CreateOutPlanOrderInput,\n  ExternalPickingOutOrderDetailQueryDto,\n  ExternalPickingOutOrderDetailDto,\n  OutPlanMaterialInventoryQueryDto,\n  OutPlanMaterialInventoryDto,\n  MaterialInventoryDetailQueryDto,\n  MaterialInventoryDetailDto,\n  OverAllMaterialInventoryDetailQueryDto,\n  OverAllMaterialInventoryDetailDto,\n  InOutOrderDetailQueryDto,\n  ExtPurchaseOrderDto,\n  ExtPurchaseOrderQueryDto,\n  ParaSettingEntryDto,\n  InPlanOrderDetailReadDto,\n  WarehouseConfigQueryDto,\n  WarehouseConfigDto\n} from './wms-model';\n\n@Injectable()\nexport class RhWmsService {\n  constructor(private apiUrls: RhApiUrlsService) { }\n  //#region 工具箱区域开始\n\n  /**\n   *  获取全局系统配置参数\n   */\n  GetSysConfigParameterDatas(): Observable<DataResultT<ParaSettingEntryDto[]>> {\n    return this.apiUrls.GetRdp('SysConfigApi', 'GetSysConfigParameterDatas');\n  }\n\n  /**\n   *  初始化仓储管理系统配置\n   */\n  InitWmsSysConfig(dtos: ParaSettingEntryDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ConfigurationWebApi', 'InitWmsSysConfig', dtos);\n  }\n\n  /**\n   *  批量更新参数设置条目\n   */\n  UpdateParameterSettingEntries(ParaSettingEntryDto: ParaSettingEntryDto[]): Observable<OpResult> {\n    return this.apiUrls.PostPp('YGSysConfigApi', 'UpdateParameterSettingEntries', ParaSettingEntryDto);\n  }\n\n  /**\n   *  获取仓库配置信息\n   */\n  GetWarehouseConfigDatas(queryDto: WarehouseConfigQueryDto): Observable<DataResultT<WarehouseConfigDto[]>> {\n    return this.apiUrls.PostMdp('WarehouseWebApi', 'GetWarehouseConfigDatas', queryDto);\n  }\n  //#endregion 工具箱区域结束\n\n  //#region 入库计划区域开始\n  /**\n   *  获取入库计划明细\n   */\n  GetInPlanOrderDetailDatas(queryDto: InPlanOrderDetailQueryDto): Observable<DataResultT<InPlanOrderDetailReadDto[]>> {\n    return this.apiUrls.PostRhpWms('InPlanOrderWebApi', 'GetInPlanOrderDetailDatas', queryDto);\n  }\n\n  /**\n   *  移除入库计划明\n   */\n  RemoveInPlanOrderDetails(dtos: InPlanOrderDetailDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('InPlanOrderWebApi', 'RemoveInPlanOrderDetails', dtos);\n  }\n\n  /**\n   *  修改入库计划明细\n   */\n  StoreInPlanOrderDetails(dtos: InPlanOrderDetailDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('InPlanOrderWebApi', 'StoreInPlanOrderDetails', dtos);\n  }\n\n  /**\n   *  获取物料单位选择项\n   */\n  GetMeasureUnitSelectItems(): Observable<DataResultT<RhSelectItem[]>> {\n    return this.apiUrls.GetMdp('ProductMaterialWebApi', 'GetMeasureUnitSelectItems');\n  }\n\n  /**\n   *  提交入库计划审核\n   */\n  SubmitInPlanOrder(dto: InPlanOrderMasterDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('InPlanOrderWebApi', 'SubmitInPlanOrder', dto);\n  }\n\n  /**\n   *  审核入库计划\n   */\n  AuditInPlanOrder(dto: AuditInPlanOrderDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('InPlanOrderWebApi', 'AuditInPlanOrder', dto);\n  }\n\n  /**\n   *  获取入库计划源单明细\n   */\n  GetInPlanSourceOrderDetailDatas(queryDto: InPlanSourceOrderDetailQueryDto): Observable<DataResultT<InPlanSourceOrderDetailDto[]>> {\n    return this.apiUrls.PostRhpWms('InPlanOrderWebApi', 'GetInPlanSourceOrderDetailDatas', queryDto);\n  }\n\n  /**\n   *  完成入库计划\n   */\n  CompleteInPlanOrder(dto: InPlanOrderMasterDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('InPlanOrderWebApi', 'CompleteInPlanOrder', dto);\n  }\n\n  /**\n   *  批量删除入库计划\n   */\n  RemoveInPlanOrders(dtos: CreateInPlanOrderInput[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('InPlanOrderWebApi', 'RemoveInPlanOrders', dtos);\n  }\n\n  /**\n   *  模糊查询计划信息\n   */\n  GetProductionPlanOrderDatas(queryDto: ProductionPlanOrderQueryDto): Observable<DataResultT<ProductionPlanOrderDto[]>> {\n    return this.apiUrls.PostEmp('ProductPlanApi', 'GetProductionPlanOrderDatas', queryDto);\n  }\n\n  /**\n   *  获取物料档案数据\n   */\n  GetMaterialDocumentDatas(queryDto: MaterialDocumentQueryDto): Observable<DataResultT<MaterialDocumentDto[]>> {\n    return this.apiUrls.PostMdp('ProductMaterialWebApi', 'GetMaterialDocumentDatas', queryDto);\n  }\n  //#endregion 入库计划区域结束\n\n  //#region 入库办理区域开始\n  /**\n   *  移除入库单表体\n   */\n  RemoveInOutOrderDetailDatas(dtos: InOutOrderDetailDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('InOrderWebApi', 'RemoveInOutOrderDetailDatas', dtos);\n  }\n\n  /**\n   *  保存入库单表体\n   */\n  StoreInOutOrderDetailDatas(dtos: InOutOrderDetailDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('InOrderWebApi', 'StoreInOutOrderDetailDatas', dtos);\n  }\n\n  /**\n   *  提交入库单\n   */\n  SubmitInWarehouseOrder(dto: InOutOrderMasterDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('InOrderWebApi', 'SubmitInWarehouseOrder', dto);\n  }\n\n  /**\n   *  撤销入库单入库，回滚入库单库存\n   */\n  // RollbackInWarehouseOrder(dto: InOutOrderMasterDto): Observable<OpResult> {\n  //   return this.apiUrls.PostRhpWms('InOrderWebApi', 'RollbackInWarehouseOrder', dto);\n  // }\n\n  /**\n   *  获取入库计划明细，并且返回已入库数量\n   */\n  // GetInPlanOrderDetailDatasReturn(queryDto: InPlanOrderDetailQueryDto): Observable<DataResultT<InPlanOrderDetailDto[]>> {\n  //   return this.apiUrls.PostRhpWms('InOrderWebApi', 'GetInPlanOrderDetailDatas', queryDto);\n  // }\n  //#endregion 入库办理区域结束\n  //#region 出库计划区域开始\n  /**\n   *  获取出库计划明细\n   */\n  GetOutPlanOrderDetailDatas(queryDto: OutPlanOrderDetailQueryDto): Observable<DataResultT<OutPlanOrderDetailDto[]>> {\n    return this.apiUrls.PostRhpWms('OutPlanOrderWebApi', 'GetOutPlanOrderDetailDatas', queryDto);\n  }\n\n  /**\n   *  移除生产领料出库单明细\n   */\n  RemoveOutPlanOrderDetails(dtos: OutPlanOrderDetailDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OutPlanOrderWebApi', 'RemoveOutPlanOrderDetails', dtos);\n  }\n\n  /**\n   *  保存生产领料出库单明细\n   */\n  StoreOutPlanOrderDetails(dtos: OutPlanOrderDetailDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OutPlanOrderWebApi', 'StoreOutPlanOrderDetails', dtos);\n  }\n\n  /**\n   *  提交生产领料出库单\n   */\n  SubmitOutPlanOrder(dto: OutPlanOrderMasterDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OutPlanOrderWebApi', 'SubmitOutPlanOrder', dto);\n  }\n\n  /**\n   *  完成领料出库单数据\n   */\n  CompleteOutPlanOrder(dto: OutPlanOrderMasterDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OutPlanOrderWebApi', 'CompleteOutPlanOrder', dto);\n  }\n\n  /**\n   *  删除领料出库单数据\n   */\n  RemoveOutPlanOrders(dtos: CreateOutPlanOrderInput[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OutPlanOrderWebApi', 'RemoveOutPlanOrders', dtos);\n  }\n\n  /**\n   *  获取外部生产领料出库单明细\n   */\n  GetExternalPickingOutOrderDetailDatas(\n    queryDto: ExternalPickingOutOrderDetailQueryDto\n  ): Observable<DataResultT<ExternalPickingOutOrderDetailDto[]>> {\n    return this.apiUrls.PostRhpWms('ExternalOutBusinessOrderWebApi', 'GetExternalPickingOutOrderDetailDatas', queryDto);\n  }\n  //#endregion 出库计划区域结束\n\n  //#region 出库办理区域开始\n  /**\n   *  提交出库单\n   */\n  SubmitOutWarehouseOrder(dto: InOutOrderMasterDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OutOrderWebApi', 'SubmitOutWarehouseOrder', dto);\n  }\n\n  /**\n   *  保存出库单\n   */\n  StoreOutOrderDetailDatas(dtos: InOutOrderDetailDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OutOrderWebApi', 'StoreInOutOrderDetailDatas', dtos);\n  }\n\n  /**\n   *  获取出库计划库存明细\n   */\n  GetOutPlanMaterialInventoryDatas(queryDto: OutPlanMaterialInventoryQueryDto): Observable<DataResultT<OutPlanMaterialInventoryDto[]>> {\n    return this.apiUrls.PostRhpWms('MaterialInventoryWebApi', 'GetOutPlanMaterialInventoryDatas', queryDto);\n  }\n\n  /**\n   *  获取库存明细\n   */\n  GetMaterialInventoryDetailDatas(queryDto: MaterialInventoryDetailQueryDto): Observable<DataResultT<MaterialInventoryDetailDto[]>> {\n    return this.apiUrls.PostRhpWms('MaterialInventoryWebApi', 'GetMaterialInventoryDetailDatas', queryDto);\n  }\n\n  /**\n   *  获取完整库存明细\n   */\n  GetOverAllMaterialInventoryDetailDatas(\n    queryDto: OverAllMaterialInventoryDetailQueryDto\n  ): Observable<DataResultT<OverAllMaterialInventoryDetailDto[]>> {\n    return this.apiUrls.PostRhpWms('MaterialInventoryWebApi', 'GetOverAllMaterialInventoryDetailDatas', queryDto);\n  }\n\n  /**\n   *  移除出库单明细\n   */\n  RemoveOutOrderDetailDatas(dtos: InOutOrderDetailDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OutOrderWebApi', 'RemoveInOutOrderDetailDatas', dtos);\n  }\n\n  /**\n   *  获取出库单明细\n   */\n  GetOutOrderDetailDatas(queryDto: InOutOrderDetailQueryDto): Observable<DataResultT<InOutOrderDetailDto[]>> {\n    return this.apiUrls.PostRhpWms('OutOrderWebApi', 'GetOutOrderDetailDatas', queryDto);\n  }\n  //#endregion 出库办理区域结束\n}\n","import { RhApiUrlsService } from 'rh-base/core';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { DataResultT, OpResult, RhBaseDto, RhSelectItem } from 'rh-base/model';\nimport {\n  BusinessModeConfigDto,\n  BusinessModeConfigQueryDto,\n  BusinessModePageConfigDto,\n  BusinessWithWarehouseConfigQueryDto,\n  ESInvokeExceptionCompensagionRecordDto,\n  WarehouseBusinessConfOutput,\n  WarehouseBusinessConfQueryDto\n} from './tool-kit-model';\n\n@Injectable()\nexport class RhToolKitService {\n  constructor(private apiUrls: RhApiUrlsService) { }\n\n  /**\n   *  批量存储仓库配置控制参数\n   */\n  StoreWarehouseControlParameters(dtos: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostMdp('WarehouseWebApi', 'StoreWarehouseControlParameters', dtos);\n  }\n\n  GetBusinessType(): Observable<DataResultT<RhSelectItem[]>> {\n    const controller = 'YGSysConfigApi';\n    const Interface = 'GetParameterSettingEntrySelectItems';\n    return this.apiUrls.GetPp(controller, Interface, {\n      params: { moduleKey: 'Wms', groupKey: 'InOutWarehouseBusiness', paraCode: 'InOutBusinessTypesConst' }\n    });\n  }\n\n  /**\n   *  获取仓库业务数据\n   */\n  GetWarehouseBusinessConfDatas(queryDto: WarehouseBusinessConfQueryDto): Observable<DataResultT<WarehouseBusinessConfOutput[]>> {\n    return this.apiUrls.PostRhpWms('WarehouseBusinessConfWebApi', 'GetWarehouseBusinessConfDatas', queryDto);\n  }\n\n  /**\n   *  获业务类型所适用的仓库配置信息\n   */\n  GetStorageBusinessUseWithWareshoues(queryDto: BusinessWithWarehouseConfigQueryDto): Observable<DataResultT<WarehouseBusinessConfOutput>> {\n    return this.apiUrls.PostRhpWms('ConfigurationWebApi', 'GetStorageBusinessUseWithWareshoues', queryDto);\n  }\n\n  /**\n   *  移除仓储业务所使用仓库参数配置信息\n   */\n  RemoveStorageBusinessUseWithWareshoues(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ConfigurationWebApi', 'RemoveStorageBusinessUseWithWareshoues', input);\n  }\n\n  /**\n   *  完成外部系统调用异常补偿操作\n   */\n  CompletedESInvokeExceptionCompensagionOperation(dto: ESInvokeExceptionCompensagionRecordDto): Observable<OpResult> {\n    return this.apiUrls.PostPp('EagleEyeLogApi', 'CompletedESInvokeExceptionCompensagionOperation', dto);\n  }\n\n  /**\n   *  更新外部系统调用异常补偿尝试操作次数\n   */\n  UpdateESInvokeExceptionCompensagionTryExcuteTime(dto: ESInvokeExceptionCompensagionRecordDto): Observable<OpResult> {\n    return this.apiUrls.PostPp('EagleEyeLogApi', 'UpdateESInvokeExceptionCompensagionTryExcuteTime', dto);\n  }\n\n  /**\n   *  获取业务模式配置\n   */\n  GetBusinessModeConfigDatas(queryDto: BusinessModeConfigQueryDto): Observable<DataResultT<BusinessModeConfigDto[]>> {\n    return this.apiUrls.PostRhpWms('ConfigurationWebApi', 'GetBusinessModeConfigDatas', queryDto);\n  }\n\n  /**\n     *  获取业务模式下的页面配置\n     */\n  GetBusinessModePageConfigData(queryDto: BusinessModeConfigQueryDto): Observable<DataResultT<BusinessModePageConfigDto>> {\n    return this.apiUrls.PostRhpWms('ConfigurationWebApi', 'GetBusinessModePageConfigData', queryDto);\n  }\n\n  /**\n   *  批量保存业务模式参数配置\n   */\n  StoreBusinessModeConfigDatas(BusinessModeConfigDto: BusinessModeConfigDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ConfigurationWebApi', 'StoreBusinessModeConfigDatas', BusinessModeConfigDto);\n  }\n\n  /**\n   *  删除业务模式配置\n   */\n  RemoveBusinessModeConfigData(dto: BusinessModeConfigDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ConfigurationWebApi', 'RemoveBusinessModeConfigData', dto);\n  }\n}\n","import { RhSelectItem, RhSelectableDto } from 'rh-base/model';\n\nexport const INDEXDB_DB_NAME = 'InterfaceDebug';\nexport const INDEXDB_DB_SHEET_NAME = 'InterfaceInfo';\nexport const INDEXDB_PRIMARY_KEY = 'InterfaceId';\nexport const INDEXDB_VERSION = 1;\n\nexport const ENVIRONMENT_DATAS = [\n  { name: '121服务器', server: '192.168.0.121' },\n  { name: '200服务器', server: '192.168.0.200' },\n  { name: '本地服务器', server: 'localhost' },\n  { name: 'Mock服务器', server: 'mockserver' }\n];\n\nexport const DataResultSchema = {\n  type: 'object',\n  properties: {\n    Message: { type: 'string' },\n    Success: { type: 'boolean' },\n    Record: { type: 'integer' },\n    Attach: {\n      type: ['object', 'array']\n    }\n  },\n  required: ['Message', 'Success', 'Record', 'Attach']\n};\n\n/** 业务仓库配置输出参数 */\nexport class WarehouseBusinessConfOutput {\n  constructor(\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 业务类型代码 */\n    public BusinessTypeCode: string,\n    /** 业务类型名称 */\n    public BusinessTypeName: string,\n    /** 配置模式 */\n    public ConfigMode: string,\n    /** 允许查询仓库 */\n    public ListAllowedWarehouses: RhSelectItem[],\n    /** 允许查询仓库类别 */\n    public ListAllowedWarehouseCategories: RhSelectItem[],\n    /** 忽略查询仓库 */\n    public ListIgnoredWarehouses: RhSelectItem[],\n    /** 忽略查询仓库类别 */\n    public ListIgnoredWarehouseCategories: RhSelectItem[]\n  ) { }\n  static create(): WarehouseBusinessConfOutput {\n    return new WarehouseBusinessConfOutput(null, null, null, null, null, null, null, null);\n  }\n}\n\n/** 业务仓库配置查询数据传输对象 */\nexport class WarehouseBusinessConfQueryDto {\n  constructor(\n    /** 业务类型代码 */\n    public BusinessTypeCode: string,\n    /** 业务类型名称 */\n    public BusinessTypeName: string,\n    /** 允许查询仓库 */\n    public AllowedWarehouses: string,\n    /** 允许查询仓库类别 */\n    public AllowedWarehouseCategories: string,\n    /** 忽略查询仓库 */\n    public IgnoredWarehouses: string,\n    /** 忽略查询仓库类别 */\n    public IgnoredWarehouseCategories: string,\n    /** 配置模式 */\n    public ConfigMode: string,\n    /** 备注 */\n    public Remark: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) { }\n  static create(): WarehouseBusinessConfQueryDto {\n    return new WarehouseBusinessConfQueryDto(null, null, null, null, null, null, null, null, null, null, null, null);\n  }\n}\n\n/** 业务所含仓库列表配置查询模型 */\nexport class BusinessWithWarehouseConfigQueryDto {\n  constructor(\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 业务类型代码 */\n    public BusinessTypeCode: string\n  ) { }\n  static create(): BusinessWithWarehouseConfigQueryDto {\n    return new BusinessWithWarehouseConfigQueryDto(null, null);\n  }\n}\n\n/** 外部服务异常补偿记录模型 */\nexport class ESInvokeExceptionCompensagionRecordDto {\n  constructor(\n    /** 调用唯一键值 */\n    public InvokeKey: string,\n    /** 补偿调用URL */\n    public InvokeApiUrl: string,\n    /** 调用输入参数 */\n    public InvokeInputParameter: string,\n    /** 调用方法名称 */\n    public InvokeMethodName: string,\n    /** Http方法 */\n    public HttpMethod: string,\n    /** 异常类型 */\n    public ErrorType: string,\n    /** 异常信息 */\n    public ErrorMessage: string,\n    /** 尝试执行次数 */\n    public TryExecuteTimes: number,\n    /** 是否执行成功 */\n    public IsHandleSuccess: boolean,\n    /** 系统名称 */\n    public SystemName: string,\n    /** 终端IP地址 */\n    public TerminalIp: string,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) { }\n  static create(): ESInvokeExceptionCompensagionRecordDto {\n    return new ESInvokeExceptionCompensagionRecordDto(null, null, null, null, null, null, null, null, null, null, null, null, null);\n  }\n}\n\n/** 外部服务调用异常日志模型 */\nexport class ESWebApiInvokeExceptionLogDto {\n  constructor(\n    public ControllerName: string,\n    /** 调用Url */\n    public InvokeApiUrl: string,\n    /** 调用输入参数 */\n    public InvokeInputParameter: string,\n    /** 调用方法名 */\n    public InvokeMethodName: string,\n    /** 调用源类型 */\n    public InvokeSourceType: string,\n    /** Http方法 */\n    public HttpMethod: string,\n    /** 错误类型 */\n    public ErrorType: string,\n    /** 错误信息 */\n    public ErrorMessage: string,\n    /** 终端IP */\n    public TerminalIp: string,\n    /** 系统名称 */\n    public SystemName: string,\n    /** 创建日期 */\n    public CreationDate: Date,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) { }\n  static create(): ESWebApiInvokeExceptionLogDto {\n    return new ESWebApiInvokeExceptionLogDto(null, null, null, null, null, null, null, null, null, null, null, null, null);\n  }\n}\n\n/** 业务模式配置 */\nexport class BusinessModeConfigQueryDto {\n  constructor(\n    /** 业务类型编码 */\n    public BusinessTypeCode: string,\n    /** 业务类型名称 */\n    public BusinessTypeName: string,\n    /** 业务模式编码 */\n    public BusinessModeCode: string,\n    /** 业务模式名称 */\n    public BusinessModeName: string,\n    /** 是否启用 */\n    public IsUse: boolean,\n    /** 备注 */\n    public Remark: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number,\n  ) { }\n  static create(): BusinessModeConfigQueryDto {\n    return new BusinessModeConfigQueryDto(null, null, null, null, null, null, null, null, null, null);\n  }\n}\n\n/** 业务模式配置 */\nexport class BusinessModeConfigDto extends RhSelectableDto {\n  constructor(\n    /** 业务类型编码 */\n    public BusinessTypeCode: string,\n    /** 业务类型名称 */\n    public BusinessTypeName: string,\n    /** 业务模式编码 */\n    public BusinessModeCode: string,\n    /** 业务模式名称 */\n    public BusinessModeName: string,\n    /** 备注 */\n    public Remark: string,\n    /** 是否启用 */\n    public IsUse: boolean,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {\n    super();\n  }\n  static create(): BusinessModeConfigDto {\n    return new BusinessModeConfigDto(null, null, null, null, null, null, null, null, null);\n  }\n}\n\n/** 业务模式页面配置模型 */\nexport class BusinessModePageConfigDto {\n  constructor(\n    /** 业务类型编码 */\n    public BusinessTypeCode: string,\n    /** 业务模式编码 */\n    public BusinessModeCode: string,\n    /** 是否启用扫描入库仓库 */\n    public IsUseScanInWarehouse: boolean,\n    /** 扫描入库仓库类型 */\n    public ScanInWarehouseType: string,\n    /** 是否启用扫描出库仓库 */\n    public IsUseScanOutWarehouse: boolean,\n    /** 扫描出库仓库类型 */\n    public ScanOutWarehouseType: string,\n  ) { }\n  static create(): BusinessModePageConfigDto {\n    return new BusinessModePageConfigDto(null, null, null, null, null, null);\n  }\n}\n","import { Component, OnInit, Input, ViewChild, Output, EventEmitter } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { RhSelectableDto, RhDynamicInterfaceDto, DataResultT, RhTableQueryOptionDto, CodeClassModel, RhDynamicTableFieldDto, RhSafeAny } from 'rh-base/model';\nimport { MsgHelper, RhApiUrlsService } from 'rh-base/core';\n\n@Component({\n  selector: 'rh-list-warehouse-categories-table',\n  templateUrl: './list-warehouse-categories-table.component.html',\n  styleUrls: ['./list-warehouse-categories-table.component.less']\n})\nexport class ListWarehouseCategoriesTableComponent implements OnInit {\n  @Input() rhName = 'ListWarehouseCategoriesSelector';\n  @Input() rhSingleMode = false;\n  @Input() rhInterfaceInfo: RhDynamicInterfaceDto;\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  /** 表格Loading */\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [\n    { name: 'Value', displayName: '仓库类别代码' },\n    { name: 'Text', displayName: '仓库类别名称' }\n  ];\n\n  /** 设置默认搜索接口 */\n  defaultFormInterface = {\n    moduleKey: \"MDP\",\n    groupKey: \"WareHouseManagement\",\n    paraCode: \"WarehouseCategory\"\n  };\n\n  selectedDatas: RhSelectableDto[] = [];\n\n  constructor(private apiUrls: RhApiUrlsService) { }\n\n  ngOnInit(): void {\n    this.getDatas();\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    this.apiUrls.getSettingEntry(this.defaultFormInterface.moduleKey, this.defaultFormInterface.groupKey, this.defaultFormInterface.paraCode).subscribe(result => {\n      if (result && result.Success) {\n        this.dataresult = result;\n      } else {\n        this.dataresult = { Success: false, Attach: [] } as RhSafeAny;\n        MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n      }\n      this.dataLoading = false;\n    }, () => this.dataLoading = false);\n  }\n\n}\n","<!-- 搜索结果Table展示区域 -->\n<div class=\"table-area\">\n    <rh-dynamic-table rhName=\"{{ rhName }}Table\" [rhTableData]=\"dataresult\" [rhTableDataloading]=\"dataLoading\"\n        [rhDefaultFieldDataset]=\"defaultTableFieldDataset\" (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\"\n        [rhSingleMode]=\"rhSingleMode\"></rh-dynamic-table>\n</div>","import { Component, Input, ChangeDetectorRef, SimpleChanges, OnInit } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport {\n  RhSelectableDto,\n  RhDynamicFormFieldDto,\n  RhSafeAny,\n  RhDynamicInterfaceDto,\n  RhSelectItem,\n  RhCustomizeEventSettingDto\n} from 'rh-base/model';\nimport { provideValueAccessor, RhRouteHelper, MsgHelper } from 'rh-base/core';\nimport { RhBaseDynamicService } from 'rh-base/shared';\n\n@Component({\n  selector: 'rh-list-warehouse-categories-selector',\n  templateUrl: './list-warehouse-categories-selector.component.html',\n  styleUrls: ['./list-warehouse-categories-selector.component.less'],\n  providers: [provideValueAccessor(ListWarehouseCategoriesSelectorComponent)]\n})\nexport class ListWarehouseCategoriesSelectorComponent implements OnInit, ControlValueAccessor {\n  @Input() rhDynamicKey = 'ListWarehouseCategoriesSelector';\n  @Input() rhTitle = '选择仓库类别';\n  @Input() rhSingleMode = false;\n  @Input() rhDisabled = false;\n  /** form字段名称 */\n  @Input() rhFieldName: string = 'ListWarehouseCategories';\n  /** 动态form字段配置数据 */\n  @Input() rhFieldData: RhDynamicFormFieldDto;\n  /** 整个form的数据 */\n  @Input() declare rhData: RhSafeAny;\n  /** 该组件关联的form名称 */\n  formName: string;\n  /** 当前路由 */\n  url: string;\n\n  itemKeyFieldName = 'Value';\n  itemTextFieldName = 'Text';\n  selectedDatas: RhSelectableDto[];\n  _value: RhSelectItem[];\n  isShowDataModal = false;\n  get value() {\n    return this._value;\n  }\n  set value(datas: RhSelectItem[]) {\n    this._value = datas;\n    this.onChange(datas);\n  }\n\n  /** 设置默认搜索接口 */\n  // defaultFormInterface: RhDynamicInterfaceDto = {\n  //   moduleKey: \"MDP\",\n  //   groupKey: \"WareHouseManagement\",\n  //   paraCode: \"WarehouseCategory\"\n  // };\n\n  onChange: (value: RhSelectItem[]) => void = () => {};\n  onTouched: (value: RhSelectItem[]) => void = () => {};\n\n  constructor(public cdr: ChangeDetectorRef, public dynamicSer: RhBaseDynamicService, public router: Router) {\n    this.url = RhRouteHelper.getRealRoute(this.router.url);\n  }\n  writeValue(obj: RhSelectItem[]): void {\n    this.value = obj;\n    this.cdr.markForCheck();\n  }\n  registerOnChange(fn: RhSafeAny): void {\n    this.onChange = fn;\n  }\n  registerOnTouched(fn: RhSafeAny): void {\n    this.onTouched = fn;\n  }\n  setDisabledState?(isDisabled: boolean): void {\n    this.rhDisabled = isDisabled;\n    this.cdr.markForCheck();\n  }\n\n  ngOnInit(): void {\n    this.formName = this.rhFieldData.relatedComponentName;\n  }\n\n  // 自定义表单项配置\n  ngOnChanges(changes: SimpleChanges) {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue && !rhData.currentValue[this.rhFieldName]) {\n      this.resetControlValue();\n    }\n  }\n\n  onSelectModal(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas || [];\n  }\n\n  openDataModal(event?: Event) {\n    if (event) {\n      event.stopImmediatePropagation();\n      event.preventDefault();\n    }\n    if (this.rhDisabled) {\n      MsgHelper.ShowWarningMessage(`该字段禁止编辑`);\n      return;\n    }\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  confirmSelect() {\n    this.value = this.selectedDatas.map((data) => {\n      return {\n        Text: data[this.itemTextFieldName],\n        Value: data[this.itemKeyFieldName]\n      };\n    });\n    this.closeDataModal();\n  }\n\n  resetControlValue() {\n    this.value = null;\n    this.selectedDatas = [];\n  }\n\n  onClose(item: RhSelectItem) {\n    const index = this.value.findIndex((f) => f.Value === item.Value);\n    if (index !== -1) {\n      this.value.splice(index, 1);\n    }\n  }\n}\n","<nz-tag *ngFor=\"let item of _value\" nzColor=\"processing\" nzMode=\"closeable\" (nzOnClose)=\"onClose(item)\">\n  {{ item.Text }}-{{ item.Value }}</nz-tag\n>\n<span class=\"plus-icon\">\n  <i\n    nz-icon\n    [nzType]=\"_value?.length ? 'redo' : 'plus-circle'\"\n    nzTheme=\"outline\"\n    (click)=\"openDataModal($event)\"\n    [title]=\"_value?.length ? '重新选择' : '选择'\"\n  ></i>\n  <ng-container *ngIf=\"_value?.length\">\n    <nz-divider nzType=\"vertical\"></nz-divider>\n    <i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"resetControlValue()\" title=\"清空\"></i>\n  </ng-container>\n</span>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"rhTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas || !selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-list-warehouse-categories-table [rhName]=\"rhDynamicKey\" (rhModelChange)=\"onSelectModal($event)\">\n      </rh-list-warehouse-categories-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","export const WarehouseConfigFormFieldDataset = [\n    {\n        name: 'WarehouseCode', displayName: '仓库代码', type: 'customize', placeholder: '仓库代码', editable: true, visible: true, config: {\n            type: 'warehouse', displayMode: 1, relatedFieldDatas: [\n                // { sourceName: 'WarehouseCode', mappedName: 'WarehouseCode' },\n                // { sourceName: 'WarehouseName', mappedName: 'WarehouseName' }\n            ], relatedModelDatas: [\n                // { sourceName: 'WarehouseCode', mappedName: 'WarehouseCode' },\n                // { sourceName: 'WarehouseName', mappedName: 'WarehouseName' }\n            ]\n        }, required: true\n    },\n    { name: 'WarehouseName', displayName: '仓库名称', type: 'string', placeholder: '仓库名称', editable: true, visible: false },\n    {\n        name: 'WarehouseAreaCode', displayName: '库区代码', type: 'customize', placeholder: '库区代码', editable: true, visible: true, config: {\n            type: 'warehousearea', displayMode: 1, relatedFieldDatas: [\n                // { sourceName: 'WarehouseAreaCode', mappedName: 'WarehouseAreaCode' },\n                // { sourceName: 'WarehouseAreaName', mappedName: 'WarehouseAreaName' },\n                // { sourceName: 'WarehouseCode', mappedName: 'WarehouseCode' },\n                // { sourceName: 'WarehouseName', mappedName: 'WarehouseName' }\n            ], relatedModelDatas: [\n                // { sourceName: 'WarehouseAreaCode', mappedName: 'WarehouseAreaCode' },\n                // { sourceName: 'WarehouseAreaName', mappedName: 'WarehouseAreaName' },\n                // { sourceName: 'WarehouseCode', mappedName: 'WarehouseCode' },\n                // { sourceName: 'WarehouseName', mappedName: 'WarehouseName' }\n            ]\n        }\n    },\n    { name: 'WarehouseAreaName', displayName: '库区名称', type: 'string', placeholder: '库区名称', editable: true, visible: false },\n    {\n        name: 'WarehouseShelfCode', displayName: '货架代码', type: 'customize', placeholder: '货架代码', editable: true, visible: true, config: {\n            type: 'warehouseshelf', displayMode: 1, relatedFieldDatas: [\n                // { sourceName: 'WarehouseShelfCode', mappedName: 'WarehouseShelfCode' },\n                // { sourceName: 'WarehouseShelfName', mappedName: 'WarehouseShelfName' },\n                // { sourceName: 'WarehouseCode', mappedName: 'WarehouseCode' },\n                // { sourceName: 'WarehouseName', mappedName: 'WarehouseName' },\n                // { sourceName: 'WarehouseAreaCode', mappedName: 'WarehouseAreaCode' },\n                // { sourceName: 'WarehouseAreaName', mappedName: 'WarehouseAreaName' }\n            ], relatedModelDatas: [\n                // { sourceName: 'WarehouseShelfCode', mappedName: 'WarehouseShelfCode' },\n                // { sourceName: 'WarehouseShelfName', mappedName: 'WarehouseShelfName' },\n                // { sourceName: 'WarehouseCode', mappedName: 'WarehouseCode' },\n                // { sourceName: 'WarehouseName', mappedName: 'WarehouseName' },\n                // { sourceName: 'WarehouseAreaCode', mappedName: 'WarehouseAreaCode' },\n                // { sourceName: 'WarehouseAreaName', mappedName: 'WarehouseAreaName' }\n            ]\n        }\n    },\n    { name: 'WarehouseShelfName', displayName: '货架名称', type: 'string', placeholder: '货架名称', editable: true, visible: false },\n    {\n        name: 'StorageLocationCode', displayName: '库位代码', type: 'customize', placeholder: '库位代码', editable: true, visible: true, config: {\n            type: 'storagelocation', displayMode: 1, relatedFieldDatas: [\n                // { sourceName: 'StorageLocationCode', mappedName: 'StorageLocationCode' },\n                // { sourceName: 'StorageLocationName', mappedName: 'StorageLocationName' },\n                // { sourceName: 'WarehouseCode', mappedName: 'WarehouseCode' },\n                // { sourceName: 'WarehouseName', mappedName: 'WarehouseName' },\n                // { sourceName: 'WarehouseAreaCode', mappedName: 'WarehouseAreaCode' },\n                // { sourceName: 'WarehouseAreaName', mappedName: 'WarehouseAreaName' },\n                // { sourceName: 'WarehouseShelfCode', mappedName: 'WarehouseShelfCode' },\n                // { sourceName: 'WarehouseShelfName', mappedName: 'WarehouseShelfName' }\n            ], relatedModelDatas: [\n                // { sourceName: 'StorageLocationCode', mappedName: 'StorageLocationCode' },\n                // { sourceName: 'StorageLocationName', mappedName: 'StorageLocationName' },\n                // { sourceName: 'WarehouseCode', mappedName: 'WarehouseCode' },\n                // { sourceName: 'WarehouseName', mappedName: 'WarehouseName' },\n                // { sourceName: 'WarehouseAreaCode', mappedName: 'WarehouseAreaCode' },\n                // { sourceName: 'WarehouseAreaName', mappedName: 'WarehouseAreaName' },\n                // { sourceName: 'WarehouseShelfCode', mappedName: 'WarehouseShelfCode' },\n                // { sourceName: 'WarehouseShelfName', mappedName: 'WarehouseShelfName' }\n            ]\n        }\n    },\n    { name: 'StorageLocationName', displayName: '库位名称', type: 'string', placeholder: '库位名称', editable: true, visible: false },\n];","import { RhBaseDto, RhDynamicFormFieldDto, RhSafeAny, RhSelectableDto } from 'rh-base/model';\nimport { ChangeDetectorRef, Component, Input, OnInit, SimpleChanges } from '@angular/core';\nimport { ControlValueAccessor, FormGroup } from '@angular/forms';\nimport { MsgHelper, provideValueAccessor, RhRouteHelper, ObjectHelper } from 'rh-base/core';\nimport { RhBaseDynamicService, DynamicFormComponent } from 'rh-base/shared';\nimport { Router } from '@angular/router';\nimport { WarehouseConfigFormFieldDataset } from './config-data';\n\n@Component({\n  selector: 'rh-list-warehouse-conf-selector',\n  templateUrl: './list-warehouse-conf-selector.component.html',\n  styleUrls: ['./list-warehouse-conf-selector.component.less'],\n  providers: [provideValueAccessor(ListWarehouseConfSelectorComponent)]\n})\nexport class ListWarehouseConfSelectorComponent implements OnInit, ControlValueAccessor {\n  @Input() rhDynamicKey = 'ListWarehouseConfSelector';\n  @Input() rhTitle = '仓库配置';\n  @Input() rhDisabled = false;\n  /** form字段名称 */\n  @Input() rhFieldName: string = 'ListWarehouses';\n  /** 动态form字段配置数据 */\n  @Input() rhFieldData: RhDynamicFormFieldDto;\n  /** 整个form的数据 */\n  @Input() declare rhData: RhSafeAny;\n  /** 该组件关联的form名称 */\n  formName: string;\n  /** 当前路由 */\n  url: string;\n\n  editData: RhBaseDto;\n  isShowDataModal = false;\n  defaultFieldDataset = WarehouseConfigFormFieldDataset;\n\n  _warehouseConfigrations: RhBaseDto[];\n  get warehouseConfigrations() {\n    return this._warehouseConfigrations;\n  }\n  set warehouseConfigrations(datas: RhBaseDto[]) {\n    this._warehouseConfigrations = datas;\n    this.onChange(datas);\n  }\n\n  onChange: (value: RhBaseDto[]) => void = () => { };\n  onTouched: (value: RhBaseDto[]) => void = () => { };\n\n  beforeSubmit = (data: RhBaseDto, context: DynamicFormComponent) => {\n    context.submitLoading = true;\n    // 去重\n    const existIndex = (this.warehouseConfigrations || []).findIndex(ele => {\n      return ele.WarehouseCode === data.WarehouseCode &&\n        ele.WarehouseAreaCode === data.WarehouseAreaCode &&\n        ele.WarehouseShelfCode === data.WarehouseShelfCode &&\n        ele.StorageLocationCode === data.StorageLocationCode;\n    });\n    if (existIndex !== -1) {\n      this.warehouseConfigrations.splice(existIndex, 1, data);\n    } else {\n      if (this.warehouseConfigrations?.length) {\n        this.warehouseConfigrations.push(data);\n      } else {\n        this.warehouseConfigrations = [data];\n      }\n    }\n    context.submitLoading = false;\n    this.closeDataModal();\n    return false;\n  }\n\n  constructor(public cdr: ChangeDetectorRef, public dynamicSer: RhBaseDynamicService, public router: Router) {\n    this.url = RhRouteHelper.getRealRoute(this.router.url);\n  }\n  writeValue(obj: RhBaseDto[]): void {\n    this.warehouseConfigrations = obj;\n    this.cdr.markForCheck();\n  }\n  registerOnChange(fn: RhSafeAny): void {\n    this.onChange = fn;\n  }\n  registerOnTouched(fn: RhSafeAny): void {\n    this.onTouched = fn;\n  }\n  setDisabledState?(isDisabled: boolean): void {\n    this.rhDisabled = isDisabled;\n    this.cdr.markForCheck();\n  }\n\n  ngOnInit(): void {\n    this.formName = this.rhFieldData.relatedComponentName;\n  }\n\n  // 自定义表单项配置\n  ngOnChanges(changes: SimpleChanges) {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue && !rhData.currentValue[this.rhFieldName]) {\n      this.resetControlValue();\n    }\n  }\n\n  openDataModal(event: Event) {\n    event.stopImmediatePropagation();\n    event.preventDefault();\n    if (this.rhDisabled) {\n      MsgHelper.ShowWarningMessage(`该字段禁止编辑`);\n      return;\n    }\n    this.editData = ObjectHelper.createRhBaseDto();\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n  }\n\n  resetControlValue() {\n    this.warehouseConfigrations = null;\n  }\n\n  onClose(index: number) {\n    if (index !== -1) {\n      this.warehouseConfigrations.splice(index, 1);\n    }\n  }\n\n  onWarehouseCodeChange(item: RhBaseDto, formGroup: FormGroup, formData: RhBaseDto) {\n    const data = item.item;\n    formGroup.get('WarehouseAreaCode').setValue(null);\n    formData.WarehouseAreaName = null;\n    formGroup.get('WarehouseShelfCode').setValue(null);\n    formData.WarehouseShelfName = null;\n    formGroup.get('StorageLocationCode').setValue(null);\n    formData.StorageLocationName = null;\n  }\n\n  onWarehouseAreaCodeChange(item: RhBaseDto, formGroup: FormGroup, formData: RhBaseDto) {\n    const data = item.item;\n    if (data) {\n      formGroup.get('WarehouseCode').setValue(data.WarehouseCode);\n      formData.WarehouseName = data.WarehouseName;\n    }\n    formGroup.get('WarehouseShelfCode').setValue(null);\n    formData.WarehouseShelfName = null;\n    formGroup.get('StorageLocationCode').setValue(null);\n    formData.StorageLocationName = null;\n  }\n\n  onWarehouseShelfCodeChange(item: RhBaseDto, formGroup: FormGroup, formData: RhBaseDto) {\n    const data = item.item;\n    if (data) {\n      formGroup.get('WarehouseCode').setValue(data.WarehouseCode);\n      formData.WarehouseName = data.WarehouseName;\n      formGroup.get('WarehouseAreaCode').setValue(data.WarehouseAreaCode);\n      formData.WarehouseAreaName = data.WarehouseAreaName;\n      formGroup.get('WarehouseShelfCode').setValue(data.WarehouseShelfCode);\n      formData.WarehouseShelfName = data.WarehouseShelfName;\n    }\n    formGroup.get('StorageLocationCode').setValue(null);\n    formData.StorageLocationName = null;\n  }\n\n  onStorageLocationCodeChange(item: RhBaseDto, formGroup: FormGroup, formData: RhBaseDto) {\n    const data = item.item;\n    if (data) {\n      formGroup.get('WarehouseCode').setValue(data.WarehouseCode);\n      formData.WarehouseName = data.WarehouseName;\n      formGroup.get('WarehouseAreaCode').setValue(data.WarehouseAreaCode);\n      formData.WarehouseAreaName = data.WarehouseAreaName;\n      formGroup.get('WarehouseShelfCode').setValue(data.WarehouseShelfCode);\n      formData.WarehouseShelfName = data.WarehouseShelfName;\n    }\n  }\n}\n","<nz-tag *ngFor=\"let item of warehouseConfigrations; let index = index\" nzColor=\"processing\" nzMode=\"closeable\" (nzOnClose)=\"onClose(index)\">\n  <!-- {{ item.WarehouseName }}({{ item.WarehouseCode }})/ {{ item.WarehouseAreaName }}({{ item.WarehouseAreaCode }})/\n  {{ item.WarehouseShelfName }}({{ item.WarehouseShelfCode }})/ {{ item.StorageLocationName }}({{ item.StorageLocationCode }}) -->\n  <ng-container *ngTemplateOutlet=\"warehouseConfItem; context: { $implicit: item.WarehouseCode }\"></ng-container>/\n  <ng-container *ngTemplateOutlet=\"warehouseConfItem; context: { $implicit: item.WarehouseAreaCode }\"></ng-container>/\n  <ng-container *ngTemplateOutlet=\"warehouseConfItem; context: { $implicit: item.WarehouseShelfCode }\"></ng-container>/\n  <ng-container *ngTemplateOutlet=\"warehouseConfItem; context: { $implicit: item.StorageLocationCode }\"></ng-container>\n</nz-tag>\n<span class=\"plus-icon\">\n  <i nz-icon [nzType]=\"'plus-circle'\" nzTheme=\"outline\" (click)=\"openDataModal($event)\" [title]=\"'新增'\"></i>\n  <ng-container *ngIf=\"warehouseConfigrations?.length\">\n    <nz-divider nzType=\"vertical\"></nz-divider>\n    <i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"resetControlValue()\" title=\"清空\"></i>\n  </ng-container>\n</span>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"rhTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"'60vw'\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #editForm\n    rhName=\"editForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"editData\"\n    [rhBeforeSubmit]=\"beforeSubmit\"\n    [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n    (rhClose)=\"closeDataModal()\"\n  >\n    <ng-template rhTemplate=\"WarehouseCode\" let-formGroup let-setting=\"setting\" let-hostConfig=\"hostSetting\" let-formData=\"formData\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.placeholder }}</nz-form-label>\n        <nz-form-control [nzSpan]=\"setting.controlSpan\">\n          <rh-form-field\n            name=\"WarehouseCode\"\n            [formControl]=\"formGroup.get('WarehouseCode')\"\n            rhFormType=\"edit\"\n            [rhFieldData]=\"setting\"\n            [rhSize]=\"hostConfig?.rhSize\"\n            [rhData]=\"formData\"\n            (rhFieldValueChange)=\"onWarehouseCodeChange($event, formGroup, formData)\"\n          ></rh-form-field>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"WarehouseAreaCode\" let-formGroup let-setting=\"setting\" let-hostConfig=\"hostSetting\" let-formData=\"formData\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.placeholder }}</nz-form-label>\n        <nz-form-control [nzSpan]=\"setting.controlSpan\">\n          <rh-form-field\n            name=\"WarehouseAreaCode\"\n            [formControl]=\"formGroup.get('WarehouseAreaCode')\"\n            rhFormType=\"edit\"\n            [rhFieldData]=\"setting\"\n            [rhSize]=\"hostConfig?.rhSize\"\n            [rhData]=\"formData\"\n            (rhFieldValueChange)=\"onWarehouseAreaCodeChange($event, formGroup, formData)\"\n          ></rh-form-field>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"WarehouseShelfCode\" let-formGroup let-setting=\"setting\" let-hostConfig=\"hostSetting\" let-formData=\"formData\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.placeholder }}</nz-form-label>\n        <nz-form-control [nzSpan]=\"setting.controlSpan\">\n          <rh-form-field\n            name=\"WarehouseShelfCode\"\n            [formControl]=\"formGroup.get('WarehouseShelfCode')\"\n            rhFormType=\"edit\"\n            [rhFieldData]=\"setting\"\n            [rhSize]=\"hostConfig?.rhSize\"\n            [rhData]=\"formData\"\n            (rhFieldValueChange)=\"onWarehouseShelfCodeChange($event, formGroup, formData)\"\n          ></rh-form-field>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"StorageLocationCode\" let-formGroup let-setting=\"setting\" let-hostConfig=\"hostSetting\" let-formData=\"formData\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.placeholder }}</nz-form-label>\n        <nz-form-control [nzSpan]=\"setting.controlSpan\">\n          <rh-form-field\n            name=\"StorageLocationCode\"\n            [formControl]=\"formGroup.get('StorageLocationCode')\"\n            rhFormType=\"edit\"\n            [rhFieldData]=\"setting\"\n            [rhSize]=\"hostConfig?.rhSize\"\n            [rhData]=\"formData\"\n            (rhFieldValueChange)=\"onStorageLocationCodeChange($event, formGroup, formData)\"\n          ></rh-form-field>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>\n\n<!-- <ng-template #warehouseConfItem let-code let-name=\"name\">\n  <ng-container *ngIf=\"code; else noCodeTpl\"> {{ name }}({{ code }}) </ng-container>\n  <ng-template #noCodeTpl>-</ng-template>\n</ng-template> -->\n<ng-template #warehouseConfItem let-code>\n  <ng-container *ngIf=\"code; else noCodeTpl\"> {{ code }} </ng-container>\n  <ng-template #noCodeTpl>-</ng-template>\n</ng-template>\n","import { Component, OnInit, ViewChild, ChangeDetectorRef } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport {\n  RhBaseDto,\n  DataResultT,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  OpMode,\n  RhSafeAny,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto,\n  RhLoginedUserDto,\n  RhSelectItem\n} from 'rh-base/model';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\nimport * as _ from 'lodash';\nimport { RhToolKitService } from '../tool-kit.service';\nimport { BusinessWithWarehouseConfigQueryDto, WarehouseBusinessConfOutput } from '../tool-kit-model';\nimport { RhWmsService } from './../../wms.service';\n\n@Component({\n  selector: 'rh-warehouse-business-conf',\n  templateUrl: './warehouse-business-conf.component.html',\n  styleUrls: ['./warehouse-business-conf.component.less']\n})\nexport class RhWarehouseBusinessConfComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  defaultFieldDataset = [];\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto))\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '新建', 'primary', false, 'file', false, null, () => this.openEditTab(), true)\n  ];\n\n  extraButtonDataset: RhTableButtonInfoDto[] = [];\n\n  currentUser: RhLoginedUserDto;\n  currentFactoryQueryDto = {};\n  listWarehousesDataRes: DataResultT<RhSelectItem[]>;\n  listWarehouseCategoriesDataRes: DataResultT<RhSelectItem[]>;\n\n  businessTypeData: RhSelectItem[] = [];\n\n  confResult: WarehouseBusinessConfOutput[];\n  displayConfData: RhBaseDto;\n  selectConfData: RhBaseDto;\n  selectBusiness: RhSelectItem;\n\n  beforeSubmit = (data: RhBaseDto) => {\n    if (data.ConfigMode === 'Allowed') {\n      // 仅允许模式\n      data.ListAllowedWarehouses = data.ListWarehouses;\n      data.ListAllowedWarehouseCategories = data.ListWarehouseCategories;\n      data.ListIgnoredWarehouses = [];\n      data.ListIgnoredWarehouseCategories = [];\n    } else {\n      // 仅忽略模式\n      data.ListIgnoredWarehouses = data.ListWarehouses;\n      data.ListIgnoredWarehouseCategories = data.ListWarehouseCategories;\n      data.ListAllowedWarehouses = [];\n      data.ListAllowedWarehouseCategories = [];\n    }\n    data = _.omit(data, ['ListWarehouses', 'ListWarehouseCategories']);\n    return true;\n  };\n\n  constructor(public storage: RhStorageService, public operator: RhToolKitService, private wmsOperator: RhWmsService, private cdr: ChangeDetectorRef) {\n    //\n  }\n\n  ngOnInit(): void {\n    this.GetInOutBusinessTypeData();\n    this.currentUser = this.storage.getUserSession().User;\n    this.currentFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  GetInOutBusinessTypeData() {\n    this.operator.GetBusinessType().subscribe((result) => {\n      if (result.Success) {\n        this.businessTypeData = result.Attach;\n      } else {\n        this.businessTypeData = [];\n      }\n      this.cdr.detectChanges();\n    });\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    //\n    if (data?.BusinessTypeCode) {\n      if (data.ConfigMode === 'Allowed') {\n        data.ListWarehouses = data.ListAllowedWarehouses;\n        data.ListWarehouseCategories = data.ListAllowedWarehouseCategories;\n      } else {\n        data.ListWarehouses = data.ListIgnoredWarehouses;\n        data.ListWarehouseCategories = data.ListIgnoredWarehouseCategories;\n      }\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n    } else {\n      this.editDto = {\n        BusinessTypeCode: this.selectConfData?.Value,\n        BusinessTypeName: this.selectConfData?.Text\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n    }\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.selectedIndex = 0;\n  }\n\n  getWarehouseConfDatas(data) {\n    const dto = BusinessWithWarehouseConfigQueryDto.create();\n    dto.BusinessTypeCode = data;\n    this.operator.GetStorageBusinessUseWithWareshoues(dto).subscribe((result) => {\n      if (result.Success) {\n        this.editDto = result.Attach;\n        if (this.editDto.ConfigMode === 'Allowed') {\n          this.listWarehousesDataRes = { Attach: this.editDto.ListAllowedWarehouses || [] } as RhSafeAny;\n          this.listWarehouseCategoriesDataRes = { Attach: this.editDto.ListAllowedWarehouseCategories || [] } as RhSafeAny;\n        } else {\n          this.listWarehousesDataRes = { Attach: this.editDto.ListIgnoredWarehouses || [] } as RhSafeAny;\n          this.listWarehouseCategoriesDataRes = { Attach: this.editDto.ListIgnoredWarehouseCategories || [] } as RhSafeAny;\n        }\n      } else {\n        this.editDto = [];\n        this.listWarehousesDataRes = { Attach: [] } as RhSafeAny;\n        this.listWarehouseCategoriesDataRes = { Attach: [] } as RhSafeAny;\n        MsgHelper.ShowWarningMessage(result.Message);\n      }\n    });\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onStoreData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n      MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n      if (this.editDto.OpSign === OpMode.OpEdit) {\n        this.closeEditTab();\n      }\n      this.getWarehouseConfDatas(this.selectConfData.Value);\n    } else {\n      MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n    }\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  onCheckWarehouseData(data: RhSelectItem) {\n    this.closeEditTab();\n    this.selectConfData = data;\n    this.getWarehouseConfDatas(data.Value);\n  }\n\n  removeBusinessUse(data) {\n    MsgHelper.ShowConfirmModal('是否继续', '是否删除该业务配置？', () => {\n      this.operator.RemoveStorageBusinessUseWithWareshoues(data).subscribe((result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除成功！');\n          this.getWarehouseConfDatas(data.BusinessTypeCode);\n        } else {\n          MsgHelper.ShowWarningMessage(result.Message);\n        }\n      });\n    });\n  }\n}\n","<div class=\"rh-full\">\n  <d-splitter orientation=\"horizontal\">\n    <d-splitter-pane #leftPane [collapsible]=\"true\" size=\"300px\" minSize=\"200px\" maxSize=\"400px\">\n      <rh-draggable-list\n        [rhDatasource]=\"businessTypeData\"\n        rhDraggable=\"false\"\n        rhText=\"Text\"\n        rhValue=\"Value\"\n        [(rhSelectData)]=\"selectBusiness\"\n        (rhSelectDataChange)=\"onCheckWarehouseData($event)\"\n        [rhEnableDefaultSelect]=\"true\"\n      >\n      </rh-draggable-list>\n    </d-splitter-pane>\n    <d-splitter-pane>\n      <div class=\"rh-full\">\n        <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" nzType=\"card\">\n          <nz-tab [nzTitle]=\"tabOneTitle\">\n            <ng-template #tabOneTitle>\n              <span>数据详情</span>\n            </ng-template>\n            <div class=\"rh-full\">\n              <d-splitter orientation=\"vertical\">\n                <d-splitter-pane #splitterPaneDetail [resizable]=\"false\" [collapsible]=\"true\">\n                  <div *ngIf=\"!splitterPaneDetail.collapsed\" class=\"rh-full\">\n                    <nz-card nzTitle=\"业务配置信息\" [nzExtra]=\"openEditTpl\">\n                      <rh-dynamic-description rhName=\"warehouseBusinessConfDescription\" [rhValue]=\"editDto\"> </rh-dynamic-description>\n                    </nz-card>\n                    <ng-template #openEditTpl>\n                      <div>\n                        <button nz-button nzType=\"primary\" (click)=\"openEditTab(editDto)\" type=\"button\">\n                          <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>{{ editDto?.BusinessTypeCode ? '编辑' : '新建' }}\n                        </button>\n                        <nz-divider nzType=\"vertical\"></nz-divider>\n                        <button\n                          *ngIf=\"editDto?.BusinessTypeCode\"\n                          nz-button\n                          nzType=\"default\"\n                          nzDanger\n                          (click)=\"removeBusinessUse(editDto)\"\n                          type=\"button\"\n                        >\n                          <i nz-icon nzType=\"delete\" nzTheme=\"outline\"></i>删除\n                        </button>\n                      </div>\n                    </ng-template>\n                  </div>\n                </d-splitter-pane>\n                <d-splitter-pane>\n                  <nz-tabset>\n                    <nz-tab nzTitle=\"查询仓库配置\">\n                      <rh-dynamic-table rhName=\"listWarehousesTable\" [rhTableData]=\"listWarehousesDataRes\"> </rh-dynamic-table>\n                    </nz-tab>\n                    <nz-tab nzTitle=\"查询仓库类别列表\">\n                      <rh-dynamic-table\n                        rhName=\"listWarehouseCategoriesTable\"\n                        [rhTableData]=\"listWarehouseCategoriesDataRes\"\n                      ></rh-dynamic-table>\n                    </nz-tab>\n                  </nz-tabset>\n                </d-splitter-pane>\n              </d-splitter>\n            </div>\n          </nz-tab>\n          <nz-tab *ngIf=\"selectedIndex\" [nzTitle]=\"tabTwoTitle\">\n            <ng-template #tabTwoTitle>\n              <span>数据{{ editDto?.OpSign === 1 ? '新增' : '编辑' }}</span>\n              <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n            </ng-template>\n            <div>\n              <rh-dynamic-form\n                #editForm\n                rhName=\"warehouseBusinessConfEditForm\"\n                rhType=\"edit\"\n                rhLayout=\"horizontal\"\n                [rhValue]=\"editDto\"\n                (rhInterfaceDataChange)=\"onStoreData($event)\"\n                (rhClose)=\"closeEditTab()\"\n                [rhBeforeSubmit]=\"beforeSubmit\"\n              >\n                <ng-template\n                  rhTemplate=\"ListWarehouses\"\n                  let-formGroup\n                  let-setting=\"setting\"\n                  let-hostConfig=\"hostSetting\"\n                  let-formData=\"formData\"\n                >\n                  <nz-form-item>\n                    <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                    <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                      <!-- <rh-list-warehouses-selector\n                        name=\"ListWarehouses\"\n                        [formControl]=\"formGroup.get('ListWarehouses')\"\n                        [rhFieldData]=\"setting\"\n                        [rhData]=\"formData\"\n                        [rhDefaultQueryDto]=\"currentFactoryQueryDto\"\n                      >\n                      </rh-list-warehouses-selector> -->\n                      <rh-list-warehouse-conf-selector\n                        name=\"ListWarehouses\"\n                        [formControl]=\"formGroup.get('ListWarehouses')\"\n                        [rhFieldData]=\"setting\"\n                        [rhData]=\"formData\"\n                      >\n                      </rh-list-warehouse-conf-selector>\n                    </nz-form-control>\n                  </nz-form-item>\n                </ng-template>\n                <ng-template\n                  rhTemplate=\"ListWarehouseCategories\"\n                  let-formGroup\n                  let-setting=\"setting\"\n                  let-hostConfig=\"hostSetting\"\n                  let-formData=\"formData\"\n                >\n                  <nz-form-item>\n                    <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                    <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                      <rh-list-warehouse-categories-selector\n                        [formControl]=\"formGroup.get('ListWarehouseCategories')\"\n                        [rhFieldData]=\"setting\"\n                        [rhData]=\"formData\"\n                      >\n                      </rh-list-warehouse-categories-selector>\n                    </nz-form-control>\n                  </nz-form-item>\n                </ng-template>\n              </rh-dynamic-form>\n            </div>\n          </nz-tab>\n        </nz-tabset>\n      </div>\n    </d-splitter-pane>\n  </d-splitter>\n</div>\n","export const DefaultBusinessModePageConfigFormInterface = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'ConfigurationWebApi',\n    interfaceName: 'StoreBusinessModePageConfigData'\n};\n\nexport const DefaultBusinessModePageConfigFormFieldDatase = [\n    { name: 'Remark', displayName: '备注', width: 120, editable: true },\n];\n\n// export const DefaultBusinessModeConfigEditFormInterface = {\n//     interfaceType: 'post',\n//     port: 52883,\n//     controllerName: 'ConfigurationWebApi',\n//     interfaceName: 'StoreBusinessModeConfigData'\n// };\n\n// export const DefaultBusinessModeConfigEditFormFieldDataset = [\n\n// ];","import { Component, OnInit, ViewChild, ChangeDetectorRef } from '@angular/core';\nimport {\n  CodeClassModel,\n  DataResultT,\n  OpMode,\n  RhBaseDto,\n  RhDynamicTableFieldDto,\n  RhLoginedUserDto,\n  RhSafeAny,\n  RhSelectableDto,\n  RhSelectItem,\n  RhTableButtonInfoDto,\n  RhTableQueryOptionDto\n} from 'rh-base/model';\nimport {\n  MsgHelper,\n  ObjectHelper,\n  RhStorageService\n} from 'rh-base/core';\nimport {\n  DynamicFormComponent\n} from 'rh-base/shared';\nimport { RhWmsService } from './../../wms.service';\nimport { BusinessModeConfigDto, BusinessModeConfigQueryDto, BusinessModePageConfigDto } from '../tool-kit-model';\nimport { RhToolKitService } from '../tool-kit.service';\nimport { DefaultBusinessModePageConfigFormFieldDatase, DefaultBusinessModePageConfigFormInterface } from './business-mode-config-data';\nimport { FormBuilder, FormGroup } from '@angular/forms';\n\ntype TabType = 'edit' | 'detail';\n\n@Component({\n  selector: 'rh-business-mode-config',\n  templateUrl: './business-mode-config.component.html',\n  styleUrls: ['./business-mode-config.component.less']\n})\nexport class BusinessModeConfigComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  defaultFieldDataset = [];\n\n  // editButtonDataset: RhTableButtonInfoDto[] = [\n  //   new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto))\n  // ];\n\n  // titleButtonDataset: RhTableButtonInfoDto[] = [\n  //   new RhTableButtonInfoDto('new', '新建', 'primary', false, 'file', false, null, () => this.openEditTab(), true)\n  // ];\n\n  extraButtonDataset: RhTableButtonInfoDto[] = [];\n\n  currentUser: RhLoginedUserDto;\n  currentFactoryQueryDto = {};\n  currentTab: TabType = 'detail';\n  listWarehousesDataRes: DataResultT<RhSelectItem[]>;\n  listWarehouseCategoriesDataRes: DataResultT<RhSelectItem[]>;\n\n  businessModeDataloading = false;\n\n  /** 业务类型数据源 */\n  businessTypeData: RhSelectItem[] = [];\n\n  displayConfData: RhBaseDto;\n  // 选中的业务类型\n  selectConfData: RhBaseDto;\n  selectBusiness: RhSelectItem;\n  /** 当前业务对应的模式 */\n  currentBusinessModeDataset: BusinessModeConfigDto[] = [];\n  /** 当前业务模式 */\n  currentBusinessModeData: BusinessModeConfigDto;\n  /** 业务模式页面配置默认接口 */\n  defaultBusinessModePageConfigFormInterface = DefaultBusinessModePageConfigFormInterface;\n  defaultBusinessModePageConfigFormFieldDatase = DefaultBusinessModePageConfigFormFieldDatase;\n\n  // 页面配置\n  /** 是否显示页面配置弹窗 */\n  // isShowPageConfigModal = false;\n  /** 获取配置loading */\n  pageConfigLoading = false;\n  /** 页面配置模型 */\n  pageConfigDto: RhBaseDto = {};\n  /** 仓库默认配置列表 */\n  warehouseConfigDataset: RhSafeAny[] = [];\n  warehouseConfigForm: FormGroup;\n  currentEditDataIndex = 0;\n  isEditWarehouseConfig = false;\n  beforePageConfigSubmit = (data: RhBaseDto) => {\n    data.WarehouseDefaultConfigurations = this.warehouseConfigDataset;\n    return true;\n  }\n\n  constructor(\n    public storage: RhStorageService,\n    public operator: RhToolKitService,\n    private wmsOperator: RhWmsService,\n    private fb: FormBuilder,\n    private cdr: ChangeDetectorRef) {\n    //\n  }\n\n  ngOnInit(): void {\n    this.GetInOutBusinessTypeData();\n    this.currentUser = this.storage.getUserSession().User;\n    this.currentFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n    // 初始化仓库配置表单\n    this.initWarehouseConfigForm();\n  }\n\n  GetInOutBusinessTypeData() {\n    this.operator.GetBusinessType().subscribe((result) => {\n      if (result.Success) {\n        this.businessTypeData = result.Attach;\n      } else {\n        this.businessTypeData = [];\n      }\n      this.cdr.detectChanges();\n    });\n  }\n\n  openEditTab(data?: RhBaseDto, $event?: Event) {\n    //\n    if ($event) {\n      $event.preventDefault();\n      $event.stopImmediatePropagation();\n    }\n    if (data?.BusinessTypeCode) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n    } else {\n      this.editDto = {\n        BusinessTypeCode: this.selectConfData?.Value,\n        BusinessTypeName: this.selectConfData?.Text\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    //\n    this.currentTab = 'detail';\n    this.selectedIndex = 0;\n  }\n\n  // openDetailTab(dto: RhBaseDto) {\n  //   this.editDto = dto.data;\n  //   this.currentTab = 'detail';\n  //   this.selectedIndex = 1;\n  // }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onStoreData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n      MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n      if (this.editDto.OpSign === OpMode.OpEdit) {\n        this.selectedIndex = 0;\n      }\n      this.editDto = ObjectHelper.createRhBaseDto();\n      this.getBusinessModeConfigDatas(this.selectBusiness.Value.toString());\n    } else {\n      MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n    }\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  onCheckBusinessData(data) {\n    this.currentTab = 'detail';\n    this.selectConfData = data;\n    this.getBusinessModeConfigDatas(data.Value);\n  }\n\n  /** 获取当前业务的业务模式数据 */\n  getBusinessModeConfigDatas(business: string) {\n    const dto = BusinessModeConfigQueryDto.create();\n    dto.BusinessTypeCode = '$' + business;\n    dto.Mode = 8;\n    this.operator.GetBusinessModeConfigDatas(dto).subscribe((result) => {\n      if (result.Success) {\n        this.currentBusinessModeDataset = result.Attach;\n        // 默认选中第一项\n        this.getPageConfigDataByBusinessMode(this.currentBusinessModeDataset[0]);\n      } else {\n        MsgHelper.ShowWarningMessage(result.Message);\n        this.currentBusinessModeDataset = [];\n        // 当前模式置空\n        this.currentBusinessModeData = null;\n      }\n    });\n  }\n\n  /** 获取业务模式下的页面配置 */\n  getBusinessModePageConfigDatas(data: BusinessModeConfigDto): Promise<BusinessModePageConfigDto> {\n    return new Promise((_res, _rej) => {\n      const dto = BusinessModeConfigQueryDto.create();\n      dto.BusinessTypeCode = `${data.BusinessTypeCode}`;\n      dto.BusinessModeCode = `${data.BusinessModeCode}`;\n      dto.Mode = 8;\n      this.operator.GetBusinessModePageConfigData(dto).subscribe((result) => {\n        if (result.Success) {\n          _res(result.Attach);\n        } else {\n          // MsgHelper.ShowWarningMessage(result.Message);\n          _res(null);\n        }\n      }, err => _rej(err));\n    });\n  }\n\n  removeBusinessMode(data) {\n    MsgHelper.ShowConfirmModal('删除业务模式', '确定要删除吗？删除后无法撤回', () => {\n      this.operator.RemoveBusinessModeConfigData(data).subscribe((result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除成功！');\n          this.getBusinessModeConfigDatas(data.BusinessTypeCode);\n        } else {\n          MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n        }\n      });\n    });\n  }\n\n  updateBusinessModeConfigDatas(data) {\n    this.currentBusinessModeDataset.forEach((ele) => {\n      if (ele.BusinessModeCode == data.BusinessModeCode) {\n        ele.IsUse = true;\n      } else {\n        ele.IsUse = false;\n      }\n    });\n    this.operator.StoreBusinessModeConfigDatas(this.currentBusinessModeDataset).subscribe((result) => {\n      if (result.Success) {\n        MsgHelper.ShowSuccessMessage('启用业务模式成功！');\n        this.getBusinessModeConfigDatas(data.BusinessTypeCode);\n      } else {\n        MsgHelper.ShowWarningMessage(`启用业务模式失败！${result.Message}`);\n      }\n    });\n  }\n\n  //#region 页面配置区域开始\n  // openPageConfigModal(data: BusinessModeConfigDto) {\n  //   this.currentBusinessModeData = data;\n  //   this.isShowPageConfigModal = true;\n\n  //   this.pageConfigLoading = true;\n  //   this.getBusinessModePageConfigDatas(data).then(res => {\n  //     if (res) {\n  //       this.pageConfigDto = res;\n  //     } else {\n  //       this.pageConfigDto = {\n  //         BusinessTypeCode: data.BusinessTypeCode,\n  //         BusinessModeCode: data.BusinessModeCode\n  //       };\n  //     }\n  //     // 设置仓库默认配置列表\n  //     this.warehouseConfigDataset = this.pageConfigDto.WarehouseDefaultConfigurations || [];\n  //     this.pageConfigLoading = false;\n  //   }, () => this.pageConfigLoading = false);\n  // }\n\n  // closePageConfigModal() {\n  //   this.isShowPageConfigModal = false;\n  // }\n\n  /** 根据业务模式获取页面配置数据 */\n  getPageConfigDataByBusinessMode(data: BusinessModeConfigDto) {\n    this.currentBusinessModeData = data;\n    // 选中当前项\n    this.currentBusinessModeDataset.forEach(ele => ele.select = ele.BusinessModeCode === data.BusinessModeCode && ele.BusinessTypeCode === data.BusinessTypeCode)\n\n    this.pageConfigLoading = true;\n    this.getBusinessModePageConfigDatas(data).then(res => {\n      if (res) {\n        this.pageConfigDto = res;\n      } else {\n        this.pageConfigDto = {\n          BusinessTypeCode: data.BusinessTypeCode,\n          BusinessModeCode: data.BusinessModeCode\n        };\n      }\n      // 设置仓库默认配置列表\n      this.warehouseConfigDataset = this.pageConfigDto.WarehouseDefaultConfigurations || [];\n      this.pageConfigLoading = false;\n    }, () => this.pageConfigLoading = false);\n  }\n\n\n  onPageConfigStoreData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage(`页面配置成功！`);\n      // this.closePageConfigModal();\n    } else {\n      MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n    }\n  }\n\n  /** 初始化仓库配置表单 */\n  initWarehouseConfigForm() {\n    this.warehouseConfigForm = this.fb.group({\n      WarehouseCode: [null],\n      WarehouseName: [null],\n      WarehouseAreaCode: [null],\n      WarehouseAreaName: [null],\n      WarehouseShelfCode: [null],\n      WarehouseShelfName: [null],\n      StorageLocationCode: [null],\n      StorageLocationName: [null]\n    });\n  }\n\n  /** 新增仓库配置 */\n  addWarehouseConfig() {\n    // 重置仓库配置表单\n    this.warehouseConfigForm.reset({});\n    this.currentEditDataIndex = this.warehouseConfigDataset.length;\n    this.isEditWarehouseConfig = true;\n  }\n\n  /** 编辑仓库配置 */\n  editWarehouseConfig(data: RhSafeAny, index: number) {\n    this.warehouseConfigForm.reset(data);\n    this.currentEditDataIndex = index;\n    this.isEditWarehouseConfig = true;\n  }\n\n  /** 移除仓库配置 */\n  removeWarehouseConfig(index: number) {\n    if (this.isEditWarehouseConfig && this.currentEditDataIndex === index) {\n      return MsgHelper.ShowWarningMessage('请先完成编辑！');\n    }\n    this.warehouseConfigDataset.splice(index, 1);\n    this.warehouseConfigDataset = [...this.warehouseConfigDataset];\n  }\n\n  /** 保存仓库配置 */\n  saveWarehouseConfig() {\n    const currentConfig = this.warehouseConfigForm.getRawValue();\n    // 检查有没有填数据\n    const values = Object.values(currentConfig).filter(ele => !!ele);\n    if (!values.length) {\n      return MsgHelper.ShowWarningMessage(`请先填入配置数据！`);\n    }\n\n    if (this.currentEditDataIndex === this.warehouseConfigDataset.length) {\n      this.warehouseConfigDataset.splice(this.currentEditDataIndex, 0, currentConfig);\n    } else {\n      this.warehouseConfigDataset.splice(this.currentEditDataIndex, 1, currentConfig);\n    }\n    this.warehouseConfigDataset = [...this.warehouseConfigDataset];\n\n    this.isEditWarehouseConfig = false;\n  }\n\n  /** 取消仓库配置 */\n  cancelWarehouseConfig() {\n    this.isEditWarehouseConfig = false;\n  }\n  //#endregion 页面配置区域结束\n}\n","<div class=\"rh-full\">\n  <d-splitter orientation=\"horizontal\">\n    <d-splitter-pane #leftPane [collapsible]=\"true\" size=\"300px\" minSize=\"200px\" maxSize=\"400px\">\n      <rh-draggable-list\n        [rhDatasource]=\"businessTypeData\"\n        rhDraggable=\"false\"\n        rhText=\"Text\"\n        rhValue=\"Value\"\n        [(rhSelectData)]=\"selectBusiness\"\n        (rhSelectDataChange)=\"onCheckBusinessData($event)\"\n        [rhEnableDefaultSelect]=\"true\"\n      >\n      </rh-draggable-list>\n    </d-splitter-pane>\n    <d-splitter-pane>\n      <div class=\"rh-full\">\n        <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\">\n          <nz-tab [nzTitle]=\"tabOneTitle\">\n            <ng-template #tabOneTitle>\n              <span>数据展示</span>\n            </ng-template>\n            <div class=\"rh-full\">\n              <nz-card [nzExtra]=\"extraTpl\">\n                <ng-template #extraTpl>\n                  <button nz-button nzType=\"primary\" type=\"button\" nzSize=\"small\" (click)=\"openEditTab()\">\n                    <i nz-icon nzType=\"file\" nzTheme=\"outline\"></i>\n                    新建\n                  </button>\n                </ng-template>\n                <nz-list\n                  [nzDataSource]=\"currentBusinessModeDataset\"\n                  [nzRenderItem]=\"labelRuleTpl\"\n                  [nzGrid]=\"{ gutter: 12, xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\"\n                  [nzLoading]=\"businessModeDataloading\"\n                >\n                  <ng-template #labelRuleTpl let-item>\n                    <nz-list-item class=\"list-item\">\n                      <nz-card\n                        style=\"width: 100%\"\n                        class=\"business-mode-card\"\n                        [class.selected]=\"item.select\"\n                        nzHoverable\n                        [nzActions]=\"[editTpl, removeTpl, storeTpl]\"\n                        [nzBodyStyle]=\"{ background: '#f2f2f2' }\"\n                      >\n                        <nz-card-meta [nzTitle]=\"titleTpl\" [nzDescription]=\"descriptionTpl\" (click)=\"getPageConfigDataByBusinessMode(item)\">\n                          <ng-template #titleTpl>\n                            <div class=\"card-title\">\n                              <strong [style]=\"{ color: item?.IsUse ? 'green' : 'black' }\"\n                                >{{ item?.BusinessModeName }}({{ item?.BusinessModeCode }})</strong\n                              >\n                            </div>\n                          </ng-template>\n                          <ng-template #descriptionTpl>\n                            <div class=\"cardFont\">\n                              <strong>{{ item?.IsUse ? '已启用' : '未启用' }}</strong>\n                            </div>\n                          </ng-template>\n                          <ng-template #editTpl>\n                            <a (click)=\"openEditTab(item, $event)\">\n                              <span class=\"rh-color-primary\">\n                                <i nz-icon nzType=\"form\" nzTheme=\"outline\"></i>\n                                编辑\n                              </span>\n                            </a>\n                          </ng-template>\n                          <!-- <ng-template #pageConfigTpl>\n                            <a (click)=\"openPageConfigModal(item)\">\n                              <span class=\"rh-color-primary\">\n                                <i nz-icon nzType=\"form\" nzTheme=\"outline\"></i>\n                                页面配置\n                              </span>\n                            </a>\n                          </ng-template> -->\n                          <ng-template #removeTpl>\n                            <a (click)=\"removeBusinessMode(item)\">\n                              <span class=\"rh-color-danger\">\n                                <i nz-icon nzType=\"delete\" nzTheme=\"outline\"></i>\n                                删除\n                              </span>\n                            </a>\n                          </ng-template>\n                          <ng-template #storeTpl>\n                            <a (click)=\"updateBusinessModeConfigDatas(item)\">\n                              <span class=\"rh-color-primary\">\n                                <i nz-icon nzType=\"experiment\" nzTheme=\"outline\"></i>\n                                启用\n                              </span>\n                            </a>\n                          </ng-template>\n                        </nz-card-meta>\n                      </nz-card>\n                    </nz-list-item>\n                  </ng-template>\n                </nz-list>\n              </nz-card>\n              <!-- 页面配置表单 -->\n              <ng-container *ngTemplateOutlet=\"pageConfigFormTpl\"></ng-container>\n            </div>\n          </nz-tab>\n          <nz-tab *ngIf=\"currentTab === 'edit' && selectedIndex > 0\" [nzTitle]=\"tabTwoTitle\">\n            <ng-template #tabTwoTitle>\n              <span>数据{{ editDto?.OpSign === 1 ? '新增' : '编辑' }}</span>\n              <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n            </ng-template>\n            <div>\n              <rh-dynamic-form\n                #editForm\n                rhName=\"BusinessModeConfigEditForm\"\n                rhType=\"edit\"\n                rhLayout=\"horizontal\"\n                [rhValue]=\"editDto\"\n                (rhInterfaceDataChange)=\"onStoreData($event)\"\n                (rhClose)=\"closeEditTab()\"\n              >\n              </rh-dynamic-form>\n            </div>\n          </nz-tab>\n        </nz-tabset>\n      </div>\n    </d-splitter-pane>\n  </d-splitter>\n</div>\n\n<!-- 页面配置 -->\n<ng-template #pageConfigFormTpl>\n  <ng-container *ngIf=\"currentBusinessModeData\">\n    <nz-card [nzTitle]=\"currentBusinessModeData.BusinessModeName + '页面配置'\">\n      <nz-spin [nzTip]=\"'加载中...'\" [nzSpinning]=\"pageConfigLoading\">\n        <!-- <nz-card nzTitle=\"仓库配置\">\n          <nz-table\n            #warehouseConfigTable\n            [nzData]=\"warehouseConfigDataset\"\n            [nzPageSize]=\"10\"\n            nzBordered\n            nzSize=\"small\"\n            [nzScroll]=\"{ x: '1120px' }\"\n          >\n            <thead>\n              <tr>\n                <th nzWidth=\"80px\">序号</th>\n                <th nzWidth=\"120px\">仓库代码</th>\n                <th nzWidth=\"120px\">仓库名称</th>\n                <th nzWidth=\"120px\">库区代码</th>\n                <th nzWidth=\"120px\">库区名称</th>\n                <th nzWidth=\"120px\">货架代码</th>\n                <th nzWidth=\"120px\">货架名称</th>\n                <th nzWidth=\"120px\">库位代码</th>\n                <th nzWidth=\"120px\">库位名称</th>\n                <th nzWidth=\"80px\" nzRight>操作</th>\n              </tr>\n            </thead>\n            <tbody>\n              <tr *ngFor=\"let item of warehouseConfigTable.data; let index = index\">\n                <td>{{ index + 1 }}</td>\n                <td>{{ item?.WarehouseCode }}</td>\n                <td>{{ item?.WarehouseName }}</td>\n                <td>{{ item?.WarehouseAreaCode }}</td>\n                <td>{{ item?.WarehouseAreaName }}</td>\n                <td>{{ item?.WarehouseShelfCode }}</td>\n                <td>{{ item?.WarehouseShelfName }}</td>\n                <td>{{ item?.StorageLocationCode }}</td>\n                <td>{{ item?.StorageLocationName }}</td>\n                <td nzRight>\n                  <span\n                    nz-icon\n                    nzType=\"edit\"\n                    nzTheme=\"outline\"\n                    class=\"rh-color-primary handle-icon\"\n                    (click)=\"editWarehouseConfig(item, index)\"\n                  ></span>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <span\n                    nz-icon\n                    nzType=\"delete\"\n                    nzTheme=\"outline\"\n                    class=\"rh-color-danger handle-icon\"\n                    (click)=\"removeWarehouseConfig(index)\"\n                  ></span>\n                </td>\n              </tr>\n            </tbody>\n          </nz-table>\n        </nz-card> -->\n        <rh-dynamic-form\n          #pageConfigForm\n          [rhName]=\"currentBusinessModeData.BusinessTypeCode + '_PageConfigForm'\"\n          rhType=\"edit\"\n          rhLayout=\"horizontal\"\n          [rhValue]=\"pageConfigDto\"\n          [rhFormInterface]=\"defaultBusinessModePageConfigFormInterface\"\n          [rhDefaultFieldDataset]=\"defaultBusinessModePageConfigFormFieldDatase\"\n          [rhBeforeSubmit]=\"beforePageConfigSubmit\"\n          (rhInterfaceDataChange)=\"onPageConfigStoreData($event)\"\n        >\n          <!-- 默认出入库配置 -->\n          <!-- <ng-template\n            rhTemplate=\"WarehouseDefaultConfigurations\"\n            let-formGroup\n            let-setting=\"setting\"\n            let-hostConfig=\"hostSetting\"\n            let-formData=\"formData\"\n          >\n            <ng-container *ngIf=\"formGroup.get('IsUseWarehouseDefault')?.value\">\n              <nz-form-item>\n                <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.placeholder }}</nz-form-label>\n                <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                  <button\n                    *ngIf=\"!isEditWarehouseConfig; else editWarehouseConfigTpl\"\n                    nz-button\n                    nzType=\"dashed\"\n                    class=\"add-button\"\n                    (click)=\"addWarehouseConfig()\"\n                  >\n                    <span nz-icon nzType=\"plus\"></span>\n                    新增配置\n                  </button>\n                  <ng-template #editWarehouseConfigTpl>\n                    <button nz-button nzType=\"primary\" type=\"button\" class=\"check-button\" (click)=\"saveWarehouseConfig()\">\n                      <span nz-icon nzType=\"check\"></span>\n                      保存\n                    </button>\n                    <nz-divider nzType=\"vertical\"></nz-divider>\n                    <button nz-button nzType=\"danger\" type=\"button\" nzDanger class=\"redo-button\" (click)=\"cancelWarehouseConfig()\">\n                      <span nz-icon nzType=\"redo\"></span>\n                      取消\n                    </button>\n                  </ng-template>\n                </nz-form-control>\n              </nz-form-item>\n            </ng-container>\n          </ng-template> -->\n        </rh-dynamic-form>\n        <!-- <form *ngIf=\"isEditWarehouseConfig\" nz-form [formGroup]=\"warehouseConfigForm\">\n          <nz-divider [nzText]=\"'配置' + (warehouseConfigDataset.length + 1)\" nzOrientation=\"left\"></nz-divider>\n          <div nz-row [nzGutter]=\"24\">\n            <div nz-col nzSpan=\"12\">\n              <nz-form-item>\n                <nz-form-label nzSpan=\"6\">仓库代码</nz-form-label>\n                <nz-form-control nzSpan=\"14\">\n                  <input nz-input formControlName=\"WarehouseCode\" placeholder=\"仓库代码\" />\n                </nz-form-control>\n              </nz-form-item>\n            </div>\n            <div nz-col nzSpan=\"12\">\n              <nz-form-item>\n                <nz-form-label nzSpan=\"6\">仓库名称</nz-form-label>\n                <nz-form-control nzSpan=\"14\">\n                  <input nz-input formControlName=\"WarehouseName\" placeholder=\"仓库名称\" />\n                </nz-form-control>\n              </nz-form-item>\n            </div>\n          </div>\n          <div nz-row [nzGutter]=\"24\">\n            <div nz-col nzSpan=\"12\">\n              <nz-form-item>\n                <nz-form-label nzSpan=\"6\">库区代码</nz-form-label>\n                <nz-form-control nzSpan=\"14\">\n                  <input nz-input formControlName=\"WarehouseAreaCode\" placeholder=\"库区代码\" />\n                </nz-form-control>\n              </nz-form-item>\n            </div>\n            <div nz-col nzSpan=\"12\">\n              <nz-form-item>\n                <nz-form-label nzSpan=\"6\">库区名称</nz-form-label>\n                <nz-form-control nzSpan=\"14\">\n                  <input nz-input formControlName=\"WarehouseAreaName\" placeholder=\"库区名称\" />\n                </nz-form-control>\n              </nz-form-item>\n            </div>\n          </div>\n          <div nz-row [nzGutter]=\"24\">\n            <div nz-col nzSpan=\"12\">\n              <nz-form-item>\n                <nz-form-label nzSpan=\"6\">货架代码</nz-form-label>\n                <nz-form-control nzSpan=\"14\">\n                  <input nz-input formControlName=\"WarehouseShelfCode\" placeholder=\"货架代码\" />\n                </nz-form-control>\n              </nz-form-item>\n            </div>\n            <div nz-col nzSpan=\"12\">\n              <nz-form-item>\n                <nz-form-label nzSpan=\"6\">货架名称</nz-form-label>\n                <nz-form-control nzSpan=\"14\">\n                  <input nz-input formControlName=\"WarehouseShelfName\" placeholder=\"货架名称\" />\n                </nz-form-control>\n              </nz-form-item>\n            </div>\n          </div>\n          <div nz-row [nzGutter]=\"24\">\n            <div nz-col nzSpan=\"12\">\n              <nz-form-item>\n                <nz-form-label nzSpan=\"6\">库位代码</nz-form-label>\n                <nz-form-control nzSpan=\"14\">\n                  <input nz-input formControlName=\"StorageLocationCode\" placeholder=\"库位代码\" />\n                </nz-form-control>\n              </nz-form-item>\n            </div>\n            <div nz-col nzSpan=\"12\">\n              <nz-form-item>\n                <nz-form-label nzSpan=\"6\">库位名称</nz-form-label>\n                <nz-form-control nzSpan=\"14\">\n                  <input nz-input formControlName=\"StorageLocationName\" placeholder=\"库位名称\" />\n                </nz-form-control>\n              </nz-form-item>\n            </div>\n          </div>\n        </form> -->\n      </nz-spin>\n    </nz-card>\n  </ng-container>\n</ng-template>\n","import { Observable } from 'rxjs';\nimport { RhToolKitService } from './../tool-kit.service';\nimport { RhSelectableDto, DataResultT, RhBaseDto, RhSafeAny } from 'rh-base/model';\nimport { ObjectHelper, RhAppConfigService, MsgHelper, RhWmsSysConfigService } from 'rh-base/core';\nimport { Component, OnInit } from '@angular/core';\nimport { RhWmsService } from './../../wms.service';\nimport { ParaSettingEntryDto, WarehouseConfigQueryDto } from './../../wms-model';\nimport { DynamicFormComponent } from 'rh-base/shared';\n\n@Component({\n  selector: 'rh-product-sys-para-config',\n  templateUrl: './product-sys-para-config.component.html',\n  styleUrls: ['./product-sys-para-config.component.less']\n})\nexport class RhProductSysParaConfigComponent implements OnInit {\n  /** 是否显示初始化数据图标 */\n  rhInitializeVisible = true;\n  selectedIndex = 0;\n  initLoading = false;\n  /** 全局系统配置参数 */\n  paraSettingEntryDataset: ParaSettingEntryDto[] = [];\n\n  ModuleKey = 'WmsConfiguration';\n  groupKeys = ['WmsConfiguration', 'WmsConfiguration', 'WmsConfiguration'];\n  paraCodes = ['WmsConfiguration', 'WarehouseSysConfig', 'StorageBusinessSysConfig'];\n  groupNames = ['仓储管理', '仓库管理', '业务管理'];\n  groupDatas = [];\n  sourceDatas: ParaSettingEntryDto[] = [];\n\n  beforeSubmit = (data: RhBaseDto) => {\n    const temp = JSON.stringify(data);\n    this.updateParameterSettingEntries(temp);\n    return false;\n  };\n\n  // 单个仓库控制参数配置\n  warehouseSelectedIndex = 0;\n  warehouseControlParameterData: RhBaseDto = {};\n  warehouseDataset: RhSelectableDto[] = [];\n  checkedWarehouseDataset: RhSelectableDto[] = [];\n\n  beforeSubmitWarehouseSysConfigBatch = (data: RhBaseDto, context: DynamicFormComponent) => {\n    if (!this.checkedWarehouseDataset.length) {\n      MsgHelper.ShowWarningMessage('请先选择仓库进行配置操作！');\n    } else {\n      context.submitLoading = true;\n      this.storeWarehouseControlParameters(data).subscribe(\n        () => (context.submitLoading = false),\n        () => (context.submitLoading = false)\n      );\n    }\n    return false;\n  };\n\n  constructor(\n    private wmsOperator: RhWmsService,\n    private operator: RhToolKitService,\n    private wmsSysConfigSer: RhWmsSysConfigService,\n    private appconfigSer: RhAppConfigService\n  ) {}\n\n  ngOnInit(): void {\n    this.getSysConfigParameterDatas();\n    this.getWarehouseConfigDatas();\n    this.rhInitializeVisible = this.appconfigSer.appConfig.DeveloperMode;\n  }\n\n  /** 获取全局系统配置参数，根据模块过滤 */\n  getSysConfigParameterDatas() {\n    this.groupDatas = [];\n    this.wmsOperator.GetSysConfigParameterDatas().subscribe((result) => {\n      if (result.Success) {\n        this.paraSettingEntryDataset = result.Attach.filter((f) => f.ModuleKey === this.ModuleKey);\n        this.groupKeys.forEach((value, index) => {\n          const data = this.paraSettingEntryDataset.find((para) => para.GroupKey === value);\n          const entryValue = JSON.parse(data.ParameterEntryValue);\n          if (data) {\n            this.sourceDatas[index] = data;\n            this.groupDatas[index] = entryValue;\n            this.setWmsConfig(index, entryValue);\n          }\n          console.log(this.groupDatas);\n        });\n      } else {\n        this.paraSettingEntryDataset = [];\n      }\n    });\n  }\n\n  /** 更新 */\n  updateParameterSettingEntries(value: string) {\n    const data = ParaSettingEntryDto.create();\n    const source = this.sourceDatas[this.selectedIndex];\n    ObjectHelper.MapT(source, data);\n    data.ParameterEntryValue = value;\n    this.wmsOperator.UpdateParameterSettingEntries([data]).subscribe((result) => {\n      if (result && result.Success) {\n        this.getSysConfigParameterDatas();\n        MsgHelper.ShowSuccessMessage('修改配置成功！');\n      } else {\n        MsgHelper.ShowWarningModal(`修改配置失败！${result.Message}`);\n      }\n    });\n  }\n\n  setWmsConfig(index: number, value: RhSafeAny) {\n    switch (index) {\n      case 0:\n        this.wmsSysConfigSer.setWarehouseSysConfig(value);\n        break;\n      case 1:\n        this.wmsSysConfigSer.setWmsSysConfig(value);\n        break;\n      default:\n        break;\n    }\n  }\n\n  /** 初始化 */\n  initWmsSysConfig() {\n    this.initLoading = true;\n    const temp = ParaSettingEntryDto.create();\n    temp.ModuleKey = this.ModuleKey;\n    temp.GroupKey = this.groupKeys[this.selectedIndex];\n    temp.ParameterCode = this.paraCodes[this.selectedIndex];\n    this.wmsOperator.InitWmsSysConfig([temp]).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage(`初始化${this.groupNames[this.selectedIndex]}配置成功！`);\n          this.getSysConfigParameterDatas();\n        } else {\n          MsgHelper.ShowWarningModal(`初始化${this.groupNames[this.selectedIndex]}配置失败！${result.Message}`);\n        }\n        this.initLoading = false;\n      },\n      () => {\n        this.initLoading = false;\n      }\n    );\n  }\n\n  // changeIsEnableInPlan(check: boolean, formgroup: UntypedFormGroup) {\n  //   // 当启用入库计划时，启用入库业务单设为false并禁用\n  //   if (check) {\n  //     formgroup.get('IsEnableInOrderBusinessOrder').setValue(false);\n  //     formgroup.get('IsEnableInOrderBusinessOrder').disable();\n  //   } else {\n  //     formgroup.get('IsEnableInOrderBusinessOrder').enable();\n  //   }\n  // }\n\n  getWarehouseConfigDatas() {\n    const dto = WarehouseConfigQueryDto.create();\n    dto.Mode = 8;\n    this.wmsOperator.GetWarehouseConfigDatas(dto).subscribe((result) => {\n      if (result.Success) {\n        this.warehouseDataset = result.Attach;\n      } else {\n        this.warehouseDataset = [];\n      }\n    });\n  }\n\n  onCheckWarehouseData() {\n    this.checkedWarehouseDataset = this.warehouseDataset.filter((ele) => ele.check);\n    if (this.checkedWarehouseDataset.length === 1 && this.checkedWarehouseDataset[0].ConfigParameter) {\n      this.warehouseControlParameterData = JSON.parse(this.checkedWarehouseDataset[0].ConfigParameter);\n    } else {\n      // this.warehouseControlParameterData = ObjectHelper.createNullValueObject(this.warehouseControlParameterData);\n      this.warehouseControlParameterData = { __timeStamp: Date.now() };\n    }\n  }\n\n  storeWarehouseControlParameters(data: RhBaseDto) {\n    return new Observable((observer) => {\n      const datas = this.checkedWarehouseDataset.map((f) => {\n        return { ...data, WarehouseCode: f.WarehouseCode, FactoryCode: f.FactoryCode };\n      });\n      this.operator.StoreWarehouseControlParameters(datas).subscribe(\n        (result) => {\n          if (result && result.Success) {\n            MsgHelper.ShowSuccessMessage(`维护仓库控制参数数据成功！`);\n            this.warehouseControlParameterData = { __timeStamp: Date.now() };\n            this.checkedWarehouseDataset = [];\n            // this.warehouseDataset.forEach((ele) => (ele.check = false));\n            // 重新查询数据\n            this.getWarehouseConfigDatas();\n          } else {\n            MsgHelper.ShowWarningModal(`维护仓库控制参数数据失败！${result.Message}`);\n          }\n          observer.next();\n          observer.complete();\n        },\n        () => {\n          observer.error();\n        }\n      );\n    });\n  }\n}\n","<div class=\"rh-full\">\n  <!-- <button *ngIf=\"rhInitializeVisible\" style=\"margin-right: 20px; float: right\" nz-button nzType=\"primary\" nzSize=\"small\"\n    [nzLoading]=\"initLoading\" (click)=\"initWmsSysConfig()\">\n    <i nz-icon nzTheme=\"outline\" nzType=\"sync\"></i>初始化\n  </button> -->\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" nzSize=\"small\" nzTabPosition=\"left\">\n    <!-- <ng-container *ngFor=\"let key of groupKeys; let index = index\">\n      <nz-tab [nzTitle]=\"groupNames[index]\">\n        <div class=\"rh-full\">\n          <div style=\"margin-top: 30px\">\n            <rh-dynamic-form #editForm [rhName]=\"key + 'EditForm'\" rhType=\"edit\" rhLayout=\"horizontal\"\n              [rhValue]=\"groupDatas[index]\" [rhShowReturnBtn]=\"false\" [rhBeforeSubmit]=\"beforeSubmit\"></rh-dynamic-form>\n          </div>\n        </div>\n      </nz-tab>\n    </ng-container> -->\n\n    <nz-tab nzTitle=\"仓储管理\">\n      <button\n        *ngIf=\"rhInitializeVisible\"\n        style=\"margin-right: 20px; float: right\"\n        nz-button\n        nzType=\"primary\"\n        nzSize=\"small\"\n        [nzLoading]=\"initLoading\"\n        (click)=\"initWmsSysConfig()\"\n      >\n        <i nz-icon nzTheme=\"outline\" nzType=\"sync\"></i>初始化\n      </button>\n      <div class=\"rh-full\">\n        <div style=\"margin-top: 30px\">\n          <rh-dynamic-form\n            [rhName]=\"'WmsConfigurationEditForm'\"\n            rhType=\"edit\"\n            rhLayout=\"horizontal\"\n            [rhValue]=\"groupDatas[0]\"\n            [rhShowReturnBtn]=\"false\"\n            [rhBeforeSubmit]=\"beforeSubmit\"\n          ></rh-dynamic-form>\n        </div>\n      </div>\n    </nz-tab>\n\n    <nz-tab nzTitle=\"仓库管理\">\n      <nz-tabset [(nzSelectedIndex)]=\"warehouseSelectedIndex\">\n        <nz-tab nzTitle=\"全局\">\n          <button\n            *ngIf=\"rhInitializeVisible\"\n            style=\"margin-right: 20px; float: right\"\n            nz-button\n            nzType=\"primary\"\n            nzSize=\"small\"\n            [nzLoading]=\"initLoading\"\n            (click)=\"initWmsSysConfig()\"\n          >\n            <i nz-icon nzTheme=\"outline\" nzType=\"sync\"></i>初始化\n          </button>\n          <div class=\"rh-full\">\n            <div>\n              <rh-dynamic-form\n                [rhName]=\"'WarehouseSysConfigEditForm'\"\n                rhType=\"edit\"\n                rhLayout=\"horizontal\"\n                [rhValue]=\"groupDatas[1]\"\n                [rhShowReturnBtn]=\"false\"\n                [rhBeforeSubmit]=\"beforeSubmit\"\n              ></rh-dynamic-form>\n            </div>\n          </div>\n        </nz-tab>\n        <nz-tab nzTitle=\"仓库\">\n          <d-splitter orientation=\"horizontal\">\n            <d-splitter-pane #leftPane [collapsible]=\"true\" size=\"300px\" minSize=\"200px\" maxSize=\"400px\">\n              <rh-draggable-list\n                [rhDraggable]=\"false\"\n                [rhDatasource]=\"warehouseDataset\"\n                [rhPrefixTpl]=\"warehousePreTpl\"\n                rhValue=\"WarehouseCode\"\n                rhText=\"WarehouseName\"\n              >\n                <ng-template #warehousePreTpl let-item>\n                  <label nz-checkbox [(ngModel)]=\"item.check\" (ngModelChange)=\"onCheckWarehouseData()\"></label>\n                </ng-template>\n              </rh-draggable-list>\n            </d-splitter-pane>\n            <d-splitter-pane>\n              <div class=\"rh-full\">\n                <rh-dynamic-form\n                  [rhName]=\"'WarehouseSysConfigBatchEditForm'\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"warehouseControlParameterData\"\n                  [rhValueOverride]=\"true\"\n                  [rhShowReturnBtn]=\"false\"\n                  [rhBeforeSubmit]=\"beforeSubmitWarehouseSysConfigBatch\"\n                ></rh-dynamic-form>\n              </div>\n            </d-splitter-pane>\n          </d-splitter>\n        </nz-tab>\n      </nz-tabset>\n    </nz-tab>\n\n    <nz-tab nzTitle=\"业务管理\">\n      <nz-tabset>\n        <nz-tab nzTitle=\"全局\">\n          <button\n            *ngIf=\"rhInitializeVisible\"\n            style=\"margin-right: 20px; float: right\"\n            nz-button\n            nzType=\"primary\"\n            nzSize=\"small\"\n            [nzLoading]=\"initLoading\"\n            (click)=\"initWmsSysConfig()\"\n          >\n            <i nz-icon nzTheme=\"outline\" nzType=\"sync\"></i>初始化\n          </button>\n          <div class=\"rh-full\">\n            <div>\n              <rh-dynamic-form\n                [rhName]=\"'BusinessConfigEditForm'\"\n                rhType=\"edit\"\n                rhLayout=\"horizontal\"\n                [rhValue]=\"groupDatas[2]\"\n                [rhShowReturnBtn]=\"false\"\n                [rhBeforeSubmit]=\"beforeSubmit\"\n              ></rh-dynamic-form>\n            </div>\n          </div>\n        </nz-tab>\n        <nz-tab nzTitle=\"业务仓库\">\n          <rh-warehouse-business-conf></rh-warehouse-business-conf>\n        </nz-tab>\n        <nz-tab nzTitle=\"业务模式\">\n          <rh-business-mode-config></rh-business-mode-config>\n        </nz-tab>\n      </nz-tabset>\n    </nz-tab>\n\n    <!-- <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>仓库管理</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <div style=\"margin-top: 30px\">\n          <rh-dynamic-form\n            #editForm\n            rhName=\"warehouseEditForm\"\n            rhType=\"edit\"\n            rhLayout=\"horizontal\"\n            [rhValue]=\"warehouseEditDto\"\n            [rhShowReturnBtn]=\"false\"\n            (rhInterfaceDataChange)=\"onStoreData($event, 'warehouse')\"\n          ></rh-dynamic-form>\n        </div>\n      </div>\n    </nz-tab>\n    <nz-tab [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>仓储管理</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <div style=\"margin-top: 30px\">\n          <rh-dynamic-form\n            #editForm\n            rhName=\"wmsEditForm\"\n            rhType=\"edit\"\n            rhLayout=\"horizontal\"\n            [rhValue]=\"wmsEditDto\"\n            [rhShowReturnBtn]=\"false\"\n            [rhBeforeSubmit]=\"beforeSubmitWms\"\n            (rhAfterFormInit)=\"afterFormInitWms($event)\"\n          >\n            <ng-template rhTemplate=\"IsEnableInPlan\" let-formgroup let-setting=\"setting\">\n              <nz-form-item>\n                <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }}</nz-form-label>\n                <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                  <label\n                    nz-checkbox\n                    [formControl]=\"formgroup.get('IsEnableInPlan')\"\n                    (ngModelChange)=\"changeIsEnableInPlan($event, formgroup)\"\n                    >{{ setting.placeholder }}</label\n                  >\n                </nz-form-control>\n              </nz-form-item>\n            </ng-template>\n          </rh-dynamic-form>\n        </div>\n      </div>\n    </nz-tab> -->\n  </nz-tabset>\n</div>\n","import { Component, OnInit, Input, ViewChild, Output, EventEmitter } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { RhSelectableDto, RhDynamicInterfaceDto, DataResultT, RhTableQueryOptionDto, CodeClassModel, RhDynamicTableFieldDto, RhSafeAny } from 'rh-base/model';\nimport { MsgHelper } from 'rh-base/core';\n\n@Component({\n  selector: 'rh-list-warehouses-table',\n  templateUrl: './list-warehouses-table.component.html',\n  styleUrls: ['./list-warehouses-table.component.less']\n})\nexport class ListWarehousesTableComponent implements OnInit {\n  @Input() rhName = 'ListWarehousesSelector';\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  @Input() rhSingleMode = false;\n  @Input() rhInterfaceInfo: RhDynamicInterfaceDto;\n  @Input() rhDefaultQueryDto = {};\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  /** 表格Loading */\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [\n    { name: 'WarehouseCode', displayName: '仓库代码', placeholder: '仓库代码', editable: true },\n    { name: 'WarehouseName', displayName: '仓库名称', placeholder: '仓库名称', editable: true }\n  ];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [\n    { name: 'WarehouseCode', displayName: '仓库代码', width: 100 },\n    { name: 'WarehouseName', displayName: '仓库名称', width: 100 },\n    { name: 'WarehouseCategory', displayName: '仓库类别', width: 100, type: 'array', config: { moduleKey: 'MDP', groupKey: 'WareHouseManagement', paraCode: 'WarehouseCategory' } },\n    { name: 'ChargeUserCode', displayName: '负责人编码', width: 140 },\n    { name: 'ChargeUserName', displayName: '负责人名称', width: 140 },\n    { name: 'Remark', displayName: '备注', width: 100 }\n  ];\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  selectedDatas: RhSelectableDto[] = [];\n\n  constructor() {\n    //\n  }\n\n  ngOnInit(): void {\n    //\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  setDatas(result: DataResultT<RhSelectableDto[]>) {\n    if (result && result.Success) {\n      this.dataresult = result;\n    } else {\n      this.dataresult = { Success: false, Attach: [] } as RhSafeAny;\n      MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n    }\n  }\n}\n","<!-- 搜索Form区域 -->\n<div class=\"search-area rh-full\">\n    <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n        <ng-template #searchTpl>\n            <rh-dynamic-form #queryForm rhName=\"{{ rhName }}Form\" [rhValue]=\"rhDefaultQueryDto\"\n                (rhInterfaceDataChange)=\"setDatas($event)\" (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                (rhOutParaChange)=\"setInitFieldDataset($event)\" [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n                [(rhFormInterface)]=\"rhInterfaceInfo\">\n            </rh-dynamic-form>\n        </ng-template>\n    </nz-alert>\n</div>\n<!-- 搜索结果Table展示区域 -->\n<div class=\"table-area\">\n    <rh-dynamic-table rhName=\"{{ rhName }}Table\" [rhTableData]=\"dataresult\" [rhTableDataloading]=\"dataLoading\"\n        [rhDefaultFieldDataset]=\"defaultTableFieldDataset\" (rhRefresh)=\"refreshDatas($event)\"\n        (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\" [rhSingleMode]=\"rhSingleMode\"></rh-dynamic-table>\n</div>","import { Component, Input, ChangeDetectorRef, SimpleChanges, OnInit } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport {\n  RhSelectableDto,\n  RhDynamicFormFieldDto,\n  RhSafeAny,\n  RhDynamicInterfaceDto,\n  RhSelectItem,\n  RhCustomizeEventSettingDto\n} from 'rh-base/model';\nimport { provideValueAccessor, RhRouteHelper, MsgHelper } from 'rh-base/core';\nimport { RhBaseDynamicService } from 'rh-base/shared';\n\n@Component({\n  selector: 'rh-list-warehouses-selector',\n  templateUrl: './list-warehouses-selector.component.html',\n  styleUrls: ['./list-warehouses-selector.component.less'],\n  providers: [provideValueAccessor(ListWarehousesSelectorComponent)]\n})\nexport class ListWarehousesSelectorComponent implements OnInit, ControlValueAccessor {\n  @Input() rhDynamicKey = 'ListWarehousesSelector';\n  @Input() rhTitle = '选择仓库';\n  @Input() rhSingleMode = false;\n  @Input() rhDisabled = false;\n  @Input() rhDefaultQueryDto = {};\n  /** form字段名称 */\n  @Input() rhFieldName: string = 'ListWarehouses';\n  /** 动态form字段配置数据 */\n  @Input() rhFieldData: RhDynamicFormFieldDto;\n  /** 整个form的数据 */\n  @Input() declare rhData: RhSafeAny;\n  /** 该组件关联的form名称 */\n  formName: string;\n  /** 当前路由 */\n  url: string;\n  /** 改变值的模式 */\n  changeValueMode: 'append' | 'cover' = 'append';\n\n  itemKeyFieldName = 'WarehouseCode';\n  itemTextFieldName = 'WarehouseName';\n  selectedDatas: RhSelectableDto[];\n  _value: RhSelectItem[];\n  isShowDataModal = false;\n  get value() {\n    return this._value;\n  }\n  set value(datas: RhSelectItem[]) {\n    this._value = datas;\n    this.onChange(datas);\n  }\n\n  /** 设置默认搜索接口 */\n  defaultFormInterface: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52880,\n    controllerName: 'WarehouseWebApi',\n    interfaceName: 'GetWarehouseConfigDatas'\n  };\n\n  onChange: (value: RhSelectItem[]) => void = () => {};\n  onTouched: (value: RhSelectItem[]) => void = () => {};\n\n  constructor(public cdr: ChangeDetectorRef, public dynamicSer: RhBaseDynamicService, public router: Router) {\n    this.url = RhRouteHelper.getRealRoute(this.router.url);\n  }\n  writeValue(obj: RhSelectItem[]): void {\n    this.value = obj;\n    this.cdr.markForCheck();\n  }\n  registerOnChange(fn: RhSafeAny): void {\n    this.onChange = fn;\n  }\n  registerOnTouched(fn: RhSafeAny): void {\n    this.onTouched = fn;\n  }\n  setDisabledState?(isDisabled: boolean): void {\n    this.rhDisabled = isDisabled;\n    this.cdr.markForCheck();\n  }\n\n  ngOnInit(): void {\n    this.formName = this.rhFieldData.relatedComponentName;\n  }\n\n  // 自定义表单项配置\n  ngOnChanges(changes: SimpleChanges) {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue && !rhData.currentValue[this.rhFieldName]) {\n      this.resetControlValue();\n    }\n  }\n\n  onSelectModal(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas || [];\n  }\n\n  openDataModal(event: Event, mode: 'append' | 'cover') {\n    event.stopImmediatePropagation();\n    event.preventDefault();\n    if (this.rhDisabled) {\n      MsgHelper.ShowWarningMessage(`该字段禁止编辑`);\n      return;\n    }\n    this.changeValueMode = mode;\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  confirmSelect() {\n    if (this.changeValueMode === 'append') {\n      const temp = (this.value || []).concat(\n        this.selectedDatas.map((data) => {\n          return {\n            Text: data[this.itemTextFieldName],\n            Value: data[this.itemKeyFieldName]\n          };\n        })\n      );\n      this.value = [...new Set(temp)];\n    } else {\n      this.value = this.selectedDatas.map((data) => {\n        return {\n          Text: data[this.itemTextFieldName],\n          Value: data[this.itemKeyFieldName]\n        };\n      });\n    }\n\n    this.closeDataModal();\n  }\n\n  resetControlValue() {\n    this.value = null;\n    this.selectedDatas = [];\n  }\n\n  onClose(item: RhSelectItem) {\n    const index = this.value.findIndex((f) => f.Value === item.Value);\n    if (index !== -1) {\n      this.value.splice(index, 1);\n    }\n  }\n}\n","<nz-tag *ngFor=\"let item of _value\" nzColor=\"processing\" nzMode=\"closeable\" (nzOnClose)=\"onClose(item)\">\n  {{ item.Text }}-{{ item.Value }}</nz-tag\n>\n<span class=\"plus-icon\">\n  <ng-container *ngIf=\"_value?.length; else emptyTpl\">\n    <i nz-icon [nzType]=\"'plus-circle'\" nzTheme=\"outline\" (click)=\"openDataModal($event, 'append')\" [title]=\"'追加'\"></i>\n    <nz-divider nzType=\"vertical\"></nz-divider>\n    <i nz-icon [nzType]=\"'redo'\" nzTheme=\"outline\" (click)=\"openDataModal($event, 'cover')\" [title]=\"'重新选择'\"></i>\n  </ng-container>\n  <ng-template #emptyTpl>\n    <i nz-icon [nzType]=\"'plus-circle'\" nzTheme=\"outline\" (click)=\"openDataModal($event, 'cover')\" [title]=\"'选择'\"></i>\n  </ng-template>\n\n  <ng-container *ngIf=\"_value?.length\">\n    <nz-divider nzType=\"vertical\"></nz-divider>\n    <i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"resetControlValue()\" title=\"清空\"></i>\n  </ng-container>\n</span>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"rhTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas || !selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-list-warehouses-table\n        [rhName]=\"rhDynamicKey\"\n        (rhModelChange)=\"onSelectModal($event)\"\n        [rhInterfaceInfo]=\"defaultFormInterface\"\n        [rhDefaultQueryDto]=\"rhDefaultQueryDto\"\n      >\n      </rh-list-warehouses-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport {\n  CodeClassModel,\n  DataResultT,\n  RhBaseQueryDto,\n  RhDynamicTableFieldDto,\n  RhHttpRequestSettingDto,\n  RhSafeAny,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  RhTableQueryOptionDto\n} from 'rh-base/model';\nimport {\n  guid,\n  IndexDBHelper,\n  MsgHelper,\n  RhNavigatorService\n} from 'rh-base/core';\nimport {\n  DynamicFormComponent,\n\n} from 'rh-base/shared';\nimport { WebApiInvokeLog } from 'rh-syc/syc-models';\n\n@Component({\n  selector: 'rh-web-api-invokes-logs',\n  templateUrl: './web-api-invokes-logs.component.html',\n  styleUrls: ['./web-api-invokes-logs.component.less']\n})\nexport class WebApiInvokesLogsComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  queryDto: RhBaseQueryDto;\n  defaultFieldDataset = [];\n  detailsForm: UntypedFormGroup;\n\n  selectedItem: WebApiInvokeLog = null;\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto(\n      'showDetailsView',\n      '查看详情',\n      'default',\n      false,\n      'eye',\n      false,\n      null,\n      (item) => this.openDetailsTab(item as WebApiInvokeLog),\n      true,\n      false,\n      '#1890ff'\n    )\n  ];\n\n  constructor(private fb: UntypedFormBuilder, public navigator: RhNavigatorService) {\n    //\n  }\n\n  ngOnInit(): void {\n    //\n  }\n\n  openDetailsTab(item: WebApiInvokeLog) {\n    this.selectedItem = item;\n    this.createDetailsForm(item);\n    this.selectedIndex = 1;\n  }\n\n  closeDetailsTab() {\n    this.selectedIndex = 0;\n  }\n\n  createDetailsForm(dto: WebApiInvokeLog) {\n    this.detailsForm = this.fb.group({});\n  }\n\n  closeEditTab() {\n    this.selectedIndex = 0;\n  }\n\n  openEditTab() {\n    this.selectedIndex = 1;\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  /** 转到接口调试界面 */\n  navigateToInterfaceDebug() {\n    // 写入信息到indexDB，获取guid。然后跳转到接口调试界面\n    MsgHelper.ShowGlobalLoadingMessage('正在存储接口数据，请稍候');\n    const requestDto = this.initRequestDto(this.selectedItem);\n    const dbName = 'InterfaceDebug',\n      sheetName = 'InterfaceInfo',\n      primaryKey = 'InterfaceId',\n      version = 1;\n    IndexDBHelper.open(\n      dbName,\n      version,\n      sheetName,\n      primaryKey,\n      (db) => {\n        IndexDBHelper.add(\n          db,\n          sheetName,\n          requestDto,\n          () => {\n            MsgHelper.CloseGlobalLoadingMessage();\n            this.closeDetailsTab();\n            setTimeout(() => {\n              // 导航至接口调试页面\n              this.navigator.navigatorTrigger('RW_InterfaceDebug', { id: requestDto.InterfaceId });\n            }, 100);\n          },\n          () => MsgHelper.ShowWarningMessage(`接口数据存储失败！`)\n        );\n      },\n      () => {\n        MsgHelper.ShowErrorMessage(`保存接口数据失败，无法打开调试页面！`);\n        MsgHelper.CloseGlobalLoadingMessage();\n      }\n    );\n  }\n\n  private initRequestDto(data: WebApiInvokeLog): RhHttpRequestSettingDto {\n    const temp = RhHttpRequestSettingDto.create();\n    temp.InterfaceId = guid();\n    temp.controllerName = data.ControllerName;\n    temp.interfaceName = data.MethodName;\n    if (data.HttpMethod == 'POST') {\n      temp.input = JSON.parse(data.CallPara);\n    }\n    temp.fullUrl = data.ApiUrl;\n    temp.type = data.HttpMethod ? (data.HttpMethod.toLocaleLowerCase() as RhSafeAny) : 'post';\n    try {\n      if (data.ApiUrl) {\n        const tempDatas = data.ApiUrl.split('/');\n        console.log(tempDatas);\n        temp.prefix = tempDatas.slice(0, -2).join('/');\n        temp.url = `/${tempDatas.slice(-2).join('/')}`;\n        temp.baseUrl = `/${tempDatas.slice(3, 5).join('/')}`;\n\n        const serverPort = tempDatas[2];\n        temp.server = serverPort.split(':')[0];\n        temp.port = serverPort.split(':')[1];\n      }\n    } catch (error) {\n      return temp;\n    }\n    return temp;\n  }\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    [rhValue]=\"queryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  ></rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n              ></rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>日志信息看板</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzTheme=\"outline\" nzType=\"close-circle\" (click)=\"closeDetailsTab()\"></i></span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <form nz-form [formGroup]=\"detailsForm\" nzLayout=\"horizontal\">\n          <div nz-row *ngIf=\"selectedItem !== null\">\n            <div nz-col [nzSpan]=\"24\">\n              <nz-card style=\"width: 95%\" [nzBordered]=\"true\" [nzTitle]=\"cardTitleOfApiDoc\" [nzExtra]=\"extraOfApiContent\">\n                <ng-template #cardTitleOfApiDoc>\n                  <h4>\n                    控制器:{{ selectedItem.ControllerName }} 路由方法:<a>{{ selectedItem.MethodName }}</a> 【<span>{{\n                      selectedItem.HttpMethod\n                    }}</span\n                    >】\n                  </h4>\n                </ng-template>\n                <ng-template #extraOfApiContent>\n                  <button nz-button nzType=\"primary\" type=\"button\" (click)=\"navigateToInterfaceDebug()\">\n                    <i nz-icon nzType=\"bug\" nzTheme=\"outline\"></i>\n                    转到接口调试\n                  </button>\n                </ng-template>\n                <div>\n                  <nz-alert [nzType]=\"'success'\" style=\"margin: 10px\" [nzMessage]=\"msgOfapiUrl\">\n                    <ng-template #msgOfapiUrl>\n                      <nz-tag [nzColor]=\"'#87d068'\">ApiUrl：</nz-tag>\n                      {{ selectedItem.ApiUrl }}\n                    </ng-template>\n                  </nz-alert>\n                  <nz-alert [nzType]=\"'info'\" style=\"margin: 10px\" [nzMessage]=\"msgOfDataBodyTitle\">\n                    <ng-template #msgOfDataBodyTitle>\n                      <nz-tag [nzColor]=\"'#2db7f5'\"> 输入参数： </nz-tag>\n                      <textarea [rows]=\"8\" nz-input>\n                                {{ selectedItem.CallPara }}\n                             </textarea\n                      >\n                    </ng-template>\n                  </nz-alert>\n                  <nz-alert [nzType]=\"'error'\" style=\"margin: 10px\" [nzMessage]=\"msgOfExceptionTitle\">\n                    <ng-template #msgOfExceptionTitle>\n                      <nz-tag [nzColor]=\"'#f50'\">异常信息：</nz-tag>\n                      <textarea [rows]=\"14\" nz-input>\n                               {{ selectedItem.ErrorMessage }}\n                             </textarea\n                      >\n                    </ng-template>\n                  </nz-alert>\n                  <nz-alert [nzType]=\"'success'\" style=\"margin: 10px\" [nzMessage]=\"msgOfLastAccessTime\">\n                    <ng-template #msgOfLastAccessTime>\n                      <nz-tag [nzColor]=\"'#108ee9'\">访问时间：</nz-tag>\n                      {{ selectedItem.CreationDate | date: 'yyyy-MM-dd HH:mm:ss' }}\n                    </ng-template>\n                  </nz-alert>\n                </div>\n              </nz-card>\n            </div>\n          </div>\n        </form>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport {\n  CodeClassModel,\n  DataResultT,\n  RhBaseQueryDto,\n  RhDynamicTableFieldDto,\n  RhHttpRequestSettingDto,\n  RhSafeAny,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  RhTableQueryOptionDto\n} from 'rh-base/model';\nimport {\n  guid,\n  IndexDBHelper,\n  MsgHelper,\n  RhNavigatorService\n} from 'rh-base/core';\nimport {\n  DynamicFormComponent,\n\n} from 'rh-base/shared';\nimport { ESWebApiInvokeExceptionLogDto } from './../../tool-kit-model';\n\n@Component({\n  selector: 'rh-esweb-api-invokes-exception-logs',\n  templateUrl: './esweb-api-invokes-exception-logs.component.html',\n  styleUrls: ['./esweb-api-invokes-exception-logs.component.less']\n})\nexport class ESWebApiInvokesExceptionLogsComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  detailsForm: UntypedFormGroup;\n\n  queryDto: RhBaseQueryDto;\n  defaultFieldDataset = [];\n\n  selectedItem: ESWebApiInvokeExceptionLogDto = null;\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto(\n      'showDetailsView',\n      '查看详情',\n      'default',\n      false,\n      'eye',\n      false,\n      null,\n      (item) => this.openDetailsTab(item as ESWebApiInvokeExceptionLogDto),\n      true,\n      false,\n      '#1890ff'\n    )\n  ];\n\n  constructor(private fb: UntypedFormBuilder, public navigator: RhNavigatorService) {\n    //\n  }\n\n  ngOnInit(): void {\n    //\n  }\n\n  openDetailsTab(item: ESWebApiInvokeExceptionLogDto) {\n    this.selectedItem = item;\n    if (item.InvokeApiUrl) {\n      const tempDatas = item.InvokeApiUrl.split('/');\n      this.selectedItem.ControllerName = tempDatas[5];\n    }\n    this.createDetailsForm(item);\n    this.selectedIndex = 1;\n  }\n\n  closeDetailsTab() {\n    this.selectedIndex = 0;\n  }\n\n  createDetailsForm(dto: ESWebApiInvokeExceptionLogDto) {\n    this.detailsForm = this.fb.group({});\n  }\n\n  closeEditTab() {\n    this.selectedIndex = 0;\n  }\n\n  openEditTab() {\n    this.selectedIndex = 1;\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  /** 转到接口调试界面 */\n  navigateToInterfaceDebug() {\n    // 写入信息到indexDB，获取guid。然后跳转到接口调试界面\n    MsgHelper.ShowGlobalLoadingMessage('正在存储接口数据，请稍候');\n    const requestDto = this.initRequestDto(this.selectedItem);\n    const dbName = 'InterfaceDebug',\n      sheetName = 'InterfaceInfo',\n      primaryKey = 'InterfaceId',\n      version = 1;\n    IndexDBHelper.open(\n      dbName,\n      version,\n      sheetName,\n      primaryKey,\n      (db) => {\n        IndexDBHelper.add(\n          db,\n          sheetName,\n          requestDto,\n          () => {\n            MsgHelper.CloseGlobalLoadingMessage();\n            this.closeDetailsTab();\n            setTimeout(() => {\n              // 导航至接口调试页面\n              this.navigator.navigatorTrigger('RW_InterfaceDebug', { id: requestDto.InterfaceId });\n            }, 100);\n          },\n          () => MsgHelper.ShowWarningMessage(`接口数据存储失败！`)\n        );\n      },\n      () => {\n        MsgHelper.ShowErrorMessage(`保存接口数据失败，无法打开调试页面！`);\n        MsgHelper.CloseGlobalLoadingMessage();\n      }\n    );\n  }\n\n  private initRequestDto(data: ESWebApiInvokeExceptionLogDto): RhHttpRequestSettingDto {\n    const temp = RhHttpRequestSettingDto.create();\n    temp.InterfaceId = guid();\n    temp.controllerName = data.ControllerName;\n    temp.interfaceName = data.InvokeMethodName;\n    if (data.HttpMethod == 'POST') {\n      temp.input = JSON.parse(data.InvokeInputParameter);\n    }\n    temp.fullUrl = data.InvokeApiUrl;\n    temp.type = data.HttpMethod ? (data.HttpMethod.toLocaleLowerCase() as RhSafeAny) : 'post';\n    try {\n      if (data.InvokeApiUrl) {\n        const tempDatas = data.InvokeApiUrl.split('/');\n        temp.prefix = tempDatas.slice(0, -2).join('/');\n        temp.url = `/${tempDatas.slice(-2).join('/')}`;\n        temp.baseUrl = `/${tempDatas.slice(3, 5).join('/')}`;\n\n        const serverPort = tempDatas[2];\n        temp.server = serverPort.split(':')[0];\n        temp.port = serverPort.split(':')[1];\n      }\n    } catch (error) {\n      return temp;\n    }\n    return temp;\n  }\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    [rhValue]=\"queryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  ></rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n              ></rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>日志信息看板</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzTheme=\"outline\" nzType=\"close-circle\" (click)=\"closeDetailsTab()\"></i></span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <form nz-form [formGroup]=\"detailsForm\" nzLayout=\"horizontal\">\n          <div nz-row *ngIf=\"selectedItem !== null\">\n            <div nz-col [nzSpan]=\"24\">\n              <nz-card style=\"width: 95%\" [nzBordered]=\"true\" [nzTitle]=\"cardTitleOfApiDoc\" [nzExtra]=\"extraOfApiContent\">\n                <ng-template #cardTitleOfApiDoc>\n                  <h4>\n                    控制器:{{ selectedItem.ControllerName }} 路由方法:<a>{{ selectedItem.InvokeMethodName }}</a> 【<span>{{\n                      selectedItem.HttpMethod\n                    }}</span\n                    >】\n                  </h4>\n                </ng-template>\n                <ng-template #extraOfApiContent>\n                  <button nz-button nzType=\"primary\" type=\"button\" (click)=\"navigateToInterfaceDebug()\">\n                    <i nz-icon nzType=\"bug\" nzTheme=\"outline\"></i>\n                    转到接口调试\n                  </button>\n                </ng-template>\n                <div>\n                  <nz-alert [nzType]=\"'success'\" style=\"margin: 10px\" [nzMessage]=\"msgOfapiUrl\">\n                    <ng-template #msgOfapiUrl>\n                      <nz-tag [nzColor]=\"'#87d068'\">ApiUrl：</nz-tag>\n                      {{ selectedItem.InvokeApiUrl }}\n                    </ng-template>\n                  </nz-alert>\n                  <nz-alert [nzType]=\"'info'\" style=\"margin: 10px\" [nzMessage]=\"msgOfDataBodyTitle\">\n                    <ng-template #msgOfDataBodyTitle>\n                      <nz-tag [nzColor]=\"'#2db7f5'\"> 输入参数： </nz-tag>\n                      <textarea [rows]=\"8\" nz-input>\n                                {{ selectedItem.InvokeInputParameter }}\n                             </textarea\n                      >\n                    </ng-template>\n                  </nz-alert>\n                  <nz-alert [nzType]=\"'error'\" style=\"margin: 10px\" [nzMessage]=\"msgOfExceptionTitle\">\n                    <ng-template #msgOfExceptionTitle>\n                      <nz-tag [nzColor]=\"'#f50'\">异常信息：</nz-tag>\n                      <textarea [rows]=\"14\" nz-input>\n                               {{ selectedItem.ErrorMessage }}\n                             </textarea\n                      >\n                    </ng-template>\n                  </nz-alert>\n                  <nz-alert [nzType]=\"'success'\" style=\"margin: 10px\" [nzMessage]=\"msgOfLastAccessTime\">\n                    <ng-template #msgOfLastAccessTime>\n                      <nz-tag [nzColor]=\"'#108ee9'\">访问时间：</nz-tag>\n                      {{ selectedItem.CreationDate | date: 'yyyy-MM-dd HH:mm:ss' }}\n                    </ng-template>\n                  </nz-alert>\n                </div>\n              </nz-card>\n            </div>\n          </div>\n        </form>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport {\n  CodeClassModel,\n  DataResultT,\n  RhBaseQueryDto,\n  RhDynamicTableFieldDto,\n  RhHttpRequestSettingDto,\n  RhSafeAny,\n  RhSelectableDto,\n  RhSelectItem,\n  RhTableButtonInfoDto,\n  RhTableQueryOptionDto\n} from 'rh-base/model';\nimport {\n  guid,\n  MsgHelper,\n  RhApiUrlsService\n} from 'rh-base/core';\nimport {\n  DynamicFormComponent\n} from 'rh-base/shared';\nimport { WebApiInvokeLog } from 'rh-syc/syc-models';\nimport { RhToolKitService } from './../../tool-kit.service';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\n@Component({\n  selector: 'rh-esinvokes-exception-compensagion',\n  templateUrl: './esinvokes-exception-compensagion.component.html',\n  styleUrls: ['./esinvokes-exception-compensagion.component.less']\n})\nexport class ESInvokesExceptionCompensagionComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  queryDto: RhBaseQueryDto;\n  defaultFieldDataset = [];\n\n  detailsForm: UntypedFormGroup;\n  selectedItem: RhSafeAny = null;\n  httpRequestSubscription: Subscription;\n  destroy$ = new Subject<void>();\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto(\n      'showDetailsView',\n      '查看详情',\n      'default',\n      false,\n      'eye',\n      false,\n      null,\n      (item) => this.openDetailsTab(item as WebApiInvokeLog),\n      true,\n      false,\n      '#1890ff'\n    )\n  ];\n\n  constructor(private fb: UntypedFormBuilder, private apiUrl: RhApiUrlsService, private operator: RhToolKitService) {\n    //\n  }\n\n  ngOnInit(): void {\n    //\n  }\n\n  openDetailsTab(item: WebApiInvokeLog) {\n    this.selectedItem = item;\n    this.createDetailsForm(item);\n    this.selectedIndex = 1;\n  }\n\n  closeDetailsTab() {\n    this.selectedIndex = 0;\n  }\n\n  createDetailsForm(dto: WebApiInvokeLog) {\n    this.detailsForm = this.fb.group({});\n  }\n\n  closeEditTab() {\n    this.selectedIndex = 0;\n  }\n\n  openEditTab() {\n    this.selectedIndex = 1;\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  ESInvokeExceptionCompensagionOperation() {\n    const requestDto = this.initRequestDto(this.selectedItem);\n    if (this.selectedItem.TryExecuteTimes < 3) {\n      if (this.httpRequestSubscription) {\n        this.httpRequestSubscription.unsubscribe();\n      }\n      if (requestDto.type === 'get') {\n        this.httpRequestSubscription = this.apiUrl\n          .get(`${requestDto.prefix}${requestDto.url}`)\n          .pipe(debounceTime(500), takeUntil(this.destroy$))\n          .subscribe((result: RhSelectItem) => {\n            if (result.Success) {\n              MsgHelper.ShowWarningMessage('补偿操作成功！');\n              this.operator.CompletedESInvokeExceptionCompensagionOperation(this.selectedItem).subscribe((res) => {\n                if (res.Success) {\n                  MsgHelper.ShowWarningMessage(`更新尝试次数成功！`);\n                } else {\n                  MsgHelper.ShowWarningMessage(`更新尝试次数失败！${res.Message}`);\n                }\n              });\n            } else {\n              MsgHelper.ShowWarningMessage(`补偿操作失败！${result.Message ? result.Message : null}`);\n              this.operator.UpdateESInvokeExceptionCompensagionTryExcuteTime(this.selectedItem).subscribe((log) => {\n                if (log.Success) {\n                  MsgHelper.ShowWarningMessage(`更新尝试次数成功！`);\n                } else {\n                  MsgHelper.ShowWarningMessage(`更新尝试次数失败！${log.Message}`);\n                }\n              });\n            }\n          });\n      } else {\n        this.httpRequestSubscription = this.apiUrl\n          .post(`${requestDto.prefix}${requestDto.url}`, requestDto.input)\n          .subscribe((result: RhSelectItem) => {\n            if (result.Success) {\n              MsgHelper.ShowWarningMessage('补偿操作成功！');\n              this.operator.CompletedESInvokeExceptionCompensagionOperation(this.selectedItem).subscribe((res) => {\n                if (res.Success) {\n                  MsgHelper.ShowWarningMessage(`更新尝试次数成功！`);\n                } else {\n                  MsgHelper.ShowWarningMessage(`更新尝试次数失败！${res.Message}`);\n                }\n              });\n            } else {\n              MsgHelper.ShowWarningMessage(`补偿操作失败！${result.Message ? result.Message : null}`);\n              this.operator.UpdateESInvokeExceptionCompensagionTryExcuteTime(this.selectedItem).subscribe((log) => {\n                if (log.Success) {\n                  MsgHelper.ShowWarningMessage(`更新尝试次数成功！`);\n                } else {\n                  MsgHelper.ShowWarningMessage(`更新尝试次数失败！${log.Message}`);\n                }\n              });\n            }\n          });\n      }\n    } else {\n      MsgHelper.ShowWarningMessage('已尝试补偿3次，不可再次补偿操作！');\n    }\n  }\n\n  private initRequestDto(data: WebApiInvokeLog): RhHttpRequestSettingDto {\n    const temp = RhHttpRequestSettingDto.create();\n    temp.InterfaceId = guid();\n    temp.controllerName = data.ControllerName;\n    temp.interfaceName = data.MethodName;\n    if (data.HttpMethod == 'POST') {\n      temp.input = JSON.parse(data.CallPara);\n    }\n    temp.fullUrl = data.ApiUrl;\n    temp.type = data.HttpMethod ? (data.HttpMethod.toLocaleLowerCase() as RhSafeAny) : 'post';\n    try {\n      if (data.ApiUrl) {\n        const tempDatas = data.ApiUrl.split('/');\n        temp.prefix = tempDatas.slice(0, -2).join('/');\n        temp.url = `/${tempDatas.slice(-2).join('/')}`;\n        temp.baseUrl = `/${tempDatas.slice(3, 5).join('/')}`;\n\n        const serverPort = tempDatas[2];\n        temp.server = serverPort.split(':')[0];\n        temp.port = serverPort.split(':')[1];\n      }\n    } catch (error) {\n      return temp;\n    }\n    return temp;\n  }\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    [rhValue]=\"queryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  ></rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n              ></rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>日志信息看板</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzTheme=\"outline\" nzType=\"close-circle\" (click)=\"closeDetailsTab()\"></i></span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <form nz-form [formGroup]=\"detailsForm\" nzLayout=\"horizontal\">\n          <div nz-row *ngIf=\"selectedItem !== null\">\n            <div nz-col [nzSpan]=\"24\">\n              <nz-card style=\"width: 95%\" [nzBordered]=\"true\" [nzTitle]=\"cardTitleOfApiDoc\" [nzExtra]=\"extraOfApiContent\">\n                <ng-template #cardTitleOfApiDoc>\n                  <h4>\n                    控制器:{{ selectedItem.ControllerName }} 路由方法:<a>{{ selectedItem.MethodName }}</a> 【<span>{{\n                      selectedItem.HttpMethod\n                    }}</span\n                    >】\n                  </h4>\n                </ng-template>\n                <ng-template #extraOfApiContent>\n                  <button nz-button nzType=\"primary\" type=\"button\" (click)=\"ESInvokeExceptionCompensagionOperation()\">\n                    <i nz-icon nzType=\"bug\" nzTheme=\"outline\"></i>\n                    补偿操作\n                  </button>\n                </ng-template>\n                <div>\n                  <nz-alert [nzType]=\"'success'\" style=\"margin: 10px\" [nzMessage]=\"msgOfapiUrl\">\n                    <ng-template #msgOfapiUrl>\n                      <nz-tag [nzColor]=\"'#87d068'\">ApiUrl：</nz-tag>\n                      {{ selectedItem.ApiUrl }}\n                    </ng-template>\n                  </nz-alert>\n                  <nz-alert [nzType]=\"'info'\" style=\"margin: 10px\" [nzMessage]=\"msgOfDataBodyTitle\">\n                    <ng-template #msgOfDataBodyTitle>\n                      <nz-tag [nzColor]=\"'#2db7f5'\"> 输入参数： </nz-tag>\n                      <textarea [rows]=\"8\" nz-input>\n                                {{ selectedItem.CallPara }}\n                             </textarea\n                      >\n                    </ng-template>\n                  </nz-alert>\n                  <nz-alert [nzType]=\"'error'\" style=\"margin: 10px\" [nzMessage]=\"msgOfExceptionTitle\">\n                    <ng-template #msgOfExceptionTitle>\n                      <nz-tag [nzColor]=\"'#f50'\">异常信息：</nz-tag>\n                      <textarea [rows]=\"14\" nz-input>\n                               {{ selectedItem.ErrorMessage }}\n                             </textarea\n                      >\n                    </ng-template>\n                  </nz-alert>\n                  <nz-alert [nzType]=\"'success'\" style=\"margin: 10px\" [nzMessage]=\"msgOfLastAccessTime\">\n                    <ng-template #msgOfLastAccessTime>\n                      <nz-tag [nzColor]=\"'#108ee9'\">访问时间：</nz-tag>\n                      {{ selectedItem.CreationDate | date: 'yyyy-MM-dd HH:mm:ss' }}\n                    </ng-template>\n                  </nz-alert>\n                </div>\n              </nz-card>\n            </div>\n          </div>\n        </form>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n","import { RhSharedManageModule } from './../shared-manage/shared-manage.module';\nimport { NgModule } from '@angular/core';\n//import { RhUIXModule } from 'rh-uix';\nimport { RhSharedModule } from 'rh-base/shared';\nimport { RhCoreModule } from 'rh-base/core';\nimport { RhProductSysParaConfigComponent } from './product-sys-para-config/product-sys-para-config.component';\nimport { RhWarehouseBusinessConfComponent } from './warehouse-business-conf/warehouse-business-conf.component';\nimport { ListWarehousesSelectorComponent } from './warehouse-business-conf/snippets/list-warehouses-selector/list-warehouses-selector.component';\nimport { ListWarehouseCategoriesSelectorComponent } from './warehouse-business-conf/snippets/list-warehouse-categories-selector/list-warehouse-categories-selector.component';\nimport { ListWarehouseCategoriesTableComponent } from './warehouse-business-conf/snippets/list-warehouse-categories-selector/list-warehouse-categories-table/list-warehouse-categories-table.component';\nimport { ListWarehousesTableComponent } from './warehouse-business-conf/snippets/list-warehouses-selector/list-warehouses-table/list-warehouses-table.component';\nimport { RhToolKitService } from './tool-kit.service';\nimport { WebApiInvokesLogsComponent } from './exception-handle/web-api-invokes-logs/web-api-invokes-logs.component';\nimport { ESWebApiInvokesExceptionLogsComponent } from './exception-handle/esweb-api-invokes-exception-logs/esweb-api-invokes-exception-logs.component';\nimport { ESInvokesExceptionCompensagionComponent } from './exception-handle/esinvokes-exception-compensagion/esinvokes-exception-compensagion.component';\nimport { NzCodeEditorModule } from 'ng-zorro-antd/code-editor';\nimport { BusinessModeConfigComponent } from './business-mode-config/business-mode-config.component';\nimport { ListWarehouseConfSelectorComponent } from './warehouse-business-conf/snippets/list-warehouse-conf-selector/list-warehouse-conf-selector.component';\n\nconst COMPONNETS = [RhProductSysParaConfigComponent, RhWarehouseBusinessConfComponent];\n\nconst SNIPPETS = [\n  ListWarehousesSelectorComponent,\n  ListWarehouseCategoriesSelectorComponent,\n  ListWarehouseCategoriesTableComponent,\n  ListWarehousesTableComponent,\n  ListWarehouseConfSelectorComponent\n];\n\n@NgModule({\n  declarations: [\n    ...COMPONNETS,\n    ...SNIPPETS,\n    WebApiInvokesLogsComponent,\n    ESWebApiInvokesExceptionLogsComponent,\n    ESInvokesExceptionCompensagionComponent,\n    BusinessModeConfigComponent\n  ],\n  imports: [RhCoreModule, RhSharedModule, RhSharedManageModule, /* RhUIXModule, */ NzCodeEditorModule],\n  exports: [...COMPONNETS, ...SNIPPETS],\n  providers: [RhToolKitService]\n})\nexport class RhToolKitModule { }\n","export enum BusinessType {\n  /** 采购预收货 */\n  PurchaseAdvanceReceiptIn = 'PurchaseAdvanceReceiptIn',\n  /** 采购收货入库 */\n  PurchaseIn = 'PurchaseIn',\n  /** 采购退货出库 */\n  PurchaseReturnedOut = 'PurchaseReturnedOut',\n  /** 生产领料出库 */\n  ProductPickedMaterialOut = 'ProductPickedMaterialOut',\n  /** 生产退料入库 */\n  ProductReturnedMaterialIn = 'ProductReturnedMaterialIn',\n  /** 生产完工入库 */\n  ProductCompletedIn = 'ProductCompletedIn',\n  /** 销售出库 */\n  SaleOut = 'SaleOut',\n  /** 销售退货入库 */\n  SaleReturnedIn = 'SaleReturnedIn',\n  /** 其他入库 */\n  OtherIn = 'OtherIn',\n  /** 其他出库 */\n  OtherOut = 'OtherOut',\n  /** 仓库调拨 */\n  WarehouseTransfer = 'WarehouseTransfer',\n  /** 移库 */\n  StockLocationTransfer = 'StockLocationTransfer'\n}\n","import { Injectable } from '@angular/core';\nimport { RhApiUrlsService } from 'rh-base/core';\nimport { Observable } from 'rxjs';\nimport { DataResultT, OpResult, RhBaseDto, RhSelectableDto } from 'rh-base/model';\n\n@Injectable()\nexport class RhOtherBusinessService {\n  constructor(private apiUrls: RhApiUrlsService) { }\n\n  //#region 其他入库计划区域开始\n  /**\n   *  获取其他入库计划单头数据\n   */\n  GetOtherInPlanOrderDatas(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('OtherPlanBusinessApi', 'GetOtherInPlanOrderDatas', queryDto);\n  }\n\n  /**\n   *  创建其他入库计划单据头信息\n   */\n  CreateOtherInPlanMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OtherPlanBusinessApi', 'CreateOtherInPlanMasterOrder', input);\n  }\n\n  /**\n   *  修改其他入库入库计划单据头信息\n   */\n  UpdateOtherInPlanMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OtherPlanBusinessApi', 'UpdateOtherInPlanMasterOrder', input);\n  }\n\n  /**\n   *  提交至审核状态其他入库计划单据信息\n   */\n  SumbitAuditOtherInPlanOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OtherPlanBusinessApi', 'SumbitAuditOtherInPlanOrder', input);\n  }\n\n  /**\n   *  批量删除其他入库计划单据信息\n   */\n  RemoveOtherInPlanOrders(input: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OtherPlanBusinessApi', 'RemoveOtherInPlanOrders', input);\n  }\n\n  /**\n   *  根据计划单号获取其他入库入库计划单明细数据,包含统计汇总数量信息\n   */\n  GetOtherInPlanOrderDetailsDatasBy(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('OtherPlanBusinessApi', 'GetOtherInPlanOrderDetailsDatasBy', queryDto);\n  }\n\n  /**\n   *  删除其他入库计划单的明细信息\n   */\n  RemoveOtherInPlanOrderDetails(inputs: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OtherPlanBusinessApi', 'RemoveOtherInPlanOrderDetails', inputs);\n  }\n\n  /**\n   *  存储其他入库入库计划明细\n   */\n  StoreOtherInPlanOrderDetails(planOrder: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OtherPlanBusinessApi', 'StoreOtherInPlanOrderDetails', planOrder);\n  }\n\n  //#endregion 其他入库计划区域技术\n\n  //#region 其他出库计划区域开始\n  /**\n   *  获取其他出库计划单头数据\n   */\n  GetOtherOutPlanOrderDatas(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('OtherPlanBusinessApi', 'GetOtherOutPlanOrderDatas', queryDto);\n  }\n\n  /**\n   *  创建其他出库计划单据头信息\n   */\n  CreateOtherOutPlanMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OtherPlanBusinessApi', 'CreateOtherOutPlanMasterOrder', input);\n  }\n\n  /**\n   *  修改其他出库出库计划单据头信息\n   */\n  UpdateOtherOutPlanMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OtherPlanBusinessApi', 'UpdateOtherOutPlanMasterOrder', input);\n  }\n\n  /**\n   *  提交至审核状态其他出库计划单据信息\n   */\n  SumbitAuditOtherOutPlanOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OtherPlanBusinessApi', 'SumbitAuditOtherOutPlanOrder', input);\n  }\n\n  /**\n   *  批量删除其他出库计划单据信息\n   */\n  RemoveOtherOutPlanOrders(inputs: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OtherPlanBusinessApi', 'RemoveOtherOutPlanOrders', inputs);\n  }\n\n  /**\n   *  根据计划单号获取其他出库出库计划单明细数据,包含统计汇总数量信息\n   */\n  GetOtherOutPlanOrderDetailsDatasBy(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('OtherPlanBusinessApi', 'GetOtherOutPlanOrderDetailsDatasBy', queryDto);\n  }\n\n  /**\n   *  删除其他出库计划单的明细信息\n   */\n  RemoveOtherOutPlanOrderDetails(inputs: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OtherPlanBusinessApi', 'RemoveOtherOutPlanOrderDetails', inputs);\n  }\n\n  /**\n   *  存储其他出库出库计划明细\n   */\n  StoreOtherOutPlanOrderDetails(planOrder: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OtherPlanBusinessApi', 'StoreOtherOutPlanOrderDetails', planOrder);\n  }\n\n  //#endregion 其他出库计划区域结束\n\n  //#region 其他入库办理区域开始\n  /**\n     *  创建其他入库办理单据头信息\n     */\n  CreateOtherInTransactMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OtherTransactBusinessApi', 'CreateOtherInTransactMasterOrder', input);\n  }\n\n  /**\n     *  修改其他入库办理单据头信息\n     */\n  UpdateOtherInTransactMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OtherTransactBusinessApi', 'UpdateOtherInTransactMasterOrder', input);\n  }\n\n  /**\n     *  获取其他入库办理单头数据\n     */\n  GetOtherInTransactOrderViewDatas(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('OtherTransactBusinessApi', 'GetOtherInTransactOrderViewDatas', queryDto);\n  }\n\n  /**\n     *  提交至审核状态其他入库办理单据信息\n     */\n  SumbitAuditOtherInTransactOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OtherTransactBusinessApi', 'SumbitAuditOtherInTransactOrder', input);\n  }\n\n  /**\n     *  批量删除其他入库办理单据信息\n     */\n  RemoveOtherInTransactOrders(dtos: RhSelectableDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OtherTransactBusinessApi', 'RemoveOtherInTransactOrders', dtos);\n  }\n\n  /**\n     *  根据办理单号获取其他入库入库办理单明细数据,包含统计汇总数量信息\n     */\n  GetOtherInTransactOrderDetailsDatasBy(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('OtherTransactBusinessApi', 'GetOtherInTransactOrderDetailsDatasBy', queryDto);\n  }\n\n  /**\n     *  存储其他入库办理明细\n     */\n  StoreOtherInTransactOrderDetails(TransactOrder: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OtherTransactBusinessApi', 'StoreOtherInTransactOrderDetails', TransactOrder);\n  }\n\n  /**\n     *  删除其他入库办理单的明细信息\n     */\n  RemoveOtherInTransactOrderDetails(dtos: RhSelectableDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OtherTransactBusinessApi', 'RemoveOtherInTransactOrderDetails', dtos);\n  }\n  //#endregion 其他入库办理区域结束\n\n  //#region 其他出库办理区域开始\n  /**\n     *  创建其他出库办理单据头信息\n     */\n  CreateOtherOutTransactMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OtherTransactBusinessApi', 'CreateOtherOutTransactMasterOrder', input);\n  }\n\n  /**\n     *  修改其他出库出库办理单据头信息\n     */\n  UpdateOtherOutTransactMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OtherTransactBusinessApi', 'UpdateOtherOutTransactMasterOrder', input);\n  }\n\n  /**\n     *  获取其他出库办理单头数据\n     */\n  GetOtherOutTransactOrderViewDatas(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('OtherTransactBusinessApi', 'GetOtherOutTransactOrderViewDatas', queryDto);\n  }\n\n  /**\n     *  提交至审核状态其他出库办理单据信息\n     */\n  SumbitAuditOtherOutTransactOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OtherTransactBusinessApi', 'SumbitAuditOtherOutTransactOrder', input);\n  }\n\n  /**\n     *  批量删除其他出库办理单据信息\n     */\n  RemoveOtherOutTransactOrders(dtos: RhSelectableDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OtherTransactBusinessApi', 'RemoveOtherOutTransactOrders', dtos);\n  }\n\n  /**\n     *  根据办理单号获取其他出库出库办理单明细数据,包含统计汇总数量信息\n     */\n  GetOtherOutTransactOrderDetailsDatasBy(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('OtherTransactBusinessApi', 'GetOtherOutTransactOrderDetailsDatasBy', queryDto);\n  }\n\n  /**\n     *  存储其他出库出库办理明细\n     */\n  StoreOtherOutTransactOrderDetails(TransactOrder: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OtherTransactBusinessApi', 'StoreOtherOutTransactOrderDetails', TransactOrder);\n  }\n\n  /**\n    *  删除其他出库办理单的明细信息\n    */\n  RemoveOtherOutTransactOrderDetails(dtos: RhSelectableDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('OtherTransactBusinessApi', 'RemoveOtherOutTransactOrderDetails', dtos);\n  }\n  //#endregion 其他出库办理区域结束\n\n}\n","/** 库区配置模型 */\nexport class WarehouseAreaConfigQueryDto {\n  constructor(\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 库区代码 */\n    public WarehouseAreaCode: string,\n    /** 库区名称 */\n    public WarehouseAreaName: string,\n    /** 库区类别 */\n    public WarehouseAreaCategory: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): WarehouseAreaConfigQueryDto {\n    return new WarehouseAreaConfigQueryDto(null, null, null, null, null, null, null);\n  }\n}\n\n/** 库区配置模型 */\nexport class WarehouseAreaConfigDto {\n  constructor(\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 库区代码 */\n    public WarehouseAreaCode: string,\n    /** 库区名称 */\n    public WarehouseAreaName: string,\n    /** Erp关联代码 */\n    public WarehouseAreaErpCode: string,\n    /** Erp关联名称 */\n    public WarehouseAreaErpName: string,\n    /** 库区类别 */\n    public WarehouseAreaCategory: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 负责人ID */\n    public ChargeUserCode: string,\n    /** 负责人名称 */\n    public ChargeUserName: string,\n    /** 备注 */\n    public Remark: string,\n    /** */\n    public SField1: string,\n    /** */\n    public SField2: string,\n    /** */\n    public SField3: string,\n    /** */\n    public FField1: number,\n    /** */\n    public FField2: number,\n    /** */\n    public FField3: number,\n    /** */\n    public DField1: Date,\n    /** */\n    public DField2: Date,\n    /** */\n    public DField3: Date,\n    /** */\n    public DField4: Date,\n    /** 上次修改时间 */\n    public LastModificationTime: Date,\n    /** 上次修改人ID */\n    public LastModifierUserId: number,\n    /** 上次修改人 */\n    public LastModifierUserName: string,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {}\n  static create(): WarehouseAreaConfigDto {\n    return new WarehouseAreaConfigDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 仓库货架模型 */\nexport class WarehouseShelfConfigQueryDto {\n  constructor(\n    /** 货架代码 */\n    public WarehouseShelfCode: string,\n    /** 货架名称 */\n    public WarehouseShelfName: string,\n    /** 库区代码 */\n    public WarehouseAreaCode: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): WarehouseShelfConfigQueryDto {\n    return new WarehouseShelfConfigQueryDto(null, null, null, null, null, null, null, null);\n  }\n}\n\n/** 仓库货架模型 */\nexport class WarehouseShelfConfigDto {\n  constructor(\n    /** 货架代码 */\n    public WarehouseShelfCode: string,\n    /** 货架名称 */\n    public WarehouseShelfName: string,\n    /** Erp关联代码 */\n    public WarehouseShelfErpCode: string,\n    /** Erp关联名称 */\n    public WarehouseShelfErpName: string,\n    /** 库区代码 */\n    public WarehouseAreaCode: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 称重 */\n    public Bearing: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 备注 */\n    public Remark: string,\n    /** */\n    public SField1: string,\n    /** */\n    public SField2: string,\n    /** */\n    public SField3: string,\n    /** */\n    public FField1: number,\n    /** */\n    public FField2: number,\n    /** */\n    public FField3: number,\n    /** */\n    public DField1: Date,\n    /** */\n    public DField2: Date,\n    /** */\n    public DField3: Date,\n    /** */\n    public DField4: Date,\n    /** 上次修改时间 */\n    public LastModificationTime: Date,\n    /** 上次修改人ID */\n    public LastModifierUserId: number,\n    /** 上次修改人 */\n    public LastModifierUserName: string,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {}\n  static create(): WarehouseShelfConfigDto {\n    return new WarehouseShelfConfigDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 仓库库存控制参考查询模型 */\nexport class WarehouseControlParameterQueryDto {\n  constructor(\n    /** 物料编码 */\n    public MaterialCode: string,\n    /** 仓库编码 */\n    public WarehouseCode: string\n  ) {}\n  static create(): WarehouseControlParameterQueryDto {\n    return new WarehouseControlParameterQueryDto(null, null);\n  }\n}\n\n/** 仓库控制参数 */\nexport class WarehouseMaterialControlParameter {\n  constructor(\n    /** 仓库编码 */\n    public WarehouseCode: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 工厂编码 */\n    public FactoryCode: string,\n    /** 是否启用批次号管理 */\n    public IsEnableLotNum: boolean,\n    /** 是否启用序列号管理 */\n    public IsEnableSN: boolean,\n    /** 是否允许负库存 */\n    public IsEnableNegativeInventory: boolean,\n    /** 是否启用超额入库 */\n    public IsEnableExcessInWarehouse: boolean,\n    /** 是否启用库区 */\n    public IsEnableWarehouseArea: boolean,\n    /** 是否启用货架 */\n    public IsEnableWarehouseShelf: boolean,\n    /** 是否启用库位 */\n    public IsEnableStorageLocation: boolean,\n    /** 是否启用有效期管理 */\n    public IsEnableExpirationDate: boolean,\n    /** 是否启用严格关联 */\n    public IsStrictCorrelation: boolean\n  ) {}\n  static create(): WarehouseMaterialControlParameter {\n    return new WarehouseMaterialControlParameter(null, null, null, null, null, null, null, null, null, null, null, null);\n  }\n}\n\n/** 物料汇总库存查询模型 */\nexport class MaterialSumerizeStockQtyQueryDto {\n  constructor(\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 库区代码 */\n    public WarehouseAreaCode: string,\n    /** 货架代码 */\n    public WarehouseShelfCode: string,\n    /** 库位代码 */\n    public StorageLocationCode: string,\n    /** 批号 */\n    public LotNum: string,\n    /** 条码 */\n    public SN: string\n  ) {}\n  static create(): MaterialSumerizeStockQtyQueryDto {\n    return new MaterialSumerizeStockQtyQueryDto(null, null, null, null, null, null, null);\n  }\n}\n\n/** 物料汇总库存模型 */\nexport class MaterialSumerizeStockQty {\n  constructor(\n    /** 汇总库存数量 */\n    public TotalInventoryQty: number,\n    /** 汇总冻结数量 */\n    public TotalFreezeQty: number,\n    /** 汇总可用数量 */\n    public TotalAvailableQty: number\n  ) {}\n  static create(): MaterialSumerizeStockQty {\n    return new MaterialSumerizeStockQty(null, null, null);\n  }\n}\n\n/** 业务单据统计表模型 */\nexport class BusinessOrderDataStatisticsDto {\n  constructor(\n    /** 单据编码 */\n    public OrderCode: string,\n    /** 单号行号 */\n    public OrderRowNum: string,\n    /** 业务类型代码 */\n    public BusinessTypeCode: string,\n    /** 业务类型名称 */\n    public BusinessTypeName: string,\n    /** 关联单号编码 */\n    public RelativeOrderCode: string,\n    /** 关联单号行号 */\n    public RelativeOrderRowNum: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 单据数量 */\n    public OrderQty: number,\n    /** 已计划数量 */\n    public PlannedQty: number,\n    /** 反向已计划数量 */\n    public ReversePlannedQty: number,\n    /** 已退会数量 */\n    public ReturnedQty: number,\n    /** 已完成数量 */\n    public CompletedQty: number,\n    /** 辅助计量单位 */\n    public MeasureAuxUnit: string,\n    /** 辅助单位数量 */\n    public AuxOrderQty: number,\n    /** 辅计划数量 */\n    public AuxPlannedQty: number,\n    /** 反向辅助已计划数量 */\n    public ReverseAuxPlannedQty: number,\n    /** 辅退回数量 */\n    public AuxReturnedQty: number,\n    /** 辅以完成数量 */\n    public AuxCompletedQty: number,\n    /** 供应商编码 */\n    public SupplierCode: string,\n    /** 供应商名称 */\n    public SupplierName: string,\n    /** 客户编码 */\n    public CustomerCode: string,\n    /** 客户名称 */\n    public CustomerName: string,\n    /** 部门编码 */\n    public DepartmentCode: string,\n    /** 部门名称 */\n    public DepartmentName: string,\n    /** 备注 */\n    public Remark: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {}\n  static create(): BusinessOrderDataStatisticsDto {\n    return new BusinessOrderDataStatisticsDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n","import { RhInventoryControlManageService } from './../shared-manage/inventory-control/inventory-control-manage.service';\nimport { Injectable } from '@angular/core';\nimport { UntypedFormGroup, Validators } from '@angular/forms';\nimport { cloneDeep } from 'lodash';\nimport { RhWmsSysConfigService, RhApiUrlsService, MsgHelper } from 'rh-base/core';\nimport {\n  RhDynamicFormFieldDto,\n  RhDynamicCustomizeControlConfigDto,\n  RhSelectItem,\n  RhTableButtonInfoDto,\n  RhSafeAny,\n  RhSelectableDto,\n  RhBaseDto,\n  StorageLocationConfigQueryDto,\n  DataResultT,\n  StorageLocationConfigDto\n} from 'rh-base/model';\nimport { WarehouseConfigDto, WarehouseConfigQueryDto } from 'rh-base/shared';\nimport { Observable } from 'rxjs';\nimport {\n  BusinessOrderDataStatisticsDto,\n  MaterialSumerizeStockQty,\n  MaterialSumerizeStockQtyQueryDto,\n  WarehouseAreaConfigDto,\n  WarehouseAreaConfigQueryDto,\n  WarehouseControlParameterQueryDto,\n  WarehouseMaterialControlParameter,\n  WarehouseShelfConfigDto,\n  WarehouseShelfConfigQueryDto\n} from './business-manage-model';\n\n/** 库存操作类型 */\ntype InventoryHandle = 'In' | 'Out' | 'allocate' | 'locationMove';\n@Injectable()\nexport class RhBusinessManageService {\n  constructor(\n    private apiUrls: RhApiUrlsService,\n    private wmsSysConfigSer: RhWmsSysConfigService,\n    private inventoryControlSer: RhInventoryControlManageService\n  ) {}\n\n  materialCategorys: RhSelectItem[] = [];\n  materialAttributes: RhSelectItem[] = [];\n  materialUnits: RhSelectItem[] = [];\n  expiryUnits: RhSelectItem[] = [];\n\n  get IsEnableInPlan() {\n    return this.wmsSysConfigSer.getIsEnableInPlan();\n  }\n\n  get IsEnableOutPlan() {\n    return this.wmsSysConfigSer.getIsEnableOutPlan();\n  }\n\n  get getIsEnableAllocateTransferPlan() {\n    return this.wmsSysConfigSer.getIsEnableAllocateTransferPlan();\n  }\n\n  get getIsEnableLocationMovePlan() {\n    return this.wmsSysConfigSer.getIsEnableLocationMovePlan();\n  }\n\n  get IsEnableWarehouseArea() {\n    return this.wmsSysConfigSer.getIsEnableWarehouseArea();\n  }\n\n  get IsEnableWarehouseShelf() {\n    return this.wmsSysConfigSer.getIsEnableWarehouseShelf();\n  }\n\n  get IsEnableMaterialInInspect() {\n    return this.wmsSysConfigSer.getIsEnableMaterialInInspect();\n  }\n\n  get IsEnableProductInInspect() {\n    return this.wmsSysConfigSer.getIsEnableProductInInspect();\n  }\n\n  get IsEnableExcessInWarehouse() {\n    return this.wmsSysConfigSer.getIsEnableExcessInWarehouse();\n  }\n\n  get IsEnableNegativeInventory() {\n    return this.wmsSysConfigSer.getIsEnableNegativeInventory();\n  }\n\n  get IsEnableLotNum() {\n    return this.wmsSysConfigSer.getIsEnableLotNum();\n  }\n\n  get IsEnableSN() {\n    return this.wmsSysConfigSer.getIsEnableSN();\n  }\n\n  get IsEnableExpirationDate() {\n    return this.wmsSysConfigSer.getIsEnableExpirationDate();\n  }\n\n  get isEnableWarehouseAreaAndWarehouseShelf() {\n    // return this.wmsSysConfigSer.getIsEnableWarehouseAreaAndWarehouseShelf();\n    return true;\n  }\n\n  get IsEnableStorageLocation() {\n    return this.wmsSysConfigSer.getIsEnableStorageLocation();\n  }\n\n  get IsStrictCorrelation() {\n    return this.wmsSysConfigSer.getIsStrictCorrelation();\n  }\n\n  //#region 动态组件显隐性控制区域开始\n  initOutWarehouseVisibleSetting(para?: WarehouseMaterialControlParameter) {\n    let that: this | WarehouseMaterialControlParameter = this;\n    // 是否传入仓库控制配置参数\n    if (para) {\n      that = this.transformWarehouseMaterialControlParameter(para);\n    }\n    return {\n      OutWarehouseAreaCode: that.IsEnableWarehouseArea,\n      OutWarehouseAreaName: that.IsEnableWarehouseArea,\n      OutWarehouseShelfCode: that.IsEnableWarehouseShelf,\n      OutWarehouseShelfName: that.IsEnableWarehouseShelf,\n      OutStorageLocationCode: that.IsEnableStorageLocation,\n      OutStorageLocationName: that.IsEnableStorageLocation\n    };\n  }\n\n  initExtendedVisibleSetting() {\n    return this.getDynamicVisibleSetting();\n  }\n\n  initInWarehouseVisibleSetting(para?: WarehouseMaterialControlParameter) {\n    let that: this | WarehouseMaterialControlParameter = this;\n    // 是否传入仓库控制配置参数\n    if (para) {\n      that = this.transformWarehouseMaterialControlParameter(para);\n    }\n    return {\n      InWarehouseAreaCode: that.IsEnableWarehouseArea,\n      InWarehouseAreaName: that.IsEnableWarehouseArea,\n      InWarehouseShelfCode: that.IsEnableWarehouseShelf,\n      InWarehouseShelfName: that.IsEnableWarehouseShelf,\n      InStorageLocationCode: that.IsEnableStorageLocation,\n      InStorageLocationName: that.IsEnableStorageLocation\n    };\n  }\n\n  /** 是否显示采购入库质检人相关字段 */\n  getMaterialInspectorVisibleSetting() {\n    return { Inspector: this.IsEnableMaterialInInspect, InspectorId: this.IsEnableMaterialInInspect };\n  }\n\n  /** 是否显示成品入库质检人相关字段 */\n  getProductInspectorVisibleSetting() {\n    return { Inspector: this.IsEnableProductInInspect, InspectorId: this.IsEnableProductInInspect };\n  }\n\n  /** 动态获取字段显隐藏设置 */\n  getDynamicVisibleSetting(fields: string[] = ['LotNum', 'SN', 'ExpiryDays']) {\n    const temp = {};\n    if (fields.includes('LotNum')) {\n      Object.assign(temp, { LotNum: this.IsEnableLotNum });\n    }\n    if (fields.includes('SN')) {\n      Object.assign(temp, { SN: this.IsEnableSN });\n    }\n    if (fields.includes('ExpiryDays')) {\n      Object.assign(temp, {\n        ProductionDate: this.IsEnableExpirationDate,\n        ExpiryDays: this.IsEnableExpirationDate,\n        ExpiryUnit: this.IsEnableExpirationDate,\n        ExpirationDate: this.IsEnableExpirationDate\n      });\n    }\n    return temp;\n  }\n\n  /** 是否显示计划信息相关字段（是否启用了计划） */\n  getPlanOrderVisibleSetting(type: InventoryHandle) {\n    let isEnablePlan = false;\n    if (\n      (type === 'In' && this.IsEnableInPlan) ||\n      (type === 'Out' && this.IsEnableOutPlan) ||\n      (type === 'allocate' && this.getIsEnableAllocateTransferPlan) ||\n      (type === 'locationMove' && this.getIsEnableLocationMovePlan)\n    ) {\n      isEnablePlan = true;\n    }\n    return {\n      PlanOrderId: isEnablePlan,\n      PlanQty: isEnablePlan,\n      SourcePlannedQty: isEnablePlan,\n      SourceReversePlanedQty: isEnablePlan,\n      PlanTransactedQty: isEnablePlan\n    };\n  }\n  //#endregion 动态组件显隐性控制区域结束\n\n  //#region 锁库验证方法区域开始\n  /** 根据锁库情况，控制办理操作 */\n  async controlTransactOperation(enableFun: () => void, buttonList: RhTableButtonInfoDto[], index: number) {\n    buttonList[index].loading = true;\n    buttonList = [...buttonList];\n    const isEnable = await this.inventoryControlSer.enableInventoryOperationAfterFactoryLocked().toPromise();\n    buttonList[index].loading = false;\n    buttonList = [...buttonList];\n    if (isEnable) {\n      enableFun();\n    }\n  }\n\n  /** 根据锁库情况，控制表单提交操作 */\n  async controlSubmitFormOperation(dtos: RhSafeAny[], cb?: () => void) {\n    dtos.forEach((dto) => {\n      if (dto.OutWarehouseCode) dto.WarehouseCode = dto.OutWarehouseCode;\n      if (dto.OutStorageLocationCode) dto.StorageLocationCode = dto.OutStorageLocationCode;\n    });\n    const isEnable = await this.inventoryControlSer.enableInventoryOperation(dtos).toPromise();\n    if (cb) cb();\n    return isEnable;\n  }\n  //#endregion 锁库验证方法区域结束\n\n  //#region 业务通用方法区域开始\n  /** 业务仓库selector赋值对象配置 */\n  setWarehouseFieldSetting = (setting: RhDynamicFormFieldDto, type: InventoryHandle) => {\n    if (!setting.config) {\n      setting.config = RhDynamicCustomizeControlConfigDto.create();\n    }\n    (setting.config as RhDynamicCustomizeControlConfigDto).relatedFieldDatas = [\n      { sourceName: 'WarehouseCode', mappedName: `${type}WarehouseCode` }\n    ];\n    (setting.config as RhDynamicCustomizeControlConfigDto).relatedFieldDatas = [\n      { sourceName: 'WarehouseCode', mappedName: `${type}WarehouseCode` },\n      { sourceName: 'WarehouseName', mappedName: `${type}WarehouseName` }\n    ];\n    return setting;\n  };\n\n  /** 根据审核是否通过，设置审核信息必填验证器 */\n  isPassChange(isPass: boolean, formgroup: UntypedFormGroup) {\n    if (!isPass) {\n      formgroup.get('AuditMessage').setValidators(Validators.required);\n    } else {\n      formgroup.get('AuditMessage').clearValidators();\n    }\n    formgroup.get('AuditMessage').updateValueAndValidity();\n  }\n\n  initCheckFields(para?: WarehouseMaterialControlParameter) {\n    let that: this | WarehouseMaterialControlParameter = this;\n    // 是否传入仓库控制配置参数\n    if (para) {\n      that = this.transformWarehouseMaterialControlParameter(para);\n    }\n    const checkFields = ['MaterialCode'];\n    const checkFieldsDisplayName = ['物料代码'];\n    if (that.IsEnableExpirationDate) {\n      checkFields.push('ProductionDate');\n      checkFieldsDisplayName.push('生产日期');\n    }\n    if (that.IsEnableSN) {\n      checkFields.push('SN');\n      checkFieldsDisplayName.push('条码');\n    }\n    if (that.IsEnableLotNum) {\n      checkFields.push('LotNum');\n      checkFieldsDisplayName.push('批次号');\n    }\n    return { checkFields, checkFieldsDisplayName };\n  }\n\n  /**\n   * @description 办理明细数据保存验证\n   * @param details 明细数据\n   * @param type 出入库类型\n   * @param isReturn 是否为退货退料业务，退货退料业务不存在字段SourceTransactedQty源单已办理数量\n   * @param isHasSource 是否有源单，其他出入库业务无源单\n   *  */\n  async checkStoreDatas(details: RhSelectableDto[], type: InventoryHandle, isReturn = false, isHasSource = true) {\n    if (!details?.length) {\n      return MsgHelper.ShowWarningMessage('没有可以存储的数据！');\n    }\n    // 获取仓库+物料配置\n    const controlPara = await this.getWarehouseMaterialControlParameter({\n      WarehouseCode: details[0][`${type == 'In' ? 'In' : 'Out'}WarehouseCode`],\n      MaterialCode: details[0]['MaterialCode']\n    });\n    const para = this.transformWarehouseMaterialControlParameter(controlPara || WarehouseMaterialControlParameter.create());\n    // 必须填写办理数量\n    if (details.some((f) => !f.TransactQty)) {\n      return MsgHelper.ShowWarningMessage('办理数量不能为0或空！');\n    }\n\n    // 必填判断\n    if (para.IsEnableSN && details.some((f) => !f.SN)) {\n      return MsgHelper.ShowWarningMessage('条码为必填项！');\n    }\n    if (para.IsEnableLotNum && details.some((f) => !f.LotNum)) {\n      return MsgHelper.ShowWarningMessage('批次号为必填项！');\n    }\n    if (para.IsEnableExpirationDate && details.some((f) => !f.ProductionDate)) {\n      return MsgHelper.ShowWarningMessage('生产日期为必填项！');\n    }\n    if (para.IsEnableWarehouseArea && details.some((f) => !f[`${type == 'In' ? 'In' : 'Out'}WarehouseAreaCode`])) {\n      return MsgHelper.ShowWarningMessage('库区代码为必填项！');\n    }\n    if (para.IsEnableWarehouseShelf && details.some((f) => !f[`${type == 'In' ? 'In' : 'Out'}WarehouseShelfCode`])) {\n      return MsgHelper.ShowWarningMessage('货架代码为必填项！');\n    }\n    if (para.IsEnableStorageLocation && details.some((f) => !f[`${type == 'In' ? 'In' : 'Out'}StorageLocationCode`])) {\n      return MsgHelper.ShowWarningMessage('库位代码为必填项！');\n    }\n\n    // 数量限制\n    if (type === 'Out') {\n      // 出库办理\n      // 负库存判断，未启用负库存&&办理数量>库存可用数量，则报警告\n      if (!para.IsEnableNegativeInventory && details.some((f) => f.TransactQty > f.AvailableQty)) {\n        return MsgHelper.ShowWarningMessage('未启用负库存！办理数量不能大于库存可用数量！');\n      }\n      // 计划/源单数量限制判断\n      if (this.IsEnableOutPlan) {\n        // 启用计划，办理数量<=(计划数量-计划已办理数量)\n        if (details.some((f) => f.TransactQty > f.PlanQty - (f.PlanTransactedQty || 0))) {\n          return MsgHelper.ShowWarningMessage('办理数量不能大于计划数量-计划已办理数量！');\n        }\n      } else {\n        //未启用计划，办理数量<=(源单数量-源单已办理数量)\n        if (!isReturn && isHasSource && details.some((f) => f.TransactQty > f.SourceOrderQty - f.SourceTransactedQty)) {\n          return MsgHelper.ShowWarningMessage('办理数量不能大于源单数量-源单已办理数量！');\n        }\n      }\n    } else if (type === 'In') {\n      // 超额入库判断\n      if (this.IsEnableInPlan) {\n        // 已在计划创建中，经过了超额判断\n        if (details.some((f) => f.TransactQty > f.PlanQty - (f.PlanTransactedQty || 0))) {\n          return MsgHelper.ShowWarningMessage('办理数量不能大于计划数量-计划已办理数量！');\n        }\n      } else {\n        if (\n          !isReturn &&\n          isHasSource &&\n          !para.IsEnableExcessInWarehouse &&\n          details.some((f) => f.TransactQty > f.SourceOrderQty - f.SourceTransactedQty)\n        ) {\n          return MsgHelper.ShowWarningMessage('未启用超额入库！办理数量不能大于源单数量-源单已办理数量！');\n        }\n      }\n    } else if (type == 'allocate') {\n      // 负库存判断，未启用负库存&&办理数量>库存可用数量，则报警告\n      if (!para.IsEnableNegativeInventory && details.some((f) => f.TransactQty > f.AvailableQty)) {\n        return MsgHelper.ShowWarningMessage('未启用负库存！办理数量不能大于库存可用数量！');\n      }\n      // 计划/源单数量限制判断\n      if (this.getIsEnableAllocateTransferPlan) {\n        // 启用计划，办理数量<=(计划数量-计划已办理数量)\n        if (details.some((f) => f.TransactQty > f.PlanQty - (f.PlanTransactedQty || 0))) {\n          return MsgHelper.ShowWarningMessage('办理数量不能大于计划数量-计划已办理数量！');\n        }\n      }\n    } else if (type == 'locationMove') {\n      // 负库存判断，未启用负库存&&办理数量>库存可用数量，则报警告\n      if (!para.IsEnableNegativeInventory && details.some((f) => f.TransactQty > f.AvailableQty)) {\n        return MsgHelper.ShowWarningMessage('未启用负库存！办理数量不能大于库存可用数量！');\n      }\n      // 计划/源单数量限制判断\n      if (this.getIsEnableAllocateTransferPlan) {\n        // 启用计划，办理数量<=(计划数量-计划已办理数量)\n        if (details.some((f) => f.TransactQty > f.PlanQty - (f.PlanTransactedQty || 0))) {\n          return MsgHelper.ShowWarningMessage('办理数量不能大于计划数量-计划已办理数量！');\n        }\n      }\n    }\n\n    // 退货退料限制\n    if (isReturn && isHasSource) {\n      if (details.some((f) => f.TransactQty > f.SourceCompletedQty - f.SourceReturnedQty)) {\n        return MsgHelper.ShowWarningMessage('办理数量不能大于源单已完成数量-源单已退货数量！');\n      }\n    }\n\n    // 重复限制\n    // const { checkFields, checkFieldsDisplayName } = this.initCheckFields(para);\n    const checkFields = ['MaterialCode', 'ProductionDate', 'SN', 'LotNum'];\n    const checkFieldsDisplayName = ['物料代码', '生产日期', '条码', '批次号'];\n    const tempDetails = cloneDeep(details);\n    const flag = details.find((ele, index) => {\n      tempDetails.splice(0, 1);\n      return checkFields.every((field) => {\n        let targetIndex: number;\n        if (field === 'ProductionDate') {\n          targetIndex = tempDetails.findIndex((tempEle) => new Date(ele[field]).getDate() === new Date(tempEle[field]).getDate());\n        } else {\n          targetIndex = tempDetails.findIndex((tempEle) => ele[field] === tempEle[field]);\n        }\n        if (targetIndex !== -1) return true;\n        else return false;\n      });\n    });\n    if (flag) {\n      return MsgHelper.ShowWarningMessage(`${checkFieldsDisplayName.join('，')}一致的数据不能重复添加！`);\n    }\n\n    return true;\n  }\n\n  /** 处理仓库+物料特殊配置，没有配置值则取全局配置，没有全局配置则设置为false */\n  transformWarehouseMaterialControlParameter(para: WarehouseMaterialControlParameter) {\n    Object.entries(para).forEach(([key, value]) => {\n      if (value === null || value === undefined) {\n        para[key] = this[key] || false;\n      }\n    });\n    return para;\n  }\n\n  /** 获取仓库+物料特殊配置 */\n  getWarehouseMaterialControlParameter(queryDto: RhBaseDto): Promise<WarehouseMaterialControlParameter> {\n    MsgHelper.ShowGlobalLoadingMessage('正在获取仓库控制配置参数...');\n    return new Promise((resolve, reject) => {\n      this.GetWarehouseMaterialControlParameter(queryDto as WarehouseControlParameterQueryDto).subscribe(\n        (result) => {\n          if (result.Success) {\n            resolve(result.Attach);\n          } else {\n            resolve(null);\n          }\n          MsgHelper.CloseGlobalLoadingMessage();\n        },\n        (err) => {\n          reject(err);\n          MsgHelper.CloseGlobalLoadingMessage();\n        }\n      );\n    });\n  }\n\n  /** 获取仓库列表 */\n  getWarehouseDataset(queryDto: RhBaseDto): Promise<WarehouseConfigDto[]> {\n    return new Promise((resolve, reject) => {\n      this.GetWarehouseConfigDatas({ ...queryDto, Mode: 8 } as WarehouseConfigQueryDto).subscribe(\n        (result) => {\n          if (result.Success) {\n            resolve(result.Attach);\n          } else {\n            resolve(null);\n          }\n        },\n        (err) => reject(err)\n      );\n    });\n  }\n\n  /** 获取库区列表 */\n  getWarehouseAreaDataset(queryDto: RhBaseDto): Promise<WarehouseAreaConfigDto[]> {\n    return new Promise((resolve, reject) => {\n      this.GetWarehouseAreaConfigDatas({ ...queryDto, Mode: 8 } as WarehouseAreaConfigQueryDto).subscribe(\n        (result) => {\n          if (result.Success) {\n            resolve(result.Attach);\n          } else {\n            resolve(null);\n          }\n        },\n        (err) => reject(err)\n      );\n    });\n  }\n\n  /** 获取货架列表 */\n  getWarehouseShelfDataset(queryDto: RhBaseDto): Promise<WarehouseShelfConfigDto[]> {\n    return new Promise((resolve, reject) => {\n      this.GetWarehouseShelfConfigDatas({ ...queryDto, Mode: 8 } as WarehouseShelfConfigQueryDto).subscribe(\n        (result) => {\n          if (result.Success) {\n            resolve(result.Attach);\n          } else {\n            resolve(null);\n          }\n        },\n        (err) => reject(err)\n      );\n    });\n  }\n\n  /** 获取库位列表 */\n  getStorageLocationDataset(queryDto: RhBaseDto): Promise<StorageLocationConfigDto[]> {\n    return new Promise((resolve, reject) => {\n      this.GetStorageLocationConfigDatas({ ...queryDto, Mode: 8 } as StorageLocationConfigQueryDto).subscribe(\n        (result) => {\n          if (result.Success) {\n            resolve(result.Attach);\n          } else {\n            resolve(null);\n          }\n        },\n        (err) => reject(err)\n      );\n    });\n  }\n\n  /** 获取库存数据 */\n  getMaterialSumerizeStockQtyBy(data: RhSelectableDto, para: WarehouseMaterialControlParameter, type: InventoryHandle) {\n    const queryDto = {\n      MaterialCode: data.MaterialCode,\n      WarehouseCode: data[`${type}WarehouseCode`],\n      WarehouseAreaCode: para.IsEnableWarehouseArea ? data[`${type}WarehouseAreaCode`] : null,\n      WarehouseShelfCode: para.IsEnableWarehouseShelf ? data[`${type}WarehouseShelfCode`] : null,\n      StorageLocationCode: para.IsEnableStorageLocation ? data[`${type}StorageLocationCode`] : null\n    };\n    this.GetMaterialSumerizeStockQtyBy(queryDto as MaterialSumerizeStockQtyQueryDto).subscribe((result) => {\n      if (result.Success) {\n        const inventoryData = result.Attach;\n        data.InventoryQty = inventoryData.TotalInventoryQty;\n        data.AvailableQty = inventoryData.TotalAvailableQty;\n        data.FreezeQty = inventoryData.TotalFreezeQty;\n      } else {\n        data.InventoryQty = data.AvailableQty = data.FreezeQty = 0;\n        MsgHelper.ShowWarningMessage(`获取库存数据信息失败！${result.Message}`);\n      }\n    });\n  }\n\n  /** 获取库区显示列表，行编辑应用 */\n  getWarehouseAreaDatasetDisplay(\n    data: RhSelectableDto,\n    para: WarehouseMaterialControlParameter,\n    warehouseAreaDataset: RhSelectableDto[],\n    type: InventoryHandle\n  ): RhSelectableDto[] {\n    if (para.IsStrictCorrelation) {\n      if (data[`${type}WarehouseCode`]) {\n        return warehouseAreaDataset.filter((ele) => ele.WarehouseCode === data[`${type}WarehouseCode`]);\n      } else {\n        return [];\n      }\n    } else {\n      return warehouseAreaDataset;\n    }\n  }\n\n  /** 获取货架显示列表，行编辑应用 */\n  getWarehouseShelfDatasetDisplay(\n    data: RhSelectableDto,\n    para: WarehouseMaterialControlParameter,\n    warehouseShelfDataset: RhSelectableDto[],\n    type: InventoryHandle\n  ): RhSelectableDto[] {\n    if (para.IsStrictCorrelation) {\n      if (para.IsEnableWarehouseArea) {\n        if (data[`${type}WarehouseAreaCode`]) {\n          return warehouseShelfDataset.filter((ele) => ele.WarehouseAreaCode === data[`${type}WarehouseAreaCode`]);\n        } else {\n          return [];\n        }\n      } else {\n        return warehouseShelfDataset;\n      }\n    } else {\n      return warehouseShelfDataset;\n    }\n  }\n\n  /** 获取库位显示列表，行编辑应用 */\n  getStorageLocationDatasetDisplay(\n    data: RhSelectableDto,\n    para: WarehouseMaterialControlParameter,\n    storageLocationDataset: RhSelectableDto[],\n    type: InventoryHandle\n  ): RhSelectableDto[] {\n    if (para.IsStrictCorrelation) {\n      let temp = [...storageLocationDataset];\n      if (para.IsEnableWarehouseArea) {\n        if (data[`${type}WarehouseAreaCode`]) {\n          temp = temp.filter((ele) => ele.WarehouseAreaCode === data[`${type}WarehouseAreaCode`]);\n        } else {\n          return [];\n        }\n      }\n      if (para.IsEnableWarehouseShelf) {\n        if (data[`${type}WarehouseShelfCode`]) {\n          temp = temp.filter((ele) => ele.WarehouseShelfCode === data[`${type}WarehouseShelfCode`]);\n        } else {\n          return [];\n        }\n      }\n      return temp;\n    } else {\n      return storageLocationDataset;\n    }\n  }\n\n  /** 转换源单的统计数据信息至选中数据 */\n  convertSourceOrderStatisticsDatasToSelectedDatas(\n    sourceOrderId: string,\n    businessType: string,\n    selectedDatas: RhSelectableDto[]\n  ): Promise<boolean> {\n    return new Promise((resolve, reject) => {\n      this.GetSourceOrderStatisticsDatasBy(sourceOrderId).subscribe(\n        (result) => {\n          if (result.Success && result.Attach?.length) {\n            const statisticsDatas = result.Attach.filter((ele) => ele.BusinessTypeCode === businessType);\n            selectedDatas.forEach((data) => {\n              const targetSourceOrder = statisticsDatas.find((ele) => {\n                if (ele.MaterialSpecification || data.MaterialSpecification) {\n                  return ele.MaterialCode === data.MaterialCode && ele.MaterialSpecification === data.MaterialSpecification;\n                } else {\n                  return ele.MaterialCode === data.MaterialCode;\n                }\n              });\n              if (targetSourceOrder) {\n                data.SourceOrderId = targetSourceOrder.OrderCode;\n                data.SourceOrderRowNum = targetSourceOrder.OrderRowNum;\n                data.SourceOrderQty = targetSourceOrder.OrderQty;\n                data.SourcePlannedQty = targetSourceOrder.PlannedQty;\n                data.SourceReversePlannedQty = targetSourceOrder.ReversePlannedQty;\n                // 退料退货SourceCompletedQty，另外SourceTransactedQty，都是源单已完成数量\n                data.SourceCompletedQty = data.SourceTransactedQty = targetSourceOrder.CompletedQty;\n                data.SourceReturnedQty = targetSourceOrder.ReturnedQty;\n              } else {\n                data.SourceOrderId = null;\n                data.SourceOrderRowNum = null;\n                data.SourceOrderQty = 0;\n                data.SourcePlannedQty = 0;\n                data.SourceReversePlannedQty = 0;\n                data.SourceCompletedQty = data.SourceTransactedQty = 0;\n                data.SourceReturnedQty = 0;\n              }\n            });\n            resolve(true);\n          } else {\n            // MsgHelper.ShowWarningMessage(`找不到对应源单的统计数据！${result.Message}`);\n            resolve(false);\n          }\n        },\n        (error) => {\n          reject(error);\n        }\n      );\n    });\n  }\n  //#endregion 业务通用方法区域结束\n\n  //#region 通用接口方法区域开始\n  /**\n   *  获取仓库配置信息\n   */\n  GetWarehouseConfigDatas(queryDto: WarehouseConfigQueryDto): Observable<DataResultT<WarehouseConfigDto[]>> {\n    return this.apiUrls.PostMdp('WarehouseWebApi', 'GetWarehouseConfigDatas', queryDto);\n  }\n\n  /**\n   *  获取库位配置信息\n   */\n  GetStorageLocationConfigDatas(queryDto: StorageLocationConfigQueryDto): Observable<DataResultT<StorageLocationConfigDto[]>> {\n    return this.apiUrls.PostMdp('WarehouseWebApi', 'GetStorageLocationConfigDatas', queryDto);\n  }\n\n  /**\n   *  获取库区配置信息\n   */\n  GetWarehouseAreaConfigDatas(queryDto: WarehouseAreaConfigQueryDto): Observable<DataResultT<WarehouseAreaConfigDto[]>> {\n    return this.apiUrls.PostMdp('WarehouseWebApi', 'GetWarehouseAreaConfigDatas', queryDto);\n  }\n\n  /**\n   *  获取货架配置信息\n   */\n  GetWarehouseShelfConfigDatas(queryDto: WarehouseShelfConfigQueryDto): Observable<DataResultT<WarehouseShelfConfigDto[]>> {\n    return this.apiUrls.PostMdp('WarehouseWebApi', 'GetWarehouseShelfConfigDatas', queryDto);\n  }\n\n  /**\n   *  获取仓库控制配置参数\n   */\n  GetWarehouseMaterialControlParameter(\n    queryDto: WarehouseControlParameterQueryDto\n  ): Observable<DataResultT<WarehouseMaterialControlParameter>> {\n    return this.apiUrls.PostRhpWms('ConfigurationWebApi', 'GetWarehouseMaterialControlParameter', queryDto);\n  }\n\n  /**\n   *  获取物料的汇总库存数量信息\n   */\n  GetMaterialSumerizeStockQtyBy(queryDto: MaterialSumerizeStockQtyQueryDto): Observable<DataResultT<MaterialSumerizeStockQty>> {\n    return this.apiUrls.PostRhpWms('MaterialInventoryWebApi', 'GetMaterialSumerizeStockQtyBy', queryDto);\n  }\n\n  /**\n   *  获取源单的统计数据信息\n   */\n  GetSourceOrderStatisticsDatasBy(sourceOrderCode: string): Observable<DataResultT<BusinessOrderDataStatisticsDto[]>> {\n    return this.apiUrls.GetRhpWms('SourceOrderDataStatisticsApi', 'GetSourceOrderStatisticsDatasBy', { params: { sourceOrderCode } });\n  }\n  //#endregion 通用接口方法区域结束\n}\n","/** 其他入库计划明细模型 */\nexport class OtherInPlanOrderDetails {\n    constructor(\n        /** 入库计划号 */\n        public PlanOrderId: string,\n        /** 入库业务类型 */\n        public BusinessType: string,\n        /** 源单 */\n        public SourceOrderId: string,\n        /** 源单行号 */\n        public SourceOrderRowNum: string,\n        /** 源单数量 */\n        public SourceOrderQty: number,\n        /** 仓库代码 */\n        public InWarehouseCode: string,\n        /** 仓库名称 */\n        public InWarehouseName: string,\n        /** 仓库代码 */\n        public OutWarehouseCode: string,\n        /** 仓库名称 */\n        public OutWarehouseName: string,\n        /** 物料代码 */\n        public MaterialCode: string,\n        /** 物料名称 */\n        public MaterialName: string,\n        /** 规格型号 */\n        public MaterialSpecification: string,\n        /** 物料属性 */\n        public MaterialAttribute: string,\n        /** 物料类别 */\n        public MaterialCategory: string,\n        /** 有效期单位 */\n        public ExpiryUnit: string,\n        /** 包装单位 */\n        public MeasureUnit: string,\n        /** 保质期 */\n        public ExpiryDays: number,\n        /** 需求数量 */\n        public DemandQty: number,\n        /** 计划数量 */\n        public PlanQty: number,\n        /** 已收数量 */\n        public ReceivedQty: number,\n        /** 辅助计量单位 */\n        public MeasureAuxUnit: string,\n        /** 辅助计量数量 */\n        public MeasureAuxQty: number,\n        /** 批次号 */\n        public LotNum: string,\n        /** 备注 */\n        public Remark: string,\n        /** 工厂代码 */\n        public FactoryCode: string,\n        /** 扩展字段1 */\n        public SField1: string,\n        /** 扩展字段2 */\n        public SField2: string,\n        /** 扩展字段3 */\n        public SField3: string,\n        /** 扩展字段4 */\n        public FField1: number,\n        /** 扩展字段5 */\n        public FField2: number,\n        /** 扩展字段6 */\n        public FField3: number,\n        /** 扩展字段7 */\n        public DField1: Date,\n        /** 扩展字段8 */\n        public DField2: Date,\n        /** 扩展字段9 */\n        public DField3: Date,\n        /** 扩展字段10 */\n        public DField4: Date,\n        /** 操作标志 */\n        public OpSign: number,\n        /** 自增键 */\n        public Id: number,\n    ) { }\n    static create(): OtherInPlanOrderDetails {\n        return new OtherInPlanOrderDetails(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);\n    }\n}\n\n/** 其他出库计划明细模型 */\nexport class OtherOutPlanOrderDetails {\n    constructor(\n        /** 出库计划号 */\n        public PlanOrderId: string,\n        /** 业务类型 */\n        public BusinessType: string,\n        /** 源单 */\n        public SourceOrderId: string,\n        /** 源单行号 */\n        public SourceOrderRowNum: string,\n        /** 源单数量 */\n        public SourceOrderQty: number,\n        /** 仓库代码 */\n        public InWarehouseCode: string,\n        /** 仓库名称 */\n        public InWarehouseName: string,\n        /** 仓库代码 */\n        public OutWarehouseCode: string,\n        /** 仓库名称 */\n        public OutWarehouseName: string,\n        /** 物料代码 */\n        public MaterialCode: string,\n        /** 物料名称 */\n        public MaterialName: string,\n        /** 规格型号 */\n        public MaterialSpecification: string,\n        /** 物料属性 */\n        public MaterialAttribute: string,\n        /** 物料类别 */\n        public MaterialCategory: string,\n        /** 计量单位 */\n        public MeasureUnit: string,\n        /** 保质期 */\n        public ExpiryDays: number,\n        /** 有效期单位 */\n        public ExpiryUnit: string,\n        /** 计划数量 */\n        public PlanQty: number,\n        /** 入库数量 */\n        public ReceivedQty: number,\n        /** 辅助计量单位 */\n        public MeasureAuxUnit: string,\n        /** 辅助数量 */\n        public MeasureAuxQty: number,\n        /** 收货地址 */\n        public ReceiverAddress: string,\n        /** 批次号 */\n        public LotNum: string,\n        /** 备注 */\n        public Remark: string,\n        /** 工厂代码 */\n        public FactoryCode: string,\n        /** 扩展字段1 */\n        public SField1: string,\n        /** 扩展字段2 */\n        public SField2: string,\n        /** 扩展字段3 */\n        public SField3: string,\n        /** 扩展字段4 */\n        public FField1: number,\n        /** 扩展字段5 */\n        public FField2: number,\n        /** 扩展字段6 */\n        public FField3: number,\n        /** 扩展字段7 */\n        public DField1: Date,\n        /** 扩展字段8 */\n        public DField2: Date,\n        /** 扩展字段9 */\n        public DField3: Date,\n        /** 扩展字段10 */\n        public DField4: Date,\n        /** 操作标志 */\n        public OpSign: number,\n        /** 自增键 */\n        public Id: number,\n    ) { }\n    static create(): OtherOutPlanOrderDetails {\n        return new OtherOutPlanOrderDetails(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);\n    }\n}\n\n\n/** 其他入库办理明细模型 */\nexport class OtherInTransactOrderDetails {\n    constructor(\n        /** 源单已办理数量 */\n        public SourceTransactedQty: number,\n        /** 源单已计划数量 */\n        public SourcePlannedQty: number,\n        /** 出入库单号 */\n        public OrderId: string,\n        /** 入库计划号 */\n        public PlanOrderId: string,\n        /** 业务类型 */\n        public BusinessType: string,\n        /** 移动类型 */\n        public MoveType: string,\n        /** 源单单号 */\n        public SourceOrderId: string,\n        /** 源单行号 */\n        public SourceOrderRowNum: string,\n        /** 源单数量 */\n        public SourceOrderQty: number,\n        /** 条码 */\n        public SN: string,\n        /** 物料代码 */\n        public MaterialCode: string,\n        /** 物料名称 */\n        public MaterialName: string,\n        /** 物料规格 */\n        public MaterialSpecification: string,\n        /** 物料属性 */\n        public MaterialAttribute: string,\n        /** 物料类别 */\n        public MaterialCategory: string,\n        /** 计量单位 */\n        public MeasureUnit: string,\n        /** 辅助计量单位 */\n        public MeasureAuxUnit: string,\n        /** 辅助单位数量 */\n        public MeasureAuxQty: number,\n        /** 批次号 */\n        public LotNum: string,\n        /** 办理数量 */\n        public TransactQty: number,\n        /** 实际数量 */\n        public ActualQty: number,\n        /** 计划数量 */\n        public PlanQty: number,\n        /** 生产日期 */\n        public ProductionDate: Date,\n        /** 保质期 */\n        public ExpiryDays: number,\n        /** 有效期 */\n        public ExpirationDate: Date,\n        /** 保质期单位 */\n        public ExpiryUnit: string,\n        /** 是否已完成 */\n        public IsCompleted: boolean,\n        /** 完成时间 */\n        public CompletedTime: Date,\n        /** 是否传送ERP */\n        public IsSendToErp: boolean,\n        /** 是否先进先出 */\n        public IsFifo: boolean,\n        /** 供应商编码 */\n        public SupplierCode: string,\n        /** 供应商名称 */\n        public SupplierName: string,\n        /** 客户编码 */\n        public CustomerCode: string,\n        /** 客户名称 */\n        public CustomerName: string,\n        /** 发货地址 */\n        public ShippingAddress: string,\n        /** 入库仓库代码 */\n        public InWarehouseCode: string,\n        /** 入库仓库名称 */\n        public InWarehouseName: string,\n        /** 入库库区代码 */\n        public InWarehouseAreaCode: string,\n        /** 入库库区名称 */\n        public InWarehouseAreaName: string,\n        /** 入库货架代码 */\n        public InWarehouseShelfCode: string,\n        /** 入库货架名称 */\n        public InWarehouseShelfName: string,\n        /** 入库库位代码 */\n        public InStorageLocationCode: string,\n        /** 入库库位名称 */\n        public InStorageLocationName: string,\n        /** 出库仓库代码 */\n        public OutWarehouseCode: string,\n        /** 出库仓库名称 */\n        public OutWarehouseName: string,\n        /** 出库库区代码 */\n        public OutWarehouseAreaCode: string,\n        /** 出库库区名称 */\n        public OutWarehouseAreaName: string,\n        /** 出库货架代码 */\n        public OutWarehouseShelfCode: string,\n        /** 出库货架名称 */\n        public OutWarehouseShelfName: string,\n        /** 出库库位代码 */\n        public OutStorageLocationCode: string,\n        /** 出库库位名称 */\n        public OutStorageLocationName: string,\n        /** 是否遵循先进先出 */\n        public IsAccordingToFifo: boolean,\n        /** 器具编码 */\n        public ApplianceCode: string,\n        /** 附件编码 */\n        public AttachFileCode: string,\n        /** 工厂代码 */\n        public FactoryCode: string,\n        /** 创建用户Id */\n        public CreatorUserId: number,\n        /** 备注 */\n        public Remark: string,\n        /** 扩展字段1 */\n        public SField1: string,\n        /** 扩展字段2 */\n        public SField2: string,\n        /** 扩展字段3 */\n        public SField3: string,\n        /** 扩展字段4 */\n        public FField1: number,\n        /** 扩展字段5 */\n        public FField2: number,\n        /** 扩展字段6 */\n        public FField3: number,\n        /** 扩展字段7 */\n        public DField1: Date,\n        /** 扩展字段8 */\n        public DField2: Date,\n        /** 扩展字段9 */\n        public DField3: Date,\n        /** 扩展字段10 */\n        public DField4: Date,\n        /** 操作标志 */\n        public OpSign: number,\n        /** 自增键 */\n        public Id: number,\n        /** 库存数量 */\n        public InventoryQty: number,\n        /** 冻结数量 */\n        public FreezeQty: number,\n        /** 可用数量 */\n        public AvailableQty: number,\n        /** 计划已办理数量 */\n        public PlanTransactedQty: number,\n    ) { }\n    static create(): OtherInTransactOrderDetails {\n        return new OtherInTransactOrderDetails(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);\n    }\n}\n\n/** 其他出库办理明细模型 */\nexport class OtherOutTransactOrderDetails {\n    constructor(\n        /** 源单已办理数量 */\n        public SourceTransactedQty: number,\n        /** 源单已计划数量 */\n        public SourcePlannedQty: number,\n        /** 出入库单号 */\n        public OrderId: string,\n        /** 入库计划号 */\n        public PlanOrderId: string,\n        /** 业务类型 */\n        public BusinessType: string,\n        /** 移动类型 */\n        public MoveType: string,\n        /** 源单单号 */\n        public SourceOrderId: string,\n        /** 源单行号 */\n        public SourceOrderRowNum: string,\n        /** 源单数量 */\n        public SourceOrderQty: number,\n        /** 条码 */\n        public SN: string,\n        /** 物料代码 */\n        public MaterialCode: string,\n        /** 物料名称 */\n        public MaterialName: string,\n        /** 物料规格 */\n        public MaterialSpecification: string,\n        /** 物料属性 */\n        public MaterialAttribute: string,\n        /** 物料类别 */\n        public MaterialCategory: string,\n        /** 计量单位 */\n        public MeasureUnit: string,\n        /** 辅助计量单位 */\n        public MeasureAuxUnit: string,\n        /** 辅助单位数量 */\n        public MeasureAuxQty: number,\n        /** 批次号 */\n        public LotNum: string,\n        /** 办理数量 */\n        public TransactQty: number,\n        /** 实际数量 */\n        public ActualQty: number,\n        /** 计划数量 */\n        public PlanQty: number,\n        /** 生产日期 */\n        public ProductionDate: Date,\n        /** 保质期 */\n        public ExpiryDays: number,\n        /** 有效期 */\n        public ExpirationDate: Date,\n        /** 保质期单位 */\n        public ExpiryUnit: string,\n        /** 是否已完成 */\n        public IsCompleted: boolean,\n        /** 完成时间 */\n        public CompletedTime: Date,\n        /** 是否传送ERP */\n        public IsSendToErp: boolean,\n        /** 是否先进先出 */\n        public IsFifo: boolean,\n        /** 供应商编码 */\n        public SupplierCode: string,\n        /** 供应商名称 */\n        public SupplierName: string,\n        /** 客户编码 */\n        public CustomerCode: string,\n        /** 客户名称 */\n        public CustomerName: string,\n        /** 发货地址 */\n        public ShippingAddress: string,\n        /** 入库仓库代码 */\n        public InWarehouseCode: string,\n        /** 入库仓库名称 */\n        public InWarehouseName: string,\n        /** 入库库区代码 */\n        public InWarehouseAreaCode: string,\n        /** 入库库区名称 */\n        public InWarehouseAreaName: string,\n        /** 入库货架代码 */\n        public InWarehouseShelfCode: string,\n        /** 入库货架名称 */\n        public InWarehouseShelfName: string,\n        /** 入库库位代码 */\n        public InStorageLocationCode: string,\n        /** 入库库位名称 */\n        public InStorageLocationName: string,\n        /** 出库仓库代码 */\n        public OutWarehouseCode: string,\n        /** 出库仓库名称 */\n        public OutWarehouseName: string,\n        /** 出库库区代码 */\n        public OutWarehouseAreaCode: string,\n        /** 出库库区名称 */\n        public OutWarehouseAreaName: string,\n        /** 出库货架代码 */\n        public OutWarehouseShelfCode: string,\n        /** 出库货架名称 */\n        public OutWarehouseShelfName: string,\n        /** 出库库位代码 */\n        public OutStorageLocationCode: string,\n        /** 出库库位名称 */\n        public OutStorageLocationName: string,\n        /** 是否遵循先进先出 */\n        public IsAccordingToFifo: boolean,\n        /** 器具编码 */\n        public ApplianceCode: string,\n        /** 附件编码 */\n        public AttachFileCode: string,\n        /** 工厂代码 */\n        public FactoryCode: string,\n        /** 创建用户Id */\n        public CreatorUserId: number,\n        /** 备注 */\n        public Remark: string,\n        /** 扩展字段1 */\n        public SField1: string,\n        /** 扩展字段2 */\n        public SField2: string,\n        /** 扩展字段3 */\n        public SField3: string,\n        /** 扩展字段4 */\n        public FField1: number,\n        /** 扩展字段5 */\n        public FField2: number,\n        /** 扩展字段6 */\n        public FField3: number,\n        /** 扩展字段7 */\n        public DField1: Date,\n        /** 扩展字段8 */\n        public DField2: Date,\n        /** 扩展字段9 */\n        public DField3: Date,\n        /** 扩展字段10 */\n        public DField4: Date,\n        /** 操作标志 */\n        public OpSign: number,\n        /** 自增键 */\n        public Id: number,\n        /** 库存数量 */\n        public InventoryQty: number,\n        /** 冻结数量 */\n        public FreezeQty: number,\n        /** 可用数量 */\n        public AvailableQty: number,\n        /** 计划已办理数量 */\n        public PlanTransactedQty: number,\n    ) { }\n    static create(): OtherOutTransactOrderDetails {\n        return new OtherOutTransactOrderDetails(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);\n    }\n}\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { CustomizeBaseTableComponent, DynamicFormComponent } from 'rh-base/shared';\nimport { RhDynamicInterfaceDto, RhSelectableDto, RhTableQueryOptionDto, CodeClassModel, RhDynamicTableFieldDto } from 'rh-base/model';\n\n@Component({\n  selector: 'rh-other-in-source-data-table',\n  templateUrl: './other-in-source-data-table.component.html',\n  styleUrls: ['./other-in-source-data-table.component.less']\n})\nexport class OtherInSourceDataTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n\n  @Input() rhSingleMode = false;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() rhDisabled: boolean;\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto>();\n\n  rhName = 'OtherInSourceData';\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n  defaultInterfaceInfo: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52880,\n    controllerName: 'ProductMaterialWebApi',\n    interfaceName: 'GetMaterialDocumentDatas'\n  };\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [\n    { name: 'MaterialCode', displayName: '物料代码', placeholder: '物料代码', editable: true },\n    { name: 'MaterialName', displayName: '物料名称', placeholder: '物料名称', editable: true },\n    {\n      name: 'IsMaterial_Or1',\n      displayName: '是否物料',\n      placeholder: '是否物料',\n      editable: true,\n      type: 'array',\n      config: {\n        datas: [\n          { Text: '是', Value: true },\n          { Text: '否', Value: false }\n        ]\n      }\n    },\n    {\n      name: 'IsProduct_Or1',\n      displayName: '是否成品',\n      placeholder: '是否成品',\n      editable: true,\n      type: 'array',\n      config: {\n        datas: [\n          { Text: '是', Value: true },\n          { Text: '否', Value: false }\n        ]\n      }\n    },\n    {\n      name: 'IsSemiFinishedProduct_Or1',\n      displayName: '是否半成品',\n      placeholder: '是否半成品',\n      editable: true,\n      type: 'array',\n      config: {\n        datas: [\n          { Text: '是', Value: true },\n          { Text: '否', Value: false }\n        ]\n      }\n    }\n  ];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [\n    { name: 'MaterialCode', displayName: '物料编号', width: 120 },\n    { name: 'MaterialName', displayName: '物料名称', width: 120 },\n    { name: 'MaterialSpecification', displayName: '物料规格', width: 200, rhEllipsis: true },\n    {\n      name: 'MaterialCategory',\n      displayName: '物料类别',\n      width: 120,\n      type: 'array',\n      config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'MaterialCategory' }\n    },\n    {\n      name: 'MaterialAttribute',\n      displayName: '物料属性',\n      width: 120,\n      type: 'array',\n      config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'ProductMaterialAttribute' }\n    },\n    { name: 'SupplierCode', displayName: '供应商代码', width: 120 },\n    { name: 'SupplierName', displayName: '供应商名称', width: 120 },\n    {\n      name: 'MeasureUnit',\n      displayName: '计量单位',\n      width: 120,\n      type: 'array',\n      config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n    },\n    { name: 'Remark', displayName: '备注', width: 120, rhEllipsis: true }\n  ];\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  constructor() {\n    super();\n  }\n\n  ngOnInit(): void {\n    this.rhInterfaceInfo = this.rhInterfaceInfo || this.defaultInterfaceInfo;\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n}\n","<!-- 搜索Form区域 -->\n<div class=\"search-area rh-full\">\n    <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n        <ng-template #searchTpl>\n            <rh-dynamic-form #queryForm rhName=\"{{ rhName }}Form\" [rhValue]=\"rhDefaultQueryDto\"\n                (rhInterfaceDataChange)=\"setDatas($event)\" (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                (rhOutParaChange)=\"setInitFieldDataset($event)\" [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n                [(rhFormInterface)]=\"rhInterfaceInfo\"></rh-dynamic-form>\n        </ng-template>\n    </nz-alert>\n</div>\n<!-- 搜索结果Table展示区域 -->\n<div class=\"table-area\">\n    <rh-dynamic-table rhName=\"{{ rhName }}Table\" [rhTableData]=\"dataresult\" [rhTableDataloading]=\"dataLoading\"\n        [rhDefaultFieldDataset]=\"defaultTableFieldDataset\" (rhRefresh)=\"refreshDatas($event)\"\n        (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\" [rhSingleMode]=\"rhSingleMode\"></rh-dynamic-table>\n</div>","import { RhBusinessManageService } from './../../../business-manage.service';\nimport { Observable } from 'rxjs';\nimport { RhOtherBusinessService } from './../../other-business.service';\nimport { Component, OnInit, Input, Output, EventEmitter, SimpleChanges } from '@angular/core';\nimport { RhBaseDto, RhSelectableDto, DataResultT, RhTableButtonInfoDto, OpMode, RhSafeAny } from 'rh-base/model';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport { OtherInPlanOrderDetails } from '../../other-business-model';\n\n\n@Component({\n  selector: 'rh-other-in-plan-details',\n  templateUrl: './other-in-plan-details.component.html',\n  styleUrls: ['./other-in-plan-details.component.less']\n})\nexport class OtherInPlanDetailsComponent implements OnInit {\n  @Input() rhPlanOrder: RhBaseDto;\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter();\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto('deleteDetails', '删除', 'primary', true,'delete', true, null, (datas) => this.removeDatas(datas as RhSelectableDto[]), false, true),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset = [\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  tableVisibleSetting = {};\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  isEnterEditStatus = false;\n\n  editDisabled = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return !list.includes(data.OrderStatus);\n  };\n\n  get isReadOnlyTable() {\n    return (\n      this.rhShowDetail || !this.rhPlanOrder?.PlanOrderId || this.isEnterEditStatus || this.editDisabled(this.rhPlanOrder)\n    );\n  }\n\n  get readeOnlyButtonDataset() {\n    if (!this.rhPlanOrder?.PlanOrderId) return [];\n    else if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(private operator: RhOtherBusinessService, public businessManageSer: RhBusinessManageService) { }\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhPlanOrder } = changes;\n    if (rhPlanOrder && rhPlanOrder.currentValue) {\n      if (this.rhPlanOrder.PlanOrderId) {\n        this.getDatas();\n      }\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getDynamicVisibleSetting(['LotNum']));\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      PlanOrderId: this.rhPlanOrder.PlanOrderId,\n      FactoryCode: this.rhPlanOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetOtherInPlanOrderDetailsDatasBy(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`)\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (this.editDisabled(this.rhPlanOrder)) {\n      MsgHelper.ShowWarningMessage('当前单据状态无法编辑入库计划明细！');\n      return;\n    }\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach(data => data.OpSign = OpMode.OpEdit);\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    const checkRes = this.checkStoreDatas(details);\n    if (!checkRes) {\n      return;\n    };\n    return new Observable(observer => {\n      const dto = {\n        OrderMaster: this.rhPlanOrder,\n        OrderDetails: details\n      };\n      const msg = editType === 'add' ? '新增' : '编辑';\n      this.dataLoading = true;\n      this.operator.StoreOtherInPlanOrderDetails(dto).subscribe((result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`)\n        } else {\n          MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n        }\n        this.dataLoading = false;\n        observer.next();\n        observer.complete();\n      }, () => {\n        this.dataLoading = false;\n        observer.error();\n      })\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[]) {\n    this.extraButtonHandleDataset[1].loading = true;\n    this.operator.RemoveOtherInPlanOrderDetails(details).subscribe((result) => {\n      if (result.Success) {\n        MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n        this.getDatas();\n      } else {\n        MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n      }\n      this.extraButtonHandleDataset[1].loading = false;\n    }, () => this.extraButtonHandleDataset[1].loading = false);\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    const datas = details.map(data => {\n      const temp = OtherInPlanOrderDetails.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 单头赋值\n      temp.PlanOrderId = this.rhPlanOrder.PlanOrderId;\n      temp.BusinessType = this.rhPlanOrder.BusinessType;\n      temp.InWarehouseCode = this.rhPlanOrder.InWarehouseCode;\n      temp.InWarehouseName = this.rhPlanOrder.InWarehouseName;\n      temp.FactoryCode = this.rhPlanOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach(data => data.OpSign = OpMode.OpEdit);\n      }\n      this.dataresult = { Attach: (this.dataresult.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach(data => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach(data => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  /** 检查保存数据 */\n  checkStoreDatas(details: RhSelectableDto[]) {\n    // 必须填写计划数量\n    if (details.some((f) => !f.PlanQty)) {\n      MsgHelper.ShowWarningMessage('计划数量不能为0或空！');\n      return false;\n    }\n    // 计划批次号开启后，可填可不填，只判断超额入库\n    if (!this.businessManageSer.IsEnableExcessInWarehouse) {\n      if (details.some((f) => (f.PlanQty + f.SourcePlannedQty) > f.SourceOrderQty)) {\n        MsgHelper.ShowWarningMessage('未启用超额入库！不能超额计划源单数量！');\n        return false;\n      }\n    }\n    return true;\n  }\n\n  openDataModal() {\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n\n}\n\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n    <rh-dynamic-table\n      rhName=\"handleDetailsReadOnlyTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    ></rh-dynamic-table>\n  </ng-container>\n  <ng-template #handleTpl>\n    <rh-dynamic-table\n      rhName=\"handleDetailsTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    >\n    </rh-dynamic-table>\n  </ng-template>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"'选择其他入库数据'\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-other-in-source-data-table (rhModelChange)=\"onSelectModal($event)\" [rhSingleMode]=\"false\"> </rh-other-in-source-data-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { BusinessType } from './../../business-type';\nimport { RhBusinessManageService } from './../../business-manage.service';\nimport { RhOtherBusinessService } from './../other-business.service';\nimport { RhSharedManageService } from './../../../shared-manage/shared-manage.service';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { RhBaseDto, DataResultT, RhSelectableDto, RhTableButtonInfoDto, RhLoginedUserDto, OpMode, CodeClassModel, RhDynamicTableFieldDto, RhTableQueryOptionDto, RhSafeAny, OpResult } from 'rh-base/model';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\n\ntype TabType = 'edit' | 'detail' | 'audit';\n\n@Component({\n  selector: 'rh-other-in-plan',\n  templateUrl: './other-in-plan.component.html',\n  styleUrls: ['./other-in-plan.component.less']\n})\nexport class RhOtherInPlanComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  BusinessType = BusinessType.OtherIn;\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isShowCloseInPlanRemarkModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  closeDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  completeVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitInWarehouse';\n  };\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  isAsCreated = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto)),\n    new RhTableButtonInfoDto('submit', '提交审核', 'default', false, 'form', false, null, (data) => this.submitDataToAudit(data as RhBaseDto)),\n    new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) =>\n      this.openDetailTab({ data } as RhBaseDto, 'audit')\n    ),\n    new RhTableButtonInfoDto(\n      'close',\n      '关闭',\n      'default',\n      false,\n      'close-circle',\n      false,\n      null,\n      (data) => this.openCloseInPlanRemarkModal(data as RhBaseDto),\n      null,\n      null,\n      'red'\n    )\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '新建', 'primary', false, 'file', false, null, () => this.openEditTab(), true),\n    new RhTableButtonInfoDto(\n      'delete',\n      '删除',\n      'primary',true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhBaseDto[]),\n      false,\n      false,\n      'red'\n    )\n  ];\n\n  beforeSubmit = async (data: RhBaseDto, context: DynamicFormComponent) => {\n    let result: OpResult = null;\n    const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n    context.submitLoading = true;\n    try {\n      if (this.editDto.OpSign === OpMode.OpAdd) {\n        // 基本信息\n        data.BusinessType = this.BusinessType;\n        data.Creator = this.currentUser.DisplayName;\n        data.CreatorId = this.currentUser.UserName;\n\n        result = await this.operator.CreateOtherInPlanMasterOrder(data).toPromise();\n      } else {\n        result = await this.operator.UpdateOtherInPlanMasterOrder(data).toPromise();\n      }\n      if (result && result.Success) {\n        MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n        this.editDto.PlanOrderId = result?.Attach?.PlanOrderId;\n        this.isShowEditForm = false;\n        this.getDetails();\n      } else {\n        MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n      }\n    } catch (error) {\n      //\n    } finally {\n      context.submitLoading = false;\n    }\n\n    return false;\n  };\n\n  beforeSubmitAudit = (data: RhBaseDto) => {\n    if (!data.IsPass && !data.AuditMessage) {\n      MsgHelper.ShowWarningMessage('审核不通过，必须填写审核信息！');\n      return;\n    }\n    // 基本信息\n    data.Auditor = this.currentUser.DisplayName;\n    data.AuditorId = this.currentUser.UserName;\n\n    return true;\n  };\n\n  constructor(private operator: RhOtherBusinessService, public businessManageSer: RhBusinessManageService, public storage: RhStorageService, public sharedManageSer: RhSharedManageService) { }\n\n  ngOnInit(): void {\n    this.setUserInfo();\n    this.initEditButtonVisible();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  initEditButtonVisible() {\n    this.editButtonDataset[0].visible = this.editVisible.toString();\n    this.editButtonDataset[1].visible = this.isCreated.toString();\n    this.editButtonDataset[2].visible = this.auditVisible.toString();\n    this.editButtonDataset[3].visible = this.completeVisible.toString();\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {\n        TransactorCode: this.currentUser.UserName,\n        TransactorName: this.currentUser.DisplayName,\n        FactoryCode: this.currentUser.FactoryCode\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.editDto = null;\n    this.selectedIndex = 0;\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.selectedIndex = 1;\n  }\n\n  // 未退出页面，刷新数据内容\n  getDetails() {\n    const queryDto = { PlanOrderId: this.editDto.PlanOrderId };\n    this.operator.GetOtherInPlanOrderDatas(queryDto).subscribe((result) => {\n      if (result.Success && result.Attach.length === 1) {\n        this.editDto = result.Attach[0];\n        this.editDto.OpSign = OpMode.OpEdit;\n      }\n    });\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    }\n  }\n\n  //#region 操作区域开始\n  /** 提交审核 */\n  submitDataToAudit(data: RhBaseDto) {\n    if (this.isCreated(data)) {\n      const dto = { PlanOrderId: data.PlanOrderId };\n      this.dataLoading = true;\n      this.operator.SumbitAuditOtherInPlanOrder(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('提交审核成功！');\n            if (this.selectedIndex === 0) this.getDatas();\n            this.closeEditTab();\n          } else {\n            MsgHelper.ShowWarningMessage(`提交审核失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行提交审核！');\n    }\n  }\n\n  /** 审核 */\n  auditData(data: RhBaseDto) {\n    if (this.auditVisible(data)) {\n      this.openAuditDataModal(data);\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行审核！');\n    }\n  }\n\n  /** 打开审核弹窗 */\n  openAuditDataModal(data: RhBaseDto) {\n    this.auditDto = { PlanOrderId: data.PlanOrderId };\n    this.isShowAuditDataModal = true;\n  }\n\n  /** 关闭审核弹窗 */\n  closeAuditDataModal() {\n    this.auditDto = {};\n    this.isShowAuditDataModal = false;\n  }\n\n  /** 审核接口返回 */\n  onAuditData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('审核入库计划成功！');\n      this.closeAuditDataModal();\n      this.getDetails();\n    } else {\n      MsgHelper.ShowWarningModal(`审核入库计划失败！${result.Message}`);\n    }\n  }\n\n  /** 打开关闭计划备注弹窗 */\n  openCloseInPlanRemarkModal(data: RhBaseDto) {\n    this.closeDto = { PlanOrderId: data.PlanOrderId, Remark: data.Remark };\n    this.isShowCloseInPlanRemarkModal = true;\n  }\n\n  /** 关闭关闭计划备注弹窗 */\n  closeCloseInPlanRemarkModal() {\n    this.closeDto = {};\n    this.isShowCloseInPlanRemarkModal = false;\n  }\n\n  /** 关闭接口返回 */\n  onCloseData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('关闭入库计划成功！');\n      this.closeCloseInPlanRemarkModal();\n      this.getDatas();\n    } else {\n      MsgHelper.ShowWarningModal(`关闭入库计划失败！${result.Message}`);\n    }\n  }\n\n  /** 删除计划 */\n  removeDatas(datas: RhBaseDto[]) {\n    const some = datas.some((f) => !this.isAsCreated(f));\n    if (some) {\n      MsgHelper.ShowWarningMessage('只能删除制单状态的数据！');\n    } else {\n      this.dataLoading = true;\n      this.operator.RemoveOtherInPlanOrders(datas as RhSafeAny).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('删除成功！');\n            this.getDatas();\n          } else {\n            MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    }\n  }\n  //#endregion 操作区域结束\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n\n}\n\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  >\n                  </rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              >\n              </rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>数据{{ editDto?.OpSign === 1 ? '新增' : '编辑' }}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button\n                    *ngIf=\"editVisible(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"isShowEditForm = true\"\n                  >\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button\n                    *ngIf=\"isCreated(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"submitDataToAudit(editDto)\"\n                  >\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                  <button *ngIf=\"auditVisible(editDto)\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else editDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template\n                    rhTemplate=\"InWarehouseCode\"\n                    let-formGroup\n                    let-setting=\"setting\"\n                    let-hostConfig=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.placeholder }}</nz-form-label>\n                      <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                        <rh-business-warehouse-selector\n                          name=\"InWarehouseCode\"\n                          [formControl]=\"formGroup.get('InWarehouseCode')\"\n                          rhFormType=\"edit\"\n                          [rhFieldData]=\"businessManageSer.setWarehouseFieldSetting(setting, 'In')\"\n                          [rhSize]=\"hostConfig?.rhSize\"\n                          [rhData]=\"formData\"\n                          [rhDefaultQueryDto]=\"{ BusinessTypeCode: BusinessType }\"\n                        >\n                        </rh-business-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-other-in-plan-details [rhPlanOrder]=\"editDto\" (rhDetailsUpdate)=\"getDetails()\"> </rh-other-in-plan-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <button\n                  *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\"\n                  nz-button\n                  nzType=\"primary\"\n                  nzSize=\"small\"\n                  type=\"button\"\n                  (click)=\"auditData(editDto)\"\n                >\n                  <i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n                </button>\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"editDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-other-in-plan-details [rhPlanOrder]=\"editDto\" [rhShowDetail]=\"true\"> </rh-other-in-plan-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #editDescription>\n  <rh-dynamic-description *ngIf=\"isRefreshDesc\" rhName=\"editDescription\" [rhValue]=\"editDto\"></rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'入库计划审核'\"\n  [nzVisible]=\"isShowAuditDataModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeAuditDataModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #auditDataForm\n    rhName=\"auditDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"auditDto\"\n    [rhBeforeSubmit]=\"beforeSubmitAudit\"\n    (rhInterfaceDataChange)=\"onAuditData($event)\"\n    (rhClose)=\"closeAuditDataModal()\"\n  >\n    <ng-template rhTemplate=\"IsPass\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-radio-group [formControl]=\"formgroup.get('IsPass')\" (ngModelChange)=\"businessManageSer.isPassChange($event, formgroup)\">\n            <label nz-radio [nzValue]=\"true\">是</label>\n            <label nz-radio [nzValue]=\"false\">否</label>\n          </nz-radio-group>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"AuditMessage\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"!formgroup.get('IsPass').value\"> {{ setting.displayName }}</nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <textarea\n            nz-input\n            [formControl]=\"formgroup.get('AuditMessage')\"\n            [placeholder]=\"setting.placeholder\"\n            [nzAutosize]=\"{ minRows: 2 }\"\n          ></textarea>\n          <div *ngIf=\"editDto?.AuditMessage\">\n            <span style=\"color: #faad14\">上一次审核信息：{{ editDto?.AuditMessage }}</span>\n          </div>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>\n\n<nz-modal\n  [nzTitle]=\"'关闭入库计划备注'\"\n  [nzVisible]=\"isShowCloseInPlanRemarkModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeCloseInPlanRemarkModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #closeDataForm\n    rhName=\"closeDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"closeDto\"\n    (rhInterfaceDataChange)=\"onCloseData($event)\"\n    (rhClose)=\"closeCloseInPlanRemarkModal()\"\n  ></rh-dynamic-form>\n</nz-modal>\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { CustomizeBaseTableComponent, DynamicFormComponent } from 'rh-base/shared';\nimport {\n  RhDynamicInterfaceDto,\n  RhSelectableDto,\n  DataResultT,\n  RhTableQueryOptionDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhSafeAny\n} from 'rh-base/model';\nimport { MsgHelper } from 'rh-base/core';\n\n@Component({\n  selector: 'rh-other-out-source-data-table',\n  templateUrl: './other-out-source-data-table.component.html',\n  styleUrls: ['./other-out-source-data-table.component.less']\n})\nexport class OtherOutSourceDataTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n\n  @Input() rhSingleMode = false;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() rhDisabled: boolean;\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto>();\n\n  rhName = 'OtherInSourceData';\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n  defaultInterfaceInfo: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'MaterialInventoryWebApi',\n    interfaceName: 'GetMaterialInventoryDetailDatas'\n  };\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [\n    // { name: 'WarehouseCode', displayName: '仓库代码', placeholder: '仓库代码', editable: true, type: 'customize', config: { type: 'warehouse' } },\n    { name: 'MaterialCode', displayName: '物料代码', placeholder: '物料代码', editable: true },\n    { name: 'MaterialName', displayName: '物料名称', placeholder: '物料名称', editable: true }\n    // { name: 'IsObsoleteMaterial', displayName: '是否呆滞', placeholder: '是否呆滞', editable: true, type: 'bool' },\n    // { name: 'IsHideZeroInventory', displayName: '是否零库存', placeholder: '是否零库存', editable: true, type: 'bool' },\n  ];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [\n    { name: 'MaterialCode', displayName: '物料编号', width: 120 },\n    { name: 'MaterialName', displayName: '物料名称', width: 120 },\n    { name: 'MaterialSpecification', displayName: '物料规格', width: 200, rhEllipsis: true },\n    { name: 'WarehouseCode', displayName: '仓库代码', width: 120 },\n    { name: 'WarehouseName', displayName: '仓库名称', width: 120 },\n    {\n      name: 'MaterialCategory',\n      displayName: '物料类别',\n      width: 120,\n      type: 'array',\n      config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'MaterialCategory' }\n    },\n    {\n      name: 'MaterialAttribute',\n      displayName: '物料属性',\n      width: 120,\n      type: 'array',\n      config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'ProductMaterialAttribute' }\n    },\n    {\n      name: 'MeasureUnit',\n      displayName: '计量单位',\n      width: 120,\n      type: 'array',\n      config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n    },\n    { name: 'InventoryQty', displayName: '库存数量', width: 120 },\n    { name: 'AvailableQty', displayName: '可用数量', width: 120 },\n    { name: 'LotNum', displayName: '批次号', width: 120 },\n    { name: 'Remark', displayName: '备注', width: 120, rhEllipsis: true }\n  ];\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  constructor() {\n    super();\n  }\n\n  ngOnInit(): void {\n    this.rhInterfaceInfo = this.rhInterfaceInfo || this.defaultInterfaceInfo;\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  // TODO 测试数据\n  setDatas(result: DataResultT<RhSelectableDto[]>) {\n    if (result && result.Success) {\n      this.dataresult = result;\n      this.rhDatasetChange.next(result.Attach);\n    } else {\n      this.dataresult = {\n        Success: false,\n        Attach: [\n          {\n            CustomerCode: 'VIP001',\n            CustomerName: 'VIP用户1',\n            WarehouseCode: '0012',\n            WarehouseName: 'test 甲仓',\n            WarehouseAreaCode: '0012',\n            WarehouseAreaName: 'test 甲仓',\n            WarehouseShelfCode: '0012',\n            WarehouseShelfName: 'test 甲仓',\n            StorageLocationCode: '0012',\n            StorageLocationName: 'test 甲仓',\n            MaterialCode: 'PPXSJ01',\n            MaterialName: '螺纹滑膛管',\n            MeasureUnit: 'Jian',\n            InventoryQty: 100,\n            AvailableQty: 100,\n            LotNum: '1'\n          }\n        ]\n      } as RhSafeAny;\n      this.rhDatasetChange.next(null);\n      MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n    }\n  }\n}\n","<!-- 搜索Form区域 -->\n<div class=\"search-area rh-full\">\n    <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n        <ng-template #searchTpl>\n            <rh-dynamic-form #queryForm rhName=\"{{ rhName }}Form\" [rhValue]=\"rhDefaultQueryDto\"\n                (rhInterfaceDataChange)=\"setDatas($event)\" (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                (rhOutParaChange)=\"setInitFieldDataset($event)\" [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n                [(rhFormInterface)]=\"rhInterfaceInfo\"></rh-dynamic-form>\n        </ng-template>\n    </nz-alert>\n</div>\n<!-- 搜索结果Table展示区域 -->\n<div class=\"table-area\">\n    <rh-dynamic-table rhName=\"{{ rhName }}Table\" [rhTableData]=\"dataresult\" [rhTableDataloading]=\"dataLoading\"\n        [rhDefaultFieldDataset]=\"defaultTableFieldDataset\" (rhRefresh)=\"refreshDatas($event)\"\n        (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\" [rhSingleMode]=\"rhSingleMode\"></rh-dynamic-table>\n</div>","import { OtherOutPlanOrderDetails } from './../../other-business-model';\nimport { RhBusinessManageService } from './../../../business-manage.service';\nimport { RhOtherBusinessService } from './../../other-business.service';\nimport { Component, OnInit, Input, EventEmitter, Output, SimpleChanges } from '@angular/core';\nimport { RhBaseDto, RhSelectableDto, DataResultT, RhTableButtonInfoDto, OpMode, RhSafeAny } from 'rh-base/model';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport { Observable } from 'rxjs';\n\n\n@Component({\n  selector: 'rh-other-out-plan-details',\n  templateUrl: './other-out-plan-details.component.html',\n  styleUrls: ['./other-out-plan-details.component.less']\n})\nexport class OtherOutPlanDetailsComponent implements OnInit {\n  @Input() rhPlanOrder: RhBaseDto;\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter();\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto('deleteDetails', '删除', 'primary', true,'delete', true, null, (datas) => this.removeDatas(datas as RhSelectableDto[]), false, true),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset = [\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  tableVisibleSetting = {};\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  sourceDefaultQueryDto = {};\n  isEnterEditStatus = false;\n\n  editDisabled = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return !list.includes(data.OrderStatus);\n  };\n\n  get isReadOnlyTable() {\n    return (\n      this.rhShowDetail || !this.rhPlanOrder?.PlanOrderId || this.isEnterEditStatus || this.editDisabled(this.rhPlanOrder)\n    );\n  }\n\n  get readeOnlyButtonDataset() {\n    if (!this.rhPlanOrder?.PlanOrderId) return [];\n    else if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(private operator: RhOtherBusinessService, public businessManageSer: RhBusinessManageService) { }\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhPlanOrder } = changes;\n    if (rhPlanOrder && rhPlanOrder.currentValue) {\n      if (this.rhPlanOrder.PlanOrderId) {\n        this.getDatas();\n      }\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getDynamicVisibleSetting(['LotNum']));\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      PlanOrderId: this.rhPlanOrder.PlanOrderId,\n      FactoryCode: this.rhPlanOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetOtherOutPlanOrderDetailsDatasBy(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`)\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (this.editDisabled(this.rhPlanOrder)) {\n      MsgHelper.ShowWarningMessage('当前单据状态无法编辑出库计划明细！');\n      return;\n    }\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach(data => data.OpSign = OpMode.OpEdit);\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    const checkRes = this.checkStoreDatas(details);\n    if (!checkRes) {\n      return;\n    };\n    return new Observable(observer => {\n      const dto = {\n        OrderMaster: this.rhPlanOrder,\n        OrderDetails: details\n      };\n      const msg = editType === 'add' ? '新增' : '编辑';\n      this.dataLoading = true;\n      this.operator.StoreOtherOutPlanOrderDetails(dto).subscribe((result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`)\n        } else {\n          MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n        }\n        this.dataLoading = false;\n        observer.next();\n        observer.complete();\n      }, () => {\n        this.dataLoading = false;\n        observer.error();\n      })\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[]) {\n    this.extraButtonHandleDataset[1].loading = true;\n    this.operator.RemoveOtherOutPlanOrderDetails(details).subscribe((result) => {\n      if (result.Success) {\n        MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n        this.getDatas();\n      } else {\n        MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n      }\n      this.extraButtonHandleDataset[1].loading = false;\n    }, () => this.extraButtonHandleDataset[1].loading = false);\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    const datas = details.map(data => {\n      const temp = OtherOutPlanOrderDetails.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 单头赋值\n      temp.PlanOrderId = this.rhPlanOrder.PlanOrderId;\n      temp.BusinessType = this.rhPlanOrder.BusinessType;\n      temp.OutWarehouseCode = this.rhPlanOrder.OutWarehouseCode;\n      temp.OutWarehouseName = this.rhPlanOrder.OutWarehouseName;\n      temp.FactoryCode = this.rhPlanOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach(data => data.OpSign = OpMode.OpEdit);\n      }\n      this.dataresult = { Attach: (this.dataresult.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach(data => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach(data => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  /** 检查保存数据 */\n  checkStoreDatas(details: RhSelectableDto[]) {\n    // 必须填写计划数量\n    if (details.some((f) => !f.PlanQty)) {\n      MsgHelper.ShowWarningMessage('计划数量不能为0或空！');\n      return false;\n    }\n    // TODO\n    // 负库存判断等\n    return true;\n  }\n\n  openDataModal() {\n    this.sourceDefaultQueryDto = {\n      WarehouseCode: this.rhPlanOrder.OutWarehouseCode,\n      IsObsoleteMaterial: false,\n      IsHideZeroInventory: false,\n      FactoryCode: this.rhPlanOrder.FactoryCode\n    };\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n\n}\n\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n    <rh-dynamic-table\n      rhName=\"handleDetailsReadOnlyTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    >\n      <!-- <ng-template rhTemplate=\"LotNum\" let-item let-data=\"data\">\n                <ng-container *ngIf=\"data.select;else lotNumTpl\">\n                    <input nz-input nzSize=\"small\" [(ngModel)]=\"data.LotNum\" [placeholder]=\"item?.displayName\" />\n                </ng-container>\n                <ng-template #lotNumTpl>{{data.LotNum}}</ng-template>\n            </ng-template> -->\n    </rh-dynamic-table>\n  </ng-container>\n  <ng-template #handleTpl>\n    <rh-dynamic-table\n      rhName=\"handleDetailsTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    >\n    </rh-dynamic-table>\n  </ng-template>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"'选择其他出库数据'\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-other-out-source-data-table\n        [rhDefaultQueryDto]=\"sourceDefaultQueryDto\"\n        (rhModelChange)=\"onSelectModal($event)\"\n        [rhSingleMode]=\"false\"\n      >\n      </rh-other-out-source-data-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { BusinessType } from './../../business-type';\nimport { RhSharedManageService } from './../../../shared-manage/shared-manage.service';\nimport { RhBusinessManageService } from './../../business-manage.service';\nimport { RhOtherBusinessService } from './../other-business.service';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { RhBaseDto, DataResultT, RhSelectableDto, RhLoginedUserDto, RhTableButtonInfoDto, OpResult, OpMode, RhSafeAny, CodeClassModel, RhDynamicTableFieldDto, RhTableQueryOptionDto } from 'rh-base/model';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\n\ntype TabType = 'edit' | 'detail' | 'audit';\n\n@Component({\n  selector: 'rh-other-out-plan',\n  templateUrl: './other-out-plan.component.html',\n  styleUrls: ['./other-out-plan.component.less']\n})\nexport class RhOtherOutPlanComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  BusinessType = BusinessType.OtherOut;\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  closeDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  completeVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitOutWarehouse';\n  };\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  isAsCreated = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto)),\n    new RhTableButtonInfoDto('submit', '提交审核', 'default', false, 'form', false, null, (data) => this.submitDataToAudit(data as RhBaseDto)),\n    new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) =>\n      this.openDetailTab({ data } as RhBaseDto, 'audit')\n    ),\n    new RhTableButtonInfoDto(\n      'complete',\n      '完成',\n      'default',\n      false,\n      'check',\n      false,\n      null,\n      (data) => this.completeOutPlanOrder(data as RhBaseDto)\n    )\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '新建', 'primary', false, 'file', false, null, () => this.openEditTab(), true),\n    new RhTableButtonInfoDto(\n      'delete',\n      '删除',\n      'primary',true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhBaseDto[]),\n      false,\n      false,\n      'red'\n    )\n  ];\n\n  beforeSubmit = async (data: RhBaseDto, context: DynamicFormComponent) => {\n    let result: OpResult = null;\n    const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n    context.submitLoading = true;\n    try {\n      if (this.editDto.OpSign === OpMode.OpAdd) {\n        // 基本信息\n        data.BusinessType = this.BusinessType;\n        data.Creator = this.currentUser.DisplayName;\n        data.CreatorId = this.currentUser.UserName;\n\n        result = await this.operator.CreateOtherOutPlanMasterOrder(data).toPromise();\n      } else {\n        result = await this.operator.UpdateOtherOutPlanMasterOrder(data).toPromise();\n      }\n      if (result && result.Success) {\n        MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n        this.editDto.PlanOrderId = result?.Attach?.PlanOrderId;\n        this.isShowEditForm = false;\n        this.getDetails();\n      } else {\n        MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n      }\n    } catch (error) {\n      //\n    } finally {\n      context.submitLoading = false;\n    }\n\n    return false;\n  };\n\n  beforeSubmitAudit = (data: RhBaseDto) => {\n    if (!data.IsPass && !data.AuditMessage) {\n      MsgHelper.ShowWarningMessage('审核不通过，必须填写审核信息！');\n      return;\n    }\n    // 基本信息\n    data.Auditor = this.currentUser.DisplayName;\n    data.AuditorId = this.currentUser.UserName;\n\n    return true;\n  };\n\n  constructor(private operator: RhOtherBusinessService, public businessManageSer: RhBusinessManageService, public storage: RhStorageService, public sharedManageSer: RhSharedManageService) { }\n\n  ngOnInit(): void {\n    this.setUserInfo();\n    this.initEditButtonVisible();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  initEditButtonVisible() {\n    this.editButtonDataset[0].visible = this.editVisible.toString();\n    this.editButtonDataset[1].visible = this.isCreated.toString();\n    this.editButtonDataset[2].visible = this.auditVisible.toString();\n    this.editButtonDataset[3].visible = this.completeVisible.toString();\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {\n        TransactorCode: this.currentUser.UserName,\n        TransactorName: this.currentUser.DisplayName,\n        FactoryCode: this.currentUser.FactoryCode\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.editDto = null;\n    this.selectedIndex = 0;\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.selectedIndex = 1;\n  }\n\n  // 未退出页面，刷新数据内容\n  getDetails() {\n    const queryDto = { PlanOrderId: this.editDto.PlanOrderId };\n    this.operator.GetOtherOutPlanOrderDatas(queryDto).subscribe((result) => {\n      if (result.Success && result.Attach.length === 1) {\n        this.editDto = result.Attach[0];\n        this.editDto.OpSign = OpMode.OpEdit;\n      }\n    });\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    }\n  }\n\n  //#region 操作区域开始\n  /** 提交审核 */\n  submitDataToAudit(data: RhBaseDto) {\n    if (this.isCreated(data)) {\n      const dto = { PlanOrderId: data.PlanOrderId };\n      this.dataLoading = true;\n      this.operator.SumbitAuditOtherOutPlanOrder(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('提交审核成功！');\n            if (this.selectedIndex === 0) this.getDatas();\n            this.closeEditTab();\n          } else {\n            MsgHelper.ShowWarningMessage(`提交审核失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行提交审核！');\n    }\n  }\n\n  /** 审核 */\n  auditData(data: RhBaseDto) {\n    if (this.auditVisible(data)) {\n      this.openAuditDataModal(data);\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行审核！');\n    }\n  }\n\n  /** 打开审核弹窗 */\n  openAuditDataModal(data: RhBaseDto) {\n    this.auditDto = { PlanOrderId: data.PlanOrderId };\n    this.isShowAuditDataModal = true;\n  }\n\n  /** 关闭审核弹窗 */\n  closeAuditDataModal() {\n    this.auditDto = {};\n    this.isShowAuditDataModal = false;\n  }\n\n  /** 审核接口返回 */\n  onAuditData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('审核出库计划成功！');\n      this.closeAuditDataModal();\n      this.getDetails();\n    } else {\n      MsgHelper.ShowWarningModal(`审核出库计划失败！${result.Message}`);\n    }\n  }\n\n  /** 完成计划 */\n  completeOutPlanOrder(data: RhBaseDto) {\n    if (this.completeVisible(data)) {\n      // TODO\n      // const dto = OutPlanOrderMasterDto.create();\n      // dto.PlanOrderId = data.PlanOrderId;\n      // this.dataLoading = true;\n      // this.operator.CompleteOutPlanOrder(dto).subscribe(\n      //   (result) => {\n      //     if (result.Success) {\n      //       MsgHelper.ShowSuccessMessage('完成成功！');\n      //       this.getDatas();\n      //     } else {\n      //       MsgHelper.ShowWarningMessage(`完成失败！${result.Message}`);\n      //     }\n      //     this.dataLoading = false;\n      //   },\n      //   () => {\n      //     this.dataLoading = false;\n      //   }\n      // );\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行完成！');\n    }\n  }\n\n  /** 删除计划 */\n  removeDatas(datas: RhBaseDto[]) {\n    const some = datas.some((f) => !this.isAsCreated(f));\n    if (some) {\n      MsgHelper.ShowWarningMessage('只能删除制单状态的数据！');\n    } else {\n      this.dataLoading = true;\n      this.operator.RemoveOtherOutPlanOrders(datas as RhSafeAny).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('删除成功！');\n            this.getDatas();\n          } else {\n            MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    }\n  }\n  //#endregion 操作区域结束\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n\n}\n\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  >\n                  </rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              >\n              </rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>数据{{ editDto?.OpSign === 1 ? '新增' : '编辑' }}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button\n                    *ngIf=\"editVisible(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"isShowEditForm = true\"\n                  >\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button\n                    *ngIf=\"isCreated(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"submitDataToAudit(editDto)\"\n                  >\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                  <button *ngIf=\"auditVisible(editDto)\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else detailsDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template\n                    rhTemplate=\"OutWarehouseCode\"\n                    let-formGroup\n                    let-setting=\"setting\"\n                    let-hostConfig=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.placeholder }}</nz-form-label>\n                      <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                        <rh-business-warehouse-selector\n                          name=\"OutWarehouseCode\"\n                          [formControl]=\"formGroup.get('OutWarehouseCode')\"\n                          rhFormType=\"edit\"\n                          [rhFieldData]=\"businessManageSer.setWarehouseFieldSetting(setting, 'Out')\"\n                          [rhSize]=\"hostConfig?.rhSize\"\n                          [rhData]=\"formData\"\n                          [rhDefaultQueryDto]=\"{ BusinessTypeCode: BusinessType }\"\n                        >\n                        </rh-business-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-other-out-plan-details [rhPlanOrder]=\"editDto\" (rhDetailsUpdate)=\"getDetails()\"> </rh-other-out-plan-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <button\n                  *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\"\n                  nz-button\n                  nzType=\"primary\"\n                  nzSize=\"small\"\n                  type=\"button\"\n                  (click)=\"auditData(editDto)\"\n                >\n                  <i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n                </button>\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"detailsDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-other-out-plan-details [rhPlanOrder]=\"editDto\" [rhShowDetail]=\"true\"> </rh-other-out-plan-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #detailsDescription>\n  <rh-dynamic-description *ngIf=\"isRefreshDesc\" rhName=\"detailsDescription\" [rhValue]=\"editDto\"> </rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'出库计划审核'\"\n  [nzVisible]=\"isShowAuditDataModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeAuditDataModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #auditDataForm\n    rhName=\"auditDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"auditDto\"\n    [rhBeforeSubmit]=\"beforeSubmitAudit\"\n    (rhInterfaceDataChange)=\"onAuditData($event)\"\n    (rhClose)=\"closeAuditDataModal()\"\n  >\n    <ng-template rhTemplate=\"IsPass\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-radio-group [formControl]=\"formgroup.get('IsPass')\" (ngModelChange)=\"businessManageSer.isPassChange($event, formgroup)\">\n            <label nz-radio [nzValue]=\"true\">是</label>\n            <label nz-radio [nzValue]=\"false\">否</label>\n          </nz-radio-group>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"AuditMessage\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"!formgroup.get('IsPass').value\"> {{ setting.displayName }}</nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <textarea\n            nz-input\n            [formControl]=\"formgroup.get('AuditMessage')\"\n            [placeholder]=\"setting.placeholder\"\n            [nzAutosize]=\"{ minRows: 2 }\"\n          ></textarea>\n          <div *ngIf=\"editDto?.AuditMessage\">\n            <span style=\"color: #faad14\">上一次审核信息：{{ editDto?.AuditMessage }}</span>\n          </div>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>\n","export const OtherInPlanOrderDetailFormInterface = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'OtherPlanBusinessApi',\n    interfaceName: 'GetOtherInPlanOrderDetailsDatasBy'\n};\n\nexport const OtherInPlanOrderDetailTableFieldDataset = [\n    { name: 'MaterialCode', displayName: '物料编号', width: 120 },\n    { name: 'MaterialName', displayName: '物料名称', width: 150 },\n    { name: 'MaterialSpecification', displayName: '物料规格', width: 200, rhEllipsis: true },\n    { name: 'OutWarehouseCode', displayName: '仓库代码', width: 120 },\n    { name: 'OutWarehouseName', displayName: '仓库名称', width: 150 },\n    { name: 'MaterialCategory', displayName: '物料类别', width: 120, type: 'array', config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'MaterialCategory' } },\n    { name: 'MaterialAttribute', displayName: '物料属性', width: 120, type: 'array', config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'ProductMaterialAttribute' } },\n    { name: 'MeasureUnit', displayName: '计量单位', width: 120, type: 'array', config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' } },\n    { name: 'MeasureAuxUnit', displayName: '辅助单位', width: 120, type: 'array', config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' } },\n    { name: 'MeasureAuxQty', displayName: '辅助数量', width: 120 },\n    { name: 'PlanQty', displayName: '计划数量', width: 120 },\n    { name: 'PlanTransactedQty', displayName: '计划已办理数量', width: 120 },\n    { name: 'Remark', displayName: '备注', width: 150, rhEllipsis: true },\n];\n\nexport const OtherOutPlanOrderDetailFormInterface = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'OtherPlanBusinessApi',\n    interfaceName: 'GetOtherOutPlanOrderDetailsDatasBy'\n};\n\nexport const OtherOutPlanOrderDetailTableFieldDataset = [\n    { name: 'MaterialCode', displayName: '物料编号', width: 120 },\n    { name: 'MaterialName', displayName: '物料名称', width: 150 },\n    { name: 'MaterialSpecification', displayName: '物料规格', width: 200, rhEllipsis: true },\n    { name: 'OutWarehouseCode', displayName: '仓库代码', width: 120 },\n    { name: 'OutWarehouseName', displayName: '仓库名称', width: 150 },\n    { name: 'MaterialCategory', displayName: '物料类别', width: 120, type: 'array', config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'MaterialCategory' } },\n    { name: 'MaterialAttribute', displayName: '物料属性', width: 120, type: 'array', config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'ProductMaterialAttribute' } },\n    { name: 'MeasureUnit', displayName: '计量单位', width: 120, type: 'array', config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' } },\n    { name: 'MeasureAuxUnit', displayName: '辅助单位', width: 120, type: 'array', config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' } },\n    { name: 'MeasureAuxQty', displayName: '辅助数量', width: 120 },\n    { name: 'PlanQty', displayName: '计划数量', width: 120 },\n    { name: 'PlanTransactedQty', displayName: '计划已办理数量', width: 120 },\n    { name: 'Remark', displayName: '备注', width: 150, rhEllipsis: true },\n];\n\n","import { WarehouseMaterialControlParameter } from './../../../business-manage-model';\nimport { RhBusinessManageService } from './../../../business-manage.service';\nimport { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { DataResultT, OpMode, RhBaseDto, RhSafeAny, RhSelectableDto, RhTableButtonInfoDto } from 'rh-base/model';\nimport { RhOtherBusinessService } from '../../other-business.service';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport { Observable } from 'rxjs';\nimport { OtherInTransactOrderDetails } from '../../other-business-model';\nimport { OtherInPlanOrderDetailFormInterface, OtherInPlanOrderDetailTableFieldDataset } from '../../detail-source-table-config';\nimport * as _ from 'lodash';\n\n@Component({\n  selector: 'rh-other-in-handle-details',\n  templateUrl: './other-in-handle-details.component.html',\n  styleUrls: ['./other-in-handle-details.component.less']\n})\nexport class OtherInHandleDetailsComponent implements OnInit {\n  @Input() rhOrder: RhBaseDto;\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter<RhSelectableDto[]>();\n\n  queryDto: RhBaseDto;\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto('deleteDetails', '删除', 'primary', true,'delete', true, null, (datas, buttonInfo) => this.removeDatas(datas as RhSelectableDto[], buttonInfo), false, true),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  isVisibleSettingOver = true;\n  tableVisibleSetting = {};\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  sourceDefaultQueryDto = {};\n  isEnterEditStatus = false;\n  // 计划明细\n  planOrderDetailFormInterface = OtherInPlanOrderDetailFormInterface;\n  planOrderDetailTableFieldDataset = OtherInPlanOrderDetailTableFieldDataset;\n  planOrderDetailDataset: RhSelectableDto[] = [];\n  // 仓储数据\n  warehouseAreaDataset: RhSelectableDto[] = [];\n  warehouseShelfDataset: RhSelectableDto[] = [];\n  storageLocationDataset: RhSelectableDto[] = [];\n  // 仓库控制配置参数\n  currentWarehouseMaterialControlPara: WarehouseMaterialControlParameter;\n\n  editDisabled = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return !list.includes(data.OrderStatus);\n  };\n\n  // 配置参数\n  get isEnableInPlan() {\n    return this.businessManageSer.IsEnableInPlan;\n  }\n  // 显示控制\n  get sourceDataModalTitle() {\n    return this.isEnableInPlan ? '选择计划明细数据' : '选择其他入库数据';\n  }\n  get isReadOnlyTable() {\n    return (\n      this.rhShowDetail || !this.rhOrder?.OrderId || this.isEnterEditStatus || this.editDisabled(this.rhOrder)\n    );\n  }\n  get readeOnlyButtonDataset() {\n    if (!this.rhOrder?.OrderId) return [];\n    else if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(\n    private operator: RhOtherBusinessService,\n    public businessManageSer: RhBusinessManageService\n  ) { }\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  async ngOnChanges(changes: SimpleChanges): Promise<void> {\n    const { rhOrder } = changes;\n    if (rhOrder && rhOrder.currentValue && this.rhOrder.OrderId) {\n      // 获取仓库控制配置参数\n      await this.getWarehouseMaterialControlParameter();\n      // 设置表格字段显隐性配置\n      this.isVisibleSettingOver = false;\n      this.initTableVisibleSetting();\n      setTimeout(() => this.isVisibleSettingOver = true);\n      // 获取明细数据\n      if (!rhOrder.previousValue) {\n        this.getDatas();\n      }\n      // 获取仓储数据\n      if (!this.rhShowDetail) {\n        this.getWarehouseInfos();\n      }\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.initInWarehouseVisibleSetting(this.currentWarehouseMaterialControlPara));\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('In'));\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      OrderId: this.rhOrder.OrderId,\n      FactoryCode: this.rhOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetOtherInTransactOrderDetailsDatasBy(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        this.rhDetailsUpdate.emit(this.dataresult?.Attach || []);\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`)\n        } else {\n          if (this.isEnableInPlan) {\n            this.getPlanOrderDetails();\n          }\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (this.editDisabled(this.rhOrder)) {\n      MsgHelper.ShowWarningMessage('当前单据状态无法编辑出库办理明细！');\n      return;\n    }\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach(data => data.OpSign = OpMode.OpEdit);\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    return new Observable(observer => {\n      this.businessManageSer.checkStoreDatas(details, 'In', false, false).then(checkRes => {\n        if (!checkRes) {\n          observer.error();\n        } else {\n          const dto = {\n            OrderMaster: this.rhOrder,\n            OrderDetails: details\n          };\n          const msg = editType === 'add' ? '新增' : '编辑';\n          this.dataLoading = true;\n          this.operator.StoreOtherInTransactOrderDetails(dto).subscribe((result) => {\n            if (result.Success) {\n              MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`)\n            } else {\n              MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n            }\n            this.dataLoading = false;\n            observer.next();\n            observer.complete();\n          }, () => {\n            this.dataLoading = false;\n            observer.error();\n          })\n        }\n      });\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[], buttonInfo: RhTableButtonInfoDto) {\n    buttonInfo.loading = true;\n    this.operator.RemoveOtherInTransactOrderDetails(details).subscribe((result) => {\n      if (result.Success) {\n        MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n        this.getDatas();\n      } else {\n        MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n      }\n      buttonInfo.loading = false;\n    }, () => buttonInfo.loading = false);\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    const datas = details.map(data => {\n      const temp = OtherInTransactOrderDetails.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 源单赋值\n      if (this.isEnableInPlan) {\n        temp.PlanOrderId = this.rhOrder.PlanOrderId;\n        temp.SourcePlannedQty = data.SourcePlannedQty || 0;\n        temp.PlanTransactedQty = data.PlanTransactedQty || 0;\n      }\n      // 单头赋值\n      temp.OrderId = this.rhOrder.OrderId;\n      temp.BusinessType = this.rhOrder.BusinessType;\n      temp.InWarehouseCode = this.rhOrder.InWarehouseCode;\n      temp.InWarehouseName = this.rhOrder.InWarehouseName;\n      temp.FactoryCode = this.rhOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach(data => data.OpSign = OpMode.OpEdit);\n      }\n      this.dataresult = { Attach: (this.dataresult?.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 启用计划，获取计划明细，用于初始化PlanTransactedQty */\n  getPlanOrderDetails() {\n    const queryDto = {\n      PlanOrderId: this.rhOrder.PlanOrderId,\n      SourceOrderId: this.rhOrder.SourceOrderId,\n      FactoryCode: this.rhOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetOtherInPlanOrderDetailsDatasBy(queryDto).subscribe(result => {\n      if (result.Success) {\n        this.planOrderDetailDataset = result.Attach;\n        // 初始化办理明细的PlanTransactedQty\n        // TODO\n        this.dataresult.Attach.forEach(data => {\n          const item = this.planOrderDetailDataset.find((ele) =>\n            ele.MaterialCode === data.MaterialCode);\n          if (item) {\n            data.PlanTransactedQty = item.PlanTransactedQty;\n          } else {\n            data.PlanTransactedQty = null;\n          }\n        });\n        this.dataresult = _.cloneDeep(this.dataresult);\n      } else {\n        this.planOrderDetailDataset = [];\n      }\n    });\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach(data => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach(data => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  openDataModal() {\n    if (this.isEnableInPlan) {\n      this.sourceDefaultQueryDto = {\n        PlanOrderId: this.rhOrder.PlanOrderId,\n        FactoryCode: this.rhOrder.FactoryCode\n      };\n    } else {\n      this.sourceDefaultQueryDto = {\n        FactoryCode: this.rhOrder.FactoryCode\n      };\n    }\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n\n  //#region 仓储相关区域开始\n  /** 根据是否启用，获取对应仓储信息 */\n  getWarehouseInfos() {\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseArea) {\n      this.businessManageSer.getWarehouseAreaDataset({ WarehouseCode: this.rhOrder.InWarehouseCode }).then(res => {\n        this.warehouseAreaDataset = res || [];\n      }).catch(() => {\n        this.warehouseAreaDataset = [];\n      });\n    }\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseShelf) {\n      this.businessManageSer.getWarehouseShelfDataset({ WarehouseCode: this.rhOrder.InWarehouseCode }).then(res => {\n        this.warehouseShelfDataset = res || [];\n      }).catch(() => {\n        this.warehouseShelfDataset = [];\n      });\n    }\n    if (this.currentWarehouseMaterialControlPara.IsEnableStorageLocation) {\n      this.businessManageSer.getStorageLocationDataset({ WarehouseCode: this.rhOrder.InWarehouseCode }).then(res => {\n        this.storageLocationDataset = res || [];\n      }).catch(() => {\n        this.storageLocationDataset = [];\n      });\n    }\n  }\n\n  /** 获取仓库控制参数配置 */\n  async getWarehouseMaterialControlParameter() {\n    const para = await this.businessManageSer.getWarehouseMaterialControlParameter({\n      WarehouseCode: this.rhOrder.InWarehouseCode\n    });\n    this.currentWarehouseMaterialControlPara = this.businessManageSer.transformWarehouseMaterialControlParameter(para);\n  }\n\n  inWarehouseAreaCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseAreaDataset.find(ele => ele.WarehouseAreaCode === code);\n      if (item) {\n        data.InWarehouseAreaName = item.WarehouseAreaName;\n      } else {\n        data.InWarehouseAreaName = null;\n      }\n    } else {\n      data.InWarehouseAreaName = null;\n    }\n    // 强关联则清空下属字段\n    if (this.currentWarehouseMaterialControlPara.IsStrictCorrelation) {\n      data.InWarehouseShelfCode = null;\n      data.InWarehouseShelfName = null;\n      data.InStorageLocationCode = null;\n      data.InStorageLocationName = null;\n    }\n  }\n\n  inWarehouseShelfCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseShelfDataset.find(ele => ele.WarehouseShelfCode === code);\n      if (item) {\n        data.InWarehouseShelfName = item.WarehouseShelfName;\n      } else {\n        data.InWarehouseShelfName = null;\n      }\n    } else {\n      data.InWarehouseShelfName = null;\n    }\n    // 强关联则清空下属字段\n    if (this.currentWarehouseMaterialControlPara.IsStrictCorrelation) {\n      data.InStorageLocationCode = null;\n      data.InStorageLocationName = null;\n    }\n  }\n\n  inStorageLocationCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.storageLocationDataset.find(ele => ele.StorageLocationCode === code);\n      if (item) {\n        data.InStorageLocationName = item.StorageLocationName;\n      } else {\n        data.InStorageLocationName = null;\n      }\n    } else {\n      data.InStorageLocationName = null;\n    }\n  }\n\n  /** 获取货架显示列表，行编辑应用 */\n  getWarehouseShelfDatasetDisplay(data: RhSelectableDto): RhSelectableDto[] {\n    return this.businessManageSer.getWarehouseShelfDatasetDisplay(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      this.warehouseShelfDataset,\n      'In'\n    );\n  }\n\n  /** 获取库位显示列表，行编辑应用 */\n  getStorageLocationDatasetDisplay(data: RhSelectableDto): RhSelectableDto[] {\n    return this.businessManageSer.getStorageLocationDatasetDisplay(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      this.storageLocationDataset,\n      'In'\n    );\n  }\n  //#endregion 仓储相关区域结束\n\n}\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isVisibleSettingOver\">\n    <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n      <rh-dynamic-table\n        rhName=\"handleDetailsReadOnlyTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n        <ng-template rhTemplate=\"InWarehouseAreaCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseAreaTpl\">\n            <nz-select\n              [(ngModel)]=\"data.InWarehouseAreaCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"inWarehouseAreaCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of warehouseAreaDataset\"\n                [nzLabel]=\"item.WarehouseAreaCode\"\n                [nzValue]=\"item.WarehouseAreaCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseAreaTpl>{{ data.InWarehouseAreaCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"InWarehouseAreaName\" let-item let-data=\"data\">\n          {{ data.InWarehouseAreaName }}\n        </ng-template>\n        <ng-template rhTemplate=\"InWarehouseShelfCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseShelfTpl\">\n            <nz-select\n              [(ngModel)]=\"data.InWarehouseShelfCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"inWarehouseShelfCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of getWarehouseShelfDatasetDisplay(data)\"\n                [nzLabel]=\"item.WarehouseShelfCode\"\n                [nzValue]=\"item.WarehouseShelfCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseShelfTpl>{{ data.InWarehouseShelfCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"InWarehouseShelfName\" let-item let-data=\"data\">\n          {{ data.InWarehouseShelfName }}\n        </ng-template>\n        <ng-template rhTemplate=\"InStorageLocationCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else storageLocationTpl\">\n            <nz-select\n              [(ngModel)]=\"data.InStorageLocationCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"inStorageLocationCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of getStorageLocationDatasetDisplay(data)\"\n                [nzLabel]=\"item.StorageLocationCode\"\n                [nzValue]=\"item.StorageLocationCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #storageLocationTpl>{{ data.InStorageLocationCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"InStorageLocationName\" let-item let-data=\"data\">\n          {{ data.InStorageLocationName }}\n        </ng-template>\n        <ng-template rhTemplate=\"SN\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else SNTpl\">\n            <input\n              nz-input\n              [(ngModel)]=\"data.SN\"\n              [placeholder]=\"item?.displayName\"\n              [ngStyle]=\"{ border: !data.SN && currentWarehouseMaterialControlPara.IsEnableSN ? '1px solid red' : '1px solid #d9d9d9' }\"\n            />\n            <p style=\"color: red; margin-bottom: 0\" *ngIf=\"!data.SN && currentWarehouseMaterialControlPara.IsEnableSN\">请输入条码</p>\n          </ng-container>\n          <ng-template #SNTpl>{{ data.SN }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"ProductionDate\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else ProDateTpl\">\n            <nz-date-picker\n              nz-input\n              [(ngModel)]=\"data.ProductionDate\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              [ngStyle]=\"{\n                border:\n                  !data.ProductionDate && currentWarehouseMaterialControlPara.IsEnableExpirationDate ? '1px solid red' : '1px solid #d9d9d9'\n              }\"\n            ></nz-date-picker>\n            <p\n              style=\"color: red; margin-bottom: 0\"\n              *ngIf=\"!data.ProductionDate && currentWarehouseMaterialControlPara.IsEnableExpirationDate\"\n            >\n              请输入生产日期\n            </p>\n          </ng-container>\n          <ng-template #ProDateTpl>{{ data.ProductionDate | date : 'yyyy-MM-dd' }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"LotNum\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else LotNumTpl\">\n            <input\n              nz-input\n              [(ngModel)]=\"data.LotNum\"\n              [placeholder]=\"item?.displayName\"\n              [ngStyle]=\"{\n                border: !data.LotNum && currentWarehouseMaterialControlPara.IsEnableLotNum ? '1px solid red' : '1px solid #d9d9d9'\n              }\"\n            />\n            <p style=\"color: red; margin-bottom: 0\" *ngIf=\"!data.LotNum && currentWarehouseMaterialControlPara.IsEnableLotNum\">\n              请输入批次号\n            </p>\n          </ng-container>\n          <ng-template #LotNumTpl>{{ data.LotNum }}</ng-template>\n        </ng-template>\n      </rh-dynamic-table>\n    </ng-container>\n    <ng-template #handleTpl>\n      <rh-dynamic-table\n        rhName=\"handleDetailsTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n      </rh-dynamic-table>\n    </ng-template>\n  </ng-container>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"sourceDataModalTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div *ngIf=\"isShowDataModal\">\n      <rh-dynamic-single-table\n        *ngIf=\"isEnableInPlan; else sourceDetailsTpl\"\n        rhName=\"planOrderDetailTable\"\n        [rhInterfaceInfo]=\"planOrderDetailFormInterface\"\n        [rhDefaultFieldDataset]=\"planOrderDetailTableFieldDataset\"\n        [rhPara]=\"sourceDefaultQueryDto\"\n        (rhSelectedDatasChange)=\"onSelectModal($event)\"\n      ></rh-dynamic-single-table>\n      <ng-template #sourceDetailsTpl>\n        <rh-other-in-source-data-table (rhModelChange)=\"onSelectModal($event)\" [rhSingleMode]=\"false\"> </rh-other-in-source-data-table>\n      </ng-template>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { CustomizeBaseTableComponent, DynamicFormComponent } from 'rh-base/shared';\nimport { RhDynamicInterfaceDto, RhSelectableDto, RhTableQueryOptionDto, CodeClassModel, RhDynamicTableFieldDto } from 'rh-base/model';\n\n@Component({\n  selector: 'rh-other-in-plan-order-table',\n  templateUrl: './other-in-plan-order-table.component.html',\n  styleUrls: ['./other-in-plan-order-table.component.less']\n})\nexport class OtherInPlanOrderTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n\n  @Input() rhSingleMode = true;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() rhDisabled: boolean;\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto>();\n\n  rhName = 'OtherInPlanOrderSelector';\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n  defaultInterfaceInfo: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'OtherPlanBusinessApi',\n    interfaceName: 'GetOtherInPlanOrderDatas'\n  };\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [\n    { name: 'PlanOrderId', displayName: '计划单号', placeholder: '计划单号', editable: true, visible: true },\n    {\n      name: 'OrderStatus',\n      displayName: '单据状态',\n      placeholder: '单据状态',\n      editable: false,\n      defaultValue: 'WaitInWarehouse',\n      visible: false\n    }\n  ];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [\n    { name: 'PlanOrderId', displayName: '计划单号', width: 150 },\n    {\n      name: 'OtherOrderType',\n      displayName: '单据类型',\n      width: 120,\n      type: 'array',\n      config: { moduleKey: 'Wms', groupKey: 'InOutWarehouseBusiness', paraCode: 'OtherInOrderType' }\n    },\n    { name: 'SupplierId', displayName: '供应商代码', width: 120 },\n    { name: 'Supplier', displayName: '供应商名称', width: 150 },\n    { name: 'InWarehouseCode', displayName: '入库仓库代码', width: 150 },\n    { name: 'InWarehouseName', displayName: '入库仓库名称', width: 150 },\n    { name: 'Remark', displayName: '备注', width: 120, rhEllipsis: true }\n  ];\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  constructor() {\n    //\n    super();\n  }\n\n  ngOnInit(): void {\n    this.rhInterfaceInfo = this.rhInterfaceInfo || this.defaultInterfaceInfo;\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n}\n","<!-- 搜索Form区域 -->\n<div class=\"search-area rh-full\">\n  <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n    <ng-template #searchTpl>\n      <rh-dynamic-form\n        #queryForm\n        rhName=\"{{ rhName }}Form\"\n        [rhValue]=\"rhDefaultQueryDto\"\n        (rhInterfaceDataChange)=\"setDatas($event)\"\n        (rhDataloadingChange)=\"dataLoadingChange($event)\"\n        (rhOutParaChange)=\"setInitFieldDataset($event)\"\n        [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n        [(rhFormInterface)]=\"rhInterfaceInfo\"\n      ></rh-dynamic-form>\n    </ng-template>\n  </nz-alert>\n</div>\n<!-- 搜索结果Table展示区域 -->\n<div class=\"table-area\">\n  <rh-dynamic-table\n    rhName=\"{{ rhName }}Table\"\n    [rhTableData]=\"dataresult\"\n    [rhTableDataloading]=\"dataLoading\"\n    [rhDefaultFieldDataset]=\"defaultTableFieldDataset\"\n    (rhRefresh)=\"refreshDatas($event)\"\n    (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\"\n    [rhSingleMode]=\"rhSingleMode\"\n  ></rh-dynamic-table>\n</div>\n","import { Component, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, SimpleChanges } from '@angular/core';\nimport { NzSizeLDSType } from 'ng-zorro-antd/core/types';\nimport { provideValueAccessor, RhRouteHelper } from 'rh-base/core';\nimport {\n  RhSelectableDto,\n  RhDynamicFormFieldDto,\n  RhSafeAny,\n  RhDynamicInterfaceDto,\n  RhDynamicCustomizeControlConfigDto,\n  RhRelatedFieldDataDto,\n  RhCustomizeEventSettingDto,\n  RhDisplayMode\n} from 'rh-base/model';\nimport { CustomizeBaseControlComponent, RhBaseDynamicService } from 'rh-base/shared';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { OtherInPlanOrderTableComponent } from './other-in-plan-order-table/other-in-plan-order-table.component';\n\n@Component({\n  selector: 'rh-other-in-plan-order-selector',\n  templateUrl: './other-in-plan-order-selector.component.html',\n  styleUrls: ['./other-in-plan-order-selector.component.less'],\n  providers: [provideValueAccessor(OtherInPlanOrderSelectorComponent)]\n})\nexport class OtherInPlanOrderSelectorComponent extends CustomizeBaseControlComponent {\n  rhRelatedFieldData = null;\n  @ViewChild(OtherInPlanOrderTableComponent) tableComp: OtherInPlanOrderTableComponent;\n  @Input() rhDynamicKey = 'OtherInPlanOrder';\n  @Input() rhTitle = '选择其他入库计划';\n  @Input() declare rhSize: NzSizeLDSType;\n  @Input() declare rhDisplayMode: RhDisplayMode;\n\n  @Input() rhProductCode: string;\n\n  iconSetting = 'search';\n  @Input() rhSingleMode = true;\n\n  formKeyFieldName = 'PlanOrderId';\n  formTextFieldName = 'PlanOrderId';\n\n  modelKeyFieldName = 'PlanOrderId';\n  modelTextFieldName = 'PlanOrderId';\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto>();\n  /** 对应table选中的数据 */\n  rhModel: RhSelectableDto = {};\n\n  /** 动态form字段配置数据 */\n  @Input() rhFieldData: RhDynamicFormFieldDto;\n  /** 整个form的数据 */\n  @Input() declare rhData: RhSafeAny;\n\n  /** selector input上展示的数据，一般为中文 */\n  //displayName: string;\n\n  //selectedData: RhSelectableDto[];\n\n  /** 自定义组件的自定义执行函数 */\n  cb: (data: RhSafeAny, ctx: RhSafeAny) => void;\n\n  /** 该组件关联的form名称 */\n  formName: string;\n\n  url: string;\n\n  /** 设置默认搜索接口 */\n  defaultFormInterface: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'OtherPlanBusinessApi',\n    interfaceName: 'GetOtherInPlanOrderDatas'\n  };\n\n  mappedList = [\n    { sourceName: this.modelKeyFieldName, mappedName: this.formKeyFieldName },\n    { sourceName: this.modelTextFieldName, mappedName: this.formTextFieldName },\n    { sourceName: 'OtherOrderType', mappedName: 'OtherOrderType' },\n    { sourceName: 'SupplierId', mappedName: 'SupplierId' },\n    { sourceName: 'Supplier', mappedName: 'Supplier' },\n    { sourceName: 'InWarehouseCode', mappedName: 'InWarehouseCode' },\n    { sourceName: 'InWarehouseName', mappedName: 'InWarehouseName' }\n  ];\n\n  constructor(\n    public fb: UntypedFormBuilder,\n    public cdr: ChangeDetectorRef,\n    public router: Router,\n    public dynamicSer: RhBaseDynamicService\n  ) {\n    super(cdr, dynamicSer);\n    this.url = RhRouteHelper.getRealRoute(this.router.url);\n  }\n\n  ngOnInit(): void {\n    this.rhPlaceholder = this.rhFieldData.placeholder as any;\n    this.formName = this.rhFieldData.relatedComponentName;\n    this.setCbValue();\n  }\n\n  // 自定义表单项配置\n  ngOnChanges(changes: SimpleChanges) {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue && rhData.currentValue[this.formKeyFieldName] === null) {\n      this.resetControlValue();\n    } else {\n      this.rhModel = {};\n    }\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedData = data || [];\n  }\n\n  /** 根据填入的code值，获取对应的完整数据，回填到输入框 */\n  getTargetDatas(code: string) {\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n  }\n  //#region customize selector interface区域\n  confirmSelect() {\n    this.rhModel = this.selectedData[0];\n    this.rhModelChange.emit(this.selectedData);\n    this.value = this.rhModel[this.modelKeyFieldName];\n    this.displayName = this.rhModel[this.modelTextFieldName];\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // 执行对应控件定义的代码\n    if (this.rhData && this.rhModel && this.cb) {\n      this.cb(this.rhData, this.rhModel);\n    }\n    this.setFormDataViaRelatedDatas();\n    // 执行form的相关字段赋值操作\n    this.triggerRelatedForm();\n    this.closeDataModal();\n  }\n\n  resetControlValue() {\n    this.displayName = null;\n    // 重置form对应数据对象\n    this.rhData[this.formKeyFieldName] = null;\n    this.rhData[this.formTextFieldName] = null;\n    // 清空数据中的字段的值\n    this.mappedList.forEach((ele) => {\n      this.rhData[ele.mappedName] = null;\n    });\n    this.rhModel = null;\n  }\n\n  setCbValue() {\n    const cbString = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.cb;\n    if (cbString) {\n      const fn = Function(`return ${cbString}`);\n      if (fn) {\n        this.cb = fn();\n      } else {\n        this.cb = this.setFormData;\n      }\n    } else {\n      // 当没有配置回调函数时，执行默认的回调函数\n      this.cb = this.setFormData;\n    }\n  }\n\n  /** 设置form对应的数据对象的值\n   * @param data form对应的数据对象\n   * @params 设置或者对应table选择的数据\n   */\n  setFormData(data: RhSafeAny, ctx: RhSelectableDto) {\n    data[this.formKeyFieldName] = ctx[this.modelKeyFieldName];\n    data[this.formTextFieldName] = ctx[this.modelTextFieldName];\n  }\n\n  setFormDataViaRelatedDatas() {\n    let relatedDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedModelDatas;\n    if (!relatedDatas?.length) {\n      relatedDatas = this.mappedList;\n    }\n    if (relatedDatas?.length) {\n      relatedDatas.forEach((ele) => {\n        this.rhData[ele.mappedName] = this.rhModel[ele.sourceName];\n      });\n    }\n  }\n\n  triggerRelatedForm() {\n    const tempDatas = (this.rhFieldData.config as RhDynamicCustomizeControlConfigDto)?.relatedFieldDatas;\n    const relatedDatas: RhRelatedFieldDataDto[] = tempDatas && tempDatas.length ? tempDatas : this.mappedList;\n    const data: RhCustomizeEventSettingDto = {\n      id: `${this.url}_${this.formName}`,\n      eventType: null,\n      options: null,\n      value: this.rhModel,\n      relatedFieldDatas: relatedDatas\n    };\n    this.dynamicSer.formCustomizeEventTrigger(data);\n  }\n  //#endregion customize selector interface区域结束\n}\n","<nz-input-group [nzSize]=\"rhSize\" [nzSuffix]=\"suffixIconSearch\" [nzAddOnAfter]=\"addOnAfter\">\n  <input type=\"text\" nz-input [ngModel]=\"displayName\" [placeholder]=\"rhPlaceholder\" readonly=\"readonly\" />\n</nz-input-group>\n<ng-template #suffixIconSearch>\n  <a *ngIf=\"displayName && !rhDisabled\" class=\"link-suffix\" (click)=\"clearInputInfo()\">\n    <i nz-icon nzType=\"close-circle\"></i>\n  </a>\n</ng-template>\n\n<ng-template #addOnAfter>\n  <button nz-button nzType=\"link\" type=\"button\" nzSize=\"small\">\n    <a (click)=\"openDataModal($event)\">\n      <i nz-icon [nzType]=\"iconSetting\"></i>\n    </a>\n  </button>\n</ng-template>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"rhTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedData\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-other-in-plan-order-table\n        [rhModel]=\"rhModel\"\n        (rhModelChange)=\"onSelectModal($event)\"\n        [rhInterfaceInfo]=\"defaultFormInterface\"\n        [rhSingleMode]=\"rhSingleMode\"\n        [rhDefaultQueryDto]=\"rhDefaultQueryDto\"\n      ></rh-other-in-plan-order-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { RhSharedManageService } from './../../../shared-manage/shared-manage.service';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\nimport { RhBusinessManageService } from './../../business-manage.service';\nimport { RhOtherBusinessService } from './../other-business.service';\nimport { BusinessType } from './../../business-type';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { CodeClassModel, DataResultT, OpMode, OpResult, RhBaseDto, RhDynamicTableFieldDto, RhLoginedUserDto, RhSafeAny, RhSelectableDto, RhTableButtonInfoDto, RhTableQueryOptionDto } from 'rh-base/model';\nimport { DynamicFormComponent } from 'rh-base/shared';\n\ntype TabType = 'edit' | 'detail' | 'audit';\n\n@Component({\n  selector: 'rh-other-in-handle',\n  templateUrl: './other-in-handle.component.html',\n  styleUrls: ['./other-in-handle.component.less']\n})\nexport class RhOtherInHandleComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  BusinessType = BusinessType.OtherIn;\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n  /** 显示配置 */\n  visibleSetting = {};\n  /** 单据明细数据，审核需要 */\n  orderDetails: RhSelectableDto[] = [];\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  isAsCreated = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n\n  get isEnableInPlan() {\n    return this.businessManageSer.IsEnableInPlan;\n  }\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto)),\n    new RhTableButtonInfoDto('submit', '提交审核', 'default', false, 'form', false, null, (data) => this.submitDataToAudit(data as RhBaseDto)),\n    new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) =>\n      this.openDetailTab({ data } as RhBaseDto, 'audit')\n    )\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '入库办理', 'primary', false, 'file', false, null, () => this.openEditTab(), true, true)\n  ];\n\n  beforeSubmit = async (data: RhBaseDto, context: DynamicFormComponent) => {\n    let result: OpResult = null;\n    const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n    context.submitLoading = true;\n    try {\n      if (this.editDto.OpSign === OpMode.OpAdd) {\n        // 基本信息\n        data.BusinessType = this.BusinessType;\n        data.OrderCreatorCode = this.currentUser.DisplayName;\n        data.OrderCreatorName = this.currentUser.UserName;\n\n        result = await this.operator.CreateOtherInTransactMasterOrder(data).toPromise();\n      } else {\n        result = await this.operator.UpdateOtherInTransactMasterOrder(data).toPromise();\n      }\n      if (result && result.Success) {\n        MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n        this.editDto.OrderId = result?.Attach?.OrderId;\n        this.isShowEditForm = false;\n        this.getEditData();\n      } else {\n        MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n      }\n    } catch (error) {\n      //\n    } finally {\n      context.submitLoading = false;\n    }\n\n    return false;\n  };\n\n  beforeSubmitAudit = (data: RhBaseDto) => {\n    if (!data.IsPass && !data.AuditMessage) {\n      MsgHelper.ShowWarningMessage('审核不通过，必须填写审核信息！');\n      return;\n    }\n    // 基本信息\n    data.OrderMaster = this.editDto;\n    data.OrderDetails = this.orderDetails;\n    data.Auditor = this.currentUser.DisplayName;\n    data.AuditorId = this.currentUser.UserName;\n\n    return true;\n  };\n\n  constructor(\n    private operator: RhOtherBusinessService,\n    public businessManageSer: RhBusinessManageService,\n    public storage: RhStorageService,\n    public sharedManageSer: RhSharedManageService\n  ) { }\n\n  ngOnInit(): void {\n    this.setUserInfo();\n    this.initEditButtonVisible();\n    this.initVisibleSetting();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  initEditButtonVisible() {\n    this.editButtonDataset[0].visible = this.editVisible.toString();\n    this.editButtonDataset[1].visible = this.isCreated.toString();\n    this.editButtonDataset[2].visible = this.auditVisible.toString();\n  }\n\n  initVisibleSetting() {\n    Object.assign(this.visibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('In'));\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {\n        TransactorCode: this.currentUser.UserName,\n        TransactorName: this.currentUser.DisplayName,\n        FactoryCode: this.currentUser.FactoryCode\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.editDto = null;\n    this.selectedIndex = 0;\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.selectedIndex = 1;\n  }\n\n  // 明细变化后\n  getDetails(details: RhSelectableDto[]) {\n    this.orderDetails = details;\n  }\n\n  getEditData() {\n    const queryDto = { OrderId: this.editDto.OrderId };\n    this.operator.GetOtherInTransactOrderViewDatas(queryDto).subscribe((result) => {\n      if (result.Success && result.Attach.length === 1) {\n        this.editDto = result.Attach[0];\n        this.editDto.OpSign = OpMode.OpEdit;\n      }\n    });\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    } else if (index === 1) {\n      this.orderDetails = [];\n    }\n  }\n\n  //#region 操作区域开始\n  /** 提交审核 */\n  submitDataToAudit(data: RhBaseDto) {\n    if (this.isCreated(data)) {\n      const dto = { OrderId: data.OrderId };\n      this.dataLoading = true;\n      this.operator.SumbitAuditOtherInTransactOrder(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('提交审核成功！');\n            if (this.selectedIndex === 0) this.getDatas();\n            this.closeEditTab();\n          } else {\n            MsgHelper.ShowWarningMessage(`提交审核失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行提交审核！');\n    }\n  }\n\n  /** 审核 */\n  auditData(data: RhBaseDto) {\n    if (this.auditVisible(data)) {\n      this.openAuditDataModal(data);\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行审核！');\n    }\n  }\n\n  /** 打开审核弹窗 */\n  openAuditDataModal(data: RhBaseDto) {\n    this.auditDto = { OrderId: data.OrderId };\n    this.isShowAuditDataModal = true;\n  }\n\n  /** 关闭审核弹窗 */\n  closeAuditDataModal() {\n    this.auditDto = {};\n    this.isShowAuditDataModal = false;\n  }\n\n  /** 审核接口返回 */\n  onAuditData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('审核入库办理单据成功！');\n      this.closeAuditDataModal();\n      this.getEditData();\n    } else {\n      MsgHelper.ShowWarningModal(`审核入库办理单据失败！${result.Message}`);\n    }\n  }\n\n  /** 删除办理单据 */\n  removeDatas(datas: RhBaseDto[]) {\n    const some = datas.some((f) => !this.isAsCreated(f));\n    if (some) {\n      MsgHelper.ShowWarningMessage('只能删除制单状态的数据！');\n    } else {\n      this.dataLoading = true;\n      this.operator.RemoveOtherInTransactOrders(datas as RhSafeAny).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('删除成功！');\n            this.getDatas();\n          } else {\n            MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    }\n  }\n  //#endregion 操作区域结束\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  ></rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                [rhVisibleSetting]=\"visibleSetting\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              ></rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>其他入库办理</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"入库单单头\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button\n                    *ngIf=\"editVisible(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"isShowEditForm = true\"\n                  >\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button\n                    *ngIf=\"isCreated(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"submitDataToAudit(editDto)\"\n                  >\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                  <button *ngIf=\"auditVisible(editDto)\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else detailsDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  [rhVisibleSetting]=\"visibleSetting\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template\n                    rhTemplate=\"InWarehouseCode\"\n                    let-formgroup\n                    let-setting=\"setting\"\n                    let-hostSetting=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-warehouse-selector\n                          rhInventoryControlSpecialType=\"Warehouse\"\n                          [formControl]=\"formgroup.get('InWarehouseCode')\"\n                          [rhData]=\"formData\"\n                          [rhFieldData]=\"setting\"\n                          [rhSize]=\"hostSetting?.rhSize\"\n                        >\n                        </rh-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                  <ng-template rhTemplate=\"PlanOrderId\" let-formgroup let-setting=\"setting\" let-formData=\"formData\">\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-other-in-plan-order-selector\n                          [formControl]=\"formgroup.get('PlanOrderId')\"\n                          [rhFieldData]=\"setting\"\n                          [rhDisplayMode]=\"1\"\n                          [rhData]=\"formData\"\n                        ></rh-other-in-plan-order-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"入库单单体\">\n              <rh-other-in-handle-details [rhOrder]=\"editDto\" (rhDetailsUpdate)=\"getDetails($event)\"> </rh-other-in-handle-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"入库单单头\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <button\n                  *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\"\n                  nz-button\n                  nzType=\"primary\"\n                  nzSize=\"small\"\n                  type=\"button\"\n                  (click)=\"auditData(editDto)\"\n                >\n                  <i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n                </button>\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"detailsDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"入库单单体\">\n              <rh-other-in-handle-details [rhOrder]=\"editDto\" [rhShowDetail]=\"true\" (rhDetailsUpdate)=\"getDetails($event)\">\n              </rh-other-in-handle-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #detailsDescription>\n  <rh-dynamic-description\n    *ngIf=\"isRefreshDesc\"\n    rhName=\"detailsDescription\"\n    [rhValue]=\"editDto\"\n    [rhVisibleSetting]=\"visibleSetting\"\n  ></rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'入库办理审核'\"\n  [nzVisible]=\"isShowAuditDataModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeAuditDataModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #auditDataForm\n    rhName=\"auditDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"auditDto\"\n    [rhBeforeSubmit]=\"beforeSubmitAudit\"\n    (rhInterfaceDataChange)=\"onAuditData($event)\"\n    (rhClose)=\"closeAuditDataModal()\"\n  >\n    <ng-template rhTemplate=\"IsPass\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-radio-group [formControl]=\"formgroup.get('IsPass')\" (ngModelChange)=\"businessManageSer.isPassChange($event, formgroup)\">\n            <label nz-radio [nzValue]=\"true\">是</label>\n            <label nz-radio [nzValue]=\"false\">否</label>\n          </nz-radio-group>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"AuditMessage\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"!formgroup.get('IsPass').value\"> {{ setting.displayName }}</nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <textarea\n            nz-input\n            [formControl]=\"formgroup.get('AuditMessage')\"\n            [placeholder]=\"setting.placeholder\"\n            [nzAutosize]=\"{ minRows: 2 }\"\n          ></textarea>\n          <div *ngIf=\"editDto?.AuditMessage\">\n            <span style=\"color: #faad14\">上一次审核信息：{{ editDto?.AuditMessage }}</span>\n          </div>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>\n","import { OtherOutTransactOrderDetails } from './../../other-business-model';\nimport { RhOtherBusinessService } from './../../other-business.service';\nimport { WarehouseMaterialControlParameter } from './../../../business-manage-model';\nimport { RhBusinessManageService } from './../../../business-manage.service';\nimport { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { DataResultT, OpMode, RhBaseDto, RhSafeAny, RhSelectableDto, RhTableButtonInfoDto } from 'rh-base/model';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport { Observable } from 'rxjs';\nimport { OtherOutPlanOrderDetailFormInterface, OtherOutPlanOrderDetailTableFieldDataset } from '../../detail-source-table-config';\nimport * as _ from 'lodash';\n\n@Component({\n  selector: 'rh-other-out-handle-details',\n  templateUrl: './other-out-handle-details.component.html',\n  styleUrls: ['./other-out-handle-details.component.less']\n})\nexport class OtherOutHandleDetailsComponent implements OnInit {\n  @Input() rhOrder: RhBaseDto;\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter<RhSelectableDto[]>();\n\n  queryDto: RhBaseDto;\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto('deleteDetails', '删除', 'primary', true,'delete', true, null, (datas, buttonInfo) => this.removeDatas(datas as RhSelectableDto[], buttonInfo), false, true),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  isVisibleSettingOver = true;\n  tableVisibleSetting = {};\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  sourceDefaultQueryDto = {};\n  isEnterEditStatus = false;\n  // 计划明细\n  planOrderDetailFormInterface = OtherOutPlanOrderDetailFormInterface;\n  planOrderDetailTableFieldDataset = OtherOutPlanOrderDetailTableFieldDataset;\n  planOrderDetailDataset: RhSelectableDto[] = [];\n  // 仓储数据\n  warehouseAreaDataset: RhSelectableDto[] = [];\n  warehouseShelfDataset: RhSelectableDto[] = [];\n  storageLocationDataset: RhSelectableDto[] = [];\n  // 仓库控制配置参数\n  currentWarehouseMaterialControlPara: WarehouseMaterialControlParameter;\n\n  editDisabled = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return !list.includes(data.OrderStatus);\n  };\n\n  // 配置参数\n  get isEnableOutPlan() {\n    return this.businessManageSer.IsEnableOutPlan;\n  }\n  // 显示控制\n  get sourceDataModalTitle() {\n    return this.isEnableOutPlan ? '选择计划明细数据' : '选择源单明细数据';\n  }\n  get isReadOnlyTable() {\n    return (\n      this.rhShowDetail || !this.rhOrder?.OrderId || this.isEnterEditStatus || this.editDisabled(this.rhOrder)\n    );\n  }\n  get readeOnlyButtonDataset() {\n    if (!this.rhOrder?.OrderId) return [];\n    else if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(\n    private operator: RhOtherBusinessService,\n    public businessManageSer: RhBusinessManageService\n  ) { }\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  async ngOnChanges(changes: SimpleChanges): Promise<void> {\n    const { rhOrder } = changes;\n    if (rhOrder && rhOrder.currentValue && this.rhOrder.OrderId) {\n      // 获取仓库控制配置参数\n      await this.getWarehouseMaterialControlParameter();\n      // 设置表格字段显隐性配置\n      this.isVisibleSettingOver = false;\n      this.initTableVisibleSetting();\n      setTimeout(() => this.isVisibleSettingOver = true);\n      // 获取明细数据\n      if (!rhOrder.previousValue) {\n        this.getDatas();\n      }\n      // 获取仓储数据\n      if (this.isEnableOutPlan) {\n        this.getWarehouseInfos();\n      }\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.initOutWarehouseVisibleSetting(this.currentWarehouseMaterialControlPara));\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('Out'));\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      OrderId: this.rhOrder.OrderId,\n      SourceOrderId: this.rhOrder.SourceOrderId,\n      FactoryCode: this.rhOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetOtherOutTransactOrderDetailsDatasBy(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        this.rhDetailsUpdate.emit(this.dataresult?.Attach || []);\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`)\n        } else {\n          if (this.isEnableOutPlan) {\n            this.getPlanOrderDetails();\n          }\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (this.editDisabled(this.rhOrder)) {\n      MsgHelper.ShowWarningMessage('当前单据状态无法编辑出库办理明细！');\n      return;\n    }\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach(data => data.OpSign = OpMode.OpEdit);\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    return new Observable(observer => {\n      this.businessManageSer.checkStoreDatas(details, 'Out', false, false).then(checkRes => {\n        if (!checkRes) {\n          observer.error();\n        } else {\n          const dto = {\n            OrderMaster: this.rhOrder,\n            OrderDetails: details\n          };\n          const msg = editType === 'add' ? '新增' : '编辑';\n          this.dataLoading = true;\n          this.operator.StoreOtherOutTransactOrderDetails(dto).subscribe((result) => {\n            if (result.Success) {\n              MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`)\n            } else {\n              MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n            }\n            this.dataLoading = false;\n            observer.next();\n            observer.complete();\n          }, () => {\n            this.dataLoading = false;\n            observer.error();\n          })\n        }\n      });\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[], buttonInfo: RhTableButtonInfoDto) {\n    buttonInfo.loading = true;\n    this.operator.RemoveOtherOutTransactOrderDetails(details).subscribe((result) => {\n      if (result.Success) {\n        MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n        this.getDatas();\n      } else {\n        MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n      }\n      buttonInfo.loading = false;\n    }, () => buttonInfo.loading = false);\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    const datas = details.map(data => {\n      const temp = OtherOutTransactOrderDetails.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 源单赋值\n      if (this.isEnableOutPlan) {\n        temp.PlanOrderId = this.rhOrder.PlanOrderId;\n        temp.SourcePlannedQty = data.SourcePlannedQty || 0;\n        temp.PlanTransactedQty = data.PlanTransactedQty || 0;\n      } else {\n        // 库存信息作为源数据\n        temp.OutWarehouseAreaCode = data.WarehouseAreaCode;\n        temp.OutWarehouseAreaName = data.WarehouseAreaName;\n        temp.OutWarehouseShelfCode = data.WarehouseShelfCode;\n        temp.OutWarehouseShelfName = data.WarehouseShelfName;\n        temp.OutStorageLocationCode = data.StorageLocationCode;\n        temp.OutStorageLocationName = data.StorageLocationName;\n      }\n      // 单头赋值\n      temp.OrderId = this.rhOrder.OrderId;\n      temp.BusinessType = this.rhOrder.BusinessType;\n      temp.OutWarehouseCode = this.rhOrder.OutWarehouseCode;\n      temp.OutWarehouseName = this.rhOrder.OutWarehouseName;\n      temp.FactoryCode = this.rhOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach(data => data.OpSign = OpMode.OpEdit);\n      }\n      this.dataresult = { Attach: (this.dataresult?.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 启用计划，获取计划明细，用于初始化PlanTransactedQty */\n  getPlanOrderDetails() {\n    const queryDto = {\n      PlanOrderId: this.rhOrder.PlanOrderId,\n      SourceOrderId: this.rhOrder.SourceOrderId,\n      FactoryCode: this.rhOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetOtherOutPlanOrderDetailsDatasBy(queryDto).subscribe(result => {\n      if (result.Success) {\n        this.planOrderDetailDataset = result.Attach;\n        // 初始化办理明细的PlanTransactedQty\n        this.dataresult.Attach.forEach(data => {\n          const item = this.planOrderDetailDataset.find((ele) =>\n            ele.MaterialCode === data.MaterialCode);\n          if (item) {\n            data.PlanTransactedQty = item.PlanTransactedQty;\n          } else {\n            data.PlanTransactedQty = null;\n          }\n        });\n        this.dataresult = _.cloneDeep(this.dataresult);\n      } else {\n        this.planOrderDetailDataset = [];\n      }\n    });\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach(data => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach(data => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  openDataModal() {\n    if (this.isEnableOutPlan) {\n      this.sourceDefaultQueryDto = {\n        PlanOrderId: this.rhOrder.PlanOrderId,\n        FactoryCode: this.rhOrder.FactoryCode\n      };\n    } else {\n      this.sourceDefaultQueryDto = {\n        WarehouseCode: this.rhOrder.OutWarehouseCode,\n        IsObsoleteMaterial: false,\n        IsHideZeroInventory: false,\n        FactoryCode: this.rhOrder.FactoryCode\n      };\n    }\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n\n  //#region 仓储相关区域开始\n  /** 根据是否启用，获取对应仓储信息 */\n  getWarehouseInfos() {\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseArea) {\n      this.businessManageSer.getWarehouseAreaDataset({ WarehouseCode: this.rhOrder.OutWarehouseCode }).then(res => {\n        this.warehouseAreaDataset = res || [];\n      }).catch(() => {\n        this.warehouseAreaDataset = [];\n      });\n    }\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseShelf) {\n      this.businessManageSer.getWarehouseShelfDataset({ WarehouseCode: this.rhOrder.OutWarehouseCode }).then(res => {\n        this.warehouseShelfDataset = res || [];\n      }).catch(() => {\n        this.warehouseShelfDataset = [];\n      });\n    }\n    if (this.currentWarehouseMaterialControlPara.IsEnableStorageLocation) {\n      this.businessManageSer.getStorageLocationDataset({ WarehouseCode: this.rhOrder.OutWarehouseCode }).then(res => {\n        this.storageLocationDataset = res || [];\n      }).catch(() => {\n        this.storageLocationDataset = [];\n      });\n    }\n  }\n\n  /** 获取仓库控制参数配置 */\n  async getWarehouseMaterialControlParameter() {\n    const para = await this.businessManageSer.getWarehouseMaterialControlParameter({\n      WarehouseCode: this.rhOrder.OutWarehouseCode\n    });\n    this.currentWarehouseMaterialControlPara = this.businessManageSer.transformWarehouseMaterialControlParameter(para);\n  }\n\n  outWarehouseAreaCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseAreaDataset.find(ele => ele.WarehouseAreaCode === code);\n      if (item) {\n        data.OutWarehouseAreaName = item.WarehouseAreaName;\n      } else {\n        data.OutWarehouseAreaName = null;\n      }\n    } else {\n      data.OutWarehouseAreaName = null;\n    }\n    // 强关联则清空下属字段\n    if (this.currentWarehouseMaterialControlPara.IsStrictCorrelation) {\n      data.OutWarehouseShelfCode = null;\n      data.OutWarehouseShelfName = null;\n      data.OutStorageLocationCode = null;\n      data.OutStorageLocationName = null;\n    }\n    // 获取库存数据\n    this.getMaterialSumerizeStockQtyBy(data);\n  }\n\n  outWarehouseShelfCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseShelfDataset.find(ele => ele.WarehouseShelfCode === code);\n      if (item) {\n        data.OutWarehouseShelfName = item.WarehouseShelfName;\n      } else {\n        data.OutWarehouseShelfName = null;\n      }\n    } else {\n      data.OutWarehouseShelfName = null;\n    }\n    // 强关联则清空下属字段\n    if (this.currentWarehouseMaterialControlPara.IsStrictCorrelation) {\n      data.OutStorageLocationCode = null;\n      data.OutStorageLocationName = null;\n    }\n    // 获取库存数据\n    this.getMaterialSumerizeStockQtyBy(data);\n  }\n\n  outStorageLocationCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.storageLocationDataset.find(ele => ele.StorageLocationCode === code);\n      if (item) {\n        data.OutStorageLocationName = item.StorageLocationName;\n      } else {\n        data.OutStorageLocationName = null;\n      }\n    } else {\n      data.OutStorageLocationName = null;\n    }\n    // 获取库存数据\n    this.getMaterialSumerizeStockQtyBy(data);\n  }\n\n  getMaterialSumerizeStockQtyBy(data: RhSelectableDto) {\n    this.businessManageSer.getMaterialSumerizeStockQtyBy(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      'Out'\n    );\n  }\n\n  /** 获取货架显示列表，行编辑应用 */\n  getWarehouseShelfDatasetDisplay(data: RhSelectableDto): RhSelectableDto[] {\n    return this.businessManageSer.getWarehouseShelfDatasetDisplay(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      this.warehouseShelfDataset,\n      'Out'\n    );\n  }\n\n  /** 获取库位显示列表，行编辑应用 */\n  getStorageLocationDatasetDisplay(data: RhSelectableDto): RhSelectableDto[] {\n    return this.businessManageSer.getStorageLocationDatasetDisplay(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      this.storageLocationDataset,\n      'Out'\n    );\n  }\n  //#endregion 仓储相关区域结束\n\n}\n\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isVisibleSettingOver\">\n    <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n      <rh-dynamic-table\n        rhName=\"handleDetailsReadOnlyTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n        <!-- 启用计划，需要选择仓储信息 -->\n        <ng-container *ngIf=\"isEnableOutPlan\">\n          <ng-template rhTemplate=\"OutWarehouseAreaCode\" let-item let-data=\"data\">\n            <ng-container *ngIf=\"data.select; else warehouseAreaTpl\">\n              <nz-select\n                [(ngModel)]=\"data.OutWarehouseAreaCode\"\n                [nzPlaceHolder]=\"item?.displayName\"\n                nzAllowClear\n                (ngModelChange)=\"outWarehouseAreaCodeChange($event, data)\"\n              >\n                <nz-option\n                  *ngFor=\"let item of warehouseAreaDataset\"\n                  [nzLabel]=\"item.WarehouseAreaCode\"\n                  [nzValue]=\"item.WarehouseAreaCode\"\n                ></nz-option>\n              </nz-select>\n            </ng-container>\n            <ng-template #warehouseAreaTpl>{{ data.OutWarehouseAreaCode }}</ng-template>\n          </ng-template>\n          <ng-template rhTemplate=\"OutWarehouseAreaName\" let-item let-data=\"data\">\n            {{ data.OutWarehouseAreaName }}\n          </ng-template>\n          <ng-template rhTemplate=\"OutWarehouseShelfCode\" let-item let-data=\"data\">\n            <ng-container *ngIf=\"data.select; else warehouseShelfTpl\">\n              <nz-select\n                [(ngModel)]=\"data.OutWarehouseShelfCode\"\n                [nzPlaceHolder]=\"item?.displayName\"\n                nzAllowClear\n                (ngModelChange)=\"outWarehouseShelfCodeChange($event, data)\"\n              >\n                <nz-option\n                  *ngFor=\"let item of getWarehouseShelfDatasetDisplay(data)\"\n                  [nzLabel]=\"item.WarehouseShelfCode\"\n                  [nzValue]=\"item.WarehouseShelfCode\"\n                ></nz-option>\n              </nz-select>\n            </ng-container>\n            <ng-template #warehouseShelfTpl>{{ data.OutWarehouseShelfCode }}</ng-template>\n          </ng-template>\n          <ng-template rhTemplate=\"OutWarehouseShelfName\" let-item let-data=\"data\">\n            {{ data.OutWarehouseShelfName }}\n          </ng-template>\n          <ng-template rhTemplate=\"OutStorageLocationCode\" let-item let-data=\"data\">\n            <ng-container *ngIf=\"data.select; else storageLocationTpl\">\n              <nz-select\n                [(ngModel)]=\"data.OutStorageLocationCode\"\n                [nzPlaceHolder]=\"item?.displayName\"\n                nzAllowClear\n                (ngModelChange)=\"outStorageLocationCodeChange($event, data)\"\n              >\n                <nz-option\n                  *ngFor=\"let item of getStorageLocationDatasetDisplay(data)\"\n                  [nzLabel]=\"item.StorageLocationCode\"\n                  [nzValue]=\"item.StorageLocationCode\"\n                ></nz-option>\n              </nz-select>\n            </ng-container>\n            <ng-template #storageLocationTpl>{{ data.OutStorageLocationCode }}</ng-template>\n          </ng-template>\n          <ng-template rhTemplate=\"OutStorageLocationName\" let-item let-data=\"data\">\n            {{ data.OutStorageLocationName }}\n          </ng-template>\n        </ng-container>\n        <ng-template rhTemplate=\"SN\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else SNTpl\">\n            <input\n              nz-input\n              [(ngModel)]=\"data.SN\"\n              [placeholder]=\"item?.displayName\"\n              [ngStyle]=\"{ border: !data.SN && currentWarehouseMaterialControlPara.IsEnableSN ? '1px solid red' : '1px solid #d9d9d9' }\"\n            />\n            <p style=\"color: red; margin-bottom: 0\" *ngIf=\"!data.SN && currentWarehouseMaterialControlPara.IsEnableSN\">请输入条码</p>\n          </ng-container>\n          <ng-template #SNTpl>{{ data.SN }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"ProductionDate\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else ProDateTpl\">\n            <nz-date-picker\n              nz-input\n              [(ngModel)]=\"data.ProductionDate\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              [ngStyle]=\"{\n                border:\n                  !data.ProductionDate && currentWarehouseMaterialControlPara.IsEnableExpirationDate ? '1px solid red' : '1px solid #d9d9d9'\n              }\"\n            ></nz-date-picker>\n            <p\n              style=\"color: red; margin-bottom: 0\"\n              *ngIf=\"!data.ProductionDate && currentWarehouseMaterialControlPara.IsEnableExpirationDate\"\n            >\n              请输入生产日期\n            </p>\n          </ng-container>\n          <ng-template #ProDateTpl>{{ data.ProductionDate | date : 'yyyy-MM-dd' }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"LotNum\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else LotNumTpl\">\n            <input\n              nz-input\n              [(ngModel)]=\"data.LotNum\"\n              [placeholder]=\"item?.displayName\"\n              [ngStyle]=\"{\n                border: !data.LotNum && currentWarehouseMaterialControlPara.IsEnableLotNum ? '1px solid red' : '1px solid #d9d9d9'\n              }\"\n            />\n            <p style=\"color: red; margin-bottom: 0\" *ngIf=\"!data.LotNum && currentWarehouseMaterialControlPara.IsEnableLotNum\">\n              请输入批次号\n            </p>\n          </ng-container>\n          <ng-template #LotNumTpl>{{ data.LotNum }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"AvailableQty\" let-item let-data=\"data\">\n          {{ data.AvailableQty }}\n        </ng-template>\n      </rh-dynamic-table>\n    </ng-container>\n    <ng-template #handleTpl>\n      <rh-dynamic-table\n        rhName=\"handleDetailsTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n      </rh-dynamic-table>\n    </ng-template>\n  </ng-container>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"sourceDataModalTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div *ngIf=\"isShowDataModal\">\n      <rh-dynamic-single-table\n        *ngIf=\"isEnableOutPlan; else sourceDetailsTpl\"\n        rhName=\"planOrderDetailTable\"\n        [rhInterfaceInfo]=\"planOrderDetailFormInterface\"\n        [rhDefaultFieldDataset]=\"planOrderDetailTableFieldDataset\"\n        [rhPara]=\"sourceDefaultQueryDto\"\n        (rhSelectedDatasChange)=\"onSelectModal($event)\"\n      ></rh-dynamic-single-table>\n      <ng-template #sourceDetailsTpl>\n        <rh-other-out-source-data-table\n          [rhDefaultQueryDto]=\"sourceDefaultQueryDto\"\n          (rhModelChange)=\"onSelectModal($event)\"\n          [rhSingleMode]=\"false\"\n        >\n        </rh-other-out-source-data-table>\n      </ng-template>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { CustomizeBaseTableComponent, DynamicFormComponent } from 'rh-base/shared';\nimport { RhDynamicInterfaceDto, RhSelectableDto, RhTableQueryOptionDto, CodeClassModel, RhDynamicTableFieldDto } from 'rh-base/model';\n\n@Component({\n  selector: 'rh-other-out-plan-order-table',\n  templateUrl: './other-out-plan-order-table.component.html',\n  styleUrls: ['./other-out-plan-order-table.component.less']\n})\nexport class OtherOutPlanOrderTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n\n  @Input() rhSingleMode = true;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() rhDisabled: boolean;\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto>();\n\n  rhName = 'OtherOutPlanOrderSelector';\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n  defaultInterfaceInfo: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'OtherPlanBusinessApi',\n    interfaceName: 'GetOtherOutPlanOrderDatas'\n  };\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [\n    { name: 'PlanOrderId', displayName: '计划单号', placeholder: '计划单号', editable: true, visible: true },\n    {\n      name: 'OrderStatus',\n      displayName: '单据状态',\n      placeholder: '单据状态',\n      editable: false,\n      defaultValue: 'WaitOutWarehouse',\n      visible: false\n    }\n  ];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [\n    { name: 'PlanOrderId', displayName: '计划单号', width: 150 },\n    {\n      name: 'OtherOrderType',\n      displayName: '单据类型',\n      width: 120,\n      type: 'array',\n      config: { moduleKey: 'Wms', groupKey: 'InOutWarehouseBusiness', paraCode: 'OtherOutOrderType' }\n    },\n    { name: 'CustomerCode', displayName: '客户编码', width: 120 },\n    { name: 'CustomerName', displayName: '客户名称', width: 150 },\n    { name: 'OutWarehouseCode', displayName: '出库仓库代码', width: 150 },\n    { name: 'OutWarehouseName', displayName: '出库仓库名称', width: 150 },\n    { name: 'Remark', displayName: '备注', width: 120, rhEllipsis: true }\n  ];\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  constructor() {\n    //\n    super();\n  }\n\n  ngOnInit(): void {\n    this.rhInterfaceInfo = this.rhInterfaceInfo || this.defaultInterfaceInfo;\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n}\n","<!-- 搜索Form区域 -->\n<div class=\"search-area rh-full\">\n  <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n    <ng-template #searchTpl>\n      <rh-dynamic-form\n        #queryForm\n        rhName=\"{{ rhName }}Form\"\n        [rhValue]=\"rhDefaultQueryDto\"\n        (rhInterfaceDataChange)=\"setDatas($event)\"\n        (rhDataloadingChange)=\"dataLoadingChange($event)\"\n        (rhOutParaChange)=\"setInitFieldDataset($event)\"\n        [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n        [(rhFormInterface)]=\"rhInterfaceInfo\"\n      ></rh-dynamic-form>\n    </ng-template>\n  </nz-alert>\n</div>\n<!-- 搜索结果Table展示区域 -->\n<div class=\"table-area\">\n  <rh-dynamic-table\n    rhName=\"{{ rhName }}Table\"\n    [rhTableData]=\"dataresult\"\n    [rhTableDataloading]=\"dataLoading\"\n    [rhDefaultFieldDataset]=\"defaultTableFieldDataset\"\n    (rhRefresh)=\"refreshDatas($event)\"\n    (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\"\n    [rhSingleMode]=\"rhSingleMode\"\n  ></rh-dynamic-table>\n</div>\n","import { OtherOutPlanOrderTableComponent } from './other-out-plan-order-table/other-out-plan-order-table.component';\nimport { Component, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, SimpleChanges } from '@angular/core';\nimport { NzSizeLDSType } from 'ng-zorro-antd/core/types';\nimport { provideValueAccessor, RhRouteHelper } from 'rh-base/core';\nimport {\n  RhSelectableDto,\n  RhDynamicFormFieldDto,\n  RhSafeAny,\n  RhDynamicInterfaceDto,\n  RhDynamicCustomizeControlConfigDto,\n  RhRelatedFieldDataDto,\n  RhCustomizeEventSettingDto,\n  RhDisplayMode\n} from 'rh-base/model';\nimport { CustomizeBaseControlComponent, RhBaseDynamicService } from 'rh-base/shared';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Router } from '@angular/router';\n\n@Component({\n  selector: 'rh-other-out-plan-order-selector',\n  templateUrl: './other-out-plan-order-selector.component.html',\n  styleUrls: ['./other-out-plan-order-selector.component.less'],\n  providers: [provideValueAccessor(OtherOutPlanOrderSelectorComponent)]\n})\nexport class OtherOutPlanOrderSelectorComponent extends CustomizeBaseControlComponent {\n  rhRelatedFieldData = null;\n  @ViewChild(OtherOutPlanOrderTableComponent) tableComp: OtherOutPlanOrderTableComponent;\n  @Input() rhDynamicKey = 'OtherOutPlanOrder';\n  @Input() rhTitle = '选择其他出库计划';\n  @Input() declare rhSize: NzSizeLDSType;\n  @Input() declare rhDisplayMode: RhDisplayMode;\n\n  @Input() rhProductCode: string;\n\n  iconSetting = 'search';\n  @Input() rhSingleMode = true;\n\n  formKeyFieldName = 'PlanOrderId';\n  formTextFieldName = 'PlanOrderId';\n\n  modelKeyFieldName = 'PlanOrderId';\n  modelTextFieldName = 'PlanOrderId';\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto>();\n  /** 对应table选中的数据 */\n  rhModel: RhSelectableDto = {};\n\n  /** 动态form字段配置数据 */\n  @Input() rhFieldData: RhDynamicFormFieldDto;\n  /** 整个form的数据 */\n  @Input() declare rhData: RhSafeAny;\n\n  /** selector input上展示的数据，一般为中文 */\n  //displayName: string;\n\n  //selectedData: RhSelectableDto[];\n\n  /** 自定义组件的自定义执行函数 */\n  cb: (data: RhSafeAny, ctx: RhSafeAny) => void;\n\n  /** 该组件关联的form名称 */\n  formName: string;\n\n  url: string;\n\n  /** 设置默认搜索接口 */\n  defaultFormInterface: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'OtherPlanBusinessApi',\n    interfaceName: 'GetOtherOutPlanOrderDatas'\n  };\n\n  mappedList = [\n    { sourceName: this.modelKeyFieldName, mappedName: this.formKeyFieldName },\n    { sourceName: this.modelTextFieldName, mappedName: this.formTextFieldName },\n    { sourceName: 'OtherOrderType', mappedName: 'OtherOrderType' },\n    { sourceName: 'CustomerCode', mappedName: 'CustomerCode' },\n    { sourceName: 'CustomerName', mappedName: 'CustomerName' },\n    { sourceName: 'OutWarehouseCode', mappedName: 'OutWarehouseCode' },\n    { sourceName: 'OutWarehouseName', mappedName: 'OutWarehouseName' }\n  ];\n\n  constructor(\n    public fb: UntypedFormBuilder,\n    public cdr: ChangeDetectorRef,\n    public router: Router,\n    public dynamicSer: RhBaseDynamicService\n  ) {\n    super(cdr, dynamicSer);\n    this.url = RhRouteHelper.getRealRoute(this.router.url);\n  }\n\n  ngOnInit(): void {\n    this.rhPlaceholder = this.rhFieldData.placeholder as any;\n    this.formName = this.rhFieldData.relatedComponentName;\n    this.setCbValue();\n  }\n\n  // 自定义表单项配置\n  ngOnChanges(changes: SimpleChanges) {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue && rhData.currentValue[this.formKeyFieldName] === null) {\n      this.resetControlValue();\n    } else {\n      this.rhModel = {};\n    }\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedData = data || [];\n  }\n\n  /** 根据填入的code值，获取对应的完整数据，回填到输入框 */\n  getTargetDatas(code: string) {\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n  }\n  //#region customize selector interface区域\n  confirmSelect() {\n    this.rhModel = this.selectedData[0];\n    this.rhModelChange.emit(this.selectedData);\n    this.value = this.rhModel[this.modelKeyFieldName];\n    this.displayName = this.rhModel[this.modelTextFieldName];\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // 执行对应控件定义的代码\n    if (this.rhData && this.rhModel && this.cb) {\n      this.cb(this.rhData, this.rhModel);\n    }\n    this.setFormDataViaRelatedDatas();\n    // 执行form的相关字段赋值操作\n    this.triggerRelatedForm();\n    this.closeDataModal();\n  }\n\n  resetControlValue() {\n    this.displayName = null;\n    // 重置form对应数据对象\n    this.rhData[this.formKeyFieldName] = null;\n    this.rhData[this.formTextFieldName] = null;\n    // 清空数据中的字段的值\n    this.mappedList.forEach((ele) => {\n      this.rhData[ele.mappedName] = null;\n    });\n    this.rhModel = null;\n  }\n\n  setCbValue() {\n    const cbString = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.cb;\n    if (cbString) {\n      const fn = Function(`return ${cbString}`);\n      if (fn) {\n        this.cb = fn();\n      } else {\n        this.cb = this.setFormData;\n      }\n    } else {\n      // 当没有配置回调函数时，执行默认的回调函数\n      this.cb = this.setFormData;\n    }\n  }\n\n  /** 设置form对应的数据对象的值\n   * @param data form对应的数据对象\n   * @params 设置或者对应table选择的数据\n   */\n  setFormData(data: RhSafeAny, ctx: RhSelectableDto) {\n    data[this.formKeyFieldName] = ctx[this.modelKeyFieldName];\n    data[this.formTextFieldName] = ctx[this.modelTextFieldName];\n  }\n\n  setFormDataViaRelatedDatas() {\n    let relatedDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedModelDatas;\n    if (!relatedDatas?.length) {\n      relatedDatas = this.mappedList;\n    }\n    if (relatedDatas?.length) {\n      relatedDatas.forEach((ele) => {\n        this.rhData[ele.mappedName] = this.rhModel[ele.sourceName];\n      });\n    }\n  }\n\n  triggerRelatedForm() {\n    const tempDatas = (this.rhFieldData.config as RhDynamicCustomizeControlConfigDto)?.relatedFieldDatas;\n    const relatedDatas: RhRelatedFieldDataDto[] = tempDatas && tempDatas.length ? tempDatas : this.mappedList;\n    const data: RhCustomizeEventSettingDto = {\n      id: `${this.url}_${this.formName}`,\n      eventType: null,\n      options: null,\n      value: this.rhModel,\n      relatedFieldDatas: relatedDatas\n    };\n    this.dynamicSer.formCustomizeEventTrigger(data);\n  }\n  //#endregion customize selector interface区域结束\n}\n","<nz-input-group [nzSize]=\"rhSize\" [nzSuffix]=\"suffixIconSearch\" [nzAddOnAfter]=\"addOnAfter\">\n  <input type=\"text\" nz-input [ngModel]=\"displayName\" [placeholder]=\"rhPlaceholder\" readonly=\"readonly\" />\n</nz-input-group>\n<ng-template #suffixIconSearch>\n  <a *ngIf=\"displayName && !rhDisabled\" class=\"link-suffix\" (click)=\"clearInputInfo()\">\n    <i nz-icon nzType=\"close-circle\"></i>\n  </a>\n</ng-template>\n\n<ng-template #addOnAfter>\n  <button nz-button nzType=\"link\" type=\"button\" nzSize=\"small\">\n    <a (click)=\"openDataModal($event)\">\n      <i nz-icon [nzType]=\"iconSetting\"></i>\n    </a>\n  </button>\n</ng-template>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"rhTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedData\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-other-out-plan-order-table\n        [rhModel]=\"rhModel\"\n        (rhModelChange)=\"onSelectModal($event)\"\n        [rhInterfaceInfo]=\"defaultFormInterface\"\n        [rhSingleMode]=\"rhSingleMode\"\n        [rhDefaultQueryDto]=\"rhDefaultQueryDto\"\n      ></rh-other-out-plan-order-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { RhSharedManageService } from './../../../shared-manage/shared-manage.service';\nimport { RhBusinessManageService } from './../../business-manage.service';\nimport { RhOtherBusinessService } from './../other-business.service';\nimport { BusinessType } from './../../business-type';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { CodeClassModel, DataResultT, OpMode, OpResult, RhBaseDto, RhDynamicTableFieldDto, RhLoginedUserDto, RhSafeAny, RhSelectableDto, RhTableButtonInfoDto, RhTableQueryOptionDto } from 'rh-base/model';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\n\ntype TabType = 'edit' | 'detail' | 'audit';\n\n@Component({\n  selector: 'rh-other-out-handle',\n  templateUrl: './other-out-handle.component.html',\n  styleUrls: ['./other-out-handle.component.less']\n})\nexport class RhOtherOutHandleComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  BusinessType = BusinessType.OtherOut;\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n  /** 显示配置 */\n  visibleSetting = {};\n  /** 单据明细数据，审核需要 */\n  orderDetails: RhSelectableDto[] = [];\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  isAsCreated = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n\n  get isEnableOutPlan() {\n    return this.businessManageSer.IsEnableOutPlan;\n  }\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto)),\n    new RhTableButtonInfoDto('submit', '提交审核', 'default', false, 'form', false, null, (data) => this.submitDataToAudit(data as RhBaseDto)),\n    new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) =>\n      this.openDetailTab({ data } as RhBaseDto, 'audit')\n    )\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '出库办理', 'primary', false, 'file', false, null, () => {\n      this.businessManageSer.controlTransactOperation(() => this.openEditTab(), this.titleButtonDataset, 0)\n    }, true, true)\n  ];\n\n  beforeSubmit = async (data: RhBaseDto, context: DynamicFormComponent) => {\n    let result: OpResult = null;\n    const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n    context.submitLoading = true;\n    try {\n      // 出库需要判断锁库情况\n      const isEnable = await this.businessManageSer.controlSubmitFormOperation([data]);\n      if (!isEnable) {\n        context.submitLoading = false;\n        return false;\n      }\n      //\n      if (this.editDto.OpSign === OpMode.OpAdd) {\n        // 基本信息\n        data.BusinessType = this.BusinessType;\n        data.OrderCreatorCode = this.currentUser.DisplayName;\n        data.OrderCreatorName = this.currentUser.UserName;\n\n        result = await this.operator.CreateOtherOutTransactMasterOrder(data).toPromise();\n      } else {\n        result = await this.operator.UpdateOtherOutTransactMasterOrder(data).toPromise();\n      }\n      if (result && result.Success) {\n        MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n        this.editDto.OrderId = result?.Attach?.OrderId;\n        this.isShowEditForm = false;\n        this.getEditData();\n      } else {\n        MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n      }\n    } catch (error) {\n      //\n    } finally {\n      context.submitLoading = false;\n    }\n\n    return false;\n  };\n\n  beforeSubmitAudit = (data: RhBaseDto) => {\n    if (!data.IsPass && !data.AuditMessage) {\n      MsgHelper.ShowWarningMessage('审核不通过，必须填写审核信息！');\n      return;\n    }\n    // 基本信息\n    data.OrderMaster = this.editDto;\n    data.OrderDetails = this.orderDetails;\n    data.Auditor = this.currentUser.DisplayName;\n    data.AuditorId = this.currentUser.UserName;\n\n    return true;\n  };\n\n  constructor(\n    private operator: RhOtherBusinessService,\n    public businessManageSer: RhBusinessManageService,\n    public storage: RhStorageService,\n    public sharedManageSer: RhSharedManageService\n  ) { }\n\n  ngOnInit(): void {\n    this.setUserInfo();\n    this.initEditButtonVisible();\n    this.initVisibleSetting();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  initEditButtonVisible() {\n    this.editButtonDataset[0].visible = this.editVisible.toString();\n    this.editButtonDataset[1].visible = this.isCreated.toString();\n    this.editButtonDataset[2].visible = this.auditVisible.toString();\n  }\n\n  initVisibleSetting() {\n    Object.assign(this.visibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('Out'));\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {\n        TransactorCode: this.currentUser.UserName,\n        TransactorName: this.currentUser.DisplayName,\n        FactoryCode: this.currentUser.FactoryCode\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.editDto = null;\n    this.selectedIndex = 0;\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.selectedIndex = 1;\n  }\n\n  // 明细变化后\n  getDetails(details: RhSelectableDto[]) {\n    this.orderDetails = details;\n  }\n\n  getEditData() {\n    const queryDto = { OrderId: this.editDto.OrderId };\n    this.operator.GetOtherOutTransactOrderViewDatas(queryDto).subscribe((result) => {\n      if (result.Success && result.Attach.length === 1) {\n        this.editDto = result.Attach[0];\n        this.editDto.OpSign = OpMode.OpEdit;\n      }\n    });\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    } else if (index === 1) {\n      this.orderDetails = [];\n    }\n  }\n\n  //#region 操作区域开始\n  /** 提交审核 */\n  submitDataToAudit(data: RhBaseDto) {\n    if (this.isCreated(data)) {\n      const dto = { OrderId: data.OrderId };\n      this.dataLoading = true;\n      this.operator.SumbitAuditOtherOutTransactOrder(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('提交审核成功！');\n            if (this.selectedIndex === 0) this.getDatas();\n            this.closeEditTab();\n          } else {\n            MsgHelper.ShowWarningMessage(`提交审核失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行提交审核！');\n    }\n  }\n\n  /** 审核 */\n  auditData(data: RhBaseDto) {\n    if (this.auditVisible(data)) {\n      this.openAuditDataModal(data);\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行审核！');\n    }\n  }\n\n  /** 打开审核弹窗 */\n  openAuditDataModal(data: RhBaseDto) {\n    this.auditDto = { OrderId: data.OrderId };\n    this.isShowAuditDataModal = true;\n  }\n\n  /** 关闭审核弹窗 */\n  closeAuditDataModal() {\n    this.auditDto = {};\n    this.isShowAuditDataModal = false;\n  }\n\n  /** 审核接口返回 */\n  onAuditData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('审核出库办理单据成功！');\n      this.closeAuditDataModal();\n      this.getEditData();\n    } else {\n      MsgHelper.ShowWarningModal(`审核出库办理单据失败！${result.Message}`);\n    }\n  }\n\n  /** 删除办理单据 */\n  removeDatas(datas: RhBaseDto[]) {\n    const some = datas.some((f) => !this.isAsCreated(f));\n    if (some) {\n      MsgHelper.ShowWarningMessage('只能删除制单状态的数据！');\n    } else {\n      this.dataLoading = true;\n      this.operator.RemoveOtherOutTransactOrders(datas as RhSafeAny).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('删除成功！');\n            this.getDatas();\n          } else {\n            MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    }\n  }\n  //#endregion 操作区域结束\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n\n\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  ></rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                [rhVisibleSetting]=\"visibleSetting\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              ></rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>其他出库办理</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"出库单单头\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button\n                    *ngIf=\"editVisible(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"isShowEditForm = true\"\n                  >\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button\n                    *ngIf=\"isCreated(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"submitDataToAudit(editDto)\"\n                  >\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                  <button *ngIf=\"auditVisible(editDto)\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else detailsDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  [rhVisibleSetting]=\"visibleSetting\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template\n                    rhTemplate=\"OutWarehouseCode\"\n                    let-formgroup\n                    let-setting=\"setting\"\n                    let-hostSetting=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-warehouse-selector\n                          rhInventoryControlSpecialType=\"Warehouse\"\n                          [formControl]=\"formgroup.get('OutWarehouseCode')\"\n                          [rhData]=\"formData\"\n                          [rhFieldData]=\"setting\"\n                          [rhSize]=\"hostSetting?.rhSize\"\n                        >\n                        </rh-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                  <ng-template rhTemplate=\"PlanOrderId\" let-formgroup let-setting=\"setting\" let-formData=\"formData\">\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-other-out-plan-order-selector\n                          [formControl]=\"formgroup.get('PlanOrderId')\"\n                          [rhFieldData]=\"setting\"\n                          [rhDisplayMode]=\"1\"\n                          [rhData]=\"formData\"\n                        ></rh-other-out-plan-order-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"出库单单体\">\n              <rh-other-out-handle-details [rhOrder]=\"editDto\" (rhDetailsUpdate)=\"getDetails($event)\"> </rh-other-out-handle-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"出库单单头\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <button\n                  *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\"\n                  nz-button\n                  nzType=\"primary\"\n                  nzSize=\"small\"\n                  type=\"button\"\n                  (click)=\"auditData(editDto)\"\n                >\n                  <i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n                </button>\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"detailsDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"出库单单体\">\n              <rh-other-out-handle-details [rhOrder]=\"editDto\" [rhShowDetail]=\"true\" (rhDetailsUpdate)=\"getDetails($event)\">\n              </rh-other-out-handle-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #detailsDescription>\n  <rh-dynamic-description\n    *ngIf=\"isRefreshDesc\"\n    rhName=\"detailsDescription\"\n    [rhValue]=\"editDto\"\n    [rhVisibleSetting]=\"visibleSetting\"\n  ></rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'出库办理审核'\"\n  [nzVisible]=\"isShowAuditDataModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeAuditDataModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #auditDataForm\n    rhName=\"auditDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"auditDto\"\n    [rhBeforeSubmit]=\"beforeSubmitAudit\"\n    (rhInterfaceDataChange)=\"onAuditData($event)\"\n    (rhClose)=\"closeAuditDataModal()\"\n  >\n    <ng-template rhTemplate=\"IsPass\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-radio-group [formControl]=\"formgroup.get('IsPass')\" (ngModelChange)=\"businessManageSer.isPassChange($event, formgroup)\">\n            <label nz-radio [nzValue]=\"true\">是</label>\n            <label nz-radio [nzValue]=\"false\">否</label>\n          </nz-radio-group>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"AuditMessage\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"!formgroup.get('IsPass').value\"> {{ setting.displayName }}</nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <textarea\n            nz-input\n            [formControl]=\"formgroup.get('AuditMessage')\"\n            [placeholder]=\"setting.placeholder\"\n            [nzAutosize]=\"{ minRows: 2 }\"\n          ></textarea>\n          <div *ngIf=\"editDto?.AuditMessage\">\n            <span style=\"color: #faad14\">上一次审核信息：{{ editDto?.AuditMessage }}</span>\n          </div>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>\n","import { RhSharedManageModule } from './../../shared-manage/shared-manage.module';\nimport { NgModule } from '@angular/core';\nimport { RhSharedModule } from 'rh-base/shared';\nimport { RhOtherInPlanComponent } from './other-in-plan/other-in-plan.component';\nimport { RhOtherOutPlanComponent } from './other-out-plan/other-out-plan.component';\nimport { OtherInPlanDetailsComponent } from './other-in-plan/other-in-plan-details/other-in-plan-details.component';\nimport { OtherOutPlanDetailsComponent } from './other-out-plan/other-out-plan-details/other-out-plan-details.component';\nimport { RhOtherBusinessService } from './other-business.service';\nimport { OtherInSourceDataTableComponent } from './snippets/other-in-source-data-table/other-in-source-data-table.component';\nimport { OtherOutSourceDataTableComponent } from './snippets/other-out-source-data-table/other-out-source-data-table.component';\nimport { RhOtherInHandleComponent } from './other-in-handle/other-in-handle.component';\nimport { RhOtherOutHandleComponent } from './other-out-handle/other-out-handle.component';\nimport { OtherInHandleDetailsComponent } from './other-in-handle/other-in-handle-details/other-in-handle-details.component';\nimport { OtherOutHandleDetailsComponent } from './other-out-handle/other-out-handle-details/other-out-handle-details.component';\nimport { OtherInPlanOrderSelectorComponent } from './snippets/other-in-plan-order-selector/other-in-plan-order-selector.component';\nimport { OtherInPlanOrderTableComponent } from './snippets/other-in-plan-order-selector/other-in-plan-order-table/other-in-plan-order-table.component';\nimport { OtherOutPlanOrderSelectorComponent } from './snippets/other-out-plan-order-selector/other-out-plan-order-selector.component';\nimport { OtherOutPlanOrderTableComponent } from './snippets/other-out-plan-order-selector/other-out-plan-order-table/other-out-plan-order-table.component';\n\nconst COMPONENTS = [\n  RhOtherInPlanComponent,\n  RhOtherOutPlanComponent,\n  RhOtherInHandleComponent,\n  RhOtherOutHandleComponent\n];\n\nconst SNIPPETS = [\n  OtherInPlanDetailsComponent,\n  OtherOutPlanDetailsComponent,\n  OtherInSourceDataTableComponent,\n  OtherOutSourceDataTableComponent,\n  OtherInHandleDetailsComponent,\n  OtherOutHandleDetailsComponent,\n  OtherInPlanOrderSelectorComponent,\n  OtherInPlanOrderTableComponent,\n  OtherOutPlanOrderSelectorComponent,\n  OtherOutPlanOrderTableComponent\n];\n\n@NgModule({\n  declarations: [\n    ...COMPONENTS,\n    ...SNIPPETS\n  ],\n  imports: [\n    RhSharedModule,\n    RhSharedManageModule\n  ],\n  providers: [RhOtherBusinessService]\n})\nexport class RhOtherBusinessModule { }\n","import { Injectable } from '@angular/core';\nimport { RhApiUrlsService } from 'rh-base/core';\nimport { Observable } from 'rxjs';\nimport { DataResultT, OpResult, RhBaseDto, RhSelectableDto } from 'rh-base/model';\n\n@Injectable()\nexport class RhProductionBusinessService {\n  constructor(private apiUrls: RhApiUrlsService) { }\n\n  //#region 生产入库计划区域开始\n  /**\n   *  获取生产完工入库计划单头数据\n   */\n  GetProductCompletedInPlanOrderDatas(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'GetProductCompletedInPlanOrderDatas', queryDto);\n  }\n\n  /**\n   *  创建生产完工入库计划单据头信息\n   */\n  CreateProductCompletedInPlanMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'CreateProductCompletedInPlanMasterOrder', input);\n  }\n\n  /**\n   *  修改生产完工入库入库计划单据头信息\n   */\n  UpdateProductCompletedInPlanMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'UpdateProductCompletedInPlanMasterOrder', input);\n  }\n\n  /**\n   *  提交至审核状态生产完工入库计划单据信息\n   */\n  SumbitAuditProductCompletedInPlanOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'SumbitAuditProductCompletedInPlanOrder', input);\n  }\n\n  /**\n   *  批量删除生产完工入库计划单据信息\n   */\n  RemoveProductCompletedInPlanOrders(inputs: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'RemoveProductCompletedInPlanOrders', inputs);\n  }\n\n  /**\n   *  根据计划单号获取生产完工入库入库计划单明细数据,包含统计汇总数量信息\n   */\n  GetProductCompletedInPlanOrderDetailsDatasBy(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'GetProductCompletedInPlanOrderDetailsDatasBy', queryDto);\n  }\n\n  /**\n   *  存储生产完工入库入库计划明细\n   */\n  StoreProductCompletedInPlanOrderDetails(planOrder: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'StoreProductCompletedInPlanOrderDetails', planOrder);\n  }\n\n  /**\n   *  删除生产完工入库计划单的明细信息\n   */\n  RemoveProductCompletedInPlanOrderDetails(inputs: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'RemoveProductCompletedInPlanOrderDetails', inputs);\n  }\n  //#endregion 生产入库计划区域结束\n\n  //#region 生产退料计划区域开始\n  /**\n   *  获取生产退料入库计划单头数据\n   */\n  GetProductReturnedMaterialInPlanOrderDatas(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'GetProductReturnedMaterialInPlanOrderDatas', queryDto);\n  }\n\n  /**\n   *  创建生产退料入库计划单据头信息\n   */\n  CreateProductReturnedMaterialInPlanMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'CreateProductReturnedMaterialInPlanMasterOrder', input);\n  }\n\n  /**\n   *  修改生产退料入库入库计划单据头信息\n   */\n  UpdateProductReturnedMaterialInPlanMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'UpdateProductReturnedMaterialInPlanMasterOrder', input);\n  }\n\n  /**\n   *  提交至审核状态生产退料入库计划单据信息\n   */\n  SumbitAuditProductReturnedMaterialInPlanOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'SumbitAuditProductReturnedMaterialInPlanOrder', input);\n  }\n\n  /**\n   *  批量删除生产退料入库计划单据信息\n   */\n  RemoveProductReturnedMaterialInPlanOrders(inputs: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'RemoveProductReturnedMaterialInPlanOrders', inputs);\n  }\n\n  /**\n   *  根据计划单号获取生产退料入库入库计划单明细数据,包含统计汇总数量信息\n   */\n  GetProductReturnedMaterialInPlanOrderDetailsDatasBy(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'GetProductReturnedMaterialInPlanOrderDetailsDatasBy', queryDto);\n  }\n\n  /**\n   *  存储生产退料入库入库计划明细\n   */\n  StoreProductReturnedMaterialInPlanOrderDetails(planOrder: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'StoreProductReturnedMaterialInPlanOrderDetails', planOrder);\n  }\n\n  /**\n   *  删除生产退料入库计划单的明细信息\n   */\n  RemoveProductReturnedMaterialInPlanOrderDetails(inputs: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'RemoveProductReturnedMaterialInPlanOrderDetails', inputs);\n  }\n  //#endregion 生产退料计划区域结束\n\n  //#region 生产领料计划区域开始\n  /**\n   *  获取生产领料出库计划单头数据\n   */\n  GetProductPickingMaterialOutPlanOrderDatas(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'GetProductPickingMaterialOutPlanOrderDatas', queryDto);\n  }\n\n  /**\n   *  提交至审核状态生产领料出库计划单据信息\n   */\n  SumbitAuditProductPickingMaterialOutPlanOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'SumbitAuditProductPickingMaterialOutPlanOrder', input);\n  }\n\n  /**\n   *  批量删除生产领料出库计划单据信息\n   */\n  RemoveProductPickingMaterialOutPlanOrders(inputs: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'RemoveProductPickingMaterialOutPlanOrders', inputs);\n  }\n\n  /**\n   *  创建生产领料出库计划单据头信息\n   */\n  CreateProductPickingMaterialOutPlanMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'CreateProductPickingMaterialOutPlanMasterOrder', input);\n  }\n\n  /**\n   *  修改生产领料出库入库计划单据头信息\n   */\n  UpdateProductPickingMaterialOutPlanMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'UpdateProductPickingMaterialOutPlanMasterOrder', input);\n  }\n\n  /**\n   *  根据计划单号获取生产领料出库入库计划单明细数据,包含统计汇总数量信息\n   */\n  GetProductPickingMaterialOutPlanOrderDetailsDatasBy(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'GetProductPickingMaterialOutPlanOrderDetailsDatasBy', queryDto);\n  }\n\n  /**\n   *  存储生产领料出库入库计划明细\n   */\n  StoreProductPickingMaterialOutPlanOrderDetails(planOrder: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'StoreProductPickingMaterialOutPlanOrderDetails', planOrder);\n  }\n\n  /**\n   *  删除生产领料出库计划单的明细信息\n   */\n  RemoveProductPickingMaterialOutPlanOrderDetails(inputs: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'RemoveProductPickingMaterialOutPlanOrderDetails', inputs);\n  }\n\n  /**\n   *  获取外部的生产投料单数据明细\n   */\n  GetExtProductionFeedOrders(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'GetExtProductionFeedOrders', queryDto);\n  }\n  //#endregion 生产领料计划区域结束\n\n  //#region 生产领料办理区域开始\n  /**\n     *  创建生产领料出库办理单据头信息\n     */\n  CreateProductPickedMaterialTransactMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'CreateProductPickedMaterialTransactMasterOrder', input);\n  }\n\n  /**\n     *  修改生产领料出库办理单据头信息\n     */\n  UpdateProductPickedMaterialTransactMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'UpdateProductPickedMaterialTransactMasterOrder', input);\n  }\n\n  /**\n     *  获取生产领料出库办理单头数据\n     */\n  GetProductPickedMaterialTransactOrderViewDatas(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'GetProductPickedMaterialTransactOrderViewDatas', queryDto);\n  }\n\n  /**\n     *  提交至审核状态生产领料出库办理单据信息\n     */\n  SumbitAuditProductPickedMaterialTransactOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'SumbitAuditProductPickedMaterialTransactOrder', input);\n  }\n\n  /**\n     *  批量删除生产领料出库办理单据信息\n     */\n  RemoveProductPickedMaterialTransactOrders(dtos: RhSelectableDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'RemoveProductPickedMaterialTransactOrders', dtos);\n  }\n\n  /**\n     *  根据计划单号获取生产领料出库办理单明细数据,包含统计汇总数量信息\n     */\n  GetProductPickedMaterialTransactOrderDetailsDatasBy(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'GetProductPickedMaterialTransactOrderDetailsDatasBy', queryDto);\n  }\n\n  /**\n     *  存储生产领料出库办理明细\n     */\n  StoreProductPickedMaterialTransactOrderDetails(planOrder: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'StoreProductPickedMaterialTransactOrderDetails', planOrder);\n  }\n\n  /**\n     *  删除生产领料出库办理单的明细信息\n     */\n  RemoveProductPickedMaterialTransactOrderDetails(dtos: RhSelectableDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'RemoveProductPickedMaterialTransactOrderDetails', dtos);\n  }\n  //#endregion 生产领料办理区域结束\n\n  //#region 生产退料办理区域开始\n  /**\n     *  创建生产退料入库办理单据头信息\n     */\n  CreateProductReturnedMaterialTransactMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'CreateProductReturnedMaterialTransactMasterOrder', input);\n  }\n\n  /**\n     *  修改生产退料入库办理单据头信息\n     */\n  UpdateProductReturnedMaterialTransactMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'UpdateProductReturnedMaterialTransactMasterOrder', input);\n  }\n\n  /**\n     *  获取生产退料入库办理单头数据\n     */\n  GetProductReturnedMaterialTransactOrderDatas(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'GetProductReturnedMaterialTransactOrderDatas', queryDto);\n  }\n\n  /**\n     *  提交至审核状态生产退料入库办理单据信息\n     */\n  SumbitAuditProductReturnedMaterialTransactOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'SumbitAuditProductReturnedMaterialTransactOrder', input);\n  }\n\n  /**\n     *  批量删除生产退料入库办理单据信息\n     */\n  RemoveProductReturnedMaterialTransactOrders(dtos: RhSelectableDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'RemoveProductReturnedMaterialTransactOrders', dtos);\n  }\n\n  /**\n     *  根据计划单号获取生产退料入库办理单明细数据,包含统计汇总数量信息\n     */\n  GetProductReturnedMaterialTransactOrderDetailsDatasBy(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'GetProductReturnedMaterialTransactOrderDetailsDatasBy', queryDto);\n  }\n\n  /**\n     *  存储生产退料入库办理明细\n     */\n  StoreProductReturnedMaterialTransactOrderDetails(planOrder: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'StoreProductReturnedMaterialTransactOrderDetails', planOrder);\n  }\n\n  /**\n     *  删除生产退料入库办理单的明细信息\n     */\n  RemoveProductReturnedMaterialTransactOrderDetails(dtos: RhSelectableDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'RemoveProductReturnedMaterialTransactOrderDetails', dtos);\n  }\n  //#endregion 生产退料办理区域结束\n\n  //#region 生产入库办理区域开始\n  /**\n     *  创建生产完工入库办理单据头信息\n     */\n  CreateProductCompletedInTransactMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'CreateProductCompletedInTransactMasterOrder', input);\n  }\n\n  /**\n     *  修改生产完工入库办理单据头信息\n     */\n  UpdateProductCompletedInTransactMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'UpdateProductCompletedInTransactMasterOrder', input);\n  }\n\n  /**\n     *  获取生产完工入库办理单头数据\n     */\n  GetProductCompletedInTransactOrderDatas(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'GetProductCompletedInTransactOrderDatas', queryDto);\n  }\n\n  /**\n     *  提交至审核状态生产完工入库办理单据信息\n     */\n  SumbitAuditProductCompletedInTransactOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'SumbitAuditProductCompletedInTransactOrder', input);\n  }\n\n  /**\n     *  批量删除生产完工入库办理单据信息\n     */\n  RemoveProductCompletedInTransactOrders(dtos: RhSelectableDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'RemoveProductCompletedInTransactOrders', dtos);\n  }\n\n  /**\n     *  删除生产完工入库办理单的明细信息\n     */\n  RemoveProductCompletedInTransactOrderDetails(dtos: RhSelectableDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'RemoveProductCompletedInTransactOrderDetails', dtos);\n  }\n\n  /**\n     *  根据计划单号获取生产完工入库办理单明细数据,包含统计汇总数量信息\n     */\n  GetProductCompletedInTransactOrderDetailsDatasBy(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'GetProductCompletedInTransactOrderDetailsDatasBy', queryDto);\n  }\n\n  /**\n     *  存储生产完工入库办理明细\n     */\n  StoreProductCompletedInTransactOrderDetails(planOrder: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'StoreProductCompletedInTransactOrderDetails', planOrder);\n  }\n\n  //#endregion 生产入库办理区域结束\n}\n","import { RhSelectableDto } from 'rh-base/model';\n/** 生产完工入库计划明细模型 */\nexport class ProductCompletedInPlanOrderDetails extends RhSelectableDto {\n    constructor(\n        /** 源单已计划数量 */\n        public SourcePlannedQty: number,\n        /** 源单已完成数量 */\n        public SourceCompletedQty: number,\n        /** 源单已退回数量 */\n        public ReturnQty: number,\n        /** 是否开启条形码 */\n        public IsEnableSN: boolean,\n        /** 是否开启批次号 */\n        public IsEnableLotNum: boolean,\n        /** 是否开启保质期 */\n        public IsEnableExpirationDate: boolean,\n        /** 入库计划号 */\n        public PlanOrderId: string,\n        /** 入库业务类型 */\n        public BusinessType: string,\n        /** 源单 */\n        public SourceOrderId: string,\n        /** 源单行号 */\n        public SourceOrderRowNum: string,\n        /** 源单数量 */\n        public SourceOrderQty: number,\n        /** 仓库代码 */\n        public InWarehouseCode: string,\n        /** 仓库名称 */\n        public InWarehouseName: string,\n        /** 仓库代码 */\n        public OutWarehouseCode: string,\n        /** 仓库名称 */\n        public OutWarehouseName: string,\n        /** 物料代码 */\n        public MaterialCode: string,\n        /** 物料名称 */\n        public MaterialName: string,\n        /** 规格型号 */\n        public MaterialSpecification: string,\n        /** 物料属性 */\n        public MaterialAttribute: string,\n        /** 物料类别 */\n        public MaterialCategory: string,\n        /** 有效期单位 */\n        public ExpiryUnit: string,\n        /** 包装单位 */\n        public MeasureUnit: string,\n        /** 保质期 */\n        public ExpiryDays: number,\n        /** 需求数量 */\n        public DemandQty: number,\n        /** 计划数量 */\n        public PlanQty: number,\n        /** 已收数量 */\n        public ReceivedQty: number,\n        /** 辅助计量单位 */\n        public MeasureAuxUnit: string,\n        /** 辅助计量数量 */\n        public MeasureAuxQty: number,\n        /** 批次号 */\n        public LotNum: string,\n        /** 备注 */\n        public Remark: string,\n        /** 工厂代码 */\n        public FactoryCode: string,\n        /** 扩展字段1 */\n        public SField1: string,\n        /** 扩展字段2 */\n        public SField2: string,\n        /** 扩展字段3 */\n        public SField3: string,\n        /** 扩展字段4 */\n        public FField1: number,\n        /** 扩展字段5 */\n        public FField2: number,\n        /** 扩展字段6 */\n        public FField3: number,\n        /** 扩展字段7 */\n        public DField1: Date,\n        /** 扩展字段8 */\n        public DField2: Date,\n        /** 扩展字段9 */\n        public DField3: Date,\n        /** 扩展字段10 */\n        public DField4: Date,\n        /** 操作标志 */\n        public OpSign: number,\n        /** 自增键 */\n        public Id: number,\n    ) {\n        super();\n    }\n    static create(): ProductCompletedInPlanOrderDetails {\n        return new ProductCompletedInPlanOrderDetails(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);\n    }\n}\n\n/** 生产退料出库计划明细模型 */\nexport class ProductReturnedMaterialInPlanOrderDetails extends RhSelectableDto {\n    constructor(\n        /** 源单已入库数量 */\n        public SourceCompletedQty: number,\n        /** 源单已退货数量 */\n        public SourceReturnedQty: number,\n        /** 已退货计划数量 */\n        public SourceReversePlannedQty: number,\n        /** 计划单号 */\n        public PlanOrderId: string,\n        /** 业务类型 */\n        public BusinessType: string,\n        /** 源单 */\n        public SourceOrderId: string,\n        /** 源单行号 */\n        public SourceOrderRowNum: string,\n        /** 源单数量 */\n        public SourceOrderQty: number,\n        /** 仓库代码 */\n        public InWarehouseCode: string,\n        /** 仓库名称 */\n        public InWarehouseName: string,\n        /** 仓库代码 */\n        public OutWarehouseCode: string,\n        /** 仓库名称 */\n        public OutWarehouseName: string,\n        /** 物料代码 */\n        public MaterialCode: string,\n        /** 物料名称 */\n        public MaterialName: string,\n        /** 规格型号 */\n        public MaterialSpecification: string,\n        /** 物料属性 */\n        public MaterialAttribute: string,\n        /** 物料类别 */\n        public MaterialCategory: string,\n        /** 有效期单位 */\n        public ExpiryUnit: string,\n        /** 包装单位 */\n        public MeasureUnit: string,\n        /** 保质期 */\n        public ExpiryDays: number,\n        /** 需求数量 */\n        public DemandQty: number,\n        /** 计划数量 */\n        public PlanQty: number,\n        /** 计划已办理数量 */\n        public PlanTransactedQty: number,\n        /** 辅助计量单位 */\n        public MeasureAuxUnit: string,\n        /** 辅助计量数量 */\n        public MeasureAuxQty: number,\n        /** 批次号 */\n        public LotNum: string,\n        /** 备注 */\n        public Remark: string,\n        /** 工厂代码 */\n        public FactoryCode: string,\n        /** 扩展字段1 */\n        public SField1: string,\n        /** 扩展字段2 */\n        public SField2: string,\n        /** 扩展字段3 */\n        public SField3: string,\n        /** 扩展字段4 */\n        public FField1: number,\n        /** 扩展字段5 */\n        public FField2: number,\n        /** 扩展字段6 */\n        public FField3: number,\n        /** 扩展字段7 */\n        public DField1: Date,\n        /** 扩展字段8 */\n        public DField2: Date,\n        /** 扩展字段9 */\n        public DField3: Date,\n        /** 扩展字段10 */\n        public DField4: Date,\n        /** 操作标志 */\n        public OpSign: number,\n        /** 自增键 */\n        public Id: number,\n        /** 库存数量 */\n        public InventoryQty: number,\n        /** 冻结数量 */\n        public FreezeQty: number,\n        /** 可用数量 */\n        public AvailableQty: number,\n    ) {\n        super();\n    }\n    static create(): ProductReturnedMaterialInPlanOrderDetails {\n        return new ProductReturnedMaterialInPlanOrderDetails(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);\n    }\n}\n\n/** 生产领料出库计划明细模型 */\nexport class ProductPickingMaterialOutPlanOrderDetails extends RhSelectableDto {\n    constructor(\n        /** 源单已领数量 */\n        public SourceCompletedQty: number,\n        /** 源单已计划数量 */\n        public SourcePlannedQty: number,\n        /** 计划单号 */\n        public PlanOrderId: string,\n        /** 业务类型 */\n        public BusinessType: string,\n        /** 源单 */\n        public SourceOrderId: string,\n        /** 源单行号 */\n        public SourceOrderRowNum: string,\n        /** 源单数量 */\n        public SourceOrderQty: number,\n        /** 仓库代码 */\n        public InWarehouseCode: string,\n        /** 仓库名称 */\n        public InWarehouseName: string,\n        /** 仓库代码 */\n        public OutWarehouseCode: string,\n        /** 仓库名称 */\n        public OutWarehouseName: string,\n        /** 物料代码 */\n        public MaterialCode: string,\n        /** 物料名称 */\n        public MaterialName: string,\n        /** 规格型号 */\n        public MaterialSpecification: string,\n        /** 物料属性 */\n        public MaterialAttribute: string,\n        /** 物料类别 */\n        public MaterialCategory: string,\n        /** 有效期单位 */\n        public ExpiryUnit: string,\n        /** 包装单位 */\n        public MeasureUnit: string,\n        /** 保质期 */\n        public ExpiryDays: number,\n        /** 需求数量 */\n        public DemandQty: number,\n        /** 计划数量 */\n        public PlanQty: number,\n        /** 计划已办理数量 */\n        public PlanTransactedQty: number,\n        /** 辅助计量单位 */\n        public MeasureAuxUnit: string,\n        /** 辅助计量数量 */\n        public MeasureAuxQty: number,\n        /** 批次号 */\n        public LotNum: string,\n        /** 备注 */\n        public Remark: string,\n        /** 工厂代码 */\n        public FactoryCode: string,\n        /** 扩展字段1 */\n        public SField1: string,\n        /** 扩展字段2 */\n        public SField2: string,\n        /** 扩展字段3 */\n        public SField3: string,\n        /** 扩展字段4 */\n        public FField1: number,\n        /** 扩展字段5 */\n        public FField2: number,\n        /** 扩展字段6 */\n        public FField3: number,\n        /** 扩展字段7 */\n        public DField1: Date,\n        /** 扩展字段8 */\n        public DField2: Date,\n        /** 扩展字段9 */\n        public DField3: Date,\n        /** 扩展字段10 */\n        public DField4: Date,\n        /** 操作标志 */\n        public OpSign: number,\n        /** 自增键 */\n        public Id: number,\n        /** 库存数量 */\n        public InventoryQty: number,\n        /** 冻结数量 */\n        public FreezeQty: number,\n        /** 可用数量 */\n        public AvailableQty: number,\n    ) {\n        super();\n    }\n    static create(): ProductPickingMaterialOutPlanOrderDetails {\n        return new ProductPickingMaterialOutPlanOrderDetails(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);\n    }\n}\n\n\n/** 生产领料出库办理明细模型 */\nexport class ProductPickedMaterialTransactOrderDetails {\n    constructor(\n        /** 源单已办理数量 */\n        public SourceTransactedQty: number,\n        /** 源单已计划数量 */\n        public SourcePlannedQty: number,\n        /** 出入库单号 */\n        public OrderId: string,\n        /** 入库计划号 */\n        public PlanOrderId: string,\n        /** 业务类型 */\n        public BusinessType: string,\n        /** 移动类型 */\n        public MoveType: string,\n        /** 源单单号 */\n        public SourceOrderId: string,\n        /** 源单行号 */\n        public SourceOrderRowNum: string,\n        /** 源单数量 */\n        public SourceOrderQty: number,\n        /** 条码 */\n        public SN: string,\n        /** 物料代码 */\n        public MaterialCode: string,\n        /** 物料名称 */\n        public MaterialName: string,\n        /** 物料规格 */\n        public MaterialSpecification: string,\n        /** 物料属性 */\n        public MaterialAttribute: string,\n        /** 物料类别 */\n        public MaterialCategory: string,\n        /** 计量单位 */\n        public MeasureUnit: string,\n        /** 辅助计量单位 */\n        public MeasureAuxUnit: string,\n        /** 辅助单位数量 */\n        public MeasureAuxQty: number,\n        /** 批次号 */\n        public LotNum: string,\n        /** 办理数量 */\n        public TransactQty: number,\n        /** 实际数量 */\n        public ActualQty: number,\n        /** 计划数量 */\n        public PlanQty: number,\n        /** 生产日期 */\n        public ProductionDate: Date,\n        /** 保质期 */\n        public ExpiryDays: number,\n        /** 有效期 */\n        public ExpirationDate: Date,\n        /** 保质期单位 */\n        public ExpiryUnit: string,\n        /** 是否已完成 */\n        public IsCompleted: boolean,\n        /** 完成时间 */\n        public CompletedTime: Date,\n        /** 是否传送ERP */\n        public IsSendToErp: boolean,\n        /** 是否先进先出 */\n        public IsFifo: boolean,\n        /** 供应商编码 */\n        public SupplierCode: string,\n        /** 供应商名称 */\n        public SupplierName: string,\n        /** 客户编码 */\n        public CustomerCode: string,\n        /** 客户名称 */\n        public CustomerName: string,\n        /** 发货地址 */\n        public ShippingAddress: string,\n        /** 入库仓库代码 */\n        public InWarehouseCode: string,\n        /** 入库仓库名称 */\n        public InWarehouseName: string,\n        /** 入库库区代码 */\n        public InWarehouseAreaCode: string,\n        /** 入库库区名称 */\n        public InWarehouseAreaName: string,\n        /** 入库货架代码 */\n        public InWarehouseShelfCode: string,\n        /** 入库货架名称 */\n        public InWarehouseShelfName: string,\n        /** 入库库位代码 */\n        public InStorageLocationCode: string,\n        /** 入库库位名称 */\n        public InStorageLocationName: string,\n        /** 出库仓库代码 */\n        public OutWarehouseCode: string,\n        /** 出库仓库名称 */\n        public OutWarehouseName: string,\n        /** 出库库区代码 */\n        public OutWarehouseAreaCode: string,\n        /** 出库库区名称 */\n        public OutWarehouseAreaName: string,\n        /** 出库货架代码 */\n        public OutWarehouseShelfCode: string,\n        /** 出库货架名称 */\n        public OutWarehouseShelfName: string,\n        /** 出库库位代码 */\n        public OutStorageLocationCode: string,\n        /** 出库库位名称 */\n        public OutStorageLocationName: string,\n        /** 是否遵循先进先出 */\n        public IsAccordingToFifo: boolean,\n        /** 器具编码 */\n        public ApplianceCode: string,\n        /** 附件编码 */\n        public AttachFileCode: string,\n        /** 工厂代码 */\n        public FactoryCode: string,\n        /** 创建用户Id */\n        public CreatorUserId: number,\n        /** 备注 */\n        public Remark: string,\n        /** 扩展字段1 */\n        public SField1: string,\n        /** 扩展字段2 */\n        public SField2: string,\n        /** 扩展字段3 */\n        public SField3: string,\n        /** 扩展字段4 */\n        public FField1: number,\n        /** 扩展字段5 */\n        public FField2: number,\n        /** 扩展字段6 */\n        public FField3: number,\n        /** 扩展字段7 */\n        public DField1: Date,\n        /** 扩展字段8 */\n        public DField2: Date,\n        /** 扩展字段9 */\n        public DField3: Date,\n        /** 扩展字段10 */\n        public DField4: Date,\n        /** 操作标志 */\n        public OpSign: number,\n        /** 自增键 */\n        public Id: number,\n        /** 库存数量 */\n        public InventoryQty: number,\n        /** 冻结数量 */\n        public FreezeQty: number,\n        /** 可用数量 */\n        public AvailableQty: number,\n        /** 计划已办理数量 */\n        public PlanTransactedQty: number,\n    ) { }\n    static create(): ProductPickedMaterialTransactOrderDetails {\n        return new ProductPickedMaterialTransactOrderDetails(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);\n    }\n}\n\n/** 生产退料入库办理明细模型 */\nexport class ProductReturnedMaterialTransactOrderDetails {\n    constructor(\n        /** 源单已完成数量 */\n        public SourceCompletedQty: number,\n        /** 源单已退货数量 */\n        public SourceReturnedQty: number,\n        /** 源单已计划退回数量 */\n        public SourceReversePlanedQty: number,\n        /** 出入库单号 */\n        public OrderId: string,\n        /** 入库计划号 */\n        public PlanOrderId: string,\n        /** 业务类型 */\n        public BusinessType: string,\n        /** 移动类型 */\n        public MoveType: string,\n        /** 源单单号 */\n        public SourceOrderId: string,\n        /** 源单行号 */\n        public SourceOrderRowNum: string,\n        /** 源单数量 */\n        public SourceOrderQty: number,\n        /** 条码 */\n        public SN: string,\n        /** 物料代码 */\n        public MaterialCode: string,\n        /** 物料名称 */\n        public MaterialName: string,\n        /** 物料规格 */\n        public MaterialSpecification: string,\n        /** 物料属性 */\n        public MaterialAttribute: string,\n        /** 物料类别 */\n        public MaterialCategory: string,\n        /** 计量单位 */\n        public MeasureUnit: string,\n        /** 辅助计量单位 */\n        public MeasureAuxUnit: string,\n        /** 辅助单位数量 */\n        public MeasureAuxQty: number,\n        /** 批次号 */\n        public LotNum: string,\n        /** 办理数量 */\n        public TransactQty: number,\n        /** 实际数量 */\n        public ActualQty: number,\n        /** 计划数量 */\n        public PlanQty: number,\n        /** 生产日期 */\n        public ProductionDate: Date,\n        /** 保质期 */\n        public ExpiryDays: number,\n        /** 有效期 */\n        public ExpirationDate: Date,\n        /** 保质期单位 */\n        public ExpiryUnit: string,\n        /** 是否已完成 */\n        public IsCompleted: boolean,\n        /** 完成时间 */\n        public CompletedTime: Date,\n        /** 是否传送ERP */\n        public IsSendToErp: boolean,\n        /** 是否先进先出 */\n        public IsFifo: boolean,\n        /** 供应商编码 */\n        public SupplierCode: string,\n        /** 供应商名称 */\n        public SupplierName: string,\n        /** 客户编码 */\n        public CustomerCode: string,\n        /** 客户名称 */\n        public CustomerName: string,\n        /** 发货地址 */\n        public ShippingAddress: string,\n        /** 入库仓库代码 */\n        public InWarehouseCode: string,\n        /** 入库仓库名称 */\n        public InWarehouseName: string,\n        /** 入库库区代码 */\n        public InWarehouseAreaCode: string,\n        /** 入库库区名称 */\n        public InWarehouseAreaName: string,\n        /** 入库货架代码 */\n        public InWarehouseShelfCode: string,\n        /** 入库货架名称 */\n        public InWarehouseShelfName: string,\n        /** 入库库位代码 */\n        public InStorageLocationCode: string,\n        /** 入库库位名称 */\n        public InStorageLocationName: string,\n        /** 出库仓库代码 */\n        public OutWarehouseCode: string,\n        /** 出库仓库名称 */\n        public OutWarehouseName: string,\n        /** 出库库区代码 */\n        public OutWarehouseAreaCode: string,\n        /** 出库库区名称 */\n        public OutWarehouseAreaName: string,\n        /** 出库货架代码 */\n        public OutWarehouseShelfCode: string,\n        /** 出库货架名称 */\n        public OutWarehouseShelfName: string,\n        /** 出库库位代码 */\n        public OutStorageLocationCode: string,\n        /** 出库库位名称 */\n        public OutStorageLocationName: string,\n        /** 是否遵循先进先出 */\n        public IsAccordingToFifo: boolean,\n        /** 器具编码 */\n        public ApplianceCode: string,\n        /** 附件编码 */\n        public AttachFileCode: string,\n        /** 工厂代码 */\n        public FactoryCode: string,\n        /** 创建用户Id */\n        public CreatorUserId: number,\n        /** 备注 */\n        public Remark: string,\n        /** 扩展字段1 */\n        public SField1: string,\n        /** 扩展字段2 */\n        public SField2: string,\n        /** 扩展字段3 */\n        public SField3: string,\n        /** 扩展字段4 */\n        public FField1: number,\n        /** 扩展字段5 */\n        public FField2: number,\n        /** 扩展字段6 */\n        public FField3: number,\n        /** 扩展字段7 */\n        public DField1: Date,\n        /** 扩展字段8 */\n        public DField2: Date,\n        /** 扩展字段9 */\n        public DField3: Date,\n        /** 扩展字段10 */\n        public DField4: Date,\n        /** 操作标志 */\n        public OpSign: number,\n        /** 自增键 */\n        public Id: number,\n        /** 库存数量 */\n        public InventoryQty: number,\n        /** 冻结数量 */\n        public FreezeQty: number,\n        /** 可用数量 */\n        public AvailableQty: number,\n        /** 计划已办理数量 */\n        public PlanTransactedQty: number,\n    ) { }\n    static create(): ProductReturnedMaterialTransactOrderDetails {\n        return new ProductReturnedMaterialTransactOrderDetails(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);\n    }\n}\n\n\n/** 生产入库办理明细模型 */\nexport class ProductCompletedInTransactOrderDetails {\n    constructor(\n        /** 源单已计划数量 */\n        public SourcePlannedQty: number,\n        /** 源单已办理数量 */\n        public SourceTransactedQty: number,\n        /** 出入库单号 */\n        public OrderId: string,\n        /** 入库计划号 */\n        public PlanOrderId: string,\n        /** 业务类型 */\n        public BusinessType: string,\n        /** 移动类型 */\n        public MoveType: string,\n        /** 源单单号 */\n        public SourceOrderId: string,\n        /** 源单行号 */\n        public SourceOrderRowNum: string,\n        /** 源单数量 */\n        public SourceOrderQty: number,\n        /** 条码 */\n        public SN: string,\n        /** 物料代码 */\n        public MaterialCode: string,\n        /** 物料名称 */\n        public MaterialName: string,\n        /** 物料规格 */\n        public MaterialSpecification: string,\n        /** 物料属性 */\n        public MaterialAttribute: string,\n        /** 物料类别 */\n        public MaterialCategory: string,\n        /** 计量单位 */\n        public MeasureUnit: string,\n        /** 辅助计量单位 */\n        public MeasureAuxUnit: string,\n        /** 辅助单位数量 */\n        public MeasureAuxQty: number,\n        /** 批次号 */\n        public LotNum: string,\n        /** 办理数量 */\n        public TransactQty: number,\n        /** 实际数量 */\n        public ActualQty: number,\n        /** 计划数量 */\n        public PlanQty: number,\n        /** 生产日期 */\n        public ProductionDate: Date,\n        /** 保质期 */\n        public ExpiryDays: number,\n        /** 有效期 */\n        public ExpirationDate: Date,\n        /** 保质期单位 */\n        public ExpiryUnit: string,\n        /** 是否已完成 */\n        public IsCompleted: boolean,\n        /** 完成时间 */\n        public CompletedTime: Date,\n        /** 是否传送ERP */\n        public IsSendToErp: boolean,\n        /** 是否先进先出 */\n        public IsFifo: boolean,\n        /** 供应商编码 */\n        public SupplierCode: string,\n        /** 供应商名称 */\n        public SupplierName: string,\n        /** 客户编码 */\n        public CustomerCode: string,\n        /** 客户名称 */\n        public CustomerName: string,\n        /** 发货地址 */\n        public ShippingAddress: string,\n        /** 入库仓库代码 */\n        public InWarehouseCode: string,\n        /** 入库仓库名称 */\n        public InWarehouseName: string,\n        /** 入库库区代码 */\n        public InWarehouseAreaCode: string,\n        /** 入库库区名称 */\n        public InWarehouseAreaName: string,\n        /** 入库货架代码 */\n        public InWarehouseShelfCode: string,\n        /** 入库货架名称 */\n        public InWarehouseShelfName: string,\n        /** 入库库位代码 */\n        public InStorageLocationCode: string,\n        /** 入库库位名称 */\n        public InStorageLocationName: string,\n        /** 出库仓库代码 */\n        public OutWarehouseCode: string,\n        /** 出库仓库名称 */\n        public OutWarehouseName: string,\n        /** 出库库区代码 */\n        public OutWarehouseAreaCode: string,\n        /** 出库库区名称 */\n        public OutWarehouseAreaName: string,\n        /** 出库货架代码 */\n        public OutWarehouseShelfCode: string,\n        /** 出库货架名称 */\n        public OutWarehouseShelfName: string,\n        /** 出库库位代码 */\n        public OutStorageLocationCode: string,\n        /** 出库库位名称 */\n        public OutStorageLocationName: string,\n        /** 是否遵循先进先出 */\n        public IsAccordingToFifo: boolean,\n        /** 器具编码 */\n        public ApplianceCode: string,\n        /** 附件编码 */\n        public AttachFileCode: string,\n        /** 工厂代码 */\n        public FactoryCode: string,\n        /** 创建用户Id */\n        public CreatorUserId: number,\n        /** 备注 */\n        public Remark: string,\n        /** 扩展字段1 */\n        public SField1: string,\n        /** 扩展字段2 */\n        public SField2: string,\n        /** 扩展字段3 */\n        public SField3: string,\n        /** 扩展字段4 */\n        public FField1: number,\n        /** 扩展字段5 */\n        public FField2: number,\n        /** 扩展字段6 */\n        public FField3: number,\n        /** 扩展字段7 */\n        public DField1: Date,\n        /** 扩展字段8 */\n        public DField2: Date,\n        /** 扩展字段9 */\n        public DField3: Date,\n        /** 扩展字段10 */\n        public DField4: Date,\n        /** 操作标志 */\n        public OpSign: number,\n        /** 自增键 */\n        public Id: number,\n        /** 库存数量 */\n        public InventoryQty: number,\n        /** 冻结数量 */\n        public FreezeQty: number,\n        /** 可用数量 */\n        public AvailableQty: number,\n        /** 计划已办理数量 */\n        public PlanTransactedQty: number,\n    ) { }\n    static create(): ProductCompletedInTransactOrderDetails {\n        return new ProductCompletedInTransactOrderDetails(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);\n    }\n}\n","export const ProductPickingMaterialOutPlanOrderDetailFormInterface = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'ProductPlanBusinessApi',\n    interfaceName: 'GetProductPickingMaterialOutPlanOrderDetailsDatasBy'\n};\n\nexport const ProductPickingMaterialOutPlanOrderDetailTableFieldDataset = [\n    { name: 'MaterialCode', displayName: '物料编号', width: 120 },\n    { name: 'MaterialName', displayName: '物料名称', width: 150 },\n    { name: 'MaterialSpecification', displayName: '物料规格', width: 200, rhEllipsis: true },\n    { name: 'OutWarehouseCode', displayName: '仓库代码', width: 120 },\n    { name: 'OutWarehouseName', displayName: '仓库名称', width: 150 },\n    { name: 'SourceOrderId', displayName: '领料单号', width: 150 },\n    { name: 'SourceOrderRowNum', displayName: '领料单行号', width: 150 },\n    {\n        name: 'MaterialCategory',\n        displayName: '物料类别',\n        width: 120,\n        type: 'array',\n        config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'MaterialCategory' }\n    },\n    {\n        name: 'MaterialAttribute',\n        displayName: '物料属性',\n        width: 120,\n        type: 'array',\n        config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'ProductMaterialAttribute' }\n    },\n    {\n        name: 'MeasureUnit',\n        displayName: '计量单位',\n        width: 120,\n        type: 'array',\n        config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n    },\n    {\n        name: 'MeasureAuxUnit',\n        displayName: '辅助单位',\n        width: 120,\n        type: 'array',\n        config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n    },\n    { name: 'MeasureAuxQty', displayName: '辅助数量', width: 120 },\n    { name: 'PlanQty', displayName: '计划数量', width: 120 },\n    { name: 'PlanTransactedQty', displayName: '计划已办理数量', width: 120 },\n    { name: 'Remark', displayName: '备注', width: 150, rhEllipsis: true }\n];\n\nexport const ProductReturnedMaterialInPlanOrderDetailFormInterface = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'ProductPlanBusinessApi',\n    interfaceName: 'GetProductReturnedMaterialInPlanOrderDetailsDatasBy'\n};\n\nexport const ProductReturnedMaterialInPlanOrderDetailTableFieldDataset = [\n    { name: 'MaterialCode', displayName: '物料编号', width: 120 },\n    { name: 'MaterialName', displayName: '物料名称', width: 150 },\n    { name: 'MaterialSpecification', displayName: '物料规格', width: 200, rhEllipsis: true },\n    { name: 'InWarehouseCode', displayName: '仓库代码', width: 120 },\n    { name: 'InWarehouseName', displayName: '仓库名称', width: 150 },\n    { name: 'SourceOrderId', displayName: '领料单号', width: 150 },\n    { name: 'SourceOrderRowNum', displayName: '领料单行号', width: 150 },\n    {\n        name: 'MaterialCategory',\n        displayName: '物料类别',\n        width: 120,\n        type: 'array',\n        config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'MaterialCategory' }\n    },\n    {\n        name: 'MaterialAttribute',\n        displayName: '物料属性',\n        width: 120,\n        type: 'array',\n        config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'ProductMaterialAttribute' }\n    },\n    {\n        name: 'MeasureUnit',\n        displayName: '计量单位',\n        width: 120,\n        type: 'array',\n        config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n    },\n    {\n        name: 'MeasureAuxUnit',\n        displayName: '辅助单位',\n        width: 120,\n        type: 'array',\n        config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n    },\n    { name: 'MeasureAuxQty', displayName: '辅助数量', width: 120 },\n    { name: 'PlanQty', displayName: '计划数量', width: 120 },\n    { name: 'PlanTransactedQty', displayName: '计划已办理数量', width: 120 },\n    { name: 'Remark', displayName: '备注', width: 150, rhEllipsis: true }\n];\n\nexport const ExtProductionFeedOrderFormInterface = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'ProductPlanBusinessApi',\n    interfaceName: 'GetExtProductionFeedOrders'\n};\n\nexport const ExtProductionFeedOrderTableFieldDataset = [\n    { name: 'ProductionPlanCode', displayName: '生产工单号', width: 150 },\n    { name: 'ErpProductionPlanCode', displayName: 'ERP工单单号', width: 150 },\n    { name: 'FeedOrderCode', displayName: '投料单号', width: 150 },\n    { name: 'PickingOrderCode', displayName: '领料单号', width: 150 },\n    { name: 'PlanQty', displayName: '计划数量', width: 120 },\n    { name: 'OrganizationStructureCode', displayName: '部门编码', width: 150 },\n    { name: 'OrganizationStructureName', displayName: '部门名称', width: 120 },\n    { name: 'OrganizationStructureDisplayName', displayName: '部门描述', width: 120 },\n    { name: 'OrganizationStructureExternalCode', displayName: '外部编码', width: 120 },\n    { name: 'ProductCode', displayName: '产品代码', width: 120 },\n    { name: 'ProductName', displayName: '产品名称', width: 120 },\n    { name: 'ProductSpecification', displayName: '产品规格', width: 200, rhEllipsis: true },\n    { name: 'ProductionPlanBomCode', displayName: '计划BOM唯一键值', width: 120 },\n    { name: 'BomVersionCode', displayName: 'BOM版本号', width: 120 },\n    { name: 'BomType', displayName: 'BOM类型', width: 120 }\n];\n\nexport const ExtProductionFeedOrderDetailTableFieldDataset = [\n    // { name: 'ErpProductionPlanCode', displayName: 'ERP工单单号', width: 150 },\n    // { name: 'ErpProductionPlanRowNum', displayName: 'ERP工单行号', width: 150 },\n    { name: 'MaterialCode', displayName: '物料编号', width: 120 },\n    { name: 'MaterialName', displayName: '物料名称', width: 150 },\n    {\n        name: 'MeasureUnit',\n        displayName: '计量单位',\n        width: 120,\n        type: 'array',\n        config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n    },\n    { name: 'NeededPickQty', displayName: '需领数量', width: 120 },\n    { name: 'PickingQty', displayName: '领用数量', width: 120 },\n    { name: 'PickedQty', displayName: '已领数量', width: 120 },\n    { name: 'UnpikcedQty', displayName: '未领用量', width: 120 },\n    { name: 'StockQty', displayName: '库存数量', width: 120 },\n    { name: 'WarehouseCode', displayName: '仓库代码', width: 120 },\n    { name: 'WarehouseName', displayName: '仓库名称', width: 150 }\n];\n\nexport const ProductCompletedInPlanOrderDetailFormInterface = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'ProductPlanBusinessApi',\n    interfaceName: 'GetProductCompletedInPlanOrderDetailsDatasBy'\n};\n\nexport const ProductCompletedInPlanOrderDetailTableFieldDataset = [\n    { name: 'MaterialCode', displayName: '物料编号', width: 120 },\n    { name: 'MaterialName', displayName: '物料名称', width: 150 },\n    { name: 'MaterialSpecification', displayName: '物料规格', width: 200, rhEllipsis: true },\n    { name: 'InWarehouseCode', displayName: '仓库代码', width: 120 },\n    { name: 'InWarehouseName', displayName: '仓库名称', width: 150 },\n    { name: 'SourceOrderId', displayName: '计划单号', width: 150 },\n    { name: 'SourceOrderRowNum', displayName: '计划单行号', width: 150 },\n    {\n        name: 'MaterialCategory',\n        displayName: '物料类别',\n        width: 120,\n        type: 'array',\n        config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'MaterialCategory' }\n    },\n    {\n        name: 'MaterialAttribute',\n        displayName: '物料属性',\n        width: 120,\n        type: 'array',\n        config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'ProductMaterialAttribute' }\n    },\n    {\n        name: 'MeasureUnit',\n        displayName: '计量单位',\n        width: 120,\n        type: 'array',\n        config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n    },\n    {\n        name: 'MeasureAuxUnit',\n        displayName: '辅助单位',\n        width: 120,\n        type: 'array',\n        config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n    },\n    { name: 'MeasureAuxQty', displayName: '辅助数量', width: 120 },\n    { name: 'PlanQty', displayName: '计划数量', width: 120 },\n    { name: 'PlanTransactedQty', displayName: '计划已办理数量', width: 120 },\n    { name: 'Remark', displayName: '备注', width: 150, rhEllipsis: true }\n];\n\nexport const ProductCompletedInSourceOrderDetailFormInterface = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'ProductPlanBusinessApi',\n    interfaceName: 'GetExtProductionPlanOrders'\n};\n\nexport const ProductCompletedInSourceOrderDetailTableFieldDataset = [\n    { name: 'ProductionPlanCode', displayName: '生产工单号', width: 150 },\n    { name: 'SaleOrderCode', displayName: '销售订单号', width: 120 },\n    {\n        name: 'ProductionType',\n        displayName: '生产类型',\n        width: 120,\n        type: 'array',\n        config: { BusinessTypeCode: 'ProductPlanProductionType' }\n    },\n    { name: 'PlanScheduler', displayName: '计划员', width: 120 },\n    { name: 'PlanQty', displayName: '计划数量', width: 120 },\n    { name: 'CompeletedQty', displayName: '完成数量', width: 120 },\n    { name: 'InWarehouseQty', displayName: '入库数量', width: 120 },\n    { name: 'OrganizationStructureCode', displayName: '部门编码', width: 150 },\n    { name: 'OrganizationStructureName', displayName: '部门名称', width: 120 },\n    { name: 'OrganizationStructureDisplayName', displayName: '部门描述', width: 120 },\n    { name: 'OrganizationStructureExternalCode', displayName: '外部编码', width: 120 },\n    { name: 'PlanStartDate', displayName: '计划开始日期', width: 120, type: 'date', pipeSetting: 'yyyy-MM-dd' },\n    { name: 'PlanEndDate', displayName: '计划结束日期', width: 120, type: 'date', pipeSetting: 'yyyy-MM-dd' },\n    { name: 'ProductCode', displayName: '产品代码', width: 120 },\n    { name: 'ProductName', displayName: '产品名称', width: 120 },\n    { name: 'ProductSpecification', displayName: '产品规格', width: 200, rhEllipsis: true },\n    {\n        name: 'MeasureUnit',\n        displayName: '计量单位',\n        width: 120,\n        type: 'array',\n        config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n    },\n    { name: 'ProcessRoutingCode', displayName: '工艺路线编码', width: 150 },\n    { name: 'ProductBomCode', displayName: '产品BOM编码', width: 150 },\n    { name: 'Remark', displayName: '备注', width: 120, rhEllipsis: true },\n];","import { RhBusinessManageService } from './../../../business-manage.service';\nimport { RhProductionBusinessService } from './../../production-business.service';\nimport { Component, OnInit, Input, Output, EventEmitter, SimpleChanges } from '@angular/core';\nimport { RhBaseDto, RhSelectableDto, DataResultT, RhTableButtonInfoDto, OpMode, RhSafeAny } from 'rh-base/model';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport { Observable } from 'rxjs';\nimport { ProductCompletedInPlanOrderDetails } from '../../production-business-model';\nimport {\n  ProductCompletedInSourceOrderDetailFormInterface,\n  ProductCompletedInSourceOrderDetailTableFieldDataset\n} from '../../detail-source-table-config';\n\n@Component({\n  selector: 'rh-production-in-plan-details',\n  templateUrl: './production-in-plan-details.component.html',\n  styleUrls: ['./production-in-plan-details.component.less']\n})\nexport class ProductionInPlanDetailsComponent implements OnInit {\n  @Input() rhPlanOrder: RhBaseDto;\n  @Input() rhSourceDataset: RhSelectableDto[] = [];\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter();\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto(\n      'deleteDetails',\n      '删除',\n      'primary',true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhSelectableDto[]),\n      false,\n      true\n    ),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset = [new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)];\n  tableVisibleSetting = {};\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  sourceDefaultQueryDto = {};\n  isEnterEditStatus = false;\n  // 源单明细\n  sourceOrderDetailFormInterface = ProductCompletedInSourceOrderDetailFormInterface;\n  sourceOrderDetailTableFieldDataset = ProductCompletedInSourceOrderDetailTableFieldDataset;\n\n  editDisabled = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return !list.includes(data.OrderStatus);\n  };\n\n  get isReadOnlyTable() {\n    return this.rhShowDetail || !this.rhPlanOrder?.PlanOrderId || this.isEnterEditStatus || this.editDisabled(this.rhPlanOrder);\n  }\n\n  get readeOnlyButtonDataset() {\n    if (!this.rhPlanOrder?.PlanOrderId) return [];\n    else if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(private operator: RhProductionBusinessService, public businessManageSer: RhBusinessManageService) {}\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhPlanOrder, rhSourceDataset } = changes;\n    if (rhPlanOrder && rhPlanOrder.currentValue) {\n      this.initInPlanOrderDetailDataset();\n    }\n    /** 选中源单带来数据源 */\n    if (rhSourceDataset && rhSourceDataset.currentValue && rhSourceDataset.currentValue.length) {\n      if (!this.rhPlanOrder.PlanOrderId) this.handleSourceDataset(this.rhSourceDataset, true);\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getDynamicVisibleSetting(['LotNum', 'ExpiryDays']));\n  }\n\n  initQueryDto() {\n    return { PlanOrderId: this.rhPlanOrder?.PlanOrderId, Mode: 8 };\n  }\n\n  /** 初始化明细数据 */\n  initInPlanOrderDetailDataset() {\n    if (this.rhPlanOrder.PlanOrderId) {\n      if (this.rhSourceDataset.length) {\n        const dataset = this.dataresult.Attach;\n        dataset.forEach((data) => {\n          data.PlanOrderId = this.rhPlanOrder.PlanOrderId;\n          data.BusinessType = this.rhPlanOrder.BusinessType;\n          data.InWarehouseCode = this.rhPlanOrder.InWarehouseCode;\n          data.InWarehouseName = this.rhPlanOrder.InWarehouseName;\n        });\n        this.storeDatas(dataset).subscribe(() => {\n          this.rhSourceDataset = [];\n          this.getDatas();\n        });\n      } else {\n        this.getDatas();\n      }\n    }\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      PlanOrderId: this.rhPlanOrder.PlanOrderId,\n      SourceOrderId: this.rhPlanOrder.SourceOrderId,\n      FactoryCode: this.rhPlanOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetProductCompletedInPlanOrderDetailsDatasBy(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`);\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (this.editDisabled(this.rhPlanOrder)) {\n      MsgHelper.ShowWarningMessage('当前单据状态无法编辑入库计划明细！');\n      return;\n    }\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    const checkRes = this.checkStoreDatas(details);\n    if (!checkRes) {\n      return;\n    }\n    return new Observable((observer) => {\n      const dto = {\n        OrderMaster: this.rhPlanOrder,\n        OrderDetails: details\n      };\n      const msg = editType === 'add' ? '新增' : '编辑';\n      this.dataLoading = true;\n      this.operator.StoreProductCompletedInPlanOrderDetails(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`);\n          } else {\n            MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n          observer.next();\n          observer.complete();\n        },\n        () => {\n          this.dataLoading = false;\n          observer.error();\n        }\n      );\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[]) {\n    this.extraButtonHandleDataset[1].loading = true;\n    this.operator.RemoveProductCompletedInPlanOrderDetails(details as ProductCompletedInPlanOrderDetails[]).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n          this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n        }\n        this.extraButtonHandleDataset[1].loading = false;\n      },\n      () => (this.extraButtonHandleDataset[1].loading = false)\n    );\n  }\n\n  /** 处理来自源单单的数据，转化为明细模型 */\n  async handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    // 获取源单统计信息\n    const convertResult = await this.businessManageSer.convertSourceOrderStatisticsDatasToSelectedDatas(\n      this.rhPlanOrder.SourceOrderId,\n      this.rhPlanOrder.BusinessType,\n      details\n    );\n    const datas = details.map((data) => {\n      const temp = ProductCompletedInPlanOrderDetails.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 源单赋值\n      if (!convertResult) {\n        temp.SourceOrderQty = data.PlanQty;\n        temp.SourceCompletedQty = data.InWarehouseQty;\n        temp.SourceOrderId = this.rhPlanOrder.SourceOrderId;\n        // temp.SourceOrderId = data.ProductionPlanCode;\n        // temp.SourceOrderRowNum = data.ProductionPlanCodeRowNum;\n      }\n      temp.MaterialCode = data.ProductCode;\n      temp.MaterialName = data.ProductName;\n      temp.MaterialSpecification = data.ProductSpecification;\n      // 单头赋值\n      temp.PlanOrderId = this.rhPlanOrder.PlanOrderId;\n      temp.BusinessType = this.rhPlanOrder.BusinessType;\n      temp.InWarehouseCode = this.rhPlanOrder.InWarehouseCode;\n      temp.InWarehouseName = this.rhPlanOrder.InWarehouseName;\n      temp.FactoryCode = this.rhPlanOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      //\n      temp.PlanQty = 0;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n      }\n      this.dataresult = { Attach: (this.dataresult.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  /** 检查保存数据 */\n  checkStoreDatas(details: RhSelectableDto[]) {\n    // 必须填写计划数量\n    if (details.some((f) => !f.PlanQty)) {\n      MsgHelper.ShowWarningMessage('计划数量不能为0或空！');\n      return false;\n    }\n    // 计划批次号开启后，可填可不填，只判断超额入库\n    if (!this.businessManageSer.IsEnableExcessInWarehouse) {\n      if (details.some((f) => (f.PlanQty + f.SourcePlannedQty + f.SourceCompletedQty) > f.SourceOrderQty)) {\n        MsgHelper.ShowWarningMessage('未启用超额入库！不能超额计划源单数量！');\n        return false;\n      }\n    }\n    return true;\n  }\n\n  openDataModal() {\n    this.sourceDefaultQueryDto = {\n      ProductionPlanCode: this.rhPlanOrder.SourceOrderId ? `$${this.rhPlanOrder.SourceOrderId}` : null,\n      FactoryCode: this.rhPlanOrder.FactoryCode\n    };\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n}\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n    <rh-dynamic-table\n      rhName=\"handleDetailsReadOnlyTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    ></rh-dynamic-table>\n  </ng-container>\n  <ng-template #handleTpl>\n    <rh-dynamic-table\n      rhName=\"handleDetailsTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    >\n    </rh-dynamic-table>\n  </ng-template>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"'选择生产入库源单'\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <!-- <rh-prouction-warehousing-source-order-table (rhModelChange)=\"onSelectModal($event)\"\n                [rhDefaultQueryDto]=\"sourceDefaultQueryDto\" [rhSingleMode]=\"false\">\n            </rh-prouction-warehousing-source-order-table> -->\n      <rh-dynamic-single-table\n        rhName=\"sourceOrderDetailTable\"\n        [rhInterfaceInfo]=\"sourceOrderDetailFormInterface\"\n        [rhDefaultFieldDataset]=\"sourceOrderDetailTableFieldDataset\"\n        [rhPara]=\"sourceDefaultQueryDto\"\n        (rhSelectedDatasChange)=\"onSelectModal($event)\"\n      ></rh-dynamic-single-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { RhBusinessManageService } from './../../../../business-manage.service';\nimport { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport {\n  RhDynamicInterfaceDto,\n  RhSelectableDto,\n  DataResultT,\n  RhTableQueryOptionDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto\n} from 'rh-base/model';\nimport { MsgHelper } from 'rh-base/core';\nimport { DynamicFormComponent, CustomizeBaseTableComponent } from 'rh-base/shared';\nimport { ProductCompletedInSourceOrderDetailTableFieldDataset } from './../../../detail-source-table-config';\n\n@Component({\n  selector: 'rh-prouction-warehousing-source-order-table',\n  templateUrl: './prouction-warehousing-source-order-table.component.html',\n  styleUrls: ['./prouction-warehousing-source-order-table.component.less']\n})\nexport class ProuctionWarehousingSourceOrderTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n  @Input() rhSingleMode = true;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() rhDisabled: boolean;\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto>();\n\n  rhName = 'ProductionPlanOrderSelector';\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n  defaultInterfaceInfo: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'ProductPlanBusinessApi',\n    interfaceName: 'GetExtProductionPlanOrders '\n  };\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [\n    { name: 'ProductionPlanCode', displayName: '生产工单号', placeholder: '生产工单号', editable: true, required: true },\n    {\n      name: 'FactoryCode',\n      displayName: '工厂',\n      placeholder: '工厂',\n      editable: true,\n      required: true,\n      type: 'array',\n      config: { port: '52880', controllerName: 'FactoryLayoutWebApi', interfaceName: 'GetFactoryInfoSelectItems' }\n    }\n  ];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = ProductCompletedInSourceOrderDetailTableFieldDataset;\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  visibleSetting = {};\n\n  constructor(private businessManageSer: RhBusinessManageService) {\n    //\n    super();\n  }\n\n  ngOnInit(): void {\n    this.rhInterfaceInfo = this.rhInterfaceInfo || this.defaultInterfaceInfo;\n    this.initVisibleSetting();\n  }\n\n  initVisibleSetting() {\n    Object.assign(this.visibleSetting, this.businessManageSer.getProductInspectorVisibleSetting());\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  // TODO 测试数据\n  setDatas(result: DataResultT<RhSelectableDto[]>) {\n    if (result && result.Success) {\n      result.Attach.forEach((data) => {\n        if (!data.ProductionPlanCodeRowNum) {\n          data.ProductionPlanCodeRowNum = '1';\n        }\n      });\n      this.dataresult = result;\n      this.rhDatasetChange.next(result.Attach);\n    } else {\n      this.rhDatasetChange.next(null);\n      MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n    }\n  }\n}\n","<!-- 搜索Form区域 -->\n<div class=\"search-area rh-full\">\n  <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n    <ng-template #searchTpl>\n      <rh-dynamic-form #queryForm rhName=\"{{ rhName }}Form\" [rhValue]=\"rhDefaultQueryDto\"\n        (rhInterfaceDataChange)=\"setDatas($event)\" (rhDataloadingChange)=\"dataLoadingChange($event)\"\n        (rhOutParaChange)=\"setInitFieldDataset($event)\" [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n        [(rhFormInterface)]=\"rhInterfaceInfo\">\n      </rh-dynamic-form>\n    </ng-template>\n  </nz-alert>\n</div>\n<!-- 搜索结果Table展示区域 -->\n<div class=\"table-area\">\n  <rh-dynamic-table rhName=\"{{ rhName }}Table\" [rhTableData]=\"dataresult\" [rhTableDataloading]=\"dataLoading\"\n    [rhDefaultFieldDataset]=\"defaultTableFieldDataset\" (rhRefresh)=\"refreshDatas($event)\"\n    (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\" [rhSingleMode]=\"rhSingleMode\"\n    [rhVisibleSetting]=\"visibleSetting\"></rh-dynamic-table>\n</div>","import { Component, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, SimpleChanges } from '@angular/core';\nimport {\n  RhSelectableDto,\n  RhDynamicFormFieldDto,\n  RhSafeAny,\n  DataResultT,\n  RhDynamicCustomizeControlConfigDto,\n  RhRelatedFieldDataDto,\n  RhCustomizeEventSettingDto,\n  RhBaseDto,\n  RhDisplayMode,\n  RhDynamicInterfaceDto\n} from 'rh-base/model';\nimport { provideValueAccessor, RhRouteHelper, MsgHelper } from 'rh-base/core';\nimport { CustomizeBaseControlComponent, RhBaseDynamicService } from 'rh-base/shared';\nimport { NzSizeLDSType } from 'ng-zorro-antd/core/types';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { ProuctionWarehousingSourceOrderTableComponent } from './prouction-warehousing-source-order-table/prouction-warehousing-source-order-table.component';\n\n@Component({\n  selector: 'rh-production-warehousing-source-order-selector',\n  templateUrl: './production-warehousing-source-order-selector.component.html',\n  styleUrls: ['./production-warehousing-source-order-selector.component.less'],\n  providers: [provideValueAccessor(ProductionWarehousingSourceOrderSelectorComponent)]\n})\nexport class ProductionWarehousingSourceOrderSelectorComponent extends CustomizeBaseControlComponent {\n  rhRelatedFieldData = null;\n  @ViewChild(ProuctionWarehousingSourceOrderTableComponent) tableComp: ProuctionWarehousingSourceOrderTableComponent;\n  @Input() rhDynamicKey = 'ProductionPlanOrder';\n  @Input() rhTitle = '选择生产入库源单';\n  @Input() declare rhSize: NzSizeLDSType;\n  @Input() declare rhDisplayMode: RhDisplayMode;\n  @Input() declare rhDefaultQueryDto: RhBaseDto;\n\n  @Input() rhProductCode: string;\n\n  iconSetting = 'search';\n  @Input() rhSingleMode = true;\n\n  formKeyFieldName = 'SourceOrderId';\n  formTextFieldName = 'SourceOrderId';\n\n  modelKeyFieldName = 'ProductionPlanCode';\n  modelTextFieldName = 'ProductionPlanCode';\n\n  // // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto>();\n  /** 对应table选中的数据 */\n  rhModel: RhSelectableDto = {};\n\n  /** 动态form字段配置数据 */\n  @Input() rhFieldData: RhDynamicFormFieldDto;\n  /** 整个form的数据 */\n  @Input() declare rhData: RhSafeAny;\n\n  /** 表格Loading */\n  // dataLoading = false;\n  // dataresult: DataResultT<RhSelectableDto[]>;\n\n  /** selector input上展示的数据，一般为中文 */\n  //displayName: string;\n\n  declare selectedData: RhSelectableDto[];\n\n  /** 自定义组件的自定义执行函数 */\n  cb: (data: RhSafeAny, ctx: RhSafeAny) => void;\n\n  /** 该组件关联的form名称 */\n  formName: string;\n\n  url: string;\n\n  /** 设置默认搜索接口 */\n  defaultFormInterface: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'ProductPlanBusinessApi',\n    interfaceName: 'GetExtProductionPlanOrders'\n  };\n\n  mappedList = [\n    { sourceName: this.modelKeyFieldName, mappedName: this.formKeyFieldName },\n    { sourceName: this.modelTextFieldName, mappedName: this.formTextFieldName },\n    { sourceName: 'ProductionPlanCode', mappedName: 'ProductionPlanCode' },\n    { sourceName: 'ProductionType', mappedName: 'ProductionType' },\n    { sourceName: 'ProductCode', mappedName: 'ProductCode' },\n    { sourceName: 'ProductName', mappedName: 'ProductName' },\n    { sourceName: 'ProductSpecification', mappedName: 'ProductSpecification' },\n    { sourceName: 'PlanScheduler', mappedName: 'PlanScheduler' },\n    { sourceName: 'ProcessRoutingCode', mappedName: 'ProcessRoutingCode' },\n    { sourceName: 'ProductBomCode', mappedName: 'ProductBomCode' },\n    { sourceName: 'PlanStartDate', mappedName: 'PlanStartDate' },\n    { sourceName: 'PlanEndDate', mappedName: 'PlanEndDate' },\n    // { sourceName: 'InWarehouseCode', mappedName: 'InWarehouseCode' },\n    // { sourceName: 'InWarehouseName', mappedName: 'InWarehouseName' },\n    { sourceName: 'OrganizationStructureCode', mappedName: 'OrganizationStructureCode' },\n    { sourceName: 'OrganizationStructureDisplayName', mappedName: 'OrganizationStructureDisplayName' },\n    { sourceName: 'OrganizationStructureExternalCode', mappedName: 'OrganizationStructureExternalCode' },\n    { sourceName: 'OrganizationStructureName', mappedName: 'OrganizationStructureName' }\n  ];\n\n  constructor(\n    public fb: UntypedFormBuilder,\n    public cdr: ChangeDetectorRef,\n    public router: Router,\n    public dynamicSer: RhBaseDynamicService\n  ) {\n    super(cdr, dynamicSer);\n    this.url = RhRouteHelper.getRealRoute(this.router.url);\n  }\n\n  ngOnInit(): void {\n    this.rhPlaceholder = this.rhFieldData.placeholder as any;\n    this.formName = this.rhFieldData.relatedComponentName;\n    this.setCbValue();\n  }\n\n  // 自定义表单项配置\n  ngOnChanges(changes: SimpleChanges) {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue && rhData.currentValue[this.formKeyFieldName] === null) {\n      this.resetControlValue();\n    } else {\n      this.rhModel = {};\n    }\n  }\n\n  // dataLoadingChange(status: boolean) {\n  //   this.dataLoading = status;\n  // }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    // if (data?.length === 1 && this.rhSingleMode) {\n    //   this.selectedData = data[0];\n    // } else {\n    //   this.selectedData = data;\n    // }\n    this.selectedData = data || null;\n  }\n\n  // setDatas(result: DataResultT<RhSelectableDto[]>) {\n  //   if (result && result.Success) {\n  //     this.dataresult = result;\n  //   } else {\n  //     MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n  //   }\n  // }\n\n  /** 根据填入的code值，获取对应的完整数据，回填到输入框 */\n  getTargetDatas(code: string) {\n    // 接口搜索需接入第三方\n    // if (!this.defaultFormInterface) {\n    //   return;\n    // }\n    // const queryDto = {};\n    // queryDto[this.modelKeyFieldName] = `$${code}`;\n    // this.getTargetDatasVisHttpHandler(this.defaultFormInterface, queryDto, this.rhFieldData);\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n  }\n\n  //#region customize selector interface区域\n  confirmSelect() {\n    this.rhModel = this.selectedData[0];\n    this.rhModelChange.emit(this.selectedData);\n    // if (this.rhSingleMode) {\n    //   this.value = this.rhModel[this.modelKeyFieldName];\n    //   this.displayName = this.rhModel[this.modelTextFieldName];\n    //   this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // } else {\n    //   this.value = (this.rhModel as RhSafeAny[]).map((ele) => ele[this.modelKeyFieldName]) as RhSafeAny;\n    //   // 多选的时候只会显示多个代码\n    //   this.displayName = (this.value as RhSafeAny).toString();\n    // }\n    this.value = this.rhModel[this.modelKeyFieldName];\n    this.displayName = this.rhModel[this.modelTextFieldName];\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // 执行对应控件定义的代码\n    if (this.rhData && this.rhModel && this.cb) {\n      this.cb(this.rhData, this.rhModel);\n    }\n    this.setFormDataViaRelatedDatas();\n    // 执行form的相关字段赋值操作\n    this.triggerRelatedForm();\n    this.closeDataModal();\n  }\n\n  resetControlValue() {\n    this.displayName = null;\n    // 重置form对应数据对象\n    this.rhData[this.formKeyFieldName] = null;\n    this.rhData[this.formTextFieldName] = null;\n    //\n    this.mappedList.forEach((ele) => (this.rhData[ele.mappedName] = null));\n    this.rhModel = null;\n  }\n\n  setCbValue() {\n    const cbString = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.cb;\n    if (cbString) {\n      const fn = Function(`return ${cbString}`);\n      if (fn) {\n        this.cb = fn();\n      } else {\n        this.cb = this.setFormData;\n      }\n    } else {\n      // 当没有配置回调函数时，执行默认的回调函数\n      this.cb = this.setFormData;\n    }\n  }\n\n  /** 设置form对应的数据对象的值\n   * @param data form对应的数据对象\n   * @params 设置或者对应table选择的数据\n   */\n  setFormData(data: RhSafeAny, ctx: RhSelectableDto) {\n    data[this.formKeyFieldName] = ctx[this.modelKeyFieldName];\n    data[this.formTextFieldName] = ctx[this.modelTextFieldName];\n  }\n\n  setFormDataViaRelatedDatas() {\n    let relatedDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedModelDatas;\n    if (!relatedDatas?.length) {\n      relatedDatas = this.mappedList;\n    }\n    if (relatedDatas?.length) {\n      relatedDatas.forEach((ele) => {\n        this.rhData[ele.mappedName] = this.rhModel[ele.sourceName];\n      });\n    }\n  }\n\n  triggerRelatedForm() {\n    const tempDatas = (this.rhFieldData.config as RhDynamicCustomizeControlConfigDto)?.relatedFieldDatas;\n    const relatedDatas: RhRelatedFieldDataDto[] = tempDatas && tempDatas.length ? tempDatas : this.mappedList;\n    const data: RhCustomizeEventSettingDto = {\n      id: `${this.url}_${this.formName}`,\n      eventType: null,\n      options: null,\n      value: this.rhModel,\n      relatedFieldDatas: relatedDatas\n    };\n    this.dynamicSer.formCustomizeEventTrigger(data);\n  }\n  //#endregion customize selector interface区域结束\n}\n","<nz-input-group [nzSize]=\"rhSize\" [nzSuffix]=\"suffixIconSearch\" [nzAddOnAfter]=\"addOnAfter\">\n  <input type=\"text\" nz-input [ngModel]=\"displayName\" [placeholder]=\"rhPlaceholder\" readonly=\"readonly\" />\n</nz-input-group>\n<ng-template #suffixIconSearch>\n  <a *ngIf=\"displayName && !rhDisabled\" class=\"link-suffix\" (click)=\"clearInputInfo()\">\n    <i nz-icon nzType=\"close-circle\"></i>\n  </a>\n</ng-template>\n\n<ng-template #addOnAfter>\n  <button nz-button nzType=\"link\" type=\"button\" nzSize=\"small\">\n    <a (click)=\"openDataModal($event)\">\n      <i nz-icon [nzType]=\"iconSetting\"></i>\n    </a>\n  </button>\n</ng-template>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"rhTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedData\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-prouction-warehousing-source-order-table\n        [rhModel]=\"rhModel\"\n        (rhModelChange)=\"onSelectModal($event)\"\n        [rhInterfaceInfo]=\"defaultFormInterface\"\n        [rhSingleMode]=\"rhSingleMode\"\n        [rhDefaultQueryDto]=\"rhDefaultQueryDto\"\n      >\n      </rh-prouction-warehousing-source-order-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { BusinessType } from './../../business-type';\nimport { RhSharedManageService } from './../../../shared-manage/shared-manage.service';\nimport { RhBusinessManageService } from './../../business-manage.service';\nimport { RhProductionBusinessService } from './../production-business.service';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { RhBaseDto, DataResultT, RhSelectableDto, RhLoginedUserDto, RhTableButtonInfoDto, OpMode, RhSafeAny, CodeClassModel, RhDynamicTableFieldDto, RhTableQueryOptionDto, OpResult } from 'rh-base/model';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\n\ntype TabType = 'edit' | 'detail' | 'audit';\n\n@Component({\n  selector: 'rh-production-in-plan',\n  templateUrl: './production-in-plan.component.html',\n  styleUrls: ['./production-in-plan.component.less']\n})\nexport class RhProductionInPlanComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  BusinessType = BusinessType.ProductCompletedIn;\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isShowCloseInPlanRemarkModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  closeDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n  /** 显示配置 */\n  visibleSetting = {};\n  /** 选中的采购计划源单的数据 */\n  selectedSourceDataset: RhSelectableDto[] = [];\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  completeVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitInWarehouse';\n  };\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  isAsCreated = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto)),\n    new RhTableButtonInfoDto('submit', '提交审核', 'default', false, 'form', false, null, (data) => this.submitDataToAudit(data as RhBaseDto)),\n    new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) =>\n      this.openDetailTab({ data } as RhBaseDto, 'audit')\n    ),\n    new RhTableButtonInfoDto(\n      'close',\n      '关闭',\n      'default',\n      false,\n      'close-circle',\n      false,\n      null,\n      (data) => this.openCloseInPlanRemarkModal(data as RhBaseDto),\n      null,\n      null,\n      'red'\n    )\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '新建', 'primary', false, 'file', false, null, () => this.openEditTab(), true),\n    new RhTableButtonInfoDto(\n      'delete',\n      '删除',\n      'primary',true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhBaseDto[]),\n      false,\n      false,\n      'red'\n    )\n  ];\n\n  beforeSubmit = async (data: RhBaseDto, context: DynamicFormComponent) => {\n    let result: OpResult = null;\n    const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n    context.submitLoading = true;\n    try {\n      if (this.editDto.OpSign === OpMode.OpAdd) {\n        // 基本信息\n        data.BusinessType = this.BusinessType;\n        data.Creator = this.currentUser.DisplayName;\n        data.CreatorId = this.currentUser.UserName;\n\n        result = await this.operator.CreateProductCompletedInPlanMasterOrder(data).toPromise();\n      } else {\n        result = await this.operator.UpdateProductCompletedInPlanMasterOrder(data).toPromise();\n      }\n      if (result && result.Success) {\n        MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n        this.editDto.PlanOrderId = result?.Attach?.PlanOrderId;\n        this.isShowEditForm = false;\n        this.getDetails();\n      } else {\n        MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n      }\n    } catch (error) {\n      //\n    } finally {\n      context.submitLoading = false;\n    }\n\n    return false;\n  };\n\n  beforeSubmitAudit = (data: RhBaseDto) => {\n    if (!data.IsPass && !data.AuditMessage) {\n      MsgHelper.ShowWarningMessage('审核不通过，必须填写审核信息！');\n      return;\n    }\n    // 基本信息\n    data.OrganizationStructureCode = this.editDto.OrganizationStructureCode;\n    data.OrganizationStructureName = this.editDto.OrganizationStructureName;\n    data.OrganizationStructureExternalCode = this.editDto.OrganizationStructureExternalCode;\n    data.OrganizationStructureDisplayName = this.editDto.OrganizationStructureDisplayName;\n    data.Auditor = this.currentUser.DisplayName;\n    data.AuditorId = this.currentUser.UserName;\n\n    return true;\n  };\n\n  constructor(private operator: RhProductionBusinessService, public businessManageSer: RhBusinessManageService, public storage: RhStorageService, public sharedManageSer: RhSharedManageService) { }\n\n  ngOnInit(): void {\n    this.setUserInfo();\n    this.initEditButtonVisible();\n    this.initVisibleSetting();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  initEditButtonVisible() {\n    this.editButtonDataset[0].visible = this.editVisible.toString();\n    this.editButtonDataset[1].visible = this.isCreated.toString();\n    this.editButtonDataset[2].visible = this.auditVisible.toString();\n    this.editButtonDataset[3].visible = this.completeVisible.toString();\n  }\n\n  initVisibleSetting() {\n    Object.assign(this.visibleSetting, this.businessManageSer.getProductInspectorVisibleSetting());\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    this.selectedSourceDataset = [];\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {\n        TransactorCode: this.currentUser.UserName,\n        TransactorName: this.currentUser.DisplayName,\n        FactoryCode: this.currentUser.FactoryCode\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.editDto = null;\n    this.selectedIndex = 0;\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.selectedIndex = 1;\n  }\n\n  // 未退出页面，刷新数据内容\n  getDetails() {\n    const queryDto: RhSafeAny = { PlanOrderId: this.editDto.PlanOrderId };\n    this.operator.GetProductCompletedInPlanOrderDatas(queryDto).subscribe((result) => {\n      if (result.Success && result.Attach.length === 1) {\n        this.editDto = result.Attach[0];\n        this.editDto.OpSign = OpMode.OpEdit;\n      }\n    });\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    }\n  }\n\n  sourceOrderDatasetChange(dataset: RhSelectableDto[]) {\n    if (dataset?.length) {\n      // 源单号赋值\n      this.editDto.SourceOrderId = dataset[0].ProductionPlanCode;\n      this.editDto.BusinessType = this.BusinessType;\n      this.selectedSourceDataset = [...dataset];\n    } else {\n      // 源单号赋值\n      this.editDto.SourceOrderId = null;\n      this.selectedSourceDataset = [];\n    }\n  }\n\n  //#region 操作区域开始\n  /** 提交审核 */\n  submitDataToAudit(data: RhBaseDto) {\n    if (this.isCreated(data)) {\n      const dto: RhSafeAny = { PlanOrderId: data.PlanOrderId };\n      this.dataLoading = true;\n      this.operator.SumbitAuditProductCompletedInPlanOrder(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('提交审核成功！');\n            if (this.selectedIndex === 0) this.getDatas();\n            this.closeEditTab();\n          } else {\n            MsgHelper.ShowWarningMessage(`提交审核失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行提交审核！');\n    }\n  }\n\n  /** 审核 */\n  auditData(data: RhBaseDto) {\n    if (this.auditVisible(data)) {\n      this.openAuditDataModal(data);\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行审核！');\n    }\n  }\n\n  /** 打开审核弹窗 */\n  openAuditDataModal(data: RhBaseDto) {\n    this.auditDto = { PlanOrderId: data.PlanOrderId };\n    this.isShowAuditDataModal = true;\n  }\n\n  /** 关闭审核弹窗 */\n  closeAuditDataModal() {\n    this.auditDto = {};\n    this.isShowAuditDataModal = false;\n  }\n\n  /** 审核接口返回 */\n  onAuditData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('审核入库计划成功！');\n      this.closeAuditDataModal();\n      this.getDetails();\n    } else {\n      MsgHelper.ShowWarningModal(`审核入库计划失败！${result.Message}`);\n    }\n  }\n\n  /** 打开关闭计划备注弹窗 */\n  openCloseInPlanRemarkModal(data: RhBaseDto) {\n    this.closeDto = { PlanOrderId: data.PlanOrderId, Remark: data.Remark };\n    this.isShowCloseInPlanRemarkModal = true;\n  }\n\n  /** 关闭关闭计划备注弹窗 */\n  closeCloseInPlanRemarkModal() {\n    this.closeDto = {};\n    this.isShowCloseInPlanRemarkModal = false;\n  }\n\n  /** 关闭接口返回 */\n  onCloseData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('关闭入库计划成功！');\n      this.closeCloseInPlanRemarkModal();\n      this.getDatas();\n    } else {\n      MsgHelper.ShowWarningModal(`关闭入库计划失败！${result.Message}`);\n    }\n  }\n\n  /** 删除计划 */\n  removeDatas(datas: RhBaseDto[]) {\n    const some = datas.some((f) => !this.isAsCreated(f));\n    if (some) {\n      MsgHelper.ShowWarningMessage('只能删除制单状态的数据！');\n    } else {\n      this.dataLoading = true;\n      this.operator.RemoveProductCompletedInPlanOrders(datas).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('删除成功！');\n            this.getDatas();\n          } else {\n            MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    }\n  }\n  //#endregion 操作区域结束\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n\n\n\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  >\n                  </rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                [rhVisibleSetting]=\"visibleSetting\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              >\n              </rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>数据{{ editDto?.OpSign === 1 ? '新增' : '编辑' }}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button\n                    *ngIf=\"editVisible(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"isShowEditForm = true\"\n                  >\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button\n                    *ngIf=\"isCreated(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"submitDataToAudit(editDto)\"\n                  >\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                  <button *ngIf=\"auditVisible(editDto)\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else editDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  [rhVisibleSetting]=\"visibleSetting\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template rhTemplate=\"SourceOrderId\" let-formgroup let-setting=\"setting\" let-formData=\"formData\">\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-production-warehousing-source-order-selector\n                          [formControl]=\"formgroup.get('SourceOrderId')\"\n                          [rhFieldData]=\"setting\"\n                          [rhDisplayMode]=\"1\"\n                          [rhData]=\"formData\"\n                          [rhDefaultQueryDto]=\"curFactoryQueryDto\"\n                          (rhModelChange)=\"sourceOrderDatasetChange($event)\"\n                        >\n                        </rh-production-warehousing-source-order-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n\n                  <ng-template\n                    rhTemplate=\"InWarehouseCode\"\n                    let-formGroup\n                    let-setting=\"setting\"\n                    let-hostConfig=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.placeholder }}</nz-form-label>\n                      <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                        <rh-business-warehouse-selector\n                          name=\"InWarehouseCode\"\n                          [formControl]=\"formGroup.get('InWarehouseCode')\"\n                          rhFormType=\"edit\"\n                          [rhFieldData]=\"businessManageSer.setWarehouseFieldSetting(setting, 'In')\"\n                          [rhSize]=\"hostConfig?.rhSize\"\n                          [rhData]=\"formData\"\n                          [rhDefaultQueryDto]=\"{ BusinessTypeCode: BusinessType }\"\n                        >\n                        </rh-business-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-production-in-plan-details\n                [rhPlanOrder]=\"editDto\"\n                [rhSourceDataset]=\"selectedSourceDataset\"\n                (rhDetailsUpdate)=\"getDetails()\"\n              >\n              </rh-production-in-plan-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <button\n                  *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\"\n                  nz-button\n                  nzType=\"primary\"\n                  nzSize=\"small\"\n                  type=\"button\"\n                  (click)=\"auditData(editDto)\"\n                >\n                  <i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n                </button>\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"editDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-production-in-plan-details [rhPlanOrder]=\"editDto\" [rhShowDetail]=\"true\"> </rh-production-in-plan-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #editDescription>\n  <rh-dynamic-description\n    *ngIf=\"isRefreshDesc\"\n    rhName=\"editDescription\"\n    [rhValue]=\"editDto\"\n    [rhVisibleSetting]=\"visibleSetting\"\n  ></rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'入库计划审核'\"\n  [nzVisible]=\"isShowAuditDataModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeAuditDataModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #auditDataForm\n    rhName=\"auditDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"auditDto\"\n    [rhBeforeSubmit]=\"beforeSubmitAudit\"\n    (rhInterfaceDataChange)=\"onAuditData($event)\"\n    (rhClose)=\"closeAuditDataModal()\"\n  >\n    <ng-template rhTemplate=\"IsPass\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-radio-group [formControl]=\"formgroup.get('IsPass')\" (ngModelChange)=\"businessManageSer.isPassChange($event, formgroup)\">\n            <label nz-radio [nzValue]=\"true\">是</label>\n            <label nz-radio [nzValue]=\"false\">否</label>\n          </nz-radio-group>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"AuditMessage\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"!formgroup.get('IsPass').value\"> {{ setting.displayName }}</nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <textarea\n            nz-input\n            [formControl]=\"formgroup.get('AuditMessage')\"\n            [placeholder]=\"setting.placeholder\"\n            [nzAutosize]=\"{ minRows: 2 }\"\n          ></textarea>\n          <div *ngIf=\"editDto?.AuditMessage\">\n            <span style=\"color: #faad14\">上一次审核信息：{{ editDto?.AuditMessage }}</span>\n          </div>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>\n\n<nz-modal\n  [nzTitle]=\"'关闭入库计划备注'\"\n  [nzVisible]=\"isShowCloseInPlanRemarkModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeCloseInPlanRemarkModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #closeDataForm\n    rhName=\"closeDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"closeDto\"\n    (rhInterfaceDataChange)=\"onCloseData($event)\"\n    (rhClose)=\"closeCloseInPlanRemarkModal()\"\n  ></rh-dynamic-form>\n</nz-modal>\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { CustomizeBaseTableComponent, DynamicFormComponent } from 'rh-base/shared';\nimport { RhDynamicInterfaceDto, RhSelectableDto, RhTableQueryOptionDto, CodeClassModel, RhDynamicTableFieldDto } from 'rh-base/model';\n\n@Component({\n  selector: 'rh-prodcution-warehousing-plan-table',\n  templateUrl: './prodcution-warehousing-plan-table.component.html',\n  styleUrls: ['./prodcution-warehousing-plan-table.component.less']\n})\nexport class ProdcutionWarehousingPlanTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n\n  @Input() rhSingleMode = true;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() rhDisabled: boolean;\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto>();\n\n  rhName = 'ProductionInPlanOrderSelector';\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n  defaultInterfaceInfo: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'ProductPlanBusinessApi',\n    interfaceName: 'GetProductCompletedInPlanOrderDatas'\n  };\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [\n    { name: 'PlanOrderId', displayName: '计划单号', placeholder: '计划单号', editable: true, visible: true },\n    {\n      name: 'OrderStatus',\n      displayName: '单据状态',\n      placeholder: '单据状态',\n      editable: false,\n      defaultValue: 'WaitInWarehouse',\n      visible: false\n    }\n  ];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [\n    { name: 'PlanOrderId', displayName: '计划单号', width: 150 },\n    { name: 'SourceOrderId', displayName: '生产工单号', width: 150 },\n    // { name: 'SourceOrderRowNum', displayName: '源单行号', width: 150 },\n    { name: 'InspectorId', displayName: '质检人编码', width: 120 },\n    { name: 'Inspector', displayName: '质检人', width: 120 },\n    { name: 'InWarehouseCode', displayName: '仓库代码', width: 120 },\n    { name: 'InWarehouseName', displayName: '仓库名称', width: 120 },\n    { name: 'OrganizationStructureCode', displayName: '部门编码', width: 150 },\n    { name: 'OrganizationStructureName', displayName: '部门名称', width: 120 },\n    { name: 'OrganizationStructureDisplayName', displayName: '部门描述', width: 120 },\n    { name: 'OrganizationStructureExternalCode', displayName: '外部编码', width: 120 },\n    { name: 'Remark', displayName: '备注', width: 120, rhEllipsis: true }\n  ];\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  constructor() {\n    //\n    super();\n  }\n\n  ngOnInit(): void {\n    this.rhInterfaceInfo = this.rhInterfaceInfo || this.defaultInterfaceInfo;\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n}\n","<!-- 搜索Form区域 -->\n<div class=\"search-area rh-full\">\n  <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n    <ng-template #searchTpl>\n      <rh-dynamic-form\n        #queryForm\n        rhName=\"{{ rhName }}Form\"\n        [rhValue]=\"rhDefaultQueryDto\"\n        (rhInterfaceDataChange)=\"setDatas($event)\"\n        (rhDataloadingChange)=\"dataLoadingChange($event)\"\n        (rhOutParaChange)=\"setInitFieldDataset($event)\"\n        [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n        [(rhFormInterface)]=\"rhInterfaceInfo\"\n      ></rh-dynamic-form>\n    </ng-template>\n  </nz-alert>\n</div>\n<!-- 搜索结果Table展示区域 -->\n<div class=\"table-area\">\n  <rh-dynamic-table\n    rhName=\"{{ rhName }}Table\"\n    [rhTableData]=\"dataresult\"\n    [rhTableDataloading]=\"dataLoading\"\n    [rhDefaultFieldDataset]=\"defaultTableFieldDataset\"\n    (rhRefresh)=\"refreshDatas($event)\"\n    (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\"\n    [rhSingleMode]=\"rhSingleMode\"\n  ></rh-dynamic-table>\n</div>\n","import { Component, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, SimpleChanges } from '@angular/core';\nimport { provideValueAccessor, RhRouteHelper, MsgHelper } from 'rh-base/core';\nimport {\n  RhSelectableDto,\n  DataResultT,\n  RhDynamicInterfaceDto,\n  RhDynamicFormFieldDto,\n  RhSafeAny,\n  RhDynamicCustomizeControlConfigDto,\n  RhRelatedFieldDataDto,\n  RhCustomizeEventSettingDto,\n  RhDisplayMode\n} from 'rh-base/model';\nimport { CustomizeBaseControlComponent, RhBaseDynamicService } from 'rh-base/shared';\nimport { NzSizeLDSType } from 'ng-zorro-antd/core/types';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { ProdcutionWarehousingPlanTableComponent } from './prodcution-warehousing-plan-table/prodcution-warehousing-plan-table.component';\n\n@Component({\n  selector: 'rh-prodcution-warehousing-plan-selector',\n  templateUrl: './prodcution-warehousing-plan-selector.component.html',\n  styleUrls: ['./prodcution-warehousing-plan-selector.component.less'],\n  providers: [provideValueAccessor(ProdcutionWarehousingPlanSelectorComponent)]\n})\nexport class ProdcutionWarehousingPlanSelectorComponent extends CustomizeBaseControlComponent {\n  rhRelatedFieldData = null;\n  @ViewChild(ProdcutionWarehousingPlanTableComponent) tableComp: ProdcutionWarehousingPlanTableComponent;\n  @Input() rhDynamicKey = 'ProductionInPlanOrder';\n  @Input() rhTitle = '选择生产入库计划';\n  @Input() declare rhSize: NzSizeLDSType;\n  @Input() declare rhDisplayMode: RhDisplayMode;\n\n  @Input() rhProductCode: string;\n\n  iconSetting = 'search';\n  @Input() rhSingleMode = true;\n\n  formKeyFieldName = 'PlanOrderId';\n  formTextFieldName = 'PlanOrderId';\n\n  modelKeyFieldName = 'PlanOrderId';\n  modelTextFieldName = 'PlanOrderId';\n\n  // // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto>();\n  /** 对应table选中的数据 */\n  rhModel: RhSelectableDto = {};\n\n  /** 动态form字段配置数据 */\n  @Input() rhFieldData: RhDynamicFormFieldDto;\n  /** 整个form的数据 */\n  @Input() declare rhData: RhSafeAny;\n\n  /** 表格Loading */\n  // dataLoading = false;\n  // dataresult: DataResultT<RhSelectableDto[]>;\n\n  /** selector input上展示的数据，一般为中文 */\n  //displayName: string;\n\n  //selectedData: RhSelectableDto[];\n\n  /** 自定义组件的自定义执行函数 */\n  cb: (data: RhSafeAny, ctx: RhSafeAny) => void;\n\n  /** 该组件关联的form名称 */\n  formName: string;\n\n  url: string;\n\n  /** 设置默认搜索接口 */\n  defaultFormInterface: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'ProductPlanBusinessApi',\n    interfaceName: 'GetProductCompletedInPlanOrderDatas'\n  };\n\n  mappedList = [\n    { sourceName: this.modelKeyFieldName, mappedName: this.formKeyFieldName },\n    { sourceName: this.modelTextFieldName, mappedName: this.formTextFieldName },\n    { sourceName: 'SourceOrderId', mappedName: 'SourceOrderId' },\n    { sourceName: 'ProductionPlanCode', mappedName: 'ProductionPlanCode' },\n    { sourceName: 'ProductionType', mappedName: 'ProductionType' },\n    { sourceName: 'ProductCode', mappedName: 'ProductCode' },\n    { sourceName: 'ProductName', mappedName: 'ProductName' },\n    { sourceName: 'ProductSpecification', mappedName: 'ProductSpecification' },\n    { sourceName: 'PlanScheduler', mappedName: 'PlanScheduler' },\n    { sourceName: 'ProcessRoutingCode', mappedName: 'ProcessRoutingCode' },\n    { sourceName: 'ProductBomCode', mappedName: 'ProductBomCode' },\n    { sourceName: 'PlanStartDate', mappedName: 'PlanStartDate' },\n    { sourceName: 'PlanEndDate', mappedName: 'PlanEndDate' },\n    { sourceName: 'InWarehouseCode', mappedName: 'InWarehouseCode' },\n    { sourceName: 'InWarehouseName', mappedName: 'InWarehouseName' },\n    { sourceName: 'OrganizationStructureCode', mappedName: 'OrganizationStructureCode' },\n    { sourceName: 'OrganizationStructureDisplayName', mappedName: 'OrganizationStructureDisplayName' },\n    { sourceName: 'OrganizationStructureExternalCode', mappedName: 'OrganizationStructureExternalCode' },\n    { sourceName: 'OrganizationStructureName', mappedName: 'OrganizationStructureName' },\n    { sourceName: 'InspectorId', mappedName: 'InspectorId' },\n    { sourceName: 'Inspector', mappedName: 'Inspector' }\n  ];\n\n  constructor(\n    public fb: UntypedFormBuilder,\n    public cdr: ChangeDetectorRef,\n    public router: Router,\n    public dynamicSer: RhBaseDynamicService\n  ) {\n    super(cdr, dynamicSer);\n    this.url = RhRouteHelper.getRealRoute(this.router.url);\n  }\n\n  ngOnInit(): void {\n    this.rhPlaceholder = this.rhFieldData.placeholder as any;\n    this.formName = this.rhFieldData.relatedComponentName;\n    this.setCbValue();\n  }\n\n  // 自定义表单项配置\n  ngOnChanges(changes: SimpleChanges) {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue && rhData.currentValue[this.formKeyFieldName] === null) {\n      this.resetControlValue();\n    } else {\n      this.rhModel = {};\n    }\n  }\n\n  // dataLoadingChange(status: boolean) {\n  //   this.dataLoading = status;\n  // }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    // if (data?.length === 1 && this.rhSingleMode) {\n    //   this.selectedData = data[0];\n    // } else {\n    //   this.selectedData = data;\n    // }\n    this.selectedData = data || [];\n  }\n\n  // setDatas(result: DataResultT<RhSelectableDto[]>) {\n  //   if (result && result.Success) {\n  //     this.dataresult = result;\n  //   } else {\n  //     MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n  //   }\n  // }\n\n  /** 根据填入的code值，获取对应的完整数据，回填到输入框 */\n  getTargetDatas(code: string) {\n    // 显示代码 不需要\n    // if (!this.defaultFormInterface) {\n    //   return;\n    // }\n    // const queryDto = {};\n    // queryDto[this.modelKeyFieldName] = `$${code}`;\n    // this.getTargetDatasVisHttpHandler(this.defaultFormInterface, queryDto, this.rhFieldData);\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n  }\n\n  //#region customize selector interface区域\n  confirmSelect() {\n    this.rhModel = this.selectedData[0];\n    this.rhModelChange.emit(this.selectedData);\n    // if (this.rhSingleMode) {\n    //   this.value = this.rhModel[this.modelKeyFieldName];\n    //   this.displayName = this.rhModel[this.modelTextFieldName];\n    //   this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // } else {\n    //   this.value = (this.rhModel as RhSafeAny[]).map((ele) => ele[this.modelKeyFieldName]) as RhSafeAny;\n    //   // 多选的时候只会显示多个代码\n    //   this.displayName = (this.value as RhSafeAny).toString();\n    // }\n    this.value = this.rhModel[this.modelKeyFieldName];\n    this.displayName = this.rhModel[this.modelTextFieldName];\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // 执行对应控件定义的代码\n    if (this.rhData && this.rhModel && this.cb) {\n      this.cb(this.rhData, this.rhModel);\n    }\n    this.setFormDataViaRelatedDatas();\n    // 执行form的相关字段赋值操作\n    this.triggerRelatedForm();\n    this.closeDataModal();\n  }\n\n  resetControlValue() {\n    this.displayName = null;\n    // 重置form对应数据对象\n    this.rhData[this.formKeyFieldName] = null;\n    this.rhData[this.formTextFieldName] = null;\n    // 清空数据中的字段的值\n    this.mappedList.forEach((ele) => {\n      this.rhData[ele.mappedName] = null;\n    });\n    this.rhModel = null;\n  }\n\n  setCbValue() {\n    const cbString = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.cb;\n    if (cbString) {\n      const fn = Function(`return ${cbString}`);\n      if (fn) {\n        this.cb = fn();\n      } else {\n        this.cb = this.setFormData;\n      }\n    } else {\n      // 当没有配置回调函数时，执行默认的回调函数\n      this.cb = this.setFormData;\n    }\n  }\n\n  /** 设置form对应的数据对象的值\n   * @param data form对应的数据对象\n   * @params 设置或者对应table选择的数据\n   */\n  setFormData(data: RhSafeAny, ctx: RhSelectableDto) {\n    data[this.formKeyFieldName] = ctx[this.modelKeyFieldName];\n    data[this.formTextFieldName] = ctx[this.modelTextFieldName];\n  }\n\n  setFormDataViaRelatedDatas() {\n    let relatedDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedModelDatas;\n    if (!relatedDatas?.length) {\n      relatedDatas = this.mappedList;\n    }\n    if (relatedDatas?.length) {\n      relatedDatas.forEach((ele) => {\n        this.rhData[ele.mappedName] = this.rhModel[ele.sourceName];\n      });\n    }\n  }\n\n  triggerRelatedForm() {\n    const tempDatas = (this.rhFieldData.config as RhDynamicCustomizeControlConfigDto)?.relatedFieldDatas;\n    const relatedDatas: RhRelatedFieldDataDto[] = tempDatas && tempDatas.length ? tempDatas : this.mappedList;\n    const data: RhCustomizeEventSettingDto = {\n      id: `${this.url}_${this.formName}`,\n      eventType: null,\n      options: null,\n      value: this.rhModel,\n      relatedFieldDatas: relatedDatas\n    };\n    this.dynamicSer.formCustomizeEventTrigger(data);\n  }\n  //#endregion customize selector interface区域结束\n}\n","<nz-input-group [nzSize]=\"rhSize\" [nzSuffix]=\"suffixIconSearch\" [nzAddOnAfter]=\"addOnAfter\">\n  <input type=\"text\" nz-input [ngModel]=\"displayName\" [placeholder]=\"rhPlaceholder\" readonly=\"readonly\" />\n</nz-input-group>\n<ng-template #suffixIconSearch>\n  <a *ngIf=\"displayName && !rhDisabled\" class=\"link-suffix\" (click)=\"clearInputInfo()\">\n    <i nz-icon nzType=\"close-circle\"></i>\n  </a>\n</ng-template>\n\n<ng-template #addOnAfter>\n  <button nz-button nzType=\"link\" type=\"button\" nzSize=\"small\">\n    <a (click)=\"openDataModal($event)\">\n      <i nz-icon [nzType]=\"iconSetting\"></i>\n    </a>\n  </button>\n</ng-template>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"rhTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedData\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-prodcution-warehousing-plan-table\n        [rhModel]=\"rhModel\"\n        (rhModelChange)=\"onSelectModal($event)\"\n        [rhInterfaceInfo]=\"defaultFormInterface\"\n        [rhSingleMode]=\"rhSingleMode\"\n        [rhDefaultQueryDto]=\"rhDefaultQueryDto\"\n      ></rh-prodcution-warehousing-plan-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { BusinessType } from './../../../business-type';\nimport { RhProductionBusinessService } from './../../production-business.service';\nimport { Component, OnInit, Input, Output, EventEmitter, SimpleChanges } from '@angular/core';\nimport { RhBaseDto, RhSelectableDto, DataResultT, RhTableButtonInfoDto, OpMode, RhSafeAny } from 'rh-base/model';\nimport { ProductReturnedMaterialInPlanOrderDetails } from '../../production-business-model';\nimport { RhBusinessManageService } from './../../../business-manage.service';\nimport { Observable } from 'rxjs';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport { ExtProductionFeedOrderDetailTableFieldDataset } from '../../detail-source-table-config';\n\n@Component({\n  selector: 'rh-product-returned-material-in-plan-details',\n  templateUrl: './product-returned-material-in-plan-details.component.html',\n  styleUrls: ['./product-returned-material-in-plan-details.component.less']\n})\nexport class ProductReturnedMaterialInPlanDetailsComponent implements OnInit {\n  @Input() rhPlanOrder: RhBaseDto;\n  @Input() rhSourceDataset: RhSelectableDto[] = [];\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter();\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto(\n      'deleteDetails',\n      '删除',\n      'primary',true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhSelectableDto[]),\n      false,\n      true\n    ),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset = [new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)];\n  tableVisibleSetting = {};\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  // sourceDefaultQueryDto = {};\n  isEnterEditStatus = false;\n  // 源单明细数据\n  sourceDetailTableFieldDataset = ExtProductionFeedOrderDetailTableFieldDataset;\n  sourceDetailDataResult: DataResultT<RhSelectableDto[]>;\n  sourceDetailDataLoading = false;\n  extraButtonDatasetSourceDetail = [\n    new RhTableButtonInfoDto('refreshSourceDetail', '刷新', 'default', false, 'sync', false, null, () => this.getSourceDetailDatas(), true)\n  ];\n\n  editDisabled = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return !list.includes(data.OrderStatus);\n  };\n\n  get isReadOnlyTable() {\n    return this.rhShowDetail || !this.rhPlanOrder?.PlanOrderId || this.isEnterEditStatus || this.editDisabled(this.rhPlanOrder);\n  }\n\n  get readeOnlyButtonDataset() {\n    if (!this.rhPlanOrder?.PlanOrderId) return [];\n    else if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(private operator: RhProductionBusinessService, public businessManageSer: RhBusinessManageService) { }\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhPlanOrder, rhSourceDataset } = changes;\n    if (rhPlanOrder && rhPlanOrder.currentValue) {\n      this.initInPlanOrderDetailDataset();\n    }\n    /** 选中源单带来数据源 */\n    if (rhSourceDataset && rhSourceDataset.currentValue && rhSourceDataset.currentValue.length) {\n      if (!this.rhPlanOrder.PlanOrderId) this.handleSourceDataset(this.rhSourceDataset, true);\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getDynamicVisibleSetting(['LotNum']));\n  }\n\n  /** 初始化明细数据 */\n  initInPlanOrderDetailDataset() {\n    if (this.rhPlanOrder.PlanOrderId) {\n      if (this.rhSourceDataset.length) {\n        const dataset = this.dataresult.Attach;\n        dataset.forEach((data) => {\n          data.PlanOrderId = this.rhPlanOrder.PlanOrderId;\n          data.BusinessType = this.rhPlanOrder.BusinessType;\n          data.InWarehouseCode = this.rhPlanOrder.InWarehouseCode;\n          data.InWarehouseName = this.rhPlanOrder.InWarehouseName;\n        });\n        this.storeDatas(dataset).subscribe(() => {\n          this.rhSourceDataset = [];\n          this.getDatas();\n        });\n      } else {\n        this.getDatas();\n      }\n    }\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      PlanOrderId: this.rhPlanOrder.PlanOrderId,\n      SourceOrderId: this.rhPlanOrder.SourceOrderId,\n      FactoryCode: this.rhPlanOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetProductReturnedMaterialInPlanOrderDetailsDatasBy(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`);\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (this.editDisabled(this.rhPlanOrder)) {\n      MsgHelper.ShowWarningMessage('当前单据状态无法编辑入库计划明细！');\n      return;\n    }\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    const checkRes = this.checkStoreDatas(details);\n    if (!checkRes) {\n      return;\n    }\n    // 源单号赋值\n    details.forEach((ele) => (ele.SourceOrderId = this.rhPlanOrder.SourceOrderId));\n    return new Observable((observer) => {\n      const dto = {\n        OrderMaster: this.rhPlanOrder,\n        OrderDetails: details\n      };\n      const msg = editType === 'add' ? '新增' : '编辑';\n      this.dataLoading = true;\n      this.operator.StoreProductReturnedMaterialInPlanOrderDetails(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`);\n          } else {\n            MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n          observer.next();\n          observer.complete();\n        },\n        () => {\n          this.dataLoading = false;\n          observer.error();\n        }\n      );\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[]) {\n    this.extraButtonHandleDataset[1].loading = true;\n    this.operator.RemoveProductReturnedMaterialInPlanOrderDetails(details).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n          this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n        }\n        this.extraButtonHandleDataset[1].loading = false;\n      },\n      () => (this.extraButtonHandleDataset[1].loading = false)\n    );\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  async handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    // 获取源单统计信息\n    const convertResult = await this.businessManageSer.convertSourceOrderStatisticsDatasToSelectedDatas(\n      this.rhPlanOrder.SourceOrderId,\n      // this.rhPlanOrder.BusinessType,\n      BusinessType.ProductPickedMaterialOut,\n      details\n    );\n    // 退料一定有源单！\n    if (!convertResult) {\n      return MsgHelper.ShowWarningMessage('找不到对应源单的统计数据！');\n    }\n    const datas = details.map((data) => {\n      const temp = ProductReturnedMaterialInPlanOrderDetails.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 单头赋值\n      temp.PlanOrderId = this.rhPlanOrder.PlanOrderId;\n      temp.BusinessType = this.rhPlanOrder.BusinessType;\n      if (data.WarehouseCode) {\n        temp.InWarehouseCode = data.WarehouseCode;\n        temp.InWarehouseName = data.WarehouseName;\n      } else {\n        temp.InWarehouseCode = this.rhPlanOrder.InWarehouseCode;\n        temp.InWarehouseName = this.rhPlanOrder.InWarehouseName;\n      }\n      temp.FactoryCode = this.rhPlanOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n      }\n      this.dataresult = { Attach: (this.dataresult.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  /** 检查保存数据 */\n  checkStoreDatas(details: RhSelectableDto[]) {\n    // 必须填写计划数量\n    if (details.some((f) => !f.PlanQty)) {\n      MsgHelper.ShowWarningMessage('计划数量不能为0或空！');\n      return false;\n    }\n    // 退料数量需要小于已领料数量，不判端超额入库情况\n    if (details.some((f) => (f.PlanQty + f.SourceReversePlannedQty) > f.SourceCompletedQty)) {\n      MsgHelper.ShowWarningMessage('计划数量+已计划数量不能大于源单已生产领料数量');\n      return false;\n    }\n    return true;\n  }\n\n  openDataModal() {\n    // this.sourceDefaultQueryDto = {\n    //   ProductionPickingOrderCode: this.rhPlanOrder.SourceOrderId ? `$${this.rhPlanOrder.SourceOrderId}` : null,\n    //   FactoryCode: this.rhPlanOrder.FactoryCode\n    // };\n    this.getSourceDetailDatas();\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n\n  getSourceDetailDatas() {\n    const queryDto = {\n      PickingOrderCode: this.rhPlanOrder.SourceOrderId ? `$${this.rhPlanOrder.SourceOrderId}` : null,\n      FactoryCode: this.rhPlanOrder.FactoryCode\n    };\n    this.sourceDetailDataLoading = true;\n    this.operator.GetExtProductionFeedOrders(queryDto).subscribe(\n      (result) => {\n        this.sourceDetailDataResult = null;\n        if (result.Success) {\n          const dataset = result?.Attach || [];\n          if (dataset.length) {\n            const target = dataset[0].FeedDetails || [];\n            // 投料单明细没有领料单号\n            target.forEach((ele) => (ele.PickingOrderCode = queryDto.PickingOrderCode));\n            this.sourceDetailDataResult = { Attach: target, TotalCount: target.length } as RhSafeAny;\n          }\n        } else {\n          MsgHelper.ShowWarningMessage(`查询无投料单明细数据！${result.Message}`);\n        }\n        this.sourceDetailDataLoading = false;\n      },\n      () => {\n        this.sourceDetailDataLoading = false;\n      }\n    );\n  }\n}\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n    <rh-dynamic-table\n      rhName=\"handleDetailsReadOnlyTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    ></rh-dynamic-table>\n  </ng-container>\n  <ng-template #handleTpl>\n    <rh-dynamic-table\n      rhName=\"handleDetailsTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    >\n    </rh-dynamic-table>\n  </ng-template>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"'选择生产退料入库源单'\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <!-- <rh-return-warehousing-source-order-table (rhModelChange)=\"onSelectModal($event)\"\n                [rhDefaultQueryDto]=\"sourceDefaultQueryDto\" [rhSingleMode]=\"false\">\n            </rh-return-warehousing-source-order-table> -->\n      <rh-dynamic-table\n        rhName=\"sourceOrderDetailTable\"\n        [rhTableData]=\"sourceDetailDataResult\"\n        [rhTableDataloading]=\"sourceDetailDataLoading\"\n        [rhDefaultFieldDataset]=\"sourceDetailTableFieldDataset\"\n        [rhSingleMode]=\"false\"\n        (rhSelectedDatasChange)=\"onSelectModal($event)\"\n      ></rh-dynamic-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport {\n  RhDynamicInterfaceDto,\n  RhSelectableDto,\n  DataResultT,\n  RhTableQueryOptionDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhSafeAny\n} from 'rh-base/model';\nimport { MsgHelper } from 'rh-base/core';\nimport { DynamicFormComponent, CustomizeBaseTableComponent } from 'rh-base/shared';\nimport { ExtProductionFeedOrderTableFieldDataset } from './../../../detail-source-table-config';\n\n@Component({\n  selector: 'rh-return-warehousing-source-order-table',\n  templateUrl: './return-warehousing-source-order-table.component.html',\n  styleUrls: ['./return-warehousing-source-order-table.component.less']\n})\nexport class ReturnWarehousingSourceOrderTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n  @Input() rhSingleMode = false;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() rhDisabled: boolean;\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto>();\n\n  rhName = 'ReturnWarehousingSourceOrder';\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n  defaultInterfaceInfo: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'ProductPlanBusinessApi',\n    interfaceName: 'GetExtProductionFeedOrders'\n  };\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [\n    // { name: 'ProductionPlanCode', displayName: '生产工单号', placeholder: '生产工单号', editable: true, required: true },\n    { name: 'PickingOrderCode', displayName: '领料单号', placeholder: '领料单号', editable: true, required: true },\n    {\n      name: 'FactoryCode',\n      displayName: '工厂',\n      placeholder: '工厂',\n      editable: true,\n      required: true,\n      type: 'array',\n      config: { port: '52880', controllerName: 'FactoryLayoutWebApi', interfaceName: 'GetFactoryInfoSelectItems' }\n    }\n  ];\n  /** 设置默认的table显示字段 */\n  // defaultTableFieldDataset = [\n  //   { name: 'ProductionPlanCode', displayName: '生产工单号', width: 150 },\n  //   { name: 'PlanOrderQty', displayName: '生产订单数量', width: 120 },\n  //   { name: 'ProductionPickingOrderCode', displayName: '生产领料单号', width: 150 },\n  //   { name: 'ProductionPickingOrderRowNum', displayName: '生产领料单行号', width: 150 },\n  //   { name: 'PickingQty', displayName: '领料数量', width: 120 },\n  //   { name: 'AvailablePickingQty', displayName: '可领数量', width: 120 },\n  //   { name: 'HadPickedQty', displayName: '已领数量', width: 120 },\n  //   { name: 'WarehouseStorageQty', displayName: '仓库库存数量', width: 120 },\n  //   { name: 'OrganizationStructureCode', displayName: '部门编码', width: 120 },\n  //   { name: 'OrganizationStructureName', displayName: '部门名称', width: 120 },\n  //   { name: 'ProductCode', displayName: '产品代码', width: 120 },\n  //   { name: 'ProductName', displayName: '产品名称', width: 120 },\n  //   { name: 'ProductSpecification', displayName: '产品规格', width: 200, rhEllipsis: true },\n  //   { name: 'WarehouseCode', displayName: '仓库代码', width: 120 },\n  //   { name: 'WarehouseName', displayName: '仓库名称', width: 120 },\n  //   { name: 'MaterialCode', displayName: '物料代码', width: 120 },\n  //   { name: 'MaterialName', displayName: '物料名称', width: 120 },\n  //   { name: 'MaterialSpecification', displayName: '物料规格', width: 200, rhEllipsis: true }\n  // ];\n  defaultTableFieldDataset = ExtProductionFeedOrderTableFieldDataset;\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  constructor() {\n    //\n    super();\n  }\n\n  ngOnInit(): void {\n    this.rhInterfaceInfo = this.rhInterfaceInfo || this.defaultInterfaceInfo;\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  setDatas(result: DataResultT<RhSelectableDto[]>) {\n    if (result && result.Success) {\n      // 没有领料单号就用生产工单号\n      (result?.Attach || []).forEach((ele) => {\n        if (!ele.PickingOrderCode) {\n          ele.PickingOrderCode = ele.ProductionPlanCode;\n        }\n      });\n      this.dataresult = result;\n      this.rhDatasetChange.next(result.Attach);\n    } else {\n      this.dataresult = { Success: false, Attach: [] } as RhSafeAny;\n      this.rhDatasetChange.next(null);\n      MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n    }\n  }\n}\n","<!-- 搜索Form区域 -->\n<div class=\"search-area rh-full\">\n  <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n    <ng-template #searchTpl>\n      <rh-dynamic-form\n        #queryForm\n        rhName=\"{{ rhName }}Form\"\n        [rhValue]=\"rhDefaultQueryDto\"\n        (rhInterfaceDataChange)=\"setDatas($event)\"\n        (rhDataloadingChange)=\"dataLoadingChange($event)\"\n        (rhOutParaChange)=\"setInitFieldDataset($event)\"\n        [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n        [(rhFormInterface)]=\"rhInterfaceInfo\"\n      >\n      </rh-dynamic-form>\n    </ng-template>\n  </nz-alert>\n</div>\n<!-- 搜索结果Table展示区域 -->\n<div class=\"table-area\">\n  <rh-dynamic-table\n    rhName=\"{{ rhName }}Table\"\n    [rhTableData]=\"dataresult\"\n    [rhTableDataloading]=\"dataLoading\"\n    [rhDefaultFieldDataset]=\"defaultTableFieldDataset\"\n    (rhRefresh)=\"refreshDatas($event)\"\n    (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\"\n    [rhSingleMode]=\"rhSingleMode\"\n  ></rh-dynamic-table>\n</div>\n","import { Component, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, SimpleChanges } from '@angular/core';\nimport { provideValueAccessor, RhRouteHelper, MsgHelper } from 'rh-base/core';\nimport { CustomizeBaseControlComponent, RhBaseDynamicService } from 'rh-base/shared';\nimport { NzSizeLDSType } from 'ng-zorro-antd/core/types';\nimport {\n  RhSelectableDto,\n  RhDynamicFormFieldDto,\n  RhSafeAny,\n  DataResultT,\n  RhDynamicInterfaceDto,\n  RhDynamicCustomizeControlConfigDto,\n  RhRelatedFieldDataDto,\n  RhCustomizeEventSettingDto,\n  RhDisplayMode,\n  RhBaseDto\n} from 'rh-base/model';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { ReturnWarehousingSourceOrderTableComponent } from './return-warehousing-source-order-table/return-warehousing-source-order-table.component';\n\n@Component({\n  selector: 'rh-return-warehousing-source-order-selector',\n  templateUrl: './return-warehousing-source-order-selector.component.html',\n  styleUrls: ['./return-warehousing-source-order-selector.component.less'],\n  providers: [provideValueAccessor(ReturnWarehousingSourceOrderSelectorComponent)]\n})\nexport class ReturnWarehousingSourceOrderSelectorComponent extends CustomizeBaseControlComponent {\n  rhRelatedFieldData = null;\n  @ViewChild(ReturnWarehousingSourceOrderTableComponent) tableComp: ReturnWarehousingSourceOrderTableComponent;\n  @Input() rhDynamicKey = 'ReturnWarehousingSourceOrder';\n  @Input() rhTitle = '选择生产退料源单';\n  @Input() declare rhSize: NzSizeLDSType;\n  @Input() declare rhDisplayMode: RhDisplayMode;\n  @Input() declare rhDefaultQueryDto: RhBaseDto;\n\n  iconSetting = 'search';\n  @Input() rhSingleMode = false;\n\n  formKeyFieldName = 'SourceOrderId';\n  formTextFieldName = 'SourceOrderId';\n\n  modelKeyFieldName = 'PickingOrderCode';\n  modelTextFieldName = 'PickingOrderCode';\n\n  // // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto>();\n  /** 对应table选中的数据 */\n  rhModel: RhSelectableDto = {};\n\n  /** 动态form字段配置数据 */\n  @Input() rhFieldData: RhDynamicFormFieldDto;\n  /** 整个form的数据 */\n  @Input() declare rhData: RhSafeAny;\n\n  /** 表格Loading */\n  // dataLoading = false;\n  // dataresult: DataResultT<RhSelectableDto[]>;\n\n  /** selector input上展示的数据，一般为中文 */\n  //displayName: string;\n\n  //selectedData: RhSelectableDto[];\n\n  /** 自定义组件的自定义执行函数 */\n  cb: (data: RhSafeAny, ctx: RhSafeAny) => void;\n\n  /** 该组件关联的form名称 */\n  formName: string;\n\n  url: string;\n\n  /** 设置默认搜索接口 */\n  defaultFormInterface: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'ProductPlanBusinessApi',\n    interfaceName: 'GetExtProductionFeedOrders'\n  };\n\n  mappedList = [\n    { sourceName: this.modelKeyFieldName, mappedName: this.formKeyFieldName },\n    { sourceName: this.modelTextFieldName, mappedName: this.formTextFieldName },\n    // { sourceName: 'ProductionPickingOrderRowNum', mappedName: 'SourceOrderRowNum' },\n    // { sourceName: 'ProductionPickingOrderCode', mappedName: 'PickingOrderCode' },\n    { sourceName: 'OrganizationStructureCode', mappedName: 'OrganizationStructureCode' },\n    { sourceName: 'OrganizationStructureDisplayName', mappedName: 'OrganizationStructureDisplayName' },\n    { sourceName: 'OrganizationStructureExternalCode', mappedName: 'OrganizationStructureExternalCode' },\n    { sourceName: 'OrganizationStructureName', mappedName: 'OrganizationStructureName' }\n    // { sourceName: 'WarehouseCode', mappedName: 'InWarehouseCode' },\n    // { sourceName: 'WarehouseName', mappedName: 'InWarehouseName' }\n  ];\n\n  constructor(\n    public fb: UntypedFormBuilder,\n    public cdr: ChangeDetectorRef,\n    public router: Router,\n    public dynamicSer: RhBaseDynamicService\n  ) {\n    super(cdr, dynamicSer);\n    this.url = RhRouteHelper.getRealRoute(this.router.url);\n  }\n\n  ngOnInit(): void {\n    this.rhPlaceholder = this.rhFieldData.placeholder as any;\n    this.formName = this.rhFieldData.relatedComponentName;\n    this.setCbValue();\n  }\n\n  // 自定义表单项配置\n  ngOnChanges(changes: SimpleChanges) {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue && rhData.currentValue[this.formKeyFieldName] === null) {\n      this.resetControlValue();\n    } else {\n      this.rhModel = {};\n    }\n  }\n\n  // dataLoadingChange(status: boolean) {\n  //   this.dataLoading = status;\n  // }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    // if (data?.length === 1 && this.rhSingleMode) {\n    //   this.selectedData = data[0];\n    // } else {\n    //   this.selectedData = data;\n    // }\n    this.selectedData = data || null;\n  }\n\n  // setDatas(result: DataResultT<RhSelectableDto[]>) {\n  //   if (result && result.Success) {\n  //     this.dataresult = result;\n  //   } else {\n  //     MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n  //   }\n  // }\n\n  /** 根据填入的code值，获取对应的完整数据，回填到输入框 */\n  getTargetDatas(code: string) {\n    // 接口搜索需接入第三方\n    // if (!this.defaultFormInterface) {\n    //   return;\n    // }\n    // const queryDto = {};\n    // queryDto[this.modelKeyFieldName] = `$${code}`;\n    // this.getTargetDatasVisHttpHandler(this.defaultFormInterface, queryDto, this.rhFieldData);\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n  }\n\n  //#region customize selector interface区域\n  confirmSelect() {\n    this.rhModel = this.selectedData[0];\n    this.rhModelChange.emit(this.selectedData);\n    // if (this.rhSingleMode) {\n    //   this.value = this.rhModel[this.modelKeyFieldName];\n    //   this.displayName = this.rhModel[this.modelTextFieldName];\n    //   // this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // } else {\n    //   this.value = (this.rhModel as RhSafeAny[]).map((ele) => ele[this.modelKeyFieldName]) as RhSafeAny;\n    //   // 多选的时候只会显示多个代码\n    //   this.displayName = (this.value as RhSafeAny).toString();\n    // }\n    this.value = this.rhModel[this.modelKeyFieldName];\n    this.displayName = this.rhModel[this.modelTextFieldName];\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // 执行对应控件定义的代码\n    if (this.rhData && this.rhModel && this.cb) {\n      this.cb(this.rhData, this.rhModel);\n    }\n    this.setFormDataViaRelatedDatas();\n    // 执行form的相关字段赋值操作\n    this.triggerRelatedForm();\n    this.closeDataModal();\n  }\n\n  resetControlValue() {\n    this.displayName = null;\n    // 重置form对应数据对象\n    this.rhData[this.formKeyFieldName] = null;\n    this.rhData[this.formTextFieldName] = null;\n    //\n    this.mappedList.forEach((ele) => (this.rhData[ele.mappedName] = null));\n    this.rhModel = null;\n  }\n\n  setCbValue() {\n    const cbString = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.cb;\n    if (cbString) {\n      const fn = Function(`return ${cbString}`);\n      if (fn) {\n        this.cb = fn();\n      } else {\n        this.cb = this.setFormData;\n      }\n    } else {\n      // 当没有配置回调函数时，执行默认的回调函数\n      this.cb = this.setFormData;\n    }\n  }\n\n  /** 设置form对应的数据对象的值\n   * @param data form对应的数据对象\n   * @params 设置或者对应table选择的数据\n   */\n  setFormData(data: RhSafeAny, ctx: RhSelectableDto) {\n    data[this.formKeyFieldName] = ctx[this.modelKeyFieldName];\n    data[this.formTextFieldName] = ctx[this.modelTextFieldName];\n  }\n\n  setFormDataViaRelatedDatas() {\n    let relatedDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedModelDatas;\n    if (!relatedDatas?.length) {\n      relatedDatas = this.mappedList;\n    }\n    if (relatedDatas?.length) {\n      relatedDatas.forEach((ele) => {\n        this.rhData[ele.mappedName] = this.rhModel[ele.sourceName];\n      });\n    }\n  }\n\n  triggerRelatedForm() {\n    const tempDatas = (this.rhFieldData.config as RhDynamicCustomizeControlConfigDto)?.relatedFieldDatas;\n    const relatedDatas: RhRelatedFieldDataDto[] = tempDatas && tempDatas.length ? tempDatas : this.mappedList;\n    const data: RhCustomizeEventSettingDto = {\n      id: `${this.url}_${this.formName}`,\n      eventType: null,\n      options: null,\n      value: this.rhModel,\n      relatedFieldDatas: relatedDatas\n    };\n    this.dynamicSer.formCustomizeEventTrigger(data);\n  }\n  //#endregion customize selector interface区域结束\n}\n","<nz-input-group [nzSize]=\"rhSize\" [nzSuffix]=\"suffixIconSearch\" [nzAddOnAfter]=\"addOnAfter\">\n  <input type=\"text\" nz-input [ngModel]=\"displayName\" [placeholder]=\"rhPlaceholder\" readonly=\"readonly\" />\n</nz-input-group>\n<ng-template #suffixIconSearch>\n  <a *ngIf=\"displayName && !rhDisabled\" class=\"link-suffix\" (click)=\"clearInputInfo()\">\n    <i nz-icon nzType=\"close-circle\"></i>\n  </a>\n</ng-template>\n\n<ng-template #addOnAfter>\n  <button nz-button nzType=\"link\" type=\"button\" nzSize=\"small\">\n    <a (click)=\"openDataModal($event)\">\n      <i nz-icon [nzType]=\"iconSetting\"></i>\n    </a>\n  </button>\n</ng-template>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"rhTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedData\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-return-warehousing-source-order-table\n        [rhModel]=\"rhModel\"\n        (rhModelChange)=\"onSelectModal($event)\"\n        [rhInterfaceInfo]=\"defaultFormInterface\"\n        [rhSingleMode]=\"rhSingleMode\"\n        [rhDefaultQueryDto]=\"rhDefaultQueryDto\"\n      >\n      </rh-return-warehousing-source-order-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { BusinessType } from './../../business-type';\nimport { RhSharedManageService } from './../../../shared-manage/shared-manage.service';\nimport { RhBusinessManageService } from './../../business-manage.service';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { RhBaseDto, DataResultT, RhSelectableDto, RhLoginedUserDto, RhTableButtonInfoDto, OpResult, OpMode, RhSafeAny, CodeClassModel, RhDynamicTableFieldDto, RhTableQueryOptionDto } from 'rh-base/model';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\nimport { RhProductionBusinessService } from '../production-business.service';\n\ntype TabType = 'edit' | 'detail' | 'audit';\n\n@Component({\n  selector: 'rh-product-returned-material-in-plan',\n  templateUrl: './product-returned-material-in-plan.component.html',\n  styleUrls: ['./product-returned-material-in-plan.component.less']\n})\nexport class RhProductReturnedMaterialInPlanComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  BusinessType = BusinessType.ProductReturnedMaterialIn;\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isShowCloseInPlanRemarkModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  closeDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n  /** 显示配置 */\n  visibleSetting = {};\n  /** 选中的采购计划源单的数据 */\n  selectedSourceDataset: RhSelectableDto[] = [];\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  completeVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitInWarehouse';\n  };\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  isAsCreated = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto)),\n    new RhTableButtonInfoDto('submit', '提交审核', 'default', false, 'form', false, null, (data) => this.submitDataToAudit(data as RhBaseDto)),\n    new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) =>\n      this.openDetailTab({ data } as RhBaseDto, 'audit')\n    ),\n    new RhTableButtonInfoDto(\n      'close',\n      '关闭',\n      'default',\n      false,\n      'close-circle',\n      false,\n      null,\n      (data) => this.openCloseInPlanRemarkModal(data as RhBaseDto),\n      null,\n      null,\n      'red'\n    )\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '新建', 'primary', false, 'file', false, null, () => this.openEditTab(), true),\n    new RhTableButtonInfoDto(\n      'delete',\n      '删除',\n      'primary',true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhBaseDto[]),\n      false,\n      false,\n      'red'\n    )\n  ];\n\n  beforeSubmit = async (data: RhBaseDto, context: DynamicFormComponent) => {\n    let result: OpResult = null;\n    const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n    context.submitLoading = true;\n    try {\n      if (this.editDto.OpSign === OpMode.OpAdd) {\n        // 基本信息\n        data.BusinessType = this.BusinessType;\n        data.Creator = this.currentUser.DisplayName;\n        data.CreatorId = this.currentUser.UserName;\n\n        result = await this.operator.CreateProductReturnedMaterialInPlanMasterOrder(data).toPromise();\n      } else {\n        result = await this.operator.UpdateProductReturnedMaterialInPlanMasterOrder(data).toPromise();\n      }\n      if (result && result.Success) {\n        MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n        this.editDto.PlanOrderId = result?.Attach?.PlanOrderId;\n        this.isShowEditForm = false;\n        this.getDetails();\n      } else {\n        MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n      }\n    } catch (error) {\n      //\n    } finally {\n      context.submitLoading = false;\n    }\n\n    return false;\n  };\n\n  beforeSubmitAudit = (data: RhBaseDto) => {\n    if (!data.IsPass && !data.AuditMessage) {\n      MsgHelper.ShowWarningMessage('审核不通过，必须填写审核信息！');\n      return;\n    }\n    // 基本信息\n    data.Auditor = this.currentUser.DisplayName;\n    data.AuditorId = this.currentUser.UserName;\n\n    return true;\n  };\n\n  constructor(private operator: RhProductionBusinessService, public businessManageSer: RhBusinessManageService, public storage: RhStorageService, public sharedManageSer: RhSharedManageService) { }\n\n  ngOnInit(): void {\n    this.setUserInfo();\n    this.initEditButtonVisible();\n    this.initVisibleSetting();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  initEditButtonVisible() {\n    this.editButtonDataset[0].visible = this.editVisible.toString();\n    this.editButtonDataset[1].visible = this.isCreated.toString();\n    this.editButtonDataset[2].visible = this.auditVisible.toString();\n    this.editButtonDataset[3].visible = this.completeVisible.toString();\n  }\n\n  initVisibleSetting() {\n    Object.assign(this.visibleSetting, this.businessManageSer.getProductInspectorVisibleSetting());\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    this.selectedSourceDataset = [];\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {\n        TransactorCode: this.currentUser.UserName,\n        TransactorName: this.currentUser.DisplayName,\n        FactoryCode: this.currentUser.FactoryCode\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.editDto = null;\n    this.selectedIndex = 0;\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.selectedIndex = 1;\n  }\n\n  // 未退出页面，刷新数据内容\n  getDetails() {\n    const queryDto: RhSafeAny = { PlanOrderId: this.editDto.PlanOrderId };\n    this.operator.GetProductReturnedMaterialInPlanOrderDatas(queryDto).subscribe((result) => {\n      if (result.Success && result.Attach.length === 1) {\n        this.editDto = result.Attach[0];\n        this.editDto.OpSign = OpMode.OpEdit;\n      }\n    });\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    }\n  }\n\n  sourceOrderDatasetChange(dataset: RhSelectableDto[]) {\n    // this.selectedSourceDataset = [...dataset];\n    if (dataset.length) {\n      const target = dataset[0].FeedDetails;\n      // 投料单明细没有领料单号\n      target.forEach(ele => ele.PickingOrderCode = dataset[0].PickingOrderCode);\n      // 源单号赋值\n      this.editDto.SourceOrderId = target[0].PickingOrderCode;\n      this.editDto.BusinessType = this.BusinessType;\n      this.selectedSourceDataset = target;\n    } else {\n      // 源单号赋值\n      this.editDto.SourceOrderId = null;\n      this.selectedSourceDataset = [];\n    }\n  }\n\n  //#region 操作区域开始\n  /** 提交审核 */\n  submitDataToAudit(data: RhBaseDto) {\n    if (this.isCreated(data)) {\n      const dto: RhSafeAny = { PlanOrderId: data.PlanOrderId };\n      this.dataLoading = true;\n      this.operator.SumbitAuditProductReturnedMaterialInPlanOrder(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('提交审核成功！');\n            if (this.selectedIndex === 0) this.getDatas();\n            this.closeEditTab();\n          } else {\n            MsgHelper.ShowWarningMessage(`提交审核失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行提交审核！');\n    }\n  }\n\n  /** 审核 */\n  auditData(data: RhBaseDto) {\n    if (this.auditVisible(data)) {\n      this.openAuditDataModal(data);\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行审核！');\n    }\n  }\n\n  /** 打开审核弹窗 */\n  openAuditDataModal(data: RhBaseDto) {\n    this.auditDto = { PlanOrderId: data.PlanOrderId };\n    this.isShowAuditDataModal = true;\n  }\n\n  /** 关闭审核弹窗 */\n  closeAuditDataModal() {\n    this.auditDto = {};\n    this.isShowAuditDataModal = false;\n  }\n\n  /** 审核接口返回 */\n  onAuditData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('审核入库计划成功！');\n      this.closeAuditDataModal();\n      this.getDetails();\n    } else {\n      MsgHelper.ShowWarningModal(`审核入库计划失败！${result.Message}`);\n    }\n  }\n\n  /** 打开关闭计划备注弹窗 */\n  openCloseInPlanRemarkModal(data: RhBaseDto) {\n    this.closeDto = { PlanOrderId: data.PlanOrderId, Remark: data.Remark };\n    this.isShowCloseInPlanRemarkModal = true;\n  }\n\n  /** 关闭关闭计划备注弹窗 */\n  closeCloseInPlanRemarkModal() {\n    this.closeDto = {};\n    this.isShowCloseInPlanRemarkModal = false;\n  }\n\n  /** 关闭接口返回 */\n  onCloseData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('关闭入库计划成功！');\n      this.closeCloseInPlanRemarkModal();\n      this.getDatas();\n    } else {\n      MsgHelper.ShowWarningModal(`关闭入库计划失败！${result.Message}`);\n    }\n  }\n\n  /** 删除计划 */\n  removeDatas(datas: RhBaseDto[]) {\n    const some = datas.some((f) => !this.isAsCreated(f));\n    if (some) {\n      MsgHelper.ShowWarningMessage('只能删除制单状态的数据！');\n    } else {\n      this.dataLoading = true;\n      this.operator.RemoveProductReturnedMaterialInPlanOrders(datas).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('删除成功！');\n            this.getDatas();\n          } else {\n            MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    }\n  }\n  //#endregion 操作区域结束\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n\n\n\n}\n\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  >\n                  </rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                [rhVisibleSetting]=\"visibleSetting\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              >\n              </rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>数据{{ editDto?.OpSign === 1 ? '新增' : '编辑' }}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button\n                    *ngIf=\"editVisible(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"isShowEditForm = true\"\n                  >\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button\n                    *ngIf=\"isCreated(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"submitDataToAudit(editDto)\"\n                  >\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                  <button *ngIf=\"auditVisible(editDto)\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else editDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  [rhVisibleSetting]=\"visibleSetting\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template rhTemplate=\"SourceOrderId\" let-formgroup let-setting=\"setting\" let-formData=\"formData\">\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-return-warehousing-source-order-selector\n                          [formControl]=\"formgroup.get('SourceOrderId')\"\n                          [rhFieldData]=\"setting\"\n                          [rhDisplayMode]=\"1\"\n                          [rhData]=\"formData\"\n                          [rhDefaultQueryDto]=\"curFactoryQueryDto\"\n                          (rhModelChange)=\"sourceOrderDatasetChange($event)\"\n                        >\n                        </rh-return-warehousing-source-order-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n\n                  <ng-template\n                    rhTemplate=\"InWarehouseCode\"\n                    let-formGroup\n                    let-setting=\"setting\"\n                    let-hostConfig=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.placeholder }}</nz-form-label>\n                      <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                        <rh-business-warehouse-selector\n                          name=\"InWarehouseCode\"\n                          [formControl]=\"formGroup.get('InWarehouseCode')\"\n                          rhFormType=\"edit\"\n                          [rhFieldData]=\"businessManageSer.setWarehouseFieldSetting(setting, 'In')\"\n                          [rhSize]=\"hostConfig?.rhSize\"\n                          [rhData]=\"formData\"\n                          [rhDefaultQueryDto]=\"{ BusinessTypeCode: BusinessType }\"\n                        >\n                        </rh-business-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-product-returned-material-in-plan-details\n                [rhPlanOrder]=\"editDto\"\n                [rhSourceDataset]=\"selectedSourceDataset\"\n                (rhDetailsUpdate)=\"getDetails()\"\n              >\n              </rh-product-returned-material-in-plan-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <button\n                  *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\"\n                  nz-button\n                  nzType=\"primary\"\n                  nzSize=\"small\"\n                  type=\"button\"\n                  (click)=\"auditData(editDto)\"\n                >\n                  <i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n                </button>\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"editDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-product-returned-material-in-plan-details [rhPlanOrder]=\"editDto\" [rhShowDetail]=\"true\">\n              </rh-product-returned-material-in-plan-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #editDescription>\n  <rh-dynamic-description\n    *ngIf=\"isRefreshDesc\"\n    rhName=\"editDescription\"\n    [rhValue]=\"editDto\"\n    [rhVisibleSetting]=\"visibleSetting\"\n  ></rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'入库计划审核'\"\n  [nzVisible]=\"isShowAuditDataModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeAuditDataModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #auditDataForm\n    rhName=\"auditDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"auditDto\"\n    [rhBeforeSubmit]=\"beforeSubmitAudit\"\n    (rhInterfaceDataChange)=\"onAuditData($event)\"\n    (rhClose)=\"closeAuditDataModal()\"\n  >\n    <ng-template rhTemplate=\"IsPass\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-radio-group [formControl]=\"formgroup.get('IsPass')\" (ngModelChange)=\"businessManageSer.isPassChange($event, formgroup)\">\n            <label nz-radio [nzValue]=\"true\">是</label>\n            <label nz-radio [nzValue]=\"false\">否</label>\n          </nz-radio-group>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"AuditMessage\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"!formgroup.get('IsPass').value\"> {{ setting.displayName }}</nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <textarea\n            nz-input\n            [formControl]=\"formgroup.get('AuditMessage')\"\n            [placeholder]=\"setting.placeholder\"\n            [nzAutosize]=\"{ minRows: 2 }\"\n          ></textarea>\n          <div *ngIf=\"editDto?.AuditMessage\">\n            <span style=\"color: #faad14\">上一次审核信息：{{ editDto?.AuditMessage }}</span>\n          </div>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>\n\n<nz-modal\n  [nzTitle]=\"'关闭入库计划备注'\"\n  [nzVisible]=\"isShowCloseInPlanRemarkModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeCloseInPlanRemarkModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #closeDataForm\n    rhName=\"closeDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"closeDto\"\n    (rhInterfaceDataChange)=\"onCloseData($event)\"\n    (rhClose)=\"closeCloseInPlanRemarkModal()\"\n  ></rh-dynamic-form>\n</nz-modal>\n","import { ProductPickingMaterialOutPlanOrderDetails } from './../../production-business-model';\nimport { RhBusinessManageService } from './../../../business-manage.service';\nimport { RhProductionBusinessService } from './../../production-business.service';\nimport { Component, OnInit, Input, EventEmitter, Output, SimpleChanges } from '@angular/core';\nimport { RhBaseDto, RhSelectableDto, DataResultT, RhTableButtonInfoDto, OpMode, RhSafeAny } from 'rh-base/model';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport { Observable } from 'rxjs';\nimport { ExtProductionFeedOrderDetailTableFieldDataset } from '../../detail-source-table-config';\n\n@Component({\n  selector: 'rh-product-picking-material-out-plan-details',\n  templateUrl: './product-picking-material-out-plan-details.component.html',\n  styleUrls: ['./product-picking-material-out-plan-details.component.less']\n})\nexport class ProductPickingMaterialOutPlanDetailsComponent implements OnInit {\n  @Input() rhPlanOrder: RhBaseDto;\n  @Input() rhSourceDataset: RhSelectableDto[] = [];\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter();\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto(\n      'deleteDetails',\n      '删除',\n      'primary',true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhSelectableDto[]),\n      false,\n      true\n    ),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset = [new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)];\n  tableVisibleSetting = {};\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  // sourceDefaultQueryDto = {};\n  isEnterEditStatus = false;\n  // 源单明细数据\n  sourceDetailTableFieldDataset = ExtProductionFeedOrderDetailTableFieldDataset;\n  sourceDetailDataResult: DataResultT<RhSelectableDto[]>;\n  sourceDetailDataLoading = false;\n  extraButtonDatasetSourceDetail = [\n    new RhTableButtonInfoDto('refreshSourceDetail', '刷新', 'default', false, 'sync', false, null, () => this.getSourceDetailDatas(), true)\n  ];\n\n  editDisabled = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return !list.includes(data.OrderStatus);\n  };\n\n  get isReadOnlyTable() {\n    return this.rhShowDetail || !this.rhPlanOrder?.PlanOrderId || this.isEnterEditStatus || this.editDisabled(this.rhPlanOrder);\n  }\n\n  get readeOnlyButtonDataset() {\n    if (!this.rhPlanOrder?.PlanOrderId) return [];\n    else if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(private operator: RhProductionBusinessService, public businessManageSer: RhBusinessManageService) {}\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhPlanOrder, rhSourceDataset } = changes;\n    if (rhPlanOrder && rhPlanOrder.currentValue) {\n      this.initOutPlanOrderDetailDataset();\n    }\n    /** 选中源单带来数据源 */\n    if (rhSourceDataset && rhSourceDataset.currentValue && rhSourceDataset.currentValue.length) {\n      if (!this.rhPlanOrder.PlanOrderId) this.handleSourceDataset(this.rhSourceDataset, true);\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getDynamicVisibleSetting(['LotNum']));\n  }\n\n  /** 初始化明细数据 */\n  initOutPlanOrderDetailDataset() {\n    if (this.rhPlanOrder.PlanOrderId) {\n      if (this.rhSourceDataset.length) {\n        const dataset = this.dataresult.Attach;\n        dataset.forEach((data) => {\n          data.PlanOrderId = this.rhPlanOrder.PlanOrderId;\n          data.BusinessType = this.rhPlanOrder.BusinessType;\n          data.OutWarehouseCode = this.rhPlanOrder.OutWarehouseCode;\n          data.OutWarehouseName = this.rhPlanOrder.OutWarehouseName;\n        });\n        this.storeDatas(dataset).subscribe(() => {\n          this.rhSourceDataset = [];\n          this.getDatas();\n        });\n      } else {\n        this.getDatas();\n      }\n    }\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      PlanOrderId: this.rhPlanOrder.PlanOrderId,\n      SourceOrderId: this.rhPlanOrder.SourceOrderId,\n      FactoryCode: this.rhPlanOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetProductPickingMaterialOutPlanOrderDetailsDatasBy(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`);\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (this.editDisabled(this.rhPlanOrder)) {\n      MsgHelper.ShowWarningMessage('当前单据状态无法编辑出库计划明细！');\n      return;\n    }\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    const checkRes = this.checkStoreDatas(details);\n    if (!checkRes) {\n      return;\n    }\n    // 源单号赋值\n    details.forEach((ele) => (ele.SourceOrderId = this.rhPlanOrder.SourceOrderId));\n    return new Observable((observer) => {\n      const dto = {\n        OrderMaster: this.rhPlanOrder,\n        OrderDetails: details\n      };\n      const msg = editType === 'add' ? '新增' : '编辑';\n      this.dataLoading = true;\n      this.operator.StoreProductPickingMaterialOutPlanOrderDetails(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`);\n          } else {\n            MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n          observer.next();\n          observer.complete();\n        },\n        () => {\n          this.dataLoading = false;\n          observer.error();\n        }\n      );\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[]) {\n    this.extraButtonHandleDataset[1].loading = true;\n    this.operator.RemoveProductPickingMaterialOutPlanOrderDetails(details).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n          this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n        }\n        this.extraButtonHandleDataset[1].loading = false;\n      },\n      () => (this.extraButtonHandleDataset[1].loading = false)\n    );\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  async handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    // 获取源单统计信息\n    const convertResult = await this.businessManageSer.convertSourceOrderStatisticsDatasToSelectedDatas(\n      this.rhPlanOrder.SourceOrderId,\n      this.rhPlanOrder.BusinessType,\n      details\n    );\n    const datas = details.map((data) => {\n      const temp = ProductPickingMaterialOutPlanOrderDetails.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 源单赋值\n      if (!convertResult) {\n        temp.SourceOrderId = this.rhPlanOrder.SourceOrderId;\n        // temp.SourceOrderRowNum = data.ProductionPickingOrderRowNum;\n        temp.SourceOrderQty = data.NeededPickQty;\n        temp.SourceCompletedQty = data.PickedQty;\n      }\n      // 单头赋值\n      temp.PlanOrderId = this.rhPlanOrder.PlanOrderId;\n      temp.BusinessType = this.rhPlanOrder.BusinessType;\n      if (data.WarehouseCode) {\n        temp.OutWarehouseCode = data.WarehouseCode;\n        temp.OutWarehouseName = data.WarehouseName;\n      } else {\n        temp.OutWarehouseCode = this.rhPlanOrder.OutWarehouseCode;\n        temp.OutWarehouseName = this.rhPlanOrder.OutWarehouseName;\n      }\n      temp.FactoryCode = this.rhPlanOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n      }\n      this.dataresult = { Attach: (this.dataresult.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  /** 检查保存数据 */\n  checkStoreDatas(details: RhSelectableDto[]) {\n    // 必须填写计划数量\n    if (details.some((f) => !f.PlanQty)) {\n      MsgHelper.ShowWarningMessage('计划数量不能为0或空！');\n      return false;\n    }\n    // 计划数量不能大于源单数量-源单已计划数量-源单已完成数量\n    if (details.some((f) => (f.PlanQty + f.SourcePlannedQty + f.SourceCompletedQty) > f.SourceOrderQty)) {\n      MsgHelper.ShowWarningMessage('计划数量+源单已计划数量+源单已完成数量不能大于源单数量！');\n      return false;\n    }\n    return true;\n  }\n\n  openDataModal() {\n    // this.sourceDefaultQueryDto = {\n    //   ProductionPickingOrderCode: this.rhPlanOrder.SourceOrderId ? `$${this.rhPlanOrder.SourceOrderId}` : null,\n    //   FactoryCode: this.rhPlanOrder.FactoryCode\n    // };\n    this.getSourceDetailDatas();\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n\n  getSourceDetailDatas() {\n    const queryDto = {\n      PickingOrderCode: this.rhPlanOrder.SourceOrderId ? `$${this.rhPlanOrder.SourceOrderId}` : null,\n      FactoryCode: this.rhPlanOrder.FactoryCode\n    };\n    this.sourceDetailDataLoading = true;\n    this.operator.GetExtProductionFeedOrders(queryDto).subscribe(\n      (result) => {\n        this.sourceDetailDataResult = null;\n        if (result.Success) {\n          const dataset = result?.Attach || [];\n          if (dataset.length) {\n            const target = dataset[0].FeedDetails || [];\n            // 投料单明细没有领料单号\n            target.forEach((ele) => (ele.PickingOrderCode = queryDto.PickingOrderCode));\n            this.sourceDetailDataResult = { Attach: target, TotalCount: target.length } as RhSafeAny;\n          }\n        } else {\n          MsgHelper.ShowWarningMessage(`查询无投料单明细数据！${result.Message}`);\n        }\n        this.sourceDetailDataLoading = false;\n      },\n      () => {\n        this.sourceDetailDataLoading = false;\n      }\n    );\n  }\n}\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n    <rh-dynamic-table\n      rhName=\"handleDetailsReadOnlyTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    >\n      <ng-template rhTemplate=\"LotNum\" let-item let-data=\"data\">\n        <ng-container *ngIf=\"data.select; else lotNumTpl\">\n          <input nz-input nzSize=\"small\" [(ngModel)]=\"data.LotNum\" [placeholder]=\"item?.displayName\" />\n          <!-- <rh-material-inventory-lotnum-selector [(ngModel)]=\"data.LotNum\"\n                        [rhFieldData]=\"{placeholder: item?.displayName}\"></rh-material-inventory-lotnum-selector> -->\n        </ng-container>\n        <ng-template #lotNumTpl>{{ data.LotNum }}</ng-template>\n      </ng-template>\n    </rh-dynamic-table>\n  </ng-container>\n  <ng-template #handleTpl>\n    <rh-dynamic-table\n      rhName=\"handleDetailsTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    >\n    </rh-dynamic-table>\n  </ng-template>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"'选择生产领料出库源单'\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <!-- <rh-return-warehousing-source-order-table (rhModelChange)=\"onSelectModal($event)\"\n                [rhDefaultQueryDto]=\"sourceDefaultQueryDto\" [rhSingleMode]=\"false\">\n            </rh-return-warehousing-source-order-table> -->\n      <rh-dynamic-table\n        rhName=\"sourceOrderDetailTable\"\n        [rhTableData]=\"sourceDetailDataResult\"\n        [rhTableDataloading]=\"sourceDetailDataLoading\"\n        [rhDefaultFieldDataset]=\"sourceDetailTableFieldDataset\"\n        [rhSingleMode]=\"false\"\n        (rhSelectedDatasChange)=\"onSelectModal($event)\"\n      ></rh-dynamic-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport {\n  RhDynamicInterfaceDto,\n  RhSelectableDto,\n  DataResultT,\n  RhTableQueryOptionDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhSafeAny\n} from 'rh-base/model';\nimport { MsgHelper } from 'rh-base/core';\nimport { DynamicFormComponent, CustomizeBaseTableComponent } from 'rh-base/shared';\nimport { ExtProductionFeedOrderTableFieldDataset } from './../../../detail-source-table-config';\n\n@Component({\n  selector: 'rh-production-picking-source-order-table',\n  templateUrl: './production-picking-source-order-table.component.html',\n  styleUrls: ['./production-picking-source-order-table.component.less']\n})\nexport class ProductionPickingSourceOrderTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n  @Input() rhSingleMode = false;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() rhDisabled: boolean;\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto>();\n\n  rhName = 'ProductionPickingSourceOrderSelector';\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n  defaultInterfaceInfo: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'ProductPlanBusinessApi',\n    interfaceName: 'GetExtProductionFeedOrders'\n  };\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [\n    // { name: 'ProductionPlanCode', displayName: '生产工单号', placeholder: '生产工单号', editable: true, required: true },\n    { name: 'PickingOrderCode', displayName: '领料单号', placeholder: '领料单号', editable: true, required: true },\n    {\n      name: 'FactoryCode',\n      displayName: '工厂',\n      placeholder: '工厂',\n      editable: true,\n      required: true,\n      type: 'array',\n      config: { port: '52880', controllerName: 'FactoryLayoutWebApi', interfaceName: 'GetFactoryInfoSelectItems' }\n    }\n  ];\n  /** 设置默认的table显示字段 */\n  // defaultTableFieldDataset = [\n  //   { name: 'ProductionPlanCode', displayName: '生产工单号', width: 150 },\n  //   { name: 'PlanOrderQty', displayName: '生产订单数量', width: 120 },\n  //   { name: 'ProductionPickingOrderCode', displayName: '生产领料单号', width: 150 },\n  //   { name: 'ProductionPickingOrderRowNum', displayName: '生产领料单行号', width: 150 },\n  //   { name: 'PickingQty', displayName: '领料数量', width: 120 },\n  //   { name: 'AvailablePickingQty', displayName: '可领数量', width: 120 },\n  //   { name: 'HadPickedQty', displayName: '已领数量', width: 120 },\n  //   { name: 'WarehouseStorageQty', displayName: '仓库库存数量', width: 120 },\n  //   { name: 'OrganizationStructureCode', displayName: '部门编码', width: 120 },\n  //   { name: 'OrganizationStructureName', displayName: '部门名称', width: 120 },\n  //   { name: 'ProductCode', displayName: '产品代码', width: 120 },\n  //   { name: 'ProductName', displayName: '产品名称', width: 120 },\n  //   { name: 'ProductSpecification', displayName: '产品规格', width: 200, rhEllipsis: true },\n  //   { name: 'WarehouseCode', displayName: '仓库代码', width: 120 },\n  //   { name: 'WarehouseName', displayName: '仓库名称', width: 120 },\n  //   { name: 'MaterialCode', displayName: '物料代码', width: 120 },\n  //   { name: 'MaterialName', displayName: '物料名称', width: 120 },\n  //   { name: 'MaterialSpecification', displayName: '物料规格', width: 200, rhEllipsis: true }\n  // ];\n  defaultTableFieldDataset = ExtProductionFeedOrderTableFieldDataset;\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  constructor() {\n    //\n    super();\n  }\n\n  ngOnInit(): void {\n    this.rhInterfaceInfo = this.rhInterfaceInfo || this.defaultInterfaceInfo;\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  setDatas(result: DataResultT<RhSelectableDto[]>) {\n    if (result && result.Success) {\n      // 没有领料单号就用生产工单号\n      (result?.Attach || []).forEach((ele) => {\n        if (!ele.PickingOrderCode) {\n          ele.PickingOrderCode = ele.ProductionPlanCode;\n        }\n      });\n      this.dataresult = result;\n      this.rhDatasetChange.next(result.Attach);\n    } else {\n      this.dataresult = { Success: false, Attach: [] } as RhSafeAny;\n      this.rhDatasetChange.next(null);\n      MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n    }\n  }\n}\n","<!-- 搜索Form区域 -->\n<div class=\"search-area rh-full\">\n  <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n    <ng-template #searchTpl>\n      <rh-dynamic-form\n        #queryForm\n        rhName=\"{{ rhName }}Form\"\n        [rhValue]=\"rhDefaultQueryDto\"\n        (rhInterfaceDataChange)=\"setDatas($event)\"\n        (rhDataloadingChange)=\"dataLoadingChange($event)\"\n        (rhOutParaChange)=\"setInitFieldDataset($event)\"\n        [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n        [(rhFormInterface)]=\"rhInterfaceInfo\"\n      >\n      </rh-dynamic-form>\n    </ng-template>\n  </nz-alert>\n</div>\n<!-- 搜索结果Table展示区域 -->\n<div class=\"table-area\">\n  <rh-dynamic-table\n    rhName=\"{{ rhName }}Table\"\n    [rhTableData]=\"dataresult\"\n    [rhTableDataloading]=\"dataLoading\"\n    [rhDefaultFieldDataset]=\"defaultTableFieldDataset\"\n    (rhRefresh)=\"refreshDatas($event)\"\n    (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\"\n    [rhSingleMode]=\"rhSingleMode\"\n  ></rh-dynamic-table>\n</div>\n","import { Component, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, SimpleChanges } from '@angular/core';\nimport { provideValueAccessor, RhRouteHelper, MsgHelper } from 'rh-base/core';\nimport { CustomizeBaseControlComponent, RhBaseDynamicService } from 'rh-base/shared';\nimport { NzSizeLDSType } from 'ng-zorro-antd/core/types';\nimport {\n  RhSelectableDto,\n  RhDynamicFormFieldDto,\n  RhSafeAny,\n  DataResultT,\n  RhDynamicInterfaceDto,\n  RhDynamicCustomizeControlConfigDto,\n  RhRelatedFieldDataDto,\n  RhCustomizeEventSettingDto,\n  RhDisplayMode\n} from 'rh-base/model';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { ProductionPickingSourceOrderTableComponent } from './production-picking-source-order-table/production-picking-source-order-table.component';\n\n@Component({\n  selector: 'rh-production-picking-source-order-selector',\n  templateUrl: './production-picking-source-order-selector.component.html',\n  styleUrls: ['./production-picking-source-order-selector.component.less'],\n  providers: [provideValueAccessor(ProductionPickingSourceOrderSelectorComponent)]\n})\nexport class ProductionPickingSourceOrderSelectorComponent extends CustomizeBaseControlComponent {\n  rhRelatedFieldData = null;\n  @ViewChild(ProductionPickingSourceOrderTableComponent) tableComp: ProductionPickingSourceOrderTableComponent;\n  @Input() rhDynamicKey = 'ProductionPickingSourceOrder';\n  @Input() rhTitle = '选择生产领料源单';\n  @Input() declare rhSize: NzSizeLDSType;\n  @Input() declare rhDisplayMode: RhDisplayMode;\n  @Input() rhDefaultQueryDto = {};\n\n  iconSetting = 'search';\n  @Input() rhSingleMode = false;\n\n  formKeyFieldName = 'SourceOrderId';\n  formTextFieldName = 'SourceOrderId';\n\n  modelKeyFieldName = 'PickingOrderCode';\n  modelTextFieldName = 'PickingOrderCode';\n\n  // // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  /** 对应table选中的数据 */\n  rhModel: RhSelectableDto = {};\n\n  /** 动态form字段配置数据 */\n  @Input() rhFieldData: RhDynamicFormFieldDto;\n  /** 整个form的数据 */\n  @Input() declare rhData: RhSafeAny;\n\n  /** 表格Loading */\n  // dataLoading = false;\n  // dataresult: DataResultT<RhSelectableDto[]>;\n\n  /** selector input上展示的数据，一般为中文 */\n  //displayName: string;\n\n  declare selectedData: RhSelectableDto[];\n\n  /** 自定义组件的自定义执行函数 */\n  cb: (data: RhSafeAny, ctx: RhSafeAny) => void;\n\n  /** 该组件关联的form名称 */\n  formName: string;\n\n  url: string;\n\n  /** 设置默认搜索接口 */\n  defaultFormInterface: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'ProductPlanBusinessApi',\n    interfaceName: 'GetExtProductionFeedOrders'\n  };\n\n  mappedList = [\n    { sourceName: this.modelKeyFieldName, mappedName: this.formKeyFieldName },\n    { sourceName: this.modelTextFieldName, mappedName: this.formTextFieldName },\n    // { sourceName: 'ProductionPickingOrderRowNum', mappedName: 'SourceOrderRowNum' },\n    // { sourceName: 'ProductionPickingOrderCode', mappedName: 'PickingOrderCode' },\n    { sourceName: 'OrganizationStructureCode', mappedName: 'OrganizationStructureCode' },\n    { sourceName: 'OrganizationStructureDisplayName', mappedName: 'OrganizationStructureDisplayName' },\n    { sourceName: 'OrganizationStructureExternalCode', mappedName: 'OrganizationStructureExternalCode' },\n    { sourceName: 'OrganizationStructureName', mappedName: 'OrganizationStructureName' }\n    // { sourceName: 'WarehouseCode', mappedName: 'OutWarehouseCode' },\n    // { sourceName: 'WarehouseName', mappedName: 'OutWarehouseName' }\n  ];\n\n  constructor(\n    public fb: UntypedFormBuilder,\n    public cdr: ChangeDetectorRef,\n    public router: Router,\n    public dynamicSer: RhBaseDynamicService\n  ) {\n    super(cdr, dynamicSer);\n    this.url = RhRouteHelper.getRealRoute(this.router.url);\n  }\n\n  ngOnInit(): void {\n    this.rhPlaceholder = this.rhFieldData.placeholder as any;\n    this.formName = this.rhFieldData.relatedComponentName;\n    this.setCbValue();\n  }\n\n  // 自定义表单项配置\n  ngOnChanges(changes: SimpleChanges) {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue && rhData.currentValue[this.formKeyFieldName] === null) {\n      this.resetControlValue();\n    } else {\n      this.rhModel = {};\n    }\n  }\n\n  // dataLoadingChange(status: boolean) {\n  //   this.dataLoading = status;\n  // }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    // if (data?.length === 1 && this.rhSingleMode) {\n    //   this.selectedData = data[0];\n    // } else {\n    //   this.selectedData = data;\n    // }\n    this.selectedData = data || null;\n  }\n\n  // setDatas(result: DataResultT<RhSelectableDto[]>) {\n  //   if (result && result.Success) {\n  //     this.dataresult = result;\n  //   } else {\n  //     MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n  //   }\n  // }\n\n  /** 根据填入的code值，获取对应的完整数据，回填到输入框 */\n  getTargetDatas(code: string) {\n    // 接口搜索需接入第三方\n    // if (!this.defaultFormInterface) {\n    //   return;\n    // }\n    // const queryDto = {};\n    // queryDto[this.modelKeyFieldName] = `$${code}`;\n    // this.getTargetDatasVisHttpHandler(this.defaultFormInterface, queryDto, this.rhFieldData);\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n  }\n\n  //#region customize selector interface区域\n  confirmSelect() {\n    this.rhModel = this.selectedData[0];\n    this.rhModelChange.emit(this.selectedData);\n    // if (this.rhSingleMode) {\n    //   this.value = this.rhModel[this.modelKeyFieldName];\n    //   this.displayName = this.rhModel[this.modelTextFieldName];\n    //   this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // } else {\n    //   this.value = (this.rhModel as RhSafeAny[]).map((ele) => ele[this.modelKeyFieldName]) as RhSafeAny;\n    //   // 多选的时候只会显示多个代码\n    //   this.displayName = (this.value as RhSafeAny).toString();\n    // }\n    this.value = this.rhModel[this.modelKeyFieldName];\n    this.displayName = this.rhModel[this.modelTextFieldName];\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // 执行对应控件定义的代码\n    if (this.rhData && this.rhModel && this.cb) {\n      this.cb(this.rhData, this.rhModel);\n    }\n    this.setFormDataViaRelatedDatas();\n    // 执行form的相关字段赋值操作\n    this.triggerRelatedForm();\n    this.closeDataModal();\n  }\n\n  resetControlValue() {\n    this.displayName = null;\n    // 重置form对应数据对象\n    this.rhData[this.formKeyFieldName] = null;\n    this.rhData[this.formTextFieldName] = null;\n    //\n    this.mappedList.forEach((ele) => (this.rhData[ele.mappedName] = null));\n    this.rhModel = null;\n  }\n\n  setCbValue() {\n    const cbString = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.cb;\n    if (cbString) {\n      const fn = Function(`return ${cbString}`);\n      if (fn) {\n        this.cb = fn();\n      } else {\n        this.cb = this.setFormData;\n      }\n    } else {\n      // 当没有配置回调函数时，执行默认的回调函数\n      this.cb = this.setFormData;\n    }\n  }\n\n  /** 设置form对应的数据对象的值\n   * @param data form对应的数据对象\n   * @params 设置或者对应table选择的数据\n   */\n  setFormData(data: RhSafeAny, ctx: RhSelectableDto) {\n    data[this.formKeyFieldName] = ctx[this.modelKeyFieldName];\n    data[this.formTextFieldName] = ctx[this.modelTextFieldName];\n  }\n\n  setFormDataViaRelatedDatas() {\n    let relatedDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedModelDatas;\n    if (!relatedDatas?.length) {\n      relatedDatas = this.mappedList;\n    }\n    if (relatedDatas?.length) {\n      relatedDatas.forEach((ele) => {\n        this.rhData[ele.mappedName] = this.rhModel[ele.sourceName];\n      });\n    }\n  }\n\n  triggerRelatedForm() {\n    const tempDatas = (this.rhFieldData.config as RhDynamicCustomizeControlConfigDto)?.relatedFieldDatas;\n    const relatedDatas: RhRelatedFieldDataDto[] = tempDatas && tempDatas.length ? tempDatas : this.mappedList;\n    const data: RhCustomizeEventSettingDto = {\n      id: `${this.url}_${this.formName}`,\n      eventType: null,\n      options: null,\n      value: this.rhModel,\n      relatedFieldDatas: relatedDatas\n    };\n    this.dynamicSer.formCustomizeEventTrigger(data);\n  }\n  //#endregion customize selector interface区域结束\n}\n","<nz-input-group [nzSize]=\"rhSize\" [nzSuffix]=\"suffixIconSearch\" [nzAddOnAfter]=\"addOnAfter\">\n  <input type=\"text\" nz-input [ngModel]=\"displayName\" [placeholder]=\"rhPlaceholder\" readonly=\"readonly\" />\n</nz-input-group>\n<ng-template #suffixIconSearch>\n  <a *ngIf=\"displayName && !rhDisabled\" class=\"link-suffix\" (click)=\"clearInputInfo()\">\n    <i nz-icon nzType=\"close-circle\"></i>\n  </a>\n</ng-template>\n\n<ng-template #addOnAfter>\n  <button nz-button nzType=\"link\" type=\"button\" nzSize=\"small\">\n    <a (click)=\"openDataModal($event)\">\n      <i nz-icon [nzType]=\"iconSetting\"></i>\n    </a>\n  </button>\n</ng-template>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"rhTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedData\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-production-picking-source-order-table\n        [rhModel]=\"rhModel\"\n        (rhModelChange)=\"onSelectModal($event)\"\n        [rhInterfaceInfo]=\"defaultFormInterface\"\n        [rhSingleMode]=\"rhSingleMode\"\n        [rhDefaultQueryDto]=\"rhDefaultQueryDto\"\n      >\n      </rh-production-picking-source-order-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { BusinessType } from './../../business-type';\nimport { RhSharedManageService } from './../../../shared-manage/shared-manage.service';\nimport { RhBusinessManageService } from './../../business-manage.service';\nimport { RhProductionBusinessService } from './../production-business.service';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { RhBaseDto, DataResultT, RhSelectableDto, RhLoginedUserDto, RhTableButtonInfoDto, OpResult, OpMode, RhSafeAny, CodeClassModel, RhDynamicTableFieldDto, RhTableQueryOptionDto } from 'rh-base/model';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\n\ntype TabType = 'edit' | 'detail' | 'audit';\n\n@Component({\n  selector: 'rh-product-picking-material-out-plan',\n  templateUrl: './product-picking-material-out-plan.component.html',\n  styleUrls: ['./product-picking-material-out-plan.component.less']\n})\nexport class RhProductPickingMaterialOutPlanComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  BusinessType = BusinessType.ProductPickedMaterialOut;\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  closeDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n  /** 选中的计划源单的数据 */\n  selectedSourceDataset: RhSelectableDto[] = [];\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  // completeVisible = (data: RhBaseDto) => {\n  //   return data.OrderStatus === 'WaitOutWarehouse';\n  // };\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  isAsCreated = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto)),\n    new RhTableButtonInfoDto('submit', '提交审核', 'default', false, 'form', false, null, (data) => this.submitDataToAudit(data as RhBaseDto)),\n    new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) =>\n      this.openDetailTab({ data } as RhBaseDto, 'audit')\n    ),\n    // new RhTableButtonInfoDto(\n    //   'complete',\n    //   '完成',\n    //   'default',\n    //   false,\n    //   'check',\n    //   false,\n    //   null,\n    //   (data) => this.completeOutPlanOrder(data as RhBaseDto)\n    // )\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '新建', 'primary', false, 'file', false, null, () => this.openEditTab(), true),\n    new RhTableButtonInfoDto(\n      'delete',\n      '删除',\n      'primary',true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhBaseDto[]),\n      false,\n      false,\n      'red'\n    )\n  ];\n\n  beforeSubmit = async (data: RhBaseDto, context: DynamicFormComponent) => {\n    let result: OpResult = null;\n    const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n    context.submitLoading = true;\n    try {\n      if (this.editDto.OpSign === OpMode.OpAdd) {\n        // 基本信息\n        data.BusinessType = this.BusinessType;\n        data.Creator = this.currentUser.DisplayName;\n        data.CreatorId = this.currentUser.UserName;\n\n        result = await this.operator.CreateProductPickingMaterialOutPlanMasterOrder(data).toPromise();\n      } else {\n        result = await this.operator.UpdateProductPickingMaterialOutPlanMasterOrder(data).toPromise();\n      }\n      if (result && result.Success) {\n        MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n        this.editDto.PlanOrderId = result?.Attach?.PlanOrderId;\n        this.isShowEditForm = false;\n        this.getDetails();\n      } else {\n        MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n      }\n    } catch (error) {\n      //\n    } finally {\n      context.submitLoading = false;\n    }\n\n    return false;\n  };\n\n  beforeSubmitAudit = (data: RhBaseDto) => {\n    if (!data.IsPass && !data.AuditMessage) {\n      MsgHelper.ShowWarningMessage('审核不通过，必须填写审核信息！');\n      return;\n    }\n    // 基本信息\n    data.OrganizationStructureCode = this.editDto.OrganizationStructureCode;\n    data.OrganizationStructureName = this.editDto.OrganizationStructureName;\n    data.OrganizationStructureExternalCode = this.editDto.OrganizationStructureExternalCode;\n    data.OrganizationStructureDisplayName = this.editDto.OrganizationStructureDisplayName;\n    data.Auditor = this.currentUser.DisplayName;\n    data.AuditorId = this.currentUser.UserName;\n\n    return true;\n  };\n\n  constructor(private operator: RhProductionBusinessService, public businessManageSer: RhBusinessManageService, public storage: RhStorageService, public sharedManageSer: RhSharedManageService) { }\n\n  ngOnInit(): void {\n    this.setUserInfo();\n    this.initEditButtonVisible();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  initEditButtonVisible() {\n    this.editButtonDataset[0].visible = this.editVisible.toString();\n    this.editButtonDataset[1].visible = this.isCreated.toString();\n    this.editButtonDataset[2].visible = this.auditVisible.toString();\n    // this.editButtonDataset[3].visible = this.completeVisible.toString();\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    this.selectedSourceDataset = [];\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {\n        TransactorCode: this.currentUser.UserName,\n        TransactorName: this.currentUser.DisplayName,\n        FactoryCode: this.currentUser.FactoryCode\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.editDto = null;\n    this.selectedIndex = 0;\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.selectedIndex = 1;\n  }\n\n  // 未退出页面，刷新数据内容\n  getDetails() {\n    const queryDto = { PlanOrderId: this.editDto.PlanOrderId };\n    this.operator.GetProductPickingMaterialOutPlanOrderDatas(queryDto).subscribe((result) => {\n      if (result.Success && result.Attach.length === 1) {\n        this.editDto = result.Attach[0];\n        this.editDto.OpSign = OpMode.OpEdit;\n      }\n    });\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    }\n  }\n\n  sourceOrderDatasetChange(dataset: RhSelectableDto[]) {\n    // this.selectedSourceDataset = [...dataset];\n    if (dataset.length) {\n      const target = dataset[0].FeedDetails;\n      // 投料单明细没有领料单号\n      target.forEach(ele => ele.PickingOrderCode = dataset[0].PickingOrderCode);\n      // 源单号赋值\n      this.editDto.SourceOrderId = target[0].PickingOrderCode;\n      this.editDto.BusinessType = this.BusinessType;\n      this.selectedSourceDataset = target;\n    } else {\n      // 源单号赋值\n      this.editDto.SourceOrderId = null;\n      this.selectedSourceDataset = [];\n    }\n  }\n\n  //#region 操作区域开始\n  /** 提交审核 */\n  submitDataToAudit(data: RhBaseDto) {\n    if (this.isCreated(data)) {\n      const dto = { PlanOrderId: data.PlanOrderId };\n      this.dataLoading = true;\n      this.operator.SumbitAuditProductPickingMaterialOutPlanOrder(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('提交审核成功！');\n            if (this.selectedIndex === 0) this.getDatas();\n            this.closeEditTab();\n          } else {\n            MsgHelper.ShowWarningMessage(`提交审核失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行提交审核！');\n    }\n  }\n\n  /** 审核 */\n  auditData(data: RhBaseDto) {\n    if (this.auditVisible(data)) {\n      this.openAuditDataModal(data);\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行审核！');\n    }\n  }\n\n  /** 打开审核弹窗 */\n  openAuditDataModal(data: RhBaseDto) {\n    this.auditDto = { PlanOrderId: data.PlanOrderId };\n    this.isShowAuditDataModal = true;\n  }\n\n  /** 关闭审核弹窗 */\n  closeAuditDataModal() {\n    this.auditDto = {};\n    this.isShowAuditDataModal = false;\n  }\n\n  /** 审核接口返回 */\n  onAuditData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('审核出库计划成功！');\n      this.closeAuditDataModal();\n      this.getDetails();\n    } else {\n      MsgHelper.ShowWarningModal(`审核出库计划失败！${result.Message}`);\n    }\n  }\n\n  /** 完成计划 */\n  // completeOutPlanOrder(data: RhBaseDto) {\n  //   if (this.completeVisible(data)) {\n  //     // TODO\n  //     // const dto = OutPlanOrderMasterDto.create();\n  //     // dto.PlanOrderId = data.PlanOrderId;\n  //     // this.dataLoading = true;\n  //     // this.operator.CompleteOutPlanOrder(dto).subscribe(\n  //     //   (result) => {\n  //     //     if (result.Success) {\n  //     //       MsgHelper.ShowSuccessMessage('完成成功！');\n  //     //       this.getDatas();\n  //     //     } else {\n  //     //       MsgHelper.ShowWarningMessage(`完成失败！${result.Message}`);\n  //     //     }\n  //     //     this.dataLoading = false;\n  //     //   },\n  //     //   () => {\n  //     //     this.dataLoading = false;\n  //     //   }\n  //     // );\n  //   } else {\n  //     MsgHelper.ShowWarningMessage('当前单据状态不能进行完成！');\n  //   }\n  // }\n\n  /** 删除计划 */\n  removeDatas(datas: RhBaseDto[]) {\n    const some = datas.some((f) => !this.isAsCreated(f));\n    if (some) {\n      MsgHelper.ShowWarningMessage('只能删除制单状态的数据！');\n    } else {\n      this.dataLoading = true;\n      this.operator.RemoveProductPickingMaterialOutPlanOrders(datas as RhSafeAny).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('删除成功！');\n            this.getDatas();\n          } else {\n            MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    }\n  }\n  //#endregion 操作区域结束\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  >\n                  </rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              >\n              </rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>数据{{ editDto?.OpSign === 1 ? '新增' : '编辑' }}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button\n                    *ngIf=\"editVisible(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"isShowEditForm = true\"\n                  >\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button\n                    *ngIf=\"isCreated(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"submitDataToAudit(editDto)\"\n                  >\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                  <button *ngIf=\"auditVisible(editDto)\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else detailsDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template rhTemplate=\"SourceOrderId\" let-formgroup let-setting=\"setting\" let-formData=\"formData\">\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-production-picking-source-order-selector\n                          [formControl]=\"formgroup.get('SourceOrderId')\"\n                          [rhFieldData]=\"setting\"\n                          [rhDisplayMode]=\"1\"\n                          [rhData]=\"formData\"\n                          [rhDefaultQueryDto]=\"curFactoryQueryDto\"\n                          (rhModelChange)=\"sourceOrderDatasetChange($event)\"\n                        >\n                        </rh-production-picking-source-order-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n\n                  <ng-template\n                    rhTemplate=\"OutWarehouseCode\"\n                    let-formGroup\n                    let-setting=\"setting\"\n                    let-hostConfig=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.placeholder }}</nz-form-label>\n                      <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                        <rh-business-warehouse-selector\n                          name=\"OutWarehouseCode\"\n                          [formControl]=\"formGroup.get('OutWarehouseCode')\"\n                          rhFormType=\"edit\"\n                          [rhFieldData]=\"businessManageSer.setWarehouseFieldSetting(setting, 'Out')\"\n                          [rhSize]=\"hostConfig?.rhSize\"\n                          [rhData]=\"formData\"\n                          [rhDefaultQueryDto]=\"{ BusinessTypeCode: BusinessType }\"\n                        >\n                        </rh-business-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-product-picking-material-out-plan-details\n                [rhPlanOrder]=\"editDto\"\n                [rhSourceDataset]=\"selectedSourceDataset\"\n                (rhDetailsUpdate)=\"getDetails()\"\n              >\n              </rh-product-picking-material-out-plan-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <button\n                  *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\"\n                  nz-button\n                  nzType=\"primary\"\n                  nzSize=\"small\"\n                  type=\"button\"\n                  (click)=\"auditData(editDto)\"\n                >\n                  <i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n                </button>\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"detailsDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-product-picking-material-out-plan-details [rhPlanOrder]=\"editDto\" [rhShowDetail]=\"true\">\n              </rh-product-picking-material-out-plan-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #detailsDescription>\n  <rh-dynamic-description *ngIf=\"isRefreshDesc\" rhName=\"detailsDescription\" [rhValue]=\"editDto\"> </rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'出库计划审核'\"\n  [nzVisible]=\"isShowAuditDataModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeAuditDataModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #auditDataForm\n    rhName=\"auditDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"auditDto\"\n    [rhBeforeSubmit]=\"beforeSubmitAudit\"\n    (rhInterfaceDataChange)=\"onAuditData($event)\"\n    (rhClose)=\"closeAuditDataModal()\"\n  >\n    <ng-template rhTemplate=\"IsPass\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-radio-group [formControl]=\"formgroup.get('IsPass')\" (ngModelChange)=\"businessManageSer.isPassChange($event, formgroup)\">\n            <label nz-radio [nzValue]=\"true\">是</label>\n            <label nz-radio [nzValue]=\"false\">否</label>\n          </nz-radio-group>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"AuditMessage\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"!formgroup.get('IsPass').value\"> {{ setting.displayName }}</nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <textarea\n            nz-input\n            [formControl]=\"formgroup.get('AuditMessage')\"\n            [placeholder]=\"setting.placeholder\"\n            [nzAutosize]=\"{ minRows: 2 }\"\n          ></textarea>\n          <div *ngIf=\"editDto?.AuditMessage\">\n            <span style=\"color: #faad14\">上一次审核信息：{{ editDto?.AuditMessage }}</span>\n          </div>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { CustomizeBaseTableComponent, DynamicFormComponent } from 'rh-base/shared';\nimport {\n  RhDynamicInterfaceDto,\n  RhSelectableDto,\n  RhBaseDto,\n  RhTableQueryOptionDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto\n} from 'rh-base/model';\n\n@Component({\n  selector: 'rh-return-warehousing-plan-table',\n  templateUrl: './return-warehousing-plan-table.component.html',\n  styleUrls: ['./return-warehousing-plan-table.component.less']\n})\nexport class ReturnWarehousingPlanTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n\n  @Input() rhSingleMode = true;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() rhDisabled: boolean;\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto>();\n\n  rhName = 'ReturnWarehousingPlanSelector';\n\n  defaultQueryDto: RhBaseDto;\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n  defaultInterfaceInfo: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'ProductPlanBusinessApi',\n    interfaceName: 'GetProductReturnedMaterialInPlanOrderDatas'\n  };\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [\n    { name: 'PlanOrderId', displayName: '计划单号', placeholder: '计划单号', editable: true, visible: true },\n    {\n      name: 'OrderStatus',\n      displayName: '单据状态',\n      placeholder: '单据状态',\n      editable: false,\n      defaultValue: 'WaitInWarehouse',\n      visible: false\n    }\n  ];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [\n    { name: 'PlanOrderId', displayName: '计划单号', width: 150 },\n    { name: 'SourceOrderId', displayName: '领料单号', width: 150 },\n    { name: 'InWarehouseCode', displayName: '退料仓库代码', width: 150 },\n    { name: 'InWarehouseName', displayName: '退料仓库名称', width: 150 },\n    { name: 'ProductionScheduler', displayName: '生产调度员', width: 120 },\n    { name: 'OrganizationStructureCode', displayName: '部门编码', width: 150 },\n    { name: 'OrganizationStructureName', displayName: '部门名称', width: 120 },\n    { name: 'OrganizationStructureDisplayName', displayName: '部门描述', width: 120 },\n    { name: 'OrganizationStructureExternalCode', displayName: '外部编码', width: 120 },\n    { name: 'Remark', displayName: '备注', width: 120, rhEllipsis: true }\n  ];\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  constructor() {\n    //\n    super();\n  }\n\n  ngOnInit(): void {\n    // if (this.rhProductCode) {\n    //   this.defaultQueryDto = { ProductCode: this.rhProductCode };\n    // }\n    this.defaultQueryDto = {};\n    this.rhInterfaceInfo = this.rhInterfaceInfo || this.defaultInterfaceInfo;\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n}\n","<!-- 搜索Form区域 -->\n<div class=\"search-area rh-full\">\n  <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n    <ng-template #searchTpl>\n      <rh-dynamic-form\n        #queryForm\n        rhName=\"{{ rhName }}Form\"\n        [rhValue]=\"defaultQueryDto\"\n        (rhInterfaceDataChange)=\"setDatas($event)\"\n        (rhDataloadingChange)=\"dataLoadingChange($event)\"\n        (rhOutParaChange)=\"setInitFieldDataset($event)\"\n        [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n        [(rhFormInterface)]=\"rhInterfaceInfo\"\n      ></rh-dynamic-form>\n    </ng-template>\n  </nz-alert>\n</div>\n<!-- 搜索结果Table展示区域 -->\n<div class=\"table-area\">\n  <rh-dynamic-table\n    rhName=\"{{ rhName }}Table\"\n    [rhTableData]=\"dataresult\"\n    [rhTableDataloading]=\"dataLoading\"\n    [rhDefaultFieldDataset]=\"defaultTableFieldDataset\"\n    (rhRefresh)=\"refreshDatas($event)\"\n    (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\"\n    [rhSingleMode]=\"rhSingleMode\"\n  ></rh-dynamic-table>\n</div>\n","import { Component, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, SimpleChanges } from '@angular/core';\nimport { provideValueAccessor, RhRouteHelper, MsgHelper } from 'rh-base/core';\nimport {\n  RhSelectableDto,\n  DataResultT,\n  RhDynamicInterfaceDto,\n  RhDynamicFormFieldDto,\n  RhSafeAny,\n  RhDynamicCustomizeControlConfigDto,\n  RhRelatedFieldDataDto,\n  RhCustomizeEventSettingDto,\n  RhDisplayMode\n} from 'rh-base/model';\nimport { CustomizeBaseControlComponent, RhBaseDynamicService } from 'rh-base/shared';\nimport { NzSizeLDSType } from 'ng-zorro-antd/core/types';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { ReturnWarehousingPlanTableComponent } from './return-warehousing-plan-table/return-warehousing-plan-table.component';\n\n@Component({\n  selector: 'rh-return-warehousing-plan-selector',\n  templateUrl: './return-warehousing-plan-selector.component.html',\n  styleUrls: ['./return-warehousing-plan-selector.component.less'],\n  providers: [provideValueAccessor(ReturnWarehousingPlanSelectorComponent)]\n})\nexport class ReturnWarehousingPlanSelectorComponent extends CustomizeBaseControlComponent {\n  rhRelatedFieldData = null;\n  @ViewChild(ReturnWarehousingPlanTableComponent) tableComp: ReturnWarehousingPlanTableComponent;\n  @Input() rhDynamicKey = 'ReturnWarehousingPlan';\n  @Input() rhTitle = '选择生产退料计划';\n  @Input() declare rhSize: NzSizeLDSType;\n  @Input() declare rhDisplayMode: RhDisplayMode;\n\n  @Input() rhProductCode: string;\n\n  iconSetting = 'search';\n  @Input() rhSingleMode = true;\n\n  formKeyFieldName = 'PlanOrderId';\n  formTextFieldName = 'PlanOrderId';\n\n  modelKeyFieldName = 'PlanOrderId';\n  modelTextFieldName = 'PlanOrderId';\n\n  // // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto>();\n  /** 对应table选中的数据 */\n  rhModel: RhSelectableDto = {};\n\n  /** 动态form字段配置数据 */\n  @Input() rhFieldData: RhDynamicFormFieldDto;\n  /** 整个form的数据 */\n  @Input() declare rhData: RhSafeAny;\n\n  /** 表格Loading */\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  /** selector input上展示的数据，一般为中文 */\n  //displayName: string;\n\n  //selectedData: RhSelectableDto;\n\n  /** 自定义组件的自定义执行函数 */\n  cb: (data: RhSafeAny, ctx: RhSafeAny) => void;\n\n  /** 该组件关联的form名称 */\n  formName: string;\n\n  url: string;\n\n  /** 设置默认搜索接口 */\n  defaultFormInterface: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'ProductPlanBusinessApi',\n    interfaceName: 'GetProductReturnedMaterialInPlanOrderDatas'\n  };\n\n  mappedList = [\n    { sourceName: this.modelKeyFieldName, mappedName: this.formKeyFieldName },\n    { sourceName: this.modelTextFieldName, mappedName: this.formTextFieldName },\n    { sourceName: 'SourceOrderId', mappedName: 'SourceOrderId' },\n    // { sourceName: 'SourceOrderRowNum', mappedName: 'SourceOrderRowNum' },\n    { sourceName: 'ProductionScheduler', mappedName: 'ProductionScheduler' },\n    { sourceName: 'OrganizationStructureCode', mappedName: 'OrganizationStructureCode' },\n    { sourceName: 'OrganizationStructureDisplayName', mappedName: 'OrganizationStructureDisplayName' },\n    { sourceName: 'OrganizationStructureExternalCode', mappedName: 'OrganizationStructureExternalCode' },\n    { sourceName: 'OrganizationStructureName', mappedName: 'OrganizationStructureName' },\n    { sourceName: 'InWarehouseCode', mappedName: 'InWarehouseCode' },\n    { sourceName: 'InWarehouseName', mappedName: 'InWarehouseName' }\n  ];\n\n  constructor(\n    public fb: UntypedFormBuilder,\n    public cdr: ChangeDetectorRef,\n    public router: Router,\n    public dynamicSer: RhBaseDynamicService\n  ) {\n    super(cdr, dynamicSer);\n    this.url = RhRouteHelper.getRealRoute(this.router.url);\n  }\n\n  ngOnInit(): void {\n    this.rhPlaceholder = this.rhFieldData.placeholder as any;\n    this.formName = this.rhFieldData.relatedComponentName;\n    this.setCbValue();\n  }\n\n  // 自定义表单项配置\n  ngOnChanges(changes: SimpleChanges) {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue && rhData.currentValue[this.formKeyFieldName] === null) {\n      this.resetControlValue();\n    } else {\n      this.rhModel = {};\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    if (data?.length === 1 && this.rhSingleMode) {\n      this.selectedData = data[0];\n    } else {\n      this.selectedData = data;\n    }\n  }\n\n  setDatas(result: DataResultT<RhSelectableDto[]>) {\n    if (result && result.Success) {\n      this.dataresult = result;\n    } else {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n    }\n  }\n\n  /** 根据填入的code值，获取对应的完整数据，回填到输入框 */\n  getTargetDatas(code: string) {\n    // 显示代码 不需要\n    // if (!this.defaultFormInterface) {\n    //   return;\n    // }\n    // const queryDto = {};\n    // queryDto[this.modelKeyFieldName] = `$${code}`;\n    // this.getTargetDatasVisHttpHandler(this.defaultFormInterface, queryDto, this.rhFieldData);\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n  }\n\n  //#region customize selector interface区域\n  confirmSelect() {\n    this.rhModel = this.selectedData;\n    this.rhModelChange.emit(this.rhModel);\n    if (this.rhSingleMode) {\n      this.value = this.rhModel[this.modelKeyFieldName];\n      this.displayName = this.rhModel[this.modelTextFieldName];\n      this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    } else {\n      this.value = (this.rhModel as RhSafeAny[]).map((ele) => ele[this.modelKeyFieldName]) as RhSafeAny;\n      // 多选的时候只会显示多个代码\n      this.displayName = (this.value as RhSafeAny).toString();\n    }\n    // 执行对应控件定义的代码\n    if (this.rhData && this.rhModel && this.cb) {\n      this.cb(this.rhData, this.rhModel);\n    }\n    this.setFormDataViaRelatedDatas();\n    // 执行form的相关字段赋值操作\n    this.triggerRelatedForm();\n    this.closeDataModal();\n  }\n\n  resetControlValue() {\n    this.displayName = null;\n    // 重置form对应数据对象\n    this.rhData[this.formKeyFieldName] = null;\n    this.rhData[this.formTextFieldName] = null;\n    // 清空数据中的字段的值\n    this.mappedList.forEach((ele) => {\n      this.rhData[ele.mappedName] = null;\n    });\n    this.rhModel = null;\n  }\n\n  setCbValue() {\n    const cbString = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.cb;\n    if (cbString) {\n      const fn = Function(`return ${cbString}`);\n      if (fn) {\n        this.cb = fn();\n      } else {\n        this.cb = this.setFormData;\n      }\n    } else {\n      // 当没有配置回调函数时，执行默认的回调函数\n      this.cb = this.setFormData;\n    }\n  }\n\n  /** 设置form对应的数据对象的值\n   * @param data form对应的数据对象\n   * @params 设置或者对应table选择的数据\n   */\n  setFormData(data: RhSafeAny, ctx: RhSelectableDto) {\n    data[this.formKeyFieldName] = ctx[this.modelKeyFieldName];\n    data[this.formTextFieldName] = ctx[this.modelTextFieldName];\n  }\n\n  setFormDataViaRelatedDatas() {\n    let relatedDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedModelDatas;\n    if (!relatedDatas?.length) {\n      relatedDatas = this.mappedList;\n    }\n    if (relatedDatas?.length) {\n      relatedDatas.forEach((ele) => {\n        this.rhData[ele.mappedName] = this.rhModel[ele.sourceName];\n      });\n    }\n  }\n\n  triggerRelatedForm() {\n    const tempDatas = (this.rhFieldData.config as RhDynamicCustomizeControlConfigDto)?.relatedFieldDatas;\n    const relatedDatas: RhRelatedFieldDataDto[] = tempDatas && tempDatas.length ? tempDatas : this.mappedList;\n    const data: RhCustomizeEventSettingDto = {\n      id: `${this.url}_${this.formName}`,\n      eventType: null,\n      options: null,\n      value: this.rhModel,\n      relatedFieldDatas: relatedDatas\n    };\n    this.dynamicSer.formCustomizeEventTrigger(data);\n  }\n  //#endregion customize selector interface区域结束\n}\n","<nz-input-group [nzSize]=\"rhSize\" [nzSuffix]=\"suffixIconSearch\" [nzAddOnAfter]=\"addOnAfter\">\n  <input type=\"text\" nz-input [ngModel]=\"displayName\" [placeholder]=\"rhPlaceholder\" readonly=\"readonly\" />\n</nz-input-group>\n<ng-template #suffixIconSearch>\n  <a *ngIf=\"displayName && !rhDisabled\" class=\"link-suffix\" (click)=\"clearInputInfo()\">\n    <i nz-icon nzType=\"close-circle\"></i>\n  </a>\n</ng-template>\n\n<ng-template #addOnAfter>\n  <button nz-button nzType=\"link\" type=\"button\" nzSize=\"small\">\n    <a (click)=\"openDataModal($event)\">\n      <i nz-icon [nzType]=\"iconSetting\"></i>\n    </a>\n  </button>\n</ng-template>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"rhTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedData\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-return-warehousing-plan-table\n        [rhModel]=\"rhModel\"\n        (rhModelChange)=\"onSelectModal($event)\"\n        [rhInterfaceInfo]=\"defaultFormInterface\"\n        [rhSingleMode]=\"rhSingleMode\"\n      ></rh-return-warehousing-plan-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { CustomizeBaseTableComponent, DynamicFormComponent } from 'rh-base/shared';\nimport { RhDynamicInterfaceDto, RhSelectableDto, RhTableQueryOptionDto, CodeClassModel, RhDynamicTableFieldDto } from 'rh-base/model';\n\n@Component({\n  selector: 'rh-production-picking-plan-table',\n  templateUrl: './production-picking-plan-table.component.html',\n  styleUrls: ['./production-picking-plan-table.component.less']\n})\nexport class ProductionPickingPlanTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n\n  @Input() rhSingleMode = true;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() rhDisabled: boolean;\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto>();\n\n  rhName = 'ProductionPickingPlanOrderSelector';\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n  defaultInterfaceInfo: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'ProductPlanBusinessApi',\n    interfaceName: 'GetProductPickingMaterialOutPlanOrderDatas'\n  };\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [\n    { name: 'PlanOrderId', displayName: '计划单号', placeholder: '计划单号', editable: true, visible: true },\n    {\n      name: 'OrderStatus',\n      displayName: '单据状态',\n      placeholder: '单据状态',\n      editable: false,\n      defaultValue: 'WaitOutWarehouse',\n      visible: false\n    }\n  ];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [\n    { name: 'PlanOrderId', displayName: '计划单号', width: 150 },\n    { name: 'SourceOrderId', displayName: '领料单号', width: 150 },\n    { name: 'OutWarehouseCode', displayName: '领料仓库代码', width: 150 },\n    { name: 'OutWarehouseName', displayName: '领料仓库名称', width: 150 },\n    { name: 'ProductionScheduler', displayName: '生产调度员', width: 120 },\n    { name: 'OrganizationStructureCode', displayName: '部门编码', width: 150 },\n    { name: 'OrganizationStructureName', displayName: '部门名称', width: 120 },\n    { name: 'OrganizationStructureDisplayName', displayName: '部门描述', width: 120 },\n    { name: 'OrganizationStructureExternalCode', displayName: '外部编码', width: 120 },\n    { name: 'Remark', displayName: '备注', width: 120, rhEllipsis: true }\n  ];\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  constructor() {\n    //\n    super();\n  }\n\n  ngOnInit(): void {\n    this.rhInterfaceInfo = this.rhInterfaceInfo || this.defaultInterfaceInfo;\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n}\n","<!-- 搜索Form区域 -->\n<div class=\"search-area rh-full\">\n    <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n      <ng-template #searchTpl>\n        <rh-dynamic-form\n          #queryForm\n          rhName=\"{{ rhName }}Form\"\n          [rhValue]=\"rhDefaultQueryDto\"\n          (rhInterfaceDataChange)=\"setDatas($event)\"\n          (rhDataloadingChange)=\"dataLoadingChange($event)\"\n          (rhOutParaChange)=\"setInitFieldDataset($event)\"\n          [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n          [(rhFormInterface)]=\"rhInterfaceInfo\"\n        ></rh-dynamic-form>\n      </ng-template>\n    </nz-alert>\n  </div>\n  <!-- 搜索结果Table展示区域 -->\n  <div class=\"table-area\">\n    <rh-dynamic-table\n      rhName=\"{{ rhName }}Table\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhDefaultFieldDataset]=\"defaultTableFieldDataset\"\n      (rhRefresh)=\"refreshDatas($event)\"\n      (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\"\n      [rhSingleMode]=\"rhSingleMode\"\n    ></rh-dynamic-table>\n  </div>\n  ","import { Component, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, SimpleChanges } from '@angular/core';\nimport { NzSizeLDSType } from 'ng-zorro-antd/core/types';\nimport { provideValueAccessor, RhRouteHelper } from 'rh-base/core';\nimport {\n  RhSelectableDto,\n  RhDynamicFormFieldDto,\n  RhSafeAny,\n  RhDynamicInterfaceDto,\n  RhDynamicCustomizeControlConfigDto,\n  RhRelatedFieldDataDto,\n  RhCustomizeEventSettingDto,\n  RhDisplayMode\n} from 'rh-base/model';\nimport { ProductionPickingPlanTableComponent } from './production-picking-plan-table/production-picking-plan-table.component';\nimport { CustomizeBaseControlComponent, RhBaseDynamicService } from 'rh-base/shared';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Router } from '@angular/router';\n\n@Component({\n  selector: 'rh-production-picking-plan-selector',\n  templateUrl: './production-picking-plan-selector.component.html',\n  styleUrls: ['./production-picking-plan-selector.component.less'],\n  providers: [provideValueAccessor(ProductionPickingPlanSelectorComponent)]\n})\nexport class ProductionPickingPlanSelectorComponent extends CustomizeBaseControlComponent {\n  rhRelatedFieldData = null;\n  @ViewChild(ProductionPickingPlanTableComponent) tableComp: ProductionPickingPlanTableComponent;\n  @Input() rhDynamicKey = 'ProductionPickingPlanOrder';\n  @Input() rhTitle = '选择生产领料计划';\n  @Input() declare rhSize: NzSizeLDSType;\n  @Input() declare rhDisplayMode: RhDisplayMode;\n\n  @Input() rhProductCode: string;\n\n  iconSetting = 'search';\n  @Input() rhSingleMode = true;\n\n  formKeyFieldName = 'PlanOrderId';\n  formTextFieldName = 'PlanOrderId';\n\n  modelKeyFieldName = 'PlanOrderId';\n  modelTextFieldName = 'PlanOrderId';\n\n  // // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto>();\n  /** 对应table选中的数据 */\n  rhModel: RhSelectableDto = {};\n\n  /** 动态form字段配置数据 */\n  @Input() rhFieldData: RhDynamicFormFieldDto;\n  /** 整个form的数据 */\n  @Input() declare rhData: RhSafeAny;\n\n  /** 表格Loading */\n  // dataLoading = false;\n  // dataresult: DataResultT<RhSelectableDto[]>;\n\n  /** selector input上展示的数据，一般为中文 */\n  //displayName: string;\n\n  //selectedData: RhSelectableDto[];\n\n  /** 自定义组件的自定义执行函数 */\n  cb: (data: RhSafeAny, ctx: RhSafeAny) => void;\n\n  /** 该组件关联的form名称 */\n  formName: string;\n\n  url: string;\n\n  /** 设置默认搜索接口 */\n  defaultFormInterface: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'ProductPlanBusinessApi',\n    interfaceName: 'GetProductPickingMaterialOutPlanOrderDatas'\n  };\n\n  mappedList = [\n    { sourceName: this.modelKeyFieldName, mappedName: this.formKeyFieldName },\n    { sourceName: this.modelTextFieldName, mappedName: this.formTextFieldName },\n    { sourceName: 'SourceOrderId', mappedName: 'SourceOrderId' },\n    // { sourceName: 'SourceOrderRowNum', mappedName: 'SourceOrderRowNum' },\n    // { sourceName: 'PickingOutOrderCode', mappedName: 'PickingOutOrderCode' },\n    { sourceName: 'ProductionScheduler', mappedName: 'ProductionScheduler' },\n    { sourceName: 'OrganizationStructureCode', mappedName: 'OrganizationStructureCode' },\n    { sourceName: 'OrganizationStructureDisplayName', mappedName: 'OrganizationStructureDisplayName' },\n    { sourceName: 'OrganizationStructureExternalCode', mappedName: 'OrganizationStructureExternalCode' },\n    { sourceName: 'OrganizationStructureName', mappedName: 'OrganizationStructureName' },\n    // { sourceName: 'InspectorId', mappedName: 'InspectorId' },\n    // { sourceName: 'Inspector', mappedName: 'Inspector' },\n    { sourceName: 'OutWarehouseCode', mappedName: 'OutWarehouseCode' },\n    { sourceName: 'OutWarehouseName', mappedName: 'OutWarehouseName' }\n  ];\n\n  constructor(\n    public fb: UntypedFormBuilder,\n    public cdr: ChangeDetectorRef,\n    public router: Router,\n    public dynamicSer: RhBaseDynamicService\n  ) {\n    super(cdr, dynamicSer);\n    this.url = RhRouteHelper.getRealRoute(this.router.url);\n  }\n\n  ngOnInit(): void {\n    this.rhPlaceholder = this.rhFieldData.placeholder as any;\n    this.formName = this.rhFieldData.relatedComponentName;\n    this.setCbValue();\n  }\n\n  // 自定义表单项配置\n  ngOnChanges(changes: SimpleChanges) {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue && rhData.currentValue[this.formKeyFieldName] === null) {\n      this.resetControlValue();\n    } else {\n      this.rhModel = {};\n    }\n  }\n\n  // dataLoadingChange(status: boolean) {\n  //   this.dataLoading = status;\n  // }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    // if (data?.length === 1 && this.rhSingleMode) {\n    //   this.selectedData = data[0];\n    // } else {\n    //   this.selectedData = data;\n    // }\n    this.selectedData = data || [];\n  }\n\n  // setDatas(result: DataResultT<RhSelectableDto[]>) {\n  //   if (result && result.Success) {\n  //     this.dataresult = result;\n  //   } else {\n  //     MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n  //   }\n  // }\n\n  /** 根据填入的code值，获取对应的完整数据，回填到输入框 */\n  getTargetDatas(code: string) {\n    // 显示代码 不需要\n    // if (!this.defaultFormInterface) {\n    //   return;\n    // }\n    // const queryDto = {};\n    // queryDto[this.modelKeyFieldName] = `$${code}`;\n    // this.getTargetDatasVisHttpHandler(this.defaultFormInterface, queryDto, this.rhFieldData);\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n  }\n\n  //#region customize selector interface区域\n  confirmSelect() {\n    this.rhModel = this.selectedData[0];\n    this.rhModelChange.emit(this.selectedData);\n    // if (this.rhSingleMode) {\n    //   this.value = this.rhModel[this.modelKeyFieldName];\n    //   this.displayName = this.rhModel[this.modelTextFieldName];\n    //   this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // } else {\n    //   this.value = (this.rhModel as RhSafeAny[]).map((ele) => ele[this.modelKeyFieldName]) as RhSafeAny;\n    //   // 多选的时候只会显示多个代码\n    //   this.displayName = (this.value as RhSafeAny).toString();\n    // }\n    this.value = this.rhModel[this.modelKeyFieldName];\n    this.displayName = this.rhModel[this.modelTextFieldName];\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // 执行对应控件定义的代码\n    if (this.rhData && this.rhModel && this.cb) {\n      this.cb(this.rhData, this.rhModel);\n    }\n    this.setFormDataViaRelatedDatas();\n    // 执行form的相关字段赋值操作\n    this.triggerRelatedForm();\n    this.closeDataModal();\n  }\n\n  resetControlValue() {\n    this.displayName = null;\n    // 重置form对应数据对象\n    this.rhData[this.formKeyFieldName] = null;\n    this.rhData[this.formTextFieldName] = null;\n    // 清空数据中的字段的值\n    this.mappedList.forEach((ele) => {\n      this.rhData[ele.mappedName] = null;\n    });\n    this.rhModel = null;\n  }\n\n  setCbValue() {\n    const cbString = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.cb;\n    if (cbString) {\n      const fn = Function(`return ${cbString}`);\n      if (fn) {\n        this.cb = fn();\n      } else {\n        this.cb = this.setFormData;\n      }\n    } else {\n      // 当没有配置回调函数时，执行默认的回调函数\n      this.cb = this.setFormData;\n    }\n  }\n\n  /** 设置form对应的数据对象的值\n   * @param data form对应的数据对象\n   * @params 设置或者对应table选择的数据\n   */\n  setFormData(data: RhSafeAny, ctx: RhSelectableDto) {\n    data[this.formKeyFieldName] = ctx[this.modelKeyFieldName];\n    data[this.formTextFieldName] = ctx[this.modelTextFieldName];\n  }\n\n  setFormDataViaRelatedDatas() {\n    let relatedDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedModelDatas;\n    if (!relatedDatas?.length) {\n      relatedDatas = this.mappedList;\n    }\n    if (relatedDatas?.length) {\n      relatedDatas.forEach((ele) => {\n        this.rhData[ele.mappedName] = this.rhModel[ele.sourceName];\n      });\n    }\n  }\n\n  triggerRelatedForm() {\n    const tempDatas = (this.rhFieldData.config as RhDynamicCustomizeControlConfigDto)?.relatedFieldDatas;\n    const relatedDatas: RhRelatedFieldDataDto[] = tempDatas && tempDatas.length ? tempDatas : this.mappedList;\n    const data: RhCustomizeEventSettingDto = {\n      id: `${this.url}_${this.formName}`,\n      eventType: null,\n      options: null,\n      value: this.rhModel,\n      relatedFieldDatas: relatedDatas\n    };\n    this.dynamicSer.formCustomizeEventTrigger(data);\n  }\n  //#endregion customize selector interface区域结束\n}\n","<nz-input-group [nzSize]=\"rhSize\" [nzSuffix]=\"suffixIconSearch\" [nzAddOnAfter]=\"addOnAfter\">\n  <input type=\"text\" nz-input [ngModel]=\"displayName\" [placeholder]=\"rhPlaceholder\" readonly=\"readonly\" />\n</nz-input-group>\n<ng-template #suffixIconSearch>\n  <a *ngIf=\"displayName && !rhDisabled\" class=\"link-suffix\" (click)=\"clearInputInfo()\">\n    <i nz-icon nzType=\"close-circle\"></i>\n  </a>\n</ng-template>\n\n<ng-template #addOnAfter>\n  <button nz-button nzType=\"link\" type=\"button\" nzSize=\"small\">\n    <a (click)=\"openDataModal($event)\">\n      <i nz-icon [nzType]=\"iconSetting\"></i>\n    </a>\n  </button>\n</ng-template>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"rhTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedData\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-production-picking-plan-table\n        [rhModel]=\"rhModel\"\n        (rhModelChange)=\"onSelectModal($event)\"\n        [rhInterfaceInfo]=\"defaultFormInterface\"\n        [rhSingleMode]=\"rhSingleMode\"\n        [rhDefaultQueryDto]=\"rhDefaultQueryDto\"\n      ></rh-production-picking-plan-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { Component, Input, Output, EventEmitter, ChangeDetectorRef, SimpleChanges } from '@angular/core';\nimport { NzSizeLDSType } from 'ng-zorro-antd/core/types';\nimport { provideValueAccessor, RhRouteHelper, MsgHelper } from 'rh-base/core';\nimport {\n  RhSelectableDto,\n  RhDynamicFormFieldDto,\n  RhSafeAny,\n  DataResultT,\n  RhDynamicInterfaceDto,\n  RhDynamicCustomizeControlConfigDto,\n  RhRelatedFieldDataDto,\n  RhCustomizeEventSettingDto,\n  RhDisplayMode\n} from 'rh-base/model';\nimport { CustomizeBaseControlComponent, RhBaseDynamicService } from 'rh-base/shared';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Router } from '@angular/router';\n\n@Component({\n  selector: 'rh-material-inventory-lotnum-selector',\n  templateUrl: './material-inventory-lotnum-selector.component.html',\n  styleUrls: ['./material-inventory-lotnum-selector.component.less'],\n  providers: [provideValueAccessor(MaterialInventoryLotnumSelectorComponent)]\n})\nexport class MaterialInventoryLotnumSelectorComponent extends CustomizeBaseControlComponent {\n  rhRelatedFieldData = null;\n  @Input() rhDynamicKey = 'MaterialInventoryLotnum';\n  @Input() rhTitle = '选择库存批次号';\n  @Input() declare rhSize: NzSizeLDSType;\n  @Input() declare rhDisplayMode: RhDisplayMode;\n\n  @Input() rhDefaultQueryDto: RhSelectableDto = {};\n\n  iconSetting = 'more';\n  @Input() rhSingleMode = true;\n\n  formKeyFieldName = 'LotNum';\n  formTextFieldName = 'LotNum';\n\n  modelKeyFieldName = 'LotNum';\n  modelTextFieldName = 'LotNum';\n\n  // // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto>();\n  /** 对应table选中的数据 */\n  rhModel: RhSelectableDto = {};\n\n  /** 动态form字段配置数据 */\n  @Input() rhFieldData: RhDynamicFormFieldDto;\n  /** 整个form的数据 */\n  @Input() declare rhData: RhSafeAny;\n\n  /** 表格Loading */\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  /** selector input上展示的数据，一般为中文 */\n  //displayName: string;\n\n  //selectedData: RhSelectableDto;\n\n  /** 自定义组件的自定义执行函数 */\n  cb: (data: RhSafeAny, ctx: RhSafeAny) => void;\n\n  /** 该组件关联的form名称 */\n  formName: string;\n\n  url: string;\n\n  /** 设置默认搜索接口 */\n  defaultFormInterface: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'MaterialInventoryWebApi',\n    interfaceName: 'GetMaterialInventoryOfLotNumData'\n  };\n\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [\n    { name: 'MaterialCode', displayName: '物料代码', width: 120 },\n    { name: 'MaterialName', displayName: '物料名称', width: 120 },\n    { name: 'MaterialSpecification', displayName: '物料规格', width: 200, rhEllipsis: true },\n    { name: 'WarehouseCode', displayName: '仓库代码', width: 120 },\n    { name: 'WarehouseName', displayName: '仓库名称', width: 120 },\n    { name: 'InventoryQty', displayName: '库存数量', width: 120 },\n    { name: 'AvailableQty', displayName: '可用数量', width: 120 },\n    { name: 'FreezeQty', displayName: '冻结数量', width: 120 },\n    { name: 'LotNum', displayName: '批次号', width: 120 }\n  ];\n\n  mappedList = [\n    { sourceName: this.modelKeyFieldName, mappedName: this.formKeyFieldName },\n    { sourceName: this.modelTextFieldName, mappedName: this.formTextFieldName },\n    { sourceName: 'InventoryQty', mappedName: 'InventoryQty' }\n  ];\n\n  constructor(\n    public fb: UntypedFormBuilder,\n    public cdr: ChangeDetectorRef,\n    public router: Router,\n    public dynamicSer: RhBaseDynamicService\n  ) {\n    super(cdr, dynamicSer);\n    this.url = RhRouteHelper.getRealRoute(this.router.url);\n  }\n\n  ngOnInit(): void {\n    this.rhPlaceholder = this.rhFieldData.placeholder as any;\n    this.formName = this.rhFieldData.relatedComponentName;\n    this.setCbValue();\n  }\n\n  // 自定义表单项配置\n  ngOnChanges(changes: SimpleChanges) {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue && rhData.currentValue[this.formKeyFieldName] === null) {\n      this.resetControlValue();\n    } else {\n      this.rhModel = {};\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    if (data?.length === 1 && this.rhSingleMode) {\n      this.selectedData = data[0];\n    } else {\n      this.selectedData = data;\n    }\n  }\n\n  setDatas(result: DataResultT<RhSelectableDto[]>) {\n    if (result && result.Success) {\n      this.dataresult = result;\n    } else {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n    }\n  }\n\n  /** 根据填入的code值，获取对应的完整数据，回填到输入框 */\n  getTargetDatas(code: string) {\n    // 显示代码 不需要\n    // if (!this.defaultFormInterface) {\n    //   return;\n    // }\n    // const queryDto = {};\n    // queryDto[this.modelKeyFieldName] = `$${code}`;\n    // this.getTargetDatasVisHttpHandler(this.defaultFormInterface, queryDto, this.rhFieldData);\n    // this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    this.displayName = this.rhData[this.modelTextFieldName];\n  }\n\n  //#region customize selector interface区域\n  confirmSelect() {\n    this.rhModel = this.selectedData;\n    this.rhModelChange.emit(this.rhModel);\n    if (this.rhSingleMode) {\n      this.value = this.rhModel[this.modelKeyFieldName];\n      this.displayName = this.rhModel[this.modelTextFieldName];\n      // this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    } else {\n      this.value = (this.rhModel as RhSafeAny[]).map((ele) => ele[this.modelKeyFieldName]) as RhSafeAny;\n      // 多选的时候只会显示多个代码\n      this.displayName = (this.value as RhSafeAny).toString();\n    }\n    // 执行对应控件定义的代码\n    if (this.rhData && this.rhModel && this.cb) {\n      this.cb(this.rhData, this.rhModel);\n    }\n    this.setFormDataViaRelatedDatas();\n    // 执行form的相关字段赋值操作\n    this.triggerRelatedForm();\n    this.closeDataModal();\n  }\n\n  resetControlValue() {\n    this.displayName = null;\n    // 重置form对应数据对象\n    this.rhData[this.formKeyFieldName] = null;\n    this.rhData[this.formTextFieldName] = null;\n    // 清空数据中的字段的值\n    this.mappedList.forEach((ele) => {\n      this.rhData[ele.mappedName] = null;\n    });\n    this.rhModel = null;\n  }\n\n  setCbValue() {\n    const cbString = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.cb;\n    if (cbString) {\n      const fn = Function(`return ${cbString}`);\n      if (fn) {\n        this.cb = fn();\n      } else {\n        this.cb = this.setFormData;\n      }\n    } else {\n      // 当没有配置回调函数时，执行默认的回调函数\n      this.cb = this.setFormData;\n    }\n  }\n\n  /** 设置form对应的数据对象的值\n   * @param data form对应的数据对象\n   * @params 设置或者对应table选择的数据\n   */\n  setFormData(data: RhSafeAny, ctx: RhSelectableDto) {\n    data[this.formKeyFieldName] = ctx[this.modelKeyFieldName];\n    data[this.formTextFieldName] = ctx[this.modelTextFieldName];\n  }\n\n  setFormDataViaRelatedDatas() {\n    let relatedDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedModelDatas;\n    if (!relatedDatas?.length) {\n      relatedDatas = this.mappedList;\n    }\n    if (relatedDatas?.length) {\n      relatedDatas.forEach((ele) => {\n        this.rhData[ele.mappedName] = this.rhModel[ele.sourceName];\n      });\n    }\n  }\n\n  triggerRelatedForm() {\n    const tempDatas = (this.rhFieldData.config as RhDynamicCustomizeControlConfigDto)?.relatedFieldDatas;\n    const relatedDatas: RhRelatedFieldDataDto[] = tempDatas && tempDatas.length ? tempDatas : this.mappedList;\n    const data: RhCustomizeEventSettingDto = {\n      id: `${this.url}_${this.formName}`,\n      eventType: null,\n      options: null,\n      value: this.rhModel,\n      relatedFieldDatas: relatedDatas\n    };\n    this.dynamicSer.formCustomizeEventTrigger(data);\n  }\n  //#endregion customize selector interface区域结束\n}\n","<nz-input-group [nzSize]=\"rhSize\" [nzSuffix]=\"suffixIconSearch\" [nzAddOnAfter]=\"addOnAfter\">\n  <input type=\"text\" nz-input [ngModel]=\"displayName\" [placeholder]=\"rhPlaceholder\" readonly=\"readonly\" />\n</nz-input-group>\n<ng-template #suffixIconSearch>\n  <a *ngIf=\"displayName && !rhDisabled\" class=\"link-suffix\" (click)=\"clearInputInfo()\">\n    <i nz-icon nzType=\"close-circle\"></i>\n  </a>\n</ng-template>\n\n<ng-template #addOnAfter>\n  <button nz-button nzType=\"link\" type=\"button\" nzSize=\"small\">\n    <a (click)=\"openDataModal($event)\">\n      <i nz-icon [nzType]=\"iconSetting\"></i>\n    </a>\n  </button>\n</ng-template>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"rhTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedData\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-dynamic-single-table\n        rhName=\"{{ rhDynamicKey }}Table\"\n        [rhInterfaceInfo]=\"defaultFormInterface\"\n        [rhDefaultFieldDataset]=\"defaultTableFieldDataset\"\n        [rhPara]=\"rhDefaultQueryDto\"\n        [rhSingleMode]=\"rhSingleMode\"\n        (rhSelectedDataChange)=\"onSelectModal($event)\"\n      ></rh-dynamic-single-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { NgModule } from '@angular/core';\nimport { RhSharedModule } from 'rh-base/shared';\nimport { MaterialInventoryLotnumSelectorComponent } from './selector/material-inventory-lotnum-selector/material-inventory-lotnum-selector.component';\n\nconst COMPONENTS = [MaterialInventoryLotnumSelectorComponent];\n\n@NgModule({\n  declarations: [...COMPONENTS],\n  imports: [RhSharedModule],\n  exports: [...COMPONENTS]\n})\nexport class SharedBusinessModule {}\n","import { ProductPickedMaterialTransactOrderDetails } from './../../production-business-model';\nimport { RhBusinessManageService } from './../../../business-manage.service';\nimport { RhProductionBusinessService } from './../../production-business.service';\nimport { WarehouseMaterialControlParameter } from './../../../business-manage-model';\nimport { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { DataResultT, OpMode, RhBaseDto, RhSafeAny, RhSelectableDto, RhTableButtonInfoDto } from 'rh-base/model';\nimport { ExtProductionFeedOrderDetailTableFieldDataset, ExtProductionFeedOrderFormInterface, ProductPickingMaterialOutPlanOrderDetailFormInterface, ProductPickingMaterialOutPlanOrderDetailTableFieldDataset } from '../../detail-source-table-config';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport { Observable } from 'rxjs';\nimport * as _ from 'lodash';\n\n@Component({\n  selector: 'rh-product-picking-material-out-handle-details',\n  templateUrl: './product-picking-material-out-handle-details.component.html',\n  styleUrls: ['./product-picking-material-out-handle-details.component.less']\n})\nexport class ProductPickingMaterialOutHandleDetailsComponent implements OnInit {\n  @Input() rhOrder: RhBaseDto;\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter<RhSelectableDto[]>();\n\n  queryDto: RhBaseDto;\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto('deleteDetails', '删除', 'primary', true,'delete', true, null, (datas, buttonInfo) => this.removeDatas(datas as RhSelectableDto[], buttonInfo), false, true),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  isVisibleSettingOver = true;\n  tableVisibleSetting = {};\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  sourceDefaultQueryDto = {};\n  isEnterEditStatus = false;\n\n  // 计划明细\n  planOrderDetailFormInterface = ProductPickingMaterialOutPlanOrderDetailFormInterface;\n  planOrderDetailTableFieldDataset = ProductPickingMaterialOutPlanOrderDetailTableFieldDataset;\n  planOrderDetailDataset: RhSelectableDto[] = [];\n  // 源单明细\n  // sourceOrderDetailFormInterface = ExtProductionFeedOrderFormInterface;\n  // sourceOrderDetailTableFieldDataset = ExtProductionFeedOrderDetailTableFieldDataset;\n  sourceDetailTableFieldDataset = ExtProductionFeedOrderDetailTableFieldDataset;\n  sourceDetailDataResult: DataResultT<RhSelectableDto[]>;\n  sourceDetailDataLoading = false;\n  extraButtonDatasetSourceDetail = [\n    new RhTableButtonInfoDto('refreshSourceDetail', '刷新', 'default', false, 'sync', false, null, () => this.getSourceDetailDatas(), true)\n  ];\n  // 仓储数据\n  warehouseDataset: RhSelectableDto[] = [];\n  warehouseAreaDataset: RhSelectableDto[] = [];\n  warehouseShelfDataset: RhSelectableDto[] = [];\n  storageLocationDataset: RhSelectableDto[] = [];\n  // 仓库控制配置参数\n  currentWarehouseMaterialControlPara: WarehouseMaterialControlParameter;\n\n  editDisabled = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return !list.includes(data.OrderStatus);\n  };\n\n  // 配置参数\n  get isEnableOutPlan() {\n    return this.businessManageSer.IsEnableOutPlan;\n  }\n  // 显示控制\n  get sourceDataModalTitle() {\n    return this.isEnableOutPlan ? '选择计划明细数据' : '选择源单明细数据';\n  }\n  get isReadOnlyTable() {\n    return (\n      this.rhShowDetail || !this.rhOrder?.OrderId || this.isEnterEditStatus || this.editDisabled(this.rhOrder)\n    );\n  }\n  get readeOnlyButtonDataset() {\n    if (!this.rhOrder?.OrderId) return [];\n    else if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(\n    private operator: RhProductionBusinessService,\n    public businessManageSer: RhBusinessManageService\n  ) { }\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  async ngOnChanges(changes: SimpleChanges): Promise<void> {\n    const { rhOrder } = changes;\n    if (rhOrder && rhOrder.currentValue && this.rhOrder.OrderId) {\n      // 获取仓库控制配置参数\n      await this.getWarehouseMaterialControlParameter();\n      // 设置表格字段显隐性配置\n      this.isVisibleSettingOver = false;\n      this.initTableVisibleSetting();\n      setTimeout(() => this.isVisibleSettingOver = true);\n      // 获取明细数据\n      if (!rhOrder.previousValue) {\n        this.getDatas();\n      }\n      // 获取仓储数据\n      this.getWarehouseInfos();\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.initOutWarehouseVisibleSetting(this.currentWarehouseMaterialControlPara));\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('Out'));\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      OrderId: this.rhOrder.OrderId,\n      SourceOrderId: this.rhOrder.SourceOrderId,\n      FactoryCode: this.rhOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetProductPickedMaterialTransactOrderDetailsDatasBy(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        this.rhDetailsUpdate.emit(this.dataresult?.Attach || []);\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`)\n        } else {\n          if (this.isEnableOutPlan) {\n            this.getPlanOrderDetails();\n          }\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (this.editDisabled(this.rhOrder)) {\n      MsgHelper.ShowWarningMessage('当前单据状态无法编辑出库办理明细！');\n      return;\n    }\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach(data => data.OpSign = OpMode.OpEdit);\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    return new Observable(observer => {\n      this.businessManageSer.checkStoreDatas(details, 'Out').then(checkRes => {\n        if (!checkRes) {\n          observer.error();\n        } else {\n          const dto = {\n            OrderMaster: this.rhOrder,\n            OrderDetails: details\n          };\n          const msg = editType === 'add' ? '新增' : '编辑';\n          this.dataLoading = true;\n          this.operator.StoreProductPickedMaterialTransactOrderDetails(dto).subscribe((result) => {\n            if (result.Success) {\n              MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`)\n            } else {\n              MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n            }\n            this.dataLoading = false;\n            observer.next();\n            observer.complete();\n          }, () => {\n            this.dataLoading = false;\n            observer.error();\n          })\n        }\n      });\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[], buttonInfo: RhTableButtonInfoDto) {\n    buttonInfo.loading = true;\n    this.operator.RemoveProductPickedMaterialTransactOrderDetails(details).subscribe((result) => {\n      if (result.Success) {\n        MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n        this.getDatas();\n      } else {\n        MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n      }\n      buttonInfo.loading = false;\n    }, () => buttonInfo.loading = false);\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  async handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    // 获取源单统计信息\n    const convertResult = await this.businessManageSer.convertSourceOrderStatisticsDatasToSelectedDatas(\n      this.rhOrder.SourceOrderId,\n      this.rhOrder.BusinessType,\n      details\n    );\n    const datas = details.map(data => {\n      const temp = ProductPickedMaterialTransactOrderDetails.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 源单赋值\n      if (this.isEnableOutPlan) {\n        temp.PlanOrderId = this.rhOrder.PlanOrderId;\n        temp.SourcePlannedQty = data.SourcePlannedQty || 0;\n        temp.PlanTransactedQty = data.PlanTransactedQty || 0;\n        temp.SourceTransactedQty = data.SourceCompletedQty;\n      } else {\n        if (!convertResult) {\n          // temp.SourceOrderId = data.OrderCode;\n          // temp.SourceOrderRowNum = data.OrderRowNum;\n          temp.SourceOrderId = this.rhOrder.SourceOrderId;\n          temp.SourceOrderQty = data.NeededPickQty;\n          temp.SourceTransactedQty = data.PickedQty;\n        }\n      }\n      // 单头赋值\n      temp.OrderId = this.rhOrder.OrderId;\n      temp.BusinessType = this.rhOrder.BusinessType;\n      // temp.OutWarehouseCode = this.rhOrder.OutWarehouseCode;\n      // temp.OutWarehouseName = this.rhOrder.OutWarehouseName;\n      if (data.WarehouseCode) {\n        temp.OutWarehouseCode = data.WarehouseCode;\n        temp.OutWarehouseName = data.WarehouseName;\n      } else {\n        temp.OutWarehouseCode = this.rhOrder.OutWarehouseCode;\n        temp.OutWarehouseName = this.rhOrder.OutWarehouseName;\n      }\n      temp.FactoryCode = this.rhOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach(data => data.OpSign = OpMode.OpEdit);\n      }\n      this.dataresult = { Attach: (this.dataresult?.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 启用计划，获取计划明细，用于初始化PlanTransactedQty */\n  getPlanOrderDetails() {\n    const queryDto = {\n      PlanOrderId: this.rhOrder.PlanOrderId,\n      SourceOrderId: this.rhOrder.SourceOrderId,\n      FactoryCode: this.rhOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetProductPickingMaterialOutPlanOrderDetailsDatasBy(queryDto).subscribe(result => {\n      if (result.Success) {\n        this.planOrderDetailDataset = result.Attach;\n        // 初始化办理明细的PlanTransactedQty\n        this.dataresult.Attach.forEach(data => {\n          const item = this.planOrderDetailDataset.find((ele) =>\n            ele.MaterialCode === data.MaterialCode &&\n            ele.SourceOrderId === data.SourceOrderId &&\n            ele.SourceOrderRowNum === data.SourceOrderRowNum);\n          if (item) {\n            data.PlanTransactedQty = item.PlanTransactedQty;\n          } else {\n            data.PlanTransactedQty = null;\n          }\n        });\n        this.dataresult = _.cloneDeep(this.dataresult);\n      } else {\n        this.planOrderDetailDataset = [];\n      }\n    });\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach(data => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach(data => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  openDataModal() {\n    if (this.isEnableOutPlan) {\n      this.sourceDefaultQueryDto = {\n        PlanOrderId: this.rhOrder.PlanOrderId,\n        FactoryCode: this.rhOrder.FactoryCode\n      };\n    } else {\n      // this.sourceDefaultQueryDto = {\n      //   PickingOrderCode: this.rhOrder.SourceOrderId ? `$${this.rhOrder.SourceOrderId}`: null,\n      //   FactoryCode: this.rhOrder.FactoryCode\n      // };\n      this.getSourceDetailDatas();\n    }\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n\n  getSourceDetailDatas() {\n    const queryDto = {\n      PickingOrderCode: this.rhOrder.SourceOrderId ? `$${this.rhOrder.SourceOrderId}` : null,\n      FactoryCode: this.rhOrder.FactoryCode\n    };\n    this.sourceDetailDataLoading = true;\n    this.operator.GetExtProductionFeedOrders(queryDto).subscribe(result => {\n      this.sourceDetailDataResult = null;\n      if (result.Success) {\n        const dataset = result?.Attach || [];\n        if (dataset.length) {\n          const target = dataset[0].FeedDetails || [];\n          // 投料单明细没有领料单号\n          target.forEach(ele => ele.PickingOrderCode = queryDto.PickingOrderCode);\n          this.sourceDetailDataResult = { Attach: target, TotalCount: target.length } as RhSafeAny;\n        }\n      } else {\n        MsgHelper.ShowWarningMessage(`查询无投料单明细数据！${result.Message}`);\n      }\n      this.sourceDetailDataLoading = false;\n    }, () => {\n      this.sourceDetailDataLoading = false;\n    });\n  }\n\n\n  //#region 仓储相关区域开始\n  /** 根据是否启用，获取对应仓储信息 */\n  getWarehouseInfos() {\n    this.businessManageSer.getWarehouseDataset({}).then(res => {\n      this.warehouseDataset = res || [];\n    }).catch(() => {\n      this.warehouseDataset = [];\n    });\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseArea) {\n      this.businessManageSer.getWarehouseAreaDataset({ WarehouseCode: this.rhOrder.OutWarehouseCode }).then(res => {\n        this.warehouseAreaDataset = res || [];\n      }).catch(() => {\n        this.warehouseAreaDataset = [];\n      });\n    }\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseShelf) {\n      this.businessManageSer.getWarehouseShelfDataset({ WarehouseCode: this.rhOrder.OutWarehouseCode }).then(res => {\n        this.warehouseShelfDataset = res || [];\n      }).catch(() => {\n        this.warehouseShelfDataset = [];\n      });\n    }\n    if (this.currentWarehouseMaterialControlPara.IsEnableStorageLocation) {\n      this.businessManageSer.getStorageLocationDataset({ WarehouseCode: this.rhOrder.OutWarehouseCode }).then(res => {\n        this.storageLocationDataset = res || [];\n      }).catch(() => {\n        this.storageLocationDataset = [];\n      });\n    }\n  }\n\n  /** 获取仓库控制参数配置 */\n  async getWarehouseMaterialControlParameter() {\n    const para = await this.businessManageSer.getWarehouseMaterialControlParameter({\n      WarehouseCode: this.rhOrder.OutWarehouseCode\n    });\n    this.currentWarehouseMaterialControlPara = this.businessManageSer.transformWarehouseMaterialControlParameter(para);\n  }\n\n  outWarehouseCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseDataset.find(ele => ele.WarehouseCode === code);\n      if (item) {\n        data.OutWarehouseName = item.WarehouseName;\n      } else {\n        data.OutWarehouseName = null;\n      }\n    } else {\n      data.OutWarehouseName = null;\n    }\n    // 强关联则清空下属字段\n    if (this.currentWarehouseMaterialControlPara.IsStrictCorrelation) {\n      data.OutWarehouseAreaCode = null;\n      data.OutWarehouseAreaName = null;\n      data.OutWarehouseShelfCode = null;\n      data.OutWarehouseShelfName = null;\n      data.OutStorageLocationCode = null;\n      data.OutStorageLocationName = null;\n    }\n    // 获取库存数据\n    this.getMaterialSumerizeStockQtyBy(data);\n  }\n\n  outWarehouseAreaCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseAreaDataset.find(ele => ele.WarehouseAreaCode === code);\n      if (item) {\n        data.OutWarehouseAreaName = item.WarehouseAreaName;\n      } else {\n        data.OutWarehouseAreaName = null;\n      }\n    } else {\n      data.OutWarehouseAreaName = null;\n    }\n    // 强关联则清空下属字段\n    if (this.currentWarehouseMaterialControlPara.IsStrictCorrelation) {\n      data.OutWarehouseShelfCode = null;\n      data.OutWarehouseShelfName = null;\n      data.OutStorageLocationCode = null;\n      data.OutStorageLocationName = null;\n    }\n    // 获取库存数据\n    this.getMaterialSumerizeStockQtyBy(data);\n  }\n\n  outWarehouseShelfCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseShelfDataset.find(ele => ele.WarehouseShelfCode === code);\n      if (item) {\n        data.OutWarehouseShelfName = item.WarehouseShelfName;\n      } else {\n        data.OutWarehouseShelfName = null;\n      }\n    } else {\n      data.OutWarehouseShelfName = null;\n    }\n    // 强关联则清空下属字段\n    if (this.currentWarehouseMaterialControlPara.IsStrictCorrelation) {\n      data.OutStorageLocationCode = null;\n      data.OutStorageLocationName = null;\n    }\n    // 获取库存数据\n    this.getMaterialSumerizeStockQtyBy(data);\n  }\n\n  outStorageLocationCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.storageLocationDataset.find(ele => ele.StorageLocationCode === code);\n      if (item) {\n        data.OutStorageLocationName = item.StorageLocationName;\n      } else {\n        data.OutStorageLocationName = null;\n      }\n    } else {\n      data.OutStorageLocationName = null;\n    }\n    // 获取库存数据\n    this.getMaterialSumerizeStockQtyBy(data);\n  }\n\n  getMaterialSumerizeStockQtyBy(data: RhSelectableDto) {\n    this.businessManageSer.getMaterialSumerizeStockQtyBy(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      'Out'\n    );\n  }\n\n  /** 获取库区显示列表，行编辑应用 */\n  getWarehouseAreaDatasetDisplay(data: RhSelectableDto): RhSelectableDto[] {\n    return this.businessManageSer.getWarehouseAreaDatasetDisplay(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      this.warehouseAreaDataset,\n      'Out'\n    );\n  }\n\n  /** 获取货架显示列表，行编辑应用 */\n  getWarehouseShelfDatasetDisplay(data: RhSelectableDto): RhSelectableDto[] {\n    return this.businessManageSer.getWarehouseShelfDatasetDisplay(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      this.warehouseShelfDataset,\n      'Out'\n    );\n  }\n\n  /** 获取库位显示列表，行编辑应用 */\n  getStorageLocationDatasetDisplay(data: RhSelectableDto): RhSelectableDto[] {\n    return this.businessManageSer.getStorageLocationDatasetDisplay(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      this.storageLocationDataset,\n      'Out'\n    );\n  }\n  //#endregion 仓储相关区域结束\n\n}\n\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isVisibleSettingOver\">\n    <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n      <rh-dynamic-table\n        rhName=\"handleDetailsReadOnlyTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n        <ng-template rhTemplate=\"OutWarehouseCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseTpl\">\n            <nz-select\n              [(ngModel)]=\"data.OutWarehouseCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"outWarehouseCodeChange($event, data)\"\n            >\n              <nz-option *ngFor=\"let item of warehouseDataset\" [nzLabel]=\"item.WarehouseCode\" [nzValue]=\"item.WarehouseCode\"></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseTpl>{{ data.OutWarehouseCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"OutWarehouseName\" let-item let-data=\"data\">\n          {{ data.OutWarehouseName }}\n        </ng-template>\n        <ng-template rhTemplate=\"OutWarehouseAreaCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseAreaTpl\">\n            <nz-select\n              [(ngModel)]=\"data.OutWarehouseAreaCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"outWarehouseAreaCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of getWarehouseAreaDatasetDisplay(data)\"\n                [nzLabel]=\"item.WarehouseAreaCode\"\n                [nzValue]=\"item.WarehouseAreaCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseAreaTpl>{{ data.OutWarehouseAreaCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"OutWarehouseAreaName\" let-item let-data=\"data\">\n          {{ data.OutWarehouseAreaName }}\n        </ng-template>\n        <ng-template rhTemplate=\"OutWarehouseShelfCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseShelfTpl\">\n            <nz-select\n              [(ngModel)]=\"data.OutWarehouseShelfCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"outWarehouseShelfCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of getWarehouseShelfDatasetDisplay(data)\"\n                [nzLabel]=\"item.WarehouseShelfCode\"\n                [nzValue]=\"item.WarehouseShelfCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseShelfTpl>{{ data.OutWarehouseShelfCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"OutWarehouseShelfName\" let-item let-data=\"data\">\n          {{ data.OutWarehouseShelfName }}\n        </ng-template>\n        <ng-template rhTemplate=\"OutStorageLocationCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else storageLocationTpl\">\n            <nz-select\n              [(ngModel)]=\"data.OutStorageLocationCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"outStorageLocationCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of getStorageLocationDatasetDisplay(data)\"\n                [nzLabel]=\"item.StorageLocationCode\"\n                [nzValue]=\"item.StorageLocationCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #storageLocationTpl>{{ data.OutStorageLocationCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"OutStorageLocationName\" let-item let-data=\"data\">\n          {{ data.OutStorageLocationName }}\n        </ng-template>\n        <ng-template rhTemplate=\"SN\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else SNTpl\">\n            <input\n              nz-input\n              [(ngModel)]=\"data.SN\"\n              [placeholder]=\"item?.displayName\"\n              [ngStyle]=\"{ border: !data.SN && currentWarehouseMaterialControlPara.IsEnableSN ? '1px solid red' : '1px solid #d9d9d9' }\"\n            />\n            <p style=\"color: red; margin-bottom: 0\" *ngIf=\"!data.SN && currentWarehouseMaterialControlPara.IsEnableSN\">请输入条码</p>\n          </ng-container>\n          <ng-template #SNTpl>{{ data.SN }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"ProductionDate\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else ProDateTpl\">\n            <nz-date-picker\n              nz-input\n              [(ngModel)]=\"data.ProductionDate\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              [ngStyle]=\"{\n                border:\n                  !data.ProductionDate && currentWarehouseMaterialControlPara.IsEnableExpirationDate ? '1px solid red' : '1px solid #d9d9d9'\n              }\"\n            ></nz-date-picker>\n            <p\n              style=\"color: red; margin-bottom: 0\"\n              *ngIf=\"!data.ProductionDate && currentWarehouseMaterialControlPara.IsEnableExpirationDate\"\n            >\n              请输入生产日期\n            </p>\n          </ng-container>\n          <ng-template #ProDateTpl>{{ data.ProductionDate | date : 'yyyy-MM-dd' }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"LotNum\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else LotNumTpl\">\n            <input\n              nz-input\n              [(ngModel)]=\"data.LotNum\"\n              [placeholder]=\"item?.displayName\"\n              [ngStyle]=\"{\n                border: !data.LotNum && currentWarehouseMaterialControlPara.IsEnableLotNum ? '1px solid red' : '1px solid #d9d9d9'\n              }\"\n            />\n            <p style=\"color: red; margin-bottom: 0\" *ngIf=\"!data.LotNum && currentWarehouseMaterialControlPara.IsEnableLotNum\">\n              请输入批次号\n            </p>\n          </ng-container>\n          <ng-template #LotNumTpl>{{ data.LotNum }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"AvailableQty\" let-item let-data=\"data\">\n          {{ data.AvailableQty }}\n        </ng-template>\n      </rh-dynamic-table>\n    </ng-container>\n    <ng-template #handleTpl>\n      <rh-dynamic-table\n        rhName=\"handleDetailsTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n      </rh-dynamic-table>\n    </ng-template>\n  </ng-container>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"sourceDataModalTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div *ngIf=\"isShowDataModal\">\n      <rh-dynamic-single-table\n        *ngIf=\"isEnableOutPlan; else sourceDetailsTpl\"\n        rhName=\"planOrderDetailTable\"\n        [rhInterfaceInfo]=\"planOrderDetailFormInterface\"\n        [rhDefaultFieldDataset]=\"planOrderDetailTableFieldDataset\"\n        [rhPara]=\"sourceDefaultQueryDto\"\n        (rhSelectedDatasChange)=\"onSelectModal($event)\"\n      ></rh-dynamic-single-table>\n      <ng-template #sourceDetailsTpl>\n        <!-- <rh-dynamic-single-table\n          rhName=\"sourceOrderDetailTable\"\n          [rhInterfaceInfo]=\"sourceOrderDetailFormInterface\"\n          [rhDefaultFieldDataset]=\"sourceOrderDetailTableFieldDataset\"\n          [rhPara]=\"sourceDefaultQueryDto\"\n          (rhSelectedDatasChange)=\"onSelectModal($event)\"\n        ></rh-dynamic-single-table> -->\n        <rh-dynamic-table\n          rhName=\"sourceOrderDetailTable\"\n          [rhTableData]=\"sourceDetailDataResult\"\n          [rhTableDataloading]=\"sourceDetailDataLoading\"\n          [rhDefaultFieldDataset]=\"sourceDetailTableFieldDataset\"\n          [rhSingleMode]=\"false\"\n          (rhSelectedDatasChange)=\"onSelectModal($event)\"\n        ></rh-dynamic-table>\n      </ng-template>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { RhSharedManageService } from './../../../shared-manage/shared-manage.service';\nimport { RhBusinessManageService } from './../../business-manage.service';\nimport { RhProductionBusinessService } from './../production-business.service';\nimport { BusinessType } from './../../business-type';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { CodeClassModel, DataResultT, OpMode, OpResult, RhBaseDto, RhDynamicTableFieldDto, RhLoginedUserDto, RhSafeAny, RhSelectableDto, RhTableButtonInfoDto, RhTableQueryOptionDto } from 'rh-base/model';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\n\ntype TabType = 'edit' | 'detail' | 'audit';\n\n@Component({\n  selector: 'rh-product-picking-material-out-handle',\n  templateUrl: './product-picking-material-out-handle.component.html',\n  styleUrls: ['./product-picking-material-out-handle.component.less']\n})\nexport class RhProductPickingMaterialOutHandleComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  BusinessType = BusinessType.ProductPickedMaterialOut;\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n  /** 显示配置 */\n  visibleSetting = {};\n  /** 单据明细数据，审核需要 */\n  orderDetails: RhSelectableDto[] = [];\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  isAsCreated = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n\n  get isEnableOutPlan() {\n    return this.businessManageSer.IsEnableOutPlan;\n  }\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto)),\n    new RhTableButtonInfoDto('submit', '提交审核', 'default', false, 'form', false, null, (data) => this.submitDataToAudit(data as RhBaseDto)),\n    new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) =>\n      this.openDetailTab({ data } as RhBaseDto, 'audit')\n    )\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '出库办理', 'primary', false, 'file', false, null, () => {\n      this.businessManageSer.controlTransactOperation(() => this.openEditTab(), this.titleButtonDataset, 0)\n    }, true, true)\n  ];\n\n  beforeSubmit = async (data: RhBaseDto, context: DynamicFormComponent) => {\n    let result: OpResult = null;\n    const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n    context.submitLoading = true;\n    try {\n      // 出库需要判断锁库情况\n      const isEnable = await this.businessManageSer.controlSubmitFormOperation([data]);\n      if (!isEnable) {\n        context.submitLoading = false;\n        return false;\n      }\n      //\n      if (this.editDto.OpSign === OpMode.OpAdd) {\n        // 基本信息\n        data.BusinessType = this.BusinessType;\n        data.OrderCreatorCode = this.currentUser.DisplayName;\n        data.OrderCreatorName = this.currentUser.UserName;\n\n        result = await this.operator.CreateProductPickedMaterialTransactMasterOrder(data).toPromise();\n      } else {\n        result = await this.operator.UpdateProductPickedMaterialTransactMasterOrder(data).toPromise();\n      }\n      if (result && result.Success) {\n        MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n        this.editDto.OrderId = result?.Attach?.OrderId;\n        this.isShowEditForm = false;\n        this.getEditData();\n      } else {\n        MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n      }\n    } catch (error) {\n      //\n    } finally {\n      context.submitLoading = false;\n    }\n\n    return false;\n  };\n\n  beforeSubmitAudit = (data: RhBaseDto) => {\n    if (!data.IsPass && !data.AuditMessage) {\n      MsgHelper.ShowWarningMessage('审核不通过，必须填写审核信息！');\n      return;\n    }\n    // 基本信息\n    data.OrderMaster = this.editDto;\n    data.OrderDetails = this.orderDetails;\n    data.Auditor = this.currentUser.DisplayName;\n    data.AuditorId = this.currentUser.UserName;\n\n    return true;\n  };\n\n  constructor(\n    private operator: RhProductionBusinessService,\n    public businessManageSer: RhBusinessManageService,\n    public storage: RhStorageService,\n    public sharedManageSer: RhSharedManageService\n  ) { }\n\n  ngOnInit(): void {\n    this.setUserInfo();\n    this.initEditButtonVisible();\n    this.initVisibleSetting();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  initEditButtonVisible() {\n    this.editButtonDataset[0].visible = this.editVisible.toString();\n    this.editButtonDataset[1].visible = this.isCreated.toString();\n    this.editButtonDataset[2].visible = this.auditVisible.toString();\n  }\n\n  initVisibleSetting() {\n    Object.assign(this.visibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('Out'));\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {\n        TransactorCode: this.currentUser.UserName,\n        TransactorName: this.currentUser.DisplayName,\n        FactoryCode: this.currentUser.FactoryCode\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.editDto = null;\n    this.selectedIndex = 0;\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.selectedIndex = 1;\n  }\n\n  // 明细变化后\n  getDetails(details: RhSelectableDto[]) {\n    this.orderDetails = details;\n  }\n\n  getEditData() {\n    const queryDto = { OrderId: this.editDto.OrderId };\n    this.operator.GetProductPickedMaterialTransactOrderViewDatas(queryDto).subscribe((result) => {\n      if (result.Success && result.Attach.length === 1) {\n        this.editDto = result.Attach[0];\n        this.editDto.OpSign = OpMode.OpEdit;\n      }\n    });\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    } else if (index === 1) {\n      this.orderDetails = [];\n    }\n  }\n\n  //#region 操作区域开始\n  /** 提交审核 */\n  submitDataToAudit(data: RhBaseDto) {\n    if (this.isCreated(data)) {\n      const dto = { OrderId: data.OrderId };\n      this.dataLoading = true;\n      this.operator.SumbitAuditProductPickedMaterialTransactOrder(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('提交审核成功！');\n            if (this.selectedIndex === 0) this.getDatas();\n            this.closeEditTab();\n          } else {\n            MsgHelper.ShowWarningMessage(`提交审核失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行提交审核！');\n    }\n  }\n\n  /** 审核 */\n  auditData(data: RhBaseDto) {\n    if (this.auditVisible(data)) {\n      this.openAuditDataModal(data);\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行审核！');\n    }\n  }\n\n  /** 打开审核弹窗 */\n  openAuditDataModal(data: RhBaseDto) {\n    this.auditDto = { OrderId: data.OrderId };\n    this.isShowAuditDataModal = true;\n  }\n\n  /** 关闭审核弹窗 */\n  closeAuditDataModal() {\n    this.auditDto = {};\n    this.isShowAuditDataModal = false;\n  }\n\n  /** 审核接口返回 */\n  onAuditData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('审核出库办理单据成功！');\n      this.closeAuditDataModal();\n      this.getEditData();\n    } else {\n      MsgHelper.ShowWarningModal(`审核出库办理单据失败！${result.Message}`);\n    }\n  }\n\n  /** 删除办理单据 */\n  removeDatas(datas: RhBaseDto[]) {\n    const some = datas.some((f) => !this.isAsCreated(f));\n    if (some) {\n      MsgHelper.ShowWarningMessage('只能删除制单状态的数据！');\n    } else {\n      this.dataLoading = true;\n      this.operator.RemoveProductPickedMaterialTransactOrders(datas as RhSafeAny).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('删除成功！');\n            this.getDatas();\n          } else {\n            MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    }\n  }\n  //#endregion 操作区域结束\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  ></rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                [rhVisibleSetting]=\"visibleSetting\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              ></rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>生产领料办理</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"出库单单头\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button\n                    *ngIf=\"editVisible(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"isShowEditForm = true\"\n                  >\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button\n                    *ngIf=\"isCreated(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"submitDataToAudit(editDto)\"\n                  >\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                  <button *ngIf=\"auditVisible(editDto)\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else detailsDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  [rhVisibleSetting]=\"visibleSetting\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template\n                    rhTemplate=\"OutWarehouseCode\"\n                    let-formgroup\n                    let-setting=\"setting\"\n                    let-hostSetting=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-warehouse-selector\n                          rhInventoryControlSpecialType=\"Warehouse\"\n                          [formControl]=\"formgroup.get('OutWarehouseCode')\"\n                          [rhData]=\"formData\"\n                          [rhFieldData]=\"setting\"\n                          [rhSize]=\"hostSetting?.rhSize\"\n                        >\n                        </rh-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                  <ng-template rhTemplate=\"PlanOrderId\" let-formgroup let-setting=\"setting\" let-formData=\"formData\">\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-production-picking-plan-selector\n                          [formControl]=\"formgroup.get('PlanOrderId')\"\n                          [rhFieldData]=\"setting\"\n                          [rhDisplayMode]=\"1\"\n                          [rhData]=\"formData\"\n                        ></rh-production-picking-plan-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                  <ng-template\n                    rhTemplate=\"SourceOrderId\"\n                    let-formgroup\n                    let-setting=\"setting\"\n                    let-hostSetting=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-production-picking-source-order-selector\n                          *ngIf=\"!isEnableOutPlan; else planSourceTpl\"\n                          [formControl]=\"formgroup.get('SourceOrderId')\"\n                          [rhFieldData]=\"setting\"\n                          [rhDisplayMode]=\"1\"\n                          [rhData]=\"formData\"\n                          [rhDefaultQueryDto]=\"curFactoryQueryDto\"\n                          [rhSingleMode]=\"true\"\n                        >\n                        </rh-production-picking-source-order-selector>\n                        <ng-template #planSourceTpl>\n                          <rh-form-field\n                            [formControl]=\"formgroup.get('SourceOrderId')\"\n                            rhFormType=\"edit\"\n                            [rhFieldData]=\"setting\"\n                            [rhSize]=\"hostSetting?.rhSize\"\n                            [rhData]=\"formData\"\n                          ></rh-form-field>\n                        </ng-template>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"出库单单体\">\n              <rh-product-picking-material-out-handle-details [rhOrder]=\"editDto\" (rhDetailsUpdate)=\"getDetails($event)\">\n              </rh-product-picking-material-out-handle-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"出库单单头\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <button\n                  *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\"\n                  nz-button\n                  nzType=\"primary\"\n                  nzSize=\"small\"\n                  type=\"button\"\n                  (click)=\"auditData(editDto)\"\n                >\n                  <i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n                </button>\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"detailsDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"出库单单体\">\n              <rh-product-picking-material-out-handle-details\n                [rhOrder]=\"editDto\"\n                [rhShowDetail]=\"true\"\n                (rhDetailsUpdate)=\"getDetails($event)\"\n              >\n              </rh-product-picking-material-out-handle-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #detailsDescription>\n  <rh-dynamic-description\n    *ngIf=\"isRefreshDesc\"\n    rhName=\"detailsDescription\"\n    [rhValue]=\"editDto\"\n    [rhVisibleSetting]=\"visibleSetting\"\n  ></rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'出库办理审核'\"\n  [nzVisible]=\"isShowAuditDataModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeAuditDataModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #auditDataForm\n    rhName=\"auditDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"auditDto\"\n    [rhBeforeSubmit]=\"beforeSubmitAudit\"\n    (rhInterfaceDataChange)=\"onAuditData($event)\"\n    (rhClose)=\"closeAuditDataModal()\"\n  >\n    <ng-template rhTemplate=\"IsPass\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-radio-group [formControl]=\"formgroup.get('IsPass')\" (ngModelChange)=\"businessManageSer.isPassChange($event, formgroup)\">\n            <label nz-radio [nzValue]=\"true\">是</label>\n            <label nz-radio [nzValue]=\"false\">否</label>\n          </nz-radio-group>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"AuditMessage\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"!formgroup.get('IsPass').value\"> {{ setting.displayName }}</nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <textarea\n            nz-input\n            [formControl]=\"formgroup.get('AuditMessage')\"\n            [placeholder]=\"setting.placeholder\"\n            [nzAutosize]=\"{ minRows: 2 }\"\n          ></textarea>\n          <div *ngIf=\"editDto?.AuditMessage\">\n            <span style=\"color: #faad14\">上一次审核信息：{{ editDto?.AuditMessage }}</span>\n          </div>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>\n","import { BusinessType } from './../../../business-type';\nimport { ProductReturnedMaterialTransactOrderDetails } from './../../production-business-model';\nimport { RhBusinessManageService } from './../../../business-manage.service';\nimport { RhProductionBusinessService } from './../../production-business.service';\nimport { WarehouseMaterialControlParameter } from './../../../business-manage-model';\nimport { ExtProductionFeedOrderDetailTableFieldDataset, ProductReturnedMaterialInPlanOrderDetailFormInterface, ProductReturnedMaterialInPlanOrderDetailTableFieldDataset } from './../../detail-source-table-config';\nimport { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { DataResultT, OpMode, RhBaseDto, RhSafeAny, RhSelectableDto, RhTableButtonInfoDto } from 'rh-base/model';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport { Observable } from 'rxjs';\nimport * as _ from 'lodash';\n\n@Component({\n  selector: 'rh-product-returned-material-in-handle-details',\n  templateUrl: './product-returned-material-in-handle-details.component.html',\n  styleUrls: ['./product-returned-material-in-handle-details.component.less']\n})\nexport class ProductReturnedMaterialInHandleDetailsComponent implements OnInit {\n  @Input() rhOrder: RhBaseDto;\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter<RhSelectableDto[]>();\n\n  queryDto: RhBaseDto;\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto('deleteDetails', '删除', 'primary', true,'delete', true, null, (datas, buttonInfo) => this.removeDatas(datas as RhSelectableDto[], buttonInfo), false, true),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  isVisibleSettingOver = true;\n  tableVisibleSetting = {};\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  sourceDefaultQueryDto = {};\n  isEnterEditStatus = false;\n  // 计划明细\n  planOrderDetailFormInterface = ProductReturnedMaterialInPlanOrderDetailFormInterface;\n  planOrderDetailTableFieldDataset = ProductReturnedMaterialInPlanOrderDetailTableFieldDataset;\n  planOrderDetailDataset: RhSelectableDto[] = [];\n  // 源单明细\n  sourceDetailTableFieldDataset = ExtProductionFeedOrderDetailTableFieldDataset;\n  sourceDetailDataResult: DataResultT<RhSelectableDto[]>;\n  sourceDetailDataLoading = false;\n  extraButtonDatasetSourceDetail = [\n    new RhTableButtonInfoDto('refreshSourceDetail', '刷新', 'default', false, 'sync', false, null, () => this.getSourceDetailDatas(), true)\n  ];\n  // 仓储数据\n  warehouseDataset: RhSelectableDto[] = [];\n  warehouseAreaDataset: RhSelectableDto[] = [];\n  warehouseShelfDataset: RhSelectableDto[] = [];\n  storageLocationDataset: RhSelectableDto[] = [];\n  // 仓库控制配置参数\n  currentWarehouseMaterialControlPara: WarehouseMaterialControlParameter;\n\n  editDisabled = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return !list.includes(data.OrderStatus);\n  };\n\n  // 配置参数\n  get isEnableInPlan() {\n    return this.businessManageSer.IsEnableInPlan;\n  }\n  // 显示控制\n  get sourceDataModalTitle() {\n    return this.isEnableInPlan ? '选择计划明细数据' : '选择源单明细数据';\n  }\n  get isReadOnlyTable() {\n    return (\n      this.rhShowDetail || !this.rhOrder?.OrderId || this.isEnterEditStatus || this.editDisabled(this.rhOrder)\n    );\n  }\n  get readeOnlyButtonDataset() {\n    if (!this.rhOrder?.OrderId) return [];\n    else if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(\n    private operator: RhProductionBusinessService,\n    public businessManageSer: RhBusinessManageService\n  ) { }\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  async ngOnChanges(changes: SimpleChanges): Promise<void> {\n    const { rhOrder } = changes;\n    if (rhOrder && rhOrder.currentValue && this.rhOrder.OrderId) {\n      // 获取仓库控制配置参数\n      await this.getWarehouseMaterialControlParameter();\n      // 设置表格字段显隐性配置\n      this.isVisibleSettingOver = false;\n      this.initTableVisibleSetting();\n      setTimeout(() => this.isVisibleSettingOver = true);\n      // 获取明细数据\n      if (!rhOrder.previousValue) {\n        this.getDatas();\n      }\n      // 获取仓储数据\n      if (!this.rhShowDetail) {\n        this.getWarehouseInfos();\n      }\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.initInWarehouseVisibleSetting(this.currentWarehouseMaterialControlPara));\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('In'));\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      OrderId: this.rhOrder.OrderId,\n      SourceOrderId: this.rhOrder.SourceOrderId,\n      FactoryCode: this.rhOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetProductReturnedMaterialTransactOrderDetailsDatasBy(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        this.rhDetailsUpdate.emit(this.dataresult?.Attach || []);\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`)\n        } else {\n          if (this.isEnableInPlan) {\n            this.getPlanOrderDetails();\n          }\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (this.editDisabled(this.rhOrder)) {\n      MsgHelper.ShowWarningMessage('当前单据状态无法编辑出库办理明细！');\n      return;\n    }\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach(data => data.OpSign = OpMode.OpEdit);\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    return new Observable(observer => {\n      this.businessManageSer.checkStoreDatas(details, 'In', true).then(checkRes => {\n        if (!checkRes) {\n          observer.error();\n        } else {\n          const dto = {\n            OrderMaster: this.rhOrder,\n            OrderDetails: details\n          };\n          const msg = editType === 'add' ? '新增' : '编辑';\n          this.dataLoading = true;\n          this.operator.StoreProductReturnedMaterialTransactOrderDetails(dto).subscribe((result) => {\n            if (result.Success) {\n              MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`)\n            } else {\n              MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n            }\n            this.dataLoading = false;\n            observer.next();\n            observer.complete();\n          }, () => {\n            this.dataLoading = false;\n            observer.error();\n          })\n        }\n      });\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[], buttonInfo: RhTableButtonInfoDto) {\n    buttonInfo.loading = true;\n    this.operator.RemoveProductReturnedMaterialTransactOrderDetails(details).subscribe((result) => {\n      if (result.Success) {\n        MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n        this.getDatas();\n      } else {\n        MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n      }\n      buttonInfo.loading = false;\n    }, () => buttonInfo.loading = false);\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  async handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    // 获取源单统计信息\n    const convertResult = await this.businessManageSer.convertSourceOrderStatisticsDatasToSelectedDatas(\n      this.rhOrder.SourceOrderId,\n      // this.rhOrder.BusinessType,\n      BusinessType.ProductPickedMaterialOut,\n      details\n    );\n    // 退料一定有源单！\n    if (!convertResult) {\n      return MsgHelper.ShowWarningMessage('找不到对应源单的统计数据！');\n    }\n    const datas = details.map(data => {\n      const temp = ProductReturnedMaterialTransactOrderDetails.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 计划赋值\n      if (this.isEnableInPlan) {\n        temp.PlanOrderId = this.rhOrder.PlanOrderId;\n        temp.SourceReversePlanedQty = data.SourceReversePlanedQty || 0;\n        temp.SourceReturnedQty = data.SourceReturnedQty;\n        temp.PlanTransactedQty = data.PlanTransactedQty || 0;\n        temp.SourceCompletedQty = data.SourceCompletedQty;\n      }\n      // 单头赋值\n      temp.OrderId = this.rhOrder.OrderId;\n      temp.BusinessType = this.rhOrder.BusinessType;\n      if (data.WarehouseCode) {\n        temp.InWarehouseCode = data.WarehouseCode;\n        temp.InWarehouseName = data.WarehouseName;\n      } else {\n        temp.InWarehouseCode = this.rhOrder.InWarehouseCode;\n        temp.InWarehouseName = this.rhOrder.InWarehouseName;\n      }\n      temp.FactoryCode = this.rhOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach(data => data.OpSign = OpMode.OpEdit);\n      }\n      this.dataresult = { Attach: (this.dataresult?.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 启用计划，获取计划明细，用于初始化PlanTransactedQty */\n  getPlanOrderDetails() {\n    const queryDto = {\n      PlanOrderId: this.rhOrder.PlanOrderId,\n      SourceOrderId: this.rhOrder.SourceOrderId,\n      FactoryCode: this.rhOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetProductReturnedMaterialInPlanOrderDetailsDatasBy(queryDto).subscribe(result => {\n      if (result.Success) {\n        this.planOrderDetailDataset = result.Attach;\n        // 初始化办理明细的PlanTransactedQty\n        this.dataresult.Attach.forEach(data => {\n          const item = this.planOrderDetailDataset.find((ele) =>\n            ele.MaterialCode === data.MaterialCode &&\n            ele.SourceOrderId === data.SourceOrderId &&\n            ele.SourceOrderRowNum === data.SourceOrderRowNum);\n          if (item) {\n            data.PlanTransactedQty = item.PlanTransactedQty;\n          } else {\n            data.PlanTransactedQty = null;\n          }\n        });\n        this.dataresult = _.cloneDeep(this.dataresult);\n      } else {\n        this.planOrderDetailDataset = [];\n      }\n    });\n  }\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach(data => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach(data => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  openDataModal() {\n    if (this.isEnableInPlan) {\n      this.sourceDefaultQueryDto = {\n        PlanOrderId: this.rhOrder.PlanOrderId,\n        FactoryCode: this.rhOrder.FactoryCode\n      };\n    } else {\n      // this.sourceDefaultQueryDto = {\n      //   OrderCode: this.rhOrder.SourceOrderId ? `$${this.rhOrder.SourceOrderId}`: null,\n      //   FactoryCode: this.rhOrder.FactoryCode\n      // };\n      this.getSourceDetailDatas();\n    }\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n\n  getSourceDetailDatas() {\n    const queryDto = {\n      PickingOrderCode: this.rhOrder.SourceOrderId ? `$${this.rhOrder.SourceOrderId}` : null,\n      FactoryCode: this.rhOrder.FactoryCode\n    };\n    this.sourceDetailDataLoading = true;\n    this.operator.GetExtProductionFeedOrders(queryDto).subscribe(result => {\n      this.sourceDetailDataResult = null;\n      if (result.Success) {\n        const dataset = result?.Attach || [];\n        if (dataset.length) {\n          const target = dataset[0].FeedDetails || [];\n          // 投料单明细没有领料单号\n          target.forEach(ele => ele.PickingOrderCode = queryDto.PickingOrderCode);\n          this.sourceDetailDataResult = { Attach: target, TotalCount: target.length } as RhSafeAny;\n        }\n      } else {\n        MsgHelper.ShowWarningMessage(`查询无投料单明细数据！${result.Message}`);\n      }\n      this.sourceDetailDataLoading = false;\n    }, () => {\n      this.sourceDetailDataLoading = false;\n    });\n  }\n\n  //#region 仓储相关区域开始\n  /** 根据是否启用，获取对应仓储信息 */\n  getWarehouseInfos() {\n    this.businessManageSer.getWarehouseDataset({}).then(res => {\n      this.warehouseDataset = res || [];\n    }).catch(() => {\n      this.warehouseDataset = [];\n    });\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseArea) {\n      this.businessManageSer.getWarehouseAreaDataset({ WarehouseCode: this.rhOrder.InWarehouseCode }).then(res => {\n        this.warehouseAreaDataset = res || [];\n      }).catch(() => {\n        this.warehouseAreaDataset = [];\n      });\n    }\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseShelf) {\n      this.businessManageSer.getWarehouseShelfDataset({ WarehouseCode: this.rhOrder.InWarehouseCode }).then(res => {\n        this.warehouseShelfDataset = res || [];\n      }).catch(() => {\n        this.warehouseShelfDataset = [];\n      });\n    }\n    if (this.currentWarehouseMaterialControlPara.IsEnableStorageLocation) {\n      this.businessManageSer.getStorageLocationDataset({ WarehouseCode: this.rhOrder.InWarehouseCode }).then(res => {\n        this.storageLocationDataset = res || [];\n      }).catch(() => {\n        this.storageLocationDataset = [];\n      });\n    }\n  }\n\n  /** 获取仓库控制参数配置 */\n  async getWarehouseMaterialControlParameter() {\n    const para = await this.businessManageSer.getWarehouseMaterialControlParameter({\n      WarehouseCode: this.rhOrder.InWarehouseCode\n    });\n    this.currentWarehouseMaterialControlPara = this.businessManageSer.transformWarehouseMaterialControlParameter(para);\n  }\n\n  inWarehouseCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseDataset.find(ele => ele.WarehouseCode === code);\n      if (item) {\n        data.InWarehouseName = item.WarehouseName;\n      } else {\n        data.InWarehouseName = null;\n      }\n    } else {\n      data.InWarehouseName = null;\n    }\n    // 强关联则清空下属字段\n    if (this.currentWarehouseMaterialControlPara.IsStrictCorrelation) {\n      data.InWarehouseAreaCode = null;\n      data.InWarehouseAreaName = null;\n      data.InWarehouseShelfCode = null;\n      data.InWarehouseShelfName = null;\n      data.InStorageLocationCode = null;\n      data.InStorageLocationName = null;\n    }\n  }\n\n  inWarehouseAreaCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseAreaDataset.find(ele => ele.WarehouseAreaCode === code);\n      if (item) {\n        data.InWarehouseAreaName = item.WarehouseAreaName;\n      } else {\n        data.InWarehouseAreaName = null;\n      }\n    } else {\n      data.InWarehouseAreaName = null;\n    }\n    // 强关联则清空下属字段\n    if (this.currentWarehouseMaterialControlPara.IsStrictCorrelation) {\n      data.InWarehouseShelfCode = null;\n      data.InWarehouseShelfName = null;\n      data.InStorageLocationCode = null;\n      data.InStorageLocationName = null;\n    }\n  }\n\n  inWarehouseShelfCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseShelfDataset.find(ele => ele.WarehouseShelfCode === code);\n      if (item) {\n        data.InWarehouseShelfName = item.WarehouseShelfName;\n      } else {\n        data.InWarehouseShelfName = null;\n      }\n    } else {\n      data.InWarehouseShelfName = null;\n    }\n    // 强关联则清空下属字段\n    if (this.currentWarehouseMaterialControlPara.IsStrictCorrelation) {\n      data.InStorageLocationCode = null;\n      data.InStorageLocationName = null;\n    }\n  }\n\n  inStorageLocationCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.storageLocationDataset.find(ele => ele.StorageLocationCode === code);\n      if (item) {\n        data.InStorageLocationName = item.StorageLocationName;\n      } else {\n        data.InStorageLocationName = null;\n      }\n    } else {\n      data.InStorageLocationName = null;\n    }\n  }\n\n  /** 获取库区显示列表，行编辑应用 */\n  getWarehouseAreaDatasetDisplay(data: RhSelectableDto): RhSelectableDto[] {\n    return this.businessManageSer.getWarehouseAreaDatasetDisplay(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      this.warehouseAreaDataset,\n      'In'\n    );\n  }\n\n  /** 获取货架显示列表，行编辑应用 */\n  getWarehouseShelfDatasetDisplay(data: RhSelectableDto): RhSelectableDto[] {\n    return this.businessManageSer.getWarehouseShelfDatasetDisplay(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      this.warehouseShelfDataset,\n      'In'\n    );\n  }\n\n  /** 获取库位显示列表，行编辑应用 */\n  getStorageLocationDatasetDisplay(data: RhSelectableDto): RhSelectableDto[] {\n    return this.businessManageSer.getStorageLocationDatasetDisplay(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      this.storageLocationDataset,\n      'In'\n    );\n  }\n  //#endregion 仓储相关区域结束\n}\n\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isVisibleSettingOver\">\n    <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n      <rh-dynamic-table\n        rhName=\"handleDetailsReadOnlyTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n        <ng-template rhTemplate=\"InWarehouseCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseTpl\">\n            <nz-select\n              [(ngModel)]=\"data.InWarehouseCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"inWarehouseCodeChange($event, data)\"\n            >\n              <nz-option *ngFor=\"let item of warehouseDataset\" [nzLabel]=\"item.WarehouseCode\" [nzValue]=\"item.WarehouseCode\"></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseTpl>{{ data.InWarehouseCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"InWarehouseName\" let-item let-data=\"data\">\n          {{ data.InWarehouseName }}\n        </ng-template>\n        <ng-template rhTemplate=\"InWarehouseAreaCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseAreaTpl\">\n            <nz-select\n              [(ngModel)]=\"data.InWarehouseAreaCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"inWarehouseAreaCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of getWarehouseAreaDatasetDisplay(data)\"\n                [nzLabel]=\"item.WarehouseAreaCode\"\n                [nzValue]=\"item.WarehouseAreaCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseAreaTpl>{{ data.InWarehouseAreaCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"InWarehouseAreaName\" let-item let-data=\"data\">\n          {{ data.InWarehouseAreaName }}\n        </ng-template>\n        <ng-template rhTemplate=\"InWarehouseShelfCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseShelfTpl\">\n            <nz-select\n              [(ngModel)]=\"data.InWarehouseShelfCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"inWarehouseShelfCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of getWarehouseShelfDatasetDisplay(data)\"\n                [nzLabel]=\"item.WarehouseShelfCode\"\n                [nzValue]=\"item.WarehouseShelfCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseShelfTpl>{{ data.InWarehouseShelfCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"InWarehouseShelfName\" let-item let-data=\"data\">\n          {{ data.InWarehouseShelfName }}\n        </ng-template>\n        <ng-template rhTemplate=\"InStorageLocationCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else storageLocationTpl\">\n            <nz-select\n              [(ngModel)]=\"data.InStorageLocationCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"inStorageLocationCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of getStorageLocationDatasetDisplay(data)\"\n                [nzLabel]=\"item.StorageLocationCode\"\n                [nzValue]=\"item.StorageLocationCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #storageLocationTpl>{{ data.InStorageLocationCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"InStorageLocationName\" let-item let-data=\"data\">\n          {{ data.InStorageLocationName }}\n        </ng-template>\n        <ng-template rhTemplate=\"SN\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else SNTpl\">\n            <input\n              nz-input\n              [(ngModel)]=\"data.SN\"\n              [placeholder]=\"item?.displayName\"\n              [ngStyle]=\"{ border: !data.SN && currentWarehouseMaterialControlPara.IsEnableSN ? '1px solid red' : '1px solid #d9d9d9' }\"\n            />\n            <p style=\"color: red; margin-bottom: 0\" *ngIf=\"!data.SN && currentWarehouseMaterialControlPara.IsEnableSN\">请输入条码</p>\n          </ng-container>\n          <ng-template #SNTpl>{{ data.SN }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"ProductionDate\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else ProDateTpl\">\n            <nz-date-picker\n              nz-input\n              [(ngModel)]=\"data.ProductionDate\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              [ngStyle]=\"{\n                border:\n                  !data.ProductionDate && currentWarehouseMaterialControlPara.IsEnableExpirationDate ? '1px solid red' : '1px solid #d9d9d9'\n              }\"\n            ></nz-date-picker>\n            <p\n              style=\"color: red; margin-bottom: 0\"\n              *ngIf=\"!data.ProductionDate && currentWarehouseMaterialControlPara.IsEnableExpirationDate\"\n            >\n              请输入生产日期\n            </p>\n          </ng-container>\n          <ng-template #ProDateTpl>{{ data.ProductionDate | date : 'yyyy-MM-dd' }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"LotNum\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else LotNumTpl\">\n            <input\n              nz-input\n              [(ngModel)]=\"data.LotNum\"\n              [placeholder]=\"item?.displayName\"\n              [ngStyle]=\"{\n                border: !data.LotNum && currentWarehouseMaterialControlPara.IsEnableLotNum ? '1px solid red' : '1px solid #d9d9d9'\n              }\"\n            />\n            <p style=\"color: red; margin-bottom: 0\" *ngIf=\"!data.LotNum && currentWarehouseMaterialControlPara.IsEnableLotNum\">\n              请输入批次号\n            </p>\n          </ng-container>\n          <ng-template #LotNumTpl>{{ data.LotNum }}</ng-template>\n        </ng-template>\n      </rh-dynamic-table>\n    </ng-container>\n    <ng-template #handleTpl>\n      <rh-dynamic-table\n        rhName=\"handleDetailsTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n      </rh-dynamic-table>\n    </ng-template>\n  </ng-container>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"sourceDataModalTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div *ngIf=\"isShowDataModal\">\n      <rh-dynamic-single-table\n        *ngIf=\"isEnableInPlan; else sourceDetailsTpl\"\n        rhName=\"planOrderDetailTable\"\n        [rhInterfaceInfo]=\"planOrderDetailFormInterface\"\n        [rhDefaultFieldDataset]=\"planOrderDetailTableFieldDataset\"\n        [rhPara]=\"sourceDefaultQueryDto\"\n        (rhSelectedDatasChange)=\"onSelectModal($event)\"\n      ></rh-dynamic-single-table>\n      <ng-template #sourceDetailsTpl>\n        <!-- <rh-dynamic-single-table\n          rhName=\"sourceOrderDetailTable\"\n          [rhInterfaceInfo]=\"sourceOrderDetailFormInterface\"\n          [rhDefaultFieldDataset]=\"sourceOrderDetailTableFieldDataset\"\n          [rhPara]=\"sourceDefaultQueryDto\"\n          (rhSelectedDatasChange)=\"onSelectModal($event)\"\n        ></rh-dynamic-single-table> -->\n        <rh-dynamic-table\n          rhName=\"sourceOrderDetailTable\"\n          [rhTableData]=\"sourceDetailDataResult\"\n          [rhTableDataloading]=\"sourceDetailDataLoading\"\n          [rhDefaultFieldDataset]=\"sourceDetailTableFieldDataset\"\n          [rhSingleMode]=\"false\"\n          (rhSelectedDatasChange)=\"onSelectModal($event)\"\n        ></rh-dynamic-table>\n      </ng-template>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { RhSharedManageService } from './../../../shared-manage/shared-manage.service';\nimport { RhBusinessManageService } from './../../business-manage.service';\nimport { RhProductionBusinessService } from './../production-business.service';\nimport { BusinessType } from './../../business-type';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\nimport { CodeClassModel, DataResultT, OpMode, OpResult, RhBaseDto, RhDynamicTableFieldDto, RhLoginedUserDto, RhSafeAny, RhSelectableDto, RhTableButtonInfoDto, RhTableQueryOptionDto } from 'rh-base/model';\nimport { DynamicFormComponent } from 'rh-base/shared';\n\ntype TabType = 'edit' | 'detail' | 'audit';\n\n@Component({\n  selector: 'rh-product-returned-material-in-handle',\n  templateUrl: './product-returned-material-in-handle.component.html',\n  styleUrls: ['./product-returned-material-in-handle.component.less']\n})\nexport class RhProductReturnedMaterialInHandleComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  BusinessType = BusinessType.ProductReturnedMaterialIn;\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n  /** 显示配置 */\n  visibleSetting = {};\n  /** 单据明细数据，审核需要 */\n  orderDetails: RhSelectableDto[] = [];\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  isAsCreated = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n\n  get isEnableInPlan() {\n    return this.businessManageSer.IsEnableInPlan;\n  }\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto)),\n    new RhTableButtonInfoDto('submit', '提交审核', 'default', false, 'form', false, null, (data) => this.submitDataToAudit(data as RhBaseDto)),\n    new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) =>\n      this.openDetailTab({ data } as RhBaseDto, 'audit')\n    )\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '入库办理', 'primary', false, 'file', false, null, () => this.openEditTab(), true, true)\n  ];\n\n  beforeSubmit = async (data: RhBaseDto, context: DynamicFormComponent) => {\n    let result: OpResult = null;\n    const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n    context.submitLoading = true;\n    try {\n      if (this.editDto.OpSign === OpMode.OpAdd) {\n        // 基本信息\n        data.BusinessType = this.BusinessType;\n        data.OrderCreatorCode = this.currentUser.DisplayName;\n        data.OrderCreatorName = this.currentUser.UserName;\n\n        result = await this.operator.CreateProductReturnedMaterialTransactMasterOrder(data).toPromise();\n      } else {\n        result = await this.operator.UpdateProductReturnedMaterialTransactMasterOrder(data).toPromise();\n      }\n      if (result && result.Success) {\n        MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n        this.editDto.OrderId = result?.Attach?.OrderId;\n        this.isShowEditForm = false;\n        this.getEditData();\n      } else {\n        MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n      }\n    } catch (error) {\n      //\n    } finally {\n      context.submitLoading = false;\n    }\n\n    return false;\n  };\n\n  beforeSubmitAudit = (data: RhBaseDto) => {\n    if (!data.IsPass && !data.AuditMessage) {\n      MsgHelper.ShowWarningMessage('审核不通过，必须填写审核信息！');\n      return;\n    }\n    // 基本信息\n    data.OrderMaster = this.editDto;\n    data.OrderDetails = this.orderDetails;\n    data.Auditor = this.currentUser.DisplayName;\n    data.AuditorId = this.currentUser.UserName;\n\n    return true;\n  };\n\n  constructor(\n    private operator: RhProductionBusinessService,\n    public businessManageSer: RhBusinessManageService,\n    public storage: RhStorageService,\n    public sharedManageSer: RhSharedManageService\n  ) { }\n\n  ngOnInit(): void {\n    this.setUserInfo();\n    this.initEditButtonVisible();\n    this.initVisibleSetting();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  initEditButtonVisible() {\n    this.editButtonDataset[0].visible = this.editVisible.toString();\n    this.editButtonDataset[1].visible = this.isCreated.toString();\n    this.editButtonDataset[2].visible = this.auditVisible.toString();\n  }\n\n  initVisibleSetting() {\n    Object.assign(this.visibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('In'));\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {\n        TransactorCode: this.currentUser.UserName,\n        TransactorName: this.currentUser.DisplayName,\n        FactoryCode: this.currentUser.FactoryCode\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.editDto = null;\n    this.selectedIndex = 0;\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.selectedIndex = 1;\n  }\n\n  // 明细变化后\n  getDetails(details: RhSelectableDto[]) {\n    this.orderDetails = details;\n  }\n\n  getEditData() {\n    const queryDto = { OrderId: this.editDto.OrderId };\n    this.operator.GetProductReturnedMaterialTransactOrderDatas(queryDto).subscribe((result) => {\n      if (result.Success && result.Attach.length === 1) {\n        this.editDto = result.Attach[0];\n        this.editDto.OpSign = OpMode.OpEdit;\n      }\n    });\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    } else if (index === 1) {\n      this.orderDetails = [];\n    }\n  }\n\n  //#region 操作区域开始\n  /** 提交审核 */\n  submitDataToAudit(data: RhBaseDto) {\n    if (this.isCreated(data)) {\n      const dto = { OrderId: data.OrderId };\n      this.dataLoading = true;\n      this.operator.SumbitAuditProductReturnedMaterialTransactOrder(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('提交审核成功！');\n            if (this.selectedIndex === 0) this.getDatas();\n            this.closeEditTab();\n          } else {\n            MsgHelper.ShowWarningMessage(`提交审核失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行提交审核！');\n    }\n  }\n\n  /** 审核 */\n  auditData(data: RhBaseDto) {\n    if (this.auditVisible(data)) {\n      this.openAuditDataModal(data);\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行审核！');\n    }\n  }\n\n  /** 打开审核弹窗 */\n  openAuditDataModal(data: RhBaseDto) {\n    this.auditDto = { OrderId: data.OrderId };\n    this.isShowAuditDataModal = true;\n  }\n\n  /** 关闭审核弹窗 */\n  closeAuditDataModal() {\n    this.auditDto = {};\n    this.isShowAuditDataModal = false;\n  }\n\n  /** 审核接口返回 */\n  onAuditData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('审核入库办理单据成功！');\n      this.closeAuditDataModal();\n      this.getEditData();\n    } else {\n      MsgHelper.ShowWarningModal(`审核入库办理单据失败！${result.Message}`);\n    }\n  }\n\n  /** 删除办理单据 */\n  removeDatas(datas: RhBaseDto[]) {\n    const some = datas.some((f) => !this.isAsCreated(f));\n    if (some) {\n      MsgHelper.ShowWarningMessage('只能删除制单状态的数据！');\n    } else {\n      this.dataLoading = true;\n      this.operator.RemoveProductReturnedMaterialTransactOrders(datas as RhSafeAny).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('删除成功！');\n            this.getDatas();\n          } else {\n            MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    }\n  }\n  //#endregion 操作区域结束\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n\n}\n\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  ></rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                [rhVisibleSetting]=\"visibleSetting\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              ></rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>生产退料办理</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"入库单单头\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button\n                    *ngIf=\"editVisible(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"isShowEditForm = true\"\n                  >\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button\n                    *ngIf=\"isCreated(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"submitDataToAudit(editDto)\"\n                  >\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                  <button *ngIf=\"auditVisible(editDto)\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else detailsDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  [rhVisibleSetting]=\"visibleSetting\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template\n                    rhTemplate=\"InWarehouseCode\"\n                    let-formgroup\n                    let-setting=\"setting\"\n                    let-hostSetting=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-warehouse-selector\n                          rhInventoryControlSpecialType=\"Warehouse\"\n                          [formControl]=\"formgroup.get('InWarehouseCode')\"\n                          [rhData]=\"formData\"\n                          [rhFieldData]=\"setting\"\n                          [rhSize]=\"hostSetting?.rhSize\"\n                        >\n                        </rh-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                  <ng-template rhTemplate=\"PlanOrderId\" let-formgroup let-setting=\"setting\" let-formData=\"formData\">\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-return-warehousing-plan-selector\n                          [formControl]=\"formgroup.get('PlanOrderId')\"\n                          [rhFieldData]=\"setting\"\n                          [rhDisplayMode]=\"1\"\n                          [rhData]=\"formData\"\n                        ></rh-return-warehousing-plan-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                  <ng-template\n                    rhTemplate=\"SourceOrderId\"\n                    let-formgroup\n                    let-setting=\"setting\"\n                    let-hostSetting=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-return-warehousing-source-order-selector\n                          *ngIf=\"!isEnableInPlan; else planSourceTpl\"\n                          [formControl]=\"formgroup.get('SourceOrderId')\"\n                          [rhFieldData]=\"setting\"\n                          [rhDisplayMode]=\"1\"\n                          [rhData]=\"formData\"\n                          [rhDefaultQueryDto]=\"curFactoryQueryDto\"\n                          [rhSingleMode]=\"true\"\n                        >\n                        </rh-return-warehousing-source-order-selector>\n                        <ng-template #planSourceTpl>\n                          <rh-form-field\n                            [formControl]=\"formgroup.get('SourceOrderId')\"\n                            rhFormType=\"edit\"\n                            [rhFieldData]=\"setting\"\n                            [rhSize]=\"hostSetting?.rhSize\"\n                            [rhData]=\"formData\"\n                          ></rh-form-field>\n                        </ng-template>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"入库单单体\">\n              <rh-product-returned-material-in-handle-details [rhOrder]=\"editDto\" (rhDetailsUpdate)=\"getDetails($event)\">\n              </rh-product-returned-material-in-handle-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"入库单单头\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <button\n                  *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\"\n                  nz-button\n                  nzType=\"primary\"\n                  nzSize=\"small\"\n                  type=\"button\"\n                  (click)=\"auditData(editDto)\"\n                >\n                  <i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n                </button>\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"detailsDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"入库单单体\">\n              <rh-product-returned-material-in-handle-details\n                [rhOrder]=\"editDto\"\n                [rhShowDetail]=\"true\"\n                (rhDetailsUpdate)=\"getDetails($event)\"\n              >\n              </rh-product-returned-material-in-handle-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #detailsDescription>\n  <rh-dynamic-description\n    *ngIf=\"isRefreshDesc\"\n    rhName=\"detailsDescription\"\n    [rhValue]=\"editDto\"\n    [rhVisibleSetting]=\"visibleSetting\"\n  ></rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'入库办理审核'\"\n  [nzVisible]=\"isShowAuditDataModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeAuditDataModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #auditDataForm\n    rhName=\"auditDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"auditDto\"\n    [rhBeforeSubmit]=\"beforeSubmitAudit\"\n    (rhInterfaceDataChange)=\"onAuditData($event)\"\n    (rhClose)=\"closeAuditDataModal()\"\n  >\n    <ng-template rhTemplate=\"IsPass\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-radio-group [formControl]=\"formgroup.get('IsPass')\" (ngModelChange)=\"businessManageSer.isPassChange($event, formgroup)\">\n            <label nz-radio [nzValue]=\"true\">是</label>\n            <label nz-radio [nzValue]=\"false\">否</label>\n          </nz-radio-group>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"AuditMessage\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"!formgroup.get('IsPass').value\"> {{ setting.displayName }}</nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <textarea\n            nz-input\n            [formControl]=\"formgroup.get('AuditMessage')\"\n            [placeholder]=\"setting.placeholder\"\n            [nzAutosize]=\"{ minRows: 2 }\"\n          ></textarea>\n          <div *ngIf=\"editDto?.AuditMessage\">\n            <span style=\"color: #faad14\">上一次审核信息：{{ editDto?.AuditMessage }}</span>\n          </div>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>\n","import { ProductCompletedInTransactOrderDetails } from './../../production-business-model';\nimport { RhBusinessManageService } from './../../../business-manage.service';\nimport { RhProductionBusinessService } from './../../production-business.service';\nimport { WarehouseMaterialControlParameter } from './../../../business-manage-model';\nimport { ProductCompletedInPlanOrderDetailFormInterface, ProductCompletedInPlanOrderDetailTableFieldDataset, ProductCompletedInSourceOrderDetailFormInterface, ProductCompletedInSourceOrderDetailTableFieldDataset } from './../../detail-source-table-config';\nimport { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { DataResultT, OpMode, RhBaseDto, RhSafeAny, RhSelectableDto, RhTableButtonInfoDto } from 'rh-base/model';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport { Observable } from 'rxjs';\nimport * as _ from 'lodash';\n\n@Component({\n  selector: 'rh-production-in-handle-details',\n  templateUrl: './production-in-handle-details.component.html',\n  styleUrls: ['./production-in-handle-details.component.less']\n})\nexport class ProductionInHandleDetailsComponent implements OnInit {\n  @Input() rhOrder: RhBaseDto;\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter<RhSelectableDto[]>();\n\n  queryDto: RhBaseDto;\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto('deleteDetails', '删除', 'primary', true,'delete', true, null, (datas, buttonInfo) => this.removeDatas(datas as RhSelectableDto[], buttonInfo), false, true),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  isVisibleSettingOver = true;\n  tableVisibleSetting = {};\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  sourceDefaultQueryDto = {};\n  isEnterEditStatus = false;\n  // 计划明细\n  planOrderDetailFormInterface = ProductCompletedInPlanOrderDetailFormInterface;\n  planOrderDetailTableFieldDataset = ProductCompletedInPlanOrderDetailTableFieldDataset;\n  planOrderDetailDataset: RhSelectableDto[] = [];\n  // 源单明细\n  sourceOrderDetailFormInterface = ProductCompletedInSourceOrderDetailFormInterface;\n  sourceOrderDetailTableFieldDataset = ProductCompletedInSourceOrderDetailTableFieldDataset;\n  // 仓储数据\n  warehouseAreaDataset: RhSelectableDto[] = [];\n  warehouseShelfDataset: RhSelectableDto[] = [];\n  storageLocationDataset: RhSelectableDto[] = [];\n  // 仓库控制配置参数\n  currentWarehouseMaterialControlPara: WarehouseMaterialControlParameter;\n\n  editDisabled = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return !list.includes(data.OrderStatus);\n  };\n\n  // 配置参数\n  get isEnableInPlan() {\n    return this.businessManageSer.IsEnableInPlan;\n  }\n  // 显示控制\n  get sourceDataModalTitle() {\n    return this.isEnableInPlan ? '选择计划明细数据' : '选择源单明细数据';\n  }\n  get isReadOnlyTable() {\n    return (\n      this.rhShowDetail || !this.rhOrder?.OrderId || this.isEnterEditStatus || this.editDisabled(this.rhOrder)\n    );\n  }\n  get readeOnlyButtonDataset() {\n    if (!this.rhOrder?.OrderId) return [];\n    else if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(\n    private operator: RhProductionBusinessService,\n    public businessManageSer: RhBusinessManageService\n  ) { }\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  async ngOnChanges(changes: SimpleChanges): Promise<void> {\n    const { rhOrder } = changes;\n    if (rhOrder && rhOrder.currentValue && this.rhOrder.OrderId) {\n      // 获取仓库控制配置参数\n      await this.getWarehouseMaterialControlParameter();\n      // 设置表格字段显隐性配置\n      this.isVisibleSettingOver = false;\n      this.initTableVisibleSetting();\n      setTimeout(() => this.isVisibleSettingOver = true);\n      // 获取明细数据\n      if (!rhOrder.previousValue) {\n        this.getDatas();\n      }\n      // 获取仓储数据\n      if (!this.rhShowDetail) {\n        this.getWarehouseInfos();\n      }\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.initInWarehouseVisibleSetting(this.currentWarehouseMaterialControlPara));\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('In'));\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      OrderId: this.rhOrder.OrderId,\n      SourceOrderId: this.rhOrder.SourceOrderId,\n      FactoryCode: this.rhOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetProductCompletedInTransactOrderDetailsDatasBy(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        this.rhDetailsUpdate.emit(this.dataresult?.Attach || []);\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`)\n        } else {\n          if (this.isEnableInPlan) {\n            this.getPlanOrderDetails();\n          }\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (this.editDisabled(this.rhOrder)) {\n      MsgHelper.ShowWarningMessage('当前单据状态无法编辑出库办理明细！');\n      return;\n    }\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach(data => data.OpSign = OpMode.OpEdit);\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    return new Observable(observer => {\n      this.businessManageSer.checkStoreDatas(details, 'In').then(checkRes => {\n        if (!checkRes) {\n          observer.error();\n        } else {\n          const dto = {\n            OrderMaster: this.rhOrder,\n            OrderDetails: details\n          };\n          const msg = editType === 'add' ? '新增' : '编辑';\n          this.dataLoading = true;\n          this.operator.StoreProductCompletedInTransactOrderDetails(dto).subscribe((result) => {\n            if (result.Success) {\n              MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`)\n            } else {\n              MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n            }\n            this.dataLoading = false;\n            observer.next();\n            observer.complete();\n          }, () => {\n            this.dataLoading = false;\n            observer.error();\n          })\n        }\n      });\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[], buttonInfo: RhTableButtonInfoDto) {\n    buttonInfo.loading = true;\n    this.operator.RemoveProductCompletedInTransactOrderDetails(details).subscribe((result) => {\n      if (result.Success) {\n        MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n        this.getDatas();\n      } else {\n        MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n      }\n      buttonInfo.loading = false;\n    }, () => buttonInfo.loading = false);\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  async handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    // 获取源单统计信息\n    const convertResult = await this.businessManageSer.convertSourceOrderStatisticsDatasToSelectedDatas(\n      this.rhOrder.SourceOrderId,\n      this.rhOrder.BusinessType,\n      details\n    );\n    const datas = details.map(data => {\n      const temp = ProductCompletedInTransactOrderDetails.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 源单赋值\n      if (this.isEnableInPlan) {\n        temp.PlanOrderId = this.rhOrder.PlanOrderId;\n        temp.SourcePlannedQty = data.SourcePlannedQty || 0;\n        temp.PlanTransactedQty = data.PlanTransactedQty || 0;\n        temp.SourceTransactedQty = data.SourceCompletedQty;\n      } else {\n        if (!convertResult) {\n          // temp.SourceOrderId = data.ProductionPlanCode;\n          temp.SourceOrderId = this.rhOrder.SourceOrderId;\n          temp.SourceOrderQty = data.PlanQty;\n          temp.SourceTransactedQty = data.InWarehouseQty;\n        }\n        temp.MaterialCode = data.ProductCode;\n        temp.MaterialName = data.ProductName;\n        temp.MaterialSpecification = data.ProductSpecification;\n      }\n      // 单头赋值\n      temp.OrderId = this.rhOrder.OrderId;\n      temp.BusinessType = this.rhOrder.BusinessType;\n      temp.InWarehouseCode = this.rhOrder.InWarehouseCode;\n      temp.InWarehouseName = this.rhOrder.InWarehouseName;\n      temp.FactoryCode = this.rhOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      // \n      // temp.PlanQty = 0;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach(data => data.OpSign = OpMode.OpEdit);\n      }\n      this.dataresult = { Attach: (this.dataresult?.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 启用计划，获取计划明细，用于初始化PlanTransactedQty */\n  getPlanOrderDetails() {\n    const queryDto = {\n      PlanOrderId: this.rhOrder.PlanOrderId,\n      SourceOrderId: this.rhOrder.SourceOrderId,\n      FactoryCode: this.rhOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetProductCompletedInPlanOrderDetailsDatasBy(queryDto).subscribe(result => {\n      if (result.Success) {\n        this.planOrderDetailDataset = result.Attach;\n        // 初始化办理明细的PlanTransactedQty\n        this.dataresult.Attach.forEach(data => {\n          const item = this.planOrderDetailDataset.find((ele) =>\n            ele.MaterialCode === data.MaterialCode &&\n            ele.SourceOrderId === data.SourceOrderId &&\n            ele.SourceOrderRowNum === data.SourceOrderRowNum);\n          if (item) {\n            data.PlanTransactedQty = item.PlanTransactedQty;\n          } else {\n            data.PlanTransactedQty = null;\n          }\n        });\n        this.dataresult = _.cloneDeep(this.dataresult);\n      } else {\n        this.planOrderDetailDataset = [];\n      }\n    });\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach(data => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach(data => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  openDataModal() {\n    if (this.isEnableInPlan) {\n      this.sourceDefaultQueryDto = {\n        PlanOrderId: this.rhOrder.PlanOrderId,\n        FactoryCode: this.rhOrder.FactoryCode\n      };\n    } else {\n      this.sourceDefaultQueryDto = {\n        ProductionPlanCode: this.rhOrder.SourceOrderId ? `$${this.rhOrder.SourceOrderId}` : null,\n        Mode: 8,\n        FactoryCode: this.rhOrder.FactoryCode\n      };\n    }\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n\n  //#region 仓储相关区域开始\n  /** 根据是否启用，获取对应仓储信息 */\n  getWarehouseInfos() {\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseArea) {\n      this.businessManageSer.getWarehouseAreaDataset({ WarehouseCode: this.rhOrder.InWarehouseCode }).then(res => {\n        this.warehouseAreaDataset = res || [];\n      }).catch(() => {\n        this.warehouseAreaDataset = [];\n      });\n    }\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseShelf) {\n      this.businessManageSer.getWarehouseShelfDataset({ WarehouseCode: this.rhOrder.InWarehouseCode }).then(res => {\n        this.warehouseShelfDataset = res || [];\n      }).catch(() => {\n        this.warehouseShelfDataset = [];\n      });\n    }\n    if (this.currentWarehouseMaterialControlPara.IsEnableStorageLocation) {\n      this.businessManageSer.getStorageLocationDataset({ WarehouseCode: this.rhOrder.InWarehouseCode }).then(res => {\n        this.storageLocationDataset = res || [];\n      }).catch(() => {\n        this.storageLocationDataset = [];\n      });\n    }\n  }\n\n  /** 获取仓库控制参数配置 */\n  async getWarehouseMaterialControlParameter() {\n    const para = await this.businessManageSer.getWarehouseMaterialControlParameter({\n      WarehouseCode: this.rhOrder.InWarehouseCode\n    });\n    this.currentWarehouseMaterialControlPara = this.businessManageSer.transformWarehouseMaterialControlParameter(para);\n  }\n\n  inWarehouseAreaCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseAreaDataset.find(ele => ele.WarehouseAreaCode === code);\n      if (item) {\n        data.InWarehouseAreaName = item.WarehouseAreaName;\n      } else {\n        data.InWarehouseAreaName = null;\n      }\n    } else {\n      data.InWarehouseAreaName = null;\n    }\n    // 强关联则清空下属字段\n    if (this.currentWarehouseMaterialControlPara.IsStrictCorrelation) {\n      data.InWarehouseShelfCode = null;\n      data.InWarehouseShelfName = null;\n      data.InStorageLocationCode = null;\n      data.InStorageLocationName = null;\n    }\n  }\n\n  inWarehouseShelfCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseShelfDataset.find(ele => ele.WarehouseShelfCode === code);\n      if (item) {\n        data.InWarehouseShelfName = item.WarehouseShelfName;\n      } else {\n        data.InWarehouseShelfName = null;\n      }\n    } else {\n      data.InWarehouseShelfName = null;\n    }\n    // 强关联则清空下属字段\n    if (this.currentWarehouseMaterialControlPara.IsStrictCorrelation) {\n      data.InStorageLocationCode = null;\n      data.InStorageLocationName = null;\n    }\n  }\n\n  inStorageLocationCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.storageLocationDataset.find(ele => ele.StorageLocationCode === code);\n      if (item) {\n        data.InStorageLocationName = item.StorageLocationName;\n      } else {\n        data.InStorageLocationName = null;\n      }\n    } else {\n      data.InStorageLocationName = null;\n    }\n  }\n\n  /** 获取货架显示列表，行编辑应用 */\n  getWarehouseShelfDatasetDisplay(data: RhSelectableDto): RhSelectableDto[] {\n    return this.businessManageSer.getWarehouseShelfDatasetDisplay(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      this.warehouseShelfDataset,\n      'In'\n    );\n  }\n\n  /** 获取库位显示列表，行编辑应用 */\n  getStorageLocationDatasetDisplay(data: RhSelectableDto): RhSelectableDto[] {\n    return this.businessManageSer.getStorageLocationDatasetDisplay(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      this.storageLocationDataset,\n      'In'\n    );\n  }\n  //#endregion 仓储相关区域结束\n}\n\n\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isVisibleSettingOver\">\n    <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n      <rh-dynamic-table\n        rhName=\"handleDetailsReadOnlyTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n        <ng-template rhTemplate=\"InWarehouseAreaCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseAreaTpl\">\n            <nz-select\n              [(ngModel)]=\"data.InWarehouseAreaCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"inWarehouseAreaCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of warehouseAreaDataset\"\n                [nzLabel]=\"item.WarehouseAreaCode\"\n                [nzValue]=\"item.WarehouseAreaCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseAreaTpl>{{ data.InWarehouseAreaCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"InWarehouseAreaName\" let-item let-data=\"data\">\n          {{ data.InWarehouseAreaName }}\n        </ng-template>\n        <ng-template rhTemplate=\"InWarehouseShelfCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseShelfTpl\">\n            <nz-select\n              [(ngModel)]=\"data.InWarehouseShelfCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"inWarehouseShelfCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of getWarehouseShelfDatasetDisplay(data)\"\n                [nzLabel]=\"item.WarehouseShelfCode\"\n                [nzValue]=\"item.WarehouseShelfCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseShelfTpl>{{ data.InWarehouseShelfCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"InWarehouseShelfName\" let-item let-data=\"data\">\n          {{ data.InWarehouseShelfName }}\n        </ng-template>\n        <ng-template rhTemplate=\"InStorageLocationCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else storageLocationTpl\">\n            <nz-select\n              [(ngModel)]=\"data.InStorageLocationCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"inStorageLocationCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of getStorageLocationDatasetDisplay(data)\"\n                [nzLabel]=\"item.StorageLocationCode\"\n                [nzValue]=\"item.StorageLocationCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #storageLocationTpl>{{ data.InStorageLocationCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"InStorageLocationName\" let-item let-data=\"data\">\n          {{ data.InStorageLocationName }}\n        </ng-template>\n        <ng-template rhTemplate=\"SN\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else SNTpl\">\n            <input\n              nz-input\n              [(ngModel)]=\"data.SN\"\n              [placeholder]=\"item?.displayName\"\n              [ngStyle]=\"{ border: !data.SN && currentWarehouseMaterialControlPara.IsEnableSN ? '1px solid red' : '1px solid #d9d9d9' }\"\n            />\n            <p style=\"color: red; margin-bottom: 0\" *ngIf=\"!data.SN && currentWarehouseMaterialControlPara.IsEnableSN\">请输入条码</p>\n          </ng-container>\n          <ng-template #SNTpl>{{ data.SN }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"ProductionDate\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else ProDateTpl\">\n            <nz-date-picker\n              nz-input\n              [(ngModel)]=\"data.ProductionDate\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              [ngStyle]=\"{\n                border:\n                  !data.ProductionDate && currentWarehouseMaterialControlPara.IsEnableExpirationDate ? '1px solid red' : '1px solid #d9d9d9'\n              }\"\n            ></nz-date-picker>\n            <p\n              style=\"color: red; margin-bottom: 0\"\n              *ngIf=\"!data.ProductionDate && currentWarehouseMaterialControlPara.IsEnableExpirationDate\"\n            >\n              请输入生产日期\n            </p>\n          </ng-container>\n          <ng-template #ProDateTpl>{{ data.ProductionDate | date : 'yyyy-MM-dd' }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"LotNum\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else LotNumTpl\">\n            <input\n              nz-input\n              [(ngModel)]=\"data.LotNum\"\n              [placeholder]=\"item?.displayName\"\n              [ngStyle]=\"{\n                border: !data.LotNum && currentWarehouseMaterialControlPara.IsEnableLotNum ? '1px solid red' : '1px solid #d9d9d9'\n              }\"\n            />\n            <p style=\"color: red; margin-bottom: 0\" *ngIf=\"!data.LotNum && currentWarehouseMaterialControlPara.IsEnableLotNum\">\n              请输入批次号\n            </p>\n          </ng-container>\n          <ng-template #LotNumTpl>{{ data.LotNum }}</ng-template>\n        </ng-template>\n      </rh-dynamic-table>\n    </ng-container>\n    <ng-template #handleTpl>\n      <rh-dynamic-table\n        rhName=\"handleDetailsTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n      </rh-dynamic-table>\n    </ng-template>\n  </ng-container>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"sourceDataModalTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div *ngIf=\"isShowDataModal\">\n      <rh-dynamic-single-table\n        *ngIf=\"isEnableInPlan; else sourceDetailsTpl\"\n        rhName=\"planOrderDetailTable\"\n        [rhInterfaceInfo]=\"planOrderDetailFormInterface\"\n        [rhDefaultFieldDataset]=\"planOrderDetailTableFieldDataset\"\n        [rhPara]=\"sourceDefaultQueryDto\"\n        (rhSelectedDatasChange)=\"onSelectModal($event)\"\n      ></rh-dynamic-single-table>\n      <ng-template #sourceDetailsTpl>\n        <rh-dynamic-single-table\n          rhName=\"sourceOrderDetailTable\"\n          [rhInterfaceInfo]=\"sourceOrderDetailFormInterface\"\n          [rhDefaultFieldDataset]=\"sourceOrderDetailTableFieldDataset\"\n          [rhPara]=\"sourceDefaultQueryDto\"\n          (rhSelectedDatasChange)=\"onSelectModal($event)\"\n        ></rh-dynamic-single-table>\n      </ng-template>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { RhSharedManageService } from './../../../shared-manage/shared-manage.service';\nimport { RhBusinessManageService } from './../../business-manage.service';\nimport { RhProductionBusinessService } from './../production-business.service';\nimport { BusinessType } from './../../business-type';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\nimport { CodeClassModel, DataResultT, OpMode, OpResult, RhBaseDto, RhDynamicTableFieldDto, RhLoginedUserDto, RhSafeAny, RhSelectableDto, RhTableButtonInfoDto, RhTableQueryOptionDto } from 'rh-base/model';\nimport { DynamicFormComponent } from 'rh-base/shared';\n\ntype TabType = 'edit' | 'detail' | 'audit';\n\n@Component({\n  selector: 'rh-production-in-handle',\n  templateUrl: './production-in-handle.component.html',\n  styleUrls: ['./production-in-handle.component.less']\n})\nexport class RhProductionInHandleComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  BusinessType = BusinessType.ProductCompletedIn;\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n  /** 显示配置 */\n  visibleSetting = {};\n  /** 单据明细数据，审核需要 */\n  orderDetails: RhSelectableDto[] = [];\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  isAsCreated = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n\n  get isEnableInPlan() {\n    return this.businessManageSer.IsEnableInPlan;\n  }\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto)),\n    new RhTableButtonInfoDto('submit', '提交审核', 'default', false, 'form', false, null, (data) => this.submitDataToAudit(data as RhBaseDto)),\n    new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) =>\n      this.openDetailTab({ data } as RhBaseDto, 'audit')\n    )\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '入库办理', 'primary', false, 'file', false, null, () => this.openEditTab(), true, true)\n  ];\n\n  beforeSubmit = async (data: RhBaseDto, context: DynamicFormComponent) => {\n    let result: OpResult = null;\n    const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n    context.submitLoading = true;\n    try {\n      if (this.editDto.OpSign === OpMode.OpAdd) {\n        // 基本信息\n        data.BusinessType = this.BusinessType;\n        data.OrderCreatorCode = this.currentUser.DisplayName;\n        data.OrderCreatorName = this.currentUser.UserName;\n\n        result = await this.operator.CreateProductCompletedInTransactMasterOrder(data).toPromise();\n      } else {\n        result = await this.operator.UpdateProductCompletedInTransactMasterOrder(data).toPromise();\n      }\n      if (result && result.Success) {\n        MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n        this.editDto.OrderId = result?.Attach?.OrderId;\n        this.isShowEditForm = false;\n        this.getEditData();\n      } else {\n        MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n      }\n    } catch (error) {\n      //\n    } finally {\n      context.submitLoading = false;\n    }\n\n    return false;\n  };\n\n  beforeSubmitAudit = (data: RhBaseDto) => {\n    if (!data.IsPass && !data.AuditMessage) {\n      MsgHelper.ShowWarningMessage('审核不通过，必须填写审核信息！');\n      return;\n    }\n    // 基本信息\n    data.OrderMaster = this.editDto;\n    data.OrderDetails = this.orderDetails;\n    data.Auditor = this.currentUser.DisplayName;\n    data.AuditorId = this.currentUser.UserName;\n\n    return true;\n  };\n\n  constructor(\n    private operator: RhProductionBusinessService,\n    public businessManageSer: RhBusinessManageService,\n    public storage: RhStorageService,\n    public sharedManageSer: RhSharedManageService\n  ) { }\n\n  ngOnInit(): void {\n    this.setUserInfo();\n    this.initEditButtonVisible();\n    this.initVisibleSetting();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  initEditButtonVisible() {\n    this.editButtonDataset[0].visible = this.editVisible.toString();\n    this.editButtonDataset[1].visible = this.isCreated.toString();\n    this.editButtonDataset[2].visible = this.auditVisible.toString();\n  }\n\n  initVisibleSetting() {\n    Object.assign(this.visibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('In'));\n    Object.assign(this.visibleSetting, this.businessManageSer.getProductInspectorVisibleSetting());\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {\n        TransactorCode: this.currentUser.UserName,\n        TransactorName: this.currentUser.DisplayName,\n        FactoryCode: this.currentUser.FactoryCode\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.editDto = null;\n    this.selectedIndex = 0;\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.selectedIndex = 1;\n  }\n\n  // 明细变化后\n  getDetails(details: RhSelectableDto[]) {\n    this.orderDetails = details;\n  }\n\n  getEditData() {\n    const queryDto = { OrderId: this.editDto.OrderId };\n    this.operator.GetProductCompletedInTransactOrderDatas(queryDto).subscribe((result) => {\n      if (result.Success && result.Attach.length === 1) {\n        this.editDto = result.Attach[0];\n        this.editDto.OpSign = OpMode.OpEdit;\n      }\n    });\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    } else if (index === 1) {\n      this.orderDetails = [];\n    }\n  }\n\n  //#region 操作区域开始\n  /** 提交审核 */\n  submitDataToAudit(data: RhBaseDto) {\n    if (this.isCreated(data)) {\n      const dto = { OrderId: data.OrderId };\n      this.dataLoading = true;\n      this.operator.SumbitAuditProductCompletedInTransactOrder(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('提交审核成功！');\n            if (this.selectedIndex === 0) this.getDatas();\n            this.closeEditTab();\n          } else {\n            MsgHelper.ShowWarningMessage(`提交审核失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行提交审核！');\n    }\n  }\n\n  /** 审核 */\n  auditData(data: RhBaseDto) {\n    if (this.auditVisible(data)) {\n      this.openAuditDataModal(data);\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行审核！');\n    }\n  }\n\n  /** 打开审核弹窗 */\n  openAuditDataModal(data: RhBaseDto) {\n    this.auditDto = { OrderId: data.OrderId };\n    this.isShowAuditDataModal = true;\n  }\n\n  /** 关闭审核弹窗 */\n  closeAuditDataModal() {\n    this.auditDto = {};\n    this.isShowAuditDataModal = false;\n  }\n\n  /** 审核接口返回 */\n  onAuditData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('审核入库办理单据成功！');\n      this.closeAuditDataModal();\n      this.getEditData();\n    } else {\n      MsgHelper.ShowWarningModal(`审核入库办理单据失败！${result.Message}`);\n    }\n  }\n\n  /** 删除办理单据 */\n  removeDatas(datas: RhBaseDto[]) {\n    const some = datas.some((f) => !this.isAsCreated(f));\n    if (some) {\n      MsgHelper.ShowWarningMessage('只能删除制单状态的数据！');\n    } else {\n      this.dataLoading = true;\n      this.operator.RemoveProductCompletedInTransactOrders(datas as RhSafeAny).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('删除成功！');\n            this.getDatas();\n          } else {\n            MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    }\n  }\n  //#endregion 操作区域结束\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n\n}\n\n\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  ></rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                [rhVisibleSetting]=\"visibleSetting\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              >\n              </rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>生产入库办理</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"入库单单头\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button\n                    *ngIf=\"editVisible(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"isShowEditForm = true\"\n                  >\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button\n                    *ngIf=\"isCreated(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"submitDataToAudit(editDto)\"\n                  >\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                  <button *ngIf=\"auditVisible(editDto)\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else detailsDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  [rhVisibleSetting]=\"visibleSetting\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template\n                    rhTemplate=\"InWarehouseCode\"\n                    let-formgroup\n                    let-setting=\"setting\"\n                    let-hostSetting=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-warehouse-selector\n                          rhInventoryControlSpecialType=\"Warehouse\"\n                          [formControl]=\"formgroup.get('InWarehouseCode')\"\n                          [rhData]=\"formData\"\n                          [rhFieldData]=\"setting\"\n                          [rhSize]=\"hostSetting?.rhSize\"\n                        >\n                        </rh-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                  <ng-template rhTemplate=\"PlanOrderId\" let-formgroup let-setting=\"setting\" let-formData=\"formData\">\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-prodcution-warehousing-plan-selector\n                          [formControl]=\"formgroup.get('PlanOrderId')\"\n                          [rhFieldData]=\"setting\"\n                          [rhDisplayMode]=\"1\"\n                          [rhData]=\"formData\"\n                        >\n                        </rh-prodcution-warehousing-plan-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                  <ng-template\n                    rhTemplate=\"SourceOrderId\"\n                    let-formgroup\n                    let-setting=\"setting\"\n                    let-hostSetting=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-production-warehousing-source-order-selector\n                          *ngIf=\"!isEnableInPlan; else planSourceTpl\"\n                          [formControl]=\"formgroup.get('SourceOrderId')\"\n                          [rhFieldData]=\"setting\"\n                          [rhDisplayMode]=\"1\"\n                          [rhData]=\"formData\"\n                          [rhDefaultQueryDto]=\"curFactoryQueryDto\"\n                          [rhSingleMode]=\"true\"\n                        >\n                        </rh-production-warehousing-source-order-selector>\n                        <ng-template #planSourceTpl>\n                          <rh-form-field\n                            [formControl]=\"formgroup.get('SourceOrderId')\"\n                            rhFormType=\"edit\"\n                            [rhFieldData]=\"setting\"\n                            [rhSize]=\"hostSetting?.rhSize\"\n                            [rhData]=\"formData\"\n                          >\n                          </rh-form-field>\n                        </ng-template>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"入库单单体\">\n              <rh-production-in-handle-details [rhOrder]=\"editDto\" (rhDetailsUpdate)=\"getDetails($event)\">\n              </rh-production-in-handle-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"入库单单头\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <button\n                  *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\"\n                  nz-button\n                  nzType=\"primary\"\n                  nzSize=\"small\"\n                  type=\"button\"\n                  (click)=\"auditData(editDto)\"\n                >\n                  <i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n                </button>\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"detailsDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"入库单单体\">\n              <rh-production-in-handle-details [rhOrder]=\"editDto\" [rhShowDetail]=\"true\" (rhDetailsUpdate)=\"getDetails($event)\">\n              </rh-production-in-handle-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #detailsDescription>\n  <rh-dynamic-description\n    *ngIf=\"isRefreshDesc\"\n    rhName=\"detailsDescription\"\n    [rhValue]=\"editDto\"\n    [rhVisibleSetting]=\"visibleSetting\"\n  ></rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'入库办理审核'\"\n  [nzVisible]=\"isShowAuditDataModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeAuditDataModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #auditDataForm\n    rhName=\"auditDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"auditDto\"\n    [rhBeforeSubmit]=\"beforeSubmitAudit\"\n    (rhInterfaceDataChange)=\"onAuditData($event)\"\n    (rhClose)=\"closeAuditDataModal()\"\n  >\n    <ng-template rhTemplate=\"IsPass\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-radio-group [formControl]=\"formgroup.get('IsPass')\" (ngModelChange)=\"businessManageSer.isPassChange($event, formgroup)\">\n            <label nz-radio [nzValue]=\"true\">是</label>\n            <label nz-radio [nzValue]=\"false\">否</label>\n          </nz-radio-group>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"AuditMessage\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"!formgroup.get('IsPass').value\"> {{ setting.displayName }}</nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <textarea\n            nz-input\n            [formControl]=\"formgroup.get('AuditMessage')\"\n            [placeholder]=\"setting.placeholder\"\n            [nzAutosize]=\"{ minRows: 2 }\"\n          ></textarea>\n          <div *ngIf=\"editDto?.AuditMessage\">\n            <span style=\"color: #faad14\">上一次审核信息：{{ editDto?.AuditMessage }}</span>\n          </div>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>\n","import { RhSharedManageModule } from './../../shared-manage/shared-manage.module';\nimport { NgModule } from '@angular/core';\nimport { RhSharedModule } from 'rh-base/shared';\nimport { RhProductionBusinessService } from './production-business.service';\nimport { RhProductionInPlanComponent } from './production-in-plan/production-in-plan.component';\nimport { ProductionInPlanDetailsComponent } from './production-in-plan/production-in-plan-details/production-in-plan-details.component';\nimport { ProdcutionWarehousingPlanSelectorComponent } from './snippets/prodcution-warehousing-plan-selector/prodcution-warehousing-plan-selector.component';\nimport { ProdcutionWarehousingPlanTableComponent } from './snippets/prodcution-warehousing-plan-selector/prodcution-warehousing-plan-table/prodcution-warehousing-plan-table.component';\nimport { ProductionWarehousingSourceOrderSelectorComponent } from './snippets/production-warehousing-source-order-selector/production-warehousing-source-order-selector.component';\nimport { ProuctionWarehousingSourceOrderTableComponent } from './snippets/production-warehousing-source-order-selector/prouction-warehousing-source-order-table/prouction-warehousing-source-order-table.component';\nimport { RhProductReturnedMaterialInPlanComponent } from './product-returned-material-in-plan/product-returned-material-in-plan.component';\nimport { ProductReturnedMaterialInPlanDetailsComponent } from './product-returned-material-in-plan/product-returned-material-in-plan-details/product-returned-material-in-plan-details.component';\nimport { RhProductPickingMaterialOutPlanComponent } from './product-picking-material-out-plan/product-picking-material-out-plan.component';\nimport { ProductPickingMaterialOutPlanDetailsComponent } from './product-picking-material-out-plan/product-picking-material-out-plan-details/product-picking-material-out-plan-details.component';\nimport { ReturnWarehousingSourceOrderSelectorComponent } from './snippets/return-warehousing-source-order-selector/return-warehousing-source-order-selector.component';\nimport { ReturnWarehousingSourceOrderTableComponent } from './snippets/return-warehousing-source-order-selector/return-warehousing-source-order-table/return-warehousing-source-order-table.component';\nimport { ReturnWarehousingPlanSelectorComponent } from './snippets/return-warehousing-plan-selector/return-warehousing-plan-selector.component';\nimport { ReturnWarehousingPlanTableComponent } from './snippets/return-warehousing-plan-selector/return-warehousing-plan-table/return-warehousing-plan-table.component';\nimport { ProductionPickingSourceOrderSelectorComponent } from './snippets/production-picking-source-order-selector/production-picking-source-order-selector.component';\nimport { ProductionPickingSourceOrderTableComponent } from './snippets/production-picking-source-order-selector/production-picking-source-order-table/production-picking-source-order-table.component';\nimport { ProductionPickingPlanSelectorComponent } from './snippets/production-picking-plan-selector/production-picking-plan-selector.component';\nimport { ProductionPickingPlanTableComponent } from './snippets/production-picking-plan-selector/production-picking-plan-table/production-picking-plan-table.component';\nimport { SharedBusinessModule } from '../shared-business/shared-business.module';\nimport { RhProductPickingMaterialOutHandleComponent } from './product-picking-material-out-handle/product-picking-material-out-handle.component';\nimport { RhProductReturnedMaterialInHandleComponent } from './product-returned-material-in-handle/product-returned-material-in-handle.component';\nimport { ProductPickingMaterialOutHandleDetailsComponent } from './product-picking-material-out-handle/product-picking-material-out-handle-details/product-picking-material-out-handle-details.component';\nimport { ProductReturnedMaterialInHandleDetailsComponent } from './product-returned-material-in-handle/product-returned-material-in-handle-details/product-returned-material-in-handle-details.component';\nimport { RhProductionInHandleComponent } from './production-in-handle/production-in-handle.component';\nimport { ProductionInHandleDetailsComponent } from './production-in-handle/production-in-handle-details/production-in-handle-details.component';\n\nconst COMPONENTS = [\n  RhProductionInPlanComponent,\n  RhProductReturnedMaterialInPlanComponent,\n  RhProductPickingMaterialOutPlanComponent,\n  RhProductPickingMaterialOutHandleComponent,\n  RhProductReturnedMaterialInHandleComponent,\n  RhProductionInHandleComponent\n\n];\n\nconst SNIPPETS = [\n  ProductionInPlanDetailsComponent,\n  ProdcutionWarehousingPlanSelectorComponent,\n  ProdcutionWarehousingPlanTableComponent,\n  ProductionWarehousingSourceOrderSelectorComponent,\n  ProuctionWarehousingSourceOrderTableComponent,\n  ProductReturnedMaterialInPlanDetailsComponent,\n  ProductPickingMaterialOutPlanDetailsComponent,\n  ReturnWarehousingSourceOrderSelectorComponent,\n  ReturnWarehousingSourceOrderTableComponent,\n  ReturnWarehousingPlanSelectorComponent,\n  ReturnWarehousingPlanTableComponent,\n  ProductionPickingSourceOrderSelectorComponent,\n  ProductionPickingSourceOrderTableComponent,\n  ProductionPickingPlanSelectorComponent,\n  ProductionPickingPlanTableComponent,\n  ProductPickingMaterialOutHandleDetailsComponent,\n  ProductReturnedMaterialInHandleDetailsComponent,\n  ProductionInHandleDetailsComponent\n];\n\n\n@NgModule({\n  declarations: [...COMPONENTS, ...SNIPPETS],\n  imports: [\n    RhSharedModule,\n    SharedBusinessModule,\n    RhSharedManageModule\n  ],\n  providers: [RhProductionBusinessService],\n  exports: [ProductionPickingSourceOrderSelectorComponent]\n})\nexport class RhProductionBusinessModule { }\n","import { Injectable } from '@angular/core';\nimport { RhApiUrlsService, RhWmsSysConfigService } from 'rh-base/core';\nimport { Observable } from 'rxjs';\nimport { DataResultT, RhBaseDto, OpResult, RhSelectableDto, StorageLocationConfigQueryDto, StorageLocationConfigDto } from 'rh-base/model';\nimport {\n  ExtPurchaseOrderDto,\n  ExtPurchaseOrderQueryDto,\n  InOutOrderDetailQueryDto,\n  MaterialInventoryDetailDto,\n  MaterialInventoryDetailQueryDto,\n  PurchaseBackSourceOrderDto,\n  PurchaseBackSourceOrderQueryDto\n} from './../../wms-model';\nimport {\n  PlanOrderDetailsQueryDto,\n  PurchaseInPlanOrderDetails,\n  PurchaseInTransactOrder,\n  PurchaseInTransactOrderDetails,\n  PurchaseInTransactOrderMaster,\n  PurchaseReturnedOutPlanOrderDetails,\n  PurchaseReturnedTransactOrder,\n  PurchaseReturnedTransactOrderDetails,\n  PurchaseReturnedTransactOrderMaster,\n  View_PurchaseInTransactionOrderMasterDto,\n  View_PurchaseInTransactionOrderMasterQueryDto,\n  View_PurchaseReturnedTransactOrderMasterDto,\n  View_PurchaseReturnedTransactOrderMasterQueryDto\n} from './purchase-business-model';\n\n@Injectable()\nexport class RhPurchaseBusinessService {\n  constructor(private apiUrls: RhApiUrlsService, private wmsSysConfigSer: RhWmsSysConfigService) {}\n\n  get isEnableInPlan() {\n    return this.wmsSysConfigSer.getIsEnableInPlan();\n    // return false;\n  }\n\n  get isEnableNegativeInventory() {\n    return this.wmsSysConfigSer.getIsEnableNegativeInventory();\n  }\n\n  get isEnableOutPlan() {\n    return this.wmsSysConfigSer.getIsEnableOutPlan();\n  }\n\n  get isEnableExcessInWarehouse() {\n    return this.wmsSysConfigSer.getIsEnableExcessInWarehouse();\n  }\n\n  get IsEnableProductInInspect() {\n    return this.wmsSysConfigSer.getIsEnableProductInInspect();\n  }\n\n  get isEnableMaterialInInspect() {\n    return this.wmsSysConfigSer.getIsEnableMaterialInInspect();\n  }\n\n  initOutPlanVisibleSetting() {\n    const temp = {};\n    if (this.isEnableOutPlan) {\n      Object.assign(temp, { PlanQty: true, CompletedQty: true, SourceCompletedQty: false, PlanOrderId: true });\n    } else {\n      Object.assign(temp, { PlanQty: false, CompletedQty: false, SourceCompletedQty: true, PlanOrderId: false });\n    }\n    return temp;\n  }\n\n  initInPlanVisibleSetting() {\n    const temp = {};\n    if (this.isEnableInPlan) {\n      Object.assign(temp, { PlanQty: true, CompletedQty: true, SourceCompletedQty: false, PlanOrderId: true });\n    } else {\n      Object.assign(temp, { PlanQty: false, CompletedQty: false, SourceCompletedQty: true, PlanOrderId: false });\n    }\n    return temp;\n  }\n\n  //#region 采购入库计划区域开始\n  /**\n   *  获取采购入库计划单头数据\n   */\n  GetPurchaseInPlanOrderDatas(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessPlanApi', 'GetPurchaseInPlanOrderDatas', queryDto);\n  }\n\n  /**\n   *  创建采购入库计划单据头信息\n   */\n  CreatePurchaseInPlanMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessPlanApi', 'CreatePurchaseInPlanMasterOrder', input);\n  }\n\n  /**\n   *  修改采购入库计划单据头信息\n   */\n  UpdatePurchaseInPlanMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessPlanApi', 'UpdatePurchaseInPlanMasterOrder', input);\n  }\n\n  /**\n   *  提交至审核状态采购计划单据信息\n   */\n  SumbitAuditPurchaseInPlanOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessPlanApi', 'SumbitAuditPurchaseInPlanOrder', input);\n  }\n\n  /**\n   *  批量删除采购计划单据信息\n   */\n  RemovePurchaseInPlanOrders(inputs: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessPlanApi', 'RemovePurchaseInPlanOrders', inputs);\n  }\n\n  /**\n   *  删除采购办理单据信息\n   */\n  RemovePurchaseInTransactMaterOrder(input: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessTransactApi', 'RemovePurchaseInTransactMaterOrder', input);\n  }\n\n  /**\n   *  根据计划单号获取采购入库计划单明细数据,包含统计汇总数量信息\n   */\n  GetPurchaseInPlanOrderDetailsDatasBy(queryDto: PlanOrderDetailsQueryDto): Observable<DataResultT<PurchaseInPlanOrderDetails[]>> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessPlanApi', 'GetPurchaseInPlanOrderDetailsDatasBy', queryDto);\n  }\n\n  /**\n   *  存储采购入库计划明细\n   */\n  StorePurchaseInPlanOrderDetails(planOrder: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessPlanApi', 'StorePurchaseInPlanOrderDetails', planOrder);\n  }\n\n  /**\n   *  删除采购计划单的明细信息\n   */\n  RemovePurchaseInPlanOrderDetails(inputs: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessPlanApi', 'RemovePurchaseInPlanOrderDetails', inputs);\n  }\n  //#endregion 采购入库计划区域结束\n\n  //#region采购入库办理区域\n\n  /**\n   *  获取采购入库办理单头数据\n   */\n  GetPurchaseInTransactOrderDatas(queryDto: RhBaseDto): Observable<DataResultT<View_PurchaseInTransactionOrderMasterDto[]>> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessTransactApi', 'GetPurchaseInTransactOrderDatas', queryDto);\n  }\n\n  /**\n   *  提交至审核状态采购办理单据信息\n   */\n  SumbitAuditPurchaseInTransactOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessTransactApi', 'SumbitAuditPurchaseInTransactOrder', input);\n  }\n\n  /**\n   *  根据办理单号获取采购入库办理单明细数据,包含统计汇总数量信息\n   */\n  GetPurchaseInTransactOrderDetailsDatasBy(queryDto: RhBaseDto): Observable<DataResultT<PurchaseInTransactOrderDetails[]>> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessTransactApi', 'GetPurchaseInTransactOrderDetailsDatasBy', queryDto);\n  }\n\n  /**\n   *  获取外部采购订单明细数据\n   */\n  GetExtPurchaseOrderDetail(queryDto: ExtPurchaseOrderQueryDto): Observable<DataResultT<ExtPurchaseOrderDto[]>> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessPlanApi', 'GetExtPurchaseOrderDetail', queryDto);\n  }\n\n  /**\n   *  存储采购入库办理明细\n   */\n  StorePurchaseInTransactOrderDetails(TransactOrder: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessTransactApi', 'StorePurchaseInTransactOrderDetails', TransactOrder);\n  }\n\n  /**\n   *  删除采购办理单的明细信息\n   */\n  RemovePurchaseInTransactOrderDetails(dtos: RhSelectableDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessTransactApi', 'RemovePurchaseInTransactOrderDetails', dtos);\n  }\n\n  /**\n   *  创建采购入库办理单据头信息\n   */\n  CreatePurchaseInTransactMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessTransactApi', 'CreatePurchaseInTransactMasterOrder', input);\n  }\n\n  /**\n   *  修改采购入库办理单据头信息\n   */\n  UpdatePurchaseInTransactMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessTransactApi', 'UpdatePurchaseInTransactMasterOrder', input);\n  }\n\n  //#endregion采购入库办理区域结束\n\n  //#region 采购退货计划区域开始\n  /**\n   *  获取采购退货出库计划单头数据\n   */\n  GetPurchaseReturnedOutPlanOrderDatas(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessPlanApi', 'GetPurchaseReturnedOutPlanOrderDatas', queryDto);\n  }\n\n  /**\n   *  创建采购退货出库计划单据头信息\n   */\n  CreatePurchaseReturnedOutPlanMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessPlanApi', 'CreatePurchaseReturnedOutPlanMasterOrder', input);\n  }\n\n  /**\n   *  修改采购退货出库计划单据头信息\n   */\n  UpdatePurchaseReturnedOutPlanMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessPlanApi', 'UpdatePurchaseReturnedOutPlanMasterOrder', input);\n  }\n\n  /**\n   *  提交至审核状态采购退货计划单据信息\n   */\n  SumbitAuditPurchaseReturnedOutPlanOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessPlanApi', 'SumbitAuditPurchaseReturnedOutPlanOrder', input);\n  }\n\n  /**\n   *  批量删除采购退货计划单据信息\n   */\n  RemovePurchaseReturnedOutPlanOrders(inputs: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessPlanApi', 'RemovePurchaseReturnedOutPlanOrders', inputs);\n  }\n\n  /**\n   *  根据计划单号获取采购退货出库计划单明细数据,包含统计汇总数量信息\n   */\n  GetPurchaseReturnedOutPlanOrderDetailsDatasBy(\n    queryDto: PlanOrderDetailsQueryDto\n  ): Observable<DataResultT<PurchaseReturnedOutPlanOrderDetails[]>> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessPlanApi', 'GetPurchaseReturnedOutPlanOrderDetailsDatasBy', queryDto);\n  }\n\n  /**\n   *  删除采购退货计划单的明细信息\n   */\n  RemovePurchaseReturnedOutPlanOrderDetails(inputs: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessPlanApi', 'RemovePurchaseReturnedOutPlanOrderDetails', inputs);\n  }\n\n  /**\n   *  存储采购退货出库计划明细\n   */\n  StorePurchaseReturnedOutPlanOrderDetails(planOrder: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessPlanApi', 'StorePurchaseReturnedOutPlanOrderDetails', planOrder);\n  }\n\n  //#endregion 采购退货计划区域结束\n\n  //#region 采购退货办理区\n  /**\n   *  获取采购退货出库办理单头数据\n   */\n  GetPurchaseReturnedOutTransactOrderDatas(\n    queryDto: View_PurchaseReturnedTransactOrderMasterQueryDto\n  ): Observable<DataResultT<View_PurchaseReturnedTransactOrderMasterDto[]>> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessTransactApi', 'GetPurchaseReturnedOutTransactOrderDatas', queryDto);\n  }\n\n  /**\n   *  提交至审核状态采购退货办理单据信息\n   */\n  SumbitAuditPurchaseReturnedTransactOrder(input: PurchaseReturnedTransactOrderMaster): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessTransactApi', 'SumbitAuditPurchaseReturnedTransactOrder', input);\n  }\n\n  /**\n   *  根据办理单号获取采购退货出库办理单明细数据,包含统计汇总数量信息\n   */\n  GetPurchaseReturnedTransactOrderDetailsDatasBy(queryDto: RhBaseDto): Observable<DataResultT<PurchaseReturnedTransactOrderDetails[]>> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessTransactApi', 'GetPurchaseReturnedTransactOrderDetailsDatasBy', queryDto);\n  }\n\n  /**\n   *  删除采购退货办理单的明细信息\n   */\n  RemovePurchaseReturnedTransactOrderDetails(dtos: RhSelectableDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessTransactApi', 'RemovePurchaseReturnedTransactOrderDetails', dtos);\n  }\n\n  /**\n   *  存储采购退货出库办理明细\n   */\n  StorePurchaseReturnedTransactOrderDetails(TransactOrder: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('PurchaseBusinessTransactApi', 'StorePurchaseReturnedTransactOrderDetails', TransactOrder);\n  }\n\n  /**\n   *  获取采购退货计划源单\n   */\n  GetPurchaseBackSourceOrderDatas(queryDto: PurchaseBackSourceOrderQueryDto): Observable<DataResultT<PurchaseBackSourceOrderDto[]>> {\n    return this.apiUrls.PostRhpWms('OutPlanSourceOrderWebApi', 'GetPurchaseBackSourceOrderDatas', queryDto);\n  }\n\n  /**\n   *  获取库存明细\n   */\n  GetMaterialInventoryDetailDatas(queryDto: MaterialInventoryDetailQueryDto): Observable<DataResultT<MaterialInventoryDetailDto[]>> {\n    return this.apiUrls.PostRhpWms('MaterialInventoryWebApi', 'GetMaterialInventoryDetailDatas', queryDto);\n  }\n\n  //#endregion 采购退货办理区结束\n}\n","import { RhSelectableDto } from 'rh-base/model';\n/** 采购入库计划明细模型 */\nexport class PurchaseInPlanOrderDetails extends RhSelectableDto {\n  constructor(\n    /** 源单已计划数量 */\n    public SourcePlannedQty: number,\n    /** 源单已完成数量 */\n    public SourceCompletedQty: number,\n    /** 源单已退回数量 */\n    public ReturnQty: number,\n    /** 是否开启条形码 */\n    public IsEnableSN: boolean,\n    /** 是否开启批次号 */\n    public IsEnableLotNum: boolean,\n    /** 是否开启保质期 */\n    public IsEnableExpirationDate: boolean,\n    /** 入库计划号 */\n    public PlanOrderId: string,\n    /** 入库业务类型 */\n    public BusinessType: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 源单数量 */\n    public SourceOrderQty: number,\n    /** 仓库代码 */\n    public InWarehouseCode: string,\n    /** 仓库名称 */\n    public InWarehouseName: string,\n    /** 仓库代码 */\n    public OutWarehouseCode: string,\n    /** 仓库名称 */\n    public OutWarehouseName: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 规格型号 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 有效期单位 */\n    public ExpiryUnit: string,\n    /** 包装单位 */\n    public MeasureUnit: string,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 需求数量 */\n    public DemandQty: number,\n    /** 计划数量 */\n    public PlanQty: number,\n    /** 已收数量 */\n    public ReceivedQty: number,\n    /** 辅助计量单位 */\n    public MeasureAuxUnit: string,\n    /** 辅助计量数量 */\n    public MeasureAuxQty: number,\n    /** 批次号 */\n    public LotNum: string,\n    /** 备注 */\n    public Remark: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {\n    super();\n  }\n  static create(): PurchaseInPlanOrderDetails {\n    return new PurchaseInPlanOrderDetails(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 采购退货出库计划明细模型 */\nexport class PurchaseReturnedOutPlanOrderDetails extends RhSelectableDto {\n  constructor(\n    /** 源单已计划数量 */\n    public SourcePlannedQty: number,\n    /** 源单已完成数量 */\n    public SourceCompletedQty: number,\n    /** 源单已退货数量 */\n    public SourceReturnedQty: number,\n    /** 已退货计划数量 */\n    public SourceReversePlannedQty: number,\n    /** 源单已出数量 */\n    public FetchedQty: number,\n    /** 是否开启条形码 */\n    public IsEnableSN: boolean,\n    /** 是否开启批次号 */\n    public IsEnableLotNum: boolean,\n    /** 是否开启保质期 */\n    public IsEnableExpirationDate: boolean,\n    /** 出库计划号 */\n    public PlanOrderId: string,\n    /** 业务类型 */\n    public BusinessType: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 源单数量 */\n    public SourceOrderQty: number,\n    /** 仓库代码 */\n    public InWarehouseCode: string,\n    /** 仓库名称 */\n    public InWarehouseName: string,\n    /** 仓库代码 */\n    public OutWarehouseCode: string,\n    /** 仓库名称 */\n    public OutWarehouseName: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 规格型号 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 有效期单位 */\n    public ExpiryUnit: string,\n    /** 计划数量 */\n    public PlanQty: number,\n    /** 入库数量 */\n    public ReceivedQty: number,\n    /** 辅助计量单位 */\n    public MeasureAuxUnit: string,\n    /** 辅助数量 */\n    public MeasureAuxQty: number,\n    /** 收货地址 */\n    public ReceiverAddress: string,\n    /** 批次号 */\n    public LotNum: string,\n    /** 备注 */\n    public Remark: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {\n    super();\n  }\n  static create(): PurchaseReturnedOutPlanOrderDetails {\n    return new PurchaseReturnedOutPlanOrderDetails(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 采购入库办理单头视图模型 */\nexport class View_PurchaseInTransactionOrderMasterQueryDto {\n  constructor(\n    /** 采购单号 */\n    public PurchaseOrderCode: string,\n    /** 出入库单号 */\n    public OrderId: string,\n    /** 采购员 */\n    public Purchaser: string,\n    /** 供应商编码 */\n    public SupplierId: string,\n    /** 到货日期 */\n    public ArrivalDate: Date,\n    /** 开始到货日期 */\n    public StartArrivalDate: Date,\n    /** 结束到货日期 */\n    public EndArrivalDate: Date,\n    /** 源单单号 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 业务类型 */\n    public BusinessType: string,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 仓库编码 */\n    public InWarehouseCode: string,\n    /** 仓库名称 */\n    public InWarehouseName: string,\n    /** 办理人 */\n    public TransactorName: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): View_PurchaseInTransactionOrderMasterQueryDto {\n    return new View_PurchaseInTransactionOrderMasterQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 采购入库办理单头视图模型 */\nexport class View_PurchaseInTransactionOrderMasterDto {\n  constructor(\n    /** 采购单号 */\n    public PurchaseOrderCode: string,\n    /** 采购员编码 */\n    public PurchaserId: string,\n    /** 采购员 */\n    public Purchaser: string,\n    /** 供应商编码 */\n    public SupplierId: string,\n    /** 供应商 */\n    public Supplier: string,\n    /** 到货日期 */\n    public ArrivalDate: Date,\n    /** 联系方式 */\n    public Contacts: string,\n    /** 手机号 */\n    public ContactNumber: string,\n    /** 单据号 */\n    public OrderId: string,\n    /** 单据类型 */\n    public OrderType: string,\n    /** 源单单号 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 业务类型 */\n    public BusinessType: string,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 仓库编码 */\n    public InWarehouseCode: string,\n    /** 仓库名称 */\n    public InWarehouseName: string,\n    /** 检验人 */\n    public Inspector: string,\n    /** 检验人编码 */\n    public InspectorId: string,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人编码 */\n    public AuditorId: string,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核结果 */\n    public AuditMessage: string,\n    /** 制单人 */\n    public OrderCreatorName: string,\n    /** 制单人编码 */\n    public OrderCreatorCode: string,\n    /** 制单日期 */\n    public OrderCreateDate: Date,\n    /** 制单时间 */\n    public OrderCreateTime: Date,\n    /** 办理人编码 */\n    public TransactorCode: string,\n    /** 办理人 */\n    public TransactorName: string,\n    /** 备注 */\n    public Remark: string,\n    /** 其他单据类型 */\n    public OtherOrderType: string,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {}\n  static create(): View_PurchaseInTransactionOrderMasterDto {\n    return new View_PurchaseInTransactionOrderMasterDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 采购入库办理单表头模型 */\nexport class PurchaseInTransactOrderMaster {\n  constructor(\n    /** 供应商 */\n    public Supplier: string,\n    /** 供应商Id */\n    public SupplierId: string,\n    /** 到货日期 */\n    public ArrivalDate: Date,\n    /** 联系人 */\n    public Contacts: string,\n    /** 联系电话 */\n    public ContactNumber: string,\n    /** 采购员 */\n    public Purchaser: string,\n    /** 采购员Id */\n    public PurchaserId: string,\n    /** 出入库单号 */\n    public OrderId: string,\n    /** 单据类型(入库、出库、调拨、盘点、移库) */\n    public OrderType: string,\n    /** 计划单号 */\n    public PlanOrderId: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 业务类型 */\n    public BusinessType: string,\n    /** 其他单据类型 */\n    public OtherOrderType: string,\n    /** 入库单状态 */\n    public OrderStatus: string,\n    /** 入库仓库代码 */\n    public InWarehouseCode: string,\n    /** 入库仓库名称 */\n    public InWarehouseName: string,\n    /** 入库库区代码 */\n    public InWarehouseAreaCode: string,\n    /** 入库库区名称 */\n    public InWarehouseAreaName: string,\n    /** 入库货架代码 */\n    public InWarehouseShelfCode: string,\n    /** 入库货架名称 */\n    public InWarehouseShelfName: string,\n    /** 入库库位代码 */\n    public InStorageLocationCode: string,\n    /** 入库库位名称 */\n    public InStorageLocationName: string,\n    /** 出库仓库代码 */\n    public OutWarehouseCode: string,\n    /** 出库仓库名称 */\n    public OutWarehouseName: string,\n    /** 检验人 */\n    public Inspector: string,\n    /** 检验人编码 */\n    public InspectorId: string,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人代码 */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 制单人 */\n    public OrderCreatorName: string,\n    /** 制单人代码 */\n    public OrderCreatorCode: string,\n    /** 制单日期 */\n    public OrderCreateDate: Date,\n    /** 制单时间 */\n    public OrderCreateTime: Date,\n    /** 办理人编码 */\n    public TransactorCode: string,\n    /** 办理人名称 */\n    public TransactorName: string,\n    /** 组织架构代码 */\n    public OrganizationStructureCode: string,\n    /** 组织架构代码别名 */\n    public OrganizationStructureDisplayName: string,\n    /** 组织架构外部代码 */\n    public OrganizationStructureExternalCode: string,\n    /** 组织架构名称 */\n    public OrganizationStructureName: string,\n    /** 备注 */\n    public Remark: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number,\n    /** */\n    public OrderCodeGenerateKey: string\n  ) {}\n  static create(): PurchaseInTransactOrderMaster {\n    return new PurchaseInTransactOrderMaster(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 采购入库办理明细模型 */\nexport class PurchaseInTransactOrderDetails extends RhSelectableDto {\n  constructor(\n    /** 源单已办理数量 */\n    public SourceTransactedQty: number,\n    /** 源单已计划数量 */\n    public SourcePlannedQty: number,\n    /** 出入库单号 */\n    public OrderId: string,\n    /** 入库计划号 */\n    public PlanOrderId: string,\n    /** 业务类型 */\n    public BusinessType: string,\n    /** 移动类型 */\n    public MoveType: string,\n    /** 源单单号 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 源单数量 */\n    public SourceOrderQty: number,\n    /** 条码 */\n    public SN: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 辅助计量单位 */\n    public MeasureAuxUnit: string,\n    /** 辅助单位数量 */\n    public MeasureAuxQty: number,\n    /** 批次号 */\n    public LotNum: string,\n    /** 办理数量 */\n    public TransactQty: number,\n    /** 实际数量 */\n    public ActualQty: number,\n    /** 计划数量 */\n    public PlanQty: number,\n    /** 生产日期 */\n    public ProductionDate: Date,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 有效期 */\n    public ExpirationDate: Date,\n    /** 保质期单位 */\n    public ExpiryUnit: string,\n    /** 是否已完成 */\n    public IsCompleted: boolean,\n    /** 完成时间 */\n    public CompletedTime: Date,\n    /** 是否传送ERP */\n    public IsSendToErp: boolean,\n    /** 是否先进先出 */\n    public IsFifo: boolean,\n    /** 供应商编码 */\n    public SupplierCode: string,\n    /** 供应商名称 */\n    public SupplierName: string,\n    /** 客户编码 */\n    public CustomerCode: string,\n    /** 客户名称 */\n    public CustomerName: string,\n    /** 发货地址 */\n    public ShippingAddress: string,\n    /** 入库仓库代码 */\n    public InWarehouseCode: string,\n    /** 入库仓库名称 */\n    public InWarehouseName: string,\n    /** 入库库区代码 */\n    public InWarehouseAreaCode: string,\n    /** 入库库区名称 */\n    public InWarehouseAreaName: string,\n    /** 入库货架代码 */\n    public InWarehouseShelfCode: string,\n    /** 入库货架名称 */\n    public InWarehouseShelfName: string,\n    /** 入库库位代码 */\n    public InStorageLocationCode: string,\n    /** 入库库位名称 */\n    public InStorageLocationName: string,\n    /** 出库仓库代码 */\n    public OutWarehouseCode: string,\n    /** 出库仓库名称 */\n    public OutWarehouseName: string,\n    /** 出库库区代码 */\n    public OutWarehouseAreaCode: string,\n    /** 出库库区名称 */\n    public OutWarehouseAreaName: string,\n    /** 出库货架代码 */\n    public OutWarehouseShelfCode: string,\n    /** 出库货架名称 */\n    public OutWarehouseShelfName: string,\n    /** 出库库位代码 */\n    public OutStorageLocationCode: string,\n    /** 出库库位名称 */\n    public OutStorageLocationName: string,\n    /** 是否遵循先进先出 */\n    public IsAccordingToFifo: boolean,\n    /** 器具编码 */\n    public ApplianceCode: string,\n    /** 附件编码 */\n    public AttachFileCode: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 创建用户Id */\n    public CreatorUserId: number,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number,\n    /** 库存数量 */\n    public InventoryQty: number,\n    /** 冻结数量 */\n    public FreezeQty: number,\n    /** 可用数量 */\n    public AvailableQty: number\n  ) {\n    super();\n  }\n  static create(): PurchaseInTransactOrderDetails {\n    return new PurchaseInTransactOrderDetails(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 采购入库办理单模型 */\nexport class PurchaseInTransactOrder {\n  constructor(\n    /** 单据头 */\n    public OrderMaster: PurchaseInTransactOrderMaster,\n    /** 单据明细列表 */\n    public OrderDetails: PurchaseInTransactOrderDetails[]\n  ) {}\n  static create(): PurchaseInTransactOrder {\n    return new PurchaseInTransactOrder(null, null);\n  }\n}\n\n/** 采购退货办理单据头视图模型 */\nexport class View_PurchaseReturnedTransactOrderMasterQueryDto {\n  constructor(\n    /** 供应商 */\n    public Supplier: string,\n    /** 供应商编号 */\n    public SupplierId: string,\n    /** 采购员编码 */\n    public PurchaserId: string,\n    /** 采购员 */\n    public Purchaser: string,\n    /** 计划单号 */\n    public PlanOrderId: string,\n    /** 退货出库单号 */\n    public OrderId: string,\n    /** 单据类型 */\n    public OrderType: string,\n    /** 源单单号 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 仓库代码 */\n    public OutWarehouseCode: string,\n    /** 仓库名称 */\n    public OutWarehouseName: string,\n    /** 查询模式 */\n    public Mode: number,\n    /** 需要返回的结果数量 */\n    public MaxResultCount: number,\n    /** 跳过的数量 */\n    public SkipCount: number\n  ) {}\n  static create(): View_PurchaseReturnedTransactOrderMasterQueryDto {\n    return new View_PurchaseReturnedTransactOrderMasterQueryDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 采购退货办理单据头视图模型 */\nexport class View_PurchaseReturnedTransactOrderMasterDto {\n  constructor(\n    /** 供应商 */\n    public Supplier: string,\n    /** 供应商编号 */\n    public SupplierId: string,\n    /** 采购员编码 */\n    public PurchaserId: string,\n    /** 采购员 */\n    public Purchaser: string,\n    /** 到货日期 */\n    public ArrivalDate: Date,\n    /** 联系人 */\n    public Contacts: string,\n    /** 联系号码 */\n    public ContactNumber: string,\n    /** 计划单号 */\n    public PlanOrderId: string,\n    /** 退货出库单号 */\n    public OrderId: string,\n    /** 单据类型 */\n    public OrderType: string,\n    /** 源单单号 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 业务类型 */\n    public BusinessType: string,\n    /** 其他单据类型 */\n    public OtherOrderType: string,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 仓库代码 */\n    public OutWarehouseCode: string,\n    /** 仓库名称 */\n    public OutWarehouseName: string,\n    /** 质检人 */\n    public Inspector: string,\n    /** 质检人编码 */\n    public InspectorId: string,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人编码 */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 制单人 */\n    public OrderCreatorName: string,\n    /** 制单人编码 */\n    public OrderCreatorCode: string,\n    /** 制单日期 */\n    public OrderCreateDate: Date,\n    /** 制单时间 */\n    public OrderCreateTime: Date,\n    /** 办理人编码 */\n    public TransactorCode: string,\n    /** 办理人 */\n    public TransactorName: string,\n    /** 部门编码 */\n    public OrganizationStructureCode: string,\n    /** 部门名称 */\n    public OrganizationStructureDisplayName: string,\n    /** 外部编码 */\n    public OrganizationStructureExternalCode: string,\n    /** 部门描述 */\n    public OrganizationStructureName: string,\n    /** 备注 */\n    public Remark: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {}\n  static create(): View_PurchaseReturnedTransactOrderMasterDto {\n    return new View_PurchaseReturnedTransactOrderMasterDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 采购退货出库办理单表头模型 */\nexport class PurchaseReturnedTransactOrderMaster extends RhSelectableDto {\n  constructor(\n    /** 供应商 */\n    public Supplier: string,\n    /** 供应商Id */\n    public SupplierId: string,\n    /** 到货日期 */\n    public ArrivalDate: Date,\n    /** 联系人 */\n    public Contacts: string,\n    /** 联系电话 */\n    public ContactNumber: string,\n    /** 采购员 */\n    public Purchaser: string,\n    /** 采购员Id */\n    public PurchaserId: string,\n    /** 出入库单号 */\n    public OrderId: string,\n    /** 单据类型(入库、出库、调拨、盘点、移库) */\n    public OrderType: string,\n    /** 计划单号 */\n    public PlanOrderId: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 业务类型 */\n    public BusinessType: string,\n    /** 其他单据类型 */\n    public OtherOrderType: string,\n    /** 入库单状态 */\n    public OrderStatus: string,\n    /** 入库仓库代码 */\n    public InWarehouseCode: string,\n    /** 入库仓库名称 */\n    public InWarehouseName: string,\n    /** 出库仓库代码 */\n    public OutWarehouseCode: string,\n    /** 出库仓库名称 */\n    public OutWarehouseName: string,\n    /** 检验人 */\n    public Inspector: string,\n    /** 检验人编码 */\n    public InspectorId: string,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人代码 */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 制单人 */\n    public OrderCreatorName: string,\n    /** 制单人代码 */\n    public OrderCreatorCode: string,\n    /** 制单日期 */\n    public OrderCreateDate: Date,\n    /** 制单时间 */\n    public OrderCreateTime: Date,\n    /** 办理人编码 */\n    public TransactorCode: string,\n    /** 办理人名称 */\n    public TransactorName: string,\n    /** 组织架构代码 */\n    public OrganizationStructureCode: string,\n    /** 组织架构代码别名 */\n    public OrganizationStructureDisplayName: string,\n    /** 组织架构外部代码 */\n    public OrganizationStructureExternalCode: string,\n    /** 组织架构名称 */\n    public OrganizationStructureName: string,\n    /** 备注 */\n    public Remark: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number,\n    /** */\n    public OrderCodeGenerateKey: string\n  ) {\n    super();\n  }\n  static create(): PurchaseReturnedTransactOrderMaster {\n    return new PurchaseReturnedTransactOrderMaster(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 计划单明细查询模型 */\nexport class PlanOrderDetailsQueryDto {\n  constructor(\n    /** 计划单号 */\n    public PlanOrderId: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 查询模式 */\n    public Mode: number\n  ) {}\n  static create(): PlanOrderDetailsQueryDto {\n    return new PlanOrderDetailsQueryDto(null, null, null, null);\n  }\n}\n\n/** 采购退货出库办理明细模型 */\nexport class PurchaseReturnedTransactOrderDetails extends RhSelectableDto {\n  constructor(\n    /** 源单已完成数量 */\n    public SourceCompletedQty:number,      \n    /** 源单已计划退回数量 */\n    public SourceReversePlanedQty:number,      \n    /** 源单已退回数量 */\n    public SourceReturnedQty:number,      \n    /** 出入库单号 */\n    public OrderId:string,      \n    /** 入库计划号 */\n    public PlanOrderId:string,      \n    /** 业务类型 */\n    public BusinessType:string,      \n    /** 移动类型 */\n    public MoveType:string,      \n    /** 源单单号 */\n    public SourceOrderId:string,      \n    /** 源单行号 */\n    public SourceOrderRowNum:string,      \n    /** 源单数量 */\n    public SourceOrderQty:number,      \n    /** 条码 */\n    public SN:string,      \n    /** 物料代码 */\n    public MaterialCode:string,      \n    /** 物料名称 */\n    public MaterialName:string,      \n    /** 物料规格 */\n    public MaterialSpecification:string,      \n    /** 物料属性 */\n    public MaterialAttribute:string,      \n    /** 物料类别 */\n    public MaterialCategory:string,      \n    /** 计量单位 */\n    public MeasureUnit:string,      \n    /** 辅助计量单位 */\n    public MeasureAuxUnit:string,      \n    /** 辅助单位数量 */\n    public MeasureAuxQty:number,      \n    /** 批次号 */\n    public LotNum:string,      \n    /** 办理数量 */\n    public TransactQty:number,      \n    /** 实际数量 */\n    public ActualQty:number,      \n    /** 计划数量 */\n    public PlanQty:number,      \n    /** 生产日期 */\n    public ProductionDate:Date,      \n    /** 保质期 */\n    public ExpiryDays:number,      \n    /** 有效期 */\n    public ExpirationDate:Date,      \n    /** 保质期单位 */\n    public ExpiryUnit:string,      \n    /** 是否已完成 */\n    public IsCompleted:boolean,      \n    /** 完成时间 */\n    public CompletedTime:Date,      \n    /** 是否传送ERP */\n    public IsSendToErp:boolean,      \n    /** 是否先进先出 */\n    public IsFifo:boolean,      \n    /** 供应商编码 */\n    public SupplierCode:string,      \n    /** 供应商名称 */\n    public SupplierName:string,      \n    /** 客户编码 */\n    public CustomerCode:string,      \n    /** 客户名称 */\n    public CustomerName:string,      \n    /** 发货地址 */\n    public ShippingAddress:string,      \n    /** 入库仓库代码 */\n    public InWarehouseCode:string,      \n    /** 入库仓库名称 */\n    public InWarehouseName:string,      \n    /** 入库库区代码 */\n    public InWarehouseAreaCode:string,      \n    /** 入库库区名称 */\n    public InWarehouseAreaName:string,      \n    /** 入库货架代码 */\n    public InWarehouseShelfCode:string,      \n    /** 入库货架名称 */\n    public InWarehouseShelfName:string,      \n    /** 入库库位代码 */\n    public InStorageLocationCode:string,      \n    /** 入库库位名称 */\n    public InStorageLocationName:string,      \n    /** 出库仓库代码 */\n    public OutWarehouseCode:string,      \n    /** 出库仓库名称 */\n    public OutWarehouseName:string,      \n    /** 出库库区代码 */\n    public OutWarehouseAreaCode:string,      \n    /** 出库库区名称 */\n    public OutWarehouseAreaName:string,      \n    /** 出库货架代码 */\n    public OutWarehouseShelfCode:string,      \n    /** 出库货架名称 */\n    public OutWarehouseShelfName:string,      \n    /** 出库库位代码 */\n    public OutStorageLocationCode:string,      \n    /** 出库库位名称 */\n    public OutStorageLocationName:string,      \n    /** 是否遵循先进先出 */\n    public IsAccordingToFifo:boolean,      \n    /** 器具编码 */\n    public ApplianceCode:string,      \n    /** 附件编码 */\n    public AttachFileCode:string,      \n    /** 工厂代码 */\n    public FactoryCode:string,      \n    /** 创建用户Id */\n    public CreatorUserId:number,      \n    /** 备注 */\n    public Remark:string,      \n    /** 扩展字段1 */\n    public SField1:string,      \n    /** 扩展字段2 */\n    public SField2:string,      \n    /** 扩展字段3 */\n    public SField3:string,      \n    /** 扩展字段4 */\n    public FField1:number,      \n    /** 扩展字段5 */\n    public FField2:number,      \n    /** 扩展字段6 */\n    public FField3:number,      \n    /** 扩展字段7 */\n    public DField1:Date,      \n    /** 扩展字段8 */\n    public DField2:Date,      \n    /** 扩展字段9 */\n    public DField3:Date,      \n    /** 扩展字段10 */\n    public DField4:Date,      \n    /** 操作标志 */\n    public OpSign:number,      \n    /** 自增键 */\n    public Id:number,      \n    /** 库存数量 */\n    public InventoryQty:number,      \n    /** 冻结数量 */\n    public FreezeQty:number,      \n    /** 可用数量 */\n    public AvailableQty:number, \n  ) {\n    super();\n  }\n  static create(): PurchaseReturnedTransactOrderDetails {\n    return new PurchaseReturnedTransactOrderDetails(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 采购退货出库办理单模型 */\nexport class PurchaseReturnedTransactOrder {\n  constructor(\n    /** 单据头 */\n    public OrderMaster: PurchaseReturnedTransactOrderMaster,\n    /** 单据明细列表 */\n    public OrderDetails: PurchaseReturnedTransactOrderDetails[]\n  ) {}\n  static create(): PurchaseReturnedTransactOrder {\n    return new PurchaseReturnedTransactOrder(null, null);\n  }\n}\n","export const PurcahseInPlanOrderDetailFormInterface = {\n  interfaceType: 'post',\n  port: 52883,\n  controllerName: 'PurchaseBusinessPlanApi',\n  interfaceName: 'GetPurchaseInPlanOrderDetailsDatasBy'\n};\n\nexport const PurchaseInPlanOrderDetailTableFieldDataset = [\n  { name: 'MaterialCode', displayName: '物料编号', width: 120 },\n  { name: 'MaterialName', displayName: '物料名称', width: 150 },\n  { name: 'MaterialSpecification', displayName: '物料规格', width: 200, rhEllipsis: true },\n  { name: 'SourceOrderQty', displayName: '源单数量', width: 120 },\n  { name: 'SourceCompletedQty', displayName: '源单完成数量', width: 120 },\n  { name: 'ProductionDate', displayName: '生产日期', width: 150 },\n  { name: 'LotNum', displayName: '批次号', width: 150 },\n  { name: 'SourceOrderId', displayName: '源单号', width: 150 },\n  { name: 'SourceOrderRowNum', displayName: '源单行号', width: 150 },\n  {\n    name: 'MaterialCategory',\n    displayName: '物料类别',\n    width: 120,\n    type: 'array',\n    config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'MaterialCategory' }\n  },\n  {\n    name: 'MaterialAttribute',\n    displayName: '物料属性',\n    width: 120,\n    type: 'array',\n    config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'ProductMaterialAttribute' }\n  },\n  {\n    name: 'MeasureUnit',\n    displayName: '计量单位',\n    width: 120,\n    type: 'array',\n    config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n  },\n  {\n    name: 'MeasureAuxUnit',\n    displayName: '辅助单位',\n    width: 120,\n    type: 'array',\n    config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n  },\n  { name: 'MeasureAuxQty', displayName: '辅助数量', width: 120 },\n  { name: 'PlanQty', displayName: '计划数量', width: 120 },\n  { name: 'PlanTransactedQty', displayName: '计划已办理数量', width: 120 },\n  { name: 'Remark', displayName: '备注', width: 150, rhEllipsis: true }\n];\n\nexport const PurcahseInSourceOrderDetailFormInterface = {\n  interfaceType: 'post',\n  port: 52883,\n  controllerName: 'PurchaseBusinessTransactApi',\n  interfaceName: 'GetExtPurchaseOrderDetail'\n};\n\nexport const PurchaseInSourceOrderDetailTableFieldDataset = [\n  { name: 'MaterialCode', displayName: '物料编号', width: 120 },\n  { name: 'MaterialName', displayName: '物料名称', width: 150 },\n  { name: 'MaterialSpecification', displayName: '物料规格', width: 200, rhEllipsis: true },\n  { name: 'SourceOrderQty', displayName: '源单数量', width: 120 },\n  { name: 'SourceCompletedQty', displayName: '源单完成数量', width: 120 },\n  { name: 'ProductionDate', displayName: '生产日期', width: 150 },\n  { name: 'LotNum', displayName: '批次号', width: 150 },\n  { name: 'SourceOrderId', displayName: '源单号', width: 150 },\n  { name: 'SourceOrderRowNum', displayName: '源单行号', width: 150 },\n  {\n    name: 'MaterialCategory',\n    displayName: '物料类别',\n    width: 120,\n    type: 'array',\n    config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'MaterialCategory' }\n  },\n  {\n    name: 'MaterialAttribute',\n    displayName: '物料属性',\n    width: 120,\n    type: 'array',\n    config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'ProductMaterialAttribute' }\n  },\n  {\n    name: 'MeasureUnit',\n    displayName: '计量单位',\n    width: 120,\n    type: 'array',\n    config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n  },\n  {\n    name: 'MeasureAuxUnit',\n    displayName: '辅助单位',\n    width: 120,\n    type: 'array',\n    config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n  },\n  { name: 'MeasureAuxQty', displayName: '辅助数量', width: 120 },\n  { name: 'PlanQty', displayName: '计划数量', width: 120 },\n  { name: 'PlanTransactedQty', displayName: '计划已办理数量', width: 120 },\n  { name: 'Remark', displayName: '备注', width: 150, rhEllipsis: true }\n];\n\nexport const PurcahseReturnPlanOrderDetailFormInterface = {\n  interfaceType: 'post',\n  port: 52883,\n  controllerName: 'PurchaseBusinessPlanApi',\n  interfaceName: 'GetPurchaseInPlanOrderDetailsDatasBy'\n};\n\nexport const PurcahseReturnOrderDetailTableFieldDataset = [\n  { name: 'MaterialCode', displayName: '物料编号', width: 120 },\n  { name: 'MaterialName', displayName: '物料名称', width: 150 },\n  { name: 'MaterialSpecification', displayName: '物料规格', width: 200, rhEllipsis: true },\n  { name: 'OutWarehouseCode', displayName: '仓库代码', width: 120 },\n  { name: 'OutWarehouseName', displayName: '仓库名称', width: 150 },\n  { name: 'SourceOrderId', displayName: '销售单号', width: 150 },\n  { name: 'SourceOrderRowNum', displayName: '销售单行号', width: 150 },\n  {\n    name: 'MaterialCategory',\n    displayName: '物料类别',\n    width: 120,\n    type: 'array',\n    config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'MaterialCategory' }\n  },\n  {\n    name: 'MaterialAttribute',\n    displayName: '物料属性',\n    width: 120,\n    type: 'array',\n    config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'ProductMaterialAttribute' }\n  },\n  {\n    name: 'MeasureUnit',\n    displayName: '计量单位',\n    width: 120,\n    type: 'array',\n    config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n  },\n  {\n    name: 'MeasureAuxUnit',\n    displayName: '辅助单位',\n    width: 120,\n    type: 'array',\n    config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n  },\n  { name: 'MeasureAuxQty', displayName: '辅助数量', width: 120 },\n  { name: 'PlanQty', displayName: '计划数量', width: 120 },\n  { name: 'PlanTransactedQty', displayName: '计划已办理数量', width: 120 },\n  { name: 'Remark', displayName: '备注', width: 150, rhEllipsis: true }\n];\n\nexport const PurcahseReturnSourceOrderDetailFormInterface = {\n  interfaceType: 'post',\n  port: 52883,\n  controllerName: 'PurchaseBusinessTransactApi',\n  interfaceName: 'GetPurchaseInTransactOrderDetailsDatasBy'\n};\n\nexport const PurcahseReturnSourceOrderDetailTableFieldDataset = [\n  { name: 'MaterialCode', displayName: '物料编号', width: 120 },\n  { name: 'MaterialName', displayName: '物料名称', width: 150 },\n  { name: 'MaterialSpecification', displayName: '物料规格', width: 200, rhEllipsis: true },\n  { name: 'OutWarehouseCode', displayName: '仓库代码', width: 120 },\n  { name: 'OutWarehouseName', displayName: '仓库名称', width: 150 },\n  { name: 'SourceOrderId', displayName: '采购单号', width: 150 },\n  { name: 'SourceOrderRowNum', displayName: '采购单行号', width: 150 },\n  {\n    name: 'MaterialCategory',\n    displayName: '物料类别',\n    width: 120,\n    type: 'array',\n    config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'MaterialCategory' }\n  },\n  {\n    name: 'MaterialAttribute',\n    displayName: '物料属性',\n    width: 120,\n    type: 'array',\n    config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'ProductMaterialAttribute' }\n  },\n  {\n    name: 'MeasureUnit',\n    displayName: '计量单位',\n    width: 120,\n    type: 'array',\n    config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n  },\n  {\n    name: 'MeasureAuxUnit',\n    displayName: '辅助单位',\n    width: 120,\n    type: 'array',\n    config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n  },\n  { name: 'MeasureAuxQty', displayName: '辅助数量', width: 120 },\n  { name: 'SourceOrderQty', displayName: '源单数量', width: 120 },\n  { name: 'SourceCompletedQty', displayName: '源单已办理数量', width: 120 },\n  { name: 'Remark', displayName: '备注', width: 150, rhEllipsis: true }\n];\n","import { RhBusinessManageService } from './../../../business-manage.service';\nimport { Observable } from 'rxjs';\nimport { RhPurchaseBusinessService } from './../../purchase-business.service';\nimport { Component, OnInit, Input, Output, EventEmitter, SimpleChanges } from '@angular/core';\nimport { RhBaseDto, RhSelectableDto, DataResultT, RhTableButtonInfoDto, OpMode, RhSafeAny } from 'rh-base/model';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport { PurchaseInPlanOrderDetails } from '../../purchase-business-model';\nimport { PurcahseInSourceOrderDetailFormInterface, PurchaseInSourceOrderDetailTableFieldDataset } from '../../detail-source-table-config';\n\n@Component({\n  selector: 'rh-purchase-in-plan-details',\n  templateUrl: './purchase-in-plan-details.component.html',\n  styleUrls: ['./purchase-in-plan-details.component.less']\n})\nexport class PurchaseInPlanDetailsComponent implements OnInit {\n  @Input() rhPlanOrder: RhBaseDto;\n  @Input() rhSourceDataset: RhSelectableDto[] = [];\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter();\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto(\n      'deleteDetails',\n      '删除',\n      'primary',true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhSelectableDto[]),\n      false,\n      true\n    ),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset = [new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)];\n  tableVisibleSetting = {};\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  sourceDefaultQueryDto = {};\n  isEnterEditStatus = false;\n  // 源单明细\n  sourceOrderDetailFormInterface = PurcahseInSourceOrderDetailFormInterface;\n  sourceOrderDetailTableFieldDataset = PurchaseInSourceOrderDetailTableFieldDataset;\n\n  editDisabled = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return !list.includes(data.OrderStatus);\n  };\n\n  get isReadOnlyTable() {\n    return this.rhShowDetail || !this.rhPlanOrder?.PlanOrderId || this.isEnterEditStatus || this.editDisabled(this.rhPlanOrder);\n  }\n\n  get readeOnlyButtonDataset() {\n    if (!this.rhPlanOrder?.PlanOrderId) return [];\n    else if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(private operator: RhPurchaseBusinessService, public businessManageSer: RhBusinessManageService) {}\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhPlanOrder, rhSourceDataset } = changes;\n    if (rhPlanOrder && rhPlanOrder.currentValue) {\n      this.initInPlanOrderDetailDataset();\n    }\n    /** 选中源单带来数据源 */\n    if (rhSourceDataset && rhSourceDataset.currentValue && rhSourceDataset.currentValue.length) {\n      if (!this.rhPlanOrder.PlanOrderId) this.handleSourceDataset(this.rhSourceDataset, true);\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getDynamicVisibleSetting(['LotNum']));\n  }\n\n  /** 初始化明细数据 */\n  initInPlanOrderDetailDataset() {\n    if (this.rhPlanOrder.PlanOrderId) {\n      if (this.rhSourceDataset.length) {\n        const dataset = this.dataresult.Attach;\n        dataset.forEach((data) => {\n          data.PlanOrderId = this.rhPlanOrder.PlanOrderId;\n          data.BusinessType = this.rhPlanOrder.BusinessType;\n          data.InWarehouseCode = this.rhPlanOrder.InWarehouseCode;\n          data.InWarehouseName = this.rhPlanOrder.InWarehouseName;\n        });\n        this.storeDatas(dataset).subscribe(() => {\n          this.rhSourceDataset = [];\n          this.getDatas();\n        });\n      } else {\n        this.getDatas();\n      }\n    }\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      PlanOrderId: this.rhPlanOrder.PlanOrderId,\n      SourceOrderId: this.rhPlanOrder.SourceOrderId,\n      FactoryCode: this.rhPlanOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetPurchaseInPlanOrderDetailsDatasBy(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`);\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (this.editDisabled(this.rhPlanOrder)) {\n      MsgHelper.ShowWarningMessage('当前单据状态无法编辑入库计划明细！');\n      return;\n    }\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    const checkRes = this.checkStoreDatas(details);\n    if (!checkRes) {\n      return;\n    }\n    return new Observable((observer) => {\n      const dto = {\n        OrderMaster: this.rhPlanOrder,\n        OrderDetails: details\n      };\n      const msg = editType === 'add' ? '新增' : '编辑';\n      this.dataLoading = true;\n      this.operator.StorePurchaseInPlanOrderDetails(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`);\n          } else {\n            MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n          observer.next();\n          observer.complete();\n        },\n        () => {\n          this.dataLoading = false;\n          observer.error();\n        }\n      );\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[]) {\n    this.extraButtonHandleDataset[1].loading = true;\n    this.operator.RemovePurchaseInPlanOrderDetails(details).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n          this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n        }\n        this.extraButtonHandleDataset[1].loading = false;\n      },\n      () => (this.extraButtonHandleDataset[1].loading = false)\n    );\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  async handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    // 获取源单统计信息\n    const convertResult = await this.businessManageSer.convertSourceOrderStatisticsDatasToSelectedDatas(\n      this.rhPlanOrder.SourceOrderId,\n      this.rhPlanOrder.BusinessType,\n      details\n    );\n    const datas = details.map((data) => {\n      const temp = PurchaseInPlanOrderDetails.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 源单赋值\n      if (!convertResult) {\n        // temp.SourceOrderId = data.PurchaseCode;\n        temp.SourceOrderId = this.rhPlanOrder.SourceOrderId;\n        temp.SourceOrderRowNum = data.PurchaseOrderRowNum;\n        temp.SourceOrderQty = data.PurchaseQty;\n        temp.SourceCompletedQty = data.ReceivedQty;\n      }\n      // 单头赋值\n      temp.PlanOrderId = this.rhPlanOrder.PlanOrderId;\n      temp.BusinessType = this.rhPlanOrder.BusinessType;\n      temp.InWarehouseCode = this.rhPlanOrder.InWarehouseCode;\n      temp.InWarehouseName = this.rhPlanOrder.InWarehouseName;\n      temp.FactoryCode = this.rhPlanOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n      }\n      this.dataresult = { Attach: (this.dataresult.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  /** 检查保存数据 */\n  checkStoreDatas(details: RhSelectableDto[]) {\n    // 必须填写计划数量\n    if (details.some((f) => !f.PlanQty)) {\n      MsgHelper.ShowWarningMessage('计划数量不能为0或空！');\n      return false;\n    }\n    // 计划批次号开启后，可填可不填，只判断超额入库\n    if (!this.businessManageSer.IsEnableExcessInWarehouse) {\n      if (details.some((f) => (f.PlanQty + f.SourcePlannedQty + f.SourceCompletedQty) > f.SourceOrderQty)) {\n        MsgHelper.ShowWarningMessage('未启用超额入库！不能超额计划源单数量！');\n        return false;\n      }\n    }\n    return true;\n  }\n\n  openDataModal() {\n    this.sourceDefaultQueryDto = {\n      PurchaseCode: this.rhPlanOrder.SourceOrderId ? `$${this.rhPlanOrder.SourceOrderId}` : null,\n      FactoryCode: this.rhPlanOrder.FactoryCode\n    };\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n}\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n    <rh-dynamic-table\n      rhName=\"handleDetailsReadOnlyTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    ></rh-dynamic-table>\n  </ng-container>\n  <ng-template #handleTpl>\n    <rh-dynamic-table\n      rhName=\"handleDetailsTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    >\n    </rh-dynamic-table>\n  </ng-template>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"'选择采购入库源单'\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <!-- <rh-purchase-warehousing-source-order-table (rhModelChange)=\"onSelectModal($event)\"\n                [rhDefaultQueryDto]=\"sourceDefaultQueryDto\" [rhSingleMode]=\"false\">\n            </rh-purchase-warehousing-source-order-table> -->\n      <rh-dynamic-single-table\n        rhName=\"sourceOrderDetailTable\"\n        [rhInterfaceInfo]=\"sourceOrderDetailFormInterface\"\n        [rhDefaultFieldDataset]=\"sourceOrderDetailTableFieldDataset\"\n        [rhPara]=\"sourceDefaultQueryDto\"\n        (rhSelectedDatasChange)=\"onSelectModal($event)\"\n      ></rh-dynamic-single-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { RhBusinessManageService } from './../../../../business-manage.service';\nimport { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { CustomizeBaseTableComponent, DynamicFormComponent } from 'rh-base/shared';\nimport {\n  RhDynamicInterfaceDto,\n  RhSelectableDto,\n  DataResultT,\n  RhTableQueryOptionDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto\n} from 'rh-base/model';\nimport { MsgHelper } from 'rh-base/core';\n\n@Component({\n  selector: 'rh-purchase-warehousing-source-order-table',\n  templateUrl: './purchase-warehousing-source-order-table.component.html',\n  styleUrls: ['./purchase-warehousing-source-order-table.component.less']\n})\nexport class PurchaseWarehousingSourceOrderTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n  @Input() rhSingleMode = false;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() rhDisabled: boolean;\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto>();\n\n  rhName = 'PurchaseInPlanSourceOrderSelector';\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n  defaultInterfaceInfo: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'PurchaseBusinessPlanApi',\n    interfaceName: 'GetExtPurchaseOrderDetail'\n  };\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [\n    { name: 'PurchaseCode', displayName: '采购单号', placeholder: '采购单号', editable: true, required: true },\n    {\n      name: 'FactoryCode',\n      displayName: '工厂',\n      placeholder: '工厂',\n      editable: true,\n      required: true,\n      type: 'array',\n      config: { port: '52880', controllerName: 'FactoryLayoutWebApi', interfaceName: 'GetFactoryInfoSelectItems' }\n    }\n  ];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [\n    { name: 'PurchaseCode', displayName: '采购单号', width: 150 },\n    { name: 'PurchaseOrderRowNum', displayName: '采购单行号', width: 120 },\n    { name: 'PurchaseDate', displayName: '采购日期', width: 120, type: 'date', pipeSetting: 'yyyy-MM-dd' },\n    { name: 'DeliveryDate', displayName: '交货日期', width: 120, type: 'date', pipeSetting: 'yyyy-MM-dd' },\n    { name: 'PurchaseQty', displayName: '采购数量', width: 120 },\n    { name: 'ReceivedQty', displayName: '已收数量', width: 120 },\n    { name: 'UnReceiveQty', displayName: '未收数量', width: 120 },\n    { name: 'SupplierCode', displayName: '供应商代码', width: 120 },\n    { name: 'SupplierName', displayName: '供应商名称', width: 120 },\n    { name: 'SupplierLotNum', displayName: '供应商批次', width: 120 },\n    { name: 'MaterialCode', displayName: '物料编号', width: 120 },\n    { name: 'MaterialName', displayName: '物料名称', width: 120 },\n    { name: 'MaterialSpecification', displayName: '物料规格', width: 200, rhEllipsis: true },\n    { name: 'Remark', displayName: '备注', width: 120, rhEllipsis: true },\n    { name: 'FactoryCode', displayName: '工厂代码', width: 120 }\n  ];\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  visibleSetting = {};\n\n  constructor(private businessManageSer: RhBusinessManageService) {\n    //\n    super();\n  }\n\n  ngOnInit(): void {\n    this.rhInterfaceInfo = this.rhInterfaceInfo || this.defaultInterfaceInfo;\n    this.initVisibleSetting();\n  }\n\n  initVisibleSetting() {\n    Object.assign(this.visibleSetting, this.businessManageSer.getMaterialInspectorVisibleSetting());\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  // TODO 测试数据\n  setDatas(result: DataResultT<RhSelectableDto[]>) {\n    if (result && result.Success) {\n      result.Attach.forEach((data) => {\n        if (!data.PurchaseCode) {\n          data.PurchaseCode = 'test123456';\n        }\n      });\n      this.dataresult = result;\n      this.rhDatasetChange.next(result.Attach);\n    } else {\n      this.rhDatasetChange.next(null);\n      MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n    }\n  }\n}\n","<!-- 搜索Form区域 -->\n<div class=\"search-area rh-full\">\n  <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n    <ng-template #searchTpl>\n      <rh-dynamic-form #queryForm rhName=\"{{ rhName }}Form\" [rhValue]=\"rhDefaultQueryDto\"\n        (rhInterfaceDataChange)=\"setDatas($event)\" (rhDataloadingChange)=\"dataLoadingChange($event)\"\n        (rhOutParaChange)=\"setInitFieldDataset($event)\" [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n        [(rhFormInterface)]=\"rhInterfaceInfo\">\n      </rh-dynamic-form>\n    </ng-template>\n  </nz-alert>\n</div>\n<!-- 搜索结果Table展示区域 -->\n<div class=\"table-area\">\n  <rh-dynamic-table rhName=\"{{ rhName }}Table\" [rhTableData]=\"dataresult\" [rhTableDataloading]=\"dataLoading\"\n    [rhDefaultFieldDataset]=\"defaultTableFieldDataset\" (rhRefresh)=\"refreshDatas($event)\"\n    (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\" [rhSingleMode]=\"rhSingleMode\"\n    [rhVisibleSetting]=\"visibleSetting\"></rh-dynamic-table>\n</div>","import { Component, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, SimpleChanges } from '@angular/core';\nimport { provideValueAccessor, RhRouteHelper, MsgHelper } from 'rh-base/core';\nimport { CustomizeBaseControlComponent, RhBaseDynamicService } from 'rh-base/shared';\nimport { NzSizeLDSType } from 'ng-zorro-antd/core/types';\nimport { PurchaseWarehousingSourceOrderTableComponent } from './purchase-warehousing-source-order-table/purchase-warehousing-source-order-table.component';\nimport {\n  RhSelectableDto,\n  RhDynamicFormFieldDto,\n  RhSafeAny,\n  DataResultT,\n  RhDynamicInterfaceDto,\n  RhDynamicCustomizeControlConfigDto,\n  RhRelatedFieldDataDto,\n  RhCustomizeEventSettingDto,\n  RhDisplayMode\n} from 'rh-base/model';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { RhBusinessManageService } from './../../../../business-manage/business-manage.service';\n\n@Component({\n  selector: 'rh-purchase-warehousing-source-order-selector',\n  templateUrl: './purchase-warehousing-source-order-selector.component.html',\n  styleUrls: ['./purchase-warehousing-source-order-selector.component.less'],\n  providers: [provideValueAccessor(PurchaseWarehousingSourceOrderSelectorComponent)]\n})\nexport class PurchaseWarehousingSourceOrderSelectorComponent extends CustomizeBaseControlComponent {\n  rhRelatedFieldData = null;\n  @ViewChild(PurchaseWarehousingSourceOrderTableComponent) tableComp: PurchaseWarehousingSourceOrderTableComponent;\n  @Input() rhDynamicKey = 'PurchaseInPlanSourceOrder';\n  @Input() rhTitle = '选择采购入库源单';\n  @Input() declare rhSize: NzSizeLDSType;\n  @Input() declare rhDisplayMode: RhDisplayMode;\n  @Input() rhDefaultQueryDto = {};\n\n  iconSetting = 'search';\n  @Input() rhSingleMode = false;\n\n  formKeyFieldName = 'SourceOrderId';\n  formTextFieldName = 'SourceOrderId';\n\n  modelKeyFieldName = 'PurchaseCode';\n  modelTextFieldName = 'PurchaseCode';\n\n  // // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  /** 对应table选中的数据 */\n  rhModel: RhSelectableDto = {};\n\n  /** 动态form字段配置数据 */\n  @Input() rhFieldData: RhDynamicFormFieldDto;\n  /** 整个form的数据 */\n  @Input() declare rhData: RhSafeAny;\n\n  /** 表格Loading */\n  // dataLoading = false;\n  // dataresult: DataResultT<RhSelectableDto[]>;\n\n  /** selector input上展示的数据，一般为中文 */\n  //displayName: string;\n\n  declare selectedData: RhSelectableDto[];\n\n  /** 自定义组件的自定义执行函数 */\n  cb: (data: RhSafeAny, ctx: RhSafeAny) => void;\n\n  /** 该组件关联的form名称 */\n  formName: string;\n\n  url: string;\n\n  /** 设置默认搜索接口 */\n  defaultFormInterface: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'PurchaseBusinessPlanApi',\n    interfaceName: 'GetExtPurchaseOrderDetail'\n  };\n\n  mappedList = [\n    { sourceName: this.modelKeyFieldName, mappedName: this.formKeyFieldName },\n    { sourceName: this.modelTextFieldName, mappedName: this.formTextFieldName },\n    { sourceName: 'PurchaseOrderRowNum', mappedName: 'SourceOrderRowNum' },\n    // { sourceName: 'ArrivalDate', mappedName: 'ArrivalDate' },\n    { sourceName: 'SupplierCode', mappedName: 'SupplierId' },\n    { sourceName: 'SupplierName', mappedName: 'Supplier' }\n    // { sourceName: 'Contacts', mappedName: 'Contacts' },\n    // { sourceName: 'ContactNumber', mappedName: 'ContactNumber' }\n  ];\n\n  constructor(\n    public fb: UntypedFormBuilder,\n    public cdr: ChangeDetectorRef,\n    public router: Router,\n    public dynamicSer: RhBaseDynamicService,\n    public businessManageSer: RhBusinessManageService\n  ) {\n    super(cdr, dynamicSer);\n    this.url = RhRouteHelper.getRealRoute(this.router.url);\n  }\n\n  ngOnInit(): void {\n    this.rhPlaceholder = this.rhFieldData.placeholder as any;\n    this.formName = this.rhFieldData.relatedComponentName;\n    this.setCbValue();\n  }\n\n  // 自定义表单项配置\n  ngOnChanges(changes: SimpleChanges) {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue && rhData.currentValue[this.formKeyFieldName] === null) {\n      this.resetControlValue();\n    } else {\n      this.rhModel = {};\n    }\n  }\n\n  // dataLoadingChange(status: boolean) {\n  //   this.dataLoading = status;\n  // }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedData = data || null;\n  }\n\n  // setDatas(result: DataResultT<RhSelectableDto[]>) {\n  //   if (result && result.Success) {\n  //     this.dataresult = result;\n  //   } else {\n  //     MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n  //   }\n  // }\n\n  /** 根据填入的code值，获取对应的完整数据，回填到输入框 */\n  getTargetDatas(code: string) {\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n  }\n\n  //#region customize selector interface区域\n  async confirmSelect() {\n    this.rhModel = this.selectedData[0];\n    this.rhModelChange.emit(this.selectedData);\n    this.value = this.rhModel[this.modelKeyFieldName];\n    this.displayName = this.rhModel[this.modelTextFieldName];\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // 执行对应控件定义的代码\n    if (this.rhData && this.rhModel && this.cb) {\n      this.cb(this.rhData, this.rhModel);\n    }\n    this.setFormDataViaRelatedDatas();\n    // 执行form的相关字段赋值操作\n    this.triggerRelatedForm();\n    this.closeDataModal();\n  }\n\n  resetControlValue() {\n    this.displayName = null;\n    // 重置form对应数据对象\n    this.rhData[this.formKeyFieldName] = null;\n    this.rhData[this.formTextFieldName] = null;\n    //\n    this.mappedList.forEach((ele) => (this.rhData[ele.mappedName] = null));\n    this.rhModel = null;\n  }\n\n  setCbValue() {\n    const cbString = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.cb;\n    if (cbString) {\n      const fn = Function(`return ${cbString}`);\n      if (fn) {\n        this.cb = fn();\n      } else {\n        this.cb = this.setFormData;\n      }\n    } else {\n      // 当没有配置回调函数时，执行默认的回调函数\n      this.cb = this.setFormData;\n    }\n  }\n\n  /** 设置form对应的数据对象的值\n   * @param data form对应的数据对象\n   * @params 设置或者对应table选择的数据\n   */\n  setFormData(data: RhSafeAny, ctx: RhSelectableDto) {\n    data[this.formKeyFieldName] = ctx[this.modelKeyFieldName];\n    data[this.formTextFieldName] = ctx[this.modelTextFieldName];\n  }\n\n  setFormDataViaRelatedDatas() {\n    let relatedDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedModelDatas;\n    if (!relatedDatas?.length) {\n      relatedDatas = this.mappedList;\n    }\n    if (relatedDatas?.length) {\n      relatedDatas.forEach((ele) => {\n        this.rhData[ele.mappedName] = this.rhModel[ele.sourceName];\n      });\n    }\n  }\n\n  triggerRelatedForm() {\n    const tempDatas = (this.rhFieldData.config as RhDynamicCustomizeControlConfigDto)?.relatedFieldDatas;\n    const relatedDatas: RhRelatedFieldDataDto[] = tempDatas && tempDatas.length ? tempDatas : this.mappedList;\n    const data: RhCustomizeEventSettingDto = {\n      id: `${this.url}_${this.formName}`,\n      eventType: null,\n      options: null,\n      value: this.rhModel,\n      relatedFieldDatas: relatedDatas\n    };\n    this.dynamicSer.formCustomizeEventTrigger(data);\n  }\n  //#endregion customize selector interface区域结束\n}\n","<nz-input-group [nzSize]=\"rhSize\" [nzSuffix]=\"suffixIconSearch\" [nzAddOnAfter]=\"addOnAfter\">\n  <input type=\"text\" nz-input [ngModel]=\"displayName\" [placeholder]=\"rhPlaceholder\" readonly=\"readonly\" />\n</nz-input-group>\n<ng-template #suffixIconSearch>\n  <a *ngIf=\"displayName && !rhDisabled\" class=\"link-suffix\" (click)=\"clearInputInfo()\">\n    <i nz-icon nzType=\"close-circle\"></i>\n  </a>\n</ng-template>\n\n<ng-template #addOnAfter>\n  <button nz-button nzType=\"link\" type=\"button\" nzSize=\"small\">\n    <a (click)=\"openDataModal($event)\">\n      <i nz-icon [nzType]=\"iconSetting\"></i>\n    </a>\n  </button>\n</ng-template>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"rhTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedData\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-purchase-warehousing-source-order-table\n        [rhModel]=\"rhModel\"\n        (rhModelChange)=\"onSelectModal($event)\"\n        [rhInterfaceInfo]=\"defaultFormInterface\"\n        [rhSingleMode]=\"rhSingleMode\"\n        [rhDefaultQueryDto]=\"rhDefaultQueryDto\"\n      >\n      </rh-purchase-warehousing-source-order-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { BusinessType } from './../../business-type';\nimport { RhBusinessManageService } from './../../business-manage.service';\nimport { RhPurchaseBusinessService } from './../purchase-business.service';\nimport { RhSharedManageService } from './../../../shared-manage/shared-manage.service';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport {\n  RhBaseDto,\n  DataResultT,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  RhLoginedUserDto,\n  OpMode,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto,\n  RhSafeAny,\n  OpResult\n} from 'rh-base/model';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\n\ntype TabType = 'edit' | 'detail' | 'audit';\n\n/**\n * 采购入库计划：有计划有源单\n */\n@Component({\n  selector: 'rh-purchase-in-plan',\n  templateUrl: './purchase-in-plan.component.html',\n  styleUrls: ['./purchase-in-plan.component.less']\n})\nexport class RhPurchaseInPlanComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  BusinessType = BusinessType.PurchaseIn;\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isShowCloseInPlanRemarkModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  closeDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n  /** 显示配置 */\n  visibleSetting = {};\n  /** 选中的采购计划源单的数据 */\n  selectedSourceDataset: RhSelectableDto[] = [];\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  completeVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitInWarehouse';\n  };\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  isAsCreated = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto)),\n    new RhTableButtonInfoDto('submit', '提交审核', 'default', false, 'form', false, null, (data) => this.submitDataToAudit(data as RhBaseDto)),\n    new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) =>\n      this.openDetailTab({ data } as RhBaseDto, 'audit')\n    ),\n    new RhTableButtonInfoDto(\n      'close',\n      '关闭',\n      'default',\n      false,\n      'close-circle',\n      false,\n      null,\n      (data) => this.openCloseInPlanRemarkModal(data as RhBaseDto),\n      null,\n      null,\n      'red'\n    )\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '新建', 'primary', false, 'file', false, null, () => this.openEditTab(), true),\n    new RhTableButtonInfoDto(\n      'delete',\n      '删除',\n      'primary',true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhBaseDto[]),\n      false,\n      false,\n      'red'\n    )\n  ];\n\n  beforeSubmit = async (data: RhBaseDto, context: DynamicFormComponent) => {\n    let result: OpResult = null;\n    const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n    context.submitLoading = true;\n    try {\n      if (this.editDto.OpSign === OpMode.OpAdd) {\n        // 基本信息\n        data.BusinessType = this.BusinessType;\n        data.Creator = this.currentUser.DisplayName;\n        data.CreatorId = this.currentUser.UserName;\n        data.PurchaseOrderCode = data.SourceOrderId;\n\n        result = await this.operator.CreatePurchaseInPlanMasterOrder(data).toPromise();\n      } else {\n        result = await this.operator.UpdatePurchaseInPlanMasterOrder(data).toPromise();\n      }\n      if (result && result.Success) {\n        MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n        this.editDto.PlanOrderId = result?.Attach?.PlanOrderId;\n        this.isShowEditForm = false;\n        this.getDetails();\n      } else {\n        MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n      }\n    } catch (error) {\n      //\n    } finally {\n      context.submitLoading = false;\n    }\n\n    return false;\n  };\n\n  beforeSubmitAudit = (data: RhBaseDto) => {\n    if (!data.IsPass && !data.AuditMessage) {\n      MsgHelper.ShowWarningMessage('审核不通过，必须填写审核信息！');\n      return;\n    }\n    // 基本信息\n    data.SupplierCode = this.editDto.SupplierId;\n    data.SupplierName = this.editDto.Supplier;\n    data.Auditor = this.currentUser.DisplayName;\n    data.AuditorId = this.currentUser.UserName;\n\n    return true;\n  };\n\n  constructor(\n    private operator: RhPurchaseBusinessService,\n    public businessManageSer: RhBusinessManageService,\n    public storage: RhStorageService,\n    public sharedManageSer: RhSharedManageService\n  ) {}\n\n  ngOnInit(): void {\n    this.setUserInfo();\n    this.initEditButtonVisible();\n    this.initVisibleSetting();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  initEditButtonVisible() {\n    this.editButtonDataset[0].visible = this.editVisible.toString();\n    this.editButtonDataset[1].visible = this.isCreated.toString();\n    this.editButtonDataset[2].visible = this.auditVisible.toString();\n    this.editButtonDataset[3].visible = this.completeVisible.toString();\n  }\n\n  initVisibleSetting() {\n    Object.assign(this.visibleSetting, this.businessManageSer.getMaterialInspectorVisibleSetting());\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    this.selectedSourceDataset = [];\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {\n        TransactorCode: this.currentUser.UserName,\n        TransactorName: this.currentUser.DisplayName,\n        FactoryCode: this.currentUser.FactoryCode\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.editDto = null;\n    this.selectedIndex = 0;\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.selectedIndex = 1;\n  }\n\n  // 未退出页面，刷新数据内容\n  getDetails() {\n    const queryDto = { PlanOrderId: this.editDto.PlanOrderId };\n    this.operator.GetPurchaseInPlanOrderDatas(queryDto).subscribe((result) => {\n      if (result.Success && result.Attach.length === 1) {\n        this.editDto = result.Attach[0];\n        this.editDto.OpSign = OpMode.OpEdit;\n      }\n    });\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    }\n  }\n\n  sourceOrderDatasetChange(dataset: RhSelectableDto[]) {\n    if (dataset?.length) {\n      // 源单号赋值\n      this.editDto.SourceOrderId = dataset[0].PurchaseCode;\n      this.editDto.BusinessType = this.BusinessType;\n      this.selectedSourceDataset = [...dataset];\n    } else {\n      // 源单号赋值\n      this.editDto.SourceOrderId = null;\n      this.selectedSourceDataset = [];\n    }\n  }\n\n  //#region 操作区域开始\n  /** 提交审核 */\n  submitDataToAudit(data: RhBaseDto) {\n    if (this.isCreated(data)) {\n      const dto = { PlanOrderId: data.PlanOrderId };\n      this.dataLoading = true;\n      this.operator.SumbitAuditPurchaseInPlanOrder(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('提交审核成功！');\n            if (this.selectedIndex === 0) this.getDatas();\n            this.closeEditTab();\n          } else {\n            MsgHelper.ShowWarningMessage(`提交审核失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行提交审核！');\n    }\n  }\n\n  /** 审核 */\n  auditData(data: RhBaseDto) {\n    if (this.auditVisible(data)) {\n      this.openAuditDataModal(data);\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行审核！');\n    }\n  }\n\n  /** 打开审核弹窗 */\n  openAuditDataModal(data: RhBaseDto) {\n    this.auditDto = { PlanOrderId: data.PlanOrderId };\n    this.isShowAuditDataModal = true;\n  }\n\n  /** 关闭审核弹窗 */\n  closeAuditDataModal() {\n    this.auditDto = {};\n    this.isShowAuditDataModal = false;\n  }\n\n  /** 审核接口返回 */\n  onAuditData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('审核入库计划成功！');\n      this.closeAuditDataModal();\n      this.getDetails();\n    } else {\n      MsgHelper.ShowWarningModal(`审核入库计划失败！${result.Message}`);\n    }\n  }\n\n  /** 打开关闭计划备注弹窗 */\n  openCloseInPlanRemarkModal(data: RhBaseDto) {\n    this.closeDto = { PlanOrderId: data.PlanOrderId, Remark: data.Remark };\n    this.isShowCloseInPlanRemarkModal = true;\n  }\n\n  /** 关闭关闭计划备注弹窗 */\n  closeCloseInPlanRemarkModal() {\n    this.closeDto = {};\n    this.isShowCloseInPlanRemarkModal = false;\n  }\n\n  /** 关闭接口返回 */\n  onCloseData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('关闭入库计划成功！');\n      this.closeCloseInPlanRemarkModal();\n      this.getDatas();\n    } else {\n      MsgHelper.ShowWarningModal(`关闭入库计划失败！${result.Message}`);\n    }\n  }\n\n  /** 删除计划 */\n  removeDatas(datas: RhBaseDto[]) {\n    const some = datas.some((f) => !this.isAsCreated(f));\n    if (some) {\n      MsgHelper.ShowWarningMessage('只能删除制单状态的数据！');\n    } else {\n      this.dataLoading = true;\n      this.operator.RemovePurchaseInPlanOrders(datas as RhSafeAny).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('删除成功！');\n            this.getDatas();\n          } else {\n            MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    }\n  }\n  //#endregion 操作区域结束\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  >\n                  </rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                [rhVisibleSetting]=\"visibleSetting\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              ></rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>数据{{ editDto?.OpSign === 1 ? '新增' : '编辑' }}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button\n                    *ngIf=\"editVisible(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"isShowEditForm = true\"\n                  >\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button\n                    *ngIf=\"isCreated(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"submitDataToAudit(editDto)\"\n                  >\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                  <button *ngIf=\"auditVisible(editDto)\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else editDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  [rhVisibleSetting]=\"visibleSetting\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template rhTemplate=\"SourceOrderId\" let-formgroup let-setting=\"setting\" let-formData=\"formData\">\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-purchase-warehousing-source-order-selector\n                          [formControl]=\"formgroup.get('SourceOrderId')\"\n                          [rhFieldData]=\"setting\"\n                          [rhDisplayMode]=\"1\"\n                          [rhData]=\"formData\"\n                          [rhDefaultQueryDto]=\"curFactoryQueryDto\"\n                          (rhModelChange)=\"sourceOrderDatasetChange($event)\"\n                        >\n                        </rh-purchase-warehousing-source-order-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n\n                  <ng-template rhTemplate=\"ArrivalDate\" let-formgroup let-setting=\"setting\" let-formData=\"formData\">\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <nz-date-picker\n                          style=\"width: 100%\"\n                          [formControl]=\"formgroup.get('ArrivalDate')\"\n                          [nzDisabledDate]=\"sharedManageSer.disabledStartDate\"\n                        ></nz-date-picker>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n\n                  <ng-template\n                    rhTemplate=\"InWarehouseCode\"\n                    let-formGroup\n                    let-setting=\"setting\"\n                    let-hostConfig=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.placeholder }}</nz-form-label>\n                      <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                        <rh-business-warehouse-selector\n                          name=\"InWarehouseCode\"\n                          [formControl]=\"formGroup.get('InWarehouseCode')\"\n                          rhFormType=\"edit\"\n                          [rhFieldData]=\"businessManageSer.setWarehouseFieldSetting(setting, 'In')\"\n                          [rhSize]=\"hostConfig?.rhSize\"\n                          [rhData]=\"formData\"\n                          [rhDefaultQueryDto]=\"{ BusinessTypeCode: BusinessType }\"\n                        >\n                        </rh-business-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-purchase-in-plan-details\n                [rhPlanOrder]=\"editDto\"\n                [rhSourceDataset]=\"selectedSourceDataset\"\n                (rhDetailsUpdate)=\"getDetails()\"\n              ></rh-purchase-in-plan-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <button\n                  *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\"\n                  nz-button\n                  nzType=\"primary\"\n                  nzSize=\"small\"\n                  type=\"button\"\n                  (click)=\"auditData(editDto)\"\n                >\n                  <i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n                </button>\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"editDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-purchase-in-plan-details [rhPlanOrder]=\"editDto\" [rhShowDetail]=\"true\"> </rh-purchase-in-plan-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #editDescription>\n  <rh-dynamic-description\n    *ngIf=\"isRefreshDesc\"\n    rhName=\"editDescription\"\n    [rhValue]=\"editDto\"\n    [rhVisibleSetting]=\"visibleSetting\"\n  ></rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'入库计划审核'\"\n  [nzVisible]=\"isShowAuditDataModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeAuditDataModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #auditDataForm\n    rhName=\"auditDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"auditDto\"\n    [rhBeforeSubmit]=\"beforeSubmitAudit\"\n    (rhInterfaceDataChange)=\"onAuditData($event)\"\n    (rhClose)=\"closeAuditDataModal()\"\n  >\n    <ng-template rhTemplate=\"IsPass\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-radio-group [formControl]=\"formgroup.get('IsPass')\" (ngModelChange)=\"businessManageSer.isPassChange($event, formgroup)\">\n            <label nz-radio [nzValue]=\"true\">是</label>\n            <label nz-radio [nzValue]=\"false\">否</label>\n          </nz-radio-group>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"AuditMessage\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"!formgroup.get('IsPass').value\"> {{ setting.displayName }}</nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <textarea\n            nz-input\n            [formControl]=\"formgroup.get('AuditMessage')\"\n            [placeholder]=\"setting.placeholder\"\n            [nzAutosize]=\"{ minRows: 2 }\"\n          ></textarea>\n          <div *ngIf=\"editDto?.AuditMessage\">\n            <span style=\"color: #faad14\">上一次审核信息：{{ editDto?.AuditMessage }}</span>\n          </div>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>\n\n<nz-modal\n  [nzTitle]=\"'关闭入库计划备注'\"\n  [nzVisible]=\"isShowCloseInPlanRemarkModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeCloseInPlanRemarkModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #closeDataForm\n    rhName=\"closeDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"closeDto\"\n    (rhInterfaceDataChange)=\"onCloseData($event)\"\n    (rhClose)=\"closeCloseInPlanRemarkModal()\"\n  ></rh-dynamic-form>\n</nz-modal>\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { CustomizeBaseTableComponent, DynamicFormComponent } from 'rh-base/shared';\nimport {\n  RhDynamicInterfaceDto,\n  RhSelectableDto,\n  RhBaseDto,\n  RhTableQueryOptionDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto\n} from 'rh-base/model';\n\n@Component({\n  selector: 'rh-purchase-warehousing-plan-table',\n  templateUrl: './purchase-warehousing-plan-table.component.html',\n  styleUrls: ['./purchase-warehousing-plan-table.component.less']\n})\nexport class PurchaseWarehousingPlanTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n\n  @Input() rhSingleMode = true;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() rhDisabled: boolean;\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto>();\n\n  rhName = 'PurchaseInPlanOrderSelector';\n\n  defaultQueryDto: RhBaseDto;\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n  defaultInterfaceInfo: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'PurchaseBusinessPlanApi',\n    interfaceName: 'GetPurchaseInPlanOrderDatas'\n  };\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [\n    { name: 'PlanOrderId', displayName: '计划单号', placeholder: '计划单号', editable: true, visible: true },\n    {\n      name: 'OrderStatus',\n      displayName: '单据状态',\n      placeholder: '单据状态',\n      editable: false,\n      defaultValue: 'WaitInWarehouse',\n      visible: false\n    }\n  ];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [\n    { name: 'PlanOrderId', displayName: '计划单号', width: 150 },\n    { name: 'SourceOrderId', displayName: '源单', width: 150 },\n    { name: 'SourceOrderRowNum', displayName: '源单行号', width: 150 },\n    { name: 'Inspector', displayName: '质检人', width: 120 },\n    { name: 'Purchaser', displayName: '采购员', width: 120 },\n    { name: 'Supplier', displayName: '供应商', width: 120 },\n    { name: 'ArrivalDate', displayName: '到货日期', width: 120, type: 'date', pipeSetting: 'yyyy-MM-dd' },\n    { name: 'Contacts', displayName: '联系人', width: 120 },\n    { name: 'ContactNumber', displayName: '联系电话', width: 120 },\n    { name: 'InWarehouseCode', displayName: '仓库代码', width: 120 },\n    { name: 'InWarehouseName', displayName: '仓库名称', width: 120 },\n    { name: 'Remark', displayName: '备注', width: 120, rhEllipsis: true }\n  ];\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  constructor() {\n    //\n    super();\n  }\n\n  ngOnInit(): void {\n    this.defaultQueryDto = {};\n    this.rhInterfaceInfo = this.rhInterfaceInfo || this.defaultInterfaceInfo;\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n}\n","<!-- 搜索Form区域 -->\n<div class=\"search-area rh-full\">\n    <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n      <ng-template #searchTpl>\n        <rh-dynamic-form\n          #queryForm\n          rhName=\"{{ rhName }}Form\"\n          [rhValue]=\"defaultQueryDto\"\n          (rhInterfaceDataChange)=\"setDatas($event)\"\n          (rhDataloadingChange)=\"dataLoadingChange($event)\"\n          (rhOutParaChange)=\"setInitFieldDataset($event)\"\n          [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n          [(rhFormInterface)]=\"rhInterfaceInfo\"\n        ></rh-dynamic-form>\n      </ng-template>\n    </nz-alert>\n  </div>\n  <!-- 搜索结果Table展示区域 -->\n  <div class=\"table-area\">\n    <rh-dynamic-table\n      rhName=\"{{ rhName }}Table\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhDefaultFieldDataset]=\"defaultTableFieldDataset\"\n      (rhRefresh)=\"refreshDatas($event)\"\n      (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\"\n      [rhSingleMode]=\"rhSingleMode\"\n    ></rh-dynamic-table>\n  </div>\n  ","import { Component, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, SimpleChanges } from '@angular/core';\nimport { provideValueAccessor, RhRouteHelper, MsgHelper } from 'rh-base/core';\nimport {\n  RhSelectableDto,\n  DataResultT,\n  RhDynamicInterfaceDto,\n  RhDynamicFormFieldDto,\n  RhSafeAny,\n  RhDynamicCustomizeControlConfigDto,\n  RhRelatedFieldDataDto,\n  RhCustomizeEventSettingDto,\n  RhDisplayMode\n} from 'rh-base/model';\nimport { CustomizeBaseControlComponent, RhBaseDynamicService } from 'rh-base/shared';\nimport { NzSizeLDSType } from 'ng-zorro-antd/core/types';\nimport { PurchaseWarehousingPlanTableComponent } from './purchase-warehousing-plan-table/purchase-warehousing-plan-table.component';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Router } from '@angular/router';\n\n@Component({\n  selector: 'rh-purchase-warehousing-plan-selector',\n  templateUrl: './purchase-warehousing-plan-selector.component.html',\n  styleUrls: ['./purchase-warehousing-plan-selector.component.less'],\n  providers: [provideValueAccessor(PurchaseWarehousingPlanSelectorComponent)]\n})\nexport class PurchaseWarehousingPlanSelectorComponent extends CustomizeBaseControlComponent {\n  rhRelatedFieldData = null;\n  @ViewChild(PurchaseWarehousingPlanTableComponent) tableComp: PurchaseWarehousingPlanTableComponent;\n  @Input() rhDynamicKey = 'PurchaseInPlanOrder';\n  @Input() rhTitle = '选择采购入库计划';\n  @Input() declare rhSize: NzSizeLDSType;\n  @Input() declare rhDisplayMode: RhDisplayMode;\n\n  @Input() rhProductCode: string;\n\n  iconSetting = 'search';\n  @Input() rhSingleMode = true;\n\n  formKeyFieldName = 'PlanOrderId';\n  formTextFieldName = 'PlanOrderId';\n\n  modelKeyFieldName = 'PlanOrderId';\n  modelTextFieldName = 'PlanOrderId';\n\n  // // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto>();\n  /** 对应table选中的数据 */\n  rhModel: RhSelectableDto = {};\n\n  /** 动态form字段配置数据 */\n  @Input() rhFieldData: RhDynamicFormFieldDto;\n  /** 整个form的数据 */\n  @Input() declare rhData: RhSafeAny;\n\n  /** 表格Loading */\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  /** selector input上展示的数据，一般为中文 */\n  //displayName: string;\n\n  //selectedData: RhSelectableDto;\n\n  /** 自定义组件的自定义执行函数 */\n  cb: (data: RhSafeAny, ctx: RhSafeAny) => void;\n\n  /** 该组件关联的form名称 */\n  formName: string;\n\n  url: string;\n\n  /** 设置默认搜索接口 */\n  defaultFormInterface: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'PurchaseBusinessPlanApi',\n    interfaceName: 'GetPurchaseInPlanOrderDatas'\n  };\n\n  mappedList = [\n    { sourceName: this.modelKeyFieldName, mappedName: this.formKeyFieldName },\n    { sourceName: this.modelTextFieldName, mappedName: this.formTextFieldName },\n    { sourceName: 'SourceOrderId', mappedName: 'SourceOrderId' },\n    { sourceName: 'SourceOrderRowNum', mappedName: 'SourceOrderRowNum' },\n    { sourceName: 'InWarehouseCode', mappedName: 'InWarehouseCode' },\n    { sourceName: 'InWarehouseName', mappedName: 'InWarehouseName' },\n    { sourceName: 'Supplier', mappedName: 'Supplier' },\n    { sourceName: 'SupplierId', mappedName: 'SupplierId' },\n    { sourceName: 'ArrivalDate', mappedName: 'ArrivalDate' },\n    { sourceName: 'Contacts', mappedName: 'Contacts' },\n    { sourceName: 'ContactNumber', mappedName: 'ContactNumber' },\n    { sourceName: 'TransactorCode', mappedName: 'TransactorCode' },\n    { sourceName: 'TransactorName', mappedName: 'TransactorName' },\n    { sourceName: 'PurchaserId', mappedName: 'PurchaserId' },\n    { sourceName: 'Purchaser', mappedName: 'Purchaser' },\n    { sourceName: 'InspectorId', mappedName: 'InspectorId' },\n    { sourceName: 'Inspector', mappedName: 'Inspector' }\n  ];\n\n  constructor(\n    public fb: UntypedFormBuilder,\n    public cdr: ChangeDetectorRef,\n    public router: Router,\n    public dynamicSer: RhBaseDynamicService\n  ) {\n    super(cdr, dynamicSer);\n    this.url = RhRouteHelper.getRealRoute(this.router.url);\n  }\n\n  ngOnInit(): void {\n    this.rhPlaceholder = this.rhFieldData.placeholder as any;\n    this.formName = this.rhFieldData.relatedComponentName;\n    this.setCbValue();\n  }\n\n  // 自定义表单项配置\n  ngOnChanges(changes: SimpleChanges) {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue && rhData.currentValue[this.formKeyFieldName] === null) {\n      this.resetControlValue();\n    } else {\n      this.rhModel = {};\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    if (data?.length === 1 && this.rhSingleMode) {\n      this.selectedData = data[0];\n    } else {\n      this.selectedData = data;\n    }\n  }\n\n  setDatas(result: DataResultT<RhSelectableDto[]>) {\n    if (result && result.Success) {\n      this.dataresult = result;\n    } else {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n    }\n  }\n\n  /** 根据填入的code值，获取对应的完整数据，回填到输入框 */\n  getTargetDatas(code: string) {\n    // 显示代码 不需要\n    // if (!this.defaultFormInterface) {\n    //   return;\n    // }\n    // const queryDto = {};\n    // queryDto[this.modelKeyFieldName] = `$${code}`;\n    // this.getTargetDatasVisHttpHandler(this.defaultFormInterface, queryDto, this.rhFieldData);\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n  }\n\n  //#region customize selector interface区域\n  confirmSelect() {\n    this.rhModel = this.selectedData;\n    this.rhModelChange.emit(this.rhModel);\n    if (this.rhSingleMode) {\n      this.value = this.rhModel[this.modelKeyFieldName];\n      this.displayName = this.rhModel[this.modelTextFieldName];\n      this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    } else {\n      this.value = (this.rhModel as RhSafeAny[]).map((ele) => ele[this.modelKeyFieldName]) as RhSafeAny;\n      // 多选的时候只会显示多个代码\n      this.displayName = (this.value as RhSafeAny).toString();\n    }\n    // 执行对应控件定义的代码\n    if (this.rhData && this.rhModel && this.cb) {\n      this.cb(this.rhData, this.rhModel);\n    }\n    this.setFormDataViaRelatedDatas();\n    // 执行form的相关字段赋值操作\n    this.triggerRelatedForm();\n    this.closeDataModal();\n  }\n\n  resetControlValue() {\n    this.displayName = null;\n    // 重置form对应数据对象\n    this.rhData[this.formKeyFieldName] = null;\n    this.rhData[this.formTextFieldName] = null;\n    // 清空数据中的字段的值\n    this.mappedList.forEach((ele) => {\n      this.rhData[ele.mappedName] = null;\n    });\n    this.rhModel = null;\n  }\n\n  setCbValue() {\n    const cbString = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.cb;\n    if (cbString) {\n      const fn = Function(`return ${cbString}`);\n      if (fn) {\n        this.cb = fn();\n      } else {\n        this.cb = this.setFormData;\n      }\n    } else {\n      // 当没有配置回调函数时，执行默认的回调函数\n      this.cb = this.setFormData;\n    }\n  }\n\n  /** 设置form对应的数据对象的值\n   * @param data form对应的数据对象\n   * @params 设置或者对应table选择的数据\n   */\n  setFormData(data: RhSafeAny, ctx: RhSelectableDto) {\n    data[this.formKeyFieldName] = ctx[this.modelKeyFieldName];\n    data[this.formTextFieldName] = ctx[this.modelTextFieldName];\n  }\n\n  setFormDataViaRelatedDatas() {\n    let relatedDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedModelDatas;\n    if (!relatedDatas?.length) {\n      relatedDatas = this.mappedList;\n    }\n    if (relatedDatas?.length) {\n      relatedDatas.forEach((ele) => {\n        this.rhData[ele.mappedName] = this.rhModel[ele.sourceName];\n      });\n    }\n  }\n\n  triggerRelatedForm() {\n    const tempDatas = (this.rhFieldData.config as RhDynamicCustomizeControlConfigDto)?.relatedFieldDatas;\n    const relatedDatas: RhRelatedFieldDataDto[] = tempDatas && tempDatas.length ? tempDatas : this.mappedList;\n    const data: RhCustomizeEventSettingDto = {\n      id: `${this.url}_${this.formName}`,\n      eventType: null,\n      options: null,\n      value: this.rhModel,\n      relatedFieldDatas: relatedDatas\n    };\n    this.dynamicSer.formCustomizeEventTrigger(data);\n  }\n  //#endregion customize selector interface区域结束\n}\n","<nz-input-group [nzSize]=\"rhSize\" [nzSuffix]=\"suffixIconSearch\" [nzAddOnAfter]=\"addOnAfter\">\n  <input type=\"text\" nz-input [ngModel]=\"displayName\" [placeholder]=\"rhPlaceholder\" readonly=\"readonly\" />\n</nz-input-group>\n<ng-template #suffixIconSearch>\n  <a *ngIf=\"displayName && !rhDisabled\" class=\"link-suffix\" (click)=\"clearInputInfo()\">\n    <i nz-icon nzType=\"close-circle\"></i>\n  </a>\n</ng-template>\n\n<ng-template #addOnAfter>\n  <button nz-button nzType=\"link\" type=\"button\" nzSize=\"small\">\n    <a (click)=\"openDataModal($event)\">\n      <i nz-icon [nzType]=\"iconSetting\"></i>\n    </a>\n  </button>\n</ng-template>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"rhTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedData\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-purchase-warehousing-plan-table\n        [rhModel]=\"rhModel\"\n        (rhModelChange)=\"onSelectModal($event)\"\n        [rhInterfaceInfo]=\"defaultFormInterface\"\n        [rhSingleMode]=\"rhSingleMode\"\n      ></rh-purchase-warehousing-plan-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { BusinessType } from './../../../business-type';\nimport { PurchaseReturnedOutPlanOrderDetails } from './../../purchase-business-model';\nimport { RhBusinessManageService } from './../../../business-manage.service';\nimport { RhPurchaseBusinessService } from './../../purchase-business.service';\nimport { Component, OnInit, Input, EventEmitter, Output, SimpleChanges } from '@angular/core';\nimport { RhBaseDto, RhSelectableDto, DataResultT, RhTableButtonInfoDto, OpMode, RhSafeAny } from 'rh-base/model';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport { Observable } from 'rxjs';\nimport {\n  PurcahseReturnSourceOrderDetailFormInterface,\n  PurcahseReturnSourceOrderDetailTableFieldDataset\n} from '../../detail-source-table-config';\n\n@Component({\n  selector: 'rh-purchase-returned-out-plan-details',\n  templateUrl: './purchase-returned-out-plan-details.component.html',\n  styleUrls: ['./purchase-returned-out-plan-details.component.less']\n})\nexport class PurchaseReturnedOutPlanDetailsComponent implements OnInit {\n  @Input() rhPlanOrder: RhBaseDto;\n  @Input() rhSourceDataset: RhSelectableDto[] = [];\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter();\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto(\n      'deleteDetails',\n      '删除',\n      'primary',true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhSelectableDto[]),\n      false,\n      true\n    ),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset = [new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)];\n  tableVisibleSetting = {};\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  sourceDefaultQueryDto = {};\n  isEnterEditStatus = false;\n  // 源单明细\n  sourceOrderDetailFormInterface = PurcahseReturnSourceOrderDetailFormInterface;\n  sourceOrderDetailTableFieldDataset = PurcahseReturnSourceOrderDetailTableFieldDataset;\n\n  editDisabled = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return !list.includes(data.OrderStatus);\n  };\n\n  get isReadOnlyTable() {\n    return this.rhShowDetail || !this.rhPlanOrder?.PlanOrderId || this.isEnterEditStatus || this.editDisabled(this.rhPlanOrder);\n  }\n\n  get readeOnlyButtonDataset() {\n    if (!this.rhPlanOrder?.PlanOrderId) return [];\n    else if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(private operator: RhPurchaseBusinessService, public businessManageSer: RhBusinessManageService) {}\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhPlanOrder, rhSourceDataset } = changes;\n    if (rhPlanOrder && rhPlanOrder.currentValue) {\n      this.initOutPlanOrderDetailDataset();\n    }\n    /** 选中源单带来数据源 */\n    if (rhSourceDataset && rhSourceDataset.currentValue && rhSourceDataset.currentValue.length) {\n      if (!this.rhPlanOrder.PlanOrderId) this.handleSourceDataset(this.rhSourceDataset, true);\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getDynamicVisibleSetting(['LotNum']));\n  }\n\n  /** 初始化明细数据 */\n  initOutPlanOrderDetailDataset() {\n    if (this.rhPlanOrder.PlanOrderId) {\n      if (this.rhSourceDataset.length) {\n        const dataset = this.dataresult.Attach;\n        dataset.forEach((data) => {\n          data.PlanOrderId = this.rhPlanOrder.PlanOrderId;\n          data.BusinessType = this.rhPlanOrder.BusinessType;\n          data.OutWarehouseCode = this.rhPlanOrder.OutWarehouseCode;\n          data.OutWarehouseName = this.rhPlanOrder.OutWarehouseName;\n        });\n        this.storeDatas(dataset).subscribe(() => {\n          this.rhSourceDataset = [];\n          this.getDatas();\n        });\n      } else {\n        this.getDatas();\n      }\n    }\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      PlanOrderId: this.rhPlanOrder.PlanOrderId,\n      SourceOrderId: this.rhPlanOrder.SourceOrderId,\n      FactoryCode: this.rhPlanOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetPurchaseReturnedOutPlanOrderDetailsDatasBy(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`);\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (this.editDisabled(this.rhPlanOrder)) {\n      MsgHelper.ShowWarningMessage('当前单据状态无法编辑出库计划明细！');\n      return;\n    }\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    const checkRes = this.checkStoreDatas(details);\n    if (!checkRes) {\n      return;\n    }\n    return new Observable((observer) => {\n      const dto = {\n        OrderMaster: this.rhPlanOrder,\n        OrderDetails: details\n      };\n      const msg = editType === 'add' ? '新增' : '编辑';\n      this.dataLoading = true;\n      this.operator.StorePurchaseReturnedOutPlanOrderDetails(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`);\n          } else {\n            MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n          observer.next();\n          observer.complete();\n        },\n        () => {\n          this.dataLoading = false;\n          observer.error();\n        }\n      );\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[]) {\n    this.extraButtonHandleDataset[1].loading = true;\n    this.operator.RemovePurchaseReturnedOutPlanOrderDetails(details).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n          this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n        }\n        this.extraButtonHandleDataset[1].loading = false;\n      },\n      () => (this.extraButtonHandleDataset[1].loading = false)\n    );\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  async handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    // 获取源单统计信息\n    const convertResult = await this.businessManageSer.convertSourceOrderStatisticsDatasToSelectedDatas(\n      this.rhPlanOrder.SourceOrderId,\n      // this.rhPlanOrder.BusinessType,\n      BusinessType.PurchaseIn,\n      details\n    );\n    // 退料一定有源单！\n    if (!convertResult) {\n      return MsgHelper.ShowWarningMessage('找不到对应源单的统计数据！');\n    }\n    const datas = details.map((data) => {\n      const temp = PurchaseReturnedOutPlanOrderDetails.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 单头赋值\n      temp.PlanOrderId = this.rhPlanOrder.PlanOrderId;\n      temp.BusinessType = this.rhPlanOrder.BusinessType;\n      temp.OutWarehouseCode = this.rhPlanOrder.OutWarehouseCode;\n      temp.OutWarehouseName = this.rhPlanOrder.OutWarehouseName;\n      temp.FactoryCode = this.rhPlanOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n      }\n      this.dataresult = { Attach: (this.dataresult.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  /** 检查保存数据 */\n  checkStoreDatas(details: RhSelectableDto[]) {\n    // 必须填写计划数量\n    if (details.some((f) => !f.PlanQty)) {\n      MsgHelper.ShowWarningMessage('计划数量不能为0或空！');\n      return false;\n    }\n    // 退料数量需要小于已领料数量，不判端超额入库情况\n    if (details.some((f) => f.PlanQty + f.SourceReversePlannedQty > f.SourceCompletedQty)) {\n      MsgHelper.ShowWarningMessage('计划数量+已计划数量不能大于源单已采购入库数量');\n      return false;\n    }\n    return true;\n  }\n\n  openDataModal() {\n    this.sourceDefaultQueryDto = {\n      SourceOrderId: this.rhPlanOrder.SourceOrderId ? `${this.rhPlanOrder.SourceOrderId}` : null,\n      BusinessType: this.rhPlanOrder.BusinessType,\n      FactoryCode: this.rhPlanOrder.FactoryCode\n    };\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n}\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n    <rh-dynamic-table\n      rhName=\"handleDetailsReadOnlyTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    >\n      <ng-template rhTemplate=\"LotNum\" let-item let-data=\"data\">\n        <ng-container *ngIf=\"data.select; else lotNumTpl\">\n          <input nz-input nzSize=\"small\" [(ngModel)]=\"data.LotNum\" [placeholder]=\"item?.displayName\" />\n          <!-- <rh-material-inventory-lotnum-selector [(ngModel)]=\"data.LotNum\"\n                        [rhFieldData]=\"{placeholder: item?.displayName}\"></rh-material-inventory-lotnum-selector> -->\n        </ng-container>\n        <ng-template #lotNumTpl>{{ data.LotNum }}</ng-template>\n      </ng-template>\n    </rh-dynamic-table>\n  </ng-container>\n  <ng-template #handleTpl>\n    <rh-dynamic-table\n      rhName=\"handleDetailsTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    >\n    </rh-dynamic-table>\n  </ng-template>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"'选择采购退货出库源单'\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <!-- <rh-purchase-warehousing-source-order-table (rhModelChange)=\"onSelectModal($event)\"\n                [rhDefaultQueryDto]=\"sourceDefaultQueryDto\" [rhSingleMode]=\"false\">\n            </rh-purchase-warehousing-source-order-table> -->\n      <rh-dynamic-single-table\n        rhName=\"sourceOrderDetailTable\"\n        [rhInterfaceInfo]=\"sourceOrderDetailFormInterface\"\n        [rhDefaultFieldDataset]=\"sourceOrderDetailTableFieldDataset\"\n        [rhPara]=\"sourceDefaultQueryDto\"\n        (rhSelectedDatasChange)=\"onSelectModal($event)\"\n      ></rh-dynamic-single-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { BusinessType } from './../../business-type';\nimport { RhSharedManageService } from './../../../shared-manage/shared-manage.service';\nimport { RhBusinessManageService } from './../../business-manage.service';\nimport { RhPurchaseBusinessService } from './../purchase-business.service';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport {\n  RhBaseDto,\n  DataResultT,\n  RhSelectableDto,\n  RhLoginedUserDto,\n  RhTableButtonInfoDto,\n  OpResult,\n  OpMode,\n  RhSafeAny,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto\n} from 'rh-base/model';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\n\ntype TabType = 'edit' | 'detail' | 'audit';\n\n@Component({\n  selector: 'rh-purchase-returned-out-plan',\n  templateUrl: './purchase-returned-out-plan.component.html',\n  styleUrls: ['./purchase-returned-out-plan.component.less']\n})\nexport class RhPurchaseReturnedOutPlanComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  BusinessType = BusinessType.PurchaseReturnedOut;\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  closeDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n  /** 显示配置 */\n  visibleSetting = {};\n  /** 选中的采购计划源单的数据 */\n  selectedSourceDataset: RhSelectableDto[] = [];\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  completeVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitOutWarehouse';\n  };\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  isAsCreated = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto)),\n    new RhTableButtonInfoDto('submit', '提交审核', 'default', false, 'form', false, null, (data) => this.submitDataToAudit(data as RhBaseDto)),\n    new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) =>\n      this.openDetailTab({ data } as RhBaseDto, 'audit')\n    ),\n    new RhTableButtonInfoDto('complete', '完成', 'default', false, 'check', false, null, (data) => this.completeOutPlanOrder(data as RhBaseDto))\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '新建', 'primary', false, 'file', false, null, () => this.openEditTab(), true),\n    new RhTableButtonInfoDto(\n      'delete',\n      '删除',\n      'primary',true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhBaseDto[]),\n      false,\n      false,\n      'red'\n    )\n  ];\n\n  beforeSubmit = async (data: RhBaseDto, context: DynamicFormComponent) => {\n    let result: OpResult = null;\n    const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n    context.submitLoading = true;\n    try {\n      if (this.editDto.OpSign === OpMode.OpAdd) {\n        // 基本信息\n        data.BusinessType = this.BusinessType;\n        data.Creator = this.currentUser.DisplayName;\n        data.CreatorId = this.currentUser.UserName;\n        data.PurchaseOrderCode = data.SourceOrderId;\n\n        result = await this.operator.CreatePurchaseReturnedOutPlanMasterOrder(data).toPromise();\n      } else {\n        result = await this.operator.UpdatePurchaseReturnedOutPlanMasterOrder(data).toPromise();\n      }\n      if (result && result.Success) {\n        MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n        this.editDto.PlanOrderId = result?.Attach?.PlanOrderId;\n        this.isShowEditForm = false;\n        this.getDetails();\n      } else {\n        MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n      }\n    } catch (error) {\n      //\n    } finally {\n      context.submitLoading = false;\n    }\n\n    return false;\n  };\n\n  beforeSubmitAudit = (data: RhBaseDto) => {\n    if (!data.IsPass && !data.AuditMessage) {\n      MsgHelper.ShowWarningMessage('审核不通过，必须填写审核信息！');\n      return;\n    }\n    // 基本信息\n    data.Auditor = this.currentUser.DisplayName;\n    data.AuditorId = this.currentUser.UserName;\n\n    return true;\n  };\n\n  constructor(\n    private operator: RhPurchaseBusinessService,\n    public businessManageSer: RhBusinessManageService,\n    public storage: RhStorageService,\n    public sharedManageSer: RhSharedManageService\n  ) {}\n\n  ngOnInit(): void {\n    this.setUserInfo();\n    this.initEditButtonVisible();\n    this.initVisibleSetting();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  initEditButtonVisible() {\n    this.editButtonDataset[0].visible = this.editVisible.toString();\n    this.editButtonDataset[1].visible = this.isCreated.toString();\n    this.editButtonDataset[2].visible = this.auditVisible.toString();\n    this.editButtonDataset[3].visible = this.completeVisible.toString();\n  }\n\n  initVisibleSetting() {\n    Object.assign(this.visibleSetting, this.businessManageSer.getMaterialInspectorVisibleSetting());\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    this.selectedSourceDataset = [];\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {\n        TransactorCode: this.currentUser.UserName,\n        TransactorName: this.currentUser.DisplayName,\n        FactoryCode: this.currentUser.FactoryCode\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.editDto = null;\n    this.selectedIndex = 0;\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.selectedIndex = 1;\n  }\n\n  // 未退出页面，刷新数据内容\n  getDetails() {\n    const queryDto = { PlanOrderId: this.editDto.PlanOrderId };\n    this.operator.GetPurchaseReturnedOutPlanOrderDatas(queryDto).subscribe((result) => {\n      if (result.Success && result.Attach.length === 1) {\n        this.editDto = result.Attach[0];\n        this.editDto.OpSign = OpMode.OpEdit;\n      }\n    });\n  }\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    }\n  }\n\n  sourceOrderDatasetChange(dataset: RhSelectableDto[]) {\n    if (dataset?.length) {\n      // 源单号赋值\n      this.editDto.SourceOrderId = dataset[0].PurchaseCode;\n      this.editDto.BusinessType = this.BusinessType;\n      this.selectedSourceDataset = [...dataset];\n    } else {\n      // 源单号赋值\n      this.editDto.SourceOrderId = null;\n      this.selectedSourceDataset = [];\n    }\n  }\n\n  //#region 操作区域开始\n  /** 提交审核 */\n  submitDataToAudit(data: RhBaseDto) {\n    if (this.isCreated(data)) {\n      const dto = { PlanOrderId: data.PlanOrderId };\n      this.dataLoading = true;\n      this.operator.SumbitAuditPurchaseReturnedOutPlanOrder(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('提交审核成功！');\n            if (this.selectedIndex === 0) this.getDatas();\n            this.closeEditTab();\n          } else {\n            MsgHelper.ShowWarningMessage(`提交审核失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行提交审核！');\n    }\n  }\n\n  /** 审核 */\n  auditData(data: RhBaseDto) {\n    if (this.auditVisible(data)) {\n      this.openAuditDataModal(data);\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行审核！');\n    }\n  }\n\n  /** 打开审核弹窗 */\n  openAuditDataModal(data: RhBaseDto) {\n    this.auditDto = { PlanOrderId: data.PlanOrderId };\n    this.isShowAuditDataModal = true;\n  }\n\n  /** 关闭审核弹窗 */\n  closeAuditDataModal() {\n    this.auditDto = {};\n    this.isShowAuditDataModal = false;\n  }\n\n  /** 审核接口返回 */\n  onAuditData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('审核出库计划成功！');\n      this.closeAuditDataModal();\n      this.getDetails();\n    } else {\n      MsgHelper.ShowWarningModal(`审核出库计划失败！${result.Message}`);\n    }\n  }\n\n  /** 完成计划 */\n  completeOutPlanOrder(data: RhBaseDto) {\n    if (this.completeVisible(data)) {\n      // TODO\n      // const dto = OutPlanOrderMasterDto.create();\n      // dto.PlanOrderId = data.PlanOrderId;\n      // this.dataLoading = true;\n      // this.operator.CompleteOutPlanOrder(dto).subscribe(\n      //   (result) => {\n      //     if (result.Success) {\n      //       MsgHelper.ShowSuccessMessage('完成成功！');\n      //       this.getDatas();\n      //     } else {\n      //       MsgHelper.ShowWarningMessage(`完成失败！${result.Message}`);\n      //     }\n      //     this.dataLoading = false;\n      //   },\n      //   () => {\n      //     this.dataLoading = false;\n      //   }\n      // );\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行完成！');\n    }\n  }\n\n  /** 删除计划 */\n  removeDatas(datas: RhBaseDto[]) {\n    const some = datas.some((f) => !this.isAsCreated(f));\n    if (some) {\n      MsgHelper.ShowWarningMessage('只能删除制单状态的数据！');\n    } else {\n      this.dataLoading = true;\n      this.operator.RemovePurchaseReturnedOutPlanOrders(datas as RhSafeAny).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('删除成功！');\n            this.getDatas();\n          } else {\n            MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    }\n  }\n  //#endregion 操作区域结束\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  >\n                  </rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                [rhVisibleSetting]=\"visibleSetting\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              >\n              </rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>数据{{ editDto?.OpSign === 1 ? '新增' : '编辑' }}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button\n                    *ngIf=\"editVisible(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"isShowEditForm = true\"\n                  >\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button\n                    *ngIf=\"isCreated(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"submitDataToAudit(editDto)\"\n                  >\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                  <button *ngIf=\"auditVisible(editDto)\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else detailsDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  [rhVisibleSetting]=\"visibleSetting\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template rhTemplate=\"SourceOrderId\" let-formgroup let-setting=\"setting\" let-formData=\"formData\">\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-purchase-warehousing-source-order-selector\n                          [rhTitle]=\"'选择采购退货源单'\"\n                          [formControl]=\"formgroup.get('SourceOrderId')\"\n                          [rhFieldData]=\"setting\"\n                          [rhDisplayMode]=\"1\"\n                          [rhData]=\"formData\"\n                          [rhDefaultQueryDto]=\"curFactoryQueryDto\"\n                          (rhModelChange)=\"sourceOrderDatasetChange($event)\"\n                        >\n                        </rh-purchase-warehousing-source-order-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n\n                  <ng-template rhTemplate=\"ArrivalDate\" let-formgroup let-setting=\"setting\" let-formData=\"formData\">\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <nz-date-picker\n                          style=\"width: 100%\"\n                          [formControl]=\"formgroup.get('ArrivalDate')\"\n                          [nzDisabledDate]=\"sharedManageSer.disabledStartDate\"\n                        >\n                        </nz-date-picker>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n\n                  <ng-template\n                    rhTemplate=\"OutWarehouseCode\"\n                    let-formGroup\n                    let-setting=\"setting\"\n                    let-hostConfig=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.placeholder }}</nz-form-label>\n                      <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                        <rh-business-warehouse-selector\n                          name=\"OutWarehouseCode\"\n                          [formControl]=\"formGroup.get('OutWarehouseCode')\"\n                          rhFormType=\"edit\"\n                          [rhFieldData]=\"businessManageSer.setWarehouseFieldSetting(setting, 'Out')\"\n                          [rhSize]=\"hostConfig?.rhSize\"\n                          [rhData]=\"formData\"\n                          [rhDefaultQueryDto]=\"{ BusinessTypeCode: BusinessType }\"\n                        >\n                        </rh-business-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-purchase-returned-out-plan-details\n                [rhPlanOrder]=\"editDto\"\n                [rhSourceDataset]=\"selectedSourceDataset\"\n                (rhDetailsUpdate)=\"getDetails()\"\n              >\n              </rh-purchase-returned-out-plan-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <button\n                  *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\"\n                  nz-button\n                  nzType=\"primary\"\n                  nzSize=\"small\"\n                  type=\"button\"\n                  (click)=\"auditData(editDto)\"\n                >\n                  <i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n                </button>\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"detailsDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-purchase-returned-out-plan-details [rhPlanOrder]=\"editDto\" [rhShowDetail]=\"true\"> </rh-purchase-returned-out-plan-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #detailsDescription>\n  <rh-dynamic-description *ngIf=\"isRefreshDesc\" rhName=\"detailsDescription\" [rhValue]=\"editDto\" [rhVisibleSetting]=\"visibleSetting\">\n  </rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'出库计划审核'\"\n  [nzVisible]=\"isShowAuditDataModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeAuditDataModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #auditDataForm\n    rhName=\"auditDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"auditDto\"\n    [rhBeforeSubmit]=\"beforeSubmitAudit\"\n    (rhInterfaceDataChange)=\"onAuditData($event)\"\n    (rhClose)=\"closeAuditDataModal()\"\n  >\n    <ng-template rhTemplate=\"IsPass\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-radio-group [formControl]=\"formgroup.get('IsPass')\" (ngModelChange)=\"businessManageSer.isPassChange($event, formgroup)\">\n            <label nz-radio [nzValue]=\"true\">是</label>\n            <label nz-radio [nzValue]=\"false\">否</label>\n          </nz-radio-group>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"AuditMessage\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"!formgroup.get('IsPass').value\"> {{ setting.displayName }}</nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <textarea\n            nz-input\n            [formControl]=\"formgroup.get('AuditMessage')\"\n            [placeholder]=\"setting.placeholder\"\n            [nzAutosize]=\"{ minRows: 2 }\"\n          ></textarea>\n          <div *ngIf=\"editDto?.AuditMessage\">\n            <span style=\"color: #faad14\">上一次审核信息：{{ editDto?.AuditMessage }}</span>\n          </div>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>\n","import { ExtPurchaseOrderDto } from './../../../../wms-model';\nimport { Component, OnInit, Input, Output, EventEmitter, SimpleChanges } from '@angular/core';\nimport { RhBaseDto, RhSafeAny, RhSelectableDto, OpMode, DataResultT, RhTableButtonInfoDto } from 'rh-base/model';\nimport { MsgHelper, ObjectHelper, RhStorageService } from 'rh-base/core';\nimport { RhPurchaseBusinessService } from './../../purchase-business.service';\nimport { RhBusinessManageService } from './../../../business-manage.service';\nimport { PurchaseInPlanOrderDetails, PurchaseInTransactOrderDetails, PurchaseInTransactOrderMaster } from './../../purchase-business-model';\nimport { WarehouseControlParameterQueryDto, WarehouseMaterialControlParameter } from './../../../business-manage-model';\nimport { Observable } from 'rxjs';\nimport {\n  PurcahseInPlanOrderDetailFormInterface,\n  PurcahseInSourceOrderDetailFormInterface,\n  PurchaseInPlanOrderDetailTableFieldDataset,\n  PurchaseInSourceOrderDetailTableFieldDataset\n} from '../../detail-source-table-config';\nimport * as _ from 'lodash';\n\n@Component({\n  selector: 'rh-purchase-in-handle-details',\n  templateUrl: './purchase-in-handle-details.component.html',\n  styleUrls: ['./purchase-in-handle-details.component.less']\n})\nexport class PurchaseInHandleDetailsComponent implements OnInit {\n  @Input() rhInOrder: RhBaseDto;\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter();\n\n  dataLoading = false;\n  isShowEditModal = false;\n  // 编辑类型\n  editType: 'edit' | 'add' = 'edit';\n\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto(\n      'deleteDetails',\n      '删除',\n      'primary',true,\n      'delete',\n      true,\n      null,\n      (datas, buttonInfo) => this.removeDatas(datas as RhSelectableDto[], buttonInfo),\n      false,\n      true\n    ),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n\n  isRefreshDetailsTable = true;\n  isVisibleSettingOver = true;\n  isEnterEditStatus = false;\n  isShowDataModal = false;\n\n  sourceDefaultQueryDto = {};\n  tableVisibleSetting = {};\n  selectedDatas: RhSelectableDto[] = [];\n\n  // 数据源\n  planOrderDetailDataset: PurchaseInPlanOrderDetails[] = [];\n  sourceOrderDetailDataset: ExtPurchaseOrderDto[] = [];\n  selectedSourceDatas: RhSelectableDto[] = [];\n  sourceDataResult: DataResultT<RhSelectableDto[]>;\n  sourceDataLoading = false;\n  // 计划明细\n  planOrderDetailFormInterface = PurcahseInPlanOrderDetailFormInterface;\n  planOrderDetailTableFieldDataset = PurchaseInPlanOrderDetailTableFieldDataset;\n  // 源单明细\n  sourceOrderDetailFormInterface = PurcahseInSourceOrderDetailFormInterface;\n  sourceOrderDetailTableFieldDataset = PurchaseInSourceOrderDetailTableFieldDataset;\n  /** 数量汇总模型 */\n  summaryData: RhSelectableDto;\n  // 仓库联动\n  defaultQueryDtoWarehouseArea = {};\n  defaultQueryDtoWarehouseShelf = {};\n  defaultQueryDtoStorageLocation = {};\n  /** 表单可见性配置 */\n  editDetailsFormVisibleSetting = {};\n  /** 表格可见项配置 */\n  visibleSetting = {};\n\n  // 仓储数据\n  warehouseAreaDataset: RhSelectableDto[] = [];\n  warehouseShelfDataset: RhSelectableDto[] = [];\n  storageLocationDataset: RhSelectableDto[] = [];\n\n  // 仓库控制配置参数\n  currentWarehouseMaterialControlPara: WarehouseMaterialControlParameter;\n\n  editDisabled = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return !list.includes(data.OrderStatus);\n  };\n\n  // 配置参数\n  get isEnableInPlan() {\n    return this.businessManageSer.IsEnableInPlan;\n  }\n  // 显示控制\n  get sourceDataModalTitle() {\n    return this.isEnableInPlan ? '选择计划明细数据' : '选择源单明细数据';\n  }\n  get isReadOnlyTable() {\n    return this.rhShowDetail || !this.rhInOrder?.OrderId || this.isEnterEditStatus || this.editDisabled(this.rhInOrder);\n  }\n  get readeOnlyButtonDataset() {\n    if (!this.rhInOrder?.OrderId) return [];\n    else if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(\n    private operator: RhPurchaseBusinessService,\n    private businessManageSer: RhBusinessManageService,\n    private storage: RhStorageService\n  ) { }\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  async ngOnChanges(changes: SimpleChanges): Promise<void> {\n    const { rhInOrder } = changes;\n    if (rhInOrder && rhInOrder.currentValue && this.rhInOrder.OrderId) {\n      // 获取仓库控制配置参数\n      await this.getWarehouseMaterialControlParameter();\n      // 设置表格字段显隐性配置\n      this.isVisibleSettingOver = false;\n      this.initTableVisibleSetting();\n      setTimeout(() => (this.isVisibleSettingOver = true));\n      // 获取明细数据\n      this.getDatas();\n      // 获取仓储数据\n      if (!this.rhShowDetail) {\n        this.getWarehouseInfos();\n      }\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.initInWarehouseVisibleSetting(this.currentWarehouseMaterialControlPara));\n  }\n\n  extendVisibleSetting() {\n    Object.assign(this.visibleSetting, this.businessManageSer.initExtendedVisibleSetting());\n    this.isRefreshDetailsTable = false;\n    setTimeout(() => {\n      this.isRefreshDetailsTable = true;\n    });\n  }\n\n  openDataModal() {\n    if (this.isEnableInPlan) {\n      this.sourceDefaultQueryDto = {\n        PlanOrderId: this.rhInOrder.PlanOrderId,\n        FactoryCode: this.rhInOrder.FactoryCode,\n        SourceOrderId: this.rhInOrder.SourceOrderId\n      };\n    } else {\n      this.sourceDefaultQueryDto = {\n        OrderCode: this.rhInOrder.SourceOrderId,\n        FactoryCode: this.rhInOrder.FactoryCode\n      };\n    }\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  closeEditModal() {\n    this.isShowEditModal = false;\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      OrderId: this.rhInOrder.OrderId,\n      FactoryCode: this.rhInOrder.FactoryCode,\n      SourceOrderId: this.rhInOrder.SourceOrderId,\n      BusinessType: this.rhInOrder.BusinessType,\n      Mode: 8\n    };\n    this.operator.GetPurchaseInTransactOrderDetailsDatasBy(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        this.rhDetailsUpdate.emit(this.dataresult?.Attach || []);\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`);\n        } else {\n          if (this.isEnableInPlan) {\n            this.getPlanOrderDetails();\n          }\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  /** 启用计划，获取计划明细，用于初始化PlanTransactedQty */\n  getPlanOrderDetails() {\n    const queryDto = {\n      PlanOrderId: this.rhInOrder.PlanOrderId,\n      SourceOrderId: this.rhInOrder.SourceOrderId,\n      FactoryCode: this.rhInOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetPurchaseInPlanOrderDetailsDatasBy(queryDto).subscribe((result) => {\n      if (result.Success) {\n        this.planOrderDetailDataset = result.Attach;\n        // 初始化办理明细的PlanTransactedQty\n        this.dataresult.Attach.forEach((data) => {\n          const item = this.planOrderDetailDataset.find(\n            (ele) =>\n              ele.MaterialCode === data.MaterialCode &&\n              ele.SourceOrderId === data.SourceOrderId &&\n              ele.SourceOrderRowNum === data.SourceOrderRowNum\n          );\n          if (item) {\n            data.PlanTransactedQty = item.PlanTransactedQty;\n          } else {\n            data.PlanTransactedQty = null;\n          }\n        });\n        this.dataresult = _.cloneDeep(this.dataresult);\n      } else {\n        this.planOrderDetailDataset = [];\n      }\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[], buttonInfo: RhTableButtonInfoDto) {\n    buttonInfo.loading = true;\n    this.operator.RemovePurchaseInTransactOrderDetails(details).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n          if (this.rhInOrder.OrderStatus !== 'Created') this.rhDetailsUpdate.emit();\n          this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n        }\n        buttonInfo.loading = false;\n      },\n      () => (buttonInfo.loading = false)\n    );\n  }\n\n  editDatas() {\n    if (this.editDisabled(this.rhInOrder)) {\n      MsgHelper.ShowWarningMessage('当前单据状态无法编辑出库办理明细！');\n      return;\n    }\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    return new Observable((observer) => {\n      this.businessManageSer.checkStoreDatas(details, 'In').then((checkRes) => {\n        if (!checkRes) {\n          observer.error();\n        } else {\n          const dto = {\n            OrderMaster: this.rhInOrder,\n            OrderDetails: details\n          };\n          dto.OrderMaster.FactoryCode = this.storage.getFactoryCode();\n          dto.OrderDetails.map((ele) => (ele.FactoryCode = this.storage.getFactoryCode()));\n          const msg = editType === 'add' ? '新增' : '编辑';\n          this.dataLoading = true;\n          this.operator.StorePurchaseInTransactOrderDetails(dto).subscribe(\n            (result) => {\n              if (result.Success) {\n                MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`);\n              } else {\n                MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n              }\n              this.dataLoading = false;\n              observer.next();\n              observer.complete();\n            },\n            () => {\n              this.dataLoading = false;\n              observer.error();\n            }\n          );\n        }\n      });\n    });\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  onSelectedDetailDatasChange(datas: RhSelectableDto[]) {\n    this.selectedSourceDatas = datas || [];\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  async handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    // 获取源单统计信息\n    const convertResult = await this.businessManageSer.convertSourceOrderStatisticsDatasToSelectedDatas(\n      this.rhInOrder.SourceOrderId,\n      this.rhInOrder.BusinessType,\n      details\n    );\n    const datas = details.map((data) => {\n      const temp = PurchaseInTransactOrderDetails.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 源单赋值\n      if (this.isEnableInPlan) {\n        temp.PlanOrderId = this.rhInOrder.PlanOrderId;\n        temp.SourcePlannedQty = data.SourcePlannedQty || 0;\n        temp.PlanTransactedQty = data.PlanTransactedQty || 0;\n        temp.SourceTransactedQty = data.SourceCompletedQty;\n      } else {\n        if (!convertResult) {\n          temp.SourceOrderId = this.rhInOrder.SourceOrderId;\n          temp.SourceOrderRowNum = this.rhInOrder.SourceOrderRowNum;\n          temp.SourceOrderQty = data.PurchaseQty;\n          temp.SourceTransactedQty = data.ReceivedQty;\n        }\n      }\n      // 单头赋值\n      temp.OrderId = this.rhInOrder.OrderId;\n      temp.BusinessType = this.rhInOrder.BusinessType;\n      temp.OutWarehouseCode = this.rhInOrder.OutWarehouseCode;\n      temp.OutWarehouseName = this.rhInOrder.OutWarehouseName;\n      temp.FactoryCode = this.rhInOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n      }\n      this.dataresult = { Attach: (this.dataresult.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  //#region 仓储相关区域开始\n  /** 根据是否启用，获取对应仓储信息 */\n  getWarehouseInfos() {\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseArea) {\n      this.businessManageSer\n        .getWarehouseAreaDataset({ WarehouseCode: this.rhInOrder.InWarehouseCode })\n        .then((res) => {\n          this.warehouseAreaDataset = res || [];\n        })\n        .catch(() => {\n          this.warehouseAreaDataset = [];\n        });\n    }\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseShelf) {\n      this.businessManageSer\n        .getWarehouseShelfDataset({ WarehouseCode: this.rhInOrder.InWarehouseCode })\n        .then((res) => {\n          this.warehouseShelfDataset = res || [];\n        })\n        .catch(() => {\n          this.warehouseShelfDataset = [];\n        });\n    }\n    if (this.currentWarehouseMaterialControlPara.IsEnableStorageLocation) {\n      this.businessManageSer\n        .getStorageLocationDataset({ WarehouseCode: this.rhInOrder.InWarehouseCode })\n        .then((res) => {\n          this.storageLocationDataset = res || [];\n        })\n        .catch(() => {\n          this.storageLocationDataset = [];\n        });\n    }\n  }\n\n  /** 获取仓库控制参数配置 */\n  async getWarehouseMaterialControlParameter() {\n    const para = await this.businessManageSer.getWarehouseMaterialControlParameter({\n      WarehouseCode: this.rhInOrder.InWarehouseCode\n    });\n    this.currentWarehouseMaterialControlPara = this.businessManageSer.transformWarehouseMaterialControlParameter(para);\n  }\n\n  inWarehouseAreaCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseAreaDataset.find((ele) => ele.WarehouseAreaCode === code);\n      if (item) {\n        data.InWarehouseAreaName = item.WarehouseAreaName;\n      } else {\n        data.InWarehouseAreaName = null;\n      }\n    } else {\n      data.InWarehouseAreaName = null;\n    }\n    // 强关联则清空下属字段\n    if (this.currentWarehouseMaterialControlPara.IsStrictCorrelation) {\n      data.InWarehouseShelfCode = null;\n      data.InWarehouseShelfName = null;\n      data.InStorageLocationCode = null;\n      data.InStorageLocationName = null;\n    }\n  }\n\n  inWarehouseShelfCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseShelfDataset.find((ele) => ele.WarehouseShelfCode === code);\n      if (item) {\n        data.InWarehouseShelfName = item.WarehouseShelfName;\n      } else {\n        data.InWarehouseShelfName = null;\n      }\n    } else {\n      data.InWarehouseShelfName = null;\n    }\n    // 强关联则清空下属字段\n    if (this.currentWarehouseMaterialControlPara.IsStrictCorrelation) {\n      data.InStorageLocationCode = null;\n      data.InStorageLocationName = null;\n    }\n  }\n\n  inStorageLocationCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.storageLocationDataset.find((ele) => ele.StorageLocationCode === code);\n      if (item) {\n        data.InStorageLocationName = item.StorageLocationName;\n      } else {\n        data.InStorageLocationName = null;\n      }\n    } else {\n      data.InStorageLocationName = null;\n    }\n  }\n\n  /** 获取货架显示列表，行编辑应用 */\n  getWarehouseShelfDatasetDisplay(data: RhSelectableDto): RhSelectableDto[] {\n    return this.businessManageSer.getWarehouseShelfDatasetDisplay(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      this.warehouseShelfDataset,\n      'In'\n    );\n  }\n\n  /** 获取库位显示列表，行编辑应用 */\n  getStorageLocationDatasetDisplay(data: RhSelectableDto): RhSelectableDto[] {\n    return this.businessManageSer.getStorageLocationDatasetDisplay(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      this.storageLocationDataset,\n      'In'\n    );\n  }\n  //#endregion 仓储相关区域结束\n}\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isVisibleSettingOver\">\n    <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n      <rh-dynamic-table\n        rhName=\"handleDetailsReadOnlyTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n        <ng-template rhTemplate=\"InWarehouseAreaCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseAreaTpl\">\n            <nz-select\n              [(ngModel)]=\"data.InWarehouseAreaCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"inWarehouseAreaCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of warehouseAreaDataset\"\n                [nzLabel]=\"item.WarehouseAreaCode\"\n                [nzValue]=\"item.WarehouseAreaCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseAreaTpl>{{ data.InWarehouseAreaCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"InWarehouseAreaName\" let-item let-data=\"data\">\n          {{ data.InWarehouseAreaName }}\n        </ng-template>\n        <ng-template rhTemplate=\"InWarehouseShelfCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseShelfTpl\">\n            <nz-select\n              [(ngModel)]=\"data.InWarehouseShelfCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"inWarehouseShelfCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of getWarehouseShelfDatasetDisplay(data)\"\n                [nzLabel]=\"item.WarehouseShelfCode\"\n                [nzValue]=\"item.WarehouseShelfCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseShelfTpl>{{ data.InWarehouseShelfCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"InWarehouseShelfName\" let-item let-data=\"data\">\n          {{ data.InWarehouseShelfName }}\n        </ng-template>\n        <ng-template rhTemplate=\"InStorageLocationCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else storageLocationTpl\">\n            <nz-select\n              [(ngModel)]=\"data.InStorageLocationCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"inStorageLocationCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of getStorageLocationDatasetDisplay(data)\"\n                [nzLabel]=\"item.StorageLocationCode\"\n                [nzValue]=\"item.StorageLocationCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #storageLocationTpl>{{ data.InStorageLocationCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"InStorageLocationName\" let-item let-data=\"data\">\n          {{ data.InStorageLocationName }}\n        </ng-template>\n        <ng-template rhTemplate=\"SN\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else SNTpl\">\n            <input\n              nz-input\n              [(ngModel)]=\"data.SN\"\n              [placeholder]=\"item?.displayName\"\n              [ngStyle]=\"{ border: !data.SN && currentWarehouseMaterialControlPara.IsEnableSN ? '1px solid red' : '1px solid #d9d9d9' }\"\n            />\n            <p style=\"color: red; margin-bottom: 0\" *ngIf=\"!data.SN && currentWarehouseMaterialControlPara.IsEnableSN\">请输入条码</p>\n          </ng-container>\n          <ng-template #SNTpl>{{ data.SN }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"ProductionDate\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else ProDateTpl\">\n            <nz-date-picker\n              nz-input\n              [(ngModel)]=\"data.ProductionDate\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              [ngStyle]=\"{\n                border:\n                  !data.ProductionDate && currentWarehouseMaterialControlPara.IsEnableExpirationDate ? '1px solid red' : '1px solid #d9d9d9'\n              }\"\n            ></nz-date-picker>\n            <p\n              style=\"color: red; margin-bottom: 0\"\n              *ngIf=\"!data.ProductionDate && currentWarehouseMaterialControlPara.IsEnableExpirationDate\"\n            >\n              请输入生产日期\n            </p>\n          </ng-container>\n          <ng-template #ProDateTpl>{{ data.ProductionDate | date : 'yyyy-MM-dd' }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"LotNum\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else LotNumTpl\">\n            <input\n              nz-input\n              [(ngModel)]=\"data.LotNum\"\n              [placeholder]=\"item?.displayName\"\n              [ngStyle]=\"{\n                border: !data.LotNum && currentWarehouseMaterialControlPara.IsEnableLotNum ? '1px solid red' : '1px solid #d9d9d9'\n              }\"\n            />\n            <p style=\"color: red; margin-bottom: 0\" *ngIf=\"!data.LotNum && currentWarehouseMaterialControlPara.IsEnableLotNum\">\n              请输入批次号\n            </p>\n          </ng-container>\n          <ng-template #LotNumTpl>{{ data.LotNum }}</ng-template>\n        </ng-template>\n      </rh-dynamic-table>\n    </ng-container>\n    <ng-template #handleTpl>\n      <rh-dynamic-table\n        rhName=\"handleDetailsTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n      </rh-dynamic-table>\n    </ng-template>\n  </ng-container>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"sourceDataModalTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div *ngIf=\"isShowDataModal\">\n      <rh-dynamic-single-table\n        *ngIf=\"isEnableInPlan; else sourceDetailsTpl\"\n        rhName=\"planOrderDetailTable\"\n        [rhInterfaceInfo]=\"planOrderDetailFormInterface\"\n        [rhDefaultFieldDataset]=\"planOrderDetailTableFieldDataset\"\n        [rhPara]=\"sourceDefaultQueryDto\"\n        (rhSelectedDatasChange)=\"onSelectModal($event)\"\n      ></rh-dynamic-single-table>\n      <ng-template #sourceDetailsTpl>\n        <rh-dynamic-single-table\n          rhName=\"sourceOrderDetailTable\"\n          [rhInterfaceInfo]=\"sourceOrderDetailFormInterface\"\n          [rhDefaultFieldDataset]=\"sourceOrderDetailTableFieldDataset\"\n          [rhPara]=\"sourceDefaultQueryDto\"\n          (rhSelectedDatasChange)=\"onSelectModal($event)\"\n        ></rh-dynamic-single-table>\n      </ng-template>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { RhBusinessManageService } from './../../business-manage.service';\nimport { ExtPurchaseOrderDto, InOutOrderDetailQueryDto } from './../../../wms-model';\nimport { BusinessType } from './../../business-type';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport {\n  RhBaseDto,\n  DataResultT,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  RhLoginedUserDto,\n  OpMode,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto,\n  RhSafeAny,\n  OpResult\n} from 'rh-base/model';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\nimport { RhPurchaseBusinessService } from '../purchase-business.service';\nimport { UntypedFormGroup, Validators } from '@angular/forms';\nimport {\n  PlanOrderDetailsQueryDto,\n  PurchaseInPlanOrderDetails,\n  PurchaseInTransactOrderDetails,\n  PurchaseInTransactOrderMaster,\n  View_PurchaseInTransactionOrderMasterQueryDto\n} from '../purchase-business-model';\nimport { Observable } from 'rxjs';\n\ntype TabType = 'edit' | 'detail' | 'audit';\n\n@Component({\n  selector: 'rh-purchase-in-handle',\n  templateUrl: './purchase-in-handle.component.html',\n  styleUrls: ['./purchase-in-handle.component.less']\n})\nexport class PurchaseInHandleComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  defaultFieldDataset = [];\n  auditLoading = false;\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  isAsCreated = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  isShowAuditInfo = (data: RhBaseDto) => {\n    const list = ['Completed', 'AuditFailed'];\n    return list.includes(data.OrderStatus);\n  };\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto)),\n    new RhTableButtonInfoDto('submit', '提交审核', 'default', false, 'form', false, null, (data) => this.submitDataToAudit(data as RhBaseDto)),\n    new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) => this.openDetailTab({ data } as RhBaseDto, 'audit'))\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '入库办理', 'primary', false, 'file', false, null, () => this.openEditTab(), true)\n  ];\n\n  extraButtonDataset: RhTableButtonInfoDto[] = [];\n\n  get isEnableMaterialInInspect() {\n    return this.operator.isEnableMaterialInInspect;\n  }\n\n  beforeSubmit = async (data: RhBaseDto, context: DynamicFormComponent) => {\n    let result: OpResult = null;\n    const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n    context.submitLoading = true;\n    try {\n      if (this.editDto.OpSign === OpMode.OpAdd) {\n        // 基本信息\n        data.BusinessType = this.BusinessType;\n        data.OrderCreatorCode = this.currentUser.DisplayName;\n        data.OrderCreatorName = this.currentUser.UserName;\n        data.SaleOrderCode = data.SourceOrderId;\n\n        result = await this.operator.CreatePurchaseInTransactMasterOrder(data).toPromise();\n      } else {\n        result = await this.operator.UpdatePurchaseInTransactMasterOrder(data).toPromise();\n      }\n      if (result && result.Success) {\n        MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n        this.editDto.OrderId = result?.Attach?.OrderId;\n        this.isShowEditForm = false;\n        this.getDetails();\n      } else {\n        MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n      }\n    } catch (error) {\n      //\n    } finally {\n      context.submitLoading = false;\n    }\n\n    return false;\n  };\n\n  beforeSubmitAudit = (data: RhBaseDto) => {\n    if (!data.IsPass && !data.AuditMessage) {\n      MsgHelper.ShowWarningMessage('审核不通过，必须填写审核信息！');\n      return;\n    }\n    // 基本信息\n    data.Auditor = this.currentUser.DisplayName;\n    data.AuditorId = this.currentUser.UserName;\n    data.OrderMaster = this.editDto;\n    data.OrderMaster.FactoryCode = this.storage.getFactoryCode();\n    data.OrderDetails = this.orderDetails;\n\n    return true;\n  };\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  curSourceOrderDefaultQueryDto = {};\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n  BusinessType = BusinessType.PurchaseIn;\n  defaultQueryDto: { BusinessType: string; FactoryCode: string };\n  /** 根据配置，需要隐藏的字段列表 */\n  tableVisibleSetting = {};\n  visibleSetting: RhBaseDto = {};\n  editFormVisibleSetting: RhBaseDto = {};\n  /** 明细数据源 */\n  planOrderDetailDataset: PurchaseInPlanOrderDetails[] = [];\n  sourceOrderDetailDataset: ExtPurchaseOrderDto[] = [];\n  /** 单据明细数据，审核需要 */\n  orderDetails: RhSelectableDto[] = [];\n\n  get isEnableWarehouseAreaAndWarehouseShelf() {\n    return this.businessManageSer.isEnableWarehouseAreaAndWarehouseShelf;\n  }\n  get isEnableStorageLocation() {\n    return this.businessManageSer.IsEnableStorageLocation;\n  }\n  get isEnableInPlan() {\n    return this.operator.isEnableInPlan;\n  }\n\n  constructor(\n    public storage: RhStorageService,\n    private operator: RhPurchaseBusinessService,\n    public businessManageSer: RhBusinessManageService\n  ) {}\n\n  ngOnInit(): void {\n    this.setUserInfo();\n    this.initEditButtonVisible();\n    this.initVisibleSetting();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  initEditButtonVisible() {\n    this.editButtonDataset[0].visible = this.editVisible.toString();\n    this.editButtonDataset[1].visible = this.isCreated.toString();\n    this.editButtonDataset[2].visible = this.auditVisible.toString();\n  }\n\n  initBasicData() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curSourceOrderDefaultQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n    this.defaultQueryDto = { BusinessType: this.BusinessType, FactoryCode: this.currentUser?.FactoryCode };\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {\n        TransactorCode: this.currentUser.UserName,\n        TransactorName: this.currentUser.DisplayName,\n        FactoryCode: this.currentUser.FactoryCode\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.initVisibleConfig();\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.editDto = null;\n    this.selectedIndex = 0;\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  initVisibleSetting() {\n    Object.assign(this.visibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('In'));\n  }\n\n  initVisibleConfig() {\n    this.visibleSetting = {};\n    this.editFormVisibleSetting = {};\n    const temp = {};\n    Object.assign(temp, this.businessManageSer.initInWarehouseVisibleSetting());\n    Object.assign(temp, this.operator.initInPlanVisibleSetting());\n    Object.assign(this.visibleSetting, temp);\n    Object.assign(this.editFormVisibleSetting, temp);\n    this.isRefreshDesc = false;\n    setTimeout(() => {\n      this.isRefreshDesc = true;\n    });\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  // 未退出页面，刷新数据内容\n  getDetails(details?: RhSelectableDto[]) {\n    if (details) {\n      this.orderDetails = details;\n    } else {\n      const queryDto = View_PurchaseInTransactionOrderMasterQueryDto.create();\n      queryDto.OrderId = this.editDto.OrderId;\n      queryDto.BusinessType = this.BusinessType;\n      this.operator.GetPurchaseInTransactOrderDatas(queryDto).subscribe((result) => {\n        if (result.Success && result.Attach.length === 1) {\n          this.editDto = result.Attach[0];\n          this.editDto.OpSign = OpMode.OpEdit;\n          this.initVisibleConfig();\n        }\n      });\n    }\n  }\n\n  getOrderDetailDatas(data): Observable<DataResultT<PurchaseInTransactOrderDetails[]>> {\n    const queryDto = InOutOrderDetailQueryDto.create();\n    queryDto.OrderId = data.OrderId;\n    queryDto.SourceOrderId = data.SourceOrderId;\n    queryDto.BusinessType = this.BusinessType;\n    queryDto.Mode = 8;\n    return new Observable((observer) => {\n      this.operator.GetPurchaseInTransactOrderDetailsDatasBy(queryDto).subscribe((result) => {\n        observer.next(result);\n        observer.complete();\n      });\n    });\n  }\n\n  /** 提交审核 */\n  async submitDataToAudit(data: RhBaseDto) {\n    if (this.isCreated(data)) {\n      const dto = { OrderId: data.OrderId };\n      this.dataLoading = true;\n      this.operator.SumbitAuditPurchaseInTransactOrder(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('提交审核成功！');\n            if (this.selectedIndex === 0) this.getDatas();\n            this.closeEditTab();\n          } else {\n            MsgHelper.ShowWarningMessage(`提交审核失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行提交审核！');\n    }\n  }\n\n  /** 审核 */\n  auditData(data: RhBaseDto) {\n    if (this.auditVisible(data)) {\n      this.openAuditDataModal(data);\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行审核！');\n    }\n  }\n\n  /** 打开审核弹窗 */\n  openAuditDataModal(data: RhBaseDto) {\n    this.auditDto = { OrderId: data.OrderId };\n    this.isShowAuditDataModal = true;\n  }\n\n  /** 关闭审核弹窗 */\n  closeAuditDataModal() {\n    this.auditDto = {};\n    this.isShowAuditDataModal = false;\n  }\n\n  /** 审核接口返回 */\n  onAuditData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('审核办理成功！');\n      this.closeAuditDataModal();\n      this.getDetails();\n    } else {\n      MsgHelper.ShowWarningModal(`审核办理失败！${result.Message}`);\n    }\n  }\n\n  /** 根据审核是否通过，设置审核信息必填验证器 */\n  isPassChange(isPass: boolean, formgroup: UntypedFormGroup) {\n    if (!isPass) {\n      formgroup.get('AuditMessage').setValidators(Validators.required);\n    } else {\n      formgroup.get('AuditMessage').clearValidators();\n    }\n    formgroup.get('AuditMessage').updateValueAndValidity();\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.initVisibleConfig();\n    this.selectedIndex = 1;\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    }\n  }\n\n  planOrderIdChange(id: string) {\n    if (id) {\n      const queryDto = PlanOrderDetailsQueryDto.create();\n      queryDto.PlanOrderId = id;\n      queryDto.Mode = 8;\n      this.operator.GetPurchaseInPlanOrderDetailsDatasBy(queryDto).subscribe((result) => {\n        if (result && result.Success) {\n          this.planOrderDetailDataset = result.Attach;\n        } else {\n          this.planOrderDetailDataset = [];\n        }\n      });\n    } else {\n      this.planOrderDetailDataset = [];\n    }\n  }\n\n  sourceOrderDatasetChange(dataset: ExtPurchaseOrderDto[]) {\n    this.sourceOrderDetailDataset = [...dataset];\n  }\n\n  //#endregion 仓库管理联动区域结束\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"defaultQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  ></rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                [rhExtraButtonDataset]=\"extraButtonDataset\"\n                [rhVisibleSetting]=\"tableVisibleSetting\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              ></rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>采购入库办理</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"入库单单头\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button\n                    *ngIf=\"editVisible(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"isShowEditForm = true\"\n                  >\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button\n                    *ngIf=\"isCreated(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"submitDataToAudit(editDto)\"\n                  >\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                  <button *ngIf=\"auditVisible(editDto)\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else editDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  [rhVisibleSetting]=\"editFormVisibleSetting\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template\n                    rhTemplate=\"InWarehouseCode\"\n                    let-formgroup\n                    let-setting=\"setting\"\n                    let-hostSetting=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-warehouse-selector\n                          [formControl]=\"formgroup.get('InWarehouseCode')\"\n                          [rhData]=\"formData\"\n                          [rhFieldData]=\"setting\"\n                          [rhSize]=\"hostSetting?.rhSize\"\n                        >\n                        </rh-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                  <ng-template rhTemplate=\"PlanOrderId\" let-formgroup let-setting=\"setting\" let-formData=\"formData\">\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-purchase-warehousing-plan-selector\n                          [formControl]=\"formgroup.get('PlanOrderId')\"\n                          [rhFieldData]=\"setting\"\n                          [rhDisplayMode]=\"1\"\n                          [rhData]=\"formData\"\n                          (ngModelChange)=\"planOrderIdChange($event)\"\n                        ></rh-purchase-warehousing-plan-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                  <ng-template\n                    rhTemplate=\"SourceOrderId\"\n                    let-formgroup\n                    let-setting=\"setting\"\n                    let-hostSetting=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-purchase-warehousing-source-order-selector\n                          *ngIf=\"!isEnableInPlan; else planSourceTpl\"\n                          [formControl]=\"formgroup.get('SourceOrderId')\"\n                          [rhFieldData]=\"setting\"\n                          [rhDisplayMode]=\"1\"\n                          [rhData]=\"formData\"\n                          [rhDefaultQueryDto]=\"curSourceOrderDefaultQueryDto\"\n                          (rhModelChange)=\"sourceOrderDatasetChange($event)\"\n                        >\n                        </rh-purchase-warehousing-source-order-selector>\n                        <ng-template #planSourceTpl>\n                          <rh-form-field\n                            [formControl]=\"formgroup.get('SourceOrderId')\"\n                            rhFormType=\"edit\"\n                            [rhFieldData]=\"setting\"\n                            [rhSize]=\"hostSetting?.rhSize\"\n                            [rhData]=\"formData\"\n                          ></rh-form-field>\n                        </ng-template>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"入库单单体\">\n              <rh-purchase-in-handle-details [rhInOrder]=\"editDto\" (rhDetailsUpdate)=\"getDetails($event)\"> </rh-purchase-in-handle-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"入库单单头\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <button\n                  *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\"\n                  nz-button\n                  nzType=\"primary\"\n                  nzSize=\"small\"\n                  type=\"button\"\n                  (click)=\"auditData(editDto)\"\n                  [nzLoading]=\"auditLoading\"\n                >\n                  <i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n                </button>\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"editDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"入库单单体\">\n              <rh-purchase-in-handle-details [rhInOrder]=\"editDto\" [rhShowDetail]=\"true\"> </rh-purchase-in-handle-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #editDescription>\n  <rh-dynamic-description\n    *ngIf=\"isRefreshDesc\"\n    rhName=\"editDescription\"\n    [rhValue]=\"editDto\"\n    [rhVisibleSetting]=\"visibleSetting\"\n  ></rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'入库办理审核'\"\n  [nzVisible]=\"isShowAuditDataModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeAuditDataModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #auditDataForm\n    rhName=\"auditDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"auditDto\"\n    [rhBeforeSubmit]=\"beforeSubmitAudit\"\n    (rhInterfaceDataChange)=\"onAuditData($event)\"\n    (rhClose)=\"closeAuditDataModal()\"\n  >\n    <ng-template rhTemplate=\"IsPass\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-radio-group [formControl]=\"formgroup.get('IsPass')\" (ngModelChange)=\"isPassChange($event, formgroup)\">\n            <label nz-radio [nzValue]=\"true\">是</label>\n            <label nz-radio [nzValue]=\"false\">否</label>\n          </nz-radio-group>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"AuditMessage\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"!formgroup.get('IsPass').value\"> {{ setting.displayName }}</nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <textarea\n            nz-input\n            [formControl]=\"formgroup.get('AuditMessage')\"\n            [placeholder]=\"setting.placeholder\"\n            [nzAutosize]=\"{ minRows: 2 }\"\n          ></textarea>\n          <div *ngIf=\"editDto?.AuditMessage\">\n            <span style=\"color: #faad14\">上一次审核信息：{{ editDto?.AuditMessage }}</span>\n          </div>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>\n","import { BusinessType } from './../../../business-type';\nimport { Component, OnInit, Input, Output, EventEmitter, SimpleChanges } from '@angular/core';\nimport { MsgHelper, ObjectHelper, RhStorageService } from 'rh-base/core';\nimport { RhSelectableDto, OpMode, RhBaseDto, DataResultT, RhTableButtonInfoDto, RhSafeAny, RhSelectItem } from 'rh-base/model';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { RhPurchaseBusinessService } from './../../purchase-business.service';\nimport { RhBusinessManageService } from './../../../../business-manage/business-manage.service';\nimport {\n  PurchaseInTransactOrderDetails,\n  PurchaseReturnedTransactOrderDetails\n} from './../../purchase-business-model';\nimport { WarehouseMaterialControlParameter } from './../../../business-manage-model';\nimport { Observable } from 'rxjs';\nimport {\n  PurcahseReturnOrderDetailTableFieldDataset,\n  PurcahseReturnPlanOrderDetailFormInterface,\n  PurcahseReturnSourceOrderDetailFormInterface,\n  PurcahseReturnSourceOrderDetailTableFieldDataset\n} from '../../detail-source-table-config';\nimport * as _ from 'lodash';\n\n@Component({\n  selector: 'rh-purchase-returned-out-handle-details',\n  templateUrl: './purchase-returned-out-handle-details.component.html',\n  styleUrls: ['./purchase-returned-out-handle-details.component.less']\n})\nexport class PurchaseReturnedOutHandleDetailsComponent implements OnInit {\n  @Input() rhOutOrder: RhBaseDto;\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter();\n\n  dataLoading = false;\n  isShowEditModal = false;\n  // 编辑类型\n  editType: 'edit' | 'add' = 'edit';\n\n  dataresult: DataResultT<RhSelectableDto[]>;\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto(\n      'deleteDetails',\n      '删除',\n      'primary', true,\n      'delete',\n      true,\n      null,\n      (datas, buttonInfo) => this.removeDatas(datas as RhSelectableDto[], buttonInfo),\n      false,\n      true\n    ),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n\n  isRefreshDetailsTable = true;\n  isVisibleSettingOver = true;\n  isEnterEditStatus = false;\n  isShowDataModal = false;\n\n  sourceDefaultQueryDto = {};\n  tableVisibleSetting = {};\n  selectedDatas: RhSelectableDto[] = [];\n\n  // 数据源\n  selectedSourceDatas: RhSelectableDto[] = [];\n  // 计划明细\n  planOrderDetailFormInterface = PurcahseReturnPlanOrderDetailFormInterface;\n  planOrderDetailTableFieldDataset = PurcahseReturnOrderDetailTableFieldDataset;\n  planOrderDetailDataset: RhSelectableDto[] = [];\n  // 源单明细\n  sourceOrderDetailFormInterface = PurcahseReturnSourceOrderDetailFormInterface;\n  sourceOrderDetailTableFieldDataset = PurcahseReturnSourceOrderDetailTableFieldDataset;\n  /** 数量汇总模型 */\n  summaryData: RhSelectableDto;\n  /** 表格可见项配置 */\n  visibleSetting = {};\n\n  // 仓储数据\n  warehouseAreaDataset: RhSelectableDto[] = [];\n  warehouseShelfDataset: RhSelectableDto[] = [];\n  storageLocationDataset: RhSelectableDto[] = [];\n\n  // 仓库控制配置参数\n  currentWarehouseMaterialControlPara: WarehouseMaterialControlParameter;\n\n  editDisabled = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return !list.includes(data.OrderStatus);\n  };\n\n  // 配置参数\n  get isEnableOutPlan() {\n    return this.businessManageSer.IsEnableOutPlan;\n  }\n  // 显示控制\n  get sourceDataModalTitle() {\n    return this.isEnableOutPlan ? '选择计划明细数据' : '选择源单明细数据';\n  }\n  get isReadOnlyTable() {\n    return this.rhShowDetail || !this.rhOutOrder?.OrderId || this.isEnterEditStatus || this.editDisabled(this.rhOutOrder);\n  }\n  get readeOnlyButtonDataset() {\n    if (!this.rhOutOrder?.OrderId) return [];\n    else if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(\n    private operator: RhPurchaseBusinessService,\n    private businessManageSer: RhBusinessManageService,\n    private storage: RhStorageService\n  ) { }\n\n  ngOnInit(): void {\n    if (this.rhShowDetail) {\n      this.initVisibleSetting();\n    }\n  }\n\n  async ngOnChanges(changes: SimpleChanges): Promise<void> {\n    const { rhOutOrder } = changes;\n    if (rhOutOrder && rhOutOrder.currentValue && this.rhOutOrder.OrderId) {\n      // 获取仓库控制配置参数\n      await this.getWarehouseMaterialControlParameter();\n      // 设置表格字段显隐性配置\n      this.isVisibleSettingOver = false;\n      this.initTableVisibleSetting();\n      setTimeout(() => (this.isVisibleSettingOver = true));\n      // 获取明细数据\n      this.getDatas();\n      // 获取仓储数据\n      if (!this.rhShowDetail) {\n        this.getWarehouseInfos();\n      }\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(\n      this.tableVisibleSetting,\n      this.businessManageSer.initOutWarehouseVisibleSetting(this.currentWarehouseMaterialControlPara)\n    );\n  }\n\n  initVisibleSetting() {\n    Object.assign(this.visibleSetting, this.businessManageSer.initInWarehouseVisibleSetting());\n    Object.assign(this.visibleSetting, this.operator.initInPlanVisibleSetting());\n  }\n\n  extendVisibleSetting() {\n    Object.assign(this.visibleSetting, this.businessManageSer.initExtendedVisibleSetting());\n    this.isRefreshDetailsTable = false;\n    setTimeout(() => {\n      this.isRefreshDetailsTable = true;\n    });\n  }\n\n  openDataModal() {\n    if (this.isEnableOutPlan) {\n      this.sourceDefaultQueryDto = {\n        PlanOrderId: this.rhOutOrder.PlanOrderId,\n        FactoryCode: this.rhOutOrder.FactoryCode\n      };\n    } else {\n      this.sourceDefaultQueryDto = {\n        OrderId: this.rhOutOrder.SourceOrderId,\n        FactoryCode: this.rhOutOrder.FactoryCode\n      };\n    }\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      OrderId: this.rhOutOrder.OrderId,\n      FactoryCode: this.rhOutOrder.FactoryCode,\n      SourceOrderId: this.rhOutOrder.SourceOrderId,\n      BusinessType: 'PurchaseReturnedOut',\n      Mode: 8\n    };\n    this.operator.GetPurchaseReturnedTransactOrderDetailsDatasBy(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        this.rhDetailsUpdate.emit(this.dataresult?.Attach || []);\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`);\n        } else {\n          if (this.isEnableOutPlan) {\n            this.getPlanOrderDetails();\n          }\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  removeDatas(details: RhSelectableDto[], buttonInfo: RhTableButtonInfoDto) {\n    buttonInfo.loading = true;\n    this.operator.RemovePurchaseReturnedTransactOrderDetails(details).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n          if (this.rhOutOrder.OrderStatus !== 'Created') this.rhDetailsUpdate.emit();\n          this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n        }\n        buttonInfo.loading = false;\n      },\n      () => (buttonInfo.loading = false)\n    );\n  }\n\n  editDatas() {\n    if (this.editDisabled(this.rhOutOrder)) {\n      MsgHelper.ShowWarningMessage('当前单据状态无法编辑出库办理明细！');\n      return;\n    }\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    return new Observable((observer) => {\n      this.businessManageSer.checkStoreDatas(details, 'Out').then((checkRes) => {\n        if (!checkRes) {\n          observer.error();\n        } else {\n          const dto = {\n            OrderMaster: this.rhOutOrder,\n            OrderDetails: details\n          };\n          dto.OrderMaster.FactoryCode = this.storage.getFactoryCode();\n          dto.OrderDetails.map((ele) => (ele.FactoryCode = this.storage.getFactoryCode()));\n          const msg = editType === 'add' ? '新增' : '编辑';\n          this.dataLoading = true;\n          this.operator.StorePurchaseReturnedTransactOrderDetails(dto).subscribe(\n            (result) => {\n              if (result.Success) {\n                MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`);\n              } else {\n                MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n              }\n              this.dataLoading = false;\n              observer.next();\n              observer.complete();\n            },\n            () => {\n              this.dataLoading = false;\n              observer.error();\n            }\n          );\n        }\n      });\n    });\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  onSelectedDetailDatasChange(datas: RhSelectableDto[]) {\n    this.selectedSourceDatas = datas || [];\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  async handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    // 获取源单统计信息\n    const convertResult = await this.businessManageSer.convertSourceOrderStatisticsDatasToSelectedDatas(\n      this.rhOutOrder.SourceOrderId,\n      // this.rhOutOrder.BusinessType,\n      BusinessType.PurchaseIn,\n      details\n    );\n    // 退料一定有源单！\n    if (!convertResult) {\n      return MsgHelper.ShowWarningMessage('找不到对应源单的统计数据！');\n    }\n    const datas = details.map((data) => {\n      const temp = PurchaseReturnedTransactOrderDetails.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 源单赋值\n      if (this.isEnableOutPlan) {\n        temp.PlanOrderId = this.rhOutOrder.PlanOrderId;\n        temp.SourceReversePlanedQty = data.SourceReversePlanedQty;\n        temp.SourceReturnedQty = data.SourceReturnedQty;\n        temp.PlanTransactedQty = data.PlanTransactedQty;\n        temp.SourceCompletedQty = data.SourceCompletedQty;\n      }\n      // 单头赋值\n      temp.OrderId = this.rhOutOrder.OrderId;\n      temp.BusinessType = this.rhOutOrder.BusinessType;\n      temp.OutWarehouseCode = this.rhOutOrder.OutWarehouseCode;\n      temp.OutWarehouseName = this.rhOutOrder.OutWarehouseName;\n      temp.OutStorageLocationCode = data.InStorageLocationCode;\n      temp.OutStorageLocationName = data.InStorageLocationName;\n      temp.OutWarehouseAreaCode = data.InWarehouseAreaCode;\n      temp.OutWarehouseAreaName = data.InWarehouseAreaName;\n      temp.OutWarehouseShelfCode = data.InWarehouseShelfCode;\n      temp.OutWarehouseShelfName = data.InWarehouseShelfName;\n      temp.FactoryCode = this.rhOutOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n      }\n      this.dataresult = { Attach: (this.dataresult.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 启用计划，获取计划明细，用于初始化PlanTransactedQty */\n  getPlanOrderDetails() {\n    const queryDto = {\n      PlanOrderId: this.rhOutOrder.PlanOrderId,\n      SourceOrderId: this.rhOutOrder.SourceOrderId,\n      FactoryCode: this.rhOutOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetPurchaseReturnedOutPlanOrderDetailsDatasBy(queryDto).subscribe(result => {\n      if (result.Success) {\n        this.planOrderDetailDataset = result.Attach;\n        // 初始化办理明细的PlanTransactedQty\n        this.dataresult.Attach.forEach(data => {\n          const item = this.planOrderDetailDataset.find((ele) =>\n            ele.MaterialCode === data.MaterialCode &&\n            ele.SourceOrderId === data.SourceOrderId &&\n            ele.SourceOrderRowNum === data.SourceOrderRowNum);\n          if (item) {\n            data.PlanTransactedQty = item.PlanTransactedQty;\n          } else {\n            data.PlanTransactedQty = null;\n          }\n        });\n        this.dataresult = _.cloneDeep(this.dataresult);\n      } else {\n        this.planOrderDetailDataset = [];\n      }\n    });\n  }\n\n  //#region 仓储相关区域开始\n  /** 根据是否启用，获取对应仓储信息 */\n  getWarehouseInfos() {\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseArea) {\n      this.businessManageSer\n        .getWarehouseAreaDataset({ WarehouseCode: this.rhOutOrder.OutWarehouseCode })\n        .then((res) => {\n          this.warehouseAreaDataset = res || [];\n        })\n        .catch(() => {\n          this.warehouseAreaDataset = [];\n        });\n    }\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseShelf) {\n      this.businessManageSer\n        .getWarehouseShelfDataset({ WarehouseCode: this.rhOutOrder.OutWarehouseCode })\n        .then((res) => {\n          this.warehouseShelfDataset = res || [];\n        })\n        .catch(() => {\n          this.warehouseShelfDataset = [];\n        });\n    }\n    if (this.currentWarehouseMaterialControlPara.IsEnableStorageLocation) {\n      this.businessManageSer\n        .getStorageLocationDataset({ WarehouseCode: this.rhOutOrder.OutWarehouseCode })\n        .then((res) => {\n          this.storageLocationDataset = res || [];\n        })\n        .catch(() => {\n          this.storageLocationDataset = [];\n        });\n    }\n  }\n\n  /** 获取仓库控制参数配置 */\n  async getWarehouseMaterialControlParameter() {\n    const para = await this.businessManageSer.getWarehouseMaterialControlParameter({\n      WarehouseCode: this.rhOutOrder.OutWarehouseCode\n    });\n    this.currentWarehouseMaterialControlPara = this.businessManageSer.transformWarehouseMaterialControlParameter(para);\n  }\n\n  outWarehouseAreaCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseAreaDataset.find((ele) => ele.WarehouseAreaCode === code);\n      if (item) {\n        data.OutWarehouseAreaName = item.WarehouseAreaName;\n      } else {\n        data.OutWarehouseAreaName = null;\n      }\n    } else {\n      data.OutWarehouseAreaName = null;\n    }\n    // 强关联则清空下属字段\n    if (this.currentWarehouseMaterialControlPara.IsStrictCorrelation) {\n      data.OutWarehouseShelfCode = null;\n      data.OutWarehouseShelfName = null;\n      data.OutStorageLocationCode = null;\n      data.OutStorageLocationName = null;\n    }\n    // 获取库存数据\n    this.getMaterialSumerizeStockQtyBy(data);\n  }\n\n  outWarehouseShelfCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseShelfDataset.find((ele) => ele.WarehouseShelfCode === code);\n      if (item) {\n        data.OutWarehouseShelfName = item.WarehouseShelfName;\n      } else {\n        data.OutWarehouseShelfName = null;\n      }\n    } else {\n      data.OutWarehouseShelfName = null;\n    }\n    // 强关联则清空下属字段\n    if (this.currentWarehouseMaterialControlPara.IsStrictCorrelation) {\n      data.OutStorageLocationCode = null;\n      data.OutStorageLocationName = null;\n    }\n    // 获取库存数据\n    this.getMaterialSumerizeStockQtyBy(data);\n  }\n\n  outStorageLocationCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.storageLocationDataset.find((ele) => ele.StorageLocationCode === code);\n      if (item) {\n        data.OutStorageLocationName = item.StorageLocationName;\n      } else {\n        data.OutStorageLocationName = null;\n      }\n    } else {\n      data.OutStorageLocationName = null;\n    }\n    // 获取库存数据\n    this.getMaterialSumerizeStockQtyBy(data);\n  }\n\n  getMaterialSumerizeStockQtyBy(data: RhSelectableDto) {\n    this.businessManageSer.getMaterialSumerizeStockQtyBy(data, this.currentWarehouseMaterialControlPara, 'Out');\n  }\n\n  /** 获取货架显示列表，行编辑应用 */\n  getWarehouseShelfDatasetDisplay(data: RhSelectableDto): RhSelectableDto[] {\n    return this.businessManageSer.getWarehouseShelfDatasetDisplay(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      this.warehouseShelfDataset,\n      'Out'\n    );\n  }\n\n  /** 获取库位显示列表，行编辑应用 */\n  getStorageLocationDatasetDisplay(data: RhSelectableDto): RhSelectableDto[] {\n    return this.businessManageSer.getStorageLocationDatasetDisplay(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      this.storageLocationDataset,\n      'Out'\n    );\n  }\n  //#endregion 仓储相关区域结束\n}\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isVisibleSettingOver\">\n    <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n      <rh-dynamic-table\n        rhName=\"handleDetailsReadOnlyTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n        <ng-template rhTemplate=\"OutWarehouseAreaCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseAreaTpl\">\n            <nz-select\n              [(ngModel)]=\"data.OutWarehouseAreaCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"outWarehouseAreaCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of warehouseAreaDataset\"\n                [nzLabel]=\"item.WarehouseAreaCode\"\n                [nzValue]=\"item.WarehouseAreaCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseAreaTpl>{{ data.OutWarehouseAreaCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"OutWarehouseAreaName\" let-item let-data=\"data\">\n          {{ data.OutWarehouseAreaName }}\n        </ng-template>\n        <ng-template rhTemplate=\"OutWarehouseShelfCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseShelfTpl\">\n            <nz-select\n              [(ngModel)]=\"data.OutWarehouseShelfCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"outWarehouseShelfCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of getWarehouseShelfDatasetDisplay(data)\"\n                [nzLabel]=\"item.WarehouseShelfCode\"\n                [nzValue]=\"item.WarehouseShelfCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseShelfTpl>{{ data.OutWarehouseShelfCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"OutWarehouseShelfName\" let-item let-data=\"data\">\n          {{ data.OutWarehouseShelfName }}\n        </ng-template>\n        <ng-template rhTemplate=\"OutStorageLocationCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else storageLocationTpl\">\n            <nz-select\n              [(ngModel)]=\"data.OutStorageLocationCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"outStorageLocationCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of getStorageLocationDatasetDisplay(data)\"\n                [nzLabel]=\"item.StorageLocationCode\"\n                [nzValue]=\"item.StorageLocationCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #storageLocationTpl>{{ data.OutStorageLocationCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"OutStorageLocationName\" let-item let-data=\"data\">\n          {{ data.OutStorageLocationName }}\n        </ng-template>\n        <ng-template rhTemplate=\"SN\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else SNTpl\">\n            <input\n              nz-input\n              [(ngModel)]=\"data.SN\"\n              [placeholder]=\"item?.displayName\"\n              [ngStyle]=\"{ border: !data.SN && currentWarehouseMaterialControlPara.IsEnableSN ? '1px solid red' : '1px solid #d9d9d9' }\"\n            />\n            <p style=\"color: red; margin-bottom: 0\" *ngIf=\"!data.SN && currentWarehouseMaterialControlPara.IsEnableSN\">请输入条码</p>\n          </ng-container>\n          <ng-template #SNTpl>{{ data.SN }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"ProductionDate\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else ProDateTpl\">\n            <nz-date-picker\n              nz-input\n              [(ngModel)]=\"data.ProductionDate\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              [ngStyle]=\"{\n                border:\n                  !data.ProductionDate && currentWarehouseMaterialControlPara.IsEnableExpirationDate ? '1px solid red' : '1px solid #d9d9d9'\n              }\"\n            ></nz-date-picker>\n            <p\n              style=\"color: red; margin-bottom: 0\"\n              *ngIf=\"!data.ProductionDate && currentWarehouseMaterialControlPara.IsEnableExpirationDate\"\n            >\n              请输入生产日期\n            </p>\n          </ng-container>\n          <ng-template #ProDateTpl>{{ data.ProductionDate | date : 'yyyy-MM-dd' }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"LotNum\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else LotNumTpl\">\n            <input\n              nz-input\n              [(ngModel)]=\"data.LotNum\"\n              [placeholder]=\"item?.displayName\"\n              [ngStyle]=\"{\n                border: !data.LotNum && currentWarehouseMaterialControlPara.IsEnableLotNum ? '1px solid red' : '1px solid #d9d9d9'\n              }\"\n            />\n            <p style=\"color: red; margin-bottom: 0\" *ngIf=\"!data.LotNum && currentWarehouseMaterialControlPara.IsEnableLotNum\">\n              请输入批次号\n            </p>\n          </ng-container>\n          <ng-template #LotNumTpl>{{ data.LotNum }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"AvailableQty\" let-item let-data=\"data\">\n          {{ data.AvailableQty }}\n        </ng-template>\n      </rh-dynamic-table>\n    </ng-container>\n    <ng-template #handleTpl>\n      <rh-dynamic-table\n        rhName=\"handleDetailsTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n      </rh-dynamic-table>\n    </ng-template>\n  </ng-container>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"sourceDataModalTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div *ngIf=\"isShowDataModal\">\n      <rh-dynamic-single-table\n        *ngIf=\"isEnableOutPlan; else sourceDetailsTpl\"\n        rhName=\"planOrderDetailTable\"\n        [rhInterfaceInfo]=\"planOrderDetailFormInterface\"\n        [rhDefaultFieldDataset]=\"planOrderDetailTableFieldDataset\"\n        [rhPara]=\"sourceDefaultQueryDto\"\n        (rhSelectedDatasChange)=\"onSelectModal($event)\"\n      ></rh-dynamic-single-table>\n      <ng-template #sourceDetailsTpl>\n        <rh-dynamic-single-table\n          rhName=\"sourceOrderDetailTable\"\n          [rhInterfaceInfo]=\"sourceOrderDetailFormInterface\"\n          [rhDefaultFieldDataset]=\"sourceOrderDetailTableFieldDataset\"\n          [rhPara]=\"sourceDefaultQueryDto\"\n          (rhSelectedDatasChange)=\"onSelectModal($event)\"\n        ></rh-dynamic-single-table>\n      </ng-template>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { CustomizeBaseTableComponent, DynamicFormComponent } from 'rh-base/shared';\nimport {\n  RhDynamicInterfaceDto,\n  RhSelectableDto,\n  RhBaseDto,\n  RhTableQueryOptionDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto\n} from 'rh-base/model';\n\n@Component({\n  selector: 'rh-purchase-returned-out-plan-table',\n  templateUrl: './purchase-returned-out-plan-table.component.html',\n  styleUrls: ['./purchase-returned-out-plan-table.component.less']\n})\nexport class PurchaseReturnedOutPlanTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n\n  @Input() rhSingleMode = true;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() rhDisabled: boolean;\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto>();\n\n  rhName = 'PurchaseReturnPlanOrderSelector';\n\n  defaultQueryDto: RhBaseDto;\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n  defaultInterfaceInfo: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'PurchaseBusinessPlanApi',\n    interfaceName: 'GetPurchaseReturnedOutPlanOrderDatas'\n  };\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [];\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  constructor() {\n    //\n    super();\n  }\n\n  ngOnInit(): void {\n    // if (this.rhProductCode) {\n    //   this.defaultQueryDto = { ProductCode: this.rhProductCode };\n    // }\n    this.defaultQueryDto = {};\n    this.rhInterfaceInfo = this.rhInterfaceInfo || this.defaultInterfaceInfo;\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n}\n","<!-- 搜索Form区域 -->\n<div class=\"search-area rh-full\">\n  <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n    <ng-template #searchTpl>\n      <rh-dynamic-form\n        #queryForm\n        rhName=\"{{ rhName }}Form\"\n        [rhValue]=\"defaultQueryDto\"\n        (rhInterfaceDataChange)=\"setDatas($event)\"\n        (rhDataloadingChange)=\"dataLoadingChange($event)\"\n        (rhOutParaChange)=\"setInitFieldDataset($event)\"\n        [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n        [(rhFormInterface)]=\"rhInterfaceInfo\"\n      ></rh-dynamic-form>\n    </ng-template>\n  </nz-alert>\n</div>\n<!-- 搜索结果Table展示区域 -->\n<div class=\"table-area\">\n  <rh-dynamic-table\n    rhName=\"{{ rhName }}Table\"\n    [rhTableData]=\"dataresult\"\n    [rhTableDataloading]=\"dataLoading\"\n    [rhDefaultFieldDataset]=\"defaultTableFieldDataset\"\n    (rhRefresh)=\"refreshDatas($event)\"\n    (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\"\n    [rhSingleMode]=\"rhSingleMode\"\n  ></rh-dynamic-table>\n</div>\n","import { Component, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, SimpleChanges } from '@angular/core';\nimport { NzSizeLDSType } from 'ng-zorro-antd/core/types';\nimport { provideValueAccessor, RhRouteHelper, MsgHelper } from 'rh-base/core';\nimport {\n  RhSelectableDto,\n  RhDynamicFormFieldDto,\n  RhSafeAny,\n  DataResultT,\n  RhDynamicInterfaceDto,\n  RhDynamicCustomizeControlConfigDto,\n  RhRelatedFieldDataDto,\n  RhCustomizeEventSettingDto,\n  RhDisplayMode\n} from 'rh-base/model';\nimport { CustomizeBaseControlComponent, RhBaseDynamicService } from 'rh-base/shared';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { PurchaseReturnedOutPlanTableComponent } from './purchase-returned-out-plan-table/purchase-returned-out-plan-table.component';\n\n@Component({\n  selector: 'rh-purchase-returned-out-plan-selector',\n  templateUrl: './purchase-returned-out-plan-selector.component.html',\n  styleUrls: ['./purchase-returned-out-plan-selector.component.less']\n})\nexport class PurchaseReturnedOutPlanSelectorComponent extends CustomizeBaseControlComponent {\n  rhRelatedFieldData = null;\n  @ViewChild(PurchaseReturnedOutPlanTableComponent) tableComp: PurchaseReturnedOutPlanTableComponent;\n  @Input() rhDynamicKey = 'PurchaseReturnPlanOrder';\n  @Input() rhTitle = '选择采购退货计划';\n  @Input() declare rhSize: NzSizeLDSType;\n  @Input() declare rhDisplayMode: RhDisplayMode;\n\n  @Input() rhProductCode: string;\n\n  iconSetting = 'search';\n  @Input() rhSingleMode = true;\n\n  formKeyFieldName = 'PlanOrderId';\n  formTextFieldName = 'PlanOrderId';\n\n  modelKeyFieldName = 'PlanOrderId';\n  modelTextFieldName = 'PlanOrderId';\n\n  // // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto>();\n  /** 对应table选中的数据 */\n  rhModel: RhSelectableDto = {};\n\n  /** 动态form字段配置数据 */\n  @Input() rhFieldData: RhDynamicFormFieldDto;\n  /** 整个form的数据 */\n  @Input() declare rhData: RhSafeAny;\n\n  /** 表格Loading */\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  /** selector input上展示的数据，一般为中文 */\n  //displayName: string;\n\n  //selectedData: RhSelectableDto;\n\n  /** 自定义组件的自定义执行函数 */\n  cb: (data: RhSafeAny, ctx: RhSafeAny) => void;\n\n  /** 该组件关联的form名称 */\n  formName: string;\n\n  url: string;\n\n  /** 设置默认搜索接口 */\n  defaultFormInterface: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'PurchaseBusinessPlanApi',\n    interfaceName: 'GetPurchaseReturnedOutPlanOrderDatas'\n  };\n\n  mappedList = [\n    { sourceName: this.modelKeyFieldName, mappedName: this.formKeyFieldName },\n    { sourceName: this.modelTextFieldName, mappedName: this.formTextFieldName },\n    { sourceName: 'SourceOrderId', mappedName: 'SourceOrderId' },\n    { sourceName: 'SourceOrderRowNum', mappedName: 'SourceOrderRowNum' },\n    { sourceName: 'ArrivalDate', mappedName: 'ArrivalDate' },\n    { sourceName: 'SupplierId', mappedName: 'SupplierId' },\n    { sourceName: 'Supplier', mappedName: 'Supplier' },\n    { sourceName: 'PurchaserId', mappedName: 'PurchaserId' },\n    { sourceName: 'Purchaser', mappedName: 'Purchaser' },\n    { sourceName: 'Contacts', mappedName: 'Contacts' },\n    { sourceName: 'ContactNumber', mappedName: 'ContactNumber' },\n    { sourceName: 'WarehouseCode', mappedName: 'OutWarehouseCode' },\n    { sourceName: 'WarehouseName', mappedName: 'OutWarehouseName' }\n  ];\n\n  constructor(\n    public fb: UntypedFormBuilder,\n    public cdr: ChangeDetectorRef,\n    public router: Router,\n    public dynamicSer: RhBaseDynamicService\n  ) {\n    super(cdr, dynamicSer);\n    this.url = RhRouteHelper.getRealRoute(this.router.url);\n  }\n\n  ngOnInit(): void {\n    this.rhPlaceholder = this.rhFieldData.placeholder as any;\n    this.formName = this.rhFieldData.relatedComponentName;\n    this.setCbValue();\n  }\n\n  // 自定义表单项配置\n  ngOnChanges(changes: SimpleChanges) {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue && rhData.currentValue[this.formKeyFieldName] === null) {\n      this.resetControlValue();\n    } else {\n      this.rhModel = {};\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    if (data?.length === 1 && this.rhSingleMode) {\n      this.selectedData = data[0];\n    } else {\n      this.selectedData = data;\n    }\n  }\n\n  setDatas(result: DataResultT<RhSelectableDto[]>) {\n    if (result && result.Success) {\n      this.dataresult = result;\n    } else {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n    }\n  }\n\n  /** 根据填入的code值，获取对应的完整数据，回填到输入框 */\n  getTargetDatas(code: string) {\n    // 显示代码 不需要\n    // if (!this.defaultFormInterface) {\n    //   return;\n    // }\n    // const queryDto = {};\n    // queryDto[this.modelKeyFieldName] = `$${code}`;\n    // this.getTargetDatasVisHttpHandler(this.defaultFormInterface, queryDto, this.rhFieldData);\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n  }\n\n  //#region customize selector interface区域\n  confirmSelect() {\n    this.rhModel = this.selectedData;\n    this.rhModelChange.emit(this.rhModel);\n    if (this.rhSingleMode) {\n      this.value = this.rhModel[this.modelKeyFieldName];\n      this.displayName = this.rhModel[this.modelTextFieldName];\n      this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    } else {\n      this.value = (this.rhModel as RhSafeAny[]).map((ele) => ele[this.modelKeyFieldName]) as RhSafeAny;\n      // 多选的时候只会显示多个代码\n      this.displayName = (this.value as RhSafeAny).toString();\n    }\n    // 执行对应控件定义的代码\n    if (this.rhData && this.rhModel && this.cb) {\n      this.cb(this.rhData, this.rhModel);\n    }\n    this.setFormDataViaRelatedDatas();\n    // 执行form的相关字段赋值操作\n    this.triggerRelatedForm();\n    this.closeDataModal();\n  }\n\n  resetControlValue() {\n    this.displayName = null;\n    // 重置form对应数据对象\n    this.rhData[this.formKeyFieldName] = null;\n    this.rhData[this.formTextFieldName] = null;\n    // 清空数据中的字段的值\n    this.mappedList.forEach((ele) => {\n      this.rhData[ele.mappedName] = null;\n    });\n    this.rhModel = null;\n  }\n\n  setCbValue() {\n    const cbString = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.cb;\n    if (cbString) {\n      const fn = Function(`return ${cbString}`);\n      if (fn) {\n        this.cb = fn();\n      } else {\n        this.cb = this.setFormData;\n      }\n    } else {\n      // 当没有配置回调函数时，执行默认的回调函数\n      this.cb = this.setFormData;\n    }\n  }\n\n  /** 设置form对应的数据对象的值\n   * @param data form对应的数据对象\n   * @params 设置或者对应table选择的数据\n   */\n  setFormData(data: RhSafeAny, ctx: RhSelectableDto) {\n    data[this.formKeyFieldName] = ctx[this.modelKeyFieldName];\n    data[this.formTextFieldName] = ctx[this.modelTextFieldName];\n  }\n\n  setFormDataViaRelatedDatas() {\n    let relatedDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedModelDatas;\n    if (!relatedDatas?.length) {\n      relatedDatas = this.mappedList;\n    }\n    if (relatedDatas?.length) {\n      relatedDatas.forEach((ele) => {\n        this.rhData[ele.mappedName] = this.rhModel[ele.sourceName];\n      });\n    }\n  }\n\n  triggerRelatedForm() {\n    const tempDatas = (this.rhFieldData.config as RhDynamicCustomizeControlConfigDto)?.relatedFieldDatas;\n    const relatedDatas: RhRelatedFieldDataDto[] = tempDatas && tempDatas.length ? tempDatas : this.mappedList;\n    const data: RhCustomizeEventSettingDto = {\n      id: `${this.url}_${this.formName}`,\n      eventType: null,\n      options: null,\n      value: this.rhModel,\n      relatedFieldDatas: relatedDatas\n    };\n    this.dynamicSer.formCustomizeEventTrigger(data);\n  }\n  //#endregion customize selector interface区域结束\n}\n","<nz-input-group [nzSize]=\"rhSize\" [nzSuffix]=\"suffixIconSearch\" [nzAddOnAfter]=\"addOnAfter\">\n  <input type=\"text\" nz-input [ngModel]=\"displayName\" [placeholder]=\"rhPlaceholder\" readonly=\"readonly\" />\n</nz-input-group>\n<ng-template #suffixIconSearch>\n  <a *ngIf=\"displayName && !rhDisabled\" class=\"link-suffix\" (click)=\"clearInputInfo()\">\n    <i nz-icon nzType=\"close-circle\"></i>\n  </a>\n</ng-template>\n\n<ng-template #addOnAfter>\n  <button nz-button nzType=\"link\" type=\"button\" nzSize=\"small\">\n    <a (click)=\"openDataModal($event)\">\n      <i nz-icon [nzType]=\"iconSetting\"></i>\n    </a>\n  </button>\n</ng-template>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"rhTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedData\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-purchase-returned-out-plan-table\n        [rhModel]=\"rhModel\"\n        (rhModelChange)=\"onSelectModal($event)\"\n        [rhInterfaceInfo]=\"defaultFormInterface\"\n        [rhSingleMode]=\"rhSingleMode\"\n      ></rh-purchase-returned-out-plan-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { DynamicFormComponent, CustomizeBaseTableComponent } from 'rh-base/shared';\nimport {\n  RhDynamicInterfaceDto,\n  RhSelectableDto,\n  RhBaseDto,\n  RhTableQueryOptionDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto\n} from 'rh-base/model';\n\n@Component({\n  selector: 'rh-purchase-returned-out-source-order-table',\n  templateUrl: './purchase-returned-out-source-order-table.component.html',\n  styleUrls: ['./purchase-returned-out-source-order-table.component.less']\n})\nexport class PurchaseReturnedOutSourceOrderTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n\n  @Input() rhSingleMode = false;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() rhDisabled: boolean;\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto>();\n\n  rhName = 'PurchaseReturnSourceOrderSelector';\n\n  @Input() defaultQueryDto: RhBaseDto = {};\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n  defaultInterfaceInfo: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'PurchaseBusinessTransactApi',\n    interfaceName: 'GetPurchaseInPlanOrderDatas'\n  };\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [];\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  constructor() {\n    //\n    super();\n  }\n\n  ngOnInit(): void {\n    // if (this.rhProductCode) {\n    //   this.defaultQueryDto = { ProductCode: this.rhProductCode };\n    // }\n    // this.defaultQueryDto = {};\n    this.rhInterfaceInfo = this.rhInterfaceInfo || this.defaultInterfaceInfo;\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n}\n","<!-- 搜索Form区域 -->\n<div class=\"search-area rh-full\">\n  <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n    <ng-template #searchTpl>\n      <rh-dynamic-form\n        #queryForm\n        rhName=\"{{ rhName }}Form\"\n        [rhValue]=\"defaultQueryDto\"\n        (rhInterfaceDataChange)=\"setDatas($event)\"\n        (rhDataloadingChange)=\"dataLoadingChange($event)\"\n        (rhOutParaChange)=\"setInitFieldDataset($event)\"\n        [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n        [(rhFormInterface)]=\"rhInterfaceInfo\"\n      >\n        <ng-template rhTemplate=\"SourceOrderId\" let-formgroup let-setting=\"setting\" let-formData=\"formData\" let-hostSetting=\"hostSetting\">\n          <nz-form-item>\n            <nz-form-control [nzSpan]=\"setting.controlSpan\">\n              <input\n                nz-input\n                [formControl]=\"formgroup.get('SourceOrderId')\"\n                [placeholder]=\"setting.placeholder\"\n                [nzSize]=\"hostSetting?.rhSize\"\n              />\n            </nz-form-control>\n          </nz-form-item>\n        </ng-template>\n      </rh-dynamic-form>\n    </ng-template>\n  </nz-alert>\n</div>\n<!-- 搜索结果Table展示区域 -->\n<div class=\"table-area\">\n  <rh-dynamic-table\n    rhName=\"{{ rhName }}Table\"\n    [rhTableData]=\"dataresult\"\n    [rhTableDataloading]=\"dataLoading\"\n    [rhDefaultFieldDataset]=\"defaultTableFieldDataset\"\n    (rhRefresh)=\"refreshDatas($event)\"\n    (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\"\n    [rhSingleMode]=\"rhSingleMode\"\n  ></rh-dynamic-table>\n</div>\n","import { Component, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, SimpleChanges } from '@angular/core';\nimport { NzSizeLDSType } from 'ng-zorro-antd/core/types';\nimport { provideValueAccessor, RhRouteHelper, MsgHelper } from 'rh-base/core';\nimport { CustomizeBaseControlComponent, RhBaseDynamicService } from 'rh-base/shared';\nimport {\n  RhSelectableDto,\n  RhDynamicFormFieldDto,\n  RhSafeAny,\n  DataResultT,\n  RhDynamicInterfaceDto,\n  RhDynamicCustomizeControlConfigDto,\n  RhRelatedFieldDataDto,\n  RhCustomizeEventSettingDto,\n  RhDisplayMode\n} from 'rh-base/model';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { PurchaseReturnedOutSourceOrderTableComponent } from './purchase-returned-out-source-order-table/purchase-returned-out-source-order-table.component';\nimport { RhBusinessManageService } from './../../../business-manage.service';\n\n@Component({\n  selector: 'rh-purchase-returned-out-source-order-selector',\n  templateUrl: './purchase-returned-out-source-order-selector.component.html',\n  styleUrls: ['./purchase-returned-out-source-order-selector.component.less']\n})\nexport class PurchaseReturnedOutSourceOrderSelectorComponent extends CustomizeBaseControlComponent {\n  rhRelatedFieldData = null;\n  @ViewChild(PurchaseReturnedOutSourceOrderTableComponent) tableComp: PurchaseReturnedOutSourceOrderTableComponent;\n  @Input() rhDynamicKey = 'PurchaseReturnSourceOrde';\n  @Input() rhTitle = '选择采购退货源单';\n  @Input() declare rhSize: NzSizeLDSType;\n  @Input() declare rhDisplayMode: RhDisplayMode;\n  @Input() rhDefaultQueryDto = {};\n  // @Input() rhProductCode: string;\n\n  iconSetting = 'search';\n  @Input() rhSingleMode = false;\n\n  formKeyFieldName = 'SourceOrderId';\n  formTextFieldName = 'SourceOrderName';\n\n  modelKeyFieldName = 'OrderId';\n  modelTextFieldName = 'OrderId';\n\n  // // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  /** 对应table选中的数据 */\n  rhModel: RhSelectableDto = {};\n\n  /** 动态form字段配置数据 */\n  @Input() rhFieldData: RhDynamicFormFieldDto;\n  /** 整个form的数据 */\n  @Input() declare rhData: RhSafeAny;\n\n  /** 表格Loading */\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  /** selector input上展示的数据，一般为中文 */\n  //displayName: string;\n\n  declare selectedData: RhSelectableDto[];\n\n  /** 自定义组件的自定义执行函数 */\n  cb: (data: RhSafeAny, ctx: RhSafeAny) => void;\n\n  /** 该组件关联的form名称 */\n  formName: string;\n\n  url: string;\n\n  /** 设置默认搜索接口 */\n  defaultFormInterface: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'PurchaseBusinessTransactApi',\n    interfaceName: 'GetPurchaseInPlanOrderDatas'\n  };\n\n  mappedList = [\n    { sourceName: this.modelKeyFieldName, mappedName: this.formKeyFieldName },\n    { sourceName: this.modelTextFieldName, mappedName: this.formTextFieldName },\n    { sourceName: 'SourceOrderRow', mappedName: 'SourceOrderRowNum' },\n    { sourceName: 'ArrivalDate', mappedName: 'ArrivalDate' },\n    { sourceName: 'SupplierId', mappedName: 'SupplierId' },\n    { sourceName: 'Supplier', mappedName: 'Supplier' },\n    { sourceName: 'PurchaserId', mappedName: 'PurchaserId' },\n    { sourceName: 'Purchaser', mappedName: 'Purchaser' },\n    { sourceName: 'Contacts', mappedName: 'Contacts' },\n    { sourceName: 'ContactNumber', mappedName: 'ContactNumber' },\n    { sourceName: 'InWarehouseCode', mappedName: 'OutWarehouseCode' },\n    { sourceName: 'InWarehouseName', mappedName: 'OutWarehouseName' }\n  ];\n\n  constructor(\n    public fb: UntypedFormBuilder,\n    public cdr: ChangeDetectorRef,\n    public router: Router,\n    public dynamicSer: RhBaseDynamicService,\n    public businessManageSer: RhBusinessManageService\n  ) {\n    super(cdr, dynamicSer);\n    this.url = RhRouteHelper.getRealRoute(this.router.url);\n  }\n\n  ngOnInit(): void {\n    this.rhPlaceholder = this.rhFieldData.placeholder as any;\n    this.formName = this.rhFieldData.relatedComponentName;\n    this.setCbValue();\n  }\n\n  // 自定义表单项配置\n  ngOnChanges(changes: SimpleChanges) {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue && rhData.currentValue[this.formKeyFieldName] === null) {\n      this.resetControlValue();\n    } else {\n      this.rhModel = {};\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    // if (data?.length === 1 && this.rhSingleMode) {\n    //   this.selectedData = data[0];\n    // } else {\n    //   this.selectedData = data;\n    // }\n    this.selectedData = data || null;\n  }\n\n  setDatas(result: DataResultT<RhSelectableDto[]>) {\n    if (result && result.Success) {\n      this.dataresult = result;\n    } else {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n    }\n  }\n\n  /** 根据填入的code值，获取对应的完整数据，回填到输入框 */\n  getTargetDatas(code: string) {\n    // 接口搜索需接入第三方\n    // if (!this.defaultFormInterface) {\n    //   return;\n    // }\n    // const queryDto = {};\n    // queryDto[this.modelKeyFieldName] = `$${code}`;\n    // this.getTargetDatasVisHttpHandler(this.defaultFormInterface, queryDto, this.rhFieldData);\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n  }\n\n  //#region customize selector interface区域\n  async confirmSelect() {\n    this.rhModel = this.selectedData[0];\n    this.rhModelChange.emit(this.selectedData);\n    // if (this.rhSingleMode) {\n    //   this.value = this.rhModel[this.modelKeyFieldName];\n    //   this.displayName = this.rhModel[this.modelTextFieldName];\n    //   this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // } else {\n    //   this.value = (this.rhModel as RhSafeAny[]).map((ele) => ele[this.modelKeyFieldName]) as RhSafeAny;\n    //   // 多选的时候只会显示多个代码\n    //   this.displayName = (this.value as RhSafeAny).toString();\n    // }\n    this.value = this.rhModel[this.modelKeyFieldName];\n    this.displayName = this.rhModel[this.modelTextFieldName];\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // 执行对应控件定义的代码\n    if (this.rhData && this.rhModel && this.cb) {\n      this.cb(this.rhData, this.rhModel);\n    }\n    this.setFormDataViaRelatedDatas();\n    // 执行form的相关字段赋值操作\n    this.triggerRelatedForm();\n    this.closeDataModal();\n  }\n\n  resetControlValue() {\n    this.displayName = null;\n    // 重置form对应数据对象\n    this.rhData[this.formKeyFieldName] = null;\n    this.rhData[this.formTextFieldName] = null;\n    //\n    this.mappedList.forEach((ele) => (this.rhData[ele.mappedName] = null));\n    this.rhModel = null;\n  }\n\n  setCbValue() {\n    const cbString = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.cb;\n    if (cbString) {\n      const fn = Function(`return ${cbString}`);\n      if (fn) {\n        this.cb = fn();\n      } else {\n        this.cb = this.setFormData;\n      }\n    } else {\n      // 当没有配置回调函数时，执行默认的回调函数\n      this.cb = this.setFormData;\n    }\n  }\n\n  /** 设置form对应的数据对象的值\n   * @param data form对应的数据对象\n   * @params 设置或者对应table选择的数据\n   */\n  setFormData(data: RhSafeAny, ctx: RhSelectableDto) {\n    data[this.formKeyFieldName] = ctx[this.modelKeyFieldName];\n    data[this.formTextFieldName] = ctx[this.modelTextFieldName];\n  }\n\n  setFormDataViaRelatedDatas() {\n    let relatedDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedModelDatas;\n    if (!relatedDatas?.length) {\n      relatedDatas = this.mappedList;\n    }\n    if (relatedDatas?.length) {\n      relatedDatas.forEach((ele) => {\n        this.rhData[ele.mappedName] = this.rhModel[ele.sourceName];\n      });\n    }\n  }\n\n  triggerRelatedForm() {\n    const tempDatas = (this.rhFieldData.config as RhDynamicCustomizeControlConfigDto)?.relatedFieldDatas;\n    const relatedDatas: RhRelatedFieldDataDto[] = tempDatas && tempDatas.length ? tempDatas : this.mappedList;\n    const data: RhCustomizeEventSettingDto = {\n      id: `${this.url}_${this.formName}`,\n      eventType: null,\n      options: null,\n      value: this.rhModel,\n      relatedFieldDatas: relatedDatas\n    };\n    this.dynamicSer.formCustomizeEventTrigger(data);\n  }\n  //#endregion customize selector interface区域结束\n}\n","<nz-input-group [nzSize]=\"rhSize\" [nzSuffix]=\"suffixIconSearch\" [nzAddOnAfter]=\"addOnAfter\">\n  <input type=\"text\" nz-input [ngModel]=\"displayName\" [placeholder]=\"rhPlaceholder\" readonly=\"readonly\" />\n</nz-input-group>\n<ng-template #suffixIconSearch>\n  <a *ngIf=\"displayName && !rhDisabled\" class=\"link-suffix\" (click)=\"clearInputInfo()\">\n    <i nz-icon nzType=\"close-circle\"></i>\n  </a>\n</ng-template>\n\n<ng-template #addOnAfter>\n  <button nz-button nzType=\"link\" type=\"button\" nzSize=\"small\">\n    <a (click)=\"openDataModal($event)\">\n      <i nz-icon [nzType]=\"iconSetting\"></i>\n    </a>\n  </button>\n</ng-template>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"rhTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedData\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-purchase-returned-out-source-order-table\n        [rhModel]=\"rhModel\"\n        (rhModelChange)=\"onSelectModal($event)\"\n        [rhInterfaceInfo]=\"defaultFormInterface\"\n        [rhSingleMode]=\"rhSingleMode\"\n        [defaultQueryDto]=\"rhDefaultQueryDto\"\n      ></rh-purchase-returned-out-source-order-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import {\n  InOutOrderMasterDto,\n  OutPlanOrderDetailDto,\n  OutPlanOrderDetailQueryDto,\n  InOutOrderMasterQueryDto,\n  PurchaseBackSourceOrderDto\n} from './../../../wms-model';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport {\n  RhBaseDto,\n  DataResultT,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  RhLoginedUserDto,\n  OpMode,\n  RhSafeAny,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto\n} from 'rh-base/model';\nimport { RhStorageService, MsgHelper } from 'rh-base/core';\nimport { UntypedFormGroup, Validators } from '@angular/forms';\nimport { RhPurchaseBusinessService } from '../purchase-business.service';\nimport { RhBusinessManageService } from './../../business-manage.service';\nimport {\n  PlanOrderDetailsQueryDto,\n  PurchaseInTransactOrderDetails,\n  PurchaseReturnedOutPlanOrderDetails,\n  PurchaseReturnedTransactOrderMaster,\n  View_PurchaseReturnedTransactOrderMasterQueryDto\n} from '../purchase-business-model';\n\ntype TabType = 'edit' | 'detail' | 'audit';\n\n@Component({\n  selector: 'rh-purchase-returned-out-handle',\n  templateUrl: './purchase-returned-out-handle.component.html',\n  styleUrls: ['./purchase-returned-out-handle.component.less']\n})\nexport class PurchaseReturnedOutHandleComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  defaultFieldDataset = [];\n\n  orderDetails: RhSelectableDto[] = [];\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit', 'AuditFailed'];\n    return list.includes(data.OrderStatus);\n  };\n  submitVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  isShowAuditInfo = (data: RhBaseDto) => {\n    const list = ['Completed', 'AuditFailed'];\n    return list.includes(data.OrderStatus);\n  };\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto)),\n    new RhTableButtonInfoDto('submit', '提交审核', 'default', false, 'form', false, null, (data) => this.submitDataToAudit(data as RhBaseDto)),\n    new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) => this.openDetailTab({ data } as RhBaseDto, 'audit'))\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto(\n      'new',\n      '出库办理',\n      'primary',\n      false,\n      'file',\n      false,\n      null,\n      () => {\n        this.businessManageSer.controlTransactOperation(() => this.openEditTab(), this.titleButtonDataset, 0);\n      },\n      true,\n      true\n    )\n  ];\n\n  extraButtonDataset: RhTableButtonInfoDto[] = [];\n\n  beforeSubmit = (data: RhBaseDto, context: DynamicFormComponent) => {\n    // // 源单信息\n    // const sourceId = data.SourceOrderId;\n    // if (!sourceId) {\n    //   // 不存在源单则清空数据\n    //   this.selectedSourceOrder = View_ProduceInPlanOrderDto.create();\n    // }\n    // if (this.selectedSourceOrder) {\n    //   ObjectHelper.MapT(this.selectedSourceOrder, data, true, false);\n    // }\n    // data.SourceOrderId = sourceId;\n    context.submitLoading = true;\n    data.OrderCreatorCode = this.currentUser.UserName;\n    data.OrderCreatorName = this.currentUser.DisplayName;\n    data.BusinessType = this.BusinessType;\n    data.OrderType = this.BusinessType;\n    return this.businessManageSer.controlSubmitFormOperation([data], () => (context.submitLoading = false));\n  };\n\n  beforeSubmitAudit = (data: RhBaseDto) => {\n    if (!data.IsPass && !data.AuditMessage) {\n      MsgHelper.ShowWarningMessage('审核不通过，必须填写审核信息！');\n      return;\n    }\n    // 基本信息\n    data.OrderMaster = this.editDto;\n    data.OrderDetails = this.orderDetails;\n    data.Auditor = this.currentUser.DisplayName;\n    data.AuditorId = this.currentUser.UserName;\n\n    return true;\n  };\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  curSourceOrderDefaultQueryDto = {};\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n  BusinessType = 'PurchaseReturnedOut';\n  defaultQueryDto: { BusinessType: string; FactoryCode: string };\n  /** 根据配置，需要隐藏的字段列表 */\n  tableVisibleSetting = {};\n  visibleSetting = {};\n  editFormVisibleSetting = {};\n  /** 明细数据源 */\n  planOrderDetailDataset: PurchaseReturnedOutPlanOrderDetails[] = [];\n  sourceOrderDetailDataset: PurchaseInTransactOrderDetails[] = [];\n\n  get isEnableWarehouseAreaAndWarehouseShelf() {\n    return this.businessManageSer.isEnableWarehouseAreaAndWarehouseShelf;\n  }\n  get isEnableStorageLocation() {\n    return this.businessManageSer.IsEnableStorageLocation;\n  }\n  get isEnableOutPlan() {\n    return this.operator.isEnableOutPlan;\n  }\n\n  constructor(\n    public storage: RhStorageService,\n    private operator: RhPurchaseBusinessService,\n    public businessManageSer: RhBusinessManageService\n  ) { }\n\n  ngOnInit(): void {\n    this.setUserInfo();\n    this.initEditButtonVisible();\n    this.initVisibleSetting();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  initEditButtonVisible() {\n    this.editButtonDataset[0].visible = this.editVisible.toString();\n    this.editButtonDataset[1].visible = this.submitVisible.toString();\n    this.editButtonDataset[2].visible = this.auditVisible.toString();\n  }\n\n  initBasicData() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curSourceOrderDefaultQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n    this.defaultQueryDto = { BusinessType: this.BusinessType, FactoryCode: this.currentUser?.FactoryCode };\n  }\n\n  initVisibleConfig() {\n    this.visibleSetting = {};\n    this.editFormVisibleSetting = {};\n    const temp = {};\n    Object.assign(temp, this.businessManageSer.initOutWarehouseVisibleSetting());\n    Object.assign(temp, this.operator.initOutPlanVisibleSetting());\n    Object.assign(this.visibleSetting, temp);\n    Object.assign(this.editFormVisibleSetting, temp);\n    this.isRefreshDesc = false;\n    setTimeout(() => {\n      this.isRefreshDesc = true;\n    });\n  }\n\n  initTableVisibleSetting() {\n    this.tableVisibleSetting = {};\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.initOutWarehouseVisibleSetting());\n    Object.assign(this.tableVisibleSetting, this.operator.initOutPlanVisibleSetting());\n  }\n\n  initVisibleSetting() {\n    Object.assign(this.visibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('In'));\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {};\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.initVisibleConfig();\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    //\n    this.selectedIndex = 0;\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onStoreData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n      MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n      this.editDto.OrderId = result?.Attach?.OrderId;\n      this.isShowEditForm = false;\n      this.getDetails();\n    } else {\n      MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n    }\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  // 未退出页面，刷新数据内容\n  getDetails(details?: RhSelectableDto[]) {\n    if (details) {\n      this.orderDetails = details;\n    } else {\n      const queryDto = View_PurchaseReturnedTransactOrderMasterQueryDto.create();\n      queryDto.OrderId = this.editDto.OrderId;\n      this.operator.GetPurchaseReturnedOutTransactOrderDatas(queryDto).subscribe((result) => {\n        if (result.Success && result.Attach.length === 1) {\n          this.editDto = result.Attach[0];\n          this.editDto.OpSign = OpMode.OpEdit;\n          this.initVisibleConfig();\n        }\n      });\n    }\n  }\n\n  /** 提交审核 */\n  submitDataToAudit(data: RhBaseDto) {\n    if (this.submitVisible(data)) {\n      const dto = PurchaseReturnedTransactOrderMaster.create();\n      dto.OrderId = data.OrderId;\n      this.dataLoading = true;\n      this.operator.SumbitAuditPurchaseReturnedTransactOrder(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('提交审核成功！');\n            if (this.selectedIndex === 0) this.getDatas();\n            this.closeEditTab();\n          } else {\n            MsgHelper.ShowWarningMessage(`提交审核失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行提交审核！');\n    }\n  }\n\n  /** 审核 */\n  auditData(data: RhBaseDto) {\n    if (this.auditVisible(data)) {\n      this.openAuditDataModal(data);\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行审核！');\n    }\n  }\n\n  /** 打开审核弹窗 */\n  openAuditDataModal(data: RhBaseDto) {\n    this.auditDto = { OrderId: data.OrderId };\n    this.isShowAuditDataModal = true;\n  }\n\n  /** 关闭审核弹窗 */\n  closeAuditDataModal() {\n    this.auditDto = {};\n    this.isShowAuditDataModal = false;\n  }\n\n  /** 审核接口返回 */\n  onAuditData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('审核办理成功！');\n      this.closeAuditDataModal();\n      this.getDetails();\n    } else {\n      MsgHelper.ShowWarningModal(`审核办理失败！${result.Message}`);\n    }\n  }\n\n  /** 根据审核是否通过，设置审核信息必填验证器 */\n  isPassChange(isPass: boolean, formgroup: UntypedFormGroup) {\n    if (!isPass) {\n      formgroup.get('AuditMessage').setValidators(Validators.required);\n    } else {\n      formgroup.get('AuditMessage').clearValidators();\n    }\n    formgroup.get('AuditMessage').updateValueAndValidity();\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.initVisibleConfig();\n    this.selectedIndex = 1;\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    }\n  }\n\n  planOrderIdChange(id: string) {\n    if (id) {\n      const queryDto = PlanOrderDetailsQueryDto.create();\n      queryDto.PlanOrderId = id;\n      queryDto.Mode = 8;\n      this.operator.GetPurchaseReturnedOutPlanOrderDetailsDatasBy(queryDto).subscribe((result) => {\n        if (result && result.Success) {\n          this.planOrderDetailDataset = result.Attach;\n        } else {\n          this.planOrderDetailDataset = [];\n        }\n      });\n    } else {\n      this.planOrderDetailDataset = [];\n    }\n  }\n\n  sourceOrderDatasetChange(dataset: PurchaseInTransactOrderDetails[]) {\n    this.sourceOrderDetailDataset = [...dataset];\n  }\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"defaultQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  ></rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                [rhExtraButtonDataset]=\"extraButtonDataset\"\n                [rhVisibleSetting]=\"tableVisibleSetting\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              ></rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>采购退货办理</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"出库单单头\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"submitVisible(editDto)\">\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"form\" nzTheme=\"outline\"></i>暂存\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"submitDataToAudit(editDto)\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                  <button *ngIf=\"auditVisible(editDto)\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else detailsDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  [rhVisibleSetting]=\"editFormVisibleSetting\"\n                  (rhInterfaceDataChange)=\"onStoreData($event)\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template\n                    rhTemplate=\"OutWarehouseCode\"\n                    let-formgroup\n                    let-setting=\"setting\"\n                    let-hostSetting=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-warehouse-selector\n                          rhInventoryControlSpecialType=\"Warehouse\"\n                          [formControl]=\"formgroup.get('OutWarehouseCode')\"\n                          [rhData]=\"formData\"\n                          [rhFieldData]=\"setting\"\n                          [rhSize]=\"hostSetting?.rhSize\"\n                        >\n                        </rh-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                  <ng-template rhTemplate=\"PlanOrderId\" let-formgroup let-setting=\"setting\" let-formData=\"formData\">\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-purchase-returned-out-plan-selector\n                          [formControl]=\"formgroup.get('PlanOrderId')\"\n                          [rhFieldData]=\"setting\"\n                          [rhDisplayMode]=\"1\"\n                          [rhData]=\"formData\"\n                          (ngModelChange)=\"planOrderIdChange($event)\"\n                        ></rh-purchase-returned-out-plan-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                  <ng-template\n                    rhTemplate=\"SourceOrderId\"\n                    let-formgroup\n                    let-setting=\"setting\"\n                    let-hostSetting=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-purchase-returned-out-source-order-selector\n                          *ngIf=\"!isEnableOutPlan; else planSourceTpl\"\n                          [formControl]=\"formgroup.get('SourceOrderId')\"\n                          [rhFieldData]=\"setting\"\n                          [rhDisplayMode]=\"1\"\n                          [rhData]=\"formData\"\n                          [rhDefaultQueryDto]=\"curSourceOrderDefaultQueryDto\"\n                          (rhModelChange)=\"sourceOrderDatasetChange($event)\"\n                        ></rh-purchase-returned-out-source-order-selector>\n                        <ng-template #planSourceTpl>\n                          <rh-form-field\n                            [formControl]=\"formgroup.get('SourceOrderId')\"\n                            rhFormType=\"edit\"\n                            [rhFieldData]=\"setting\"\n                            [rhSize]=\"hostSetting?.rhSize\"\n                            [rhData]=\"formData\"\n                          ></rh-form-field>\n                        </ng-template>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"出库单单体\">\n              <rh-purchase-returned-out-handle-details [rhOutOrder]=\"editDto\" (rhDetailsUpdate)=\"getDetails($event)\">\n              </rh-purchase-returned-out-handle-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"出库单单头\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <button\n                  *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\"\n                  nz-button\n                  nzType=\"primary\"\n                  nzSize=\"small\"\n                  type=\"button\"\n                  (click)=\"auditData(editDto)\"\n                >\n                  <i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n                </button>\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"detailsDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"出库单单体\">\n              <rh-purchase-returned-out-handle-details [rhOutOrder]=\"editDto\" [rhShowDetail]=\"true\" (rhDetailsUpdate)=\"getDetails($event)\">\n              </rh-purchase-returned-out-handle-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #detailsDescription>\n  <rh-dynamic-description\n    *ngIf=\"isRefreshDesc\"\n    rhName=\"detailsDescription\"\n    [rhValue]=\"editDto\"\n    [rhVisibleSetting]=\"visibleSetting\"\n  ></rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'出库办理审核'\"\n  [nzVisible]=\"isShowAuditDataModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeAuditDataModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #auditDataForm\n    rhName=\"auditDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"auditDto\"\n    [rhBeforeSubmit]=\"beforeSubmitAudit\"\n    (rhInterfaceDataChange)=\"onAuditData($event)\"\n    (rhClose)=\"closeAuditDataModal()\"\n  >\n    <ng-template rhTemplate=\"IsPass\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-radio-group [formControl]=\"formgroup.get('IsPass')\" (ngModelChange)=\"isPassChange($event, formgroup)\">\n            <label nz-radio [nzValue]=\"true\">是</label>\n            <label nz-radio [nzValue]=\"false\">否</label>\n          </nz-radio-group>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"AuditMessage\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"!formgroup.get('IsPass').value\"> {{ setting.displayName }}</nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <textarea\n            nz-input\n            [formControl]=\"formgroup.get('AuditMessage')\"\n            [placeholder]=\"setting.placeholder\"\n            [nzAutosize]=\"{ minRows: 2 }\"\n          ></textarea>\n          <div *ngIf=\"editDto?.AuditMessage\">\n            <span style=\"color: #faad14\">上一次审核信息：{{ editDto?.AuditMessage }}</span>\n          </div>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>\n","import { MsgHelper } from 'rh-base/core';\nimport { RhSafeAny, RhSelectableDto, DataResultT, RhBaseDto, RhSelectItem } from 'rh-base/model';\nimport { Component, OnInit, Input, SimpleChanges, Output, EventEmitter, ViewChild } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { RhPurchaseBusinessService } from './../../purchase-business.service';\nimport { RhBusinessManageService } from './../../../../business-manage/business-manage.service';\nimport { MaterialInventoryDetailQueryDto } from './../../../../wms-model';\n\nclass QueryInput {\n  MaterialCode: string;\n  WarehouseCode: string;\n  StorageLocationCode?: string;\n  LotNum?: string;\n  [prop: string]: RhSafeAny;\n}\n\n@Component({\n  selector: 'rh-material-inventory-detail-choose',\n  templateUrl: './material-inventory-detail-choose.component.html',\n  styleUrls: ['./material-inventory-detail-choose.component.less']\n})\nexport class MaterialInventoryDetailChooseComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  @Input() rhQueryDto: QueryInput;\n  @Input() rhShowModalSign: number;\n  @Input() rhMaterialInfo: RhBaseDto;\n  @Input() rhIsShowTableMaterial = false; // 表格是否显示物料\n  @Input() rhFormVisibleSetting;\n  @Input() set rhTableEditConfig(data) {\n    if (data) {\n      for (const key in data) {\n        if (Object.prototype.hasOwnProperty.call(this._rhTableEditConfig, key)) {\n          this._rhTableEditConfig[key] = data[key];\n        }\n      }\n    }\n  }\n  @Output() rhSelectedDatasChange = new EventEmitter<RhSelectableDto[]>();\n\n  _rhTableEditConfig = {\n    TransactQty: true,\n    MeasureAuxQty: true,\n    ShippingAddress: false\n  };\n\n  isAllChecked = false;\n  isIndeterminate = false;\n  dataset: RhSelectableDto[] = [];\n  dataLoading = false;\n  selectDatas: RhSelectableDto[] = [];\n\n  isShowDataModal = false;\n  defaultQueryDtoStorageLocation = {};\n\n  get isEnableStorageLocation() {\n    return this.businessManageSer.IsEnableStorageLocation;\n  }\n  get isShowTableSN() {\n    return this.businessManageSer.IsEnableSN || this.dataset.some((f) => f.isEnableSN);\n  }\n  get isShowTableExpirationDate() {\n    return this.businessManageSer.IsEnableExpirationDate || this.dataset.some((f) => f.isEnableExpirationDate);\n  }\n  get isShowTableLotNum() {\n    return this.businessManageSer.IsEnableLotNum || this.dataset.some((f) => f.isEnableLotNum);\n  }\n  get isEnableNegativeInventory() {\n    return this.operator.isEnableNegativeInventory;\n  }\n  get expiryUnits(): RhSelectItem[] {\n    return this.businessManageSer.expiryUnits;\n  }\n\n  constructor(private operator: RhPurchaseBusinessService, public businessManageSer: RhBusinessManageService) {\n    //\n  }\n\n  ngOnInit(): void {\n    //\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhQueryDto, rhShowModalSign } = changes;\n    if (rhShowModalSign && rhShowModalSign.currentValue) {\n      this.openDataModal();\n    }\n    if (rhQueryDto && rhQueryDto.currentValue) {\n      this.defaultQueryDtoStorageLocation = { WarehouseCode: this.rhQueryDto.WarehouseCode ? `$${this.rhQueryDto.WarehouseCode}` : null };\n      if (!this.isEnableStorageLocation) {\n        this.getDatas();\n      }\n    }\n  }\n\n  allCheckedChange(status: boolean) {\n    this.dataset.forEach((ele) => (ele.select = ele.select = status));\n    this.refreshCheckStatus();\n  }\n  checkedChange(item: RhSelectableDto) {\n    this.refreshCheckStatus(item);\n  }\n  refreshCheckStatus(item?: RhSelectableDto) {\n    this.selectDatas = this.dataset.filter((ele) => ele.select);\n    this.isAllChecked = this.dataset.every((ele) => ele.select);\n    this.isIndeterminate = this.dataset.some((ele) => ele.select) && !this.isAllChecked;\n  }\n\n  openDataModal() {\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.selectDatas = [];\n    this.isAllChecked = this.isIndeterminate = false;\n    this.dataset.forEach((ele) => (ele.select = false));\n    this.isShowDataModal = false;\n  }\n\n  confirmSelect() {\n    if (this._rhTableEditConfig.ShippingAddress && this.selectDatas.some((f) => !f.ShippingAddress)) {\n      MsgHelper.ShowWarningMessage('请先填写选中物料信息的发货地址！');\n    } else if (this.selectDatas.some((f) => !f.TransactQty)) {\n      MsgHelper.ShowWarningMessage('请先填写选中物料信息的办理数量！');\n    } else if (!this.isEnableNegativeInventory && this.selectDatas.some((f) => f.AvailableQty < f.TransactQty)) {\n      MsgHelper.ShowWarningMessage('未启用负库存！不能超额办理库存数量！');\n    } else {\n      this.rhSelectedDatasChange.emit(this.selectDatas);\n      this.closeDataModal();\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setDatas(result: DataResultT<RhSelectableDto[]>) {\n    if (result && result.Success) {\n      this.dataset = result.Attach;\n      this.dataset.forEach((f) => {\n        f.TransactQty = 0;\n        f.MeasureAuxQty = 0;\n      });\n    } else {\n      this.dataset = [];\n      MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n    }\n  }\n\n  getDatas() {\n    this.dataLoading = false;\n    const queryDto = MaterialInventoryDetailQueryDto.create();\n    Object.assign(queryDto, this.rhQueryDto);\n    queryDto.Mode = 8;\n    this.operator.GetMaterialInventoryDetailDatas(queryDto).subscribe(\n      (result) => {\n        if (result && result.Success) {\n          this.dataset = result.Attach;\n          this.dataset.forEach((f) => (f.TransactQty = 0));\n        } else {\n          this.dataset = [];\n          MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n        }\n        this.dataLoading = false;\n      },\n      () => {\n        this.dataLoading = false;\n      }\n    );\n  }\n\n  getScrollX() {\n    let x = 1950;\n    if (!this.isEnableStorageLocation) {\n      x -= 240;\n    }\n    if (!this.rhIsShowTableMaterial) {\n      x -= 240;\n    }\n    if (!this.isShowTableExpirationDate) {\n      x -= 480;\n    }\n    if (!this.isShowTableLotNum) {\n      x -= 120;\n    }\n    if (!this.isShowTableSN) {\n      x -= 120;\n    }\n    if (!this._rhTableEditConfig.ShippingAddress) {\n      x -= 120;\n    }\n    return x + 'px';\n  }\n}\n","<nz-modal\n  nzTitle=\"选择物料\"\n  [nzVisible]=\"isShowDataModal\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"'60vw'\"\n>\n  <ng-container *nzModalContent>\n  <rh-dynamic-description *ngIf=\"rhMaterialInfo\" rhName=\"materialInventoryDesc\" [rhValue]=\"rhMaterialInfo\"> </rh-dynamic-description>\n  <nz-card *ngIf=\"isShowDataModal\" [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <ng-container *ngIf=\"isEnableStorageLocation\">\n        <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n          <ng-template #searchTpl>\n            <rh-dynamic-form\n              #queryForm\n              rhName=\"materialInventoryDetailsQueryForm\"\n              [rhValue]=\"rhQueryDto\"\n              [rhVisibleSetting]=\"rhFormVisibleSetting\"\n              (rhInterfaceDataChange)=\"setDatas($event)\"\n              (rhDataloadingChange)=\"dataLoadingChange($event)\"\n            >\n              <ng-template\n                rhTemplate=\"StorageLocationCode\"\n                let-formgroup\n                let-setting=\"setting\"\n                let-hostSetting=\"hostSetting\"\n                let-formData=\"formData\"\n              >\n                <nz-form-item>\n                  <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                    <rh-storage-location-selector\n                      rhInventoryControlSpecialType=\"StorageLocation\"\n                      [formControl]=\"formgroup.get('StorageLocationCode')\"\n                      [rhData]=\"formData\"\n                      [rhFieldData]=\"setting\"\n                      [rhSize]=\"hostSetting?.rhSize\"\n                      [rhDefaultQueryDto]=\"defaultQueryDtoStorageLocation\"\n                    >\n                    </rh-storage-location-selector>\n                  </nz-form-control>\n                </nz-form-item>\n              </ng-template>\n              <ng-template rhTemplate=\"LotNum\" let-formgroup let-setting=\"setting\" let-hostSetting=\"hostSetting\" let-formData=\"formData\">\n                <nz-form-item>\n                  <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                    <rh-form-field\n                      [formControl]=\"formgroup.get('LotNum')\"\n                      [rhFormType]=\"'edit'\"\n                      [rhFieldData]=\"setting\"\n                      [rhSize]=\"hostSetting?.rhSize\"\n                      [rhData]=\"formData\"\n                      [rhDisabled]=\"rhQueryDto?.LotNum\"\n                    >\n                    </rh-form-field>\n                  </nz-form-control>\n                </nz-form-item>\n              </ng-template>\n            </rh-dynamic-form>\n          </ng-template>\n        </nz-alert>\n      </ng-container>\n      <nz-table\n        #materialInventoryDetailsTable\n        [nzData]=\"dataset\"\n        nzSize=\"small\"\n        [nzScroll]=\"{ x: getScrollX(), y: '55vh' }\"\n        [nzLoading]=\"dataLoading\"\n        nzBordered=\"true\"\n        [nzShowPagination]=\"false\"\n        [nzFrontPagination]=\"false\"\n        [nzTitle]=\"isEnableStorageLocation ? null : materialInventoryDetailsTableTitle\"\n      >\n        <ng-template #materialInventoryDetailsTableTitle>\n          <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"getDatas()\">\n            <i nz-icon nzType=\"sync\" nzTheme=\"outline\"></i>刷新\n          </button>\n        </ng-template>\n\n        <thead>\n          <tr>\n            <th\n              nzWidth=\"60px\"\n              nzShowCheckbox\n              [(nzChecked)]=\"isAllChecked\"\n              [nzLeft]=\"true\"\n              (nzCheckedChange)=\"allCheckedChange($event)\"\n              [(nzIndeterminate)]=\"isIndeterminate\"\n            ></th>\n            <ng-container *ngIf=\"isEnableStorageLocation\">\n              <th nzWidth=\"120px\">库位代码</th>\n              <th nzWidth=\"120px\">库位名称</th>\n            </ng-container>\n            <ng-container *ngIf=\"rhIsShowTableMaterial\">\n              <th nzWidth=\"120px\">物料代码</th>\n              <th nzWidth=\"180px\">物料名称</th>\n            </ng-container>\n            <ng-container *ngIf=\"isShowTableExpirationDate\">\n              <th nzWidth=\"120px\">生产日期</th>\n              <th nzWidth=\"120px\">保质期</th>\n              <th nzWidth=\"120px\">保质期单位</th>\n              <th nzWidth=\"120px\">有效期</th>\n            </ng-container>\n            <th nzWidth=\"120px\" *ngIf=\"isShowTableSN\">条码</th>\n            <th nzWidth=\"120px\" *ngIf=\"isShowTableLotNum\">批次号</th>\n            <th nzWidth=\"150px\" *ngIf=\"_rhTableEditConfig.ShippingAddress\" [nzRight]=\"'480px'\">发货地址</th>\n            <th nzWidth=\"120px\" [nzRight]=\"'360px'\">库存数量</th>\n            <th nzWidth=\"120px\" [nzRight]=\"'240px'\">办理数量</th>\n            <th nzWidth=\"120px\" [nzRight]=\"'120px'\">辅助数量</th>\n            <th nzWidth=\"120px\" [nzRight]=\"'0px'\">备注</th>\n          </tr>\n        </thead>\n        <tbody>\n          <tr *ngFor=\"let item of materialInventoryDetailsTable.data; let num = index\">\n            <td nzShowCheckbox [(nzChecked)]=\"item.select\" [nzLeft]=\"true\" (nzCheckedChange)=\"checkedChange(item)\"></td>\n            <ng-container *ngIf=\"isEnableStorageLocation\">\n              <td>{{ item.StorageLocationCode }}</td>\n              <td>{{ item.StorageLocationName }}</td>\n            </ng-container>\n            <ng-container *ngIf=\"rhIsShowTableMaterial\">\n              <td nzEllipsis>{{ item.MaterialCode }}</td>\n              <td nzEllipsis>{{ item.MaterialName }}</td>\n            </ng-container>\n            <ng-container *ngIf=\"isShowTableExpirationDate\">\n              <td>{{ item.ProductionDate | date: 'yyyy-MM-dd' }}</td>\n              <td>{{ item.ExpiryDays }}</td>\n              <td>{{ item.ExpiryUnit | mapToDisplay: expiryUnits }}</td>\n              <td>{{ item.ExpirationDate | date: 'yyyy-MM-dd' }}</td>\n            </ng-container>\n            <td *ngIf=\"isShowTableSN\">{{ item.SN }}</td>\n            <td *ngIf=\"isShowTableLotNum\">{{ item.LotNum }}</td>\n            <td *ngIf=\"_rhTableEditConfig.ShippingAddress\" [nzRight]=\"'480px'\">\n              <ng-container *ngIf=\"item.select; else readOnlyShippingAddressTpl\">\n                <input nz-input [(ngModel)]=\"item.ShippingAddress\" placeholder=\"发货地址\" style=\"width: 80%\" />\n              </ng-container>\n              <ng-template #readOnlyShippingAddressTpl>{{ item.ShippingAddress }}</ng-template>\n            </td>\n            <td [nzRight]=\"'360px'\">{{ item.AvailableQty }}</td>\n            <td [nzRight]=\"'240px'\">\n              <ng-container *ngIf=\"item.select && _rhTableEditConfig.TransactQty; else readOnlyTransactQtyTpl\">\n                <nz-input-number [(ngModel)]=\"item.TransactQty\" [nzPlaceHolder]=\"'办理数量'\" [nzMin]=\"0\"></nz-input-number>\n              </ng-container>\n              <ng-template #readOnlyTransactQtyTpl>{{ item.TransactQty }}</ng-template>\n            </td>\n            <td [nzRight]=\"'120px'\">\n              <ng-container *ngIf=\"item.select && _rhTableEditConfig.MeasureAuxQty; else readOnlyMeasureAuxQtyTpl\">\n                <nz-input-number [(ngModel)]=\"item.MeasureAuxQty\" [nzPlaceHolder]=\"'辅助数量'\" [nzMin]=\"0\"> </nz-input-number>\n              </ng-container>\n              <ng-template #readOnlyMeasureAuxQtyTpl>{{ item.MeasureAuxQty }}</ng-template>\n            </td>\n            <td [nzRight]=\"'0px'\">{{ item.Remark }}</td>\n          </tr>\n        </tbody>\n      </nz-table>\n    </div>\n  </nz-card>\n  </ng-container>\n\n</nz-modal>\n","import { RhSharedManageModule } from './../../shared-manage/shared-manage.module';\nimport { RhSharedModule } from 'rh-base/shared';\nimport { NgModule } from '@angular/core';\nimport { RhPurchaseInPlanComponent } from './purchase-in-plan/purchase-in-plan.component';\nimport { RhPurchaseBusinessService } from './purchase-business.service';\nimport { PurchaseInPlanDetailsComponent } from './purchase-in-plan/purchase-in-plan-details/purchase-in-plan-details.component';\nimport { PurchaseWarehousingSourceOrderSelectorComponent } from './snippets/purchase-warehousing-source-order-selector/purchase-warehousing-source-order-selector.component';\nimport { PurchaseWarehousingSourceOrderTableComponent } from './snippets/purchase-warehousing-source-order-selector/purchase-warehousing-source-order-table/purchase-warehousing-source-order-table.component';\nimport { PurchaseWarehousingPlanSelectorComponent } from './snippets/purchase-warehousing-plan-selector/purchase-warehousing-plan-selector.component';\nimport { PurchaseWarehousingPlanTableComponent } from './snippets/purchase-warehousing-plan-selector/purchase-warehousing-plan-table/purchase-warehousing-plan-table.component';\nimport { RhPurchaseReturnedOutPlanComponent } from './purchase-returned-out-plan/purchase-returned-out-plan.component';\nimport { PurchaseReturnedOutPlanDetailsComponent } from './purchase-returned-out-plan/purchase-returned-out-plan-details/purchase-returned-out-plan-details.component';\nimport { PurchaseInHandleComponent } from './purchase-in-handle/purchase-in-handle.component';\nimport { PurchaseInHandleDetailsComponent } from './purchase-in-handle/purchase-in-handle-details/purchase-in-handle-details.component';\nimport { PurchaseReturnedOutHandleComponent } from './purchase-returned-out-handle/purchase-returned-out-handle.component';\nimport { PurchaseReturnedOutHandleDetailsComponent } from './purchase-returned-out-handle/purchase-returned-out-handle-details/purchase-returned-out-handle-details.component';\nimport { PurchaseReturnedOutPlanSelectorComponent } from './snippets/purchase-returned-out-plan-selector/purchase-returned-out-plan-selector.component';\nimport { PurchaseReturnedOutPlanTableComponent } from './snippets/purchase-returned-out-plan-selector/purchase-returned-out-plan-table/purchase-returned-out-plan-table.component';\nimport { PurchaseReturnedOutSourceOrderSelectorComponent } from './snippets/purchase-returned-out-source-order-selector/purchase-returned-out-source-order-selector.component';\nimport { PurchaseReturnedOutSourceOrderTableComponent } from './snippets/purchase-returned-out-source-order-selector/purchase-returned-out-source-order-table/purchase-returned-out-source-order-table.component';\nimport { SharedBusinessModule } from '../shared-business/shared-business.module';\nimport { MaterialInventoryDetailChooseComponent } from './snippets/material-inventory-detail-choose/material-inventory-detail-choose.component';\n//import { MatSelectModule } from '@angular/material/select';\n//import { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\n//import { MatAutocompleteModule } from '@angular/material/autocomplete';\n\nconst COMPONENTS = [RhPurchaseInPlanComponent, RhPurchaseReturnedOutPlanComponent];\n\nconst SNIPPETS = [\n  PurchaseInPlanDetailsComponent,\n  PurchaseWarehousingSourceOrderSelectorComponent,\n  PurchaseWarehousingSourceOrderTableComponent,\n  PurchaseWarehousingPlanSelectorComponent,\n  PurchaseWarehousingPlanTableComponent,\n  PurchaseReturnedOutPlanDetailsComponent\n];\n\n@NgModule({\n  declarations: [\n    ...COMPONENTS,\n    ...SNIPPETS,\n    PurchaseInHandleComponent,\n    PurchaseInHandleDetailsComponent,\n    PurchaseReturnedOutHandleComponent,\n    PurchaseReturnedOutHandleDetailsComponent,\n    PurchaseReturnedOutPlanSelectorComponent,\n    PurchaseReturnedOutPlanTableComponent,\n    PurchaseReturnedOutSourceOrderSelectorComponent,\n    PurchaseReturnedOutSourceOrderTableComponent,\n    MaterialInventoryDetailChooseComponent\n  ],\n  imports: [RhSharedModule, RhSharedManageModule, SharedBusinessModule/* , MatSelectModule, MatAutocompleteModule */],\n  providers: [RhPurchaseBusinessService]\n})\nexport class RhPurchaseBusinessModule {}\n","import { Injectable } from '@angular/core';\nimport { RhApiUrlsService } from 'rh-base/core';\nimport { Observable } from 'rxjs';\nimport { DataResultT, RhBaseDto, RhSelectableDto, OpResult } from 'rh-base/model';\n\n@Injectable()\nexport class RhSaleBusinessService {\n  constructor(private apiUrls: RhApiUrlsService) { }\n\n  //#region 销售出库计划区域开始\n  /**\n   *  获取销售出库计划单头数据\n   */\n  GetSaleOutPlanOrderDatas(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('SalePlanBusinessApi', 'GetSaleOutPlanOrderDatas', queryDto);\n  }\n\n  /**\n   *  创建销售出库计划单据头信息\n   */\n  CreateSaleOutPlanMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('SalePlanBusinessApi', 'CreateSaleOutPlanMasterOrder', input);\n  }\n\n  /**\n   *  修改销售出库计划单据头信息\n   */\n  UpdateSaleOutPlanMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('SalePlanBusinessApi', 'UpdateSaleOutPlanMasterOrder', input);\n  }\n\n  /**\n   *  提交至审核状态销售出库计划单据信息\n   */\n  SumbitAuditSaleOutPlanOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('SalePlanBusinessApi', 'SumbitAuditSaleOutPlanOrder', input);\n  }\n\n  /**\n   *  批量删除销售出库计划单据信息\n   */\n  RemoveSaleOutPlanOrders(inputs: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('SalePlanBusinessApi', 'RemoveSaleOutPlanOrders', inputs);\n  }\n\n  /**\n   *  根据计划单号获取销售出库计划单明细数据,包含统计汇总数量信息\n   */\n  GetSaleOutPlanOrderDetailsDatasBy(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('SalePlanBusinessApi', 'GetSaleOutPlanOrderDetailsDatasBy', queryDto);\n  }\n\n  /**\n   *  删除销售出库计划单的明细信息\n   */\n  RemoveSaleOutPlanOrderDetails(inputs: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('SalePlanBusinessApi', 'RemoveSaleOutPlanOrderDetails', inputs);\n  }\n\n  /**\n   *  存储销售出库计划明细\n   */\n  StoreSaleOutPlanOrderDetails(planOrder: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('SalePlanBusinessApi', 'StoreSaleOutPlanOrderDetails', planOrder);\n  }\n  //#endregion 销售出库计划区域结束\n\n  //#region 销售退货计划区域开始\n  /**\n   *  获取销售退货入库计划单头数据\n   */\n  GetSaleReturnedInPlanOrderDatas(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('SalePlanBusinessApi', 'GetSaleReturnedInPlanOrderDatas', queryDto);\n  }\n\n  /**\n   *  创建销售退货入库计划单据头信息\n   */\n  CreateSaleReturnedInPlanMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('SalePlanBusinessApi', 'CreateSaleReturnedInPlanMasterOrder', input);\n  }\n\n  /**\n   *  修改销售退货入库计划单据头信息\n   */\n  UpdateSaleReturnedInPlanMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('SalePlanBusinessApi', 'UpdateSaleReturnedInPlanMasterOrder', input);\n  }\n\n  /**\n   *  提交至审核状态销售退货计划单据信息\n   */\n  SumbitAuditSaleReturnedInPlanOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('SalePlanBusinessApi', 'SumbitAuditSaleReturnedInPlanOrder', input);\n  }\n\n  /**\n   *  批量删除销售退货计划单据信息\n   */\n  RemoveSaleReturnedInPlanOrders(inputs: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('SalePlanBusinessApi', 'RemoveSaleReturnedInPlanOrders', inputs);\n  }\n\n  /**\n   *  根据计划单号获取销售退货入库计划单明细数据,包含统计汇总数量信息\n   */\n  GetSaleReturnedInPlanOrderDetailsDatasBy(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('SalePlanBusinessApi', 'GetSaleReturnedInPlanOrderDetailsDatasBy', queryDto);\n  }\n\n  /**\n   *  存储销售退货入库计划明细\n   */\n  StoreSaleReturnedInPlanOrderDetails(planOrder: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('SalePlanBusinessApi', 'StoreSaleReturnedInPlanOrderDetails', planOrder);\n  }\n\n  /**\n   *  删除销售退货计划单的明细信息\n   */\n  RemoveSaleReturnedInPlanOrderDetails(inputs: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('SalePlanBusinessApi', 'RemoveSaleReturnedInPlanOrderDetails', inputs);\n  }\n\n  //#endregion 销售退货计划区域结束\n\n  //#region 销售出库办理区域开始\n  /**\n     *  获取销售出库办理单头数据\n     */\n  GetSaleOutTransactOrderDatas(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('SaleTransactBusinessApi', 'GetSaleOutTransactOrderDatas', queryDto);\n  }\n\n  /**\n     *  提交至审核状态销售出库办理单据信息\n     */\n  SumbitAuditSaleOutTransactOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('SaleTransactBusinessApi', 'SumbitAuditSaleOutTransactOrder', input);\n  }\n\n  /**\n     *  批量删除销售出库办理单据信息\n     */\n  RemoveSaleOutTransactOrders(dtos: RhSelectableDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('SaleTransactBusinessApi', 'RemoveSaleOutTransactOrders', dtos);\n  }\n\n  /**\n     *  创建销售出库办理单据头信息\n     */\n  CreateSaleOutTransactMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('SaleTransactBusinessApi', 'CreateSaleOutTransactMasterOrder', input);\n  }\n\n  /**\n     *  修改销售出库办理单据头信息\n     */\n  UpdateSaleOutTransactMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('SaleTransactBusinessApi', 'UpdateSaleOutTransactMasterOrder', input);\n  }\n\n  /**\n   *  根据办理单号获取销售出库办理单明细数据,包含统计汇总数量信息\n   */\n  GetSaleOutTransactOrderDetailsDatasBy(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('SaleTransactBusinessApi', 'GetSaleOutTransactOrderDetailsDatasBy', queryDto);\n  }\n\n  /**\n       *  存储销售出库办理明细\n       */\n  StoreSaleOutTransactOrderDetails(TransactOrder: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('SaleTransactBusinessApi', 'StoreSaleOutTransactOrderDetails', TransactOrder);\n  }\n\n  /**\n       *  删除销售出库办理单的明细信息\n       */\n  RemoveSaleOutTransactOrderDetails(dtos: RhSelectableDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('SaleTransactBusinessApi', 'RemoveSaleOutTransactOrderDetails', dtos);\n  }\n  //#endregion 销售出库办理区域结束\n\n  //#region 销售退货办理区域开始\n  /**\n     *  创建销售退货入库办理单据头信息\n     */\n  CreateSaleReturnedTransactMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('SaleTransactBusinessApi', 'CreateSaleReturnedTransactMasterOrder', input);\n  }\n\n  /**\n     *  修改销售退货入库办理单据头信息\n     */\n  UpdateSaleReturnedTransactMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('SaleTransactBusinessApi', 'UpdateSaleReturnedTransactMasterOrder', input);\n  }\n\n  /**\n     *  获取销售退货入库办理单头数据\n     */\n  GetSaleReturnedTransactOrderViewDatas(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('SaleTransactBusinessApi', 'GetSaleReturnedTransactOrderViewDatas', queryDto);\n  }\n\n  /**\n     *  提交至审核状态销售退货办理单据信息\n     */\n  SumbitAuditSaleReturnedTransactOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('SaleTransactBusinessApi', 'SumbitAuditSaleReturnedTransactOrder', input);\n  }\n\n  /**\n     *  批量删除销售退货办理单据信息\n     */\n  RemoveSaleReturnedTransactOrders(dtos: RhSelectableDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('SaleTransactBusinessApi', 'RemoveSaleReturnedTransactOrders', dtos);\n  }\n\n  /**\n     *  根据办理单号获取销售退货入库办理单明细数据,包含统计汇总数量信息\n     */\n  GetSaleReturnedTransactOrderDetailsDatasBy(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\n    return this.apiUrls.PostRhpWms('SaleTransactBusinessApi', 'GetSaleReturnedTransactOrderDetailsDatasBy', queryDto);\n  }\n\n  /**\n     *  存储销售退货入库办理明细\n     */\n  StoreSaleReturnedTransactOrderDetails(TransactOrder: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('SaleTransactBusinessApi', 'StoreSaleReturnedTransactOrderDetails', TransactOrder);\n  }\n\n  /**\n     *  删除销售退货办理单的明细信息\n     */\n  RemoveSaleReturnedTransactOrderDetails(dtos: RhSelectableDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('SaleTransactBusinessApi', 'RemoveSaleReturnedTransactOrderDetails', dtos);\n  }\n  //#endregion 销售退货办理区域结束\n\n}\n","/** 销售出库计划明细模型 */\nexport class SaleOutPlanOrderDetails {\n    constructor(\n        /** 源单已计划数量 */\n        public SourcePlannedQty: number,\n        /** 源单已完成数量 */\n        public SourceCompletedQty: number,\n        /** 源单已出数量 */\n        public FetchedQty: number,\n        /** 是否开启条形码 */\n        public IsEnableSN: boolean,\n        /** 是否开启批次号 */\n        public IsEnableLotNum: boolean,\n        /** 是否开启保质期 */\n        public IsEnableExpirationDate: boolean,\n        /** 出库计划号 */\n        public PlanOrderId: string,\n        /** 业务类型 */\n        public BusinessType: string,\n        /** 源单 */\n        public SourceOrderId: string,\n        /** 源单行号 */\n        public SourceOrderRowNum: string,\n        /** 源单数量 */\n        public SourceOrderQty: number,\n        /** 仓库代码 */\n        public InWarehouseCode: string,\n        /** 仓库名称 */\n        public InWarehouseName: string,\n        /** 仓库代码 */\n        public OutWarehouseCode: string,\n        /** 仓库名称 */\n        public OutWarehouseName: string,\n        /** 物料代码 */\n        public MaterialCode: string,\n        /** 物料名称 */\n        public MaterialName: string,\n        /** 规格型号 */\n        public MaterialSpecification: string,\n        /** 物料属性 */\n        public MaterialAttribute: string,\n        /** 物料类别 */\n        public MaterialCategory: string,\n        /** 计量单位 */\n        public MeasureUnit: string,\n        /** 保质期 */\n        public ExpiryDays: number,\n        /** 有效期单位 */\n        public ExpiryUnit: string,\n        /** 计划数量 */\n        public PlanQty: number,\n        /** 入库数量 */\n        public ReceivedQty: number,\n        /** 辅助计量单位 */\n        public MeasureAuxUnit: string,\n        /** 辅助数量 */\n        public MeasureAuxQty: number,\n        /** 收货地址 */\n        public ReceiverAddress: string,\n        /** 批次号 */\n        public LotNum: string,\n        /** 备注 */\n        public Remark: string,\n        /** 工厂代码 */\n        public FactoryCode: string,\n        /** 扩展字段1 */\n        public SField1: string,\n        /** 扩展字段2 */\n        public SField2: string,\n        /** 扩展字段3 */\n        public SField3: string,\n        /** 扩展字段4 */\n        public FField1: number,\n        /** 扩展字段5 */\n        public FField2: number,\n        /** 扩展字段6 */\n        public FField3: number,\n        /** 扩展字段7 */\n        public DField1: Date,\n        /** 扩展字段8 */\n        public DField2: Date,\n        /** 扩展字段9 */\n        public DField3: Date,\n        /** 扩展字段10 */\n        public DField4: Date,\n        /** 操作标志 */\n        public OpSign: number,\n        /** 自增键 */\n        public Id: number,\n    ) { }\n    static create(): SaleOutPlanOrderDetails {\n        return new SaleOutPlanOrderDetails(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);\n    }\n}\n\n/** 销售退货入库计划明细模型 */\nexport class SaleReturnedInPlanOrderDetails {\n    constructor(\n        /** 源单已计划数量 */\n        public SourcePlannedQty: number,\n        /** 源单已完成数量 */\n        public SourceCompletedQty: number,\n        /** 源单已退货数量 */\n        public SourceReturnedQty: number,\n        /** 已退货计划数量 */\n        public SourceReversePlannedQty: number,\n        /** 源单已退回数量 */\n        public ReturnQty: number,\n        /** 是否开启条形码 */\n        public IsEnableSN: boolean,\n        /** 是否开启批次号 */\n        public IsEnableLotNum: boolean,\n        /** 是否开启保质期 */\n        public IsEnableExpirationDate: boolean,\n        /** 入库计划号 */\n        public PlanOrderId: string,\n        /** 入库业务类型 */\n        public BusinessType: string,\n        /** 源单 */\n        public SourceOrderId: string,\n        /** 源单行号 */\n        public SourceOrderRowNum: string,\n        /** 源单数量 */\n        public SourceOrderQty: number,\n        /** 仓库代码 */\n        public InWarehouseCode: string,\n        /** 仓库名称 */\n        public InWarehouseName: string,\n        /** 仓库代码 */\n        public OutWarehouseCode: string,\n        /** 仓库名称 */\n        public OutWarehouseName: string,\n        /** 物料代码 */\n        public MaterialCode: string,\n        /** 物料名称 */\n        public MaterialName: string,\n        /** 规格型号 */\n        public MaterialSpecification: string,\n        /** 物料属性 */\n        public MaterialAttribute: string,\n        /** 物料类别 */\n        public MaterialCategory: string,\n        /** 有效期单位 */\n        public ExpiryUnit: string,\n        /** 包装单位 */\n        public MeasureUnit: string,\n        /** 保质期 */\n        public ExpiryDays: number,\n        /** 需求数量 */\n        public DemandQty: number,\n        /** 计划数量 */\n        public PlanQty: number,\n        /** 已收数量 */\n        public ReceivedQty: number,\n        /** 辅助计量单位 */\n        public MeasureAuxUnit: string,\n        /** 辅助计量数量 */\n        public MeasureAuxQty: number,\n        /** 批次号 */\n        public LotNum: string,\n        /** 备注 */\n        public Remark: string,\n        /** 工厂代码 */\n        public FactoryCode: string,\n        /** 扩展字段1 */\n        public SField1: string,\n        /** 扩展字段2 */\n        public SField2: string,\n        /** 扩展字段3 */\n        public SField3: string,\n        /** 扩展字段4 */\n        public FField1: number,\n        /** 扩展字段5 */\n        public FField2: number,\n        /** 扩展字段6 */\n        public FField3: number,\n        /** 扩展字段7 */\n        public DField1: Date,\n        /** 扩展字段8 */\n        public DField2: Date,\n        /** 扩展字段9 */\n        public DField3: Date,\n        /** 扩展字段10 */\n        public DField4: Date,\n        /** 操作标志 */\n        public OpSign: number,\n        /** 自增键 */\n        public Id: number,\n    ) { }\n    static create(): SaleReturnedInPlanOrderDetails {\n        return new SaleReturnedInPlanOrderDetails(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);\n    }\n}\n\n/** 销售出库办理明细模型 */\nexport class SaleOutTransactOrderDetails {\n    constructor(\n        /** 源单已办理数量 */\n        public SourceTransactedQty: number,\n        /** 源单已计划数量 */\n        public SourcePlannedQty: number,\n        /** 出入库单号 */\n        public OrderId: string,\n        /** 入库计划号 */\n        public PlanOrderId: string,\n        /** 业务类型 */\n        public BusinessType: string,\n        /** 移动类型 */\n        public MoveType: string,\n        /** 源单单号 */\n        public SourceOrderId: string,\n        /** 源单行号 */\n        public SourceOrderRowNum: string,\n        /** 源单数量 */\n        public SourceOrderQty: number,\n        /** 条码 */\n        public SN: string,\n        /** 物料代码 */\n        public MaterialCode: string,\n        /** 物料名称 */\n        public MaterialName: string,\n        /** 物料规格 */\n        public MaterialSpecification: string,\n        /** 物料属性 */\n        public MaterialAttribute: string,\n        /** 物料类别 */\n        public MaterialCategory: string,\n        /** 计量单位 */\n        public MeasureUnit: string,\n        /** 辅助计量单位 */\n        public MeasureAuxUnit: string,\n        /** 辅助单位数量 */\n        public MeasureAuxQty: number,\n        /** 批次号 */\n        public LotNum: string,\n        /** 办理数量 */\n        public TransactQty: number,\n        /** 实际数量 */\n        public ActualQty: number,\n        /** 计划数量 */\n        public PlanQty: number,\n        /** 生产日期 */\n        public ProductionDate: Date,\n        /** 保质期 */\n        public ExpiryDays: number,\n        /** 有效期 */\n        public ExpirationDate: Date,\n        /** 保质期单位 */\n        public ExpiryUnit: string,\n        /** 是否已完成 */\n        public IsCompleted: boolean,\n        /** 完成时间 */\n        public CompletedTime: Date,\n        /** 是否传送ERP */\n        public IsSendToErp: boolean,\n        /** 是否先进先出 */\n        public IsFifo: boolean,\n        /** 供应商编码 */\n        public SupplierCode: string,\n        /** 供应商名称 */\n        public SupplierName: string,\n        /** 客户编码 */\n        public CustomerCode: string,\n        /** 客户名称 */\n        public CustomerName: string,\n        /** 发货地址 */\n        public ShippingAddress: string,\n        /** 入库仓库代码 */\n        public InWarehouseCode: string,\n        /** 入库仓库名称 */\n        public InWarehouseName: string,\n        /** 入库库区代码 */\n        public InWarehouseAreaCode: string,\n        /** 入库库区名称 */\n        public InWarehouseAreaName: string,\n        /** 入库货架代码 */\n        public InWarehouseShelfCode: string,\n        /** 入库货架名称 */\n        public InWarehouseShelfName: string,\n        /** 入库库位代码 */\n        public InStorageLocationCode: string,\n        /** 入库库位名称 */\n        public InStorageLocationName: string,\n        /** 出库仓库代码 */\n        public OutWarehouseCode: string,\n        /** 出库仓库名称 */\n        public OutWarehouseName: string,\n        /** 出库库区代码 */\n        public OutWarehouseAreaCode: string,\n        /** 出库库区名称 */\n        public OutWarehouseAreaName: string,\n        /** 出库货架代码 */\n        public OutWarehouseShelfCode: string,\n        /** 出库货架名称 */\n        public OutWarehouseShelfName: string,\n        /** 出库库位代码 */\n        public OutStorageLocationCode: string,\n        /** 出库库位名称 */\n        public OutStorageLocationName: string,\n        /** 是否遵循先进先出 */\n        public IsAccordingToFifo: boolean,\n        /** 器具编码 */\n        public ApplianceCode: string,\n        /** 附件编码 */\n        public AttachFileCode: string,\n        /** 工厂代码 */\n        public FactoryCode: string,\n        /** 创建用户Id */\n        public CreatorUserId: number,\n        /** 备注 */\n        public Remark: string,\n        /** 扩展字段1 */\n        public SField1: string,\n        /** 扩展字段2 */\n        public SField2: string,\n        /** 扩展字段3 */\n        public SField3: string,\n        /** 扩展字段4 */\n        public FField1: number,\n        /** 扩展字段5 */\n        public FField2: number,\n        /** 扩展字段6 */\n        public FField3: number,\n        /** 扩展字段7 */\n        public DField1: Date,\n        /** 扩展字段8 */\n        public DField2: Date,\n        /** 扩展字段9 */\n        public DField3: Date,\n        /** 扩展字段10 */\n        public DField4: Date,\n        /** 操作标志 */\n        public OpSign: number,\n        /** 自增键 */\n        public Id: number,\n        /** 库存数量 */\n        public InventoryQty: number,\n        /** 冻结数量 */\n        public FreezeQty: number,\n        /** 可用数量 */\n        public AvailableQty: number,\n        /** 计划已办理数量 */\n        public PlanTransactedQty: number,\n    ) { }\n    static create(): SaleOutTransactOrderDetails {\n        return new SaleOutTransactOrderDetails(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);\n    }\n}\n\n\n/** 销售退货入库办理明细模型 */\nexport class SaleReturnedTransactOrderDetails {\n    constructor(\n        /** 源单已完成数量 */\n        public SourceCompletedQty: number,\n        /** 源单已退货数量 */\n        public SourceReturnedQty: number,\n        /** 源单已计划退回数量 */\n        public SourceReversePlanedQty: number,\n        /** 出入库单号 */\n        public OrderId: string,\n        /** 入库计划号 */\n        public PlanOrderId: string,\n        /** 业务类型 */\n        public BusinessType: string,\n        /** 移动类型 */\n        public MoveType: string,\n        /** 源单单号 */\n        public SourceOrderId: string,\n        /** 源单行号 */\n        public SourceOrderRowNum: string,\n        /** 源单数量 */\n        public SourceOrderQty: number,\n        /** 条码 */\n        public SN: string,\n        /** 物料代码 */\n        public MaterialCode: string,\n        /** 物料名称 */\n        public MaterialName: string,\n        /** 物料规格 */\n        public MaterialSpecification: string,\n        /** 物料属性 */\n        public MaterialAttribute: string,\n        /** 物料类别 */\n        public MaterialCategory: string,\n        /** 计量单位 */\n        public MeasureUnit: string,\n        /** 辅助计量单位 */\n        public MeasureAuxUnit: string,\n        /** 辅助单位数量 */\n        public MeasureAuxQty: number,\n        /** 批次号 */\n        public LotNum: string,\n        /** 办理数量 */\n        public TransactQty: number,\n        /** 实际数量 */\n        public ActualQty: number,\n        /** 计划数量 */\n        public PlanQty: number,\n        /** 生产日期 */\n        public ProductionDate: Date,\n        /** 保质期 */\n        public ExpiryDays: number,\n        /** 有效期 */\n        public ExpirationDate: Date,\n        /** 保质期单位 */\n        public ExpiryUnit: string,\n        /** 是否已完成 */\n        public IsCompleted: boolean,\n        /** 完成时间 */\n        public CompletedTime: Date,\n        /** 是否传送ERP */\n        public IsSendToErp: boolean,\n        /** 是否先进先出 */\n        public IsFifo: boolean,\n        /** 供应商编码 */\n        public SupplierCode: string,\n        /** 供应商名称 */\n        public SupplierName: string,\n        /** 客户编码 */\n        public CustomerCode: string,\n        /** 客户名称 */\n        public CustomerName: string,\n        /** 发货地址 */\n        public ShippingAddress: string,\n        /** 入库仓库代码 */\n        public InWarehouseCode: string,\n        /** 入库仓库名称 */\n        public InWarehouseName: string,\n        /** 入库库区代码 */\n        public InWarehouseAreaCode: string,\n        /** 入库库区名称 */\n        public InWarehouseAreaName: string,\n        /** 入库货架代码 */\n        public InWarehouseShelfCode: string,\n        /** 入库货架名称 */\n        public InWarehouseShelfName: string,\n        /** 入库库位代码 */\n        public InStorageLocationCode: string,\n        /** 入库库位名称 */\n        public InStorageLocationName: string,\n        /** 出库仓库代码 */\n        public OutWarehouseCode: string,\n        /** 出库仓库名称 */\n        public OutWarehouseName: string,\n        /** 出库库区代码 */\n        public OutWarehouseAreaCode: string,\n        /** 出库库区名称 */\n        public OutWarehouseAreaName: string,\n        /** 出库货架代码 */\n        public OutWarehouseShelfCode: string,\n        /** 出库货架名称 */\n        public OutWarehouseShelfName: string,\n        /** 出库库位代码 */\n        public OutStorageLocationCode: string,\n        /** 出库库位名称 */\n        public OutStorageLocationName: string,\n        /** 是否遵循先进先出 */\n        public IsAccordingToFifo: boolean,\n        /** 器具编码 */\n        public ApplianceCode: string,\n        /** 附件编码 */\n        public AttachFileCode: string,\n        /** 工厂代码 */\n        public FactoryCode: string,\n        /** 创建用户Id */\n        public CreatorUserId: number,\n        /** 备注 */\n        public Remark: string,\n        /** 扩展字段1 */\n        public SField1: string,\n        /** 扩展字段2 */\n        public SField2: string,\n        /** 扩展字段3 */\n        public SField3: string,\n        /** 扩展字段4 */\n        public FField1: number,\n        /** 扩展字段5 */\n        public FField2: number,\n        /** 扩展字段6 */\n        public FField3: number,\n        /** 扩展字段7 */\n        public DField1: Date,\n        /** 扩展字段8 */\n        public DField2: Date,\n        /** 扩展字段9 */\n        public DField3: Date,\n        /** 扩展字段10 */\n        public DField4: Date,\n        /** 操作标志 */\n        public OpSign: number,\n        /** 自增键 */\n        public Id: number,\n        /** 库存数量 */\n        public InventoryQty: number,\n        /** 冻结数量 */\n        public FreezeQty: number,\n        /** 可用数量 */\n        public AvailableQty: number,\n        /** 计划已办理数量 */\n        public PlanTransactedQty: number,\n    ) { }\n    static create(): SaleReturnedTransactOrderDetails {\n        return new SaleReturnedTransactOrderDetails(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);\n    }\n}","export const SaleOutPlanOrderDetailFormInterface = {\n  interfaceType: 'post',\n  port: 52883,\n  controllerName: 'SalePlanBusinessApi',\n  interfaceName: 'GetSaleOutPlanOrderDetailsDatasBy'\n};\n\nexport const SaleOutPlanOrderDetailTableFieldDataset = [\n  { name: 'MaterialCode', displayName: '物料编号', width: 120 },\n  { name: 'MaterialName', displayName: '物料名称', width: 150 },\n  { name: 'MaterialSpecification', displayName: '物料规格', width: 200, rhEllipsis: true },\n  { name: 'OutWarehouseCode', displayName: '仓库代码', width: 120 },\n  { name: 'OutWarehouseName', displayName: '仓库名称', width: 150 },\n  { name: 'SourceOrderId', displayName: '销售单号', width: 150 },\n  { name: 'SourceOrderRowNum', displayName: '销售单行号', width: 150 },\n  {\n    name: 'MaterialCategory',\n    displayName: '物料类别',\n    width: 120,\n    type: 'array',\n    config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'MaterialCategory' }\n  },\n  {\n    name: 'MaterialAttribute',\n    displayName: '物料属性',\n    width: 120,\n    type: 'array',\n    config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'ProductMaterialAttribute' }\n  },\n  {\n    name: 'MeasureUnit',\n    displayName: '计量单位',\n    width: 120,\n    type: 'array',\n    config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n  },\n  {\n    name: 'MeasureAuxUnit',\n    displayName: '辅助单位',\n    width: 120,\n    type: 'array',\n    config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n  },\n  { name: 'MeasureAuxQty', displayName: '辅助数量', width: 120 },\n  { name: 'PlanQty', displayName: '计划数量', width: 120 },\n  { name: 'PlanTransactedQty', displayName: '计划已办理数量', width: 120 },\n  { name: 'Remark', displayName: '备注', width: 150, rhEllipsis: true }\n];\n\nexport const SaleOutSourceOrderDetailFormInterface = {\n  interfaceType: 'post',\n  port: 52883,\n  controllerName: 'SalePlanBusinessApi',\n  interfaceName: 'GetExtSaleDeliveryOutOrders'\n};\n\nexport const SaleOutSourceOrderDetailTableFieldDataset = [\n  { name: 'MaterialCode', displayName: '物料编号', width: 120 },\n  { name: 'MaterialName', displayName: '物料名称', width: 150 },\n  { name: 'MaterialSpecification', displayName: '物料规格', width: 200, rhEllipsis: true },\n  { name: 'OutWarehouseCode', displayName: '发出仓库代码', width: 150 },\n  { name: 'OutWarehouseName', displayName: '发出仓库名称', width: 150 },\n  { name: 'InWarehouseCode', displayName: '发入仓库代码', width: 150 },\n  { name: 'InWarehouseName', displayName: '发入仓库名称', width: 150 },\n  { name: 'OrderCode', displayName: '销售单号', width: 150 },\n  { name: 'OrderRowNum', displayName: '销售单行号', width: 120 },\n  { name: 'CustomerCode', displayName: '客户代码', width: 120 },\n  { name: 'CustomerName', displayName: '客户名称', width: 120 },\n  {\n    name: 'MaterialCategory',\n    displayName: '物料类别',\n    width: 120,\n    type: 'array',\n    config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'MaterialCategory' }\n  },\n  {\n    name: 'MaterialAttribute',\n    displayName: '物料属性',\n    width: 120,\n    type: 'array',\n    config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'ProductMaterialAttribute' }\n  },\n  {\n    name: 'MeasureUnit',\n    displayName: '计量单位',\n    width: 120,\n    type: 'array',\n    config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n  },\n  {\n    name: 'MeasureAuxUnit',\n    displayName: '辅助单位',\n    width: 120,\n    type: 'array',\n    config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n  },\n  { name: 'MeasureAuxQty', displayName: '辅助数量', width: 120 },\n  { name: 'HadDeliveryQty', displayName: '已发货数量', width: 150 },\n  { name: 'CanDeliveryQty', displayName: '可发货数量', width: 120 },\n  { name: 'DeliveryQty', displayName: '发货数量', width: 120 },\n  { name: 'Remark', displayName: '备注', width: 150, rhEllipsis: true }\n];\n\nexport const SaleReturnedInPlanOrderDetailFormInterface = {\n  interfaceType: 'post',\n  port: 52883,\n  controllerName: 'SalePlanBusinessApi',\n  interfaceName: 'GetSaleReturnedInPlanOrderDetailsDatasBy'\n};\n\nexport const SaleReturnedInPlanOrderDetailTableFieldDataset = [\n  { name: 'MaterialCode', displayName: '物料编号', width: 120 },\n  { name: 'MaterialName', displayName: '物料名称', width: 150 },\n  { name: 'MaterialSpecification', displayName: '物料规格', width: 200, rhEllipsis: true },\n  { name: 'InWarehouseCode', displayName: '仓库代码', width: 120 },\n  { name: 'InWarehouseName', displayName: '仓库名称', width: 150 },\n  { name: 'SourceOrderId', displayName: '销售单号', width: 150 },\n  { name: 'SourceOrderRowNum', displayName: '销售单行号', width: 150 },\n  {\n    name: 'MaterialCategory',\n    displayName: '物料类别',\n    width: 120,\n    type: 'array',\n    config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'MaterialCategory' }\n  },\n  {\n    name: 'MaterialAttribute',\n    displayName: '物料属性',\n    width: 120,\n    type: 'array',\n    config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'ProductMaterialAttribute' }\n  },\n  {\n    name: 'MeasureUnit',\n    displayName: '计量单位',\n    width: 120,\n    type: 'array',\n    config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n  },\n  {\n    name: 'MeasureAuxUnit',\n    displayName: '辅助单位',\n    width: 120,\n    type: 'array',\n    config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n  },\n  { name: 'MeasureAuxQty', displayName: '辅助数量', width: 120 },\n  { name: 'PlanQty', displayName: '计划数量', width: 120 },\n  { name: 'PlanTransactedQty', displayName: '计划已办理数量', width: 120 },\n  { name: 'Remark', displayName: '备注', width: 150, rhEllipsis: true }\n];\n","import { SaleOutPlanOrderDetails } from './../../sale-business-model';\nimport { RhBusinessManageService } from './../../../business-manage.service';\nimport { RhSaleBusinessService } from './../../sale-business.service';\nimport { Component, OnInit, Input, EventEmitter, Output, SimpleChanges } from '@angular/core';\nimport { RhBaseDto, RhSelectableDto, DataResultT, RhTableButtonInfoDto, OpMode, RhSafeAny } from 'rh-base/model';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport { Observable } from 'rxjs';\nimport { SaleOutSourceOrderDetailFormInterface, SaleOutSourceOrderDetailTableFieldDataset } from '../../detail-source-table-config';\n\n@Component({\n  selector: 'rh-sale-out-plan-details',\n  templateUrl: './sale-out-plan-details.component.html',\n  styleUrls: ['./sale-out-plan-details.component.less']\n})\nexport class SaleOutPlanDetailsComponent implements OnInit {\n  @Input() rhPlanOrder: RhBaseDto;\n  @Input() rhSourceDataset: RhSelectableDto[] = [];\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter();\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto(\n      'deleteDetails',\n      '删除',\n      'primary',true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhSelectableDto[]),\n      false,\n      true\n    ),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset = [new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)];\n  tableVisibleSetting = {};\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  sourceDefaultQueryDto = {};\n  isEnterEditStatus = false;\n  // 源单明细\n  sourceOrderDetailFormInterface = SaleOutSourceOrderDetailFormInterface;\n  sourceOrderDetailTableFieldDataset = SaleOutSourceOrderDetailTableFieldDataset;\n\n  editDisabled = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return !list.includes(data.OrderStatus);\n  };\n\n  get isReadOnlyTable() {\n    return this.rhShowDetail || !this.rhPlanOrder?.PlanOrderId || this.isEnterEditStatus || this.editDisabled(this.rhPlanOrder);\n  }\n\n  get readeOnlyButtonDataset() {\n    if (!this.rhPlanOrder?.PlanOrderId) return [];\n    else if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(private operator: RhSaleBusinessService, public businessManageSer: RhBusinessManageService) {}\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhPlanOrder, rhSourceDataset } = changes;\n    if (rhPlanOrder && rhPlanOrder.currentValue) {\n      this.initOutPlanOrderDetailDataset();\n    }\n    /** 选中源单带来数据源 */\n    if (rhSourceDataset && rhSourceDataset.currentValue && rhSourceDataset.currentValue.length) {\n      if (!this.rhPlanOrder.PlanOrderId) this.handleSourceDataset(this.rhSourceDataset, true);\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getDynamicVisibleSetting(['LotNum']));\n  }\n\n  /** 初始化明细数据 */\n  initOutPlanOrderDetailDataset() {\n    if (this.rhPlanOrder.PlanOrderId) {\n      if (this.rhSourceDataset.length) {\n        const dataset = this.dataresult.Attach;\n        dataset.forEach((data) => {\n          data.PlanOrderId = this.rhPlanOrder.PlanOrderId;\n          data.BusinessType = this.rhPlanOrder.BusinessType;\n          data.OutWarehouseCode = this.rhPlanOrder.OutWarehouseCode;\n          data.OutWarehouseName = this.rhPlanOrder.OutWarehouseName;\n        });\n        this.storeDatas(dataset).subscribe(() => {\n          this.rhSourceDataset = [];\n          this.getDatas();\n        });\n      } else {\n        this.getDatas();\n      }\n    }\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      PlanOrderId: this.rhPlanOrder.PlanOrderId,\n      SourceOrderId: this.rhPlanOrder.SourceOrderId,\n      FactoryCode: this.rhPlanOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetSaleOutPlanOrderDetailsDatasBy(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`);\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (this.editDisabled(this.rhPlanOrder)) {\n      MsgHelper.ShowWarningMessage('当前单据状态无法编辑出库计划明细！');\n      return;\n    }\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    const checkRes = this.checkStoreDatas(details);\n    if (!checkRes) {\n      return;\n    }\n    return new Observable((observer) => {\n      const dto = {\n        OrderMaster: this.rhPlanOrder,\n        OrderDetails: details\n      };\n      const msg = editType === 'add' ? '新增' : '编辑';\n      this.dataLoading = true;\n      this.operator.StoreSaleOutPlanOrderDetails(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`);\n          } else {\n            MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n          observer.next();\n          observer.complete();\n        },\n        () => {\n          this.dataLoading = false;\n          observer.error();\n        }\n      );\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[]) {\n    this.extraButtonHandleDataset[1].loading = true;\n    this.operator.RemoveSaleReturnedInPlanOrderDetails(details).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n          this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n        }\n        this.extraButtonHandleDataset[1].loading = false;\n      },\n      () => (this.extraButtonHandleDataset[1].loading = false)\n    );\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  async handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    // 获取源单统计信息\n    const convertResult = await this.businessManageSer.convertSourceOrderStatisticsDatasToSelectedDatas(\n      this.rhPlanOrder.SourceOrderId,\n      this.rhPlanOrder.BusinessType,\n      details\n    );\n    const datas = details.map((data) => {\n      const temp = SaleOutPlanOrderDetails.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 源单赋值\n      if (!convertResult) {\n        // temp.SourceOrderId = data.OrderCode;\n        temp.SourceOrderId = this.rhPlanOrder.SourceOrderId;\n        temp.SourceOrderRowNum = data.OrderRowNum;\n        temp.SourceOrderQty = data.DeliveryQty;\n        temp.SourceCompletedQty = data.HadDeliveryQty;\n      }\n      // 单头赋值\n      temp.PlanOrderId = this.rhPlanOrder.PlanOrderId;\n      temp.BusinessType = this.rhPlanOrder.BusinessType;\n      temp.OutWarehouseCode = this.rhPlanOrder.OutWarehouseCode;\n      temp.OutWarehouseName = this.rhPlanOrder.OutWarehouseName;\n      temp.FactoryCode = this.rhPlanOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n      }\n      this.dataresult = { Attach: (this.dataresult.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  /** 检查保存数据 */\n  checkStoreDatas(details: RhSelectableDto[]) {\n    // 必须填写计划数量\n    if (details.some((f) => !f.PlanQty)) {\n      MsgHelper.ShowWarningMessage('计划数量不能为0或空！');\n      return false;\n    }\n    // 计划数量不能大于源单数量-源单已计划数量-源单已完成数量\n    if (details.some((f) => (f.PlanQty + f.SourcePlannedQty + f.SourceCompletedQty) > f.SourceOrderQty)) {\n      MsgHelper.ShowWarningMessage('计划数量+源单已计划数量+源单已完成数量不能大于源单数量！');\n      return false;\n    }\n    return true;\n  }\n\n  openDataModal() {\n    this.sourceDefaultQueryDto = {\n      OrderCode: this.rhPlanOrder.SourceOrderId ? `$${this.rhPlanOrder.SourceOrderId}` : null,\n      FactoryCode: this.rhPlanOrder.FactoryCode\n    };\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n}\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n    <rh-dynamic-table\n      rhName=\"handleDetailsReadOnlyTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    >\n      <ng-template rhTemplate=\"LotNum\" let-item let-data=\"data\">\n        <ng-container *ngIf=\"data.select; else lotNumTpl\">\n          <input nz-input nzSize=\"small\" [(ngModel)]=\"data.LotNum\" [placeholder]=\"item?.displayName\" />\n          <!-- <rh-material-inventory-lotnum-selector [(ngModel)]=\"data.LotNum\"\n                        [rhFieldData]=\"{placeholder: item?.displayName}\"></rh-material-inventory-lotnum-selector> -->\n        </ng-container>\n        <ng-template #lotNumTpl>{{ data.LotNum }}</ng-template>\n      </ng-template>\n    </rh-dynamic-table>\n  </ng-container>\n  <ng-template #handleTpl>\n    <rh-dynamic-table\n      rhName=\"handleDetailsTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    >\n    </rh-dynamic-table>\n  </ng-template>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"'选择销售出库源单'\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <!-- <rh-sale-out-warehousing-source-order-table (rhModelChange)=\"onSelectModal($event)\"\n                [rhDefaultQueryDto]=\"sourceDefaultQueryDto\" [rhSingleMode]=\"false\">\n            </rh-sale-out-warehousing-source-order-table> -->\n      <rh-dynamic-single-table\n        rhName=\"sourceOrderDetailTable\"\n        [rhInterfaceInfo]=\"sourceOrderDetailFormInterface\"\n        [rhDefaultFieldDataset]=\"sourceOrderDetailTableFieldDataset\"\n        [rhPara]=\"sourceDefaultQueryDto\"\n        (rhSelectedDatasChange)=\"onSelectModal($event)\"\n      ></rh-dynamic-single-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { DynamicFormComponent, CustomizeBaseTableComponent } from 'rh-base/shared';\nimport {\n  RhDynamicInterfaceDto,\n  RhSelectableDto,\n  DataResultT,\n  RhTableQueryOptionDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhSafeAny\n} from 'rh-base/model';\nimport { MsgHelper } from 'rh-base/core';\n\n@Component({\n  selector: 'rh-sale-out-warehousing-source-order-table',\n  templateUrl: './sale-out-warehousing-source-order-table.component.html',\n  styleUrls: ['./sale-out-warehousing-source-order-table.component.less']\n})\nexport class SaleOutWarehousingSourceOrderTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n\n  @Input() rhSingleMode = false;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() rhDisabled: boolean;\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto>();\n\n  rhName = 'SaleOutWarehousingSourceOrderSelector';\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n  defaultInterfaceInfo: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'SalePlanBusinessApi',\n    interfaceName: 'GetExtSaleDeliveryOutOrders '\n  };\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [\n    { name: 'OrderCode', displayName: '销售单号', placeholder: '销售单号', editable: true, required: true },\n    {\n      name: 'FactoryCode',\n      displayName: '工厂',\n      placeholder: '工厂',\n      editable: true,\n      required: true,\n      type: 'array',\n      config: { port: '52880', controllerName: 'FactoryLayoutWebApi', interfaceName: 'GetFactoryInfoSelectItems' }\n    }\n  ];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [\n    { name: 'OrderCode', displayName: '销售单号', width: 150 },\n    { name: 'OrderRowNum', displayName: '销售单行号', width: 120 },\n    { name: 'OrderDate', displayName: '单据日期', width: 120, type: 'date', pipeSetting: 'yyyy-MM-dd' },\n    { name: 'CustomerCode', displayName: '客户代码', width: 120 },\n    { name: 'CustomerName', displayName: '客户名称', width: 120 },\n    { name: 'OutWarehouseCode', displayName: '发出仓库代码', width: 150 },\n    { name: 'OutWarehouseName', displayName: '发出仓库名称', width: 150 },\n    { name: 'InWarehouseCode', displayName: '发入仓库代码', width: 150 },\n    { name: 'InWarehouseName', displayName: '发入仓库名称', width: 150 },\n    { name: 'MaterialCode', displayName: '物料编号', width: 120 },\n    { name: 'MaterialName', displayName: '物料名称', width: 120 },\n    { name: 'HadDeliveryQty', displayName: '已发货数量', width: 150 },\n    { name: 'CanDeliveryQty', displayName: '可发货数量', width: 120 },\n    { name: 'DeliveryQty', displayName: '发货数量', width: 120 },\n    { name: 'Remark', displayName: '备注', width: 120, rhEllipsis: true }\n  ];\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  constructor() {\n    //\n    super();\n  }\n\n  ngOnInit(): void {\n    this.rhInterfaceInfo = this.rhInterfaceInfo || this.defaultInterfaceInfo;\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  // TODO 测试数据\n  setDatas(result: DataResultT<RhSelectableDto[]>) {\n    if (result && result.Success) {\n      this.dataresult = result;\n      this.rhDatasetChange.next(result.Attach);\n    } else {\n      this.dataresult = {\n        Success: false,\n        Attach: [\n          {\n            OrderCode: 'test123456',\n            OrderRowNum: '1',\n            OrderDate: new Date(),\n            CustomerCode: 'VIP001',\n            CustomerName: 'VIP用户1',\n            OutWarehouseCode: '0012',\n            OutWarehouseName: 'test 甲仓',\n            InWarehouseCode: '222222',\n            InWarehouseName: '辣条仓库',\n            MaterialCode: 'PPXSJ01',\n            MaterialName: '螺纹滑膛管',\n            MaterialSpecification: null,\n            MeasureUnit: 'Jian',\n            HadDeliveryQty: 100,\n            CanDeliveryQty: 3000,\n            DeliveryQty: 3000\n          }\n        ]\n      } as RhSafeAny;\n      this.rhDatasetChange.next(null);\n      MsgHelper.ShowWarningMessage(`注意：本次返回的是测试数据，实际查询信息：${result.Message}`);\n    }\n  }\n}\n","<!-- 搜索Form区域 -->\n<div class=\"search-area rh-full\">\n  <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n    <ng-template #searchTpl>\n      <rh-dynamic-form\n        #queryForm\n        rhName=\"{{ rhName }}Form\"\n        [rhValue]=\"rhDefaultQueryDto\"\n        (rhInterfaceDataChange)=\"setDatas($event)\"\n        (rhDataloadingChange)=\"dataLoadingChange($event)\"\n        (rhOutParaChange)=\"setInitFieldDataset($event)\"\n        [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n        [(rhFormInterface)]=\"rhInterfaceInfo\"\n      ></rh-dynamic-form>\n    </ng-template>\n  </nz-alert>\n</div>\n<!-- 搜索结果Table展示区域 -->\n<div class=\"table-area\">\n  <rh-dynamic-table\n    rhName=\"{{ rhName }}Table\"\n    [rhTableData]=\"dataresult\"\n    [rhTableDataloading]=\"dataLoading\"\n    [rhDefaultFieldDataset]=\"defaultTableFieldDataset\"\n    (rhRefresh)=\"refreshDatas($event)\"\n    (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\"\n    [rhSingleMode]=\"rhSingleMode\"\n  ></rh-dynamic-table>\n</div>\n","import { Component, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, SimpleChanges } from '@angular/core';\nimport { NzSizeLDSType } from 'ng-zorro-antd/core/types';\nimport { provideValueAccessor, RhRouteHelper, MsgHelper } from 'rh-base/core';\nimport { CustomizeBaseControlComponent, RhBaseDynamicService } from 'rh-base/shared';\nimport {\n  RhSelectableDto,\n  RhDynamicFormFieldDto,\n  RhSafeAny,\n  DataResultT,\n  RhDynamicInterfaceDto,\n  RhDynamicCustomizeControlConfigDto,\n  RhRelatedFieldDataDto,\n  RhCustomizeEventSettingDto,\n  RhDisplayMode\n} from 'rh-base/model';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { SaleOutWarehousingSourceOrderTableComponent } from './sale-out-warehousing-source-order-table/sale-out-warehousing-source-order-table.component';\nimport { RhBusinessManageService } from './../../../../business-manage/business-manage.service';\n\n@Component({\n  selector: 'rh-sale-out-warehousing-source-order-selector',\n  templateUrl: './sale-out-warehousing-source-order-selector.component.html',\n  styleUrls: ['./sale-out-warehousing-source-order-selector.component.less'],\n  providers: [provideValueAccessor(SaleOutWarehousingSourceOrderSelectorComponent)]\n})\nexport class SaleOutWarehousingSourceOrderSelectorComponent extends CustomizeBaseControlComponent {\n  rhRelatedFieldData = null;\n  @ViewChild(SaleOutWarehousingSourceOrderTableComponent) tableComp: SaleOutWarehousingSourceOrderTableComponent;\n  @Input() rhDynamicKey = 'SaleOutWarehousingSourceOrder';\n  @Input() rhTitle = '选择销售出库源单';\n  @Input() declare rhSize: NzSizeLDSType;\n  @Input() declare rhDisplayMode: RhDisplayMode;\n  @Input() rhDefaultQueryDto = {};\n\n  iconSetting = 'search';\n  @Input() rhSingleMode = false;\n\n  formKeyFieldName = 'SourceOrderId';\n  formTextFieldName = 'SourceOrderId';\n\n  modelKeyFieldName = 'OrderCode';\n  modelTextFieldName = 'OrderCode';\n\n  // // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  /** 对应table选中的数据 */\n  rhModel: RhSelectableDto = {};\n\n  /** 动态form字段配置数据 */\n  @Input() rhFieldData: RhDynamicFormFieldDto;\n  /** 整个form的数据 */\n  @Input() declare rhData: RhSafeAny;\n\n  /** 表格Loading */\n  // dataLoading = false;\n  // dataresult: DataResultT<RhSelectableDto[]>;\n\n  /** selector input上展示的数据，一般为中文 */\n  //displayName: string;\n\n  declare selectedData: RhSelectableDto[];\n\n  /** 自定义组件的自定义执行函数 */\n  cb: (data: RhSafeAny, ctx: RhSafeAny) => void;\n\n  /** 该组件关联的form名称 */\n  formName: string;\n\n  url: string;\n\n  /** 设置默认搜索接口 */\n  defaultFormInterface: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'SalePlanBusinessApi',\n    interfaceName: 'GetExtSaleDeliveryOutOrders '\n  };\n\n  mappedList = [\n    { sourceName: this.modelKeyFieldName, mappedName: this.formKeyFieldName },\n    { sourceName: this.modelTextFieldName, mappedName: this.formTextFieldName },\n    // { sourceName: 'OrderRowNum', mappedName: 'SourceOrderRowNum' },\n    { sourceName: 'CustomerCode', mappedName: 'CustomerCode' },\n    { sourceName: 'CustomerName', mappedName: 'CustomerName' },\n    { sourceName: 'InWarehouseCode', mappedName: 'InWarehouseCode' },\n    { sourceName: 'InWarehouseName', mappedName: 'InWarehouseName' },\n    { sourceName: 'OutWarehouseCode', mappedName: 'OutWarehouseCode' },\n    { sourceName: 'OutWarehouseName', mappedName: 'OutWarehouseName' }\n  ];\n\n  constructor(\n    public fb: UntypedFormBuilder,\n    public cdr: ChangeDetectorRef,\n    public router: Router,\n    public dynamicSer: RhBaseDynamicService,\n    public businessManageSer: RhBusinessManageService\n  ) {\n    super(cdr, dynamicSer);\n    this.url = RhRouteHelper.getRealRoute(this.router.url);\n  }\n\n  ngOnInit(): void {\n    this.rhPlaceholder = this.rhFieldData.placeholder as any;\n    this.formName = this.rhFieldData.relatedComponentName;\n    this.setCbValue();\n  }\n\n  // 自定义表单项配置\n  ngOnChanges(changes: SimpleChanges) {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue && rhData.currentValue[this.formKeyFieldName] === null) {\n      this.resetControlValue();\n    } else {\n      this.rhModel = {};\n    }\n  }\n\n  // dataLoadingChange(status: boolean) {\n  //   this.dataLoading = status;\n  // }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    // if (data?.length === 1 && this.rhSingleMode) {\n    //   this.selectedData = data[0];\n    // } else {\n    //   this.selectedData = data;\n    // }\n    this.selectedData = data || null;\n  }\n\n  // setDatas(result: DataResultT<RhSelectableDto[]>) {\n  //   if (result && result.Success) {\n  //     this.dataresult = result;\n  //   } else {\n  //     MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n  //   }\n  // }\n\n  /** 根据填入的code值，获取对应的完整数据，回填到输入框 */\n  getTargetDatas(code: string) {\n    // 接口搜索需接入第三方\n    // if (!this.defaultFormInterface) {\n    //   return;\n    // }\n    // const queryDto = {};\n    // queryDto[this.modelKeyFieldName] = `$${code}`;\n    // this.getTargetDatasVisHttpHandler(this.defaultFormInterface, queryDto, this.rhFieldData);\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n  }\n\n  //#region customize selector interface区域\n  async confirmSelect() {\n    this.rhModel = this.selectedData[0];\n    this.rhModelChange.emit(this.selectedData);\n    // if (this.rhSingleMode) {\n    //   this.value = this.rhModel[this.modelKeyFieldName];\n    //   this.displayName = this.rhModel[this.modelTextFieldName];\n    //   this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // } else {\n    //   this.value = (this.rhModel as RhSafeAny[]).map((ele) => ele[this.modelKeyFieldName]) as RhSafeAny;\n    //   // 多选的时候只会显示多个代码\n    //   this.displayName = (this.value as RhSafeAny).toString();\n    // }\n    this.value = this.rhModel[this.modelKeyFieldName];\n    this.displayName = this.rhModel[this.modelTextFieldName];\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // 执行对应控件定义的代码\n    if (this.rhData && this.rhModel && this.cb) {\n      this.cb(this.rhData, this.rhModel);\n    }\n    this.setFormDataViaRelatedDatas();\n    // 执行form的相关字段赋值操作\n    this.triggerRelatedForm();\n    this.closeDataModal();\n  }\n\n  resetControlValue() {\n    this.displayName = null;\n    // 重置form对应数据对象\n    this.rhData[this.formKeyFieldName] = null;\n    this.rhData[this.formTextFieldName] = null;\n    //\n    this.mappedList.forEach((ele) => (this.rhData[ele.mappedName] = null));\n    this.rhModel = null;\n  }\n\n  setCbValue() {\n    const cbString = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.cb;\n    if (cbString) {\n      const fn = Function(`return ${cbString}`);\n      if (fn) {\n        this.cb = fn();\n      } else {\n        this.cb = this.setFormData;\n      }\n    } else {\n      // 当没有配置回调函数时，执行默认的回调函数\n      this.cb = this.setFormData;\n    }\n  }\n\n  /** 设置form对应的数据对象的值\n   * @param data form对应的数据对象\n   * @params 设置或者对应table选择的数据\n   */\n  setFormData(data: RhSafeAny, ctx: RhSelectableDto) {\n    data[this.formKeyFieldName] = ctx[this.modelKeyFieldName];\n    data[this.formTextFieldName] = ctx[this.modelTextFieldName];\n  }\n\n  setFormDataViaRelatedDatas() {\n    let relatedDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedModelDatas;\n    if (!relatedDatas?.length) {\n      relatedDatas = this.mappedList;\n    }\n    if (relatedDatas?.length) {\n      relatedDatas.forEach((ele) => {\n        this.rhData[ele.mappedName] = this.rhModel[ele.sourceName];\n      });\n    }\n  }\n\n  triggerRelatedForm() {\n    const tempDatas = (this.rhFieldData.config as RhDynamicCustomizeControlConfigDto)?.relatedFieldDatas;\n    const relatedDatas: RhRelatedFieldDataDto[] = tempDatas && tempDatas.length ? tempDatas : this.mappedList;\n    const data: RhCustomizeEventSettingDto = {\n      id: `${this.url}_${this.formName}`,\n      eventType: null,\n      options: null,\n      value: this.rhModel,\n      relatedFieldDatas: relatedDatas\n    };\n    this.dynamicSer.formCustomizeEventTrigger(data);\n  }\n  //#endregion customize selector interface区域结束\n}\n","<nz-input-group [nzSize]=\"rhSize\" [nzSuffix]=\"suffixIconSearch\" [nzAddOnAfter]=\"addOnAfter\">\n  <input type=\"text\" nz-input [ngModel]=\"displayName\" [placeholder]=\"rhPlaceholder\" readonly=\"readonly\" />\n</nz-input-group>\n<ng-template #suffixIconSearch>\n  <a *ngIf=\"displayName && !rhDisabled\" class=\"link-suffix\" (click)=\"clearInputInfo()\">\n    <i nz-icon nzType=\"close-circle\"></i>\n  </a>\n</ng-template>\n\n<ng-template #addOnAfter>\n  <button nz-button nzType=\"link\" type=\"button\" nzSize=\"small\">\n    <a (click)=\"openDataModal($event)\">\n      <i nz-icon [nzType]=\"iconSetting\"></i>\n    </a>\n  </button>\n</ng-template>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"rhTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedData\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-sale-out-warehousing-source-order-table\n        [rhModel]=\"rhModel\"\n        (rhModelChange)=\"onSelectModal($event)\"\n        [rhInterfaceInfo]=\"defaultFormInterface\"\n        [rhSingleMode]=\"rhSingleMode\"\n        [rhDefaultQueryDto]=\"rhDefaultQueryDto\"\n      >\n      </rh-sale-out-warehousing-source-order-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { BusinessType } from './../../business-type';\nimport { RhSharedManageService } from './../../../shared-manage/shared-manage.service';\nimport { RhBusinessManageService } from './../../business-manage.service';\nimport { RhSaleBusinessService } from './../sale-business.service';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { RhBaseDto, DataResultT, RhSelectableDto, RhLoginedUserDto, RhTableButtonInfoDto, OpResult, OpMode, RhSafeAny, CodeClassModel, RhDynamicTableFieldDto, RhTableQueryOptionDto } from 'rh-base/model';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\n\ntype TabType = 'edit' | 'detail' | 'audit';\n\n@Component({\n  selector: 'rh-sale-out-plan',\n  templateUrl: './sale-out-plan.component.html',\n  styleUrls: ['./sale-out-plan.component.less']\n})\nexport class RhSaleOutPlanComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  BusinessType = BusinessType.SaleOut;\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  closeDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n  /** 选中的销售计划源单的数据 */\n  selectedSourceDataset: RhSelectableDto[] = [];\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  completeVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitOutWarehouse';\n  };\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  isAsCreated = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto)),\n    new RhTableButtonInfoDto('submit', '提交审核', 'default', false, 'form', false, null, (data) => this.submitDataToAudit(data as RhBaseDto)),\n    new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) =>\n      this.openDetailTab({ data } as RhBaseDto, 'audit')\n    ),\n    new RhTableButtonInfoDto(\n      'complete',\n      '完成',\n      'default',\n      false,\n      'check',\n      false,\n      null,\n      (data) => this.completeOutPlanOrder(data as RhBaseDto)\n    )\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '新建', 'primary', false, 'file', false, null, () => this.openEditTab(), true),\n    new RhTableButtonInfoDto(\n      'delete',\n      '删除',\n      'primary', true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhBaseDto[]),\n      false,\n      false,\n      'red'\n    )\n  ];\n\n  beforeSubmit = async (data: RhBaseDto, context: DynamicFormComponent) => {\n    let result: OpResult = null;\n    const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n    context.submitLoading = true;\n    try {\n      if (this.editDto.OpSign === OpMode.OpAdd) {\n        // 基本信息\n        data.BusinessType = this.BusinessType;\n        data.Creator = this.currentUser.DisplayName;\n        data.CreatorId = this.currentUser.UserName;\n\n        result = await this.operator.CreateSaleOutPlanMasterOrder(data).toPromise();\n      } else {\n        result = await this.operator.UpdateSaleOutPlanMasterOrder(data).toPromise();\n      }\n      if (result && result.Success) {\n        MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n        this.editDto.PlanOrderId = result?.Attach?.PlanOrderId;\n        this.isShowEditForm = false;\n        this.getDetails();\n      } else {\n        MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n      }\n    } catch (error) {\n      //\n    } finally {\n      context.submitLoading = false;\n    }\n\n    return false;\n  };\n\n  beforeSubmitAudit = (data: RhBaseDto) => {\n    if (!data.IsPass && !data.AuditMessage) {\n      MsgHelper.ShowWarningMessage('审核不通过，必须填写审核信息！');\n      return;\n    }\n    // 基本信息\n    data.CustomerCode = this.editDto.CustomerCode;\n    data.CustomerName = this.editDto.CustomerName;\n    data.Auditor = this.currentUser.DisplayName;\n    data.AuditorId = this.currentUser.UserName;\n\n    return true;\n  };\n\n  constructor(private operator: RhSaleBusinessService, public businessManageSer: RhBusinessManageService, public storage: RhStorageService, public sharedManageSer: RhSharedManageService) { }\n\n  ngOnInit(): void {\n    this.setUserInfo();\n    this.initEditButtonVisible();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  initEditButtonVisible() {\n    this.editButtonDataset[0].visible = this.editVisible.toString();\n    this.editButtonDataset[1].visible = this.isCreated.toString();\n    this.editButtonDataset[2].visible = this.auditVisible.toString();\n    this.editButtonDataset[3].visible = this.completeVisible.toString();\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    this.selectedSourceDataset = [];\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {\n        TransactorCode: this.currentUser.UserName,\n        TransactorName: this.currentUser.DisplayName,\n        FactoryCode: this.currentUser.FactoryCode\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.editDto = null;\n    this.selectedIndex = 0;\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.selectedIndex = 1;\n  }\n\n  // 未退出页面，刷新数据内容\n  getDetails() {\n    const queryDto = { PlanOrderId: this.editDto.PlanOrderId };\n    this.operator.GetSaleOutPlanOrderDatas(queryDto).subscribe((result) => {\n      if (result.Success && result.Attach.length === 1) {\n        this.editDto = result.Attach[0];\n        this.editDto.OpSign = OpMode.OpEdit;\n      }\n    });\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    }\n  }\n\n  sourceOrderDatasetChange(dataset: RhSelectableDto[]) {\n    if (dataset?.length) {\n      // 源单号赋值\n      this.editDto.SourceOrderId = dataset[0].OrderCode;\n      this.editDto.BusinessType = this.BusinessType;\n      this.selectedSourceDataset = [...dataset];\n    } else {\n      // 源单号赋值\n      this.editDto.SourceOrderId = null;\n      this.selectedSourceDataset = [];\n    }\n  }\n\n  //#region 操作区域开始\n  /** 提交审核 */\n  submitDataToAudit(data: RhBaseDto) {\n    if (this.isCreated(data)) {\n      const dto = { PlanOrderId: data.PlanOrderId };\n      this.dataLoading = true;\n      this.operator.SumbitAuditSaleOutPlanOrder(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('提交审核成功！');\n            if (this.selectedIndex === 0) this.getDatas();\n            this.closeEditTab();\n          } else {\n            MsgHelper.ShowWarningMessage(`提交审核失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行提交审核！');\n    }\n  }\n\n  /** 审核 */\n  auditData(data: RhBaseDto) {\n    if (this.auditVisible(data)) {\n      this.openAuditDataModal(data);\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行审核！');\n    }\n  }\n\n  /** 打开审核弹窗 */\n  openAuditDataModal(data: RhBaseDto) {\n    this.auditDto = { PlanOrderId: data.PlanOrderId };\n    this.isShowAuditDataModal = true;\n  }\n\n  /** 关闭审核弹窗 */\n  closeAuditDataModal() {\n    this.auditDto = {};\n    this.isShowAuditDataModal = false;\n  }\n\n  /** 审核接口返回 */\n  onAuditData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('审核出库计划成功！');\n      this.closeAuditDataModal();\n      this.getDetails();\n    } else {\n      MsgHelper.ShowWarningModal(`审核出库计划失败！${result.Message}`);\n    }\n  }\n\n  /** 完成计划 */\n  completeOutPlanOrder(data: RhBaseDto) {\n    if (this.completeVisible(data)) {\n      // TODO\n      // const dto = OutPlanOrderMasterDto.create();\n      // dto.PlanOrderId = data.PlanOrderId;\n      // this.dataLoading = true;\n      // this.operator.CompleteOutPlanOrder(dto).subscribe(\n      //   (result) => {\n      //     if (result.Success) {\n      //       MsgHelper.ShowSuccessMessage('完成成功！');\n      //       this.getDatas();\n      //     } else {\n      //       MsgHelper.ShowWarningMessage(`完成失败！${result.Message}`);\n      //     }\n      //     this.dataLoading = false;\n      //   },\n      //   () => {\n      //     this.dataLoading = false;\n      //   }\n      // );\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行完成！');\n    }\n  }\n\n  /** 删除计划 */\n  removeDatas(datas: RhBaseDto[]) {\n    const some = datas.some((f) => !this.isAsCreated(f));\n    if (some) {\n      MsgHelper.ShowWarningMessage('只能删除制单状态的数据！');\n    } else {\n      this.dataLoading = true;\n      this.operator.RemoveSaleOutPlanOrders(datas as RhSafeAny).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('删除成功！');\n            this.getDatas();\n          } else {\n            MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    }\n  }\n  //#endregion 操作区域结束\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n\n}\n\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  >\n                  </rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              >\n              </rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>数据{{ editDto?.OpSign === 1 ? '新增' : '编辑' }}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button\n                    *ngIf=\"editVisible(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"isShowEditForm = true\"\n                  >\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button\n                    *ngIf=\"isCreated(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"submitDataToAudit(editDto)\"\n                  >\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                  <button *ngIf=\"auditVisible(editDto)\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else detailsDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template rhTemplate=\"SourceOrderId\" let-formgroup let-setting=\"setting\" let-formData=\"formData\">\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-sale-out-warehousing-source-order-selector\n                          [formControl]=\"formgroup.get('SourceOrderId')\"\n                          [rhFieldData]=\"setting\"\n                          [rhDisplayMode]=\"1\"\n                          [rhData]=\"formData\"\n                          [rhDefaultQueryDto]=\"curFactoryQueryDto\"\n                          (rhModelChange)=\"sourceOrderDatasetChange($event)\"\n                        >\n                        </rh-sale-out-warehousing-source-order-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n\n                  <ng-template\n                    rhTemplate=\"OutWarehouseCode\"\n                    let-formGroup\n                    let-setting=\"setting\"\n                    let-hostConfig=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.placeholder }}</nz-form-label>\n                      <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                        <rh-business-warehouse-selector\n                          name=\"OutWarehouseCode\"\n                          [formControl]=\"formGroup.get('OutWarehouseCode')\"\n                          rhFormType=\"edit\"\n                          [rhFieldData]=\"businessManageSer.setWarehouseFieldSetting(setting, 'Out')\"\n                          [rhSize]=\"hostConfig?.rhSize\"\n                          [rhData]=\"formData\"\n                          [rhDefaultQueryDto]=\"{ BusinessTypeCode: BusinessType }\"\n                        >\n                        </rh-business-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-sale-out-plan-details [rhPlanOrder]=\"editDto\" [rhSourceDataset]=\"selectedSourceDataset\" (rhDetailsUpdate)=\"getDetails()\">\n              </rh-sale-out-plan-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <button\n                  *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\"\n                  nz-button\n                  nzType=\"primary\"\n                  nzSize=\"small\"\n                  type=\"button\"\n                  (click)=\"auditData(editDto)\"\n                >\n                  <i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n                </button>\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"detailsDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-sale-out-plan-details [rhPlanOrder]=\"editDto\" [rhShowDetail]=\"true\"> </rh-sale-out-plan-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #detailsDescription>\n  <rh-dynamic-description *ngIf=\"isRefreshDesc\" rhName=\"detailsDescription\" [rhValue]=\"editDto\"> </rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'出库计划审核'\"\n  [nzVisible]=\"isShowAuditDataModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeAuditDataModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #auditDataForm\n    rhName=\"auditDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"auditDto\"\n    [rhBeforeSubmit]=\"beforeSubmitAudit\"\n    (rhInterfaceDataChange)=\"onAuditData($event)\"\n    (rhClose)=\"closeAuditDataModal()\"\n  >\n    <ng-template rhTemplate=\"IsPass\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-radio-group [formControl]=\"formgroup.get('IsPass')\" (ngModelChange)=\"businessManageSer.isPassChange($event, formgroup)\">\n            <label nz-radio [nzValue]=\"true\">是</label>\n            <label nz-radio [nzValue]=\"false\">否</label>\n          </nz-radio-group>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"AuditMessage\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"!formgroup.get('IsPass').value\"> {{ setting.displayName }}</nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <textarea\n            nz-input\n            [formControl]=\"formgroup.get('AuditMessage')\"\n            [placeholder]=\"setting.placeholder\"\n            [nzAutosize]=\"{ minRows: 2 }\"\n          ></textarea>\n          <div *ngIf=\"editDto?.AuditMessage\">\n            <span style=\"color: #faad14\">上一次审核信息：{{ editDto?.AuditMessage }}</span>\n          </div>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>\n","export enum BusinessType {\n  /** 采购预收货 */\n  PurchaseAdvanceReceiptIn = 'PurchaseAdvanceReceiptIn',\n  /** 采购收货入库 */\n  PurchaseIn = 'PurchaseIn',\n  /** 采购退货出库 */\n  PurchaseReturnedOut = 'PurchaseReturnedOut',\n  /** 生产领料出库 */\n  ProductPickingMaterialOut = 'ProductPickingMaterialOut',\n  /** 生产退料入库 */\n  ProductReturnedMaterialIn = 'ProductReturnedMaterialIn',\n  /** 生产完工入库 */\n  ProductCompletedIn = 'ProductCompletedIn',\n  /** 销售出库 */\n  SaleOut = 'SaleOut',\n  /** 销售退货入库 */\n  SaleReturnIn = 'SaleReturnIn',\n  /** 其他入库 */\n  OtherIn = 'OtherIn',\n  /** 其他出库 */\n  OtherOut = 'OtherOut',\n  /** 仓库调拨 */\n  WarehouseTransfer = 'WarehouseTransfer',\n  /** 移库 */\n  StockLocationTransfer = 'StockLocationTransfer'\n}\n","import { BusinessType } from './../../../../business-order-manage/business-type';\nimport { RhSaleBusinessService } from './../../sale-business.service';\nimport { Component, OnInit, Input, Output, EventEmitter, SimpleChanges } from '@angular/core';\nimport { RhBaseDto, RhSelectableDto, DataResultT, RhTableButtonInfoDto, OpMode, RhSafeAny } from 'rh-base/model';\nimport { SaleReturnedInPlanOrderDetails } from '../../sale-business-model';\nimport { RhBusinessManageService } from './../../../business-manage.service';\nimport { Observable } from 'rxjs';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport { SaleOutSourceOrderDetailFormInterface, SaleOutSourceOrderDetailTableFieldDataset } from '../../detail-source-table-config';\n\n@Component({\n  selector: 'rh-sale-returned-in-plan-details',\n  templateUrl: './sale-returned-in-plan-details.component.html',\n  styleUrls: ['./sale-returned-in-plan-details.component.less']\n})\nexport class SaleReturnedInPlanDetailsComponent implements OnInit {\n  @Input() rhPlanOrder: RhBaseDto;\n  @Input() rhSourceDataset: RhSelectableDto[] = [];\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter();\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto(\n      'deleteDetails',\n      '删除',\n      'primary',true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhSelectableDto[]),\n      false,\n      true\n    ),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset = [new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)];\n  tableVisibleSetting = {};\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  sourceDefaultQueryDto = {};\n  isEnterEditStatus = false;\n  // 源单明细\n  sourceOrderDetailFormInterface = SaleOutSourceOrderDetailFormInterface;\n  sourceOrderDetailTableFieldDataset = SaleOutSourceOrderDetailTableFieldDataset;\n\n  editDisabled = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return !list.includes(data.OrderStatus);\n  };\n\n  get isReadOnlyTable() {\n    return this.rhShowDetail || !this.rhPlanOrder?.PlanOrderId || this.isEnterEditStatus || this.editDisabled(this.rhPlanOrder);\n  }\n\n  get readeOnlyButtonDataset() {\n    if (!this.rhPlanOrder?.PlanOrderId) return [];\n    else if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(private operator: RhSaleBusinessService, public businessManageSer: RhBusinessManageService) {}\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhPlanOrder, rhSourceDataset } = changes;\n    if (rhPlanOrder && rhPlanOrder.currentValue) {\n      this.initInPlanOrderDetailDataset();\n    }\n    /** 选中源单带来数据源 */\n    if (rhSourceDataset && rhSourceDataset.currentValue && rhSourceDataset.currentValue.length) {\n      if (!this.rhPlanOrder.PlanOrderId) this.handleSourceDataset(this.rhSourceDataset, true);\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getDynamicVisibleSetting(['LotNum']));\n  }\n\n  /** 初始化明细数据 */\n  initInPlanOrderDetailDataset() {\n    if (this.rhPlanOrder.PlanOrderId) {\n      if (this.rhSourceDataset.length) {\n        const dataset = this.dataresult.Attach;\n        dataset.forEach((data) => {\n          data.PlanOrderId = this.rhPlanOrder.PlanOrderId;\n          data.BusinessType = this.rhPlanOrder.BusinessType;\n          data.InWarehouseCode = this.rhPlanOrder.InWarehouseCode;\n          data.InWarehouseName = this.rhPlanOrder.InWarehouseName;\n        });\n        this.storeDatas(dataset).subscribe(() => {\n          this.rhSourceDataset = [];\n          this.getDatas();\n        });\n      } else {\n        this.getDatas();\n      }\n    }\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      PlanOrderId: this.rhPlanOrder.PlanOrderId,\n      SourceOrderId: this.rhPlanOrder.SourceOrderId,\n      FactoryCode: this.rhPlanOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetSaleReturnedInPlanOrderDetailsDatasBy(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`);\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (this.editDisabled(this.rhPlanOrder)) {\n      MsgHelper.ShowWarningMessage('当前单据状态无法编辑入库计划明细！');\n      return;\n    }\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    const checkRes = this.checkStoreDatas(details);\n    if (!checkRes) {\n      return;\n    }\n    return new Observable((observer) => {\n      const dto = {\n        OrderMaster: this.rhPlanOrder,\n        OrderDetails: details\n      };\n      const msg = editType === 'add' ? '新增' : '编辑';\n      this.dataLoading = true;\n      this.operator.StoreSaleReturnedInPlanOrderDetails(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`);\n          } else {\n            MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n          observer.next();\n          observer.complete();\n        },\n        () => {\n          this.dataLoading = false;\n          observer.error();\n        }\n      );\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[]) {\n    this.extraButtonHandleDataset[1].loading = true;\n    this.operator.RemoveSaleReturnedInPlanOrderDetails(details).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n          this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n        }\n        this.extraButtonHandleDataset[1].loading = false;\n      },\n      () => (this.extraButtonHandleDataset[1].loading = false)\n    );\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  async handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    // 获取源单统计信息\n    const convertResult = await this.businessManageSer.convertSourceOrderStatisticsDatasToSelectedDatas(\n      this.rhPlanOrder.SourceOrderId,\n      // this.rhPlanOrder.BusinessType,\n      BusinessType.SaleOut,\n      details\n    );\n    // 退料一定有源单！\n    if (!convertResult) {\n      return MsgHelper.ShowWarningMessage('找不到对应源单的统计数据！');\n    }\n    const datas = details.map((data) => {\n      const temp = SaleReturnedInPlanOrderDetails.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 单头赋值\n      temp.PlanOrderId = this.rhPlanOrder.PlanOrderId;\n      temp.BusinessType = this.rhPlanOrder.BusinessType;\n      temp.InWarehouseCode = this.rhPlanOrder.InWarehouseCode;\n      temp.InWarehouseName = this.rhPlanOrder.InWarehouseName;\n      temp.FactoryCode = this.rhPlanOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n      }\n      this.dataresult = { Attach: (this.dataresult.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  /** 检查保存数据 */\n  checkStoreDatas(details: RhSelectableDto[]) {\n    // 必须填写计划数量\n    if (details.some((f) => !f.PlanQty)) {\n      MsgHelper.ShowWarningMessage('计划数量不能为0或空！');\n      return false;\n    }\n    // 退料数量需要小于已领料数量，不判端超额入库情况\n    if (details.some((f) => f.PlanQty + f.SourceReversePlannedQty > f.SourceCompletedQty)) {\n      MsgHelper.ShowWarningMessage('计划数量+已计划数量不能大于源单已销售出库数量');\n      return false;\n    }\n    return true;\n  }\n\n  openDataModal() {\n    this.sourceDefaultQueryDto = {\n      OrderCode: this.rhPlanOrder.SourceOrderId ? `$${this.rhPlanOrder.SourceOrderId}` : null,\n      FactoryCode: this.rhPlanOrder.FactoryCode\n    };\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n}\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n    <rh-dynamic-table\n      rhName=\"handleDetailsReadOnlyTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    ></rh-dynamic-table>\n  </ng-container>\n  <ng-template #handleTpl>\n    <rh-dynamic-table\n      rhName=\"handleDetailsTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    >\n    </rh-dynamic-table>\n  </ng-template>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"'选择销售退货入库源单'\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <!-- <rh-sale-out-warehousing-source-order-table (rhModelChange)=\"onSelectModal($event)\"\n                [rhDefaultQueryDto]=\"sourceDefaultQueryDto\" [rhSingleMode]=\"false\">\n            </rh-sale-out-warehousing-source-order-table> -->\n      <rh-dynamic-single-table\n        rhName=\"sourceOrderDetailTable\"\n        [rhInterfaceInfo]=\"sourceOrderDetailFormInterface\"\n        [rhDefaultFieldDataset]=\"sourceOrderDetailTableFieldDataset\"\n        [rhPara]=\"sourceDefaultQueryDto\"\n        (rhSelectedDatasChange)=\"onSelectModal($event)\"\n      ></rh-dynamic-single-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { BusinessType } from './../../business-type';\nimport { RhSharedManageService } from './../../../shared-manage/shared-manage.service';\nimport { RhBusinessManageService } from './../../business-manage.service';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { RhBaseDto, DataResultT, RhSelectableDto, RhLoginedUserDto, RhTableButtonInfoDto, OpResult, OpMode, RhSafeAny, CodeClassModel, RhDynamicTableFieldDto, RhTableQueryOptionDto } from 'rh-base/model';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\nimport { RhSaleBusinessService } from '../sale-business.service';\n\ntype TabType = 'edit' | 'detail' | 'audit';\n\n@Component({\n  selector: 'rh-sale-returned-in-plan',\n  templateUrl: './sale-returned-in-plan.component.html',\n  styleUrls: ['./sale-returned-in-plan.component.less']\n})\nexport class RhSaleReturnedInPlanComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  BusinessType = BusinessType.SaleReturnedIn;\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isShowCloseInPlanRemarkModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  closeDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n  /** 选中的采购计划源单的数据 */\n  selectedSourceDataset: RhSelectableDto[] = [];\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  completeVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitInWarehouse';\n  };\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  isAsCreated = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto)),\n    new RhTableButtonInfoDto('submit', '提交审核', 'default', false, 'form', false, null, (data) => this.submitDataToAudit(data as RhBaseDto)),\n    new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) =>\n      this.openDetailTab({ data } as RhBaseDto, 'audit')\n    ),\n    new RhTableButtonInfoDto(\n      'close',\n      '关闭',\n      'default',\n      false,\n      'close-circle',\n      false,\n      null,\n      (data) => this.openCloseInPlanRemarkModal(data as RhBaseDto),\n      null,\n      null,\n      'red'\n    )\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '新建', 'primary', false, 'file', false, null, () => this.openEditTab(), true),\n    new RhTableButtonInfoDto(\n      'delete',\n      '删除',\n      'primary',true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhBaseDto[]),\n      false,\n      false,\n      'red'\n    )\n  ];\n\n  beforeSubmit = async (data: RhBaseDto, context: DynamicFormComponent) => {\n    let result: OpResult = null;\n    const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n    context.submitLoading = true;\n    try {\n      if (this.editDto.OpSign === OpMode.OpAdd) {\n        // 基本信息\n        data.BusinessType = this.BusinessType;\n        data.Creator = this.currentUser.DisplayName;\n        data.CreatorId = this.currentUser.UserName;\n\n        result = await this.operator.CreateSaleReturnedInPlanMasterOrder(data).toPromise();\n      } else {\n        result = await this.operator.UpdateSaleReturnedInPlanMasterOrder(data).toPromise();\n      }\n      if (result && result.Success) {\n        MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n        this.editDto.PlanOrderId = result?.Attach?.PlanOrderId;\n        this.isShowEditForm = false;\n        this.getDetails();\n      } else {\n        MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n      }\n    } catch (error) {\n      //\n    } finally {\n      context.submitLoading = false;\n    }\n\n    return false;\n  };\n\n  beforeSubmitAudit = (data: RhBaseDto) => {\n    if (!data.IsPass && !data.AuditMessage) {\n      MsgHelper.ShowWarningMessage('审核不通过，必须填写审核信息！');\n      return;\n    }\n    // 基本信息\n    data.Auditor = this.currentUser.DisplayName;\n    data.AuditorId = this.currentUser.UserName;\n\n    return true;\n  };\n\n  constructor(private operator: RhSaleBusinessService, public businessManageSer: RhBusinessManageService, public storage: RhStorageService, public sharedManageSer: RhSharedManageService) { }\n\n  ngOnInit(): void {\n    this.setUserInfo();\n    this.initEditButtonVisible();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  initEditButtonVisible() {\n    this.editButtonDataset[0].visible = this.editVisible.toString();\n    this.editButtonDataset[1].visible = this.isCreated.toString();\n    this.editButtonDataset[2].visible = this.auditVisible.toString();\n    this.editButtonDataset[3].visible = this.completeVisible.toString();\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    this.selectedSourceDataset = [];\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {\n        TransactorCode: this.currentUser.UserName,\n        TransactorName: this.currentUser.DisplayName,\n        FactoryCode: this.currentUser.FactoryCode\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.editDto = null;\n    this.selectedIndex = 0;\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.selectedIndex = 1;\n  }\n\n  // 未退出页面，刷新数据内容\n  getDetails() {\n    const queryDto: RhSafeAny = { PlanOrderId: this.editDto.PlanOrderId };\n    this.operator.GetSaleReturnedInPlanOrderDatas(queryDto).subscribe((result) => {\n      if (result.Success && result.Attach.length === 1) {\n        this.editDto = result.Attach[0];\n        this.editDto.OpSign = OpMode.OpEdit;\n      }\n    });\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    }\n  }\n\n  sourceOrderDatasetChange(dataset: RhSelectableDto[]) {\n    if (dataset?.length) {\n      // 源单号赋值\n      this.editDto.SourceOrderId = dataset[0].OrderCode;\n      this.editDto.BusinessType = this.BusinessType;\n      this.selectedSourceDataset = [...dataset];\n    } else {\n      // 源单号赋值\n      this.editDto.SourceOrderId = null;\n      this.selectedSourceDataset = [];\n    }\n  }\n\n  //#region 操作区域开始\n  /** 提交审核 */\n  submitDataToAudit(data: RhBaseDto) {\n    if (this.isCreated(data)) {\n      const dto: RhSafeAny = { PlanOrderId: data.PlanOrderId };\n      this.dataLoading = true;\n      this.operator.SumbitAuditSaleReturnedInPlanOrder(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('提交审核成功！');\n            if (this.selectedIndex === 0) this.getDatas();\n            this.closeEditTab();\n          } else {\n            MsgHelper.ShowWarningMessage(`提交审核失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行提交审核！');\n    }\n  }\n\n  /** 审核 */\n  auditData(data: RhBaseDto) {\n    if (this.auditVisible(data)) {\n      this.openAuditDataModal(data);\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行审核！');\n    }\n  }\n\n  /** 打开审核弹窗 */\n  openAuditDataModal(data: RhBaseDto) {\n    this.auditDto = { PlanOrderId: data.PlanOrderId };\n    this.isShowAuditDataModal = true;\n  }\n\n  /** 关闭审核弹窗 */\n  closeAuditDataModal() {\n    this.auditDto = {};\n    this.isShowAuditDataModal = false;\n  }\n\n  /** 审核接口返回 */\n  onAuditData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('审核入库计划成功！');\n      this.closeAuditDataModal();\n      this.getDetails();\n    } else {\n      MsgHelper.ShowWarningModal(`审核入库计划失败！${result.Message}`);\n    }\n  }\n\n  /** 打开关闭计划备注弹窗 */\n  openCloseInPlanRemarkModal(data: RhBaseDto) {\n    this.closeDto = { PlanOrderId: data.PlanOrderId, Remark: data.Remark };\n    this.isShowCloseInPlanRemarkModal = true;\n  }\n\n  /** 关闭关闭计划备注弹窗 */\n  closeCloseInPlanRemarkModal() {\n    this.closeDto = {};\n    this.isShowCloseInPlanRemarkModal = false;\n  }\n\n  /** 关闭接口返回 */\n  onCloseData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('关闭入库计划成功！');\n      this.closeCloseInPlanRemarkModal();\n      this.getDatas();\n    } else {\n      MsgHelper.ShowWarningModal(`关闭入库计划失败！${result.Message}`);\n    }\n  }\n\n  /** 删除计划 */\n  removeDatas(datas: RhBaseDto[]) {\n    const some = datas.some((f) => !this.isAsCreated(f));\n    if (some) {\n      MsgHelper.ShowWarningMessage('只能删除制单状态的数据！');\n    } else {\n      this.dataLoading = true;\n      this.operator.RemoveSaleReturnedInPlanOrders(datas).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('删除成功！');\n            this.getDatas();\n          } else {\n            MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    }\n  }\n  //#endregion 操作区域结束\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n\n\n\n}\n\n\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  >\n                  </rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              >\n              </rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>数据{{ editDto?.OpSign === 1 ? '新增' : '编辑' }}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button\n                    *ngIf=\"editVisible(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"isShowEditForm = true\"\n                  >\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button\n                    *ngIf=\"isCreated(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"submitDataToAudit(editDto)\"\n                  >\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                  <button *ngIf=\"auditVisible(editDto)\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else editDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template rhTemplate=\"SourceOrderId\" let-formgroup let-setting=\"setting\" let-formData=\"formData\">\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-sale-out-warehousing-source-order-selector\n                          [formControl]=\"formgroup.get('SourceOrderId')\"\n                          [rhFieldData]=\"setting\"\n                          [rhDisplayMode]=\"1\"\n                          [rhData]=\"formData\"\n                          [rhDefaultQueryDto]=\"curFactoryQueryDto\"\n                          (rhModelChange)=\"sourceOrderDatasetChange($event)\"\n                        >\n                        </rh-sale-out-warehousing-source-order-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n\n                  <ng-template\n                    rhTemplate=\"InWarehouseCode\"\n                    let-formGroup\n                    let-setting=\"setting\"\n                    let-hostConfig=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.placeholder }}</nz-form-label>\n                      <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                        <rh-business-warehouse-selector\n                          name=\"InWarehouseCode\"\n                          [formControl]=\"formGroup.get('InWarehouseCode')\"\n                          rhFormType=\"edit\"\n                          [rhFieldData]=\"businessManageSer.setWarehouseFieldSetting(setting, 'In')\"\n                          [rhSize]=\"hostConfig?.rhSize\"\n                          [rhData]=\"formData\"\n                          [rhDefaultQueryDto]=\"{ BusinessTypeCode: BusinessType }\"\n                        >\n                        </rh-business-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-sale-returned-in-plan-details\n                [rhPlanOrder]=\"editDto\"\n                [rhSourceDataset]=\"selectedSourceDataset\"\n                (rhDetailsUpdate)=\"getDetails()\"\n              >\n              </rh-sale-returned-in-plan-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <button\n                  *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\"\n                  nz-button\n                  nzType=\"primary\"\n                  nzSize=\"small\"\n                  type=\"button\"\n                  (click)=\"auditData(editDto)\"\n                >\n                  <i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n                </button>\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"editDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-sale-returned-in-plan-details [rhPlanOrder]=\"editDto\" [rhShowDetail]=\"true\"> </rh-sale-returned-in-plan-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #editDescription>\n  <rh-dynamic-description *ngIf=\"isRefreshDesc\" rhName=\"editDescription\" [rhValue]=\"editDto\"></rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'入库计划审核'\"\n  [nzVisible]=\"isShowAuditDataModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeAuditDataModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #auditDataForm\n    rhName=\"auditDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"auditDto\"\n    [rhBeforeSubmit]=\"beforeSubmitAudit\"\n    (rhInterfaceDataChange)=\"onAuditData($event)\"\n    (rhClose)=\"closeAuditDataModal()\"\n  >\n    <ng-template rhTemplate=\"IsPass\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-radio-group [formControl]=\"formgroup.get('IsPass')\" (ngModelChange)=\"businessManageSer.isPassChange($event, formgroup)\">\n            <label nz-radio [nzValue]=\"true\">是</label>\n            <label nz-radio [nzValue]=\"false\">否</label>\n          </nz-radio-group>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"AuditMessage\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"!formgroup.get('IsPass').value\"> {{ setting.displayName }}</nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <textarea\n            nz-input\n            [formControl]=\"formgroup.get('AuditMessage')\"\n            [placeholder]=\"setting.placeholder\"\n            [nzAutosize]=\"{ minRows: 2 }\"\n          ></textarea>\n          <div *ngIf=\"editDto?.AuditMessage\">\n            <span style=\"color: #faad14\">上一次审核信息：{{ editDto?.AuditMessage }}</span>\n          </div>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>\n\n<nz-modal\n  [nzTitle]=\"'关闭入库计划备注'\"\n  [nzVisible]=\"isShowCloseInPlanRemarkModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeCloseInPlanRemarkModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #closeDataForm\n    rhName=\"closeDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"closeDto\"\n    (rhInterfaceDataChange)=\"onCloseData($event)\"\n    (rhClose)=\"closeCloseInPlanRemarkModal()\"\n  ></rh-dynamic-form>\n</nz-modal>\n","import { WarehouseMaterialControlParameter } from './../../../business-manage-model';\nimport { RhBusinessManageService } from './../../../business-manage.service';\nimport { RhSaleBusinessService } from './../../sale-business.service';\nimport { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { DataResultT, OpMode, RhBaseDto, RhSafeAny, RhSelectableDto, RhTableButtonInfoDto } from 'rh-base/model';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport { Observable } from 'rxjs';\nimport { SaleOutTransactOrderDetails } from '../../sale-business-model';\nimport { SaleOutPlanOrderDetailFormInterface, SaleOutPlanOrderDetailTableFieldDataset, SaleOutSourceOrderDetailFormInterface, SaleOutSourceOrderDetailTableFieldDataset } from '../../detail-source-table-config';\nimport * as _ from 'lodash';\n\n@Component({\n  selector: 'rh-sale-out-handle-details',\n  templateUrl: './sale-out-handle-details.component.html',\n  styleUrls: ['./sale-out-handle-details.component.less']\n})\nexport class SaleOutHandleDetailsComponent implements OnInit {\n  @Input() rhOrder: RhBaseDto;\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter<RhSelectableDto[]>();\n\n  queryDto: RhBaseDto;\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto('deleteDetails', '删除', 'primary', true,'delete', true, null, (datas, buttonInfo) => this.removeDatas(datas as RhSelectableDto[], buttonInfo), false, true),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  isVisibleSettingOver = true;\n  tableVisibleSetting = {};\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  sourceDefaultQueryDto = {};\n  isEnterEditStatus = false;\n  // 计划明细\n  planOrderDetailFormInterface = SaleOutPlanOrderDetailFormInterface;\n  planOrderDetailTableFieldDataset = SaleOutPlanOrderDetailTableFieldDataset;\n  planOrderDetailDataset: RhSelectableDto[] = [];\n  // 源单明细\n  sourceOrderDetailFormInterface = SaleOutSourceOrderDetailFormInterface;\n  sourceOrderDetailTableFieldDataset = SaleOutSourceOrderDetailTableFieldDataset;\n  // 仓储数据\n  warehouseAreaDataset: RhSelectableDto[] = [];\n  warehouseShelfDataset: RhSelectableDto[] = [];\n  storageLocationDataset: RhSelectableDto[] = [];\n  // 仓库控制配置参数\n  currentWarehouseMaterialControlPara: WarehouseMaterialControlParameter;\n\n  editDisabled = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return !list.includes(data.OrderStatus);\n  };\n\n  // 配置参数\n  get isEnableOutPlan() {\n    return this.businessManageSer.IsEnableOutPlan;\n  }\n  // 显示控制\n  get sourceDataModalTitle() {\n    return this.isEnableOutPlan ? '选择计划明细数据' : '选择源单明细数据';\n  }\n  get isReadOnlyTable() {\n    return (\n      this.rhShowDetail || !this.rhOrder?.OrderId || this.isEnterEditStatus || this.editDisabled(this.rhOrder)\n    );\n  }\n  get readeOnlyButtonDataset() {\n    if (!this.rhOrder?.OrderId) return [];\n    else if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(\n    private operator: RhSaleBusinessService,\n    public businessManageSer: RhBusinessManageService\n  ) { }\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  async ngOnChanges(changes: SimpleChanges): Promise<void> {\n    const { rhOrder } = changes;\n    if (rhOrder && rhOrder.currentValue && this.rhOrder.OrderId) {\n      // 获取仓库控制配置参数\n      await this.getWarehouseMaterialControlParameter();\n      // 设置表格字段显隐性配置\n      this.isVisibleSettingOver = false;\n      this.initTableVisibleSetting();\n      setTimeout(() => this.isVisibleSettingOver = true);\n      // 获取明细数据\n      if (!rhOrder.previousValue) {\n        this.getDatas();\n      }\n      // 获取仓储数据\n      if (!this.rhShowDetail) {\n        this.getWarehouseInfos();\n      }\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.initOutWarehouseVisibleSetting(this.currentWarehouseMaterialControlPara));\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('Out'));\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      OrderId: this.rhOrder.OrderId,\n      SourceOrderId: this.rhOrder.SourceOrderId,\n      FactoryCode: this.rhOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetSaleOutTransactOrderDetailsDatasBy(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        this.rhDetailsUpdate.emit(this.dataresult?.Attach || []);\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`)\n        } else {\n          if (this.isEnableOutPlan) {\n            this.getPlanOrderDetails();\n          }\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (this.editDisabled(this.rhOrder)) {\n      MsgHelper.ShowWarningMessage('当前单据状态无法编辑出库办理明细！');\n      return;\n    }\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach(data => data.OpSign = OpMode.OpEdit);\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    return new Observable(observer => {\n      this.businessManageSer.checkStoreDatas(details, 'Out').then(checkRes => {\n        if (!checkRes) {\n          observer.error();\n        } else {\n          const dto = {\n            OrderMaster: this.rhOrder,\n            OrderDetails: details\n          };\n          const msg = editType === 'add' ? '新增' : '编辑';\n          this.dataLoading = true;\n          this.operator.StoreSaleOutTransactOrderDetails(dto).subscribe((result) => {\n            if (result.Success) {\n              MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`)\n            } else {\n              MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n            }\n            this.dataLoading = false;\n            observer.next();\n            observer.complete();\n          }, () => {\n            this.dataLoading = false;\n            observer.error();\n          })\n        }\n      });\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[], buttonInfo: RhTableButtonInfoDto) {\n    buttonInfo.loading = true;\n    this.operator.RemoveSaleOutTransactOrderDetails(details).subscribe((result) => {\n      if (result.Success) {\n        MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n        this.getDatas();\n      } else {\n        MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n      }\n      buttonInfo.loading = false;\n    }, () => buttonInfo.loading = false);\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  async handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    // 获取源单统计信息\n    const convertResult = await this.businessManageSer.convertSourceOrderStatisticsDatasToSelectedDatas(\n      this.rhOrder.SourceOrderId,\n      this.rhOrder.BusinessType,\n      details\n    );\n    const datas = details.map(data => {\n      const temp = SaleOutTransactOrderDetails.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 源单赋值\n      if (this.isEnableOutPlan) {\n        temp.PlanOrderId = this.rhOrder.PlanOrderId;\n        temp.SourcePlannedQty = data.SourcePlannedQty || 0;\n        temp.PlanTransactedQty = data.PlanTransactedQty || 0;\n        temp.SourceTransactedQty = data.SourceCompletedQty;\n      } else {\n        if (!convertResult) {\n          // temp.SourceOrderId = data.OrderCode;\n          temp.SourceOrderId = this.rhOrder.SourceOrderId;\n          temp.SourceOrderRowNum = data.OrderRowNum;\n          temp.SourceOrderQty = data.DeliveryQty;\n          temp.SourceTransactedQty = data.HadDeliveryQty;\n        }\n      }\n      // 单头赋值\n      temp.OrderId = this.rhOrder.OrderId;\n      temp.BusinessType = this.rhOrder.BusinessType;\n      temp.OutWarehouseCode = this.rhOrder.OutWarehouseCode;\n      temp.OutWarehouseName = this.rhOrder.OutWarehouseName;\n      temp.FactoryCode = this.rhOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach(data => data.OpSign = OpMode.OpEdit);\n      }\n      this.dataresult = { Attach: (this.dataresult?.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 启用计划，获取计划明细，用于初始化PlanTransactedQty */\n  getPlanOrderDetails() {\n    const queryDto = {\n      PlanOrderId: this.rhOrder.PlanOrderId,\n      SourceOrderId: this.rhOrder.SourceOrderId,\n      FactoryCode: this.rhOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetSaleOutPlanOrderDetailsDatasBy(queryDto).subscribe(result => {\n      if (result.Success) {\n        this.planOrderDetailDataset = result.Attach;\n        // 初始化办理明细的PlanTransactedQty\n        this.dataresult.Attach.forEach(data => {\n          const item = this.planOrderDetailDataset.find((ele) =>\n            ele.MaterialCode === data.MaterialCode &&\n            ele.SourceOrderId === data.SourceOrderId &&\n            ele.SourceOrderRowNum === data.SourceOrderRowNum);\n          if (item) {\n            data.PlanTransactedQty = item.PlanTransactedQty;\n          } else {\n            data.PlanTransactedQty = null;\n          }\n        });\n        this.dataresult = _.cloneDeep(this.dataresult);\n      } else {\n        this.planOrderDetailDataset = [];\n      }\n    });\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach(data => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach(data => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  openDataModal() {\n    if (this.isEnableOutPlan) {\n      this.sourceDefaultQueryDto = {\n        PlanOrderId: this.rhOrder.PlanOrderId,\n        FactoryCode: this.rhOrder.FactoryCode\n      };\n    } else {\n      this.sourceDefaultQueryDto = {\n        OrderCode: this.rhOrder.SourceOrderId ? `$${this.rhOrder.SourceOrderId}` : null,\n        FactoryCode: this.rhOrder.FactoryCode\n      };\n    }\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n\n  //#region 仓储相关区域开始\n  /** 根据是否启用，获取对应仓储信息 */\n  getWarehouseInfos() {\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseArea) {\n      this.businessManageSer.getWarehouseAreaDataset({ WarehouseCode: this.rhOrder.OutWarehouseCode }).then(res => {\n        this.warehouseAreaDataset = res || [];\n      }).catch(() => {\n        this.warehouseAreaDataset = [];\n      });\n    }\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseShelf) {\n      this.businessManageSer.getWarehouseShelfDataset({ WarehouseCode: this.rhOrder.OutWarehouseCode }).then(res => {\n        this.warehouseShelfDataset = res || [];\n      }).catch(() => {\n        this.warehouseShelfDataset = [];\n      });\n    }\n    if (this.currentWarehouseMaterialControlPara.IsEnableStorageLocation) {\n      this.businessManageSer.getStorageLocationDataset({ WarehouseCode: this.rhOrder.OutWarehouseCode }).then(res => {\n        this.storageLocationDataset = res || [];\n      }).catch(() => {\n        this.storageLocationDataset = [];\n      });\n    }\n  }\n\n  /** 获取仓库控制参数配置 */\n  async getWarehouseMaterialControlParameter() {\n    const para = await this.businessManageSer.getWarehouseMaterialControlParameter({\n      WarehouseCode: this.rhOrder.OutWarehouseCode\n    });\n    this.currentWarehouseMaterialControlPara = this.businessManageSer.transformWarehouseMaterialControlParameter(para);\n  }\n\n  outWarehouseAreaCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseAreaDataset.find(ele => ele.WarehouseAreaCode === code);\n      if (item) {\n        data.OutWarehouseAreaName = item.WarehouseAreaName;\n      } else {\n        data.OutWarehouseAreaName = null;\n      }\n    } else {\n      data.OutWarehouseAreaName = null;\n    }\n    // 强关联则清空下属字段\n    if (this.currentWarehouseMaterialControlPara.IsStrictCorrelation) {\n      data.OutWarehouseShelfCode = null;\n      data.OutWarehouseShelfName = null;\n      data.OutStorageLocationCode = null;\n      data.OutStorageLocationName = null;\n    }\n    // 获取库存数据\n    this.getMaterialSumerizeStockQtyBy(data);\n  }\n\n  outWarehouseShelfCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseShelfDataset.find(ele => ele.WarehouseShelfCode === code);\n      if (item) {\n        data.OutWarehouseShelfName = item.WarehouseShelfName;\n      } else {\n        data.OutWarehouseShelfName = null;\n      }\n    } else {\n      data.OutWarehouseShelfName = null;\n    }\n    // 强关联则清空下属字段\n    if (this.currentWarehouseMaterialControlPara.IsStrictCorrelation) {\n      data.OutStorageLocationCode = null;\n      data.OutStorageLocationName = null;\n    }\n    // 获取库存数据\n    this.getMaterialSumerizeStockQtyBy(data);\n  }\n\n  outStorageLocationCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.storageLocationDataset.find(ele => ele.StorageLocationCode === code);\n      if (item) {\n        data.OutStorageLocationName = item.StorageLocationName;\n      } else {\n        data.OutStorageLocationName = null;\n      }\n    } else {\n      data.OutStorageLocationName = null;\n    }\n    // 获取库存数据\n    this.getMaterialSumerizeStockQtyBy(data);\n  }\n\n  getMaterialSumerizeStockQtyBy(data: RhSelectableDto) {\n    this.businessManageSer.getMaterialSumerizeStockQtyBy(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      'Out'\n    );\n  }\n\n  /** 获取货架显示列表，行编辑应用 */\n  getWarehouseShelfDatasetDisplay(data: RhSelectableDto): RhSelectableDto[] {\n    return this.businessManageSer.getWarehouseShelfDatasetDisplay(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      this.warehouseShelfDataset,\n      'Out'\n    );\n  }\n\n  /** 获取库位显示列表，行编辑应用 */\n  getStorageLocationDatasetDisplay(data: RhSelectableDto): RhSelectableDto[] {\n    return this.businessManageSer.getStorageLocationDatasetDisplay(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      this.storageLocationDataset,\n      'Out'\n    );\n  }\n  //#endregion 仓储相关区域结束\n\n}\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isVisibleSettingOver\">\n    <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n      <rh-dynamic-table\n        rhName=\"handleDetailsReadOnlyTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n        <ng-template rhTemplate=\"OutWarehouseAreaCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseAreaTpl\">\n            <nz-select\n              [(ngModel)]=\"data.OutWarehouseAreaCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"outWarehouseAreaCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of warehouseAreaDataset\"\n                [nzLabel]=\"item.WarehouseAreaCode\"\n                [nzValue]=\"item.WarehouseAreaCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseAreaTpl>{{ data.OutWarehouseAreaCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"OutWarehouseAreaName\" let-item let-data=\"data\">\n          {{ data.OutWarehouseAreaName }}\n        </ng-template>\n        <ng-template rhTemplate=\"OutWarehouseShelfCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseShelfTpl\">\n            <nz-select\n              [(ngModel)]=\"data.OutWarehouseShelfCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"outWarehouseShelfCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of getWarehouseShelfDatasetDisplay(data)\"\n                [nzLabel]=\"item.WarehouseShelfCode\"\n                [nzValue]=\"item.WarehouseShelfCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseShelfTpl>{{ data.OutWarehouseShelfCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"OutWarehouseShelfName\" let-item let-data=\"data\">\n          {{ data.OutWarehouseShelfName }}\n        </ng-template>\n        <ng-template rhTemplate=\"OutStorageLocationCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else storageLocationTpl\">\n            <nz-select\n              [(ngModel)]=\"data.OutStorageLocationCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"outStorageLocationCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of getStorageLocationDatasetDisplay(data)\"\n                [nzLabel]=\"item.StorageLocationCode\"\n                [nzValue]=\"item.StorageLocationCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #storageLocationTpl>{{ data.OutStorageLocationCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"OutStorageLocationName\" let-item let-data=\"data\">\n          {{ data.OutStorageLocationName }}\n        </ng-template>\n        <ng-template rhTemplate=\"SN\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else SNTpl\">\n            <input\n              nz-input\n              [(ngModel)]=\"data.SN\"\n              [placeholder]=\"item?.displayName\"\n              [ngStyle]=\"{ border: !data.SN && currentWarehouseMaterialControlPara.IsEnableSN ? '1px solid red' : '1px solid #d9d9d9' }\"\n            />\n            <p style=\"color: red; margin-bottom: 0\" *ngIf=\"!data.SN && currentWarehouseMaterialControlPara.IsEnableSN\">请输入条码</p>\n          </ng-container>\n          <ng-template #SNTpl>{{ data.SN }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"ProductionDate\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else ProDateTpl\">\n            <nz-date-picker\n              nz-input\n              [(ngModel)]=\"data.ProductionDate\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              [ngStyle]=\"{\n                border:\n                  !data.ProductionDate && currentWarehouseMaterialControlPara.IsEnableExpirationDate ? '1px solid red' : '1px solid #d9d9d9'\n              }\"\n            ></nz-date-picker>\n            <p\n              style=\"color: red; margin-bottom: 0\"\n              *ngIf=\"!data.ProductionDate && currentWarehouseMaterialControlPara.IsEnableExpirationDate\"\n            >\n              请输入生产日期\n            </p>\n          </ng-container>\n          <ng-template #ProDateTpl>{{ data.ProductionDate | date : 'yyyy-MM-dd' }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"LotNum\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else LotNumTpl\">\n            <input\n              nz-input\n              [(ngModel)]=\"data.LotNum\"\n              [placeholder]=\"item?.displayName\"\n              [ngStyle]=\"{\n                border: !data.LotNum && currentWarehouseMaterialControlPara.IsEnableLotNum ? '1px solid red' : '1px solid #d9d9d9'\n              }\"\n            />\n            <p style=\"color: red; margin-bottom: 0\" *ngIf=\"!data.LotNum && currentWarehouseMaterialControlPara.IsEnableLotNum\">\n              请输入批次号\n            </p>\n          </ng-container>\n          <ng-template #LotNumTpl>{{ data.LotNum }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"AvailableQty\" let-item let-data=\"data\">\n          {{ data.AvailableQty }}\n        </ng-template>\n      </rh-dynamic-table>\n    </ng-container>\n    <ng-template #handleTpl>\n      <rh-dynamic-table\n        rhName=\"handleDetailsTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n      </rh-dynamic-table>\n    </ng-template>\n  </ng-container>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"sourceDataModalTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div *ngIf=\"isShowDataModal\">\n      <rh-dynamic-single-table\n        *ngIf=\"isEnableOutPlan; else sourceDetailsTpl\"\n        rhName=\"planOrderDetailTable\"\n        [rhInterfaceInfo]=\"planOrderDetailFormInterface\"\n        [rhDefaultFieldDataset]=\"planOrderDetailTableFieldDataset\"\n        [rhPara]=\"sourceDefaultQueryDto\"\n        (rhSelectedDatasChange)=\"onSelectModal($event)\"\n      ></rh-dynamic-single-table>\n      <ng-template #sourceDetailsTpl>\n        <rh-dynamic-single-table\n          rhName=\"sourceOrderDetailTable\"\n          [rhInterfaceInfo]=\"sourceOrderDetailFormInterface\"\n          [rhDefaultFieldDataset]=\"sourceOrderDetailTableFieldDataset\"\n          [rhPara]=\"sourceDefaultQueryDto\"\n          (rhSelectedDatasChange)=\"onSelectModal($event)\"\n        ></rh-dynamic-single-table>\n      </ng-template>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { CustomizeBaseTableComponent, DynamicFormComponent } from 'rh-base/shared';\nimport { RhDynamicInterfaceDto, RhSelectableDto, RhTableQueryOptionDto, CodeClassModel, RhDynamicTableFieldDto } from 'rh-base/model';\n\n@Component({\n  selector: 'rh-sale-out-warehousing-plan-table',\n  templateUrl: './sale-out-warehousing-plan-table.component.html',\n  styleUrls: ['./sale-out-warehousing-plan-table.component.less']\n})\nexport class SaleOutWarehousingPlanTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n\n  @Input() rhSingleMode = true;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() rhDisabled: boolean;\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto>();\n\n  rhName = 'SaleOutWarehousingPlanOrderSelector';\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n  defaultInterfaceInfo: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'SalePlanBusinessApi',\n    interfaceName: 'GetSaleOutPlanOrderDatas'\n  };\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [\n    { name: 'PlanOrderId', displayName: '计划单号', placeholder: '计划单号', editable: true, visible: true },\n    {\n      name: 'OrderStatus',\n      displayName: '单据状态',\n      placeholder: '单据状态',\n      editable: false,\n      defaultValue: 'WaitOutWarehouse',\n      visible: false\n    }\n  ];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [\n    { name: 'PlanOrderId', displayName: '计划单号', width: 150 },\n    { name: 'SourceOrderId', displayName: '销售单号', width: 150 },\n    { name: 'OutWarehouseCode', displayName: '发出仓库代码', width: 150 },\n    { name: 'OutWarehouseName', displayName: '发出仓库名称', width: 150 },\n    { name: 'CustomerCode', displayName: '客户代码', width: 120 },\n    { name: 'CustomerName', displayName: '客户名称', width: 120 },\n    { name: 'Carrier', displayName: '载运商', width: 120 },\n    { name: 'ReceivingAddress', displayName: '收货地址', width: 150, rhEllipsis: true },\n    { name: 'Remark', displayName: '备注', width: 120, rhEllipsis: true }\n  ];\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  constructor() {\n    //\n    super();\n  }\n\n  ngOnInit(): void {\n    this.rhInterfaceInfo = this.rhInterfaceInfo || this.defaultInterfaceInfo;\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n}\n","<!-- 搜索Form区域 -->\r\n<div class=\"search-area rh-full\">\r\n  <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\r\n    <ng-template #searchTpl>\r\n      <rh-dynamic-form\r\n        #queryForm\r\n        rhName=\"{{ rhName }}Form\"\r\n        [rhValue]=\"rhDefaultQueryDto\"\r\n        (rhInterfaceDataChange)=\"setDatas($event)\"\r\n        (rhDataloadingChange)=\"dataLoadingChange($event)\"\r\n        (rhOutParaChange)=\"setInitFieldDataset($event)\"\r\n        [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\r\n        [(rhFormInterface)]=\"rhInterfaceInfo\"\r\n      ></rh-dynamic-form>\r\n    </ng-template>\r\n  </nz-alert>\r\n</div>\r\n<!-- 搜索结果Table展示区域 -->\r\n<div class=\"table-area\">\r\n  <rh-dynamic-table\r\n    rhName=\"{{ rhName }}Table\"\r\n    [rhTableData]=\"dataresult\"\r\n    [rhTableDataloading]=\"dataLoading\"\r\n    [rhDefaultFieldDataset]=\"defaultTableFieldDataset\"\r\n    (rhRefresh)=\"refreshDatas($event)\"\r\n    (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\"\r\n    [rhSingleMode]=\"rhSingleMode\"\r\n  ></rh-dynamic-table>\r\n</div>\r\n","import { Component, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, SimpleChanges } from '@angular/core';\nimport { NzSizeLDSType } from 'ng-zorro-antd/core/types';\nimport { provideValueAccessor, RhRouteHelper } from 'rh-base/core';\nimport {\n  RhSelectableDto,\n  RhDynamicFormFieldDto,\n  RhSafeAny,\n  RhDynamicInterfaceDto,\n  RhDynamicCustomizeControlConfigDto,\n  RhRelatedFieldDataDto,\n  RhCustomizeEventSettingDto,\n  RhDisplayMode\n} from 'rh-base/model';\nimport { CustomizeBaseControlComponent, RhBaseDynamicService } from 'rh-base/shared';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { SaleOutWarehousingPlanTableComponent } from './sale-out-warehousing-plan-table/sale-out-warehousing-plan-table.component';\n\n@Component({\n  selector: 'rh-sale-out-warehousing-plan-selector',\n  templateUrl: './sale-out-warehousing-plan-selector.component.html',\n  styleUrls: ['./sale-out-warehousing-plan-selector.component.less'],\n  providers: [provideValueAccessor(SaleOutWarehousingPlanSelectorComponent)]\n})\nexport class SaleOutWarehousingPlanSelectorComponent extends CustomizeBaseControlComponent {\n  rhRelatedFieldData = null;\n  @ViewChild(SaleOutWarehousingPlanTableComponent) tableComp: SaleOutWarehousingPlanTableComponent;\n  @Input() rhDynamicKey = 'SaleOutWarehousingPlanOrder';\n  @Input() rhTitle = '选择销售出库计划';\n  @Input() declare rhSize: NzSizeLDSType;\n  @Input() declare rhDisplayMode: RhDisplayMode;\n\n  @Input() rhProductCode: string;\n\n  iconSetting = 'search';\n  @Input() rhSingleMode = true;\n\n  formKeyFieldName = 'PlanOrderId';\n  formTextFieldName = 'PlanOrderId';\n\n  modelKeyFieldName = 'PlanOrderId';\n  modelTextFieldName = 'PlanOrderId';\n\n  // // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto>();\n  /** 对应table选中的数据 */\n  rhModel: RhSelectableDto = {};\n\n  /** 动态form字段配置数据 */\n  @Input() rhFieldData: RhDynamicFormFieldDto;\n  /** 整个form的数据 */\n  @Input() declare rhData: RhSafeAny;\n\n  /** 表格Loading */\n  // dataLoading = false;\n  // dataresult: DataResultT<RhSelectableDto[]>;\n\n  /** selector input上展示的数据，一般为中文 */\n  //displayName: string;\n\n  //selectedData: RhSelectableDto[];\n\n  /** 自定义组件的自定义执行函数 */\n  cb: (data: RhSafeAny, ctx: RhSafeAny) => void;\n\n  /** 该组件关联的form名称 */\n  formName: string;\n\n  url: string;\n\n  /** 设置默认搜索接口 */\n  defaultFormInterface: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'SalePlanBusinessApi',\n    interfaceName: 'GetSaleOutPlanOrderDatas'\n  };\n\n  mappedList = [\n    { sourceName: this.modelKeyFieldName, mappedName: this.formKeyFieldName },\n    { sourceName: this.modelTextFieldName, mappedName: this.formTextFieldName },\n    { sourceName: 'SourceOrderId', mappedName: 'SourceOrderId' },\n    // { sourceName: 'SourceOrderRowNum', mappedName: 'SourceOrderRowNum' },\n    { sourceName: 'CustomerCode', mappedName: 'CustomerCode' },\n    { sourceName: 'CustomerName', mappedName: 'CustomerName' },\n    { sourceName: 'Carrier', mappedName: 'Carrier' },\n    { sourceName: 'ReceivingAddress', mappedName: 'ReceivingAddress' },\n    { sourceName: 'OutWarehouseCode', mappedName: 'OutWarehouseCode' },\n    { sourceName: 'OutWarehouseName', mappedName: 'OutWarehouseName' }\n  ];\n\n  constructor(\n    public fb: UntypedFormBuilder,\n    public cdr: ChangeDetectorRef,\n    public router: Router,\n    public dynamicSer: RhBaseDynamicService\n  ) {\n    super(cdr, dynamicSer);\n    this.url = RhRouteHelper.getRealRoute(this.router.url);\n  }\n\n  ngOnInit(): void {\n    this.rhPlaceholder = this.rhFieldData.placeholder as any;\n    this.formName = this.rhFieldData.relatedComponentName;\n    this.setCbValue();\n  }\n\n  // 自定义表单项配置\n  ngOnChanges(changes: SimpleChanges) {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue && rhData.currentValue[this.formKeyFieldName] === null) {\n      this.resetControlValue();\n    } else {\n      this.rhModel = {};\n    }\n  }\n\n  // dataLoadingChange(status: boolean) {\n  //   this.dataLoading = status;\n  // }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    // if (data?.length === 1 && this.rhSingleMode) {\n    //   this.selectedData = data[0];\n    // } else {\n    //   this.selectedData = data;\n    // }\n    this.selectedData = data || [];\n  }\n\n  // setDatas(result: DataResultT<RhSelectableDto[]>) {\n  //   if (result && result.Success) {\n  //     this.dataresult = result;\n  //   } else {\n  //     MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n  //   }\n  // }\n\n  /** 根据填入的code值，获取对应的完整数据，回填到输入框 */\n  getTargetDatas(code: string) {\n    // 显示代码 不需要\n    // if (!this.defaultFormInterface) {\n    //   return;\n    // }\n    // const queryDto = {};\n    // queryDto[this.modelKeyFieldName] = `$${code}`;\n    // this.getTargetDatasVisHttpHandler(this.defaultFormInterface, queryDto, this.rhFieldData);\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n  }\n\n  //#region customize selector interface区域\n  confirmSelect() {\n    this.rhModel = this.selectedData[0];\n    this.rhModelChange.emit(this.selectedData);\n    // if (this.rhSingleMode) {\n    //   this.value = this.rhModel[this.modelKeyFieldName];\n    //   this.displayName = this.rhModel[this.modelTextFieldName];\n    //   this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // } else {\n    //   this.value = (this.rhModel as RhSafeAny[]).map((ele) => ele[this.modelKeyFieldName]) as RhSafeAny;\n    //   // 多选的时候只会显示多个代码\n    //   this.displayName = (this.value as RhSafeAny).toString();\n    // }\n    this.value = this.rhModel[this.modelKeyFieldName];\n    this.displayName = this.rhModel[this.modelTextFieldName];\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // 执行对应控件定义的代码\n    if (this.rhData && this.rhModel && this.cb) {\n      this.cb(this.rhData, this.rhModel);\n    }\n    this.setFormDataViaRelatedDatas();\n    // 执行form的相关字段赋值操作\n    this.triggerRelatedForm();\n    this.closeDataModal();\n  }\n\n  resetControlValue() {\n    this.displayName = null;\n    // 重置form对应数据对象\n    this.rhData[this.formKeyFieldName] = null;\n    this.rhData[this.formTextFieldName] = null;\n    // 清空数据中的字段的值\n    this.mappedList.forEach((ele) => {\n      this.rhData[ele.mappedName] = null;\n    });\n    this.rhModel = null;\n  }\n\n  setCbValue() {\n    const cbString = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.cb;\n    if (cbString) {\n      const fn = Function(`return ${cbString}`);\n      if (fn) {\n        this.cb = fn();\n      } else {\n        this.cb = this.setFormData;\n      }\n    } else {\n      // 当没有配置回调函数时，执行默认的回调函数\n      this.cb = this.setFormData;\n    }\n  }\n\n  /** 设置form对应的数据对象的值\n   * @param data form对应的数据对象\n   * @params 设置或者对应table选择的数据\n   */\n  setFormData(data: RhSafeAny, ctx: RhSelectableDto) {\n    data[this.formKeyFieldName] = ctx[this.modelKeyFieldName];\n    data[this.formTextFieldName] = ctx[this.modelTextFieldName];\n  }\n\n  setFormDataViaRelatedDatas() {\n    let relatedDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedModelDatas;\n    if (!relatedDatas?.length) {\n      relatedDatas = this.mappedList;\n    }\n    if (relatedDatas?.length) {\n      relatedDatas.forEach((ele) => {\n        this.rhData[ele.mappedName] = this.rhModel[ele.sourceName];\n      });\n    }\n  }\n\n  triggerRelatedForm() {\n    const tempDatas = (this.rhFieldData.config as RhDynamicCustomizeControlConfigDto)?.relatedFieldDatas;\n    const relatedDatas: RhRelatedFieldDataDto[] = tempDatas && tempDatas.length ? tempDatas : this.mappedList;\n    const data: RhCustomizeEventSettingDto = {\n      id: `${this.url}_${this.formName}`,\n      eventType: null,\n      options: null,\n      value: this.rhModel,\n      relatedFieldDatas: relatedDatas\n    };\n    this.dynamicSer.formCustomizeEventTrigger(data);\n  }\n  //#endregion customize selector interface区域结束\n}\n","<nz-input-group [nzSize]=\"rhSize\" [nzSuffix]=\"suffixIconSearch\" [nzAddOnAfter]=\"addOnAfter\">\r\n  <input type=\"text\" nz-input [ngModel]=\"displayName\" [placeholder]=\"rhPlaceholder\" readonly=\"readonly\" />\r\n</nz-input-group>\r\n<ng-template #suffixIconSearch>\r\n  <a *ngIf=\"displayName && !rhDisabled\" class=\"link-suffix\" (click)=\"clearInputInfo()\">\r\n    <i nz-icon nzType=\"close-circle\"></i>\r\n  </a>\r\n</ng-template>\r\n\r\n<ng-template #addOnAfter>\r\n  <button nz-button nzType=\"link\" type=\"button\" nzSize=\"small\">\r\n    <a (click)=\"openDataModal($event)\">\r\n      <i nz-icon [nzType]=\"iconSetting\"></i>\r\n    </a>\r\n  </button>\r\n</ng-template>\r\n\r\n<nz-modal\r\n  [nzVisible]=\"isShowDataModal\"\r\n  [nzTitle]=\"rhTitle\"\r\n  nzMaskClosable=\"false\"\r\n  [nzOkText]=\"null\"\r\n  [nzCancelText]=\"null\"\r\n  (nzOnCancel)=\"closeDataModal()\"\r\n  [nzWidth]=\"900\"\r\n>\r\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\r\n    <ng-template #cardTitleTpl>\r\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedData\">\r\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\r\n        确定选择\r\n      </button>\r\n    </ng-template>\r\n    <ng-template #cardExtraTpl>\r\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\r\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\r\n        关闭\r\n      </button>\r\n    </ng-template>\r\n    <div>\r\n      <rh-sale-out-warehousing-plan-table\r\n        [rhModel]=\"rhModel\"\r\n        (rhModelChange)=\"onSelectModal($event)\"\r\n        [rhInterfaceInfo]=\"defaultFormInterface\"\r\n        [rhSingleMode]=\"rhSingleMode\"\r\n        [rhDefaultQueryDto]=\"rhDefaultQueryDto\"\r\n      ></rh-sale-out-warehousing-plan-table>\r\n    </div>\r\n  </nz-card>\r\n</nz-modal>\r\n","import { RhSharedManageService } from './../../../shared-manage/shared-manage.service';\nimport { RhBusinessManageService } from './../../business-manage.service';\nimport { RhSaleBusinessService } from './../sale-business.service';\nimport { BusinessType } from './../../business-type';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { CodeClassModel, DataResultT, OpMode, OpResult, RhBaseDto, RhDynamicTableFieldDto, RhLoginedUserDto, RhSafeAny, RhSelectableDto, RhTableButtonInfoDto, RhTableQueryOptionDto } from 'rh-base/model';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\n\ntype TabType = 'edit' | 'detail' | 'audit';\n\n@Component({\n  selector: 'rh-sale-out-handle',\n  templateUrl: './sale-out-handle.component.html',\n  styleUrls: ['./sale-out-handle.component.less']\n})\nexport class RhSaleOutHandleComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  BusinessType = BusinessType.SaleOut;\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n  /** 显示配置 */\n  visibleSetting = {};\n  /** 单据明细数据，审核需要 */\n  orderDetails: RhSelectableDto[] = [];\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  isAsCreated = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n\n  get isEnableOutPlan() {\n    return this.businessManageSer.IsEnableOutPlan;\n  }\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto)),\n    new RhTableButtonInfoDto('submit', '提交审核', 'default', false, 'form', false, null, (data) => this.submitDataToAudit(data as RhBaseDto)),\n    new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) =>\n      this.openDetailTab({ data } as RhBaseDto, 'audit')\n    )\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '出库办理', 'primary', false, 'file', false, null, () => {\n      this.businessManageSer.controlTransactOperation(() => this.openEditTab(), this.titleButtonDataset, 0)\n    }, true, true)\n  ];\n\n  beforeSubmit = async (data: RhBaseDto, context: DynamicFormComponent) => {\n    let result: OpResult = null;\n    const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n    context.submitLoading = true;\n    try {\n      // 出库需要判断锁库情况\n      const isEnable = await this.businessManageSer.controlSubmitFormOperation([data]);\n      if (!isEnable) {\n        context.submitLoading = false;\n        return false;\n      }\n      //\n      if (this.editDto.OpSign === OpMode.OpAdd) {\n        // 基本信息\n        data.BusinessType = this.BusinessType;\n        data.OrderCreatorCode = this.currentUser.DisplayName;\n        data.OrderCreatorName = this.currentUser.UserName;\n        data.SaleOrderCode = data.SourceOrderId;\n\n        result = await this.operator.CreateSaleOutTransactMasterOrder(data).toPromise();\n      } else {\n        result = await this.operator.UpdateSaleOutTransactMasterOrder(data).toPromise();\n      }\n      if (result && result.Success) {\n        MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n        this.editDto.OrderId = result?.Attach?.OrderId;\n        this.isShowEditForm = false;\n        this.getEditData();\n      } else {\n        MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n      }\n    } catch (error) {\n      //\n    } finally {\n      context.submitLoading = false;\n    }\n\n    return false;\n  };\n\n  beforeSubmitAudit = (data: RhBaseDto) => {\n    if (!data.IsPass && !data.AuditMessage) {\n      MsgHelper.ShowWarningMessage('审核不通过，必须填写审核信息！');\n      return;\n    }\n    // 基本信息\n    data.OrderMaster = this.editDto;\n    data.OrderDetails = this.orderDetails;\n    data.Auditor = this.currentUser.DisplayName;\n    data.AuditorId = this.currentUser.UserName;\n\n    return true;\n  };\n\n  constructor(\n    private operator: RhSaleBusinessService,\n    public businessManageSer: RhBusinessManageService,\n    public storage: RhStorageService,\n    public sharedManageSer: RhSharedManageService\n  ) { }\n\n  ngOnInit(): void {\n    this.setUserInfo();\n    this.initEditButtonVisible();\n    this.initVisibleSetting();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  initEditButtonVisible() {\n    this.editButtonDataset[0].visible = this.editVisible.toString();\n    this.editButtonDataset[1].visible = this.isCreated.toString();\n    this.editButtonDataset[2].visible = this.auditVisible.toString();\n  }\n\n  initVisibleSetting() {\n    Object.assign(this.visibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('Out'));\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {\n        TransactorCode: this.currentUser.UserName,\n        TransactorName: this.currentUser.DisplayName,\n        FactoryCode: this.currentUser.FactoryCode\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.editDto = null;\n    this.selectedIndex = 0;\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.selectedIndex = 1;\n  }\n\n  // 明细变化后\n  getDetails(details: RhSelectableDto[]) {\n    this.orderDetails = details;\n  }\n\n  getEditData() {\n    const queryDto = { OrderId: this.editDto.OrderId };\n    this.operator.GetSaleOutTransactOrderDatas(queryDto).subscribe((result) => {\n      if (result.Success && result.Attach.length === 1) {\n        this.editDto = result.Attach[0];\n        this.editDto.OpSign = OpMode.OpEdit;\n      }\n    });\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    } else if (index === 1) {\n      this.orderDetails = [];\n    }\n  }\n\n  //#region 操作区域开始\n  /** 提交审核 */\n  submitDataToAudit(data: RhBaseDto) {\n    if (this.isCreated(data)) {\n      const dto = { OrderId: data.OrderId };\n      this.dataLoading = true;\n      this.operator.SumbitAuditSaleOutTransactOrder(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('提交审核成功！');\n            if (this.selectedIndex === 0) this.getDatas();\n            this.closeEditTab();\n          } else {\n            MsgHelper.ShowWarningMessage(`提交审核失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行提交审核！');\n    }\n  }\n\n  /** 审核 */\n  auditData(data: RhBaseDto) {\n    if (this.auditVisible(data)) {\n      this.openAuditDataModal(data);\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行审核！');\n    }\n  }\n\n  /** 打开审核弹窗 */\n  openAuditDataModal(data: RhBaseDto) {\n    this.auditDto = { OrderId: data.OrderId };\n    this.isShowAuditDataModal = true;\n  }\n\n  /** 关闭审核弹窗 */\n  closeAuditDataModal() {\n    this.auditDto = {};\n    this.isShowAuditDataModal = false;\n  }\n\n  /** 审核接口返回 */\n  onAuditData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('审核出库办理单据成功！');\n      this.closeAuditDataModal();\n      this.getEditData();\n    } else {\n      MsgHelper.ShowWarningModal(`审核出库办理单据失败！${result.Message}`);\n    }\n  }\n\n  /** 删除办理单据 */\n  removeDatas(datas: RhBaseDto[]) {\n    const some = datas.some((f) => !this.isAsCreated(f));\n    if (some) {\n      MsgHelper.ShowWarningMessage('只能删除制单状态的数据！');\n    } else {\n      this.dataLoading = true;\n      this.operator.RemoveSaleOutTransactOrders(datas as RhSafeAny).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('删除成功！');\n            this.getDatas();\n          } else {\n            MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    }\n  }\n  //#endregion 操作区域结束\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  ></rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                [rhVisibleSetting]=\"visibleSetting\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              ></rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>销售出库办理</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"出库单单头\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button\n                    *ngIf=\"editVisible(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"isShowEditForm = true\"\n                  >\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button\n                    *ngIf=\"isCreated(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"submitDataToAudit(editDto)\"\n                  >\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                  <button *ngIf=\"auditVisible(editDto)\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else detailsDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  [rhVisibleSetting]=\"visibleSetting\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template\n                    rhTemplate=\"OutWarehouseCode\"\n                    let-formgroup\n                    let-setting=\"setting\"\n                    let-hostSetting=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-warehouse-selector\n                          rhInventoryControlSpecialType=\"Warehouse\"\n                          [formControl]=\"formgroup.get('OutWarehouseCode')\"\n                          [rhData]=\"formData\"\n                          [rhFieldData]=\"setting\"\n                          [rhSize]=\"hostSetting?.rhSize\"\n                        >\n                        </rh-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                  <ng-template rhTemplate=\"PlanOrderId\" let-formgroup let-setting=\"setting\" let-formData=\"formData\">\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-sale-out-warehousing-plan-selector\n                          [formControl]=\"formgroup.get('PlanOrderId')\"\n                          [rhFieldData]=\"setting\"\n                          [rhDisplayMode]=\"1\"\n                          [rhData]=\"formData\"\n                        ></rh-sale-out-warehousing-plan-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                  <ng-template\n                    rhTemplate=\"SourceOrderId\"\n                    let-formgroup\n                    let-setting=\"setting\"\n                    let-hostSetting=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-sale-out-warehousing-source-order-selector\n                          *ngIf=\"!isEnableOutPlan; else planSourceTpl\"\n                          [formControl]=\"formgroup.get('SourceOrderId')\"\n                          [rhFieldData]=\"setting\"\n                          [rhDisplayMode]=\"1\"\n                          [rhData]=\"formData\"\n                          [rhDefaultQueryDto]=\"curFactoryQueryDto\"\n                          [rhSingleMode]=\"true\"\n                        >\n                        </rh-sale-out-warehousing-source-order-selector>\n                        <ng-template #planSourceTpl>\n                          <rh-form-field\n                            [formControl]=\"formgroup.get('SourceOrderId')\"\n                            rhFormType=\"edit\"\n                            [rhFieldData]=\"setting\"\n                            [rhSize]=\"hostSetting?.rhSize\"\n                            [rhData]=\"formData\"\n                          ></rh-form-field>\n                        </ng-template>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"出库单单体\">\n              <rh-sale-out-handle-details [rhOrder]=\"editDto\" (rhDetailsUpdate)=\"getDetails($event)\"> </rh-sale-out-handle-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"出库单单头\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <button\n                  *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\"\n                  nz-button\n                  nzType=\"primary\"\n                  nzSize=\"small\"\n                  type=\"button\"\n                  (click)=\"auditData(editDto)\"\n                >\n                  <i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n                </button>\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"detailsDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"出库单单体\">\n              <rh-sale-out-handle-details [rhOrder]=\"editDto\" [rhShowDetail]=\"true\" (rhDetailsUpdate)=\"getDetails($event)\">\n              </rh-sale-out-handle-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #detailsDescription>\n  <rh-dynamic-description\n    *ngIf=\"isRefreshDesc\"\n    rhName=\"detailsDescription\"\n    [rhValue]=\"editDto\"\n    [rhVisibleSetting]=\"visibleSetting\"\n  ></rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'出库办理审核'\"\n  [nzVisible]=\"isShowAuditDataModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeAuditDataModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #auditDataForm\n    rhName=\"auditDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"auditDto\"\n    [rhBeforeSubmit]=\"beforeSubmitAudit\"\n    (rhInterfaceDataChange)=\"onAuditData($event)\"\n    (rhClose)=\"closeAuditDataModal()\"\n  >\n    <ng-template rhTemplate=\"IsPass\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-radio-group [formControl]=\"formgroup.get('IsPass')\" (ngModelChange)=\"businessManageSer.isPassChange($event, formgroup)\">\n            <label nz-radio [nzValue]=\"true\">是</label>\n            <label nz-radio [nzValue]=\"false\">否</label>\n          </nz-radio-group>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"AuditMessage\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"!formgroup.get('IsPass').value\"> {{ setting.displayName }}</nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <textarea\n            nz-input\n            [formControl]=\"formgroup.get('AuditMessage')\"\n            [placeholder]=\"setting.placeholder\"\n            [nzAutosize]=\"{ minRows: 2 }\"\n          ></textarea>\n          <div *ngIf=\"editDto?.AuditMessage\">\n            <span style=\"color: #faad14\">上一次审核信息：{{ editDto?.AuditMessage }}</span>\n          </div>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>\n","import { BusinessType } from './../../../business-type';\nimport { WarehouseMaterialControlParameter } from './../../../business-manage-model';\nimport { RhBusinessManageService } from './../../../business-manage.service';\nimport { RhSaleBusinessService } from './../../sale-business.service';\nimport { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { DataResultT, OpMode, RhBaseDto, RhSafeAny, RhSelectableDto, RhTableButtonInfoDto } from 'rh-base/model';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport { Observable } from 'rxjs';\nimport { SaleOutSourceOrderDetailFormInterface, SaleOutSourceOrderDetailTableFieldDataset, SaleReturnedInPlanOrderDetailFormInterface, SaleReturnedInPlanOrderDetailTableFieldDataset } from '../../detail-source-table-config';\nimport { SaleReturnedTransactOrderDetails } from '../../sale-business-model';\nimport * as _ from 'lodash';\n\n@Component({\n  selector: 'rh-sale-returned-in-handle-details',\n  templateUrl: './sale-returned-in-handle-details.component.html',\n  styleUrls: ['./sale-returned-in-handle-details.component.less']\n})\nexport class SaleReturnedInHandleDetailsComponent implements OnInit {\n  @Input() rhOrder: RhBaseDto;\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter<RhSelectableDto[]>();\n\n  queryDto: RhBaseDto;\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto('deleteDetails', '删除', 'primary', true,'delete', true, null, (datas, buttonInfo) => this.removeDatas(datas as RhSelectableDto[], buttonInfo), false, true),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  isVisibleSettingOver = true;\n  tableVisibleSetting = {};\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  sourceDefaultQueryDto = {};\n  isEnterEditStatus = false;\n  // 计划明细\n  planOrderDetailFormInterface = SaleReturnedInPlanOrderDetailFormInterface;\n  planOrderDetailTableFieldDataset = SaleReturnedInPlanOrderDetailTableFieldDataset;\n  planOrderDetailDataset: RhSelectableDto[] = [];\n  // 源单明细\n  sourceOrderDetailFormInterface = SaleOutSourceOrderDetailFormInterface;\n  sourceOrderDetailTableFieldDataset = SaleOutSourceOrderDetailTableFieldDataset;\n  // 仓储数据\n  warehouseAreaDataset: RhSelectableDto[] = [];\n  warehouseShelfDataset: RhSelectableDto[] = [];\n  storageLocationDataset: RhSelectableDto[] = [];\n  // 仓库控制配置参数\n  currentWarehouseMaterialControlPara: WarehouseMaterialControlParameter;\n\n  editDisabled = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return !list.includes(data.OrderStatus);\n  };\n\n  // 配置参数\n  get isEnableInPlan() {\n    return this.businessManageSer.IsEnableInPlan;\n  }\n  // 显示控制\n  get sourceDataModalTitle() {\n    return this.isEnableInPlan ? '选择计划明细数据' : '选择源单明细数据';\n  }\n  get isReadOnlyTable() {\n    return (\n      this.rhShowDetail || !this.rhOrder?.OrderId || this.isEnterEditStatus || this.editDisabled(this.rhOrder)\n    );\n  }\n  get readeOnlyButtonDataset() {\n    if (!this.rhOrder?.OrderId) return [];\n    else if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(\n    private operator: RhSaleBusinessService,\n    public businessManageSer: RhBusinessManageService\n  ) { }\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  async ngOnChanges(changes: SimpleChanges): Promise<void> {\n    const { rhOrder } = changes;\n    if (rhOrder && rhOrder.currentValue && this.rhOrder.OrderId) {\n      // 获取仓库控制配置参数\n      await this.getWarehouseMaterialControlParameter();\n      // 设置表格字段显隐性配置\n      this.isVisibleSettingOver = false;\n      this.initTableVisibleSetting();\n      setTimeout(() => this.isVisibleSettingOver = true);\n      // 获取明细数据\n      if (!rhOrder.previousValue) {\n        this.getDatas();\n      }\n      // 获取仓储数据\n      if (!this.rhShowDetail) {\n        this.getWarehouseInfos();\n      }\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.initInWarehouseVisibleSetting(this.currentWarehouseMaterialControlPara));\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('In'));\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      OrderId: this.rhOrder.OrderId,\n      SourceOrderId: this.rhOrder.SourceOrderId,\n      FactoryCode: this.rhOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetSaleReturnedTransactOrderDetailsDatasBy(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        this.rhDetailsUpdate.emit(this.dataresult?.Attach || []);\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`)\n        } else {\n          if (this.isEnableInPlan) {\n            this.getPlanOrderDetails();\n          }\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (this.editDisabled(this.rhOrder)) {\n      MsgHelper.ShowWarningMessage('当前单据状态无法编辑出库办理明细！');\n      return;\n    }\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach(data => data.OpSign = OpMode.OpEdit);\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    return new Observable(observer => {\n      this.businessManageSer.checkStoreDatas(details, 'In', true).then(checkRes => {\n        if (!checkRes) {\n          observer.error();\n        } else {\n          const dto = {\n            OrderMaster: this.rhOrder,\n            OrderDetails: details\n          };\n          const msg = editType === 'add' ? '新增' : '编辑';\n          this.dataLoading = true;\n          this.operator.StoreSaleReturnedTransactOrderDetails(dto).subscribe((result) => {\n            if (result.Success) {\n              MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`)\n            } else {\n              MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n            }\n            this.dataLoading = false;\n            observer.next();\n            observer.complete();\n          }, () => {\n            this.dataLoading = false;\n            observer.error();\n          })\n        }\n      });\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[], buttonInfo: RhTableButtonInfoDto) {\n    buttonInfo.loading = true;\n    this.operator.RemoveSaleReturnedTransactOrderDetails(details).subscribe((result) => {\n      if (result.Success) {\n        MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n        this.getDatas();\n      } else {\n        MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n      }\n      buttonInfo.loading = false;\n    }, () => buttonInfo.loading = false);\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  async handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    // 获取源单统计信息\n    const convertResult = await this.businessManageSer.convertSourceOrderStatisticsDatasToSelectedDatas(\n      this.rhOrder.SourceOrderId,\n      // this.rhOrder.BusinessType,\n      BusinessType.SaleOut,\n      details\n    );\n    // 退料一定有源单！\n    if (!convertResult) {\n      return MsgHelper.ShowWarningMessage('找不到对应源单的统计数据！');\n    }\n    const datas = details.map(data => {\n      const temp = SaleReturnedTransactOrderDetails.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 源单赋值\n      if (this.isEnableInPlan) {\n        temp.PlanOrderId = this.rhOrder.PlanOrderId;\n        temp.SourceReversePlanedQty = data.SourceReversePlanedQty;\n        temp.SourceReturnedQty = data.SourceReturnedQty;\n        temp.PlanTransactedQty = data.PlanTransactedQty;\n        temp.SourceCompletedQty = data.SourceCompletedQty;\n      }\n      // 单头赋值\n      temp.OrderId = this.rhOrder.OrderId;\n      temp.BusinessType = this.rhOrder.BusinessType;\n      temp.InWarehouseCode = this.rhOrder.InWarehouseCode;\n      temp.InWarehouseName = this.rhOrder.InWarehouseName;\n      temp.FactoryCode = this.rhOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach(data => data.OpSign = OpMode.OpEdit);\n      }\n      this.dataresult = { Attach: (this.dataresult?.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 启用计划，获取计划明细，用于初始化PlanTransactedQty */\n  getPlanOrderDetails() {\n    const queryDto = {\n      PlanOrderId: this.rhOrder.PlanOrderId,\n      SourceOrderId: this.rhOrder.SourceOrderId,\n      FactoryCode: this.rhOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetSaleReturnedInPlanOrderDetailsDatasBy(queryDto).subscribe(result => {\n      if (result.Success) {\n        this.planOrderDetailDataset = result.Attach;\n        // 初始化办理明细的PlanTransactedQty\n        this.dataresult.Attach.forEach(data => {\n          const item = this.planOrderDetailDataset.find((ele) =>\n            ele.MaterialCode === data.MaterialCode &&\n            ele.SourceOrderId === data.SourceOrderId &&\n            ele.SourceOrderRowNum === data.SourceOrderRowNum);\n          if (item) {\n            data.PlanTransactedQty = item.PlanTransactedQty;\n          } else {\n            data.PlanTransactedQty = null;\n          }\n        });\n        this.dataresult = _.cloneDeep(this.dataresult);\n      } else {\n        this.planOrderDetailDataset = [];\n      }\n    });\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach(data => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach(data => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  openDataModal() {\n    if (this.isEnableInPlan) {\n      this.sourceDefaultQueryDto = {\n        PlanOrderId: this.rhOrder.PlanOrderId,\n        FactoryCode: this.rhOrder.FactoryCode\n      };\n    } else {\n      this.sourceDefaultQueryDto = {\n        OrderCode: this.rhOrder.SourceOrderId ? `$${this.rhOrder.SourceOrderId}` : null,\n        FactoryCode: this.rhOrder.FactoryCode\n      };\n    }\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n\n  //#region 仓储相关区域开始\n  /** 根据是否启用，获取对应仓储信息 */\n  getWarehouseInfos() {\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseArea) {\n      this.businessManageSer.getWarehouseAreaDataset({ WarehouseCode: this.rhOrder.InWarehouseCode }).then(res => {\n        this.warehouseAreaDataset = res || [];\n      }).catch(() => {\n        this.warehouseAreaDataset = [];\n      });\n    }\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseShelf) {\n      this.businessManageSer.getWarehouseShelfDataset({ WarehouseCode: this.rhOrder.InWarehouseCode }).then(res => {\n        this.warehouseShelfDataset = res || [];\n      }).catch(() => {\n        this.warehouseShelfDataset = [];\n      });\n    }\n    if (this.currentWarehouseMaterialControlPara.IsEnableStorageLocation) {\n      this.businessManageSer.getStorageLocationDataset({ WarehouseCode: this.rhOrder.InWarehouseCode }).then(res => {\n        this.storageLocationDataset = res || [];\n      }).catch(() => {\n        this.storageLocationDataset = [];\n      });\n    }\n  }\n\n  /** 获取仓库控制参数配置 */\n  async getWarehouseMaterialControlParameter() {\n    const para = await this.businessManageSer.getWarehouseMaterialControlParameter({\n      WarehouseCode: this.rhOrder.InWarehouseCode\n    });\n    this.currentWarehouseMaterialControlPara = this.businessManageSer.transformWarehouseMaterialControlParameter(para);\n  }\n\n  inWarehouseAreaCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseAreaDataset.find(ele => ele.WarehouseAreaCode === code);\n      if (item) {\n        data.InWarehouseAreaName = item.WarehouseAreaName;\n      } else {\n        data.InWarehouseAreaName = null;\n      }\n    } else {\n      data.InWarehouseAreaName = null;\n    }\n    // 强关联则清空下属字段\n    if (this.currentWarehouseMaterialControlPara.IsStrictCorrelation) {\n      data.InWarehouseShelfCode = null;\n      data.InWarehouseShelfName = null;\n      data.InStorageLocationCode = null;\n      data.InStorageLocationName = null;\n    }\n  }\n\n  inWarehouseShelfCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseShelfDataset.find(ele => ele.WarehouseShelfCode === code);\n      if (item) {\n        data.InWarehouseShelfName = item.WarehouseShelfName;\n      } else {\n        data.InWarehouseShelfName = null;\n      }\n    } else {\n      data.InWarehouseShelfName = null;\n    }\n    // 强关联则清空下属字段\n    if (this.currentWarehouseMaterialControlPara.IsStrictCorrelation) {\n      data.InStorageLocationCode = null;\n      data.InStorageLocationName = null;\n    }\n  }\n\n  inStorageLocationCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.storageLocationDataset.find(ele => ele.StorageLocationCode === code);\n      if (item) {\n        data.InStorageLocationName = item.StorageLocationName;\n      } else {\n        data.InStorageLocationName = null;\n      }\n    } else {\n      data.InStorageLocationName = null;\n    }\n  }\n\n  /** 获取货架显示列表，行编辑应用 */\n  getWarehouseShelfDatasetDisplay(data: RhSelectableDto): RhSelectableDto[] {\n    return this.businessManageSer.getWarehouseShelfDatasetDisplay(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      this.warehouseShelfDataset,\n      'In'\n    );\n  }\n\n  /** 获取库位显示列表，行编辑应用 */\n  getStorageLocationDatasetDisplay(data: RhSelectableDto): RhSelectableDto[] {\n    return this.businessManageSer.getStorageLocationDatasetDisplay(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      this.storageLocationDataset,\n      'In'\n    );\n  }\n  //#endregion 仓储相关区域结束\n}\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isVisibleSettingOver\">\n    <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n      <rh-dynamic-table\n        rhName=\"handleDetailsReadOnlyTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n        <ng-template rhTemplate=\"InWarehouseAreaCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseAreaTpl\">\n            <nz-select\n              [(ngModel)]=\"data.InWarehouseAreaCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"inWarehouseAreaCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of warehouseAreaDataset\"\n                [nzLabel]=\"item.WarehouseAreaCode\"\n                [nzValue]=\"item.WarehouseAreaCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseAreaTpl>{{ data.InWarehouseAreaCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"InWarehouseAreaName\" let-item let-data=\"data\">\n          {{ data.InWarehouseAreaName }}\n        </ng-template>\n        <ng-template rhTemplate=\"InWarehouseShelfCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseShelfTpl\">\n            <nz-select\n              [(ngModel)]=\"data.InWarehouseShelfCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"inWarehouseShelfCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of getWarehouseShelfDatasetDisplay(data)\"\n                [nzLabel]=\"item.WarehouseShelfCode\"\n                [nzValue]=\"item.WarehouseShelfCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseShelfTpl>{{ data.InWarehouseShelfCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"InWarehouseShelfName\" let-item let-data=\"data\">\n          {{ data.InWarehouseShelfName }}\n        </ng-template>\n        <ng-template rhTemplate=\"InStorageLocationCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else storageLocationTpl\">\n            <nz-select\n              [(ngModel)]=\"data.InStorageLocationCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"inStorageLocationCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of getStorageLocationDatasetDisplay(data)\"\n                [nzLabel]=\"item.StorageLocationCode\"\n                [nzValue]=\"item.StorageLocationCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #storageLocationTpl>{{ data.InStorageLocationCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"InStorageLocationName\" let-item let-data=\"data\">\n          {{ data.InStorageLocationName }}\n        </ng-template>\n        <ng-template rhTemplate=\"SN\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else SNTpl\">\n            <input\n              nz-input\n              [(ngModel)]=\"data.SN\"\n              [placeholder]=\"item?.displayName\"\n              [ngStyle]=\"{ border: !data.SN && currentWarehouseMaterialControlPara.IsEnableSN ? '1px solid red' : '1px solid #d9d9d9' }\"\n            />\n            <p style=\"color: red; margin-bottom: 0\" *ngIf=\"!data.SN && currentWarehouseMaterialControlPara.IsEnableSN\">请输入条码</p>\n          </ng-container>\n          <ng-template #SNTpl>{{ data.SN }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"ProductionDate\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else ProDateTpl\">\n            <nz-date-picker\n              nz-input\n              [(ngModel)]=\"data.ProductionDate\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              [ngStyle]=\"{\n                border:\n                  !data.ProductionDate && currentWarehouseMaterialControlPara.IsEnableExpirationDate ? '1px solid red' : '1px solid #d9d9d9'\n              }\"\n            ></nz-date-picker>\n            <p\n              style=\"color: red; margin-bottom: 0\"\n              *ngIf=\"!data.ProductionDate && currentWarehouseMaterialControlPara.IsEnableExpirationDate\"\n            >\n              请输入生产日期\n            </p>\n          </ng-container>\n          <ng-template #ProDateTpl>{{ data.ProductionDate | date : 'yyyy-MM-dd' }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"LotNum\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else LotNumTpl\">\n            <input\n              nz-input\n              [(ngModel)]=\"data.LotNum\"\n              [placeholder]=\"item?.displayName\"\n              [ngStyle]=\"{\n                border: !data.LotNum && currentWarehouseMaterialControlPara.IsEnableLotNum ? '1px solid red' : '1px solid #d9d9d9'\n              }\"\n            />\n            <p style=\"color: red; margin-bottom: 0\" *ngIf=\"!data.LotNum && currentWarehouseMaterialControlPara.IsEnableLotNum\">\n              请输入批次号\n            </p>\n          </ng-container>\n          <ng-template #LotNumTpl>{{ data.LotNum }}</ng-template>\n        </ng-template>\n      </rh-dynamic-table>\n    </ng-container>\n    <ng-template #handleTpl>\n      <rh-dynamic-table\n        rhName=\"handleDetailsTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n      </rh-dynamic-table>\n    </ng-template>\n  </ng-container>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"sourceDataModalTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div *ngIf=\"isShowDataModal\">\n      <rh-dynamic-single-table\n        *ngIf=\"isEnableInPlan; else sourceDetailsTpl\"\n        rhName=\"planOrderDetailTable\"\n        [rhInterfaceInfo]=\"planOrderDetailFormInterface\"\n        [rhDefaultFieldDataset]=\"planOrderDetailTableFieldDataset\"\n        [rhPara]=\"sourceDefaultQueryDto\"\n        (rhSelectedDatasChange)=\"onSelectModal($event)\"\n      ></rh-dynamic-single-table>\n      <ng-template #sourceDetailsTpl>\n        <rh-dynamic-single-table\n          rhName=\"sourceOrderDetailTable\"\n          [rhInterfaceInfo]=\"sourceOrderDetailFormInterface\"\n          [rhDefaultFieldDataset]=\"sourceOrderDetailTableFieldDataset\"\n          [rhPara]=\"sourceDefaultQueryDto\"\n          (rhSelectedDatasChange)=\"onSelectModal($event)\"\n        ></rh-dynamic-single-table>\n      </ng-template>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { CustomizeBaseTableComponent, DynamicFormComponent } from 'rh-base/shared';\nimport { RhDynamicInterfaceDto, RhSelectableDto, RhTableQueryOptionDto, CodeClassModel, RhDynamicTableFieldDto } from 'rh-base/model';\n\n@Component({\n  selector: 'rh-sale-return-plan-table',\n  templateUrl: './sale-return-plan-table.component.html',\n  styleUrls: ['./sale-return-plan-table.component.less']\n})\nexport class SaleReturnPlanTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n\n  @Input() rhSingleMode = true;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() rhDisabled: boolean;\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto>();\n\n  rhName = 'SaleReturnPLanTable';\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n  defaultInterfaceInfo: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'SalePlanBusinessApi',\n    interfaceName: 'GetSaleReturnedInPlanOrderDatas'\n  };\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [\n    { name: 'PlanOrderId', displayName: '计划单号', placeholder: '计划单号', editable: true, visible: true },\n    {\n      name: 'OrderStatus',\n      displayName: '单据状态',\n      placeholder: '单据状态',\n      editable: false,\n      defaultValue: 'WaitInWarehouse',\n      visible: false\n    }\n  ];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [\n    { name: 'PlanOrderId', displayName: '计划单号', width: 150 },\n    { name: 'SourceOrderId', displayName: '销售单号', width: 150 },\n    { name: 'InWarehouseCode', displayName: '发入仓库代码', width: 150 },\n    { name: 'InWarehouseName', displayName: '发入仓库名称', width: 150 },\n    { name: 'CustomerCode', displayName: '客户代码', width: 120 },\n    { name: 'CustomerName', displayName: '客户名称', width: 120 },\n    { name: 'Carrier', displayName: '载运商', width: 120 },\n    { name: 'ReceivingAddress', displayName: '收货地址', width: 150, rhEllipsis: true },\n    { name: 'Remark', displayName: '备注', width: 120, rhEllipsis: true }\n  ];\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  constructor() {\n    //\n    super();\n  }\n\n  ngOnInit(): void {\n    this.rhInterfaceInfo = this.rhInterfaceInfo || this.defaultInterfaceInfo;\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n}\n","<!-- 搜索Form区域 -->\r\n<div class=\"search-area rh-full\">\r\n  <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\r\n    <ng-template #searchTpl>\r\n      <rh-dynamic-form\r\n        #queryForm\r\n        rhName=\"{{ rhName }}Form\"\r\n        [rhValue]=\"rhDefaultQueryDto\"\r\n        (rhInterfaceDataChange)=\"setDatas($event)\"\r\n        (rhDataloadingChange)=\"dataLoadingChange($event)\"\r\n        (rhOutParaChange)=\"setInitFieldDataset($event)\"\r\n        [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\r\n        [(rhFormInterface)]=\"rhInterfaceInfo\"\r\n      ></rh-dynamic-form>\r\n    </ng-template>\r\n  </nz-alert>\r\n</div>\r\n<!-- 搜索结果Table展示区域 -->\r\n<div class=\"table-area\">\r\n  <rh-dynamic-table\r\n    rhName=\"{{ rhName }}Table\"\r\n    [rhTableData]=\"dataresult\"\r\n    [rhTableDataloading]=\"dataLoading\"\r\n    [rhDefaultFieldDataset]=\"defaultTableFieldDataset\"\r\n    (rhRefresh)=\"refreshDatas($event)\"\r\n    (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\"\r\n    [rhSingleMode]=\"rhSingleMode\"\r\n  ></rh-dynamic-table>\r\n</div>\r\n","import { Component, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, SimpleChanges } from '@angular/core';\nimport { provideValueAccessor, RhRouteHelper, MsgHelper } from 'rh-base/core';\nimport {\n  RhSelectableDto,\n  DataResultT,\n  RhDynamicFormFieldDto,\n  RhSafeAny,\n  RhDynamicCustomizeControlConfigDto,\n  RhRelatedFieldDataDto,\n  RhCustomizeEventSettingDto,\n  RhDisplayMode,\n  RhDynamicInterfaceDto\n} from 'rh-base/model';\nimport { CustomizeBaseControlComponent, RhBaseDynamicService } from 'rh-base/shared';\nimport { NzSizeLDSType } from 'ng-zorro-antd/core/types';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { SaleReturnPlanTableComponent } from './sale-return-plan-table/sale-return-plan-table.component';\n\n@Component({\n  selector: 'rh-sale-return-plan-order-selector',\n  templateUrl: './sale-return-plan-order-selector.component.html',\n  styleUrls: ['./sale-return-plan-order-selector.component.less'],\n  providers: [provideValueAccessor(SaleReturnPlanOrderSelectorComponent)]\n})\nexport class SaleReturnPlanOrderSelectorComponent extends CustomizeBaseControlComponent {\n  rhRelatedFieldData = null;\n  @ViewChild(SaleReturnPlanTableComponent) tableComp: SaleReturnPlanTableComponent;\n  @Input() rhDynamicKey = 'PurchaseInPlanOrder';\n  @Input() rhTitle = '选择销售退货计划';\n  @Input() declare rhSize: NzSizeLDSType;\n  @Input() declare rhDisplayMode: RhDisplayMode;\n\n  @Input() rhProductCode: string;\n\n  iconSetting = 'search';\n  @Input() rhSingleMode = true;\n\n  formKeyFieldName = 'PlanOrderId';\n  formTextFieldName = 'PlanOrderId';\n\n  modelKeyFieldName = 'PlanOrderId';\n  modelTextFieldName = 'PlanOrderId';\n\n  // // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto>();\n  /** 对应table选中的数据 */\n  rhModel: RhSelectableDto = {};\n\n  /** 动态form字段配置数据 */\n  @Input() rhFieldData: RhDynamicFormFieldDto;\n  /** 整个form的数据 */\n  @Input() declare rhData: RhSafeAny;\n\n  /** 表格Loading */\n  // dataLoading = false;\n  // dataresult: DataResultT<RhSelectableDto[]>;\n\n  /** selector input上展示的数据，一般为中文 */\n  //displayName: string;\n\n  //selectedData: RhSelectableDto[];\n\n  /** 自定义组件的自定义执行函数 */\n  cb: (data: RhSafeAny, ctx: RhSafeAny) => void;\n\n  /** 该组件关联的form名称 */\n  formName: string;\n\n  url: string;\n\n  /** 设置默认搜索接口 */\n  defaultFormInterface: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'SalePlanBusinessApi',\n    interfaceName: 'GetSaleReturnedInPlanOrderDatas'\n  };\n\n  mappedList = [\n    { sourceName: this.modelKeyFieldName, mappedName: this.formKeyFieldName },\n    { sourceName: this.modelTextFieldName, mappedName: this.formTextFieldName },\n    { sourceName: 'SourceOrderId', mappedName: 'SourceOrderId' },\n    // { sourceName: 'SourceOrderRowNum', mappedName: 'SourceOrderRowNum' },\n    { sourceName: 'CustomerCode', mappedName: 'CustomerCode' },\n    { sourceName: 'CustomerName', mappedName: 'CustomerName' },\n    { sourceName: 'Carrier', mappedName: 'Carrier' },\n    { sourceName: 'ReceivingAddress', mappedName: 'ReceivingAddress' },\n    { sourceName: 'InWarehouseName', mappedName: 'InWarehouseCode' },\n    { sourceName: 'InWarehouseName', mappedName: 'InWarehouseName' }\n  ];\n\n  constructor(\n    public fb: UntypedFormBuilder,\n    public cdr: ChangeDetectorRef,\n    public router: Router,\n    public dynamicSer: RhBaseDynamicService\n  ) {\n    super(cdr, dynamicSer);\n    this.url = RhRouteHelper.getRealRoute(this.router.url);\n  }\n\n  ngOnInit(): void {\n    this.rhPlaceholder = this.rhFieldData.placeholder as any;\n    this.formName = this.rhFieldData.relatedComponentName;\n    this.setCbValue();\n  }\n\n  // 自定义表单项配置\n  ngOnChanges(changes: SimpleChanges) {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue && rhData.currentValue[this.formKeyFieldName] === null) {\n      this.resetControlValue();\n    } else {\n      this.rhModel = {};\n    }\n  }\n\n  // dataLoadingChange(status: boolean) {\n  //   this.dataLoading = status;\n  // }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    // if (data?.length === 1 && this.rhSingleMode) {\n    //   this.selectedData = data[0];\n    // } else {\n    //   this.selectedData = data;\n    // }\n    this.selectedData = data || [];\n  }\n\n  // setDatas(result: DataResultT<RhSelectableDto[]>) {\n  //   if (result && result.Success) {\n  //     this.dataresult = result;\n  //   } else {\n  //     MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n  //   }\n  // }\n\n  /** 根据填入的code值，获取对应的完整数据，回填到输入框 */\n  getTargetDatas(code: string) {\n    // 显示代码 不需要\n    // if (!this.defaultFormInterface) {\n    //   return;\n    // }\n    // const queryDto = {};\n    // queryDto[this.modelKeyFieldName] = `$${code}`;\n    // this.getTargetDatasVisHttpHandler(this.defaultFormInterface, queryDto, this.rhFieldData);\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n  }\n\n  //#region customize selector interface区域\n  confirmSelect() {\n    this.rhModel = this.selectedData[0];\n    this.rhModelChange.emit(this.selectedData);\n    // if (this.rhSingleMode) {\n    //   this.value = this.rhModel[this.modelKeyFieldName];\n    //   this.displayName = this.rhModel[this.modelTextFieldName];\n    //   this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // } else {\n    //   this.value = (this.rhModel as RhSafeAny[]).map((ele) => ele[this.modelKeyFieldName]) as RhSafeAny;\n    //   // 多选的时候只会显示多个代码\n    //   this.displayName = (this.value as RhSafeAny).toString();\n    // }\n    this.value = this.rhModel[this.modelKeyFieldName];\n    this.displayName = this.rhModel[this.modelTextFieldName];\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // 执行对应控件定义的代码\n    if (this.rhData && this.rhModel && this.cb) {\n      this.cb(this.rhData, this.rhModel);\n    }\n    this.setFormDataViaRelatedDatas();\n    // 执行form的相关字段赋值操作\n    this.triggerRelatedForm();\n    this.closeDataModal();\n  }\n\n  resetControlValue() {\n    this.displayName = null;\n    // 重置form对应数据对象\n    this.rhData[this.formKeyFieldName] = null;\n    this.rhData[this.formTextFieldName] = null;\n    // 清空数据中的字段的值\n    this.mappedList.forEach((ele) => {\n      this.rhData[ele.mappedName] = null;\n    });\n    this.rhModel = null;\n  }\n\n  setCbValue() {\n    const cbString = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.cb;\n    if (cbString) {\n      const fn = Function(`return ${cbString}`);\n      if (fn) {\n        this.cb = fn();\n      } else {\n        this.cb = this.setFormData;\n      }\n    } else {\n      // 当没有配置回调函数时，执行默认的回调函数\n      this.cb = this.setFormData;\n    }\n  }\n\n  /** 设置form对应的数据对象的值\n   * @param data form对应的数据对象\n   * @params 设置或者对应table选择的数据\n   */\n  setFormData(data: RhSafeAny, ctx: RhSelectableDto) {\n    data[this.formKeyFieldName] = ctx[this.modelKeyFieldName];\n    data[this.formTextFieldName] = ctx[this.modelTextFieldName];\n  }\n\n  setFormDataViaRelatedDatas() {\n    let relatedDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedModelDatas;\n    if (!relatedDatas?.length) {\n      relatedDatas = this.mappedList;\n    }\n    if (relatedDatas?.length) {\n      relatedDatas.forEach((ele) => {\n        this.rhData[ele.mappedName] = this.rhModel[ele.sourceName];\n      });\n    }\n  }\n\n  triggerRelatedForm() {\n    const tempDatas = (this.rhFieldData.config as RhDynamicCustomizeControlConfigDto)?.relatedFieldDatas;\n    const relatedDatas: RhRelatedFieldDataDto[] = tempDatas && tempDatas.length ? tempDatas : this.mappedList;\n    const data: RhCustomizeEventSettingDto = {\n      id: `${this.url}_${this.formName}`,\n      eventType: null,\n      options: null,\n      value: this.rhModel,\n      relatedFieldDatas: relatedDatas\n    };\n    this.dynamicSer.formCustomizeEventTrigger(data);\n  }\n  //#endregion customize selector interface区域结束\n}\n","<nz-input-group [nzSize]=\"rhSize\" [nzSuffix]=\"suffixIconSearch\" [nzAddOnAfter]=\"addOnAfter\">\r\n  <input type=\"text\" nz-input [ngModel]=\"displayName\" [placeholder]=\"rhPlaceholder\" readonly=\"readonly\" />\r\n</nz-input-group>\r\n<ng-template #suffixIconSearch>\r\n  <a *ngIf=\"displayName && !rhDisabled\" class=\"link-suffix\" (click)=\"clearInputInfo()\">\r\n    <i nz-icon nzType=\"close-circle\"></i>\r\n  </a>\r\n</ng-template>\r\n\r\n<ng-template #addOnAfter>\r\n  <button nz-button nzType=\"link\" type=\"button\" nzSize=\"small\">\r\n    <a (click)=\"openDataModal($event)\">\r\n      <i nz-icon [nzType]=\"iconSetting\"></i>\r\n    </a>\r\n  </button>\r\n</ng-template>\r\n\r\n<nz-modal\r\n  [nzVisible]=\"isShowDataModal\"\r\n  [nzTitle]=\"rhTitle\"\r\n  nzMaskClosable=\"false\"\r\n  [nzOkText]=\"null\"\r\n  [nzCancelText]=\"null\"\r\n  (nzOnCancel)=\"closeDataModal()\"\r\n  [nzWidth]=\"900\"\r\n>\r\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\r\n    <ng-template #cardTitleTpl>\r\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedData\">\r\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\r\n        确定选择\r\n      </button>\r\n    </ng-template>\r\n    <ng-template #cardExtraTpl>\r\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\r\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\r\n        关闭\r\n      </button>\r\n    </ng-template>\r\n    <div>\r\n      <rh-sale-return-plan-table\r\n        [rhModel]=\"rhModel\"\r\n        (rhModelChange)=\"onSelectModal($event)\"\r\n        [rhSingleMode]=\"rhSingleMode\"\r\n      ></rh-sale-return-plan-table>\r\n    </div>\r\n  </nz-card>\r\n</nz-modal>\r\n","import { RhSharedManageService } from './../../../shared-manage/shared-manage.service';\nimport { RhBusinessManageService } from './../../business-manage.service';\nimport { BusinessType } from './../../business-type';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { CodeClassModel, DataResultT, OpMode, OpResult, RhBaseDto, RhDynamicTableFieldDto, RhLoginedUserDto, RhSafeAny, RhSelectableDto, RhTableButtonInfoDto, RhTableQueryOptionDto } from 'rh-base/model';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { RhSaleBusinessService } from '../sale-business.service';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\n\ntype TabType = 'edit' | 'detail' | 'audit';\n\n@Component({\n  selector: 'rh-sale-returned-in-handle',\n  templateUrl: './sale-returned-in-handle.component.html',\n  styleUrls: ['./sale-returned-in-handle.component.less']\n})\nexport class RhSaleReturnedInHandleComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  BusinessType = BusinessType.SaleReturnedIn;\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n  /** 显示配置 */\n  visibleSetting = {};\n  /** 单据明细数据，审核需要 */\n  orderDetails: RhSelectableDto[] = [];\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  isAsCreated = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n\n  get isEnableInPlan() {\n    return this.businessManageSer.IsEnableInPlan;\n  }\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto)),\n    new RhTableButtonInfoDto('submit', '提交审核', 'default', false, 'form', false, null, (data) => this.submitDataToAudit(data as RhBaseDto)),\n    new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) =>\n      this.openDetailTab({ data } as RhBaseDto, 'audit')\n    )\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '入库办理', 'primary', false, 'file', false, null, () => this.openEditTab(), true, true)\n  ];\n\n  beforeSubmit = async (data: RhBaseDto, context: DynamicFormComponent) => {\n    let result: OpResult = null;\n    const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n    context.submitLoading = true;\n    try {\n      if (this.editDto.OpSign === OpMode.OpAdd) {\n        // 基本信息\n        data.BusinessType = this.BusinessType;\n        data.OrderCreatorCode = this.currentUser.DisplayName;\n        data.OrderCreatorName = this.currentUser.UserName;\n        data.SaleOrderCode = data.SourceOrderId;\n\n        result = await this.operator.CreateSaleReturnedTransactMasterOrder(data).toPromise();\n      } else {\n        result = await this.operator.UpdateSaleReturnedTransactMasterOrder(data).toPromise();\n      }\n      if (result && result.Success) {\n        MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n        this.editDto.OrderId = result?.Attach?.OrderId;\n        this.isShowEditForm = false;\n        this.getEditData();\n      } else {\n        MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n      }\n    } catch (error) {\n      //\n    } finally {\n      context.submitLoading = false;\n    }\n\n    return false;\n  };\n\n  beforeSubmitAudit = (data: RhBaseDto) => {\n    if (!data.IsPass && !data.AuditMessage) {\n      MsgHelper.ShowWarningMessage('审核不通过，必须填写审核信息！');\n      return;\n    }\n    // 基本信息\n    data.OrderMaster = this.editDto;\n    data.OrderDetails = this.orderDetails;\n    data.Auditor = this.currentUser.DisplayName;\n    data.AuditorId = this.currentUser.UserName;\n\n    return true;\n  };\n\n  constructor(\n    private operator: RhSaleBusinessService,\n    public businessManageSer: RhBusinessManageService,\n    public storage: RhStorageService,\n    public sharedManageSer: RhSharedManageService\n  ) { }\n\n  ngOnInit(): void {\n    this.setUserInfo();\n    this.initEditButtonVisible();\n    this.initVisibleSetting();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  initEditButtonVisible() {\n    this.editButtonDataset[0].visible = this.editVisible.toString();\n    this.editButtonDataset[1].visible = this.isCreated.toString();\n    this.editButtonDataset[2].visible = this.auditVisible.toString();\n  }\n\n  initVisibleSetting() {\n    Object.assign(this.visibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('In'));\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {\n        TransactorCode: this.currentUser.UserName,\n        TransactorName: this.currentUser.DisplayName,\n        FactoryCode: this.currentUser.FactoryCode\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.editDto = null;\n    this.selectedIndex = 0;\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.selectedIndex = 1;\n  }\n\n  // 明细变化后\n  getDetails(details: RhSelectableDto[]) {\n    this.orderDetails = details;\n  }\n\n  getEditData() {\n    const queryDto = { OrderId: this.editDto.OrderId };\n    this.operator.GetSaleReturnedTransactOrderViewDatas(queryDto).subscribe((result) => {\n      if (result.Success && result.Attach.length === 1) {\n        this.editDto = result.Attach[0];\n        this.editDto.OpSign = OpMode.OpEdit;\n      }\n    });\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    } else if (index === 1) {\n      this.orderDetails = [];\n    }\n  }\n\n  //#region 操作区域开始\n  /** 提交审核 */\n  submitDataToAudit(data: RhBaseDto) {\n    if (this.isCreated(data)) {\n      const dto = { OrderId: data.OrderId };\n      this.dataLoading = true;\n      this.operator.SumbitAuditSaleReturnedTransactOrder(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('提交审核成功！');\n            if (this.selectedIndex === 0) this.getDatas();\n            this.closeEditTab();\n          } else {\n            MsgHelper.ShowWarningMessage(`提交审核失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行提交审核！');\n    }\n  }\n\n  /** 审核 */\n  auditData(data: RhBaseDto) {\n    if (this.auditVisible(data)) {\n      this.openAuditDataModal(data);\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行审核！');\n    }\n  }\n\n  /** 打开审核弹窗 */\n  openAuditDataModal(data: RhBaseDto) {\n    this.auditDto = { OrderId: data.OrderId };\n    this.isShowAuditDataModal = true;\n  }\n\n  /** 关闭审核弹窗 */\n  closeAuditDataModal() {\n    this.auditDto = {};\n    this.isShowAuditDataModal = false;\n  }\n\n  /** 审核接口返回 */\n  onAuditData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('审核入库办理单据成功！');\n      this.closeAuditDataModal();\n      this.getEditData();\n    } else {\n      MsgHelper.ShowWarningModal(`审核入库办理单据失败！${result.Message}`);\n    }\n  }\n\n  /** 删除办理单据 */\n  removeDatas(datas: RhBaseDto[]) {\n    const some = datas.some((f) => !this.isAsCreated(f));\n    if (some) {\n      MsgHelper.ShowWarningMessage('只能删除制单状态的数据！');\n    } else {\n      this.dataLoading = true;\n      this.operator.RemoveSaleReturnedTransactOrders(datas as RhSafeAny).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('删除成功！');\n            this.getDatas();\n          } else {\n            MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    }\n  }\n  //#endregion 操作区域结束\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  ></rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                [rhVisibleSetting]=\"visibleSetting\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              ></rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>销售退货办理</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"入库单单头\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button\n                    *ngIf=\"editVisible(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"isShowEditForm = true\"\n                  >\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button\n                    *ngIf=\"isCreated(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"submitDataToAudit(editDto)\"\n                  >\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                  <button *ngIf=\"auditVisible(editDto)\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else detailsDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  [rhVisibleSetting]=\"visibleSetting\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template\n                    rhTemplate=\"InWarehouseCode\"\n                    let-formgroup\n                    let-setting=\"setting\"\n                    let-hostSetting=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-warehouse-selector\n                          rhInventoryControlSpecialType=\"Warehouse\"\n                          [formControl]=\"formgroup.get('InWarehouseCode')\"\n                          [rhData]=\"formData\"\n                          [rhFieldData]=\"setting\"\n                          [rhSize]=\"hostSetting?.rhSize\"\n                        >\n                        </rh-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                  <ng-template rhTemplate=\"PlanOrderId\" let-formgroup let-setting=\"setting\" let-formData=\"formData\">\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-sale-return-plan-order-selector\n                          [formControl]=\"formgroup.get('PlanOrderId')\"\n                          [rhFieldData]=\"setting\"\n                          [rhDisplayMode]=\"1\"\n                          [rhData]=\"formData\"\n                        ></rh-sale-return-plan-order-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                  <ng-template\n                    rhTemplate=\"SourceOrderId\"\n                    let-formgroup\n                    let-setting=\"setting\"\n                    let-hostSetting=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-sale-out-warehousing-source-order-selector\n                          *ngIf=\"!isEnableInPlan; else planSourceTpl\"\n                          [formControl]=\"formgroup.get('SourceOrderId')\"\n                          [rhFieldData]=\"setting\"\n                          [rhDisplayMode]=\"1\"\n                          [rhData]=\"formData\"\n                          [rhDefaultQueryDto]=\"curFactoryQueryDto\"\n                          [rhSingleMode]=\"true\"\n                        >\n                        </rh-sale-out-warehousing-source-order-selector>\n                        <ng-template #planSourceTpl>\n                          <rh-form-field\n                            [formControl]=\"formgroup.get('SourceOrderId')\"\n                            rhFormType=\"edit\"\n                            [rhFieldData]=\"setting\"\n                            [rhSize]=\"hostSetting?.rhSize\"\n                            [rhData]=\"formData\"\n                          ></rh-form-field>\n                        </ng-template>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"入库单单体\">\n              <rh-sale-returned-in-handle-details [rhOrder]=\"editDto\" (rhDetailsUpdate)=\"getDetails($event)\">\n              </rh-sale-returned-in-handle-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"入库单单头\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <button\n                  *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\"\n                  nz-button\n                  nzType=\"primary\"\n                  nzSize=\"small\"\n                  type=\"button\"\n                  (click)=\"auditData(editDto)\"\n                >\n                  <i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n                </button>\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"detailsDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"入库单单体\">\n              <rh-sale-returned-in-handle-details [rhOrder]=\"editDto\" [rhShowDetail]=\"true\" (rhDetailsUpdate)=\"getDetails($event)\">\n              </rh-sale-returned-in-handle-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #detailsDescription>\n  <rh-dynamic-description\n    *ngIf=\"isRefreshDesc\"\n    rhName=\"detailsDescription\"\n    [rhValue]=\"editDto\"\n    [rhVisibleSetting]=\"visibleSetting\"\n  ></rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'入库办理审核'\"\n  [nzVisible]=\"isShowAuditDataModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeAuditDataModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #auditDataForm\n    rhName=\"auditDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"auditDto\"\n    [rhBeforeSubmit]=\"beforeSubmitAudit\"\n    (rhInterfaceDataChange)=\"onAuditData($event)\"\n    (rhClose)=\"closeAuditDataModal()\"\n  >\n    <ng-template rhTemplate=\"IsPass\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-radio-group [formControl]=\"formgroup.get('IsPass')\" (ngModelChange)=\"businessManageSer.isPassChange($event, formgroup)\">\n            <label nz-radio [nzValue]=\"true\">是</label>\n            <label nz-radio [nzValue]=\"false\">否</label>\n          </nz-radio-group>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"AuditMessage\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"!formgroup.get('IsPass').value\"> {{ setting.displayName }}</nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <textarea\n            nz-input\n            [formControl]=\"formgroup.get('AuditMessage')\"\n            [placeholder]=\"setting.placeholder\"\n            [nzAutosize]=\"{ minRows: 2 }\"\n          ></textarea>\n          <div *ngIf=\"editDto?.AuditMessage\">\n            <span style=\"color: #faad14\">上一次审核信息：{{ editDto?.AuditMessage }}</span>\n          </div>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>\n","import { RhSharedManageModule } from './../../shared-manage/shared-manage.module';\nimport { RhSharedModule } from 'rh-base/shared';\nimport { NgModule } from '@angular/core';\nimport { RhSaleOutPlanComponent } from './sale-out-plan/sale-out-plan.component';\nimport { RhSaleReturnedInPlanComponent } from './sale-returned-in-plan/sale-returned-in-plan.component';\nimport { SaleOutPlanDetailsComponent } from './sale-out-plan/sale-out-plan-details/sale-out-plan-details.component';\nimport { SaleReturnedInPlanDetailsComponent } from './sale-returned-in-plan/sale-returned-in-plan-details/sale-returned-in-plan-details.component';\nimport { RhSaleBusinessService } from './sale-business.service';\nimport { SaleOutWarehousingSourceOrderSelectorComponent } from './snippets/sale-out-warehousing-source-order-selector/sale-out-warehousing-source-order-selector.component';\nimport { SaleOutWarehousingSourceOrderTableComponent } from './snippets/sale-out-warehousing-source-order-selector/sale-out-warehousing-source-order-table/sale-out-warehousing-source-order-table.component';\nimport { RhSaleOutHandleComponent } from './sale-out-handle/sale-out-handle.component';\nimport { RhSaleReturnedInHandleComponent } from './sale-returned-in-handle/sale-returned-in-handle.component';\nimport { SaleOutHandleDetailsComponent } from './sale-out-handle/sale-out-handle-details/sale-out-handle-details.component';\nimport { SaleReturnedInHandleDetailsComponent } from './sale-returned-in-handle/sale-returned-in-handle-details/sale-returned-in-handle-details.component';\nimport { SaleOutWarehousingPlanSelectorComponent } from './snippets/sale-out-warehousing-plan-selector/sale-out-warehousing-plan-selector.component';\nimport { SaleOutWarehousingPlanTableComponent } from './snippets/sale-out-warehousing-plan-selector/sale-out-warehousing-plan-table/sale-out-warehousing-plan-table.component';\nimport { SaleReturnPlanOrderSelectorComponent } from './snippets/sale-return-plan-order-selector/sale-return-plan-order-selector.component';\nimport { SaleReturnPlanTableComponent } from './snippets/sale-return-plan-order-selector/sale-return-plan-table/sale-return-plan-table.component';\n\nconst COMPONENTS = [\n  RhSaleOutPlanComponent,\n  RhSaleReturnedInPlanComponent,\n  RhSaleOutHandleComponent,\n  RhSaleReturnedInHandleComponent\n];\n\nconst SNIPPETS = [\n  SaleOutPlanDetailsComponent,\n  SaleReturnedInPlanDetailsComponent,\n  SaleOutWarehousingSourceOrderSelectorComponent,\n  SaleOutWarehousingSourceOrderTableComponent,\n  SaleOutHandleDetailsComponent,\n  SaleReturnedInHandleDetailsComponent,\n  SaleOutWarehousingPlanSelectorComponent,\n  SaleOutWarehousingPlanTableComponent,\n  SaleReturnPlanOrderSelectorComponent,\n  SaleReturnPlanTableComponent\n];\n\n@NgModule({\n  declarations: [...COMPONENTS, ...SNIPPETS],\n  imports: [\n    RhSharedModule,\n    RhSharedManageModule\n  ],\n  providers: [\n    RhSaleBusinessService\n  ]\n})\nexport class RhSaleBusinessModule { }\n","export const AllocateTransferPlanOrderDetailFormInterface = {\n  interfaceType: 'post',\n  port: 52883,\n  controllerName: 'GeneralTransferBusinessPlanApi',\n  interfaceName: 'GetWarehouseTransferPlanOrderDetailsDatas'\n};\n\nexport const AllocateTransferPlanOrderDetailTableFieldDataset = [\n  { name: 'MaterialCode', displayName: '物料编号', width: 120 },\n  { name: 'MaterialName', displayName: '物料名称', width: 150 },\n  { name: 'MaterialSpecification', displayName: '物料规格', width: 200, rhEllipsis: true },\n  { name: 'OutWarehouseCode', displayName: '出库仓库代码', width: 120 },\n  { name: 'OutWarehouseName', displayName: '出库仓库名称', width: 150 },\n  { name: 'OutWarehouseAreaCode', displayName: '出库库区代码', width: 120 },\n  { name: 'OutWarehouseAreaName', displayName: '出库库区名称', width: 150 },\n  { name: 'OutWarehouseShelfCode', displayName: '出库货架代码', width: 120 },\n  { name: 'OutWarehouseShelfName', displayName: '出库货架名称', width: 150 },\n  { name: 'OutStorageLocationCode', displayName: '出库库位代码', width: 120 },\n  { name: 'OutStorageLocationName', displayName: '出库库位名称', width: 150 },\n  { name: 'InWarehouseCode', displayName: '入库仓库代码', width: 120 },\n  { name: 'InWarehouseName', displayName: '入库仓库名称', width: 150 },\n  { name: 'InWarehouseAreaCode', displayName: '入库库区代码', width: 120 },\n  { name: 'InWarehouseAreaName', displayName: '入库库区名称', width: 150 },\n  { name: 'InWarehouseShelfCode', displayName: '入库货架代码', width: 120 },\n  { name: 'InWarehouseShelfName', displayName: '入库货架名称', width: 150 },\n  { name: 'InStorageLocationCode', displayName: '入库库位代码', width: 120 },\n  { name: 'InStorageLocationName', displayName: '入库库位名称', width: 150 },\n  {\n    name: 'MaterialCategory',\n    displayName: '物料类别',\n    width: 120,\n    type: 'array',\n    config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'MaterialCategory' }\n  },\n  {\n    name: 'MaterialAttribute',\n    displayName: '物料属性',\n    width: 120,\n    type: 'array',\n    config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'ProductMaterialAttribute' }\n  },\n  {\n    name: 'MeasureUnit',\n    displayName: '计量单位',\n    width: 120,\n    type: 'array',\n    config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n  },\n  {\n    name: 'MeasureAuxUnit',\n    displayName: '辅助单位',\n    width: 120,\n    type: 'array',\n    config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n  },\n  { name: 'MeasureAuxQty', displayName: '辅助数量', width: 120 },\n  { name: 'PlanQty', displayName: '计划数量', width: 120 },\n  { name: 'PlanTransactedQty', displayName: '计划已办理数量', width: 120 },\n  { name: 'Remark', displayName: '备注', width: 150, rhEllipsis: true }\n];\n\nexport const LocationMovePlanOrderDetailFormInterface = {\n  interfaceType: 'post',\n  port: 52883,\n  controllerName: 'GeneralTransferBusinessPlanApi',\n  interfaceName: 'GetStockLocationTransferPlanOrderDetailsDatas'\n};\n\nexport const LocationMovePlanOrderDetailTableFieldDataset = [\n  { name: 'MaterialCode', displayName: '物料编号', width: 120 },\n  { name: 'MaterialName', displayName: '物料名称', width: 150 },\n  { name: 'MaterialSpecification', displayName: '物料规格', width: 200, rhEllipsis: true },\n  { name: 'OutWarehouseCode', displayName: '出库仓库代码', width: 120 },\n  { name: 'OutWarehouseName', displayName: '出库仓库名称', width: 150 },\n  { name: 'OutWarehouseAreaCode', displayName: '出库库区代码', width: 120 },\n  { name: 'OutWarehouseAreaName', displayName: '出库库区名称', width: 150 },\n  { name: 'OutWarehouseShelfCode', displayName: '出库货架代码', width: 120 },\n  { name: 'OutWarehouseShelfName', displayName: '出库货架名称', width: 150 },\n  { name: 'OutStorageLocationCode', displayName: '出库库位代码', width: 120 },\n  { name: 'OutStorageLocationName', displayName: '出库库位名称', width: 150 },\n  { name: 'InWarehouseCode', displayName: '入库仓库代码', width: 120 },\n  { name: 'InWarehouseName', displayName: '入库仓库名称', width: 150 },\n  { name: 'InWarehouseAreaCode', displayName: '入库库区代码', width: 120 },\n  { name: 'InWarehouseAreaName', displayName: '入库库区名称', width: 150 },\n  { name: 'InWarehouseShelfCode', displayName: '入库货架代码', width: 120 },\n  { name: 'InWarehouseShelfName', displayName: '入库货架名称', width: 150 },\n  { name: 'InStorageLocationCode', displayName: '入库库位代码', width: 120 },\n  { name: 'InStorageLocationName', displayName: '入库库位名称', width: 150 },\n  {\n    name: 'MaterialCategory',\n    displayName: '物料类别',\n    width: 120,\n    type: 'array',\n    config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'MaterialCategory' }\n  },\n  {\n    name: 'MaterialAttribute',\n    displayName: '物料属性',\n    width: 120,\n    type: 'array',\n    config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'ProductMaterialAttribute' }\n  },\n  {\n    name: 'MeasureUnit',\n    displayName: '计量单位',\n    width: 120,\n    type: 'array',\n    config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n  },\n  {\n    name: 'MeasureAuxUnit',\n    displayName: '辅助单位',\n    width: 120,\n    type: 'array',\n    config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n  },\n  { name: 'MeasureAuxQty', displayName: '辅助数量', width: 120 },\n  { name: 'PlanQty', displayName: '计划数量', width: 120 },\n  { name: 'PlanTransactedQty', displayName: '计划已办理数量', width: 120 },\n  { name: 'Remark', displayName: '备注', width: 150, rhEllipsis: true }\n];\n","import { Injectable } from '@angular/core';\nimport { DataResultT, OpResult, RhBaseDto, RhSelectableDto } from 'rh-base/model';\nimport { MsgHelper, RhApiUrlsService, RhWmsSysConfigService } from 'rh-base/core';\nimport { InOutOrderDetailDto, InOutOrderMasterDto, MaterialInventoryDetailQueryDto } from './../../wms-model';\nimport { Observable } from 'rxjs';\nimport { InOutPlanOrderDetailDto, InOutPlanOrderMasterDto, MaterialInventoryDetailReadDto } from './stay-stock-business-model';\n\n@Injectable()\nexport class RhStayStockBusinessService {\n  constructor(private apiUrls: RhApiUrlsService, private wmsSysConfigSer: RhWmsSysConfigService) {}\n\n  get isEnableInPlan() {\n    return this.wmsSysConfigSer.getIsEnableInPlan();\n    // return false;\n  }\n\n  get isEnableNegativeInventory() {\n    return this.wmsSysConfigSer.getIsEnableNegativeInventory();\n  }\n\n  get isEnableOutPlan() {\n    return this.wmsSysConfigSer.getIsEnableOutPlan();\n  }\n\n  get isEnableExcessInWarehouse() {\n    return this.wmsSysConfigSer.getIsEnableExcessInWarehouse();\n  }\n\n  get IsEnableProductInInspect() {\n    return this.wmsSysConfigSer.getIsEnableProductInInspect();\n  }\n\n  get isEnableMaterialInInspect() {\n    return this.wmsSysConfigSer.getIsEnableMaterialInInspect();\n  }\n\n  initOutPlanVisibleSetting() {\n    const temp = {};\n    if (this.isEnableOutPlan) {\n      Object.assign(temp, { PlanQty: true, CompletedQty: true, SourceCompletedQty: false, PlanOrderId: true });\n    } else {\n      Object.assign(temp, { PlanQty: false, CompletedQty: false, SourceCompletedQty: true, PlanOrderId: false });\n    }\n    return temp;\n  }\n\n  initInPlanVisibleSetting() {\n    const temp = {};\n    if (this.isEnableInPlan) {\n      Object.assign(temp, { PlanQty: true, CompletedQty: true, SourceCompletedQty: false, PlanOrderId: true });\n    } else {\n      Object.assign(temp, { PlanQty: false, CompletedQty: false, SourceCompletedQty: true, PlanOrderId: false });\n    }\n    return temp;\n  }\n\n  saleOutCheck(datas: RhSelectableDto[], field = 'CurrentTransactQty') {\n    if (datas.some((f) => !f[field])) {\n      MsgHelper.ShowWarningMessage('办理数量不能为0或空！');\n      return false;\n    }\n    if (!this.isEnableNegativeInventory && datas.some((f) => f[field] > f.AvailableQty)) {\n      MsgHelper.ShowWarningMessage('未启用负库存！不能超额办理库存数量！');\n      return false;\n    }\n    // if (datas.some((f) => f[field] > f.SourceCompletedQty - f.ReturnQty)) {\n    //   MsgHelper.ShowWarningMessage(\n    //     '办理数量不能超过源单已入库数量-完成退货数量！'\n    //   );\n    //   return false;\n    // }\n    return true;\n  }\n\n  //#region 调拨计划开始\n\n  /**\n   *  创建仓库调拨计划单头数据\n   */\n  CreateWarehouseTransferPlanMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessPlanApi', 'CreateWarehouseTransferPlanMasterOrder', input);\n  }\n\n  /**\n   *  更新仓库调拨计划单头数据\n   */\n  UpdateWarehouseTransferPlanMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessPlanApi', 'UpdateWarehouseTransferPlanMasterOrder', input);\n  }\n\n  /**\n   *  获取仓库调拨计划单头数据\n   */\n  GetWarehouseTransferPlanOrderDatas(queryDto: RhBaseDto): Observable<DataResultT<InOutPlanOrderMasterDto[]>> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessPlanApi', 'GetWarehouseTransferPlanOrderDatas', queryDto);\n  }\n\n  /**\n   *  提交至审核仓库调拨计划单头数据\n   */\n  SumbitAuditWarehouseTransferPlanOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessPlanApi', 'SumbitAuditWarehouseTransferPlanOrder', input);\n  }\n\n  /**\n   *  批量移除仓库调拨计划单头数据\n   */\n  RemoveWarehouseTransferPlanOrders(InOutPlanOrderMasterDto: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessPlanApi', 'RemoveWarehouseTransferPlanOrders', InOutPlanOrderMasterDto);\n  }\n\n  /**\n   *  获取仓库调拨计划明细数据\n   */\n  GetWarehouseTransferPlanOrderDetailsDatas(queryDto: RhBaseDto): Observable<DataResultT<InOutPlanOrderDetailDto[]>> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessPlanApi', 'GetWarehouseTransferPlanOrderDetailsDatas', queryDto);\n  }\n\n  /**\n   *  存储仓库调拨计划明细数据\n   */\n  StoreWarehouseTransferPlanOrderDetails(planOrder: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessPlanApi', 'StoreWarehouseTransferPlanOrderDetails', planOrder);\n  }\n\n  /**\n   *  移除仓库调拨计划明细数据\n   */\n  RemoveWarehouseTransferPlanOrderDetails(InOutPlanOrderDetailDto: RhSelectableDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessPlanApi', 'RemoveWarehouseTransferPlanOrderDetails', InOutPlanOrderDetailDto);\n  }\n\n  /**\n   *  获取库存明细\n   */\n  GetMaterialInventoryDetailDatas(queryDto: MaterialInventoryDetailQueryDto): Observable<DataResultT<MaterialInventoryDetailReadDto[]>> {\n    return this.apiUrls.PostRhpWms('MaterialInventoryWebApi', 'GetMaterialInventoryDetailDatas', queryDto);\n  }\n  //#endregion 调拨计划结束\n\n  //#region 调拨办理开始\n\n  /**\n   *  创建仓库调拨办理单头数据\n   */\n  CreateWarehouseTransferTransactMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessTransactApi', 'CreateWarehouseTransferTransactMasterOrder', input);\n  }\n\n  /**\n   *  更新仓库调拨办理单头数据\n   */\n  UpdateWarehouseTransferTransactMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessTransactApi', 'UpdateWarehouseTransferTransactMasterOrder', input);\n  }\n\n  /**\n   *  获取仓库调拨办理单头数据\n   */\n  GetWarehouseTransferTransactionOrders(queryDto: RhBaseDto): Observable<DataResultT<InOutOrderMasterDto[]>> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessTransactApi', 'GetWarehouseTransferTransactionOrders', queryDto);\n  }\n\n  /**\n   *  提交至审核仓库调拨办理单头数据\n   */\n  SumbitAuditWarehouseTransferTransactMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessTransactApi', 'SumbitAuditWarehouseTransferTransactMasterOrder', input);\n  }\n\n  /**\n   *  移除仓库调拨办理单头数据\n   */\n  RemoveWarehouseTransferTransactMaterOrders(input: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessTransactApi', 'RemoveWarehouseTransferTransactMaterOrder', input);\n  }\n\n  /**\n   *  获取仓库调拨办理明细数据\n   */\n  GetWarehouseTransferTransactOrderDetailsDatas(queryDto: RhBaseDto): Observable<DataResultT<InOutOrderDetailDto[]>> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessTransactApi', 'GetWarehouseTransferTransactOrderDetailsDatas', queryDto);\n  }\n\n  /**\n   *  存储仓库调拨办理明细数据\n   */\n  StoreWarehouseTransferTransactOrderDetails(InOutOrderDetailDto: RhSelectableDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessTransactApi', 'StoreWarehouseTransferTransactOrderDetails', InOutOrderDetailDto);\n  }\n\n  /**\n   *  移除仓库调拨办理明细数据\n   */\n  RemoveWarehouseTransferTransactOrderDetails(InOutOrderDetailDto: RhSelectableDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms(\n      'GeneralTransferBusinessTransactApi',\n      'RemoveWarehouseTransferTransactOrderDetails',\n      InOutOrderDetailDto\n    );\n  }\n\n  //#endregion调拨办理结束\n\n  //#region 移库计划\n  /**\n   *  创建库位调拨计划单头数据\n   */\n  CreateStockLocationTransferPlanMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessPlanApi', 'CreateStockLocationTransferPlanMasterOrder', input);\n  }\n\n  /**\n   *  更新库位调拨计划单头数据\n   */\n  UpdateStockLocationTransferPlanMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessPlanApi', 'UpdateStockLocationTransferPlanMasterOrder', input);\n  }\n\n  /**\n   *  获取库位调拨计划单头数据\n   */\n  GetStockLocationTransferPlanOrderDatas(queryDto: RhBaseDto): Observable<DataResultT<InOutPlanOrderMasterDto[]>> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessPlanApi', 'GetStockLocationTransferPlanOrderDatas', queryDto);\n  }\n\n  /**\n   *  提交至审核库位调拨计划单头数据\n   */\n  SumbitAuditStockLocationTransferPlanOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessPlanApi', 'SumbitAuditStockLocationTransferPlanOrder', input);\n  }\n\n  /**\n   *  批量移除库位调拨计划单头数据\n   */\n  RemoveStockLocationTransferPlanOrders(InOutPlanOrderMasterDto: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessPlanApi', 'RemoveStockLocationTransferPlanOrders', InOutPlanOrderMasterDto);\n  }\n\n  /**\n   *  获取库位调拨计划明细数据\n   */\n  GetStockLocationTransferPlanOrderDetailsDatas(queryDto: RhBaseDto): Observable<DataResultT<InOutPlanOrderDetailDto[]>> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessPlanApi', 'GetStockLocationTransferPlanOrderDetailsDatas', queryDto);\n  }\n\n  /**\n   *  存储库位调拨计划明细数据\n   */\n  StoreStockLocationTransferPlanOrderDetails(planOrder: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessPlanApi', 'StoreStockLocationTransferPlanOrderDetails', planOrder);\n  }\n\n  /**\n   *  移除库位调拨计划明细数据\n   */\n  RemoveStockLocationTransferPlanOrderDetails(InOutPlanOrderDetailDto: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms(\n      'GeneralTransferBusinessPlanApi',\n      'RemoveStockLocationTransferPlanOrderDetails',\n      InOutPlanOrderDetailDto\n    );\n  }\n  //#endregion 移库计划结束\n\n  //#region 移库办理\n  /**\n   *  创建库位调拨办理单头数据\n   */\n  CreateStockLocationTransferTransactMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessTransactApi', 'CreateStockLocationTransferTransactMasterOrder', input);\n  }\n\n  /**\n   *  更新库位调拨办理单头数据\n   */\n  UpdateStockLocationTransferTransactMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessTransactApi', 'UpdateStockLocationTransferTransactMasterOrder', input);\n  }\n\n  /**\n   *  获取库位调拨办理单头数据\n   */\n  GetStockLocationTransferTransactionOrders(queryDto: RhBaseDto): Observable<DataResultT<InOutOrderMasterDto[]>> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessTransactApi', 'GetStockLocationTransferTransactionOrders', queryDto);\n  }\n\n  /**\n   *  提交至审核库位调拨办理单头数据\n   */\n  SumbitAuditStockLocationTransferTransactMasterOrder(input: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessTransactApi', 'SumbitAuditStockLocationTransferTransactMasterOrder', input);\n  }\n\n  /**\n   *  批量移除库位调拨办理单头数据\n   */\n  RemoveStockLocationTransferTransactMasterOrders(InOutOrderMasterDto: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms(\n      'GeneralTransferBusinessTransactApi',\n      'RemoveStockLocationTransferTransactMasterOrders',\n      InOutOrderMasterDto\n    );\n  }\n\n  /**\n   *  获取库位调拨办理明细数据\n   */\n  GetStockLocationTransferTransactOrderDetailsDatas(queryDto: RhBaseDto): Observable<DataResultT<InOutOrderDetailDto[]>> {\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessTransactApi', 'GetStockLocationTransferTransactOrderDetailsDatas', queryDto);\n  }\n\n  /**\n   *  存储库位调拨办理明细数据\n   */\n  StoreStockLocationTransferTransactOrderDetails(InOutOrderDetailDto: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms(\n      'GeneralTransferBusinessTransactApi',\n      'StoreStockLocationTransferTransactOrderDetails',\n      InOutOrderDetailDto\n    );\n  }\n\n  /**\n   *  移除库位调拨办理明细数据\n   */\n  RemoveStockLocationTransferTransactOrderDetails(InOutOrderDetailDto: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms(\n      'GeneralTransferBusinessTransactApi',\n      'RemoveStockLocationTransferTransactOrderDetails',\n      InOutOrderDetailDto\n    );\n  }\n  //#endregion 移库办理结束\n}\n","import { MsgHelper } from 'rh-base/core';\nimport { RhSafeAny, RhSelectableDto, DataResultT, RhBaseDto, RhSelectItem } from 'rh-base/model';\nimport { Component, OnInit, Input, SimpleChanges, Output, EventEmitter, ViewChild } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { RhStayStockBusinessService } from '../../stay-stock-business.service';\nimport { MaterialInventoryDetailQueryDto } from './../../../../wms-model';\nimport { RhBusinessManageService } from './../../../../business-manage/business-manage.service';\nimport { WarehouseMaterialControlParameter } from './../../../../business-manage/business-manage-model';\n\nclass QueryInput {\n  MaterialCode: string;\n  WarehouseCode: string;\n  StorageLocationCode?: string;\n  [prop: string]: RhSafeAny;\n}\n\n@Component({\n  selector: 'rh-material-inventory-choose-transfer',\n  templateUrl: './material-inventory-choose-transfer.component.html',\n  styleUrls: ['./material-inventory-choose-transfer.component.less']\n})\nexport class MaterialInventoryChooseTransferComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  @Input() rhQueryDto: QueryInput;\n  @Input() rhDescriptionInfo: RhBaseDto;\n  @Input() rhShowModalSign: number;\n  @Output() rhSelectedDatasChange = new EventEmitter<RhSelectableDto[]>();\n\n  isAllChecked = false;\n  isIndeterminate = false;\n  dataset: RhSelectableDto[] = [];\n  dataresult: DataResultT<RhSelectableDto[]>;\n  dataLoading = false;\n  selectDatas: RhSelectableDto[] = [];\n  tableVisibleSetting = {};\n\n  isShowDataModal = false;\n\n  // 仓库控制配置参数\n  currentWarehouseMaterialControlPara: WarehouseMaterialControlParameter;\n\n  get IsEnableStorageLocation() {\n    return this.currentWarehouseMaterialControlPara.IsEnableStorageLocation;\n  }\n\n  constructor(private operator: RhStayStockBusinessService, public businessManageSer: RhBusinessManageService) {\n    //\n  }\n\n  ngOnInit(): void {\n    this.businessManageSer.initInWarehouseVisibleSetting(this.currentWarehouseMaterialControlPara);\n    this.initTableVisibleSetting();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhQueryDto, rhShowModalSign } = changes;\n    if (rhShowModalSign && rhShowModalSign.currentValue) {\n      this.openDataModal();\n    }\n    if (rhShowModalSign && rhShowModalSign.currentValue == 0) {\n      this.closeDataModal();\n    }\n    this.initTableVisibleSetting();\n    if (rhQueryDto && rhQueryDto.currentValue) {\n      this.tableVisibleSetting = {\n        WarehouseCode: `$${this.rhQueryDto.WarehouseCode}`\n      };\n      //this.getDatas();\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(\n      this.tableVisibleSetting,\n      this.businessManageSer.initOutWarehouseVisibleSetting(this.currentWarehouseMaterialControlPara)\n    );\n  }\n\n  openDataModal() {\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.dataset = [];\n    this.selectDatas = [];\n    this.isAllChecked = this.isIndeterminate = false;\n    // this.dataset.forEach((ele) => (ele.select = false));\n    this.isShowDataModal = false;\n  }\n\n  confirmSelect() {\n    // if (this.selectDatas.some((f) => !f.TransactQty)) {\n    //   MsgHelper.ShowWarningMessage('请先填写选中物料信息的办理数量！');\n    // } else if (this.selectDatas.some((f) => f.AvailableQty < f.TransactQty)) {\n    //   MsgHelper.ShowWarningMessage('不能超额办理库存数量！');\n    // } else {\n    //   // this.selectDatas.forEach((f) => (f.InventoryQty = f.AvailableQty));\n    //   this.rhSelectedDatasChange.emit(this.selectDatas);\n    //   //this.closeDataModal();\n    // }\n    this.rhSelectedDatasChange.emit(this.selectDatas);\n  }\n\n  getSelectChange(datas: RhSelectableDto[]) {\n    this.selectDatas = datas || [];\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setDatas(result: DataResultT<RhSelectableDto[]>) {\n    if (result && result.Success) {\n      this.dataresult = result;\n      this.dataset = result.Attach;\n      this.dataset.forEach((f) => {\n        f.TransactQty = 0;\n        f.MeasureAuxQty = 0;\n      });\n    } else {\n      this.dataresult = null;\n      this.dataset = [];\n      MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n    }\n  }\n\n  getDatas() {\n    this.dataLoading = false;\n    const queryDto = MaterialInventoryDetailQueryDto.create();\n    Object.assign(queryDto, this.rhQueryDto);\n    queryDto.Mode = 8;\n    queryDto.WarehouseCode = this.rhQueryDto.WarehouseCode;\n    this.operator.GetMaterialInventoryDetailDatas(queryDto).subscribe(\n      (result) => {\n        if (result && result.Success) {\n          //this.dataresult = result;\n          this.dataset = result.Attach;\n          this.dataset.forEach((f) => (f.TransactQty = 0));\n        } else {\n          this.dataset = [];\n          MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n        }\n        this.dataLoading = false;\n      },\n      () => {\n        this.dataLoading = false;\n      }\n    );\n  }\n}\n","<nz-modal\n  nzTitle=\"选择物料\"\n  [nzVisible]=\"isShowDataModal\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"'60vw'\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <ng-container>\n        <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n          <ng-template #searchTpl>\n            <rh-dynamic-form\n              #queryForm\n              rhName=\"materialInventoryDetailsQueryForm\"\n              [rhValue]=\"rhQueryDto\"\n              (rhInterfaceDataChange)=\"setDatas($event)\"\n              (rhDataloadingChange)=\"dataLoadingChange($event)\"\n            >\n              <ng-template\n                rhTemplate=\"WarehouseCode\"\n                let-formgroup\n                let-setting=\"setting\"\n                let-hostSetting=\"hostSetting\"\n                let-formData=\"formData\"\n              >\n                <nz-form-item>\n                  <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                    <rh-warehouse-selector\n                      [formControl]=\"formgroup.get('WarehouseCode')\"\n                      [rhData]=\"formData\"\n                      [rhFieldData]=\"setting\"\n                      [rhSize]=\"hostSetting?.rhSize\"\n                    ></rh-warehouse-selector>\n                  </nz-form-control>\n                </nz-form-item>\n              </ng-template>\n            </rh-dynamic-form>\n          </ng-template>\n        </nz-alert>\n      </ng-container>\n      <ng-container>\n        <rh-dynamic-table\n          rhName=\"materialInventoryDetailsQueryTable\"\n          [rhTableData]=\"dataresult\"\n          [rhTableDataloading]=\"dataLoading\"\n          (rhSelectedDatasChange)=\"getSelectChange($event)\"\n          [rhVisibleSetting]=\"tableVisibleSetting\"\n        >\n        </rh-dynamic-table>\n      </ng-container>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { WarehouseMaterialControlParameter } from './../../../business-manage-model';\nimport { RhBusinessManageService } from './../../../business-manage.service';\nimport { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { DataResultT, OpMode, RhBaseDto, RhSafeAny, RhSelectableDto, RhTableButtonInfoDto } from 'rh-base/model';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport { Observable } from 'rxjs';\nimport { RhStayStockBusinessService } from '../../stay-stock-business.service';\nimport {\n  AllocateTransferPlanOrderDetailFormInterface,\n  AllocateTransferPlanOrderDetailTableFieldDataset\n} from '../../detail-source-table-config';\nimport { InOutOrderDetailDto } from './../../../../wms-model';\nimport * as _ from 'lodash';\n@Component({\n  selector: 'rh-allocate-transfer-handle-details',\n  templateUrl: './allocate-transfer-handle-details.component.html',\n  styleUrls: ['./allocate-transfer-handle-details.component.less']\n})\nexport class AllocateTransferHandleDetailsComponent implements OnInit {\n  @Input() rhOrder: RhBaseDto;\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter<RhSelectableDto[]>();\n\n  queryDto: RhBaseDto;\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto(\n      'deleteDetails',\n      '删除',\n      'primary',true,\n      'delete',\n      true,\n      null,\n      (datas, buttonInfo) => this.removeDatas(datas as RhSelectableDto[], buttonInfo),\n      false,\n      true\n    ),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  isVisibleSettingOver = true;\n  tableVisibleSetting = {};\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  sourceDefaultQueryDto = {};\n  isEnterEditStatus = false;\n  // 计划明细\n  planOrderDetailFormInterface = AllocateTransferPlanOrderDetailFormInterface;\n  planOrderDetailTableFieldDataset = AllocateTransferPlanOrderDetailTableFieldDataset;\n  planOrderDetailDataset: RhSelectableDto[] = [];\n  // 仓储数据\n  warehouseAreaDataset: RhSelectableDto[] = [];\n  warehouseShelfDataset: RhSelectableDto[] = [];\n  storageLocationDataset: RhSelectableDto[] = [];\n  InWarehouseAreaDataset: RhSelectableDto[] = [];\n  InWarehouseShelfDataset: RhSelectableDto[] = [];\n  InStorageLocationDataset: RhSelectableDto[] = [];\n  // 仓库控制配置参数\n  currentWarehouseMaterialControlPara: WarehouseMaterialControlParameter;\n  materialInventoryDetailsModalShowSign = 0;\n\n  editDisabled = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return !list.includes(data.OrderStatus);\n  };\n\n  // 配置参数\n  get getIsEnableAllocateTransferPlan() {\n    return this.businessManageSer.getIsEnableAllocateTransferPlan;\n  }\n  // 显示控制\n  get sourceDataModalTitle() {\n    return this.getIsEnableAllocateTransferPlan ? '选择计划明细数据' : '选择源单明细数据';\n  }\n  get isReadOnlyTable() {\n    return this.rhShowDetail || !this.rhOrder?.OrderId || this.isEnterEditStatus || this.editDisabled(this.rhOrder);\n  }\n  get readeOnlyButtonDataset() {\n    if (!this.rhOrder?.OrderId) return [];\n    else if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(private operator: RhStayStockBusinessService, public businessManageSer: RhBusinessManageService) {}\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  async ngOnChanges(changes: SimpleChanges): Promise<void> {\n    const { rhOrder } = changes;\n    if (rhOrder && rhOrder.currentValue && this.rhOrder.OrderId) {\n      // 获取仓库控制配置参数\n      await this.getWarehouseMaterialControlParameter();\n      // 设置表格字段显隐性配置\n      this.isVisibleSettingOver = false;\n      this.initTableVisibleSetting();\n      setTimeout(() => (this.isVisibleSettingOver = true));\n      // 获取明细数据\n      this.getDatas();\n      // 获取仓储数据\n      if (!this.rhShowDetail) {\n        this.getWarehouseInfos();\n      }\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(\n      this.tableVisibleSetting,\n      this.businessManageSer.initOutWarehouseVisibleSetting(this.currentWarehouseMaterialControlPara)\n    );\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.initInWarehouseVisibleSetting(this.currentWarehouseMaterialControlPara));\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('Out'));\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('In'));\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      OrderId: this.rhOrder.OrderId,\n      FactoryCode: this.rhOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetWarehouseTransferTransactOrderDetailsDatas(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        this.rhDetailsUpdate.emit(this.dataresult?.Attach || []);\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`);\n        } else {\n          if (this.getIsEnableAllocateTransferPlan) {\n            this.getPlanOrderDetails();\n          }\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (this.editDisabled(this.rhOrder)) {\n      MsgHelper.ShowWarningMessage('当前单据状态无法编辑出库办理明细！');\n      return;\n    }\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    return new Observable((observer) => {\n      this.businessManageSer.checkStoreDatas(details, 'allocate').then((checkRes) => {\n        if (!checkRes) {\n          observer.error();\n        } else {\n          // const dto = {\n          //   OrderMaster: this.rhOrder,\n          //   OrderDetails: details\n          // };\n          const msg = editType === 'add' ? '新增' : '编辑';\n          this.dataLoading = true;\n          this.operator.StoreWarehouseTransferTransactOrderDetails(details).subscribe(\n            (result) => {\n              if (result.Success) {\n                MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`);\n              } else {\n                MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n              }\n              this.dataLoading = false;\n              observer.next();\n              observer.complete();\n            },\n            () => {\n              this.dataLoading = false;\n              observer.error();\n            }\n          );\n        }\n      });\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[], buttonInfo: RhTableButtonInfoDto) {\n    buttonInfo.loading = true;\n    this.operator.RemoveWarehouseTransferTransactOrderDetails(details).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n          this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n        }\n        buttonInfo.loading = false;\n      },\n      () => (buttonInfo.loading = false)\n    );\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    const datas = details.map((data) => {\n      const temp = InOutOrderDetailDto.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 源单赋值\n      if (this.getIsEnableAllocateTransferPlan) {\n        temp.PlanOrderId = this.rhOrder.PlanOrderId;\n        temp.SourcePlannedQty = data.SourcePlannedQty || 0;\n        temp.PlanTransactedQty = data.PlanTransactedQty || 0;\n      } else {\n        temp.SourceOrderId = data.OrderCode;\n        temp.SourceOrderRowNum = data.OrderRowNum;\n        temp.SourceOrderQty = data.DeliveryQty;\n      }\n      // 单头赋值\n      temp.OrderId = this.rhOrder.OrderId;\n      temp.BusinessType = this.rhOrder.BusinessType;\n      temp.InWarehouseCode = this.rhOrder.InWarehouseCode;\n      temp.InWarehouseName = this.rhOrder.InWarehouseName;\n      temp.OutWarehouseCode = this.rhOrder.OutWarehouseCode;\n      temp.OutWarehouseName = this.rhOrder.OutWarehouseName;\n      temp.OutWarehouseAreaCode = data.WarehouseAreaCode;\n      temp.OutWarehouseAreaName = data.WarehouseAreaName;\n      temp.OutWarehouseShelfCode = data.WarehouseShelfCode;\n      temp.OutWarehouseShelfName = data.WarehouseShelfName;\n      temp.OutStorageLocationCode = data.StorageLocationCode;\n      temp.OutStorageLocationName = data.StorageLocationName;\n      temp.AvailableQty = data.AvailableQty;\n      temp.InventoryQty = data.InventoryQty;\n      temp.FreezeQty = data.FreezeQty;\n      temp.FactoryCode = this.rhOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n      }\n      this.dataresult = { Attach: (this.dataresult.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 启用计划，获取计划明细，用于初始化PlanTransactedQty */\n  getPlanOrderDetails() {\n    const queryDto = {\n      PlanOrderId: this.rhOrder.PlanOrderId,\n      SourceOrderId: this.rhOrder.SourceOrderId,\n      FactoryCode: this.rhOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetWarehouseTransferPlanOrderDetailsDatas(queryDto).subscribe((result) => {\n      if (result.Success) {\n        this.planOrderDetailDataset = result.Attach;\n        // 初始化办理明细的PlanTransactedQty\n        this.dataresult.Attach.forEach((data) => {\n          const item = this.planOrderDetailDataset.find(\n            (ele) =>\n              ele.MaterialCode === data.MaterialCode &&\n              ele.SourceOrderId === data.SourceOrderId &&\n              ele.SourceOrderRowNum === data.SourceOrderRowNum\n          );\n          if (item) {\n            data.PlanTransactedQty = item.PlanTransactedQty;\n          } else {\n            data.PlanTransactedQty = null;\n          }\n        });\n        this.dataresult = _.cloneDeep(this.dataresult);\n      } else {\n        this.planOrderDetailDataset = [];\n      }\n    });\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  openDataModal() {\n    if (this.getIsEnableAllocateTransferPlan) {\n      this.sourceDefaultQueryDto = {\n        PlanOrderId: this.rhOrder.PlanOrderId,\n        FactoryCode: this.rhOrder.FactoryCode\n      };\n      this.isShowDataModal = true;\n    } else {\n      this.sourceDefaultQueryDto = {\n        OrderCode: this.rhOrder.SourceOrderId ? `$${this.rhOrder.SourceOrderId}` : null,\n        FactoryCode: this.rhOrder.FactoryCode,\n        WarehouseCode: this.rhOrder.OutWarehouseCode\n      };\n      this.materialInventoryDetailsModalShowSign++;\n    }\n  }\n\n  closeDataModal() {\n    this.materialInventoryDetailsModalShowSign = 0;\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  onMaterialSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n    this.handleSourceDataset(this.selectedDatas);\n    this.materialInventoryDetailsModalShowSign = 0;\n    //this.closeDataModal();\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n\n  //#region 仓储相关区域开始\n  /** 根据是否启用，获取对应仓储信息 */\n  getWarehouseInfos() {\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseArea) {\n      this.businessManageSer\n        .getWarehouseAreaDataset({ Warehouse: this.rhOrder.OutWarehouseCode })\n        .then((res) => {\n          this.warehouseAreaDataset = res || [];\n        })\n        .catch(() => {\n          this.warehouseAreaDataset = [];\n        });\n    }\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseShelf) {\n      this.businessManageSer\n        .getWarehouseShelfDataset({ Warehouse: this.rhOrder.OutWarehouseCode })\n        .then((res) => {\n          this.warehouseShelfDataset = res || [];\n        })\n        .catch(() => {\n          this.warehouseShelfDataset = [];\n        });\n    }\n    if (this.currentWarehouseMaterialControlPara.IsEnableStorageLocation) {\n      this.businessManageSer\n        .getStorageLocationDataset({ Warehouse: this.rhOrder.OutWarehouseCode })\n        .then((res) => {\n          this.storageLocationDataset = res || [];\n        })\n        .catch(() => {\n          this.storageLocationDataset = [];\n        });\n    }\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseArea) {\n      this.businessManageSer\n        .getWarehouseAreaDataset({ Warehouse: this.rhOrder.InWarehouseCode })\n        .then((res) => {\n          this.InWarehouseAreaDataset = res || [];\n        })\n        .catch(() => {\n          this.InWarehouseAreaDataset = [];\n        });\n    }\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseShelf) {\n      this.businessManageSer\n        .getWarehouseShelfDataset({ Warehouse: this.rhOrder.InWarehouseCode })\n        .then((res) => {\n          this.InWarehouseShelfDataset = res || [];\n        })\n        .catch(() => {\n          this.InWarehouseShelfDataset = [];\n        });\n    }\n    if (this.currentWarehouseMaterialControlPara.IsEnableStorageLocation) {\n      this.businessManageSer\n        .getStorageLocationDataset({ Warehouse: this.rhOrder.InWarehouseCode })\n        .then((res) => {\n          this.InStorageLocationDataset = res || [];\n        })\n        .catch(() => {\n          this.InStorageLocationDataset = [];\n        });\n    }\n  }\n\n  /** 获取仓库控制参数配置 */\n  async getWarehouseMaterialControlParameter() {\n    const para = await this.businessManageSer.getWarehouseMaterialControlParameter({\n      WarehouseCode: this.rhOrder.OutWarehouseCode\n    });\n    this.currentWarehouseMaterialControlPara = this.businessManageSer.transformWarehouseMaterialControlParameter(para);\n  }\n\n  inWarehouseAreaCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.InWarehouseAreaDataset.find((ele) => ele.WarehouseAreaCode === code);\n      if (item) {\n        data.InWarehouseAreaName = item.WarehouseAreaName;\n      } else {\n        data.InWarehouseAreaName = null;\n      }\n    } else {\n      data.InWarehouseAreaName = null;\n    }\n  }\n\n  inWarehouseShelfCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.InWarehouseShelfDataset.find((ele) => ele.WarehouseShelfCode === code);\n      if (item) {\n        data.InWarehouseShelfName = item.WarehouseShelfName;\n      } else {\n        data.InWarehouseShelfName = null;\n      }\n    } else {\n      data.InWarehouseShelfName = null;\n    }\n  }\n\n  inStorageLocationCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.InStorageLocationDataset.find((ele) => ele.StorageLocationCode === code);\n      if (item) {\n        data.InStorageLocationName = item.StorageLocationName;\n      } else {\n        data.InStorageLocationName = null;\n      }\n    } else {\n      data.InStorageLocationName = null;\n    }\n  }\n\n  outWarehouseAreaCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseAreaDataset.find((ele) => ele.WarehouseAreaCode === code);\n      if (item) {\n        data.OutWarehouseAreaName = item.WarehouseAreaName;\n      } else {\n        data.OutWarehouseAreaName = null;\n      }\n    } else {\n      data.OutWarehouseAreaName = null;\n    }\n    // 强关联则清空下属字段\n    if (this.currentWarehouseMaterialControlPara.IsStrictCorrelation) {\n      data.OutWarehouseShelfCode = null;\n      data.OutWarehouseShelfName = null;\n      data.OutStorageLocationCode = null;\n      data.OutStorageLocationName = null;\n    }\n    // 获取库存数据\n    this.getMaterialSumerizeStockQtyBy(data);\n  }\n\n  outWarehouseShelfCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseShelfDataset.find((ele) => ele.WarehouseShelfCode === code);\n      if (item) {\n        data.OutWarehouseShelfName = item.WarehouseShelfName;\n      } else {\n        data.OutWarehouseShelfName = null;\n      }\n    } else {\n      data.OutWarehouseShelfName = null;\n    }\n    // 强关联则清空下属字段\n    if (this.currentWarehouseMaterialControlPara.IsStrictCorrelation) {\n      data.OutStorageLocationCode = null;\n      data.OutStorageLocationName = null;\n    }\n    // 获取库存数据\n    this.getMaterialSumerizeStockQtyBy(data);\n  }\n\n  outStorageLocationCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.storageLocationDataset.find((ele) => ele.StorageLocationCode === code);\n      if (item) {\n        data.OutStorageLocationName = item.StorageLocationName;\n      } else {\n        data.OutStorageLocationName = null;\n      }\n    } else {\n      data.OutStorageLocationName = null;\n    }\n    // 获取库存数据\n    this.getMaterialSumerizeStockQtyBy(data);\n  }\n\n  getMaterialSumerizeStockQtyBy(data: RhSelectableDto) {\n    this.businessManageSer.getMaterialSumerizeStockQtyBy(data, this.currentWarehouseMaterialControlPara, 'Out');\n  }\n\n  /** 获取货架显示列表，行编辑应用 */\n  getWarehouseShelfDatasetDisplay(data: RhSelectableDto): RhSelectableDto[] {\n    return this.businessManageSer.getWarehouseShelfDatasetDisplay(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      this.warehouseShelfDataset,\n      'Out'\n    );\n  }\n\n  /** 获取库位显示列表，行编辑应用 */\n  getStorageLocationDatasetDisplay(data: RhSelectableDto): RhSelectableDto[] {\n    return this.businessManageSer.getStorageLocationDatasetDisplay(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      this.storageLocationDataset,\n      'Out'\n    );\n  }\n  //#endregion 仓储相关区域结束\n}\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isVisibleSettingOver\">\n    <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n      <rh-dynamic-table\n        rhName=\"handleDetailsReadOnlyTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n        <ng-template rhTemplate=\"OutWarehouseAreaCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseAreaTpl\">\n            <nz-select\n              [(ngModel)]=\"data.OutWarehouseAreaCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"outWarehouseAreaCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of warehouseAreaDataset\"\n                [nzLabel]=\"item.WarehouseAreaCode\"\n                [nzValue]=\"item.WarehouseAreaCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseAreaTpl>{{ data.OutWarehouseAreaCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"OutWarehouseAreaName\" let-item let-data=\"data\">\n          {{ data.OutWarehouseAreaName }}\n        </ng-template>\n        <ng-template rhTemplate=\"OutWarehouseShelfCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseShelfTpl\">\n            <nz-select\n              [(ngModel)]=\"data.OutWarehouseShelfCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"outWarehouseShelfCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of getWarehouseShelfDatasetDisplay(data)\"\n                [nzLabel]=\"item.WarehouseShelfCode\"\n                [nzValue]=\"item.WarehouseShelfCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseShelfTpl>{{ data.OutWarehouseShelfCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"OutWarehouseShelfName\" let-item let-data=\"data\">\n          {{ data.OutWarehouseShelfName }}\n        </ng-template>\n        <ng-template rhTemplate=\"OutStorageLocationCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else storageLocationTpl\">\n            <nz-select\n              [(ngModel)]=\"data.OutStorageLocationCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"outStorageLocationCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of getStorageLocationDatasetDisplay(data)\"\n                [nzLabel]=\"item.StorageLocationCode\"\n                [nzValue]=\"item.StorageLocationCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #storageLocationTpl>{{ data.OutStorageLocationCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"OutStorageLocationName\" let-item let-data=\"data\">\n          {{ data.OutStorageLocationName }}\n        </ng-template>\n        <ng-template rhTemplate=\"InWarehouseAreaCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseAreaTpl\">\n            <nz-select\n              [(ngModel)]=\"data.InWarehouseAreaCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"inWarehouseAreaCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of InWarehouseAreaDataset\"\n                [nzLabel]=\"item.WarehouseAreaCode\"\n                [nzValue]=\"item.WarehouseAreaCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseAreaTpl>{{ data.InWarehouseAreaCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"InWarehouseAreaName\" let-item let-data=\"data\">\n          {{ data.InWarehouseAreaName }}\n        </ng-template>\n        <ng-template rhTemplate=\"InWarehouseShelfCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseShelfTpl\">\n            <nz-select\n              [(ngModel)]=\"data.InWarehouseShelfCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"inWarehouseShelfCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of InWarehouseShelfDataset\"\n                [nzLabel]=\"item.WarehouseShelfCode\"\n                [nzValue]=\"item.WarehouseShelfCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseShelfTpl>{{ data.InWarehouseShelfCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"InWarehouseShelfName\" let-item let-data=\"data\">\n          {{ data.InWarehouseShelfName }}\n        </ng-template>\n        <ng-template rhTemplate=\"InStorageLocationCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else storageLocationTpl\">\n            <nz-select\n              [(ngModel)]=\"data.InStorageLocationCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"inStorageLocationCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of InStorageLocationDataset\"\n                [nzLabel]=\"item.StorageLocationCode\"\n                [nzValue]=\"item.StorageLocationCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #storageLocationTpl>{{ data.InStorageLocationCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"InStorageLocationName\" let-item let-data=\"data\">\n          {{ data.InStorageLocationName }}\n        </ng-template>\n        <ng-template rhTemplate=\"SN\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else SNTpl\">\n            <input\n              nz-input\n              [(ngModel)]=\"data.SN\"\n              [placeholder]=\"item?.displayName\"\n              [ngStyle]=\"{ border: !data.SN && currentWarehouseMaterialControlPara.IsEnableSN ? '1px solid red' : '1px solid #d9d9d9' }\"\n            />\n            <p style=\"color: red; margin-bottom: 0\" *ngIf=\"!data.SN && currentWarehouseMaterialControlPara.IsEnableSN\">请输入条码</p>\n          </ng-container>\n          <ng-template #SNTpl>{{ data.SN }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"ProductionDate\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else ProDateTpl\">\n            <nz-date-picker\n              nz-input\n              [(ngModel)]=\"data.ProductionDate\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              [ngStyle]=\"{\n                border:\n                  !data.ProductionDate && currentWarehouseMaterialControlPara.IsEnableExpirationDate ? '1px solid red' : '1px solid #d9d9d9'\n              }\"\n            ></nz-date-picker>\n            <p\n              style=\"color: red; margin-bottom: 0\"\n              *ngIf=\"!data.ProductionDate && currentWarehouseMaterialControlPara.IsEnableExpirationDate\"\n            >\n              请输入生产日期\n            </p>\n          </ng-container>\n          <ng-template #ProDateTpl>{{ data.ProductionDate | date : 'yyyy-MM-dd' }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"LotNum\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else LotNumTpl\">\n            <input\n              nz-input\n              [(ngModel)]=\"data.LotNum\"\n              [placeholder]=\"item?.displayName\"\n              [ngStyle]=\"{\n                border: !data.LotNum && currentWarehouseMaterialControlPara.IsEnableLotNum ? '1px solid red' : '1px solid #d9d9d9'\n              }\"\n            />\n            <p style=\"color: red; margin-bottom: 0\" *ngIf=\"!data.LotNum && currentWarehouseMaterialControlPara.IsEnableLotNum\">\n              请输入批次号\n            </p>\n          </ng-container>\n          <ng-template #LotNumTpl>{{ data.LotNum }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"AvailableQty\" let-item let-data=\"data\">\n          {{ data.AvailableQty }}\n        </ng-template>\n      </rh-dynamic-table>\n    </ng-container>\n    <ng-template #handleTpl>\n      <rh-dynamic-table\n        rhName=\"handleDetailsTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n      </rh-dynamic-table>\n    </ng-template>\n  </ng-container>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"sourceDataModalTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div *ngIf=\"isShowDataModal\">\n      <rh-dynamic-single-table\n        rhName=\"planOrderDetailTable\"\n        [rhInterfaceInfo]=\"planOrderDetailFormInterface\"\n        [rhDefaultFieldDataset]=\"planOrderDetailTableFieldDataset\"\n        [rhPara]=\"sourceDefaultQueryDto\"\n        (rhSelectedDatasChange)=\"onSelectModal($event)\"\n      ></rh-dynamic-single-table>\n    </div>\n  </nz-card>\n</nz-modal>\n\n<rh-material-inventory-choose-transfer\n  (rhSelectedDatasChange)=\"onMaterialSelectModal($event)\"\n  [rhQueryDto]=\"sourceDefaultQueryDto\"\n  [rhShowModalSign]=\"materialInventoryDetailsModalShowSign\"\n>\n</rh-material-inventory-choose-transfer>\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { CustomizeBaseTableComponent, DynamicFormComponent } from 'rh-base/shared';\nimport { RhDynamicInterfaceDto, RhSelectableDto, RhTableQueryOptionDto, CodeClassModel, RhDynamicTableFieldDto } from 'rh-base/model';\n\n@Component({\n  selector: 'rh-allocate-transfer-plan-table',\n  templateUrl: './allocate-transfer-plan-table.component.html',\n  styleUrls: ['./allocate-transfer-plan-table.component.less']\n})\nexport class AllocateTransferPlanTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n\n  @Input() rhSingleMode = true;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() rhDisabled: boolean;\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto>();\n\n  rhName = 'AllocateTransferPlanOrderSelector';\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n  defaultInterfaceInfo: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'GeneralTransferBusinessPlanApi',\n    interfaceName: 'GetWarehouseTransferPlanOrderDatas'\n  };\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [\n    { name: 'PlanOrderId', displayName: '计划单号', placeholder: '计划单号', editable: true, visible: true },\n    {\n      name: 'OrderStatus',\n      displayName: '单据状态',\n      placeholder: '单据状态',\n      editable: false,\n      defaultValue: 'WaitOutWarehouse',\n      visible: false\n    }\n  ];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [\n    { name: 'PlanOrderId', displayName: '计划单号', width: 150 },\n    { name: 'OutWarehouseCode', displayName: '出库仓库代码', width: 150 },\n    { name: 'OutWarehouseName', displayName: '出库仓库名称', width: 150 },\n    { name: 'InWarehouseCode', displayName: '入库仓库代码', width: 150 },\n    { name: 'InWarehouseName', displayName: '入库仓库名称', width: 150 },\n    { name: 'Remark', displayName: '备注', width: 120, rhEllipsis: true }\n  ];\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  declare selectedDatas: RhSelectableDto[];\n\n  constructor() {\n    //\n    super();\n  }\n\n  ngOnInit(): void {\n    this.rhInterfaceInfo = this.rhInterfaceInfo || this.defaultInterfaceInfo;\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n}\n","<!-- 搜索Form区域 -->\n<div class=\"search-area rh-full\">\n  <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n    <ng-template #searchTpl>\n      <rh-dynamic-form\n        #queryForm\n        rhName=\"{{ rhName }}Form\"\n        [rhValue]=\"rhDefaultQueryDto\"\n        (rhInterfaceDataChange)=\"setDatas($event)\"\n        (rhDataloadingChange)=\"dataLoadingChange($event)\"\n        (rhOutParaChange)=\"setInitFieldDataset($event)\"\n        [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n        [(rhFormInterface)]=\"rhInterfaceInfo\"\n      ></rh-dynamic-form>\n    </ng-template>\n  </nz-alert>\n</div>\n<!-- 搜索结果Table展示区域 -->\n<div class=\"table-area\">\n  <rh-dynamic-table\n    rhName=\"{{ rhName }}Table\"\n    [rhTableData]=\"dataresult\"\n    [rhTableDataloading]=\"dataLoading\"\n    [rhDefaultFieldDataset]=\"defaultTableFieldDataset\"\n    (rhRefresh)=\"refreshDatas($event)\"\n    (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\"\n    [rhSingleMode]=\"rhSingleMode\"\n  ></rh-dynamic-table>\n</div>\n","import { Component, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, SimpleChanges } from '@angular/core';\nimport { NzSizeLDSType } from 'ng-zorro-antd/core/types';\nimport { provideValueAccessor, RhRouteHelper } from 'rh-base/core';\nimport {\n  RhSelectableDto,\n  RhDynamicFormFieldDto,\n  RhSafeAny,\n  RhDynamicInterfaceDto,\n  RhDynamicCustomizeControlConfigDto,\n  RhRelatedFieldDataDto,\n  RhCustomizeEventSettingDto,\n  RhDisplayMode\n} from 'rh-base/model';\nimport { CustomizeBaseControlComponent, RhBaseDynamicService } from 'rh-base/shared';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { AllocateTransferPlanTableComponent } from './allocate-transfer-plan-table/allocate-transfer-plan-table.component';\n\n@Component({\n  selector: 'rh-allocate-transfer-plan-selector',\n  templateUrl: './allocate-transfer-plan-selector.component.html',\n  styleUrls: ['./allocate-transfer-plan-selector.component.less']\n})\nexport class AllocateTransferPlanSelectorComponent extends CustomizeBaseControlComponent {\n  rhRelatedFieldData = null;\n  @ViewChild(AllocateTransferPlanTableComponent) tableComp: AllocateTransferPlanTableComponent;\n  @Input() rhDynamicKey = 'AllocateTransferWarehousingPlanOrder';\n  @Input() rhTitle = '选择调拨计划';\n  @Input() declare rhSize: NzSizeLDSType;\n  @Input() declare rhDisplayMode: RhDisplayMode;\n\n  @Input() rhProductCode: string;\n\n  iconSetting = 'search';\n  @Input() rhSingleMode = true;\n\n  formKeyFieldName = 'PlanOrderId';\n  formTextFieldName = 'PlanOrderId';\n\n  modelKeyFieldName = 'PlanOrderId';\n  modelTextFieldName = 'PlanOrderId';\n\n  // // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto>();\n  /** 对应table选中的数据 */\n  rhModel: RhSelectableDto = {};\n\n  /** 动态form字段配置数据 */\n  @Input() rhFieldData: RhDynamicFormFieldDto;\n  /** 整个form的数据 */\n  @Input() declare rhData: RhSafeAny;\n\n  /** 表格Loading */\n  // dataLoading = false;\n  // dataresult: DataResultT<RhSelectableDto[]>;\n\n  /** selector input上展示的数据，一般为中文 */\n  //displayName: string;\n\n  declare selectedData: RhSelectableDto[];\n\n  /** 自定义组件的自定义执行函数 */\n  cb: (data: RhSafeAny, ctx: RhSafeAny) => void;\n\n  /** 该组件关联的form名称 */\n  formName: string;\n\n  url: string;\n\n  /** 设置默认搜索接口 */\n  defaultFormInterface: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'GeneralTransferBusinessPlanApi',\n    interfaceName: 'GetWarehouseTransferPlanOrderDatas'\n  };\n\n  mappedList = [\n    { sourceName: this.modelKeyFieldName, mappedName: this.formKeyFieldName },\n    { sourceName: this.modelTextFieldName, mappedName: this.formTextFieldName },\n    { sourceName: 'SourceOrderId', mappedName: 'SourceOrderId' },\n    // { sourceName: 'SourceOrderRowNum', mappedName: 'SourceOrderRowNum' },\n    { sourceName: 'CustomerCode', mappedName: 'CustomerCode' },\n    { sourceName: 'CustomerName', mappedName: 'CustomerName' },\n    { sourceName: 'Carrier', mappedName: 'Carrier' },\n    { sourceName: 'ReceivingAddress', mappedName: 'ReceivingAddress' },\n    { sourceName: 'OutWarehouseCode', mappedName: 'OutWarehouseCode' },\n    { sourceName: 'OutWarehouseName', mappedName: 'OutWarehouseName' },\n    { sourceName: 'InWarehouseCode', mappedName: 'InWarehouseCode' },\n    { sourceName: 'InWarehouseName', mappedName: 'InWarehouseName' }\n  ];\n\n  constructor(\n    public fb: UntypedFormBuilder,\n    public cdr: ChangeDetectorRef,\n    public router: Router,\n    public dynamicSer: RhBaseDynamicService\n  ) {\n    super(cdr, dynamicSer);\n    this.url = RhRouteHelper.getRealRoute(this.router.url);\n  }\n\n  ngOnInit(): void {\n    this.rhPlaceholder = this.rhFieldData.placeholder as any;\n    this.formName = this.rhFieldData.relatedComponentName;\n    this.setCbValue();\n  }\n\n  // 自定义表单项配置\n  ngOnChanges(changes: SimpleChanges) {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue && rhData.currentValue[this.formKeyFieldName] === null) {\n      this.resetControlValue();\n    } else {\n      this.rhModel = {};\n    }\n  }\n\n  // dataLoadingChange(status: boolean) {\n  //   this.dataLoading = status;\n  // }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    // if (data?.length === 1 && this.rhSingleMode) {\n    //   this.selectedData = data[0];\n    // } else {\n    //   this.selectedData = data;\n    // }\n    this.selectedData = data || [];\n  }\n\n  // setDatas(result: DataResultT<RhSelectableDto[]>) {\n  //   if (result && result.Success) {\n  //     this.dataresult = result;\n  //   } else {\n  //     MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n  //   }\n  // }\n\n  /** 根据填入的code值，获取对应的完整数据，回填到输入框 */\n  getTargetDatas(code: string) {\n    // 显示代码 不需要\n    // if (!this.defaultFormInterface) {\n    //   return;\n    // }\n    // const queryDto = {};\n    // queryDto[this.modelKeyFieldName] = `$${code}`;\n    // this.getTargetDatasVisHttpHandler(this.defaultFormInterface, queryDto, this.rhFieldData);\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n  }\n\n  //#region customize selector interface区域\n  confirmSelect() {\n    this.rhModel = this.selectedData[0];\n    this.rhModelChange.emit(this.selectedData);\n    // if (this.rhSingleMode) {\n    //   this.value = this.rhModel[this.modelKeyFieldName];\n    //   this.displayName = this.rhModel[this.modelTextFieldName];\n    //   this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // } else {\n    //   this.value = (this.rhModel as RhSafeAny[]).map((ele) => ele[this.modelKeyFieldName]) as RhSafeAny;\n    //   // 多选的时候只会显示多个代码\n    //   this.displayName = (this.value as RhSafeAny).toString();\n    // }\n    this.value = this.rhModel[this.modelKeyFieldName];\n    this.displayName = this.rhModel[this.modelTextFieldName];\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // 执行对应控件定义的代码\n    if (this.rhData && this.rhModel && this.cb) {\n      this.cb(this.rhData, this.rhModel);\n    }\n    this.setFormDataViaRelatedDatas();\n    // 执行form的相关字段赋值操作\n    this.triggerRelatedForm();\n    this.closeDataModal();\n  }\n\n  resetControlValue() {\n    this.displayName = null;\n    // 重置form对应数据对象\n    this.rhData[this.formKeyFieldName] = null;\n    this.rhData[this.formTextFieldName] = null;\n    // 清空数据中的字段的值\n    this.mappedList.forEach((ele) => {\n      this.rhData[ele.mappedName] = null;\n    });\n    this.rhModel = null;\n  }\n\n  setCbValue() {\n    const cbString = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.cb;\n    if (cbString) {\n      const fn = Function(`return ${cbString}`);\n      if (fn) {\n        this.cb = fn();\n      } else {\n        this.cb = this.setFormData;\n      }\n    } else {\n      // 当没有配置回调函数时，执行默认的回调函数\n      this.cb = this.setFormData;\n    }\n  }\n\n  /** 设置form对应的数据对象的值\n   * @param data form对应的数据对象\n   * @params 设置或者对应table选择的数据\n   */\n  setFormData(data: RhSafeAny, ctx: RhSelectableDto) {\n    data[this.formKeyFieldName] = ctx[this.modelKeyFieldName];\n    data[this.formTextFieldName] = ctx[this.modelTextFieldName];\n  }\n\n  setFormDataViaRelatedDatas() {\n    let relatedDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedModelDatas;\n    if (!relatedDatas?.length) {\n      relatedDatas = this.mappedList;\n    }\n    if (relatedDatas?.length) {\n      relatedDatas.forEach((ele) => {\n        this.rhData[ele.mappedName] = this.rhModel[ele.sourceName];\n      });\n    }\n  }\n\n  triggerRelatedForm() {\n    const tempDatas = (this.rhFieldData.config as RhDynamicCustomizeControlConfigDto)?.relatedFieldDatas;\n    const relatedDatas: RhRelatedFieldDataDto[] = tempDatas && tempDatas.length ? tempDatas : this.mappedList;\n    const data: RhCustomizeEventSettingDto = {\n      id: `${this.url}_${this.formName}`,\n      eventType: null,\n      options: null,\n      value: this.rhModel,\n      relatedFieldDatas: relatedDatas\n    };\n    this.dynamicSer.formCustomizeEventTrigger(data);\n  }\n  //#endregion customize selector interface区域结束\n}\n","<nz-input-group [nzSize]=\"rhSize\" [nzSuffix]=\"suffixIconSearch\" [nzAddOnAfter]=\"addOnAfter\">\n  <input type=\"text\" nz-input [ngModel]=\"displayName\" [placeholder]=\"rhPlaceholder\" readonly=\"readonly\" />\n</nz-input-group>\n<ng-template #suffixIconSearch>\n  <a *ngIf=\"displayName && !rhDisabled\" class=\"link-suffix\" (click)=\"clearInputInfo()\">\n    <i nz-icon nzType=\"close-circle\"></i>\n  </a>\n</ng-template>\n\n<ng-template #addOnAfter>\n  <button nz-button nzType=\"link\" type=\"button\" nzSize=\"small\">\n    <a (click)=\"openDataModal($event)\">\n      <i nz-icon [nzType]=\"iconSetting\"></i>\n    </a>\n  </button>\n</ng-template>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"rhTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedData\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-allocate-transfer-plan-table\n        [rhModel]=\"rhModel\"\n        (rhModelChange)=\"onSelectModal($event)\"\n        [rhInterfaceInfo]=\"defaultFormInterface\"\n        [rhSingleMode]=\"rhSingleMode\"\n        [rhDefaultQueryDto]=\"rhDefaultQueryDto\"\n      ></rh-allocate-transfer-plan-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { RhSharedManageService } from './../../../shared-manage/shared-manage.service';\nimport { RhBusinessManageService } from './../../business-manage.service';\nimport { BusinessType } from './../../business-type';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport {\n  CodeClassModel,\n  DataResultT,\n  OpMode,\n  OpResult,\n  RhBaseDto,\n  RhDynamicTableFieldDto,\n  RhLoginedUserDto,\n  RhSafeAny,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  RhTableQueryOptionDto\n} from 'rh-base/model';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\nimport { RhStayStockBusinessService } from '../stay-stock-business.service';\n\ntype TabType = 'edit' | 'detail' | 'audit';\n\n@Component({\n  selector: 'rh-allocate-transfer-handle',\n  templateUrl: './allocate-transfer-handle.component.html',\n  styleUrls: ['./allocate-transfer-handle.component.less']\n})\nexport class AllocateTransferHandleComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  BusinessType = BusinessType.WarehouseTransfer;\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n  /** 显示配置 */\n  visibleSetting = {};\n  /** 单据明细数据，审核需要 */\n  orderDetails: RhSelectableDto[] = [];\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  isAsCreated = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n\n  get isEnableOutPlan() {\n    return this.businessManageSer.IsEnableOutPlan;\n  }\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto)),\n    new RhTableButtonInfoDto('submit', '提交审核', 'default', false, 'form', false, null, (data) => this.submitDataToAudit(data as RhBaseDto)),\n    new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) => this.openDetailTab({ data } as RhBaseDto, 'audit'))\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto(\n      'new',\n      '出库办理',\n      'primary',\n      false,\n      'file',\n      false,\n      null,\n      () => {\n        this.businessManageSer.controlTransactOperation(() => this.openEditTab(), this.titleButtonDataset, 0);\n      },\n      true,\n      true\n    )\n  ];\n\n  beforeSubmit = async (data: RhBaseDto, context: DynamicFormComponent) => {\n    let result: OpResult = null;\n    const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n    context.submitLoading = true;\n    try {\n      // 出库需要判断锁库情况\n      const isEnable = await this.businessManageSer.controlSubmitFormOperation([data]);\n      if (!isEnable) {\n        context.submitLoading = false;\n        return false;\n      }\n      //\n      if (this.editDto.OpSign === OpMode.OpAdd) {\n        // 基本信息\n        data.BusinessType = this.BusinessType;\n        data.OrderCreatorCode = this.currentUser.DisplayName;\n        data.OrderCreatorName = this.currentUser.UserName;\n\n        result = await this.operator.CreateWarehouseTransferTransactMasterOrder(data).toPromise();\n      } else {\n        result = await this.operator.UpdateWarehouseTransferTransactMasterOrder(data).toPromise();\n      }\n      if (result && result.Success) {\n        MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n        this.editDto.OrderId = result?.Attach?.OrderId;\n        this.isShowEditForm = false;\n        this.getDetails();\n      } else {\n        MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n      }\n    } catch (error) {\n      //\n    } finally {\n      context.submitLoading = false;\n    }\n\n    return false;\n  };\n\n  beforeSubmitAudit = (data: RhBaseDto) => {\n    if (!data.IsPass && !data.AuditMessage) {\n      MsgHelper.ShowWarningMessage('审核不通过，必须填写审核信息！');\n      return;\n    }\n    // 基本信息\n    data.OrderMaster = this.editDto;\n    data.OrderDetails = this.orderDetails;\n    data.Auditor = this.currentUser.DisplayName;\n    data.AuditorId = this.currentUser.UserName;\n\n    return true;\n  };\n\n  constructor(\n    private operator: RhStayStockBusinessService,\n    public businessManageSer: RhBusinessManageService,\n    public storage: RhStorageService,\n    public sharedManageSer: RhSharedManageService\n  ) {}\n\n  ngOnInit(): void {\n    this.setUserInfo();\n    this.initEditButtonVisible();\n    this.initVisibleSetting();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  initEditButtonVisible() {\n    this.editButtonDataset[0].visible = this.editVisible.toString();\n    this.editButtonDataset[1].visible = this.isCreated.toString();\n    this.editButtonDataset[2].visible = this.auditVisible.toString();\n  }\n\n  initVisibleSetting() {\n    Object.assign(this.visibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('allocate'));\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {\n        TransactorCode: this.currentUser.UserName,\n        TransactorName: this.currentUser.DisplayName,\n        FactoryCode: this.currentUser.FactoryCode\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.editDto = null;\n    this.selectedIndex = 0;\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.selectedIndex = 1;\n  }\n\n  // 明细变化后\n  getDetails(details?: RhSelectableDto[]) {\n    if (details) {\n      this.orderDetails = details;\n    } else {\n      const queryDto = { OrderId: this.editDto.OrderId };\n      this.operator.GetWarehouseTransferTransactionOrders(queryDto).subscribe((result) => {\n        if (result.Success && result.Attach.length === 1) {\n          this.editDto = result.Attach[0];\n          this.editDto.OpSign = OpMode.OpEdit;\n        }\n      });\n    }\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    } else if (index === 1) {\n      this.orderDetails = [];\n    }\n  }\n\n  //#region 操作区域开始\n  /** 提交审核 */\n  submitDataToAudit(data: RhBaseDto) {\n    if (this.isCreated(data)) {\n      const dto = { OrderId: data.OrderId };\n      this.dataLoading = true;\n      this.operator.SumbitAuditWarehouseTransferTransactMasterOrder(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('提交审核成功！');\n            if (this.selectedIndex === 0) this.getDatas();\n            this.closeEditTab();\n          } else {\n            MsgHelper.ShowWarningMessage(`提交审核失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行提交审核！');\n    }\n  }\n\n  /** 审核 */\n  auditData(data: RhBaseDto) {\n    if (this.auditVisible(data)) {\n      this.openAuditDataModal(data);\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行审核！');\n    }\n  }\n\n  /** 打开审核弹窗 */\n  openAuditDataModal(data: RhBaseDto) {\n    this.auditDto = { OrderId: data.OrderId };\n    this.isShowAuditDataModal = true;\n  }\n\n  /** 关闭审核弹窗 */\n  closeAuditDataModal() {\n    this.auditDto = {};\n    this.isShowAuditDataModal = false;\n  }\n\n  /** 审核接口返回 */\n  onAuditData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('审核出库办理单据成功！');\n      this.closeAuditDataModal();\n      this.getDetails();\n    } else {\n      MsgHelper.ShowWarningModal(`审核出库办理单据失败！${result.Message}`);\n    }\n  }\n\n  /** 删除办理单据 */\n  removeDatas(datas: RhBaseDto[]) {\n    const some = datas.some((f) => !this.isAsCreated(f));\n    if (some) {\n      MsgHelper.ShowWarningMessage('只能删除制单状态的数据！');\n    } else {\n      this.dataLoading = true;\n      this.operator.RemoveWarehouseTransferTransactMaterOrders(datas as RhSafeAny).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('删除成功！');\n            this.getDatas();\n          } else {\n            MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    }\n  }\n  //#endregion 操作区域结束\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  ></rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                [rhVisibleSetting]=\"visibleSetting\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              ></rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>调拨办理</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"出库单单头\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button\n                    *ngIf=\"editVisible(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"isShowEditForm = true\"\n                  >\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button\n                    *ngIf=\"isCreated(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"submitDataToAudit(editDto)\"\n                  >\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                  <button *ngIf=\"auditVisible(editDto)\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else detailsDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  [rhVisibleSetting]=\"visibleSetting\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template\n                    rhTemplate=\"OutWarehouseCode\"\n                    let-formgroup\n                    let-setting=\"setting\"\n                    let-hostSetting=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-warehouse-selector\n                          rhInventoryControlSpecialType=\"Warehouse\"\n                          [formControl]=\"formgroup.get('OutWarehouseCode')\"\n                          [rhData]=\"formData\"\n                          [rhFieldData]=\"setting\"\n                          [rhSize]=\"hostSetting?.rhSize\"\n                        >\n                        </rh-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                  <ng-template rhTemplate=\"PlanOrderId\" let-formgroup let-setting=\"setting\" let-formData=\"formData\">\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-allocate-transfer-plan-selector\n                          [formControl]=\"formgroup.get('PlanOrderId')\"\n                          [rhFieldData]=\"setting\"\n                          [rhDisplayMode]=\"1\"\n                          [rhData]=\"formData\"\n                        ></rh-allocate-transfer-plan-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"出库单单体\">\n              <rh-allocate-transfer-handle-details [rhOrder]=\"editDto\" (rhDetailsUpdate)=\"getDetails($event)\">\n              </rh-allocate-transfer-handle-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"出库单单头\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <button\n                  *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\"\n                  nz-button\n                  nzType=\"primary\"\n                  nzSize=\"small\"\n                  type=\"button\"\n                  (click)=\"auditData(editDto)\"\n                >\n                  <i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n                </button>\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"detailsDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"出库单单体\">\n              <rh-allocate-transfer-handle-details [rhOrder]=\"editDto\" [rhShowDetail]=\"true\" (rhDetailsUpdate)=\"getDetails($event)\">\n              </rh-allocate-transfer-handle-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #detailsDescription>\n  <rh-dynamic-description\n    *ngIf=\"isRefreshDesc\"\n    rhName=\"detailsDescription\"\n    [rhValue]=\"editDto\"\n    [rhVisibleSetting]=\"visibleSetting\"\n  ></rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'出库办理审核'\"\n  [nzVisible]=\"isShowAuditDataModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeAuditDataModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #auditDataForm\n    rhName=\"auditDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"auditDto\"\n    [rhBeforeSubmit]=\"beforeSubmitAudit\"\n    (rhInterfaceDataChange)=\"onAuditData($event)\"\n    (rhClose)=\"closeAuditDataModal()\"\n  >\n    <ng-template rhTemplate=\"IsPass\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-radio-group [formControl]=\"formgroup.get('IsPass')\" (ngModelChange)=\"businessManageSer.isPassChange($event, formgroup)\">\n            <label nz-radio [nzValue]=\"true\">是</label>\n            <label nz-radio [nzValue]=\"false\">否</label>\n          </nz-radio-group>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"AuditMessage\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"!formgroup.get('IsPass').value\"> {{ setting.displayName }}</nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <textarea\n            nz-input\n            [formControl]=\"formgroup.get('AuditMessage')\"\n            [placeholder]=\"setting.placeholder\"\n            [nzAutosize]=\"{ minRows: 2 }\"\n          ></textarea>\n          <div *ngIf=\"editDto?.AuditMessage\">\n            <span style=\"color: #faad14\">上一次审核信息：{{ editDto?.AuditMessage }}</span>\n          </div>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>\n","/** 出入库计划单单头模型 */\nexport class InOutPlanOrderMasterDto {\n  constructor(\n    /** 入库计划号 */\n    public PlanOrderId: string,\n    /** 业务类型 */\n    public BusinessType: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 关联单据 */\n    public RelativeOrderCode: string,\n    /** 入库仓库代码 */\n    public InWarehouseCode: string,\n    /** 入库仓库名称 */\n    public InWarehouseName: string,\n    /** 出库仓库代码 */\n    public OutWarehouseCode: string,\n    /** 出库仓库名称 */\n    public OutWarehouseName: string,\n    /** 质检人Id */\n    public InspectorId: string,\n    /** 质检人 */\n    public Inspector: string,\n    /** 办理人代码 */\n    public TransactorCode: string,\n    /** 班里人 */\n    public TransactorName: string,\n    /** 制单人 */\n    public Creator: string,\n    /** 制单人代码 */\n    public CreatorId: string,\n    /** 制单日期 */\n    public CreateDate: Date,\n    /** 制单时间 */\n    public CreateTime: Date,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人代码 */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 备注 */\n    public Remark: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number,\n    /** 单据编码生成键值,内部使用，前端不用 */\n    public OrderCodeGenerateKey: string\n  ) {}\n  static create(): InOutPlanOrderMasterDto {\n    return new InOutPlanOrderMasterDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 出入库计划单据明细模型 */\nexport class InOutPlanOrderDetailDto {\n  constructor(\n    /** 计划单号 */\n    public PlanOrderId: string,\n    /** 业务类型 */\n    public BusinessType: string,\n    /** 源单 */\n    public SourceOrderId: string,\n    /** 源单行号 */\n    public SourceOrderRowNum: string,\n    /** 源单数量 */\n    public SourceOrderQty: number,\n    /** 仓库代码 */\n    public InWarehouseCode: string,\n    /** 仓库名称 */\n    public InWarehouseName: string,\n    /** 仓库代码 */\n    public OutWarehouseCode: string,\n    /** 仓库名称 */\n    public OutWarehouseName: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 规格型号 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 有效期单位 */\n    public ExpiryUnit: string,\n    /** 包装单位 */\n    public MeasureUnit: string,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 需求数量 */\n    public DemandQty: number,\n    /** 计划数量 */\n    public PlanQty: number,\n    /** 计划已办理数量 */\n    public PlanTransactedQty: number,\n    /** 辅助计量单位 */\n    public MeasureAuxUnit: string,\n    /** 辅助计量数量 */\n    public MeasureAuxQty: number,\n    /** 批次号 */\n    public LotNum: string,\n    /** 备注 */\n    public Remark: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number,\n    /** 库存数量 */\n    public InventoryQty: number,\n    /** 冻结数量 */\n    public FreezeQty: number,\n    /** 可用数量 */\n    public AvailableQty: number\n  ) {}\n  static create(): InOutPlanOrderDetailDto {\n    return new InOutPlanOrderDetailDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 物料库存详细模型 */\nexport class MaterialInventoryDetailReadDto {\n  constructor(\n    /** 是否启用保质期 */\n    public IsEnableExpirationDate: boolean,\n    /** 是否启用批次号 */\n    public IsEnableLotNum: boolean,\n    /** 是否启用序列号 */\n    public IsEnableSN: boolean,\n    /** 条码 */\n    public SN: string,\n    /** 物料代码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 计量辅助单位 */\n    public MeasureAuxUnit: string,\n    /** 权重 */\n    public Grade: number,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 库区代码 */\n    public WarehouseAreaCode: string,\n    /** 库区名称 */\n    public WarehouseAreaName: string,\n    /** 货架代码 */\n    public WarehouseShelfCode: string,\n    /** 货架名称 */\n    public WarehouseShelfName: string,\n    /** 库位代码 */\n    public StorageLocationCode: string,\n    /** 库位名称 */\n    public StorageLocationName: string,\n    /** 数量 */\n    public InventoryQty: number,\n    /** 冻结数量 */\n    public FreezeQty: number,\n    /** 可用数量 */\n    public AvailableQty: number,\n    /** 批号 */\n    public LotNum: string,\n    /** 生产日期 */\n    public ProductionDate: Date,\n    /** 生产时间 */\n    public ProductionTime: Date,\n    /** 保质期 */\n    public ExpiryDays: number,\n    /** 有效期 */\n    public ExpirationDate: Date,\n    /** 保质期单位 */\n    public ExpiryUnit: string,\n    /** 货主代码 */\n    public CargoOwnerCode: string,\n    /** 货主名称 */\n    public CargoOwnerName: string,\n    /** 货主类型 */\n    public CargoOwnerType: string,\n    /** 备注 */\n    public Remark: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 主键 */\n    public PrimaryKey: string,\n    /** 扩展字段1 */\n    public SField1: string,\n    /** 扩展字段2 */\n    public SField2: string,\n    /** 扩展字段3 */\n    public SField3: string,\n    /** 扩展字段4 */\n    public FField1: number,\n    /** 扩展字段5 */\n    public FField2: number,\n    /** 扩展字段6 */\n    public FField3: number,\n    /** 扩展字段7 */\n    public DField1: Date,\n    /** 扩展字段8 */\n    public DField2: Date,\n    /** 扩展字段9 */\n    public DField3: Date,\n    /** 扩展字段10 */\n    public DField4: Date,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {}\n  static create(): MaterialInventoryDetailReadDto {\n    return new MaterialInventoryDetailReadDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n","import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport {\n  DataResultT,\n  OpMode,\n  OpResult,\n  RhBaseDto,\n  RhDynamicTableFieldDto,\n  RhLoginedUserDto,\n  RhSafeAny,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  RhTableQueryOptionDto\n} from 'rh-base/model';\nimport {\n  MsgHelper,\n  ObjectHelper,\n  RhStorageService\n} from 'rh-base/core';\nimport { WarehouseMaterialControlParameter } from './../../../../business-manage/business-manage-model';\nimport { RhBusinessManageService } from './../../../../business-manage/business-manage.service';\nimport { Observable } from 'rxjs';\nimport { InOutPlanOrderDetailDto } from '../../stay-stock-business-model';\nimport { RhStayStockBusinessService } from '../../stay-stock-business.service';\n\n@Component({\n  selector: 'rh-allocate-transfer-plan-detail',\n  templateUrl: './allocate-transfer-plan-detail.component.html',\n  styleUrls: ['./allocate-transfer-plan-detail.component.less']\n})\nexport class AllocateTransferPlanDetailComponent implements OnInit {\n  @Input() rhPlanOrder: RhBaseDto;\n  @Input() rhSourceDataset: RhSelectableDto[] = [];\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter();\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto(\n      'deleteDetails',\n      '删除',\n      'primary',\n      true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhSelectableDto[]),\n      false,\n      true\n    ),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset = [new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)];\n  tableVisibleSetting = {};\n  isVisibleSettingOver = true;\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  sourceDefaultQueryDto = {};\n  isEnterEditStatus = false;\n  materialInventoryDetailsModalShowSign = 0;\n  // 仓库控制配置参数\n  currentWarehouseMaterialControlPara: WarehouseMaterialControlParameter;\n  // 仓储数据\n  warehouseAreaDataset: RhSelectableDto[] = [];\n  warehouseShelfDataset: RhSelectableDto[] = [];\n  storageLocationDataset: RhSelectableDto[] = [];\n\n  editDisabled = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return !list.includes(data.OrderStatus);\n  };\n\n  get isReadOnlyTable() {\n    return this.rhShowDetail || !this.rhPlanOrder?.PlanOrderId || this.isEnterEditStatus || this.editDisabled(this.rhPlanOrder);\n  }\n\n  get readeOnlyButtonDataset() {\n    if (!this.rhPlanOrder?.PlanOrderId) return [];\n    else if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(private operator: RhStayStockBusinessService, public businessManageSer: RhBusinessManageService) { }\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhPlanOrder, rhSourceDataset } = changes;\n    if (rhPlanOrder && rhPlanOrder.currentValue) {\n      this.initInPlanOrderDetailDataset();\n    }\n    this.isVisibleSettingOver = false;\n    this.initTableVisibleSetting();\n    setTimeout(() => (this.isVisibleSettingOver = true));\n    /** 选中源单带来数据源 */\n    if (rhSourceDataset && rhSourceDataset.currentValue && rhSourceDataset.currentValue.length) {\n      if (!this.rhPlanOrder.PlanOrderId) this.handleSourceDataset(this.rhSourceDataset, true);\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(\n      this.tableVisibleSetting,\n      this.businessManageSer.initOutWarehouseVisibleSetting(this.currentWarehouseMaterialControlPara)\n    );\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('Out'));\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('In'));\n  }\n\n  /** 初始化明细数据 */\n  initInPlanOrderDetailDataset() {\n    if (this.rhPlanOrder.PlanOrderId) {\n      if (this.rhSourceDataset.length) {\n        const dataset = this.dataresult.Attach;\n        dataset.forEach((data) => {\n          data.PlanOrderId = this.rhPlanOrder.PlanOrderId;\n          data.BusinessType = this.rhPlanOrder.BusinessType;\n          data.InWarehouseCode = this.rhPlanOrder.InWarehouseCode;\n          data.InWarehouseName = this.rhPlanOrder.InWarehouseName;\n        });\n        this.storeDatas(dataset).subscribe(() => {\n          this.rhSourceDataset = [];\n          this.getDatas();\n        });\n      } else {\n        this.getDatas();\n      }\n    }\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      PlanOrderId: this.rhPlanOrder.PlanOrderId,\n      SourceOrderId: this.rhPlanOrder.SourceOrderId ? `${this.rhPlanOrder.SourceOrderId}` : null,\n      FactoryCode: this.rhPlanOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetWarehouseTransferPlanOrderDetailsDatas(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`);\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (this.editDisabled(this.rhPlanOrder)) {\n      MsgHelper.ShowWarningMessage('当前单据状态无法编辑入库计划明细！');\n      return;\n    }\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    const checkRes = this.checkStoreDatas(details);\n    if (!checkRes) {\n      return;\n    }\n    return new Observable((observer) => {\n      const dto = {\n        OrderMaster: this.rhPlanOrder,\n        OrderDetails: details\n      };\n      const msg = editType === 'add' ? '新增' : '编辑';\n      this.dataLoading = true;\n      this.operator.StoreWarehouseTransferPlanOrderDetails(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`);\n          } else {\n            MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n          observer.next();\n          observer.complete();\n        },\n        () => {\n          this.dataLoading = false;\n          observer.error();\n        }\n      );\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[]) {\n    this.extraButtonHandleDataset[1].loading = true;\n    this.operator.RemoveWarehouseTransferPlanOrderDetails(details).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n          this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n        }\n        this.extraButtonHandleDataset[1].loading = false;\n      },\n      () => (this.extraButtonHandleDataset[1].loading = false)\n    );\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    const datas = details.map((data) => {\n      const temp = InOutPlanOrderDetailDto.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 源单赋值\n      temp.SourceOrderId = data.OrderCode;\n      temp.SourceOrderRowNum = data.OrderRowNum;\n      temp.SourceOrderQty = data.DeliveryQty;\n      // 单头赋值\n      temp.PlanOrderId = this.rhPlanOrder.PlanOrderId;\n      temp.BusinessType = this.rhPlanOrder.BusinessType;\n      temp.OutWarehouseCode = this.rhPlanOrder.OutWarehouseCode;\n      temp.OutWarehouseName = this.rhPlanOrder.OutWarehouseName;\n      temp.InWarehouseCode = this.rhPlanOrder.InWarehouseCode;\n      temp.InWarehouseName = this.rhPlanOrder.InWarehouseName;\n      temp.FactoryCode = this.rhPlanOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n      }\n      this.dataresult = { Attach: (this.dataresult.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  /** 检查保存数据 */\n  checkStoreDatas(details: RhSelectableDto[]) {\n    // 必须填写计划数量\n    if (details.some((f) => !f.PlanQty)) {\n      MsgHelper.ShowWarningMessage('计划数量不能为0或空！');\n      return false;\n    }\n    if (details.some((f) => f.PlanQty > f.AvailableQty)) {\n      MsgHelper.ShowWarningMessage('计划数量不可超过库存可用数量!');\n    }\n    return true;\n  }\n\n  openDataModal() {\n    this.sourceDefaultQueryDto = {\n      OrderCode: this.rhPlanOrder.SourceOrderId ? `$${this.rhPlanOrder.SourceOrderId}` : null,\n      FactoryCode: this.rhPlanOrder.FactoryCode,\n      WarehouseCode: this.rhPlanOrder.OutWarehouseCode\n    };\n    this.materialInventoryDetailsModalShowSign++;\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n    this.handleSourceDataset(this.selectedDatas);\n    this.materialInventoryDetailsModalShowSign = 0;\n    //this.closeDataModal();\n  }\n}\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isVisibleSettingOver\">\n    <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n      <rh-dynamic-table\n        rhName=\"handleDetailsReadOnlyTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n      </rh-dynamic-table>\n    </ng-container>\n    <ng-template #handleTpl>\n      <rh-dynamic-table\n        rhName=\"handleDetailsTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n      </rh-dynamic-table>\n    </ng-template>\n  </ng-container>\n</div>\n\n<rh-material-inventory-choose-transfer\n  (rhSelectedDatasChange)=\"onSelectModal($event)\"\n  [rhQueryDto]=\"sourceDefaultQueryDto\"\n  [rhShowModalSign]=\"materialInventoryDetailsModalShowSign\"\n>\n</rh-material-inventory-choose-transfer>\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport {\n  CodeClassModel,\n  DataResultT,\n  OpMode,\n  OpResult,\n  RhBaseDto,\n  RhDynamicTableFieldDto,\n  RhLoginedUserDto,\n  RhSafeAny,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  RhTableQueryOptionDto\n} from 'rh-base/model';\nimport {\n  MsgHelper,\n  RhStorageService\n} from 'rh-base/core';\nimport {\n  DynamicFormComponent\n} from 'rh-base/shared';\nimport { RhBusinessManageService } from './../../business-manage.service';\nimport { BusinessType } from './../../business-type';\nimport { RhSharedManageService } from './../../../shared-manage/shared-manage.service';\nimport { RhStayStockBusinessService } from '../stay-stock-business.service';\n\ntype TabType = 'edit' | 'detail' | 'audit';\n@Component({\n  selector: 'rh-allocate-transfer-plan',\n  templateUrl: './allocate-transfer-plan.component.html',\n  styleUrls: ['./allocate-transfer-plan.component.less']\n})\nexport class AllocateTransferPlanComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  BusinessType = BusinessType.WarehouseTransfer;\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isShowCloseInPlanRemarkModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  closeDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n  /** 选中的采购计划源单的数据 */\n  selectedSourceDataset: RhSelectableDto[] = [];\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  completeVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitInWarehouse';\n  };\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  isAsCreated = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto)),\n    new RhTableButtonInfoDto('submit', '提交审核', 'default', false, 'form', false, null, (data) => this.submitDataToAudit(data as RhBaseDto)),\n    new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) =>\n      this.openDetailTab({ data } as RhBaseDto, 'audit')\n    ),\n    new RhTableButtonInfoDto(\n      'close',\n      '关闭',\n      'default',\n      false,\n      'close-circle',\n      false,\n      null,\n      (data) => this.openCloseInPlanRemarkModal(data as RhBaseDto),\n      null,\n      null,\n      'red'\n    )\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '新建', 'primary', false, 'file', false, null, () => this.openEditTab(), true),\n    new RhTableButtonInfoDto(\n      'delete',\n      '删除',\n      'primary',\n      true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhBaseDto[]),\n      false,\n      false,\n      'red'\n    )\n  ];\n\n  beforeSubmit = async (data: RhBaseDto, context: DynamicFormComponent) => {\n    let result: OpResult = null;\n    const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n    context.submitLoading = true;\n    try {\n      if (this.editDto.OpSign === OpMode.OpAdd) {\n        // 基本信息\n        data.BusinessType = this.BusinessType;\n        data.Creator = this.currentUser.DisplayName;\n        data.CreatorId = this.currentUser.UserName;\n\n        result = await this.operator.CreateWarehouseTransferPlanMasterOrder(data).toPromise();\n      } else {\n        result = await this.operator.UpdateWarehouseTransferPlanMasterOrder(data).toPromise();\n      }\n      if (result && result.Success) {\n        MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n        this.editDto.PlanOrderId = result?.Attach?.PlanOrderId;\n        this.isShowEditForm = false;\n        this.getDetails();\n      } else {\n        MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n      }\n    } catch (error) {\n      //\n    } finally {\n      context.submitLoading = false;\n    }\n\n    return false;\n  };\n\n  beforeSubmitAudit = (data: RhBaseDto) => {\n    if (!data.IsPass && !data.AuditMessage) {\n      MsgHelper.ShowWarningMessage('审核不通过，必须填写审核信息！');\n      return;\n    }\n    // 基本信息\n    data.Auditor = this.currentUser.DisplayName;\n    data.AuditorId = this.currentUser.UserName;\n\n    return true;\n  };\n\n  constructor(\n    private operator: RhStayStockBusinessService,\n    public businessManageSer: RhBusinessManageService,\n    public storage: RhStorageService,\n    public sharedManageSer: RhSharedManageService\n  ) { }\n\n  ngOnInit(): void {\n    this.setUserInfo();\n    this.initEditButtonVisible();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  initEditButtonVisible() {\n    this.editButtonDataset[0].visible = this.editVisible.toString();\n    this.editButtonDataset[1].visible = this.isCreated.toString();\n    this.editButtonDataset[2].visible = this.auditVisible.toString();\n    this.editButtonDataset[3].visible = this.completeVisible.toString();\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    this.selectedSourceDataset = [];\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {\n        TransactorCode: this.currentUser.UserName,\n        TransactorName: this.currentUser.DisplayName,\n        FactoryCode: this.currentUser.FactoryCode\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.editDto = null;\n    this.selectedIndex = 0;\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.selectedIndex = 1;\n  }\n\n  // 未退出页面，刷新数据内容\n  getDetails() {\n    const queryDto: RhSafeAny = { PlanOrderId: this.editDto.PlanOrderId };\n    this.operator.GetWarehouseTransferPlanOrderDatas(queryDto).subscribe((result) => {\n      if (result.Success && result.Attach.length === 1) {\n        this.editDto = result.Attach[0];\n        this.editDto.OpSign = OpMode.OpEdit;\n      }\n    });\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    }\n  }\n\n  sourceOrderDatasetChange(dataset: RhSelectableDto[]) {\n    this.selectedSourceDataset = [...dataset];\n  }\n\n  //#region 操作区域开始\n  /** 提交审核 */\n  submitDataToAudit(data: RhBaseDto) {\n    if (this.isCreated(data)) {\n      const dto: RhSafeAny = { PlanOrderId: data.PlanOrderId };\n      this.dataLoading = true;\n      this.operator.SumbitAuditWarehouseTransferPlanOrder(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('提交审核成功！');\n            if (this.selectedIndex === 0) this.getDatas();\n            this.closeEditTab();\n          } else {\n            MsgHelper.ShowWarningMessage(`提交审核失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行提交审核！');\n    }\n  }\n\n  /** 审核 */\n  auditData(data: RhBaseDto) {\n    if (this.auditVisible(data)) {\n      this.openAuditDataModal(data);\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行审核！');\n    }\n  }\n\n  /** 打开审核弹窗 */\n  openAuditDataModal(data: RhBaseDto) {\n    this.auditDto = { PlanOrderId: data.PlanOrderId };\n    this.isShowAuditDataModal = true;\n  }\n\n  /** 关闭审核弹窗 */\n  closeAuditDataModal() {\n    this.auditDto = {};\n    this.isShowAuditDataModal = false;\n  }\n\n  /** 审核接口返回 */\n  onAuditData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('审核入库计划成功！');\n      this.closeAuditDataModal();\n      this.getDetails();\n    } else {\n      MsgHelper.ShowWarningModal(`审核入库计划失败！${result.Message}`);\n    }\n  }\n\n  /** 打开关闭计划备注弹窗 */\n  openCloseInPlanRemarkModal(data: RhBaseDto) {\n    this.closeDto = { PlanOrderId: data.PlanOrderId, Remark: data.Remark };\n    this.isShowCloseInPlanRemarkModal = true;\n  }\n\n  /** 关闭关闭计划备注弹窗 */\n  closeCloseInPlanRemarkModal() {\n    this.closeDto = {};\n    this.isShowCloseInPlanRemarkModal = false;\n  }\n\n  /** 关闭接口返回 */\n  onCloseData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('关闭入库计划成功！');\n      this.closeCloseInPlanRemarkModal();\n      this.getDatas();\n    } else {\n      MsgHelper.ShowWarningModal(`关闭入库计划失败！${result.Message}`);\n    }\n  }\n\n  /** 删除计划 */\n  removeDatas(datas: RhBaseDto[]) {\n    const some = datas.some((f) => !this.isAsCreated(f));\n    if (some) {\n      MsgHelper.ShowWarningMessage('只能删除制单状态的数据！');\n    } else {\n      this.dataLoading = true;\n      this.operator.RemoveWarehouseTransferPlanOrders(datas).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('删除成功！');\n            this.getDatas();\n          } else {\n            MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    }\n  }\n  //#endregion 操作区域结束\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  >\n                  </rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              >\n              </rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>数据{{ editDto?.OpSign === 1 ? '新增' : '编辑' }}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button\n                    *ngIf=\"editVisible(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"isShowEditForm = true\"\n                  >\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button\n                    *ngIf=\"isCreated(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"submitDataToAudit(editDto)\"\n                  >\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                  <button *ngIf=\"auditVisible(editDto)\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else editDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template\n                    rhTemplate=\"InWarehouseCode\"\n                    let-formGroup\n                    let-setting=\"setting\"\n                    let-hostConfig=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.placeholder }}</nz-form-label>\n                      <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                        <rh-business-warehouse-selector\n                          name=\"InWarehouseCode\"\n                          [formControl]=\"formGroup.get('InWarehouseCode')\"\n                          rhFormType=\"edit\"\n                          [rhFieldData]=\"businessManageSer.setWarehouseFieldSetting(setting, 'In')\"\n                          [rhSize]=\"hostConfig?.rhSize\"\n                          [rhData]=\"formData\"\n                          [rhDefaultQueryDto]=\"{ BusinessTypeCode: BusinessType }\"\n                        >\n                        </rh-business-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-allocate-transfer-plan-detail\n                [rhPlanOrder]=\"editDto\"\n                [rhSourceDataset]=\"selectedSourceDataset\"\n                (rhDetailsUpdate)=\"getDetails()\"\n              >\n              </rh-allocate-transfer-plan-detail>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <button\n                  *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\"\n                  nz-button\n                  nzType=\"primary\"\n                  nzSize=\"small\"\n                  type=\"button\"\n                  (click)=\"auditData(editDto)\"\n                >\n                  <i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n                </button>\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"editDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-allocate-transfer-plan-detail [rhPlanOrder]=\"editDto\" [rhShowDetail]=\"true\"> </rh-allocate-transfer-plan-detail>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #editDescription>\n  <rh-dynamic-description *ngIf=\"isRefreshDesc\" rhName=\"editDescription\" [rhValue]=\"editDto\"></rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'调拨计划审核'\"\n  [nzVisible]=\"isShowAuditDataModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeAuditDataModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #auditDataForm\n    rhName=\"auditDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"auditDto\"\n    [rhBeforeSubmit]=\"beforeSubmitAudit\"\n    (rhInterfaceDataChange)=\"onAuditData($event)\"\n    (rhClose)=\"closeAuditDataModal()\"\n  >\n    <ng-template rhTemplate=\"IsPass\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-radio-group [formControl]=\"formgroup.get('IsPass')\" (ngModelChange)=\"businessManageSer.isPassChange($event, formgroup)\">\n            <label nz-radio [nzValue]=\"true\">是</label>\n            <label nz-radio [nzValue]=\"false\">否</label>\n          </nz-radio-group>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"AuditMessage\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"!formgroup.get('IsPass').value\"> {{ setting.displayName }}</nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <textarea\n            nz-input\n            [formControl]=\"formgroup.get('AuditMessage')\"\n            [placeholder]=\"setting.placeholder\"\n            [nzAutosize]=\"{ minRows: 2 }\"\n          ></textarea>\n          <div *ngIf=\"editDto?.AuditMessage\">\n            <span style=\"color: #faad14\">上一次审核信息：{{ editDto?.AuditMessage }}</span>\n          </div>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>\n\n<nz-modal\n  [nzTitle]=\"'关闭调拨计划备注'\"\n  [nzVisible]=\"isShowCloseInPlanRemarkModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeCloseInPlanRemarkModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #closeDataForm\n    rhName=\"closeDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"closeDto\"\n    (rhInterfaceDataChange)=\"onCloseData($event)\"\n    (rhClose)=\"closeCloseInPlanRemarkModal()\"\n  ></rh-dynamic-form>\n</nz-modal>\n","import { WarehouseMaterialControlParameter } from './../../../business-manage-model';\nimport { RhBusinessManageService } from './../../../business-manage.service';\nimport { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { DataResultT, OpMode, RhBaseDto, RhSafeAny, RhSelectableDto, RhTableButtonInfoDto } from 'rh-base/model';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport { Observable } from 'rxjs';\nimport { RhStayStockBusinessService } from '../../stay-stock-business.service';\nimport { LocationMovePlanOrderDetailFormInterface, LocationMovePlanOrderDetailTableFieldDataset } from '../../detail-source-table-config';\nimport { InOutOrderDetailDto } from './../../../../wms-model';\nimport * as _ from 'lodash';\n\n@Component({\n  selector: 'rh-location-move-handle-details',\n  templateUrl: './location-move-handle-details.component.html',\n  styleUrls: ['./location-move-handle-details.component.less']\n})\nexport class LocationMoveHandleDetailsComponent implements OnInit {\n  @Input() rhOrder: RhBaseDto;\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter<RhSelectableDto[]>();\n\n  queryDto: RhBaseDto;\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto(\n      'deleteDetails',\n      '删除',\n      'primary',true,\n      'delete',\n      true,\n      null,\n      (datas, buttonInfo) => this.removeDatas(datas as RhSelectableDto[], buttonInfo),\n      false,\n      true\n    ),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  isVisibleSettingOver = true;\n  tableVisibleSetting = {};\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  sourceDefaultQueryDto = {};\n  isEnterEditStatus = false;\n  // 计划明细\n  planOrderDetailFormInterface = LocationMovePlanOrderDetailFormInterface;\n  planOrderDetailTableFieldDataset = LocationMovePlanOrderDetailTableFieldDataset;\n  planOrderDetailDataset: RhSelectableDto[] = [];\n  // 仓储数据\n  warehouseAreaDataset: RhSelectableDto[] = [];\n  warehouseShelfDataset: RhSelectableDto[] = [];\n  storageLocationDataset: RhSelectableDto[] = [];\n  // 仓库控制配置参数\n  currentWarehouseMaterialControlPara: WarehouseMaterialControlParameter;\n  materialInventoryDetailsModalShowSign = 0;\n\n  editDisabled = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return !list.includes(data.OrderStatus);\n  };\n\n  // 配置参数\n  get getIsEnableLocationMovePlan() {\n    return this.businessManageSer.getIsEnableLocationMovePlan;\n  }\n  // 显示控制\n  get sourceDataModalTitle() {\n    return this.getIsEnableLocationMovePlan ? '选择计划明细数据' : '选择源单明细数据';\n  }\n  get isReadOnlyTable() {\n    return this.rhShowDetail || !this.rhOrder?.OrderId || this.isEnterEditStatus || this.editDisabled(this.rhOrder);\n  }\n  get readeOnlyButtonDataset() {\n    if (!this.rhOrder?.OrderId) return [];\n    else if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(private operator: RhStayStockBusinessService, public businessManageSer: RhBusinessManageService) {}\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  async ngOnChanges(changes: SimpleChanges): Promise<void> {\n    const { rhOrder } = changes;\n    if (rhOrder && rhOrder.currentValue && this.rhOrder.OrderId) {\n      // 获取仓库控制配置参数\n      await this.getWarehouseMaterialControlParameter();\n      // 设置表格字段显隐性配置\n      this.isVisibleSettingOver = false;\n      this.initTableVisibleSetting();\n      setTimeout(() => (this.isVisibleSettingOver = true));\n      // 获取明细数据\n      this.getDatas();\n      // 获取仓储数据\n      if (!this.rhShowDetail) {\n        this.getWarehouseInfos();\n      }\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(\n      this.tableVisibleSetting,\n      this.businessManageSer.initOutWarehouseVisibleSetting(this.currentWarehouseMaterialControlPara)\n    );\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.initInWarehouseVisibleSetting(this.currentWarehouseMaterialControlPara));\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('Out'));\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('In'));\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      OrderId: this.rhOrder.OrderId,\n      FactoryCode: this.rhOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetStockLocationTransferTransactOrderDetailsDatas(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        this.rhDetailsUpdate.emit(this.dataresult?.Attach || []);\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`);\n        } else {\n          if (this.getIsEnableLocationMovePlan) {\n            this.getPlanOrderDetails();\n          }\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (this.editDisabled(this.rhOrder)) {\n      MsgHelper.ShowWarningMessage('当前单据状态无法编辑出库办理明细！');\n      return;\n    }\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    return new Observable((observer) => {\n      this.businessManageSer.checkStoreDatas(details, 'locationMove').then((checkRes) => {\n        if (!checkRes) {\n          observer.error();\n        } else {\n          // const dto = {\n          //   OrderMaster: this.rhOrder,\n          //   OrderDetails: details\n          // };\n          const msg = editType === 'add' ? '新增' : '编辑';\n          this.dataLoading = true;\n          this.operator.StoreStockLocationTransferTransactOrderDetails(details).subscribe(\n            (result) => {\n              if (result.Success) {\n                MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`);\n              } else {\n                MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n              }\n              this.dataLoading = false;\n              observer.next();\n              observer.complete();\n            },\n            () => {\n              this.dataLoading = false;\n              observer.error();\n            }\n          );\n        }\n      });\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[], buttonInfo: RhTableButtonInfoDto) {\n    buttonInfo.loading = true;\n    this.operator.RemoveStockLocationTransferTransactOrderDetails(details).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n          this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n        }\n        buttonInfo.loading = false;\n      },\n      () => (buttonInfo.loading = false)\n    );\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    const datas = details.map((data) => {\n      const temp = InOutOrderDetailDto.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 源单赋值\n      if (this.getIsEnableLocationMovePlan) {\n        temp.PlanOrderId = this.rhOrder.PlanOrderId;\n        temp.SourcePlannedQty = data.SourcePlannedQty || 0;\n        temp.PlanTransactedQty = data.PlanTransactedQty || 0;\n      } else {\n        temp.SourceOrderId = data.OrderCode;\n        temp.SourceOrderRowNum = data.OrderRowNum;\n        temp.SourceOrderQty = data.DeliveryQty;\n      }\n      // 单头赋值\n      temp.OrderId = this.rhOrder.OrderId;\n      temp.BusinessType = this.rhOrder.BusinessType;\n      temp.OutWarehouseCode = this.rhOrder.OutWarehouseCode;\n      temp.OutWarehouseName = this.rhOrder.OutWarehouseName;\n      temp.InWarehouseCode = this.rhOrder.OutWarehouseCode;\n      temp.InWarehouseName = this.rhOrder.OutWarehouseName;\n      temp.OutWarehouseAreaCode = data.WarehouseAreaCode;\n      temp.OutWarehouseAreaName = data.WarehouseAreaName;\n      temp.OutWarehouseShelfCode = data.WarehouseShelfCode;\n      temp.OutWarehouseShelfName = data.WarehouseShelfName;\n      temp.OutStorageLocationCode = data.StorageLocationCode;\n      temp.OutStorageLocationName = data.StorageLocationName;\n      temp.AvailableQty = data.AvailableQty;\n      temp.InventoryQty = data.InventoryQty;\n      temp.FreezeQty = data.FreezeQty;\n      temp.FactoryCode = this.rhOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n      }\n      this.dataresult = { Attach: (this.dataresult.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 启用计划，获取计划明细，用于初始化PlanTransactedQty */\n  getPlanOrderDetails() {\n    const queryDto = {\n      PlanOrderId: this.rhOrder.PlanOrderId,\n      SourceOrderId: this.rhOrder.SourceOrderId,\n      FactoryCode: this.rhOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetStockLocationTransferTransactOrderDetailsDatas(queryDto).subscribe((result) => {\n      if (result.Success) {\n        this.planOrderDetailDataset = result.Attach;\n        // 初始化办理明细的PlanTransactedQty\n        this.dataresult.Attach.forEach((data) => {\n          const item = this.planOrderDetailDataset.find(\n            (ele) =>\n              ele.MaterialCode === data.MaterialCode &&\n              ele.SourceOrderId === data.SourceOrderId &&\n              ele.SourceOrderRowNum === data.SourceOrderRowNum\n          );\n          if (item) {\n            data.PlanTransactedQty = item.PlanTransactedQty;\n          } else {\n            data.PlanTransactedQty = null;\n          }\n        });\n        this.dataresult = _.cloneDeep(this.dataresult);\n      } else {\n        this.planOrderDetailDataset = [];\n      }\n    });\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  openDataModal() {\n    if (this.getIsEnableLocationMovePlan) {\n      this.sourceDefaultQueryDto = {\n        PlanOrderId: this.rhOrder.PlanOrderId,\n        FactoryCode: this.rhOrder.FactoryCode\n      };\n      this.isShowDataModal = true;\n    } else {\n      this.sourceDefaultQueryDto = {\n        OrderCode: this.rhOrder.SourceOrderId ? `$${this.rhOrder.SourceOrderId}` : null,\n        FactoryCode: this.rhOrder.FactoryCode,\n        WarehouseCode: this.rhOrder.OutWarehouseCode\n      };\n      this.materialInventoryDetailsModalShowSign++;\n    }\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  onMaterialSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n    this.handleSourceDataset(this.selectedDatas);\n    this.materialInventoryDetailsModalShowSign = 0;\n    //this.closeDataModal();\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n\n  //#region 仓储相关区域开始\n  /** 根据是否启用，获取对应仓储信息 */\n  getWarehouseInfos() {\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseArea) {\n      this.businessManageSer\n        .getWarehouseAreaDataset({ Warehouse: this.rhOrder.OutWarehouseCode })\n        .then((res) => {\n          this.warehouseAreaDataset = res || [];\n        })\n        .catch(() => {\n          this.warehouseAreaDataset = [];\n        });\n    }\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseShelf) {\n      this.businessManageSer\n        .getWarehouseShelfDataset({ Warehouse: this.rhOrder.OutWarehouseCode })\n        .then((res) => {\n          this.warehouseShelfDataset = res || [];\n        })\n        .catch(() => {\n          this.warehouseShelfDataset = [];\n        });\n    }\n    if (this.currentWarehouseMaterialControlPara.IsEnableStorageLocation) {\n      this.businessManageSer\n        .getStorageLocationDataset({ Warehouse: this.rhOrder.OutWarehouseCode })\n        .then((res) => {\n          this.storageLocationDataset = res || [];\n        })\n        .catch(() => {\n          this.storageLocationDataset = [];\n        });\n    }\n  }\n\n  /** 获取仓库控制参数配置 */\n  async getWarehouseMaterialControlParameter() {\n    const para = await this.businessManageSer.getWarehouseMaterialControlParameter({\n      WarehouseCode: this.rhOrder.OutWarehouseCode\n    });\n    this.currentWarehouseMaterialControlPara = this.businessManageSer.transformWarehouseMaterialControlParameter(para);\n  }\n\n  inWarehouseAreaCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseAreaDataset.find((ele) => ele.WarehouseAreaCode === code);\n      if (item) {\n        data.InWarehouseAreaName = item.WarehouseAreaName;\n      } else {\n        data.InWarehouseAreaName = null;\n      }\n    } else {\n      data.InWarehouseAreaName = null;\n    }\n  }\n\n  inWarehouseShelfCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseShelfDataset.find((ele) => ele.WarehouseShelfCode === code);\n      if (item) {\n        data.InWarehouseShelfName = item.WarehouseShelfName;\n      } else {\n        data.InWarehouseShelfName = null;\n      }\n    } else {\n      data.InWarehouseShelfName = null;\n    }\n  }\n\n  inStorageLocationCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.storageLocationDataset.find((ele) => ele.StorageLocationCode === code);\n      if (item) {\n        data.InStorageLocationName = item.StorageLocationName;\n      } else {\n        data.InStorageLocationName = null;\n      }\n    } else {\n      data.InStorageLocationName = null;\n    }\n  }\n\n  outWarehouseAreaCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseAreaDataset.find((ele) => ele.WarehouseAreaCode === code);\n      if (item) {\n        data.OutWarehouseAreaName = item.WarehouseAreaName;\n      } else {\n        data.OutWarehouseAreaName = null;\n      }\n    } else {\n      data.OutWarehouseAreaName = null;\n    }\n    // 强关联则清空下属字段\n    if (this.currentWarehouseMaterialControlPara.IsStrictCorrelation) {\n      data.OutWarehouseShelfCode = null;\n      data.OutWarehouseShelfName = null;\n      data.OutStorageLocationCode = null;\n      data.OutStorageLocationName = null;\n    }\n    // 获取库存数据\n    this.getMaterialSumerizeStockQtyBy(data);\n  }\n\n  outWarehouseShelfCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.warehouseShelfDataset.find((ele) => ele.WarehouseShelfCode === code);\n      if (item) {\n        data.OutWarehouseShelfName = item.WarehouseShelfName;\n      } else {\n        data.OutWarehouseShelfName = null;\n      }\n    } else {\n      data.OutWarehouseShelfName = null;\n    }\n    // 强关联则清空下属字段\n    if (this.currentWarehouseMaterialControlPara.IsStrictCorrelation) {\n      data.OutStorageLocationCode = null;\n      data.OutStorageLocationName = null;\n    }\n    // 获取库存数据\n    this.getMaterialSumerizeStockQtyBy(data);\n  }\n\n  outStorageLocationCodeChange(code: string, data: RhSelectableDto) {\n    if (code) {\n      const item = this.storageLocationDataset.find((ele) => ele.StorageLocationCode === code);\n      if (item) {\n        data.OutStorageLocationName = item.StorageLocationName;\n      } else {\n        data.OutStorageLocationName = null;\n      }\n    } else {\n      data.OutStorageLocationName = null;\n    }\n    // 获取库存数据\n    this.getMaterialSumerizeStockQtyBy(data);\n  }\n\n  getMaterialSumerizeStockQtyBy(data: RhSelectableDto) {\n    this.businessManageSer.getMaterialSumerizeStockQtyBy(data, this.currentWarehouseMaterialControlPara, 'Out');\n  }\n\n  /** 获取货架显示列表，行编辑应用 */\n  getWarehouseShelfDatasetDisplay(data: RhSelectableDto): RhSelectableDto[] {\n    return this.businessManageSer.getWarehouseShelfDatasetDisplay(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      this.warehouseShelfDataset,\n      'Out'\n    );\n  }\n\n  /** 获取库位显示列表，行编辑应用 */\n  getStorageLocationDatasetDisplay(data: RhSelectableDto): RhSelectableDto[] {\n    return this.businessManageSer.getStorageLocationDatasetDisplay(\n      data,\n      this.currentWarehouseMaterialControlPara,\n      this.storageLocationDataset,\n      'Out'\n    );\n  }\n  //#endregion 仓储相关区域结束\n}\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isVisibleSettingOver\">\n    <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n      <rh-dynamic-table\n        rhName=\"handleDetailsReadOnlyTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n        <ng-template rhTemplate=\"OutWarehouseAreaCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseAreaTpl\">\n            <nz-select\n              [(ngModel)]=\"data.OutWarehouseAreaCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"outWarehouseAreaCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of warehouseAreaDataset\"\n                [nzLabel]=\"item.WarehouseAreaCode\"\n                [nzValue]=\"item.WarehouseAreaCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseAreaTpl>{{ data.OutWarehouseAreaCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"OutWarehouseAreaName\" let-item let-data=\"data\">\n          {{ data.OutWarehouseAreaName }}\n        </ng-template>\n        <ng-template rhTemplate=\"OutWarehouseShelfCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseShelfTpl\">\n            <nz-select\n              [(ngModel)]=\"data.OutWarehouseShelfCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"outWarehouseShelfCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of getWarehouseShelfDatasetDisplay(data)\"\n                [nzLabel]=\"item.WarehouseShelfCode\"\n                [nzValue]=\"item.WarehouseShelfCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseShelfTpl>{{ data.OutWarehouseShelfCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"OutWarehouseShelfName\" let-item let-data=\"data\">\n          {{ data.OutWarehouseShelfName }}\n        </ng-template>\n        <ng-template rhTemplate=\"OutStorageLocationCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else storageLocationTpl\">\n            <nz-select\n              [(ngModel)]=\"data.OutStorageLocationCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"outStorageLocationCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of getStorageLocationDatasetDisplay(data)\"\n                [nzLabel]=\"item.StorageLocationCode\"\n                [nzValue]=\"item.StorageLocationCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #storageLocationTpl>{{ data.OutStorageLocationCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"OutStorageLocationName\" let-item let-data=\"data\">\n          {{ data.OutStorageLocationName }}\n        </ng-template>\n        <ng-template rhTemplate=\"InWarehouseAreaCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseAreaTpl\">\n            <nz-select\n              [(ngModel)]=\"data.InWarehouseAreaCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"inWarehouseAreaCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of warehouseAreaDataset\"\n                [nzLabel]=\"item.WarehouseAreaCode\"\n                [nzValue]=\"item.WarehouseAreaCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseAreaTpl>{{ data.InWarehouseAreaCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"InWarehouseAreaName\" let-item let-data=\"data\">\n          {{ data.InWarehouseAreaName }}\n        </ng-template>\n        <ng-template rhTemplate=\"InWarehouseShelfCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else warehouseShelfTpl\">\n            <nz-select\n              [(ngModel)]=\"data.InWarehouseShelfCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"inWarehouseShelfCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of warehouseShelfDataset\"\n                [nzLabel]=\"item.WarehouseShelfCode\"\n                [nzValue]=\"item.WarehouseShelfCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #warehouseShelfTpl>{{ data.InWarehouseShelfCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"InWarehouseShelfName\" let-item let-data=\"data\">\n          {{ data.InWarehouseShelfName }}\n        </ng-template>\n        <ng-template rhTemplate=\"InStorageLocationCode\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else storageLocationTpl\">\n            <nz-select\n              [(ngModel)]=\"data.InStorageLocationCode\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              nzAllowClear\n              (ngModelChange)=\"inStorageLocationCodeChange($event, data)\"\n            >\n              <nz-option\n                *ngFor=\"let item of storageLocationDataset\"\n                [nzLabel]=\"item.StorageLocationCode\"\n                [nzValue]=\"item.StorageLocationCode\"\n              ></nz-option>\n            </nz-select>\n          </ng-container>\n          <ng-template #storageLocationTpl>{{ data.InStorageLocationCode }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"InStorageLocationName\" let-item let-data=\"data\">\n          {{ data.InStorageLocationName }}\n        </ng-template>\n        <ng-template rhTemplate=\"SN\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else SNTpl\">\n            <input\n              nz-input\n              [(ngModel)]=\"data.SN\"\n              [placeholder]=\"item?.displayName\"\n              [ngStyle]=\"{ border: !data.SN && currentWarehouseMaterialControlPara.IsEnableSN ? '1px solid red' : '1px solid #d9d9d9' }\"\n            />\n            <p style=\"color: red; margin-bottom: 0\" *ngIf=\"!data.SN && currentWarehouseMaterialControlPara.IsEnableSN\">请输入条码</p>\n          </ng-container>\n          <ng-template #SNTpl>{{ data.SN }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"ProductionDate\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else ProDateTpl\">\n            <nz-date-picker\n              nz-input\n              [(ngModel)]=\"data.ProductionDate\"\n              [nzPlaceHolder]=\"item?.displayName\"\n              [ngStyle]=\"{\n                border:\n                  !data.ProductionDate && currentWarehouseMaterialControlPara.IsEnableExpirationDate ? '1px solid red' : '1px solid #d9d9d9'\n              }\"\n            ></nz-date-picker>\n            <p\n              style=\"color: red; margin-bottom: 0\"\n              *ngIf=\"!data.ProductionDate && currentWarehouseMaterialControlPara.IsEnableExpirationDate\"\n            >\n              请输入生产日期\n            </p>\n          </ng-container>\n          <ng-template #ProDateTpl>{{ data.ProductionDate | date : 'yyyy-MM-dd' }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"LotNum\" let-item let-data=\"data\">\n          <ng-container *ngIf=\"data.select; else LotNumTpl\">\n            <input\n              nz-input\n              [(ngModel)]=\"data.LotNum\"\n              [placeholder]=\"item?.displayName\"\n              [ngStyle]=\"{\n                border: !data.LotNum && currentWarehouseMaterialControlPara.IsEnableLotNum ? '1px solid red' : '1px solid #d9d9d9'\n              }\"\n            />\n            <p style=\"color: red; margin-bottom: 0\" *ngIf=\"!data.LotNum && currentWarehouseMaterialControlPara.IsEnableLotNum\">\n              请输入批次号\n            </p>\n          </ng-container>\n          <ng-template #LotNumTpl>{{ data.LotNum }}</ng-template>\n        </ng-template>\n        <ng-template rhTemplate=\"AvailableQty\" let-item let-data=\"data\">\n          {{ data.AvailableQty }}\n        </ng-template>\n      </rh-dynamic-table>\n    </ng-container>\n    <ng-template #handleTpl>\n      <rh-dynamic-table\n        rhName=\"handleDetailsTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n      </rh-dynamic-table>\n    </ng-template>\n  </ng-container>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"sourceDataModalTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div *ngIf=\"isShowDataModal\">\n      <rh-dynamic-single-table\n        rhName=\"planOrderDetailTable\"\n        [rhInterfaceInfo]=\"planOrderDetailFormInterface\"\n        [rhDefaultFieldDataset]=\"planOrderDetailTableFieldDataset\"\n        [rhPara]=\"sourceDefaultQueryDto\"\n        (rhSelectedDatasChange)=\"onSelectModal($event)\"\n      ></rh-dynamic-single-table>\n    </div>\n  </nz-card>\n</nz-modal>\n\n<rh-material-inventory-choose-transfer\n  (rhSelectedDatasChange)=\"onMaterialSelectModal($event)\"\n  [rhQueryDto]=\"sourceDefaultQueryDto\"\n  [rhShowModalSign]=\"materialInventoryDetailsModalShowSign\"\n>\n</rh-material-inventory-choose-transfer>\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { CustomizeBaseTableComponent, DynamicFormComponent } from 'rh-base/shared';\nimport { RhDynamicInterfaceDto, RhSelectableDto, RhTableQueryOptionDto, CodeClassModel, RhDynamicTableFieldDto } from 'rh-base/model';\n\n@Component({\n  selector: 'rh-location-move-plan-table',\n  templateUrl: './location-move-plan-table.component.html',\n  styleUrls: ['./location-move-plan-table.component.less']\n})\nexport class LocationMovePlanTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n\n  @Input() rhSingleMode = true;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() rhDisabled: boolean;\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto>();\n\n  rhName = 'LocationMovePlanOrderSelector';\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n  defaultInterfaceInfo: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'GeneralTransferBusinessPlanApi',\n    interfaceName: 'GetStockLocationTransferPlanOrderDatas'\n  };\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [\n    { name: 'PlanOrderId', displayName: '计划单号', placeholder: '计划单号', editable: true, visible: true },\n    {\n      name: 'OrderStatus',\n      displayName: '单据状态',\n      placeholder: '单据状态',\n      editable: false,\n      defaultValue: 'WaitOutWarehouse',\n      visible: false\n    }\n  ];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [\n    { name: 'PlanOrderId', displayName: '计划单号', width: 150 },\n    { name: 'OutWarehouseCode', displayName: '出库仓库代码', width: 150 },\n    { name: 'OutWarehouseName', displayName: '出库仓库名称', width: 150 },\n    { name: 'InWarehouseCode', displayName: '入库仓库代码', width: 150 },\n    { name: 'InWarehouseName', displayName: '入库仓库名称', width: 150 },\n    { name: 'Remark', displayName: '备注', width: 120, rhEllipsis: true }\n  ];\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  constructor() {\n    //\n    super();\n  }\n\n  ngOnInit(): void {\n    this.rhInterfaceInfo = this.rhInterfaceInfo || this.defaultInterfaceInfo;\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n}\n","<!-- 搜索Form区域 -->\n<div class=\"search-area rh-full\">\n  <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n    <ng-template #searchTpl>\n      <rh-dynamic-form\n        #queryForm\n        rhName=\"{{ rhName }}Form\"\n        [rhValue]=\"rhDefaultQueryDto\"\n        (rhInterfaceDataChange)=\"setDatas($event)\"\n        (rhDataloadingChange)=\"dataLoadingChange($event)\"\n        (rhOutParaChange)=\"setInitFieldDataset($event)\"\n        [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n        [(rhFormInterface)]=\"rhInterfaceInfo\"\n      ></rh-dynamic-form>\n    </ng-template>\n  </nz-alert>\n</div>\n<!-- 搜索结果Table展示区域 -->\n<div class=\"table-area\">\n  <rh-dynamic-table\n    rhName=\"{{ rhName }}Table\"\n    [rhTableData]=\"dataresult\"\n    [rhTableDataloading]=\"dataLoading\"\n    [rhDefaultFieldDataset]=\"defaultTableFieldDataset\"\n    (rhRefresh)=\"refreshDatas($event)\"\n    (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\"\n    [rhSingleMode]=\"rhSingleMode\"\n  ></rh-dynamic-table>\n</div>\n","import { Component, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, SimpleChanges } from '@angular/core';\nimport { NzSizeLDSType } from 'ng-zorro-antd/core/types';\nimport { provideValueAccessor, RhRouteHelper } from 'rh-base/core';\nimport {\n  RhSelectableDto,\n  RhDynamicFormFieldDto,\n  RhSafeAny,\n  RhDynamicInterfaceDto,\n  RhDynamicCustomizeControlConfigDto,\n  RhRelatedFieldDataDto,\n  RhCustomizeEventSettingDto,\n  RhDisplayMode\n} from 'rh-base/model';\nimport { CustomizeBaseControlComponent, RhBaseDynamicService } from 'rh-base/shared';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { LocationMovePlanTableComponent } from './location-move-plan-table/location-move-plan-table.component';\n\n@Component({\n  selector: 'rh-location-move-plan-selector',\n  templateUrl: './location-move-plan-selector.component.html',\n  styleUrls: ['./location-move-plan-selector.component.less']\n})\nexport class LocationMovePlanSelectorComponent extends CustomizeBaseControlComponent {\n  rhRelatedFieldData = null;\n  @ViewChild(LocationMovePlanTableComponent) tableComp: LocationMovePlanTableComponent;\n  @Input() rhDynamicKey = 'LocationMoveWarehousingPlanOrder';\n  @Input() rhTitle = '选择移库计划';\n  @Input() declare rhSize: NzSizeLDSType;\n  @Input() declare rhDisplayMode: RhDisplayMode;\n\n  @Input() rhProductCode: string;\n\n  iconSetting = 'search';\n  @Input() rhSingleMode = true;\n\n  formKeyFieldName = 'PlanOrderId';\n  formTextFieldName = 'PlanOrderId';\n\n  modelKeyFieldName = 'PlanOrderId';\n  modelTextFieldName = 'PlanOrderId';\n\n  // // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto>();\n  /** 对应table选中的数据 */\n  rhModel: RhSelectableDto = {};\n\n  /** 动态form字段配置数据 */\n  @Input() rhFieldData: RhDynamicFormFieldDto;\n  /** 整个form的数据 */\n  @Input() declare rhData: RhSafeAny;\n\n  /** 表格Loading */\n  // dataLoading = false;\n  // dataresult: DataResultT<RhSelectableDto[]>;\n\n  /** selector input上展示的数据，一般为中文 */\n  //displayName: string;\n\n  //selectedData: RhSelectableDto[];\n\n  /** 自定义组件的自定义执行函数 */\n  cb: (data: RhSafeAny, ctx: RhSafeAny) => void;\n\n  /** 该组件关联的form名称 */\n  formName: string;\n\n  url: string;\n\n  /** 设置默认搜索接口 */\n  defaultFormInterface: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'GeneralTransferBusinessPlanApi',\n    interfaceName: 'GetStockLocationTransferPlanOrderDatas'\n  };\n\n  mappedList = [\n    { sourceName: this.modelKeyFieldName, mappedName: this.formKeyFieldName },\n    { sourceName: this.modelTextFieldName, mappedName: this.formTextFieldName },\n    { sourceName: 'SourceOrderId', mappedName: 'SourceOrderId' },\n    // { sourceName: 'SourceOrderRowNum', mappedName: 'SourceOrderRowNum' },\n    { sourceName: 'CustomerCode', mappedName: 'CustomerCode' },\n    { sourceName: 'CustomerName', mappedName: 'CustomerName' },\n    { sourceName: 'Carrier', mappedName: 'Carrier' },\n    { sourceName: 'ReceivingAddress', mappedName: 'ReceivingAddress' },\n    { sourceName: 'OutWarehouseCode', mappedName: 'OutWarehouseCode' },\n    { sourceName: 'OutWarehouseName', mappedName: 'OutWarehouseName' },\n    { sourceName: 'InWarehouseCode', mappedName: 'InWarehouseCode' },\n    { sourceName: 'InWarehouseName', mappedName: 'InWarehouseName' }\n  ];\n\n  constructor(\n    public fb: UntypedFormBuilder,\n    public cdr: ChangeDetectorRef,\n    public router: Router,\n    public dynamicSer: RhBaseDynamicService\n  ) {\n    super(cdr, dynamicSer);\n    this.url = RhRouteHelper.getRealRoute(this.router.url);\n  }\n\n  ngOnInit(): void {\n    this.rhPlaceholder = this.rhFieldData.placeholder as any;\n    this.formName = this.rhFieldData.relatedComponentName;\n    this.setCbValue();\n  }\n\n  // 自定义表单项配置\n  ngOnChanges(changes: SimpleChanges) {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue && rhData.currentValue[this.formKeyFieldName] === null) {\n      this.resetControlValue();\n    } else {\n      this.rhModel = {};\n    }\n  }\n\n  // dataLoadingChange(status: boolean) {\n  //   this.dataLoading = status;\n  // }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    // if (data?.length === 1 && this.rhSingleMode) {\n    //   this.selectedData = data[0];\n    // } else {\n    //   this.selectedData = data;\n    // }\n    this.selectedData = data || [];\n  }\n\n  // setDatas(result: DataResultT<RhSelectableDto[]>) {\n  //   if (result && result.Success) {\n  //     this.dataresult = result;\n  //   } else {\n  //     MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n  //   }\n  // }\n\n  /** 根据填入的code值，获取对应的完整数据，回填到输入框 */\n  getTargetDatas(code: string) {\n    // 显示代码 不需要\n    // if (!this.defaultFormInterface) {\n    //   return;\n    // }\n    // const queryDto = {};\n    // queryDto[this.modelKeyFieldName] = `$${code}`;\n    // this.getTargetDatasVisHttpHandler(this.defaultFormInterface, queryDto, this.rhFieldData);\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n  }\n\n  //#region customize selector interface区域\n  confirmSelect() {\n    this.rhModel = this.selectedData[0];\n    this.rhModelChange.emit(this.selectedData);\n    // if (this.rhSingleMode) {\n    //   this.value = this.rhModel[this.modelKeyFieldName];\n    //   this.displayName = this.rhModel[this.modelTextFieldName];\n    //   this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // } else {\n    //   this.value = (this.rhModel as RhSafeAny[]).map((ele) => ele[this.modelKeyFieldName]) as RhSafeAny;\n    //   // 多选的时候只会显示多个代码\n    //   this.displayName = (this.value as RhSafeAny).toString();\n    // }\n    this.value = this.rhModel[this.modelKeyFieldName];\n    this.displayName = this.rhModel[this.modelTextFieldName];\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // 执行对应控件定义的代码\n    if (this.rhData && this.rhModel && this.cb) {\n      this.cb(this.rhData, this.rhModel);\n    }\n    this.setFormDataViaRelatedDatas();\n    // 执行form的相关字段赋值操作\n    this.triggerRelatedForm();\n    this.closeDataModal();\n  }\n\n  resetControlValue() {\n    this.displayName = null;\n    // 重置form对应数据对象\n    this.rhData[this.formKeyFieldName] = null;\n    this.rhData[this.formTextFieldName] = null;\n    // 清空数据中的字段的值\n    this.mappedList.forEach((ele) => {\n      this.rhData[ele.mappedName] = null;\n    });\n    this.rhModel = null;\n  }\n\n  setCbValue() {\n    const cbString = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.cb;\n    if (cbString) {\n      const fn = Function(`return ${cbString}`);\n      if (fn) {\n        this.cb = fn();\n      } else {\n        this.cb = this.setFormData;\n      }\n    } else {\n      // 当没有配置回调函数时，执行默认的回调函数\n      this.cb = this.setFormData;\n    }\n  }\n\n  /** 设置form对应的数据对象的值\n   * @param data form对应的数据对象\n   * @params 设置或者对应table选择的数据\n   */\n  setFormData(data: RhSafeAny, ctx: RhSelectableDto) {\n    data[this.formKeyFieldName] = ctx[this.modelKeyFieldName];\n    data[this.formTextFieldName] = ctx[this.modelTextFieldName];\n  }\n\n  setFormDataViaRelatedDatas() {\n    let relatedDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedModelDatas;\n    if (!relatedDatas?.length) {\n      relatedDatas = this.mappedList;\n    }\n    if (relatedDatas?.length) {\n      relatedDatas.forEach((ele) => {\n        this.rhData[ele.mappedName] = this.rhModel[ele.sourceName];\n      });\n    }\n  }\n\n  triggerRelatedForm() {\n    const tempDatas = (this.rhFieldData.config as RhDynamicCustomizeControlConfigDto)?.relatedFieldDatas;\n    const relatedDatas: RhRelatedFieldDataDto[] = tempDatas && tempDatas.length ? tempDatas : this.mappedList;\n    const data: RhCustomizeEventSettingDto = {\n      id: `${this.url}_${this.formName}`,\n      eventType: null,\n      options: null,\n      value: this.rhModel,\n      relatedFieldDatas: relatedDatas\n    };\n    this.dynamicSer.formCustomizeEventTrigger(data);\n  }\n  //#endregion customize selector interface区域结束\n}\n","<nz-input-group [nzSize]=\"rhSize\" [nzSuffix]=\"suffixIconSearch\" [nzAddOnAfter]=\"addOnAfter\">\n  <input type=\"text\" nz-input [ngModel]=\"displayName\" [placeholder]=\"rhPlaceholder\" readonly=\"readonly\" />\n</nz-input-group>\n<ng-template #suffixIconSearch>\n  <a *ngIf=\"displayName && !rhDisabled\" class=\"link-suffix\" (click)=\"clearInputInfo()\">\n    <i nz-icon nzType=\"close-circle\"></i>\n  </a>\n</ng-template>\n\n<ng-template #addOnAfter>\n  <button nz-button nzType=\"link\" type=\"button\" nzSize=\"small\">\n    <a (click)=\"openDataModal($event)\">\n      <i nz-icon [nzType]=\"iconSetting\"></i>\n    </a>\n  </button>\n</ng-template>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"rhTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedData\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-allocate-transfer-plan-table\n        [rhModel]=\"rhModel\"\n        (rhModelChange)=\"onSelectModal($event)\"\n        [rhInterfaceInfo]=\"defaultFormInterface\"\n        [rhSingleMode]=\"rhSingleMode\"\n        [rhDefaultQueryDto]=\"rhDefaultQueryDto\"\n      ></rh-allocate-transfer-plan-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { RhSharedManageService } from './../../../shared-manage/shared-manage.service';\nimport { RhBusinessManageService } from './../../business-manage.service';\nimport { BusinessType } from './../../business-type';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport {\n  CodeClassModel,\n  DataResultT,\n  OpMode,\n  OpResult,\n  RhBaseDto,\n  RhDynamicTableFieldDto,\n  RhLoginedUserDto,\n  RhSafeAny,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  RhTableQueryOptionDto\n} from 'rh-base/model';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\nimport { RhStayStockBusinessService } from '../stay-stock-business.service';\ntype TabType = 'edit' | 'detail' | 'audit';\n@Component({\n  selector: 'rh-location-move-handle',\n  templateUrl: './location-move-handle.component.html',\n  styleUrls: ['./location-move-handle.component.less']\n})\nexport class LocationMoveHandleComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  BusinessType = BusinessType.StockLocationTransfer;\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n  /** 显示配置 */\n  visibleSetting = {};\n  /** 单据明细数据，审核需要 */\n  orderDetails: RhSelectableDto[] = [];\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  isAsCreated = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n\n  get isEnableOutPlan() {\n    return this.businessManageSer.IsEnableOutPlan;\n  }\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto)),\n    new RhTableButtonInfoDto('submit', '提交审核', 'default', false, 'form', false, null, (data) => this.submitDataToAudit(data as RhBaseDto)),\n    new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) => this.openDetailTab({ data } as RhBaseDto, 'audit'))\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto(\n      'new',\n      '出库办理',\n      'primary',\n      false,\n      'file',\n      false,\n      null,\n      () => {\n        this.businessManageSer.controlTransactOperation(() => this.openEditTab(), this.titleButtonDataset, 0);\n      },\n      true,\n      true\n    )\n  ];\n\n  beforeSubmit = async (data: RhBaseDto, context: DynamicFormComponent) => {\n    let result: OpResult = null;\n    const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n    context.submitLoading = true;\n    try {\n      // 出库需要判断锁库情况\n      const isEnable = await this.businessManageSer.controlSubmitFormOperation([data]);\n      if (!isEnable) {\n        context.submitLoading = false;\n        return false;\n      }\n      //\n      if (this.editDto.OpSign === OpMode.OpAdd) {\n        // 基本信息\n        data.BusinessType = this.BusinessType;\n        data.OrderCreatorCode = this.currentUser.DisplayName;\n        data.OrderCreatorName = this.currentUser.UserName;\n        data.SaleOrderCode = data.SourceOrderId;\n\n        result = await this.operator.CreateStockLocationTransferTransactMasterOrder(data).toPromise();\n      } else {\n        result = await this.operator.UpdateStockLocationTransferTransactMasterOrder(data).toPromise();\n      }\n      if (result && result.Success) {\n        MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n        this.editDto.OrderId = result?.Attach?.OrderId;\n        this.isShowEditForm = false;\n        this.getDetails();\n      } else {\n        MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n      }\n    } catch (error) {\n      //\n    } finally {\n      context.submitLoading = false;\n    }\n\n    return false;\n  };\n\n  beforeSubmitAudit = (data: RhBaseDto) => {\n    if (!data.IsPass && !data.AuditMessage) {\n      MsgHelper.ShowWarningMessage('审核不通过，必须填写审核信息！');\n      return;\n    }\n    // 基本信息\n    data.OrderMaster = this.editDto;\n    data.OrderDetails = this.orderDetails;\n    data.Auditor = this.currentUser.DisplayName;\n    data.AuditorId = this.currentUser.UserName;\n\n    return true;\n  };\n\n  constructor(\n    private operator: RhStayStockBusinessService,\n    public businessManageSer: RhBusinessManageService,\n    public storage: RhStorageService,\n    public sharedManageSer: RhSharedManageService\n  ) {}\n\n  ngOnInit(): void {\n    this.setUserInfo();\n    this.initEditButtonVisible();\n    this.initVisibleSetting();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  initEditButtonVisible() {\n    this.editButtonDataset[0].visible = this.editVisible.toString();\n    this.editButtonDataset[1].visible = this.isCreated.toString();\n    this.editButtonDataset[2].visible = this.auditVisible.toString();\n  }\n\n  initVisibleSetting() {\n    Object.assign(this.visibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('locationMove'));\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {\n        TransactorCode: this.currentUser.UserName,\n        TransactorName: this.currentUser.DisplayName,\n        FactoryCode: this.currentUser.FactoryCode\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.editDto = null;\n    this.selectedIndex = 0;\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.selectedIndex = 1;\n  }\n\n  // 明细变化后\n  getDetails(details?: RhSelectableDto[]) {\n    if (details) {\n      this.orderDetails = details;\n    } else {\n      const queryDto = { OrderId: this.editDto.OrderId };\n      this.operator.GetStockLocationTransferTransactionOrders(queryDto).subscribe((result) => {\n        if (result.Success && result.Attach.length === 1) {\n          this.editDto = result.Attach[0];\n          this.editDto.OpSign = OpMode.OpEdit;\n        }\n      });\n    }\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    } else if (index === 1) {\n      this.orderDetails = [];\n    }\n  }\n\n  //#region 操作区域开始\n  /** 提交审核 */\n  submitDataToAudit(data: RhBaseDto) {\n    if (this.isCreated(data)) {\n      const dto = { OrderId: data.OrderId };\n      this.dataLoading = true;\n      this.operator.SumbitAuditStockLocationTransferTransactMasterOrder(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('提交审核成功！');\n            if (this.selectedIndex === 0) this.getDatas();\n            this.closeEditTab();\n          } else {\n            MsgHelper.ShowWarningMessage(`提交审核失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行提交审核！');\n    }\n  }\n\n  /** 审核 */\n  auditData(data: RhBaseDto) {\n    if (this.auditVisible(data)) {\n      this.openAuditDataModal(data);\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行审核！');\n    }\n  }\n\n  /** 打开审核弹窗 */\n  openAuditDataModal(data: RhBaseDto) {\n    this.auditDto = { OrderId: data.OrderId };\n    this.isShowAuditDataModal = true;\n  }\n\n  /** 关闭审核弹窗 */\n  closeAuditDataModal() {\n    this.auditDto = {};\n    this.isShowAuditDataModal = false;\n  }\n\n  /** 审核接口返回 */\n  onAuditData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('审核出库办理单据成功！');\n      this.closeAuditDataModal();\n      this.getDetails();\n    } else {\n      MsgHelper.ShowWarningModal(`审核出库办理单据失败！${result.Message}`);\n    }\n  }\n\n  /** 删除办理单据 */\n  removeDatas(datas: RhBaseDto[]) {\n    const some = datas.some((f) => !this.isAsCreated(f));\n    if (some) {\n      MsgHelper.ShowWarningMessage('只能删除制单状态的数据！');\n    } else {\n      this.dataLoading = true;\n      this.operator.RemoveStockLocationTransferTransactMasterOrders(datas as RhSafeAny).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('删除成功！');\n            this.getDatas();\n          } else {\n            MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    }\n  }\n  //#endregion 操作区域结束\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  ></rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                [rhVisibleSetting]=\"visibleSetting\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              ></rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>移库办理</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"出库单单头\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button\n                    *ngIf=\"editVisible(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"isShowEditForm = true\"\n                  >\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button\n                    *ngIf=\"isCreated(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"submitDataToAudit(editDto)\"\n                  >\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                  <button *ngIf=\"auditVisible(editDto)\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else detailsDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  [rhVisibleSetting]=\"visibleSetting\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template\n                    rhTemplate=\"OutWarehouseCode\"\n                    let-formgroup\n                    let-setting=\"setting\"\n                    let-hostSetting=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-warehouse-selector\n                          rhInventoryControlSpecialType=\"Warehouse\"\n                          [formControl]=\"formgroup.get('OutWarehouseCode')\"\n                          [rhData]=\"formData\"\n                          [rhFieldData]=\"setting\"\n                          [rhSize]=\"hostSetting?.rhSize\"\n                        >\n                        </rh-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                  <ng-template rhTemplate=\"PlanOrderId\" let-formgroup let-setting=\"setting\" let-formData=\"formData\">\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                        <rh-location-move-plan-selector\n                          [formControl]=\"formgroup.get('PlanOrderId')\"\n                          [rhFieldData]=\"setting\"\n                          [rhDisplayMode]=\"1\"\n                          [rhData]=\"formData\"\n                        ></rh-location-move-plan-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"出库单单体\">\n              <rh-location-move-handle-details [rhOrder]=\"editDto\" (rhDetailsUpdate)=\"getDetails($event)\">\n              </rh-location-move-handle-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"出库单单头\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <button\n                  *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\"\n                  nz-button\n                  nzType=\"primary\"\n                  nzSize=\"small\"\n                  type=\"button\"\n                  (click)=\"auditData(editDto)\"\n                >\n                  <i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n                </button>\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"detailsDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"出库单单体\">\n              <rh-location-move-handle-details [rhOrder]=\"editDto\" [rhShowDetail]=\"true\" (rhDetailsUpdate)=\"getDetails($event)\">\n              </rh-location-move-handle-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #detailsDescription>\n  <rh-dynamic-description\n    *ngIf=\"isRefreshDesc\"\n    rhName=\"detailsDescription\"\n    [rhValue]=\"editDto\"\n    [rhVisibleSetting]=\"visibleSetting\"\n  ></rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'出库办理审核'\"\n  [nzVisible]=\"isShowAuditDataModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeAuditDataModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #auditDataForm\n    rhName=\"auditDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"auditDto\"\n    [rhBeforeSubmit]=\"beforeSubmitAudit\"\n    (rhInterfaceDataChange)=\"onAuditData($event)\"\n    (rhClose)=\"closeAuditDataModal()\"\n  >\n    <ng-template rhTemplate=\"IsPass\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-radio-group [formControl]=\"formgroup.get('IsPass')\" (ngModelChange)=\"businessManageSer.isPassChange($event, formgroup)\">\n            <label nz-radio [nzValue]=\"true\">是</label>\n            <label nz-radio [nzValue]=\"false\">否</label>\n          </nz-radio-group>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"AuditMessage\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"!formgroup.get('IsPass').value\"> {{ setting.displayName }}</nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <textarea\n            nz-input\n            [formControl]=\"formgroup.get('AuditMessage')\"\n            [placeholder]=\"setting.placeholder\"\n            [nzAutosize]=\"{ minRows: 2 }\"\n          ></textarea>\n          <div *ngIf=\"editDto?.AuditMessage\">\n            <span style=\"color: #faad14\">上一次审核信息：{{ editDto?.AuditMessage }}</span>\n          </div>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>\n","import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport {\n  CodeClassModel,\n  DataResultT,\n  OpMode,\n  OpResult,\n  RhBaseDto,\n  RhDynamicTableFieldDto,\n  RhLoginedUserDto,\n  RhSafeAny,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  RhTableQueryOptionDto\n} from 'rh-base/model';\nimport {\n  MsgHelper,\n  ObjectHelper,\n  RhStorageService\n} from 'rh-base/core';\nimport {\n  DynamicFormComponent\n} from 'rh-base/shared';\nimport { WarehouseMaterialControlParameter } from './../../../business-manage-model';\nimport { RhBusinessManageService } from './../../../../business-manage/business-manage.service';\nimport { Observable } from 'rxjs';\nimport { InOutPlanOrderDetailDto } from '../../stay-stock-business-model';\nimport { RhStayStockBusinessService } from '../../stay-stock-business.service';\n\n@Component({\n  selector: 'rh-location-move-plan-details',\n  templateUrl: './location-move-plan-details.component.html',\n  styleUrls: ['./location-move-plan-details.component.less']\n})\nexport class LocationMovePlanDetailsComponent implements OnInit {\n  @Input() rhPlanOrder: RhBaseDto;\n  @Input() rhSourceDataset: RhSelectableDto[] = [];\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter();\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto(\n      'deleteDetails',\n      '删除',\n      'primary',\n      true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhSelectableDto[]),\n      false,\n      true\n    ),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset = [new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)];\n  tableVisibleSetting = {};\n  isVisibleSettingOver = true;\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  sourceDefaultQueryDto = {};\n  isEnterEditStatus = false;\n  materialInventoryDetailsModalShowSign = 0;\n  // 仓库控制配置参数\n  currentWarehouseMaterialControlPara: WarehouseMaterialControlParameter;\n  // 仓储数据\n  warehouseAreaDataset: RhSelectableDto[] = [];\n  warehouseShelfDataset: RhSelectableDto[] = [];\n  storageLocationDataset: RhSelectableDto[] = [];\n\n  editDisabled = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return !list.includes(data.OrderStatus);\n  };\n\n  get isReadOnlyTable() {\n    return this.rhShowDetail || !this.rhPlanOrder?.PlanOrderId || this.isEnterEditStatus || this.editDisabled(this.rhPlanOrder);\n  }\n\n  get readeOnlyButtonDataset() {\n    if (!this.rhPlanOrder?.PlanOrderId) return [];\n    else if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(private operator: RhStayStockBusinessService, public businessManageSer: RhBusinessManageService) { }\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhPlanOrder, rhSourceDataset } = changes;\n    if (rhPlanOrder && rhPlanOrder.currentValue) {\n      this.initInPlanOrderDetailDataset();\n    }\n    this.isVisibleSettingOver = false;\n    this.initTableVisibleSetting();\n    setTimeout(() => (this.isVisibleSettingOver = true));\n    /** 选中源单带来数据源 */\n    if (rhSourceDataset && rhSourceDataset.currentValue && rhSourceDataset.currentValue.length) {\n      if (!this.rhPlanOrder.PlanOrderId) this.handleSourceDataset(this.rhSourceDataset, true);\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(\n      this.tableVisibleSetting,\n      this.businessManageSer.initOutWarehouseVisibleSetting(this.currentWarehouseMaterialControlPara)\n    );\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('Out'));\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getPlanOrderVisibleSetting('In'));\n  }\n\n  /** 初始化明细数据 */\n  initInPlanOrderDetailDataset() {\n    if (this.rhPlanOrder.PlanOrderId) {\n      if (this.rhSourceDataset.length) {\n        const dataset = this.dataresult.Attach;\n        dataset.forEach((data) => {\n          data.PlanOrderId = this.rhPlanOrder.PlanOrderId;\n          data.BusinessType = this.rhPlanOrder.BusinessType;\n          data.InWarehouseCode = this.rhPlanOrder.InWarehouseCode;\n          data.InWarehouseName = this.rhPlanOrder.InWarehouseName;\n        });\n        this.storeDatas(dataset).subscribe(() => {\n          this.rhSourceDataset = [];\n          this.getDatas();\n        });\n      } else {\n        this.getDatas();\n      }\n    }\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      PlanOrderId: this.rhPlanOrder.PlanOrderId,\n      SourceOrderId: this.rhPlanOrder.SourceOrderId ? `${this.rhPlanOrder.SourceOrderId}` : null,\n      FactoryCode: this.rhPlanOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetStockLocationTransferPlanOrderDetailsDatas(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`);\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (this.editDisabled(this.rhPlanOrder)) {\n      MsgHelper.ShowWarningMessage('当前单据状态无法编辑入库计划明细！');\n      return;\n    }\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    const checkRes = this.checkStoreDatas(details);\n    if (!checkRes) {\n      return;\n    }\n    return new Observable((observer) => {\n      const dto = {\n        OrderMaster: this.rhPlanOrder,\n        OrderDetails: details\n      };\n      const msg = editType === 'add' ? '新增' : '编辑';\n      this.dataLoading = true;\n      this.operator.StoreStockLocationTransferPlanOrderDetails(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`);\n          } else {\n            MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n          observer.next();\n          observer.complete();\n        },\n        () => {\n          this.dataLoading = false;\n          observer.error();\n        }\n      );\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[]) {\n    this.extraButtonHandleDataset[1].loading = true;\n    this.operator.RemoveStockLocationTransferPlanOrderDetails(details).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n          this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n        }\n        this.extraButtonHandleDataset[1].loading = false;\n      },\n      () => (this.extraButtonHandleDataset[1].loading = false)\n    );\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    const datas = details.map((data) => {\n      const temp = InOutPlanOrderDetailDto.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 源单赋值\n      temp.SourceOrderId = data.OrderCode;\n      temp.SourceOrderRowNum = data.OrderRowNum;\n      temp.SourceOrderQty = data.DeliveryQty;\n      // 单头赋值\n      temp.PlanOrderId = this.rhPlanOrder.PlanOrderId;\n      temp.BusinessType = this.rhPlanOrder.BusinessType;\n      temp.OutWarehouseCode = this.rhPlanOrder.OutWarehouseCode;\n      temp.OutWarehouseName = this.rhPlanOrder.OutWarehouseName;\n      temp.InWarehouseCode = this.rhPlanOrder.InWarehouseCode;\n      temp.InWarehouseName = this.rhPlanOrder.InWarehouseName;\n      temp.FactoryCode = this.rhPlanOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n      }\n      this.dataresult = { Attach: (this.dataresult.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  /** 检查保存数据 */\n  checkStoreDatas(details: RhSelectableDto[]) {\n    // 必须填写计划数量\n    if (details.some((f) => !f.PlanQty)) {\n      MsgHelper.ShowWarningMessage('计划数量不能为0或空！');\n      return false;\n    }\n    if (details.some((f) => f.PlanQty > f.AvailableQty)) {\n      MsgHelper.ShowWarningMessage('计划数量不可超过库存可用数量!');\n    }\n    return true;\n  }\n\n  openDataModal() {\n    this.sourceDefaultQueryDto = {\n      OrderCode: this.rhPlanOrder.SourceOrderId ? `$${this.rhPlanOrder.SourceOrderId}` : null,\n      FactoryCode: this.rhPlanOrder.FactoryCode,\n      WarehouseCode: this.rhPlanOrder.OutWarehouseCode\n    };\n    this.materialInventoryDetailsModalShowSign++;\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n    this.handleSourceDataset(this.selectedDatas);\n    this.materialInventoryDetailsModalShowSign = 0;\n    //this.closeDataModal();\n  }\n}\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isVisibleSettingOver\">\n    <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n      <rh-dynamic-table\n        rhName=\"handleDetailsReadOnlyTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n      </rh-dynamic-table>\n    </ng-container>\n    <ng-template #handleTpl>\n      <rh-dynamic-table\n        rhName=\"handleDetailsTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      >\n      </rh-dynamic-table>\n    </ng-template>\n  </ng-container>\n</div>\n\n<rh-material-inventory-choose-transfer\n  (rhSelectedDatasChange)=\"onSelectModal($event)\"\n  [rhQueryDto]=\"sourceDefaultQueryDto\"\n  [rhShowModalSign]=\"materialInventoryDetailsModalShowSign\"\n>\n</rh-material-inventory-choose-transfer>\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport {\n  CodeClassModel,\n  DataResultT,\n  OpMode,\n  OpResult,\n  RhBaseDto,\n  RhDynamicTableFieldDto,\n  RhLoginedUserDto,\n  RhSafeAny,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  RhTableQueryOptionDto\n} from 'rh-base/model';\nimport {\n  MsgHelper,\n  RhStorageService\n} from 'rh-base/core';\nimport {\n  DynamicFormComponent\n} from 'rh-base/shared';\nimport { RhBusinessManageService } from './../../business-manage.service';\nimport { BusinessType } from './../../business-type';\nimport { RhSharedManageService } from './../../../shared-manage/shared-manage.service';\nimport { RhStayStockBusinessService } from '../stay-stock-business.service';\ntype TabType = 'edit' | 'detail' | 'audit';\n@Component({\n  selector: 'rh-location-move-plan',\n  templateUrl: './location-move-plan.component.html',\n  styleUrls: ['./location-move-plan.component.less']\n})\nexport class LocationMovePlanComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  BusinessType = BusinessType.StockLocationTransfer;\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isShowCloseInPlanRemarkModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  closeDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n  /** 选中的采购计划源单的数据 */\n  selectedSourceDataset: RhSelectableDto[] = [];\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  completeVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitInWarehouse';\n  };\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  isAsCreated = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto)),\n    new RhTableButtonInfoDto('submit', '提交审核', 'default', false, 'form', false, null, (data) => this.submitDataToAudit(data as RhBaseDto)),\n    new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) =>\n      this.openDetailTab({ data } as RhBaseDto, 'audit')\n    ),\n    new RhTableButtonInfoDto(\n      'close',\n      '关闭',\n      'default',\n      false,\n      'close-circle',\n      false,\n      null,\n      (data) => this.openCloseInPlanRemarkModal(data as RhBaseDto),\n      null,\n      null,\n      'red'\n    )\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '新建', 'primary', false, 'file', false, null, () => this.openEditTab(), true),\n    new RhTableButtonInfoDto(\n      'delete',\n      '删除',\n      'primary',\n      true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhBaseDto[]),\n      false,\n      false,\n      'red'\n    )\n  ];\n\n  beforeSubmit = async (data: RhBaseDto, context: DynamicFormComponent) => {\n    let result: OpResult = null;\n    const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n    context.submitLoading = true;\n    try {\n      if (this.editDto.OpSign === OpMode.OpAdd) {\n        // 基本信息\n        data.BusinessType = this.BusinessType;\n        data.Creator = this.currentUser.DisplayName;\n        data.CreatorId = this.currentUser.UserName;\n\n        result = await this.operator.CreateStockLocationTransferPlanMasterOrder(data).toPromise();\n      } else {\n        result = await this.operator.UpdateStockLocationTransferPlanMasterOrder(data).toPromise();\n      }\n      if (result && result.Success) {\n        MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n        this.editDto.PlanOrderId = result?.Attach?.PlanOrderId;\n        this.isShowEditForm = false;\n        this.getDetails();\n      } else {\n        MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n      }\n    } catch (error) {\n      //\n    } finally {\n      context.submitLoading = false;\n    }\n\n    return false;\n  };\n\n  beforeSubmitAudit = (data: RhBaseDto) => {\n    if (!data.IsPass && !data.AuditMessage) {\n      MsgHelper.ShowWarningMessage('审核不通过，必须填写审核信息！');\n      return;\n    }\n    // 基本信息\n    data.Auditor = this.currentUser.DisplayName;\n    data.AuditorId = this.currentUser.UserName;\n\n    return true;\n  };\n\n  constructor(\n    private operator: RhStayStockBusinessService,\n    public businessManageSer: RhBusinessManageService,\n    public storage: RhStorageService,\n    public sharedManageSer: RhSharedManageService\n  ) { }\n\n  ngOnInit(): void {\n    this.setUserInfo();\n    this.initEditButtonVisible();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  initEditButtonVisible() {\n    this.editButtonDataset[0].visible = this.editVisible.toString();\n    this.editButtonDataset[1].visible = this.isCreated.toString();\n    this.editButtonDataset[2].visible = this.auditVisible.toString();\n    this.editButtonDataset[3].visible = this.completeVisible.toString();\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    this.selectedSourceDataset = [];\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {\n        TransactorCode: this.currentUser.UserName,\n        TransactorName: this.currentUser.DisplayName,\n        FactoryCode: this.currentUser.FactoryCode\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.editDto = null;\n    this.selectedIndex = 0;\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.selectedIndex = 1;\n  }\n\n  // 未退出页面，刷新数据内容\n  getDetails() {\n    const queryDto: RhSafeAny = { PlanOrderId: this.editDto.PlanOrderId };\n    this.operator.GetStockLocationTransferPlanOrderDatas(queryDto).subscribe((result) => {\n      if (result.Success && result.Attach.length === 1) {\n        this.editDto = result.Attach[0];\n        this.editDto.OpSign = OpMode.OpEdit;\n      }\n    });\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    }\n  }\n\n  sourceOrderDatasetChange(dataset: RhSelectableDto[]) {\n    this.selectedSourceDataset = [...dataset];\n  }\n\n  //#region 操作区域开始\n  /** 提交审核 */\n  submitDataToAudit(data: RhBaseDto) {\n    if (this.isCreated(data)) {\n      const dto: RhSafeAny = { PlanOrderId: data.PlanOrderId };\n      this.dataLoading = true;\n      this.operator.SumbitAuditWarehouseTransferPlanOrder(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('提交审核成功！');\n            if (this.selectedIndex === 0) this.getDatas();\n            this.closeEditTab();\n          } else {\n            MsgHelper.ShowWarningMessage(`提交审核失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行提交审核！');\n    }\n  }\n\n  /** 审核 */\n  auditData(data: RhBaseDto) {\n    if (this.auditVisible(data)) {\n      this.openAuditDataModal(data);\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行审核！');\n    }\n  }\n\n  /** 打开审核弹窗 */\n  openAuditDataModal(data: RhBaseDto) {\n    this.auditDto = { PlanOrderId: data.PlanOrderId };\n    this.isShowAuditDataModal = true;\n  }\n\n  /** 关闭审核弹窗 */\n  closeAuditDataModal() {\n    this.auditDto = {};\n    this.isShowAuditDataModal = false;\n  }\n\n  /** 审核接口返回 */\n  onAuditData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('审核入库计划成功！');\n      this.closeAuditDataModal();\n      this.getDetails();\n    } else {\n      MsgHelper.ShowWarningModal(`审核入库计划失败！${result.Message}`);\n    }\n  }\n\n  /** 打开关闭计划备注弹窗 */\n  openCloseInPlanRemarkModal(data: RhBaseDto) {\n    this.closeDto = { PlanOrderId: data.PlanOrderId, Remark: data.Remark };\n    this.isShowCloseInPlanRemarkModal = true;\n  }\n\n  /** 关闭关闭计划备注弹窗 */\n  closeCloseInPlanRemarkModal() {\n    this.closeDto = {};\n    this.isShowCloseInPlanRemarkModal = false;\n  }\n\n  /** 关闭接口返回 */\n  onCloseData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('关闭入库计划成功！');\n      this.closeCloseInPlanRemarkModal();\n      this.getDatas();\n    } else {\n      MsgHelper.ShowWarningModal(`关闭入库计划失败！${result.Message}`);\n    }\n  }\n\n  /** 删除计划 */\n  removeDatas(datas: RhBaseDto[]) {\n    const some = datas.some((f) => !this.isAsCreated(f));\n    if (some) {\n      MsgHelper.ShowWarningMessage('只能删除制单状态的数据！');\n    } else {\n      this.dataLoading = true;\n      this.operator.RemoveStockLocationTransferPlanOrders(datas).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('删除成功！');\n            this.getDatas();\n          } else {\n            MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    }\n  }\n  //#endregion 操作区域结束\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  >\n                  </rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              >\n              </rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>数据{{ editDto?.OpSign === 1 ? '新增' : '编辑' }}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button\n                    *ngIf=\"editVisible(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"isShowEditForm = true\"\n                  >\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button\n                    *ngIf=\"isCreated(editDto)\"\n                    nz-button\n                    nzType=\"primary\"\n                    nzSize=\"small\"\n                    type=\"button\"\n                    (click)=\"submitDataToAudit(editDto)\"\n                  >\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                  <button *ngIf=\"auditVisible(editDto)\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else editDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template\n                    rhTemplate=\"InWarehouseCode\"\n                    let-formGroup\n                    let-setting=\"setting\"\n                    let-hostConfig=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.placeholder }}</nz-form-label>\n                      <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                        <rh-business-warehouse-selector\n                          name=\"InWarehouseCode\"\n                          [formControl]=\"formGroup.get('InWarehouseCode')\"\n                          rhFormType=\"edit\"\n                          [rhFieldData]=\"businessManageSer.setWarehouseFieldSetting(setting, 'In')\"\n                          [rhSize]=\"hostConfig?.rhSize\"\n                          [rhData]=\"formData\"\n                          [rhDefaultQueryDto]=\"{ BusinessTypeCode: BusinessType }\"\n                        >\n                        </rh-business-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-location-move-plan-details\n                [rhPlanOrder]=\"editDto\"\n                [rhSourceDataset]=\"selectedSourceDataset\"\n                (rhDetailsUpdate)=\"getDetails()\"\n              >\n              </rh-location-move-plan-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <button\n                  *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\"\n                  nz-button\n                  nzType=\"primary\"\n                  nzSize=\"small\"\n                  type=\"button\"\n                  (click)=\"auditData(editDto)\"\n                >\n                  <i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n                </button>\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"editDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-location-move-plan-details [rhPlanOrder]=\"editDto\" [rhShowDetail]=\"true\"> </rh-location-move-plan-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #editDescription>\n  <rh-dynamic-description *ngIf=\"isRefreshDesc\" rhName=\"editDescription\" [rhValue]=\"editDto\"></rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'调拨计划审核'\"\n  [nzVisible]=\"isShowAuditDataModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeAuditDataModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #auditDataForm\n    rhName=\"auditDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"auditDto\"\n    [rhBeforeSubmit]=\"beforeSubmitAudit\"\n    (rhInterfaceDataChange)=\"onAuditData($event)\"\n    (rhClose)=\"closeAuditDataModal()\"\n  >\n    <ng-template rhTemplate=\"IsPass\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-radio-group [formControl]=\"formgroup.get('IsPass')\" (ngModelChange)=\"businessManageSer.isPassChange($event, formgroup)\">\n            <label nz-radio [nzValue]=\"true\">是</label>\n            <label nz-radio [nzValue]=\"false\">否</label>\n          </nz-radio-group>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"AuditMessage\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"!formgroup.get('IsPass').value\"> {{ setting.displayName }}</nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <textarea\n            nz-input\n            [formControl]=\"formgroup.get('AuditMessage')\"\n            [placeholder]=\"setting.placeholder\"\n            [nzAutosize]=\"{ minRows: 2 }\"\n          ></textarea>\n          <div *ngIf=\"editDto?.AuditMessage\">\n            <span style=\"color: #faad14\">上一次审核信息：{{ editDto?.AuditMessage }}</span>\n          </div>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>\n\n<nz-modal\n  [nzTitle]=\"'关闭调拨计划备注'\"\n  [nzVisible]=\"isShowCloseInPlanRemarkModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeCloseInPlanRemarkModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #closeDataForm\n    rhName=\"closeDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"closeDto\"\n    (rhInterfaceDataChange)=\"onCloseData($event)\"\n    (rhClose)=\"closeCloseInPlanRemarkModal()\"\n  ></rh-dynamic-form>\n</nz-modal>\n","import { NgModule } from '@angular/core';\nimport { RhSharedModule } from 'rh-base/shared';\nimport { RhSharedManageModule } from './../../shared-manage/shared-manage.module';\nimport { SharedBusinessModule } from '../shared-business/shared-business.module';\nimport { AllocateTransferHandleDetailsComponent } from './allocate-transfer-handle/allocate-transfer-handle-details/allocate-transfer-handle-details.component';\nimport { AllocateTransferHandleComponent } from './allocate-transfer-handle/allocate-transfer-handle.component';\nimport { AllocateTransferPlanDetailComponent } from './allocate-transfer-plan/allocate-transfer-plan-detail/allocate-transfer-plan-detail.component';\nimport { AllocateTransferPlanComponent } from './allocate-transfer-plan/allocate-transfer-plan.component';\nimport { LocationMoveHandleDetailsComponent } from './location-move-handle/location-move-handle-details/location-move-handle-details.component';\nimport { LocationMoveHandleComponent } from './location-move-handle/location-move-handle.component';\nimport { LocationMovePlanDetailsComponent } from './location-move-plan/location-move-plan-details/location-move-plan-details.component';\nimport { LocationMovePlanComponent } from './location-move-plan/location-move-plan.component';\nimport { AllocateTransferPlanSelectorComponent } from './snippets/allocate-transfer-plan-selector/allocate-transfer-plan-selector.component';\nimport { AllocateTransferPlanTableComponent } from './snippets/allocate-transfer-plan-selector/allocate-transfer-plan-table/allocate-transfer-plan-table.component';\nimport { LocationMovePlanSelectorComponent } from './snippets/location-move-plan-selector/location-move-plan-selector.component';\nimport { LocationMovePlanTableComponent } from './snippets/location-move-plan-selector/location-move-plan-table/location-move-plan-table.component';\nimport { MaterialInventoryChooseTransferComponent } from './snippets/material-inventory-choose-transfer/material-inventory-choose-transfer.component';\nimport { RhStayStockBusinessService } from './stay-stock-business.service';\n\n@NgModule({\n  declarations: [\n    AllocateTransferPlanComponent,\n    AllocateTransferHandleComponent,\n    LocationMovePlanComponent,\n    LocationMoveHandleComponent,\n    AllocateTransferHandleDetailsComponent,\n    AllocateTransferPlanDetailComponent,\n    LocationMoveHandleDetailsComponent,\n    LocationMovePlanDetailsComponent,\n    MaterialInventoryChooseTransferComponent,\n    AllocateTransferPlanSelectorComponent,\n    AllocateTransferPlanTableComponent,\n    LocationMovePlanSelectorComponent,\n    LocationMovePlanTableComponent\n  ],\n  imports: [RhSharedModule, RhSharedManageModule, SharedBusinessModule],\n  providers: [RhStayStockBusinessService]\n})\nexport class RhStayStockBusinessModule {}\n","import { RhOtherBusinessModule } from './other-business/other-business.module';\nimport { RhProductionBusinessModule } from './production-business/production-business.module';\nimport { RhPurchaseBusinessModule } from './purchase-business/purchase-business.module';\nimport { RhSharedManageModule } from './../shared-manage/shared-manage.module';\nimport { NgModule } from '@angular/core';\nimport { RhSharedModule } from 'rh-base/shared';\nimport { RhCoreModule } from 'rh-base/core';\nimport { RhBusinessManageService } from './business-manage.service';\nimport { RhSaleBusinessModule } from './sale-business/sale-business.module';\nimport { RhStayStockBusinessModule } from './stay-stock-manage/stay-stock-business-module';\n\nconst COMPONNETS = [];\n\nconst SNIPPETS = [];\n\nconst MODULES = [\n  RhPurchaseBusinessModule,\n  RhProductionBusinessModule,\n  RhSaleBusinessModule,\n  RhOtherBusinessModule,\n  RhStayStockBusinessModule\n];\n\n@NgModule({\n  declarations: [...COMPONNETS, ...SNIPPETS],\n  imports: [RhCoreModule, RhSharedModule, RhSharedManageModule, ...MODULES],\n  exports: [...COMPONNETS],\n  providers: [RhBusinessManageService]\n})\nexport class RhBusinessManageModule { }\n","import { Component, OnInit, Type } from '@angular/core';\nimport { ModuleConfigurationTemplateData, ModuleConfigurationStyleData, RhModuleConfigurationBase } from 'rh-base/shared';\nimport { KeyValue } from '@angular/common';\nimport { MsgHelper } from 'rh-base/core';\nimport { RhSafeAny } from 'rh-base/model';\nimport { NzTreeNode } from 'ng-zorro-antd/tree';\n\nconst templateData = ModuleConfigurationTemplateData;\nconst styleData = ModuleConfigurationStyleData;\n\n@Component({\n  selector: 'rh-wms-configuration',\n  template: templateData,\n  styles: [styleData]\n})\nexport class RhWmsConfigurationComponent extends RhModuleConfigurationBase implements OnInit {\n\n  menuKey = 'Wms';\n  rhTreeTitle = '仓储管理参数配置';\n  componentMappedData: KeyValue<string, Type<RhSafeAny>>[] = [];\n\n  ngOnInit() {\n    this.getTreeNodes();\n  }\n\n  initTreeNodes(): void {\n    MsgHelper.ShowConfirmModal('是否确定', '数据初始化后无法恢复，是否继续？', () => {\n      this.treeLoading = true;\n      const domainDto = this.storage.getUserDomain();\n      const factoryCode = domainDto.FactoryCode;\n      this.sharedSer.InitWmsConfigParameter().subscribe((result) => {\n        if (result && result.Success) {\n          this.handleTreeNodes(result.Attach);\n        } else {\n          MsgHelper.ShowWarningModal(`初始化失败！${result.Message}`);\n        }\n        this.treeLoading = false;\n      });\n    });\n  }\n\n  onSelectTreeNode(item: NzTreeNode): void {\n    super.onSelectTreeNode(item);\n  }\n\n}\n","/** 物料存储属性信息模型 */\r\nexport class MaterialStoragePtyQueryDto {\r\n  constructor(\r\n    /** 物料编码 */\r\n    public MaterialCode: string,\r\n    /** 查询模式 */\r\n    public Mode: number,\r\n    /** 需要返回的结果数量 */\r\n    public MaxResultCount: number,\r\n    /** 跳过的数量 */\r\n    public SkipCount: number\r\n  ) {}\r\n  static create(): MaterialStoragePtyQueryDto {\r\n    return new MaterialStoragePtyQueryDto(null, null, null, null);\r\n  }\r\n}\r\n\r\n/** 物料存储属性信息模型 */\r\nexport class MaterialStoragePtyDto {\r\n  constructor(\r\n    /** 物料编码 */\r\n    public MaterialCode: string,\r\n    /** ABC分类 */\r\n    public AbcCategory: string,\r\n    /** 发运模式 */\r\n    public ShippingMode: string,\r\n    /** 管理模式 */\r\n    public ManageMode: string,\r\n    /** 产品条码验证模式 */\r\n    public ProductSnCheckMode: string,\r\n    /** 产品条码验证参数 */\r\n    public ProductSnCheckParameter: string,\r\n    /** 是 */\r\n    public IsTrayLot: boolean,\r\n    /** 长 */\r\n    public VLength: number,\r\n    /** 宽 */\r\n    public VWidth: number,\r\n    /** 高 */\r\n    public VHeight: number,\r\n    /** 毛重 */\r\n    public RoughWeight: number,\r\n    /** 图号 */\r\n    public MaterialPictureNo: string,\r\n    /** 库存上限 */\r\n    public InventoryLimitUpper: number,\r\n    /** 库存下限 */\r\n    public InventoryLimitDown: number,\r\n    /** 所属仓库 */\r\n    public JsonRelationWarehouse: string,\r\n    /** 辅助计量单位 */\r\n    public MeasureAuxUnit: string,\r\n    /** 转换率 */\r\n    public ConvertRate: number,\r\n    /** 物料等级 */\r\n    public MaterialLevel: string,\r\n    /** 最小允许上料量 */\r\n    public AllowLastFeedQty: number,\r\n    /** 辅具数量 */\r\n    public AssistiveItemQty: number,\r\n    /** 制程批量 */\r\n    public ProcessBatchQty: number,\r\n    /** 超收比例(%) */\r\n    public OverChargeScale: number,\r\n    /** 超汇报比例(%) */\r\n    public OverReportScale: number,\r\n    /** 安全库存数量 */\r\n    public SafeStockQty: number,\r\n    /** 最小订货量 */\r\n    public MinimumOrderQty: number,\r\n    /** 采购提前期(天) */\r\n    public PurchaseLeadDay: number,\r\n    /** 生产提前期(天) */\r\n    public ProductLeadDay: number,\r\n    /** 标准产能(H) */\r\n    public StandardCapacity: number,\r\n    /** 标准包装箱数量 */\r\n    public StandardPackingQty: number,\r\n    /** 是否开启条形码 */\r\n    public IsEnableSN: boolean,\r\n    /** 是否开启批次号 */\r\n    public IsEnableLotNum: boolean,\r\n    /** 是否开启保质期 */\r\n    public IsEnableExpirationDate: boolean,\r\n    /** 是否开启库位 */\r\n    public IsEnableStorageLocation: boolean,\r\n    /** 备注 */\r\n    public Remark: string,\r\n    /** */\r\n    public SField1: string,\r\n    /** */\r\n    public SField2: string,\r\n    /** */\r\n    public SField3: string,\r\n    /** */\r\n    public FField1: number,\r\n    /** */\r\n    public FField2: number,\r\n    /** */\r\n    public FField3: number,\r\n    /** */\r\n    public DField1: Date,\r\n    /** */\r\n    public DField2: Date,\r\n    /** */\r\n    public DField3: Date,\r\n    /** */\r\n    public DField4: Date,\r\n    /** 上次修改时间 */\r\n    public LastModificationTime: Date,\r\n    /** 上次修改人ID */\r\n    public LastModifierUserId: number,\r\n    /** 上次修改人 */\r\n    public LastModifierUserName: string,\r\n    /** 创建时间 */\r\n    public CreationTime: Date,\r\n    /** 创建用户Id */\r\n    public CreatorUserId: number,\r\n    /** 创建用户名称 */\r\n    public CreatorUserName: string,\r\n    /** 操作标志 */\r\n    public OpSign: number,\r\n    /** 自增键 */\r\n    public Id: number,\r\n    /** 单位组托数量 */\r\n    public TrayQty: number\r\n  ) {}\r\n  static create(): MaterialStoragePtyDto {\r\n    return new MaterialStoragePtyDto(\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null,\r\n      null\r\n    );\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { RhApiUrlsService } from 'rh-base/core';\r\nimport { Observable } from 'rxjs';\r\nimport { DataResultT, OpResult } from 'rh-base/model';\r\nimport { MaterialStoragePtyQueryDto, MaterialStoragePtyDto } from './basic-data-model';\r\n\r\n@Injectable()\r\nexport class RhBasicDataService {\r\n  constructor(private apiUrls: RhApiUrlsService) {}\r\n\r\n  /**\r\n   *  获取批量物料扩展信息\r\n   */\r\n  GetMaterialStoragePtyDatas(queryDto: MaterialStoragePtyQueryDto): Observable<DataResultT<MaterialStoragePtyDto[]>> {\r\n    return this.apiUrls.PostMdp('ProductMaterialWebApi', 'GetMaterialStoragePtyDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  保存WMS物料扩展信息\r\n   */\r\n  StoreMaterialStoragePtyDataOfWms(dtos: MaterialStoragePtyDto[]): Observable<OpResult> {\r\n    return this.apiUrls.PostMdp('ProductMaterialWebApi', 'StoreMaterialStoragePtyDataOfWms', dtos);\r\n  }\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport {\n  RhBaseDto,\n  DataResultT,\n  RhSafeAny,\n  RhTableButtonInfoDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto,\n  RhSelectableDto\n} from 'rh-base/model';\nimport { NzTreeNode } from 'ng-zorro-antd/tree';\nimport { RhBasicDataService } from '../basic-data.service';\nimport { MaterialStoragePtyQueryDto, MaterialStoragePtyDto } from '../basic-data-model';\nimport { MsgHelper } from 'rh-base/core';\n\n@Component({\n  selector: 'rh-material-setting',\n  templateUrl: './material-setting.component.html',\n  styleUrls: ['./material-setting.component.less']\n})\nexport class RhMaterialSettingComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n  defaultQueryDto: RhSafeAny = {};\n\n  //物料树内选中的物料\n  selectedMaterial: RhSafeAny;\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto(\n      'edit',\n      '配置',\n      'default',\n      false,\n      'edit',\n      false,\n      null,\n      (data) => this.openPtyInfoTab(data as RhBaseDto),\n      true\n    )\n  ];\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto(\n      'editBatch',\n      '批量配置',\n      'primary',\n      false,\n      'edit',\n      false,\n      null,\n      (datas) => this.batchEditPtyInfos(datas as RhSelectableDto[]),\n      false\n    )\n  ];\n  extraButtonDataset: RhTableButtonInfoDto[] = [];\n\n  ptyDto: RhBaseDto = {};\n  materialStoragePtyDataset: MaterialStoragePtyDto[] = [];\n  materialStoragePtyDataLoading = false;\n  // 批量配置\n  selectedDatas: RhSelectableDto[] = [];\n\n  beforeSubmit = (data: RhBaseDto) => {\n    if (data.MaterialCode) {\n      this.storeMaterialStoragePtyDataOfWms([data] as MaterialStoragePtyDto[]);\n    } else {\n      const temp = this.selectedDatas.map((f) => {\n        return { ...data, MaterialCode: f.MaterialCode };\n      });\n      this.storeMaterialStoragePtyDataOfWms(temp as MaterialStoragePtyDto[]);\n    }\n    return false;\n  };\n\n  constructor(private operator: RhBasicDataService) { }\n\n  ngOnInit(): void { }\n\n  setDatas(dataset: DataResultT<RhBaseDto[]>) {\n    this.dataresult = dataset;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  refreshDatas(option) {\n    this.getDatas(option);\n  }\n\n  getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      const queryDto: RhSafeAny = {};\n      if (this.selectedMaterial?.MaterialCode) {\n        queryDto.MaterialCode = this.selectedMaterial.MaterialCode;\n      } else {\n        queryDto.MaterialCode = null;\n      }\n      this.defaultQueryDto = queryDto;\n      setTimeout(() => {\n        this.queryFormCmt.submitDefaultForm(null, option);\n      });\n    }\n  }\n\n  SelectedMaterialCode(node: NzTreeNode) {\n    if (node && node.origin.customData) {\n      const data = node.origin.customData;\n      if (node.isSelected) {\n        this.selectedMaterial = data;\n        this.getDatas();\n      }\n    } else {\n      this.selectedMaterial = null;\n    }\n  }\n\n  getMaterialStoragePtyDatas() {\n    const queryDto = MaterialStoragePtyQueryDto.create();\n    queryDto.MaterialCode = this.editDto.MaterialCode;\n    queryDto.Mode = 8;\n    this.ptyDto = { MaterialCode: this.editDto.MaterialCode };\n    this.materialStoragePtyDataLoading = true;\n    this.operator.GetMaterialStoragePtyDatas(queryDto).subscribe(\n      (result) => {\n        if (result.Success) {\n          this.materialStoragePtyDataset = result.Attach;\n          if (this.materialStoragePtyDataset.length) this.ptyDto = this.materialStoragePtyDataset[0];\n        } else {\n          this.materialStoragePtyDataset = [];\n        }\n        this.materialStoragePtyDataLoading = false;\n      },\n      () => {\n        this.materialStoragePtyDataLoading = false;\n      }\n    );\n  }\n\n  openPtyInfoTab(data: RhBaseDto) {\n    this.editDto = data;\n    this.selectedIndex = 1;\n    this.getMaterialStoragePtyDatas();\n  }\n\n  closePtyInfoTab() {\n    this.selectedIndex = 0;\n  }\n\n  batchEditPtyInfos(datas: RhSelectableDto[]) {\n    if (datas.length === 1) {\n      this.openPtyInfoTab(datas[0]);\n    } else {\n      this.selectedDatas = datas;\n      this.ptyDto = {};\n      this.selectedIndex = 1;\n    }\n  }\n\n  storeMaterialStoragePtyDataOfWms(datas: MaterialStoragePtyDto[]) {\n    this.operator.StoreMaterialStoragePtyDataOfWms(datas).subscribe((result) => {\n      if (result.Success) {\n        MsgHelper.ShowSuccessMessage('配置库存管理参数成功！');\n        this.closePtyInfoTab();\n      } else {\n        MsgHelper.ShowWarningModal(`配置库存管理参数失败！${result.Message}`);\n      }\n    });\n  }\n}\n","<nz-tabset class=\"full-area\" [(nzSelectedIndex)]=\"selectedIndex\">\n  <nz-tab [nzTitle]=\"tabOneTitle\">\n    <ng-template #tabOneTitle>\n      <span>数据展示</span>\n    </ng-template>\n\n    <d-splitter style=\"height: 100%; width: 100%\" orientation=\"horizontal\">\n      <d-splitter-pane #leftPane [collapsible]=\"true\" size=\"300px\" minSize=\"200px\" maxSize=\"400px\">\n        <div *ngIf=\"!leftPane.collapsed\">\n          <rh-material-tree [rhMode]=\"3\" (rhSelectNodeChange)=\"SelectedMaterialCode($event)\"> </rh-material-tree>\n        </div>\n      </d-splitter-pane>\n      <d-splitter-pane>\n        <div class=\"rh-full\">\n          <d-splitter orientation=\"vertical\">\n            <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n              <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n                <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                  <ng-template #nzAlertTemplate>\n                    <rh-dynamic-form\n                      #queryForm\n                      (rhInterfaceDataChange)=\"setDatas($event)\"\n                      (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                      (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                      [rhValue]=\"defaultQueryDto\"\n                    >\n                    </rh-dynamic-form>\n                  </ng-template>\n                </nz-alert>\n              </div>\n            </d-splitter-pane>\n            <d-splitter-pane>\n              <div class=\"rh-full\">\n                <rh-dynamic-table\n                  [rhTableData]=\"dataresult\"\n                  [rhTableDataloading]=\"dataLoading\"\n                  [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                  [rhEditButtonDataset]=\"editButtonDataset\"\n                  [rhTitleButtonDataset]=\"titleButtonDataset\"\n                  [rhExtraButtonDataset]=\"extraButtonDataset\"\n                  (rhRefresh)=\"refreshDatas($event)\"\n                ></rh-dynamic-table>\n              </div>\n            </d-splitter-pane>\n          </d-splitter>\n        </div>\n      </d-splitter-pane>\n    </d-splitter>\n  </nz-tab>\n  <nz-tab *ngIf=\"selectedIndex\" [nzTitle]=\"tabTwoTitle\">\n    <ng-template #tabTwoTitle>\n      <span>配置库存管理参数{{ ptyDto?.MaterialCode ? '' : '（批量）' }}</span>\n      <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closePtyInfoTab()\"></i></span>\n    </ng-template>\n    <div class=\"rh-full\">\n      <rh-dynamic-form\n        #editForm\n        rhName=\"editForm\"\n        rhType=\"edit\"\n        rhLayout=\"horizontal\"\n        [rhValue]=\"ptyDto\"\n        [rhBeforeSubmit]=\"beforeSubmit\"\n        (rhClose)=\"closePtyInfoTab()\"\n      ></rh-dynamic-form>\n    </div>\n  </nz-tab>\n</nz-tabset>\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport {\n  RhSelectableDto,\n  DataResultT,\n  RhTableButtonInfoDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto\n} from 'rh-base/model';\nimport { MsgHelper } from 'rh-base/core';\n\n@Component({\n  selector: 'rh-customer-info-setting',\n  templateUrl: './customer-info-setting.component.html',\n  styleUrls: ['./customer-info-setting.component.less']\n})\nexport class RhCustomerInfoSettingComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  defaultFieldDataset = [];\n\n  editButtonDataset: RhTableButtonInfoDto[] = [];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [];\n\n  extraButtonDataset: RhTableButtonInfoDto[] = [];\n\n  constructor() {\n    //\n  }\n\n  ngOnInit(): void {\n    //\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n}\n","<div class=\"rh-full\">\n  <d-splitter orientation=\"vertical\">\n    <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n      <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n        <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n          <ng-template #nzAlertTemplate>\n            <rh-dynamic-form\n              #queryForm\n              (rhInterfaceDataChange)=\"setDatas($event)\"\n              (rhDataloadingChange)=\"dataLoadingChange($event)\"\n              (rhOutParaChange)=\"setInitFieldDataset($event)\"\n            ></rh-dynamic-form>\n          </ng-template>\n        </nz-alert>\n      </div>\n    </d-splitter-pane>\n    <d-splitter-pane>\n      <div class=\"rh-full\">\n        <rh-dynamic-table\n          [rhTableData]=\"dataresult\"\n          [rhTableDataloading]=\"dataLoading\"\n          [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n          (rhRefresh)=\"refreshDatas($event)\"\n          [rhEditButtonDataset]=\"editButtonDataset\"\n          [rhTitleButtonDataset]=\"titleButtonDataset\"\n          [rhExtraButtonDataset]=\"extraButtonDataset\"\n        ></rh-dynamic-table>\n      </div>\n    </d-splitter-pane>\n  </d-splitter>\n</div>\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport {\n  RhSelectableDto,\n  DataResultT,\n  RhTableButtonInfoDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto\n} from 'rh-base/model';\nimport { MsgHelper } from 'rh-base/core';\n\n@Component({\n  selector: 'rh-supplier-info-setting',\n  templateUrl: './supplier-info-setting.component.html',\n  styleUrls: ['./supplier-info-setting.component.less']\n})\nexport class RhSupplierInfoSettingComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  defaultFieldDataset = [];\n\n  editButtonDataset: RhTableButtonInfoDto[] = [];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [];\n\n  extraButtonDataset: RhTableButtonInfoDto[] = [];\n\n  constructor() {\n    //\n  }\n\n  ngOnInit(): void {\n    //\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n}\n","<div class=\"rh-full\">\n  <d-splitter orientation=\"vertical\">\n    <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n      <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n        <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n          <ng-template #nzAlertTemplate>\n            <rh-dynamic-form\n              #queryForm\n              (rhInterfaceDataChange)=\"setDatas($event)\"\n              (rhDataloadingChange)=\"dataLoadingChange($event)\"\n              (rhOutParaChange)=\"setInitFieldDataset($event)\"\n            ></rh-dynamic-form>\n          </ng-template>\n        </nz-alert>\n      </div>\n    </d-splitter-pane>\n    <d-splitter-pane>\n      <div class=\"rh-full\">\n        <rh-dynamic-table\n          [rhTableData]=\"dataresult\"\n          [rhTableDataloading]=\"dataLoading\"\n          [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n          (rhRefresh)=\"refreshDatas($event)\"\n          [rhEditButtonDataset]=\"editButtonDataset\"\n          [rhTitleButtonDataset]=\"titleButtonDataset\"\n          [rhExtraButtonDataset]=\"extraButtonDataset\"\n        ></rh-dynamic-table>\n      </div>\n    </d-splitter-pane>\n  </d-splitter>\n</div>\n","import { RhSharedManageModule } from './../../shared-manage/shared-manage.module';\nimport { RhSharedModule } from 'rh-base/shared';\nimport { NgModule } from '@angular/core';\nimport { RhMaterialSettingComponent } from './material-setting/material-setting.component';\nimport { RhBasicDataService } from './basic-data.service';\nimport { RhCustomerInfoSettingComponent } from './customer-info-setting/customer-info-setting.component';\nimport { RhSupplierInfoSettingComponent } from './supplier-info-setting/supplier-info-setting.component';\n\nconst COMPONENTS = [RhMaterialSettingComponent, RhCustomerInfoSettingComponent, RhSupplierInfoSettingComponent];\n\n@NgModule({\n  declarations: [...COMPONENTS],\n  imports: [RhSharedModule, RhSharedManageModule],\n  providers: [RhBasicDataService]\n})\nexport class RhBasicDataModule {}\n","import { RhSharedManageModule } from './../shared-manage/shared-manage.module';\nimport { NgModule } from '@angular/core';\nimport { RhSharedModule } from 'rh-base/shared';\nimport { RhWmsConfigurationComponent } from './wms-configuration/wms-configuration.component';\nimport { RhBasicDataModule } from './basic-data/basic-data.module';\n\nconst COMPONNETS = [RhWmsConfigurationComponent];\nconst SNIPPETS = [];\nconst MODULES = [RhBasicDataModule];\n\n@NgModule({\n  declarations: [...COMPONNETS, ...SNIPPETS],\n  imports: [RhSharedModule, RhSharedManageModule, ...MODULES]\n  // exports: [...MODULES]\n})\nexport class RhConfigManageModule { }\n","import { MaterialInventoryDetailQueryDto, MaterialInventoryDetailDto } from '../../wms-model';\nimport { Injectable } from '@angular/core';\nimport { RhApiUrlsService } from 'rh-base/core';\nimport { Observable } from 'rxjs';\nimport { OpResult, DataResultT } from 'rh-base/model';\nimport { MaterialInventoryLockConfigDto } from '../inventory-manage-model';\n\n@Injectable()\nexport class RhInventoryControlService {\n\n  constructor(private apiUrls: RhApiUrlsService) { }\n\n  /**\n   *  保存锁库配置\n   */\n  StoreMaterialInventoryLockConfigDatas(dtos: MaterialInventoryLockConfigDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('MaterialInventoryLockConfigWebApi', 'StoreMaterialInventoryLockConfigDatas', dtos);\n  }\n\n  /**\n   *  获取库存明细\n   */\n  GetMaterialInventoryDetailDatas(queryDto: MaterialInventoryDetailQueryDto): Observable<DataResultT<MaterialInventoryDetailDto[]>> {\n    return this.apiUrls.PostRhpWms('MaterialInventoryWebApi', 'GetMaterialInventoryDetailDatas', queryDto);\n  }\n}\n","import { MsgHelper } from 'rh-base/core';\nimport { DataResultT, RhSelectableDto, RhBaseDto, RhTableButtonInfoDto, CodeClassModel, RhDynamicTableFieldDto, RhTableQueryOptionDto, RhSafeAny } from 'rh-base/model';\nimport { Component, OnInit, Input, SimpleChanges, Output, EventEmitter, ViewChild } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { UntypedFormGroup } from '@angular/forms';\n\n@Component({\n  selector: 'app-material-inventory-details-table',\n  templateUrl: './material-inventory-details-table.component.html',\n  styleUrls: ['./material-inventory-details-table.component.less']\n})\nexport class MaterialInventoryDetailsTableComponent implements OnInit {\n  @Input() rhDefaultQueryDto: RhBaseDto = {};\n  @Output() rhSelectedDataChange = new EventEmitter<RhSelectableDto>();\n\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n  editButtonDataset: RhTableButtonInfoDto[] = [];\n  titleButtonDataset: RhTableButtonInfoDto[] = [];\n  extraButtonDataset: RhTableButtonInfoDto[] = [];\n\n  time: RhSafeAny;\n  defaultQueryDtoStorageLocation: RhBaseDto = {};\n\n  constructor() { }\n\n  ngOnInit(): void { }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhDefaultQueryDto } = changes;\n    if (rhDefaultQueryDto && rhDefaultQueryDto.currentValue && !rhDefaultQueryDto.firstChange) {\n      if (this.time) clearTimeout(this.time);\n      this.time = setTimeout(() => {\n        this.getDatas();\n      }, 500);\n    }\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!dataset?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${dataset?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  getSelectedDataChange(data: RhSelectableDto) {\n    this.rhSelectedDataChange.emit(data);\n  }\n\n  onWarehouseCodeChange(code: string, formgroup: UntypedFormGroup) {\n    if (code) {\n      this.defaultQueryDtoStorageLocation = { WarehouseCode: `$${code}` };\n    } else {\n      this.defaultQueryDtoStorageLocation = { WarehouseCode: null };\n      formgroup.get('StorageLocationCode')?.setValue(null);\n      formgroup.get('StorageLocationName')?.setValue(null);\n    }\n  }\n\n}\n","<div class=\"rh-full\">\n    <d-splitter orientation=\"vertical\">\n        <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPaneTwo.collapsed\" class=\"rh-full\">\n                <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplateTwo\">\n                    <ng-template #nzAlertTemplateTwo>\n                        <rh-dynamic-form #queryForm rhName=\"inventoryDetailsQueryForm\" [rhValue]=\"rhDefaultQueryDto\"\n                            (rhInterfaceDataChange)=\"setDatas($event)\" (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                            (rhOutParaChange)=\"setInitFieldDataset($event)\">\n                            <ng-template rhTemplate='WarehouseCode' let-formGroup let-setting='setting'\n                                let-hostConfig='hostSetting' let-formData='formData'>\n                                <nz-form-item>\n                                    <nz-form-control [nzSpan]='setting.controlSpan'>\n                                        <rh-form-field name='WarehouseCode'\n                                            [formControl]='formGroup.get(\"WarehouseCode\")' rhFormType='edit'\n                                            [rhFieldData]='setting' [rhSize]='hostConfig?.rhSize' [rhData]='formData'\n                                            (ngModelChange)='onWarehouseCodeChange($event, formGroup)'>\n                                        </rh-form-field>\n                                    </nz-form-control>\n                                </nz-form-item>\n                            </ng-template>\n                            <ng-template rhTemplate='StorageLocationCode' let-formGroup let-setting='setting'\n                                let-hostConfig='hostSetting' let-formData='formData'>\n                                <nz-form-item>\n                                    <nz-form-control [nzSpan]='setting.controlSpan'>\n                                        <rh-storage-location-selector\n                                            [formControl]=\"formGroup.get('StorageLocationCode')\" [rhData]=\"formData\"\n                                            [rhFieldData]=\"setting\" [rhSize]=\"hostConfig?.rhSize\"\n                                            [rhDefaultQueryDto]=\"defaultQueryDtoStorageLocation\">\n                                        </rh-storage-location-selector>\n                                    </nz-form-control>\n                                </nz-form-item>\n                            </ng-template>\n                        </rh-dynamic-form>\n                    </ng-template>\n                </nz-alert>\n            </div>\n        </d-splitter-pane>\n        <d-splitter-pane>\n            <div class=\"rh-full\">\n                <rh-dynamic-table rhName=\"inventoryDetailsTable\" [rhTableData]=\"dataresult\"\n                    [rhTableDataloading]=\"dataLoading\" [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                    (rhRefresh)=\"refreshDatas($event)\" (rhSelectedDataChange)=\"getSelectedDataChange($event)\">\n                </rh-dynamic-table>\n            </div>\n        </d-splitter-pane>\n    </d-splitter>\n</div>","import { UntypedFormGroup } from '@angular/forms';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { DynamicFormComponent, RhBaseDynamicService } from 'rh-base/shared';\nimport {\n  RhBaseDto,\n  DataResultT,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  OpMode,\n  RhSafeAny,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto,\n  RhSelectItem,\n  RhDynamicInterfaceDto,\n  RhLoginedUserDto\n} from 'rh-base/model';\nimport { MsgHelper, ObjectHelper, RhApiUrlsService, RhRouteHelper, FormHelper, RhStorageService } from 'rh-base/core';\nimport { RhInventoryControlService } from '../inventory-control.service';\nimport { MaterialInventoryLockConfigDto } from '../../inventory-manage-model';\nimport { Router } from '@angular/router';\n\n@Component({\n  selector: 'rh-inventory-lock',\n  templateUrl: './inventory-lock.component.html',\n  styleUrls: ['./inventory-lock.component.less']\n})\nexport class RhInventoryLockComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  defaultFieldDataset = [];\n\n  editButtonDataset: RhTableButtonInfoDto[] = [];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '新建', 'primary', false, 'file', false, null, () => this.openEditTab(), true)\n  ];\n\n  extraButtonDataset: RhTableButtonInfoDto[] = [];\n\n  currentUser: RhLoginedUserDto;\n  collapseQueryDto: RhBaseDto = {};\n  defaultQueryDto: RhBaseDto = {};\n  materialInventoryDetailQueryDto: RhBaseDto = {};\n  defaultQueryDtoStorageLocation: RhBaseDto = {};\n  lockTypes: RhSelectItem[] = [];\n  currentLockType: string;\n  url: string;\n\n  beforeSubmit = (data: RhBaseDto, context: DynamicFormComponent) => {\n    if (this.currentLockType === 'Custom') {\n      const fields = ['MaterialCode', 'LotNum', 'WarehouseCode', 'StorageLocationCode', 'FactoryCode'];\n      if (fields.every((f) => !data[f])) {\n        MsgHelper.ShowWarningMessage('必须填写至少一项锁库内容！');\n        return false;\n      }\n    }\n    data.LockType = this.currentLockType;\n    data.IsLocked = true;\n    context.submitLoading = true;\n    this.storeMaterialInventoryLockConfigDatas(\n      [data] as MaterialInventoryLockConfigDto[],\n      () => {\n        context.submitLoading = false;\n      },\n      () => {\n        context.defaultDto = ObjectHelper.createRhBaseDto();\n        context.resetDto = ObjectHelper.createRhBaseDto();\n        context.relatedDto = ObjectHelper.createRhBaseDto();\n        FormHelper.resetForm(context.defaultForm);\n        // context.defaultForm.reset();\n        // this.resetEditDto();\n      }\n    );\n    return false;\n  };\n\n  constructor(\n    private apiUrls: RhApiUrlsService,\n    private operator: RhInventoryControlService,\n    public dynamicSer: RhBaseDynamicService,\n    public router: Router,\n    public storage: RhStorageService\n  ) {\n    this.url = RhRouteHelper.getRealRoute(this.router.url);\n  }\n\n  ngOnInit(): void {\n    this.getLockTypeDatas();\n    this.currentUser = this.storage.getUserSession().User;\n    // this.defaultQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  resetEditDto() {\n    this.editDto = { OpSign: OpMode.OpAdd, __flag: new Date().getTime() };\n  }\n\n  initDefaultQueryDto(dto: RhSafeAny) {\n    this.collapseQueryDto = dto;\n    this.defaultQueryDto = { ...this.defaultQueryDto, ...this.collapseQueryDto };\n  }\n\n  getValueChange() {\n    this.defaultQueryDto = { ...this.defaultQueryDto, ...this.collapseQueryDto };\n    setTimeout(() => {\n      this.getDatas();\n    });\n  }\n\n  openEditTab() {\n    this.editDto = ObjectHelper.createRhBaseDto();\n    this.lockTypeChange(0);\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.selectedIndex = 0;\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  storeMaterialInventoryLockConfigDatas(datas: MaterialInventoryLockConfigDto[], cb: () => void, onOk?: () => void) {\n    this.operator.StoreMaterialInventoryLockConfigDatas(datas).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('保存锁库配置成功！');\n          this.getDatas();\n          if (onOk) onOk();\n        } else {\n          MsgHelper.ShowWarningMessage(`保存锁库配置失败！${result.Message}`);\n        }\n        cb();\n      },\n      () => cb()\n    );\n  }\n\n  getLockTypeDatas() {\n    this.apiUrls.getSettingEntry('Wms', 'MaterialInventory', 'MaterialInventoryLockType').subscribe((result) => {\n      if (result.Success) {\n        this.lockTypes = result.Attach;\n        const CustomIndex = this.lockTypes.findIndex((f) => f.Value === 'Custom');\n        if (CustomIndex !== -1 && CustomIndex !== 0) {\n          this.lockTypes.splice(0, 0, this.lockTypes[CustomIndex]);\n          this.lockTypes.splice(CustomIndex + 1, 1);\n        }\n      }\n    });\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.materialInventoryDetailQueryDto = {};\n    }\n  }\n\n  lockTypeChange(index: number) {\n    this.currentLockType = this.lockTypes[index]?.Value.toString();\n    this.materialInventoryDetailQueryDto = {};\n    this.editDto = { OpSign: OpMode.OpAdd, __flag: new Date().getTime() };\n  }\n\n  onMaterialCodeChange(code: string, formgroup: UntypedFormGroup) {\n    if (code !== this.materialInventoryDetailQueryDto.MaterialCode) {\n      this.materialInventoryDetailQueryDto = { ...this.materialInventoryDetailQueryDto, MaterialCode: code };\n    }\n    if (!code) {\n      formgroup.get('LotNum')?.setValue(null);\n    }\n  }\n\n  onWarehouseCodeChange(code: string, formgroup: UntypedFormGroup) {\n    if (code) {\n      this.defaultQueryDtoStorageLocation = { WarehouseCode: code };\n    } else {\n      this.defaultQueryDtoStorageLocation = { WarehouseCode: null };\n      formgroup.get('StorageLocationCode')?.setValue(null);\n      formgroup.get('StorageLocationName')?.setValue(null);\n    }\n    if (code !== this.materialInventoryDetailQueryDto.WarehouseCode) {\n      this.materialInventoryDetailQueryDto = { ...this.materialInventoryDetailQueryDto, WarehouseCode: code };\n    }\n  }\n\n  onStorageLocationCodeChange(code: string) {\n    if (code !== this.materialInventoryDetailQueryDto.StorageLocationCode) {\n      this.materialInventoryDetailQueryDto = { ...this.materialInventoryDetailQueryDto, StorageLocationCode: code };\n    }\n  }\n\n  onFactoryCodeChange(code: string) {\n    if (code !== this.materialInventoryDetailQueryDto.FactoryCode) {\n      this.materialInventoryDetailQueryDto = { ...this.materialInventoryDetailQueryDto, FactoryCode: code };\n    }\n  }\n\n  getSelectedMaterialInventoryDetailData(data: RhSelectableDto) {\n    const fields =\n      this.currentLockType === 'LotNum'\n        ? ['MaterialCode', 'MaterialName', 'LotNum']\n        : [\n            'MaterialCode',\n            'MaterialName',\n            'WarehouseCode',\n            'WarehouseName',\n            'StorageLocationCode',\n            'StorageLocationName',\n            'LotNum',\n            'FactoryCode'\n          ];\n    // if (data) {\n    //   // this.defaultQueryDtoStorageLocation = {};\n    //   const relatedDatas = fields.map(f => { return { sourceName: f, mappedName: f } });\n    //   this.dynamicSer.formCustomizeEventTrigger(\n    //     {\n    //       id: `${this.url}_${this.currentLockType}EditForm`,\n    //       eventType: null,\n    //       options: null,\n    //       value: data,\n    //       relatedFieldDatas: relatedDatas\n    //     }\n    //   );\n    // }\n    if (data) {\n      const temp = ObjectHelper.createRhBaseDto();\n      fields.forEach((f) => (temp[f] = data[f]));\n      this.editDto = { ...temp, __flag: new Date().getTime() };\n    }\n  }\n}\n","<div class=\"rh-full\">\n    <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n        <nz-tab [nzTitle]=\"tabOneTitle\">\n            <ng-template #tabOneTitle>\n                <span>数据展示</span>\n            </ng-template>\n            <d-splitter style=\"height: 100%; width: 100%\" orientation=\"horizontal\">\n                <d-splitter-pane #leftPane [collapsible]=\"true\" minSize=\"150px\" size=\"200px\" maxSize=\"250px\">\n                    <div *ngIf=\"!leftPane.collapsed\">\n                        <rh-dynamic-collapse [rhValue]=\"collapseQueryDto\" (rhValueChange)=\"getValueChange()\"\n                            (rhInitValue)=\"initDefaultQueryDto($event)\">\n                        </rh-dynamic-collapse>\n                    </div>\n                </d-splitter-pane>\n                <d-splitter-pane>\n                    <div class=\"rh-full\">\n                        <d-splitter orientation=\"vertical\">\n                            <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n                                <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n                                    <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                                        <ng-template #nzAlertTemplate>\n                                            <rh-dynamic-form #queryForm rhName=\"queryForm\" rhType=\"query\"\n                                                [rhValue]=\"defaultQueryDto\" (rhInterfaceDataChange)=\"setDatas($event)\"\n                                                (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                                                (rhOutParaChange)=\"setInitFieldDataset($event)\"></rh-dynamic-form>\n                                        </ng-template>\n                                    </nz-alert>\n                                </div>\n                            </d-splitter-pane>\n                            <d-splitter-pane>\n                                <div class=\"rh-full\">\n                                    <rh-dynamic-table [rhTableData]=\"dataresult\" [rhTableDataloading]=\"dataLoading\"\n                                        [rhDefaultFieldDataset]=\"defaultFieldDataset\" (rhRefresh)=\"refreshDatas($event)\"\n                                        [rhEditButtonDataset]=\"editButtonDataset\"\n                                        [rhTitleButtonDataset]=\"titleButtonDataset\"\n                                        [rhExtraButtonDataset]=\"extraButtonDataset\"></rh-dynamic-table>\n                                </div>\n                            </d-splitter-pane>\n                        </d-splitter>\n                    </div>\n                </d-splitter-pane>\n            </d-splitter>\n        </nz-tab>\n        <nz-tab *ngIf=\"selectedIndex\" [nzTitle]=\"tabTwoTitle\">\n            <ng-template #tabTwoTitle>\n                <span>数据新增</span>\n                <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\"\n                        (click)=\"closeEditTab()\"></i></span>\n            </ng-template>\n            <div>\n                <nz-tabset nzType=\"card\" (nzSelectedIndexChange)=\"lockTypeChange($event)\">\n                    <nz-tab *ngFor=\"let item of lockTypes\" [nzTitle]=\"item.Text\">\n                        <ng-container *ngIf=\"currentLockType === item.Value\">\n                            <rh-dynamic-form #editForm [rhName]=\"item.Value.toString()+'EditForm'\" rhType=\"edit\"\n                                rhLayout=\"horizontal\" [rhValue]=\"editDto\" [rhBeforeSubmit]=\"beforeSubmit\"\n                                [rhShowDefaultButton]=\"false\" (rhClose)=\"closeEditTab()\">\n                                <ng-template rhTemplate='MaterialCode' let-formGroup let-setting='setting'\n                                    let-hostConfig='hostSetting' let-formData='formData'>\n                                    <nz-form-item>\n                                        <nz-form-label [nzSpan]='setting.labelSpan' [nzRequired]='setting.required'>\n                                            {{ setting.placeholder }}</nz-form-label>\n                                        <nz-form-control rhAutoErrorTip [nzSpan]='setting.controlSpan'>\n                                            <rh-form-field name='MaterialCode'\n                                                [formControl]='formGroup.get(\"MaterialCode\")' rhFormType='edit'\n                                                [rhFieldData]='setting' [rhSize]='hostConfig?.rhSize'\n                                                [rhData]='formData'\n                                                (ngModelChange)='onMaterialCodeChange($event, formGroup)'>\n                                            </rh-form-field>\n                                        </nz-form-control>\n                                    </nz-form-item>\n                                </ng-template>\n                                <ng-template rhTemplate='WarehouseCode' let-formGroup let-setting='setting'\n                                    let-hostConfig='hostSetting' let-formData='formData'>\n                                    <nz-form-item>\n                                        <nz-form-label [nzSpan]='setting.labelSpan' [nzRequired]='setting.required'>\n                                            {{ setting.placeholder }}</nz-form-label>\n                                        <nz-form-control rhAutoErrorTip [nzSpan]='setting.controlSpan'>\n                                            <rh-form-field name='WarehouseCode'\n                                                [formControl]='formGroup.get(\"WarehouseCode\")' rhFormType='edit'\n                                                [rhFieldData]='setting' [rhSize]='hostConfig?.rhSize'\n                                                [rhData]='formData'\n                                                (ngModelChange)='onWarehouseCodeChange($event, formGroup)'>\n                                            </rh-form-field>\n                                        </nz-form-control>\n                                    </nz-form-item>\n                                </ng-template>\n                                <ng-template rhTemplate='StorageLocationCode' let-formGroup let-setting='setting'\n                                    let-hostConfig='hostSetting' let-formData='formData'>\n                                    <nz-form-item>\n                                        <nz-form-label [nzSpan]='setting.labelSpan' [nzRequired]='setting.required'>\n                                            {{ setting.placeholder }}</nz-form-label>\n                                        <nz-form-control rhAutoErrorTip [nzSpan]='setting.controlSpan'>\n                                            <rh-storage-location-selector\n                                                [formControl]=\"formGroup.get('StorageLocationCode')\" [rhData]=\"formData\"\n                                                [rhFieldData]=\"setting\" [rhSize]=\"hostConfig?.rhSize\"\n                                                [rhDefaultQueryDto]=\"defaultQueryDtoStorageLocation\"\n                                                (ngModelChange)='onStorageLocationCodeChange($event)'>\n                                            </rh-storage-location-selector>\n                                        </nz-form-control>\n                                    </nz-form-item>\n                                </ng-template>\n                                <ng-template rhTemplate='FactoryCode' let-formGroup let-setting='setting'\n                                    let-hostConfig='hostSetting' let-formData='formData'>\n                                    <nz-form-item>\n                                        <nz-form-label [nzSpan]='setting.labelSpan' [nzRequired]='setting.required'>\n                                            {{ setting.placeholder }}</nz-form-label>\n                                        <nz-form-control rhAutoErrorTip [nzSpan]='setting.controlSpan'>\n                                            <rh-form-field name='FactoryCode'\n                                                [formControl]='formGroup.get(\"FactoryCode\")' rhFormType='edit'\n                                                [rhFieldData]='setting' [rhSize]='hostConfig?.rhSize'\n                                                [rhData]='formData' (ngModelChange)='onFactoryCodeChange($event)'>\n                                            </rh-form-field>\n                                        </nz-form-control>\n                                    </nz-form-item>\n                                </ng-template>\n                            </rh-dynamic-form>\n                            <div *ngIf=\"item.Value === 'Custom' || item.Value === 'LotNum'\">\n                                <app-material-inventory-details-table\n                                    [rhDefaultQueryDto]=\"materialInventoryDetailQueryDto\"\n                                    (rhSelectedDataChange)=\"getSelectedMaterialInventoryDetailData($event)\">\n                                </app-material-inventory-details-table>\n                            </div>\n                        </ng-container>\n                    </nz-tab>\n                </nz-tabset>\n            </div>\n        </nz-tab>\n    </nz-tabset>\n</div>","import { NzTreeNode } from 'ng-zorro-antd/tree';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport {\n  DataResultT,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto,\n  RhSafeAny\n} from 'rh-base/model';\nimport {\n  MsgHelper,\n  RhStorageService\n} from 'rh-base/core';\nimport {\n  DynamicFormComponent\n} from 'rh-base/shared';\n\n@Component({\n  selector: 'rh-total-inventory-import',\n  templateUrl: './total-inventory-import.component.html',\n  styleUrls: ['./total-inventory-import.component.less']\n})\nexport class RhTotalInventoryImportComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  BusinessType = 'MaterialInventory';\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n  editButtonDataset: RhTableButtonInfoDto[] = [];\n  titleButtonDataset: RhTableButtonInfoDto[] = [];\n  extraButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('dataloader', '数据导入', 'default', false, 'import', false, null, () => this.openImportTab(), true)\n  ];\n\n  defaultQueryDto = {};\n  // 树内选中的物料\n  selectedMaterial: RhSafeAny;\n\n  constructor(private storage: RhStorageService) { }\n\n  ngOnInit(): void {\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult.httpRequestPara) this.dataresult.httpRequestPara = {};\n    this.dataresult.httpRequestPara.FactoryCode = this.storage.getFactoryCode();\n    if (!dataset?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${dataset?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      const queryDto: RhSafeAny = {};\n      if (this.selectedMaterial?.MaterialCode) {\n        queryDto.MaterialCode = this.selectedMaterial.MaterialCode\n          ? `$${this.selectedMaterial.MaterialCode}`\n          : null;\n      } else {\n        queryDto.MaterialCode = null;\n      }\n      this.defaultQueryDto = queryDto;\n      setTimeout(() => {\n        this.queryFormCmt.submitDefaultForm(null, option);\n      });\n    }\n  }\n\n  openImportTab() {\n    this.selectedIndex = 1;\n  }\n\n  closeImportTab() {\n    this.selectedIndex = 0;\n  }\n\n  SelectedMaterialCode(node: NzTreeNode) {\n    if (node && node.origin.customData) {\n      const data = node.origin.customData;\n      if (node.isSelected) {\n        this.selectedMaterial = data;\n        this.getDatas();\n      }\n    } else {\n      this.selectedMaterial = null;\n    }\n  }\n\n}\n","<div class=\"rh-full\">\n    <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\">\n        <nz-tab [nzTitle]=\"tabOneTitle\">\n            <ng-template #tabOneTitle>\n                <span>库存查询</span>\n            </ng-template>\n\n            <d-splitter style=\"height: 100%; width: 100%\" orientation=\"horizontal\">\n                <d-splitter-pane #leftPane [collapsible]=\"true\" size=\"300px\" minSize=\"200px\" maxSize=\"400px\">\n                    <div *ngIf=\"!leftPane.collapsed\">\n                        <rh-material-tree [rhMode]=\"3\" (rhSelectNodeChange)=\"SelectedMaterialCode($event)\">\n                        </rh-material-tree>\n                    </div>\n                </d-splitter-pane>\n                <d-splitter-pane>\n                    <div class=\"rh-full\">\n                        <d-splitter orientation=\"vertical\">\n                            <d-splitter-pane #splitterPaneOne [resizable]=\"false\" [collapsible]=\"true\">\n                                <div *ngIf=\"!splitterPaneOne.collapsed\" class=\"rh-full\">\n                                    <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplateOne\">\n                                        <ng-template #nzAlertTemplateOne>\n                                            <rh-dynamic-form #queryForm rhName=\"queryForm\" rhType=\"query\"\n                                                [rhValue]=\"defaultQueryDto\" (rhInterfaceDataChange)=\"setDatas($event)\"\n                                                (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                                                (rhOutParaChange)=\"setInitFieldDataset($event)\"></rh-dynamic-form>\n                                        </ng-template>\n                                    </nz-alert>\n                                </div>\n                            </d-splitter-pane>\n                            <d-splitter-pane>\n                                <div class=\"rh-full\">\n                                    <rh-dynamic-table [rhTableData]=\"dataresult\" [rhTableDataloading]=\"dataLoading\"\n                                        [rhDefaultFieldDataset]=\"defaultFieldDataset\" (rhRefresh)=\"refreshDatas($event)\"\n                                        [rhEditButtonDataset]=\"editButtonDataset\"\n                                        [rhTitleButtonDataset]=\"titleButtonDataset\"\n                                        [rhExtraButtonDataset]=\"extraButtonDataset\">\n                                    </rh-dynamic-table>\n                                </div>\n                            </d-splitter-pane>\n                        </d-splitter>\n                    </div>\n                </d-splitter-pane>\n            </d-splitter>\n        </nz-tab>\n        <nz-tab *ngIf=\"selectedIndex\" [nzTitle]=\"tabFourTitle\">\n            <ng-template #tabFourTitle>\n                <span>数据导入</span>\n                <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\"\n                        (click)=\"closeImportTab()\"></i></span>\n            </ng-template>\n            <rh-import-data-manage [rhBusinessCode]=\"BusinessType\" (rhClose)=\"closeImportTab()\"></rh-import-data-manage>\n        </nz-tab>\n    </nz-tabset>\n</div>","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { DataResultT, RhSelectableDto, RhBaseQueryDto, RhTableQueryOptionDto, CodeClassModel, RhDynamicTableFieldDto, RhTableButtonInfoDto } from 'rh-base/model';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\n\n@Component({\n  selector: 'rh-inventory-details-import',\n  templateUrl: './inventory-details-import.component.html',\n  styleUrls: ['./inventory-details-import.component.less']\n})\nexport class RhInventoryDetailsImportComponent implements OnInit {\n\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  BusinessType = 'MaterialInventory';\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  queryDto: RhBaseQueryDto;\n  defaultFieldDataset = [];\n  defaultQueryDtoStorageLocationOfQuery = {};\n  extraButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('dataloader', '数据导入', 'default', false, 'import', false, null, () => this.openImportTab(), true)\n  ];\n\n\n  constructor(private storage: RhStorageService) {\n    //\n  }\n\n  ngOnInit(): void {\n    //\n  }\n\n  closeEditTab() {\n    this.selectedIndex = 0;\n  }\n\n  openEditTab() {\n    this.selectedIndex = 1;\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult.httpRequestPara) this.dataresult.httpRequestPara = {};\n    this.dataresult.httpRequestPara.FactoryCode = this.storage.getFactoryCode();\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  changeInWarehouseConfigQueryForm(code: string, formgroup: UntypedFormGroup) {\n    Object.assign(this.defaultQueryDtoStorageLocationOfQuery, {\n      WarehouseCode: code ? `$${code}` : null,\n    });\n    if (!code) {\n      formgroup.get('StorageLocationCode')?.setValue(null);\n      formgroup.get('StorageLocationName')?.setValue(null);\n    }\n  }\n\n  openImportTab() {\n    this.selectedIndex = 1;\n  }\n\n  closeImportTab() {\n    this.selectedIndex = 0;\n  }\n\n}\n","<div class=\"rh-full\">\n    <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\">\n        <nz-tab [nzTitle]=\"tabOneTitle\">\n            <ng-template #tabOneTitle>\n                <span>数据展示</span>\n            </ng-template>\n            <div class=\"rh-full\">\n                <d-splitter orientation=\"vertical\">\n                    <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n                        <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n                            <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                                <ng-template #nzAlertTemplate>\n                                    <rh-dynamic-form #queryForm [rhValue]=\"queryDto\"\n                                        (rhInterfaceDataChange)=\"setDatas($event)\"\n                                        (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                                        (rhOutParaChange)=\"setInitFieldDataset($event)\">\n                                        <ng-template rhTemplate=\"WarehouseCode\" let-formgroup let-setting=\"setting\"\n                                            let-hostSetting=\"hostSetting\" let-formData=\"formData\">\n                                            <nz-form-item>\n                                                <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                                                    <rh-warehouse-selector\n                                                        [formControl]=\"formgroup.get('WarehouseCode')\"\n                                                        [rhData]=\"formData\" [rhFieldData]=\"setting\"\n                                                        [rhSize]=\"hostSetting?.rhSize\" (ngModelChange)=\"\n                                                        changeInWarehouseConfigQueryForm($event, formgroup)\n                                                    \"></rh-warehouse-selector>\n                                                </nz-form-control>\n                                            </nz-form-item>\n                                        </ng-template>\n                                        <ng-template rhTemplate=\"StorageLocationCode\" let-formgroup\n                                            let-setting=\"setting\" let-hostSetting=\"hostSetting\" let-formData=\"formData\">\n                                            <nz-form-item>\n                                                <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                                                    <rh-storage-location-selector\n                                                        [formControl]=\"formgroup.get('StorageLocationCode')\"\n                                                        [rhData]=\"formData\" [rhFieldData]=\"setting\"\n                                                        [rhSize]=\"hostSetting?.rhSize\" [rhDefaultQueryDto]=\"\n                                                        defaultQueryDtoStorageLocationOfQuery\n                                                    \"></rh-storage-location-selector>\n                                                </nz-form-control>\n                                            </nz-form-item>\n                                        </ng-template>\n                                    </rh-dynamic-form>\n                                </ng-template>\n                            </nz-alert>\n                        </div>\n                    </d-splitter-pane>\n                    <d-splitter-pane>\n                        <div class=\"rh-full\">\n                            <rh-dynamic-table [rhTableData]=\"dataresult\" [rhTableDataloading]=\"dataLoading\"\n                                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                                [rhExtraButtonDataset]=\"extraButtonDataset\" (rhRefresh)=\"refreshDatas($event)\">\n                            </rh-dynamic-table>\n                        </div>\n                    </d-splitter-pane>\n                </d-splitter>\n            </div>\n        </nz-tab>\n        <nz-tab *ngIf=\"selectedIndex\" [nzTitle]=\"tabFourTitle\">\n            <ng-template #tabFourTitle>\n                <span>数据导入</span>\n                <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\"\n                        (click)=\"closeImportTab()\"></i></span>\n            </ng-template>\n            <rh-import-data-manage [rhBusinessCode]=\"BusinessType\" (rhClose)=\"closeImportTab()\"></rh-import-data-manage>\n        </nz-tab>\n    </nz-tabset>\n</div>","import {\n  RhBaseDto,\n  RhSelectableDto,\n  DataResultT,\n  RhTableButtonInfoDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto\n} from 'rh-base/model';\nimport { Component, OnInit, Output, EventEmitter, ViewChild, Input } from '@angular/core';\nimport { MsgHelper } from 'rh-base/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { RhBusinessManageService } from './../../../../../business-manage/business-manage.service';\nimport { WarehouseMaterialControlParameter } from './../../../../../business-manage/business-manage-model';\n\n@Component({\n  selector: 'rh-inventory-query-storage-location',\n  templateUrl: './inventory-query-storage-location.component.html',\n  styleUrls: ['./inventory-query-storage-location.component.css']\n})\nexport class InventoryQueryStorageLocationComponent implements OnInit {\n  @Input() rhDefaultQueryDto: RhBaseDto = {};\n  @Output() rhTableCellClick = new EventEmitter<RhBaseDto>();\n  @Output() rhOpenAreaTab = new EventEmitter<RhBaseDto>();\n  @Output() rhOpenShelfTab = new EventEmitter<RhBaseDto>();\n  @Output() rhInOutOrderDetailsGet = new EventEmitter<RhBaseDto>();\n  @Output() WarehouseControl = new EventEmitter<RhBaseDto>();\n\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('inOutOrderDetails', '出入库流水', 'default', false, 'unordered-list', false, null, (data) =>\n      this.openInOutOrderDetailsTab(data)\n    ),\n    new RhTableButtonInfoDto('inventoryDetails', '库存明细', 'default', false, 'appstore', false, null, (data) => this.tableCellClick({ data }))\n  ];\n  titleButtonDataset: RhTableButtonInfoDto[] = [];\n  extraButtonDataset: RhTableButtonInfoDto[] = [];\n  // 仓库控制配置参数\n  currentWarehouseMaterialControlPara: WarehouseMaterialControlParameter;\n\n  constructor(private businessManageSer: RhBusinessManageService) { }\n\n  async ngOnInit(): Promise<void> {\n    await this.getWarehouseMaterialControlParameter();\n    this.editButtonDataset[1].visible = this.currentWarehouseMaterialControlPara.IsStrictCorrelation;\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!dataset?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${dataset?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  /** 获取仓库控制参数配置 */\n  async getWarehouseMaterialControlParameter() {\n    const para = await this.businessManageSer.getWarehouseMaterialControlParameter({\n      WarehouseCode: this.rhDefaultQueryDto.WarehouseCode\n    });\n    this.currentWarehouseMaterialControlPara = this.businessManageSer.transformWarehouseMaterialControlParameter(para);\n    this.WarehouseControl.emit(this.currentWarehouseMaterialControlPara);\n  }\n\n  tableCellClick(dto: RhBaseDto) {\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseArea) {\n      this.rhOpenAreaTab.emit(dto);\n    } else if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseShelf) {\n      this.rhOpenShelfTab.emit(dto);\n    } else if (this.currentWarehouseMaterialControlPara.IsEnableStorageLocation) {\n      this.rhTableCellClick.emit(dto);\n    }\n  }\n\n  openInOutOrderDetailsTab(data: RhBaseDto) {\n    this.rhInOutOrderDetailsGet.emit(data);\n  }\n}\n","<div class=\"rh-full\">\n  <d-splitter orientation=\"vertical\">\n    <d-splitter-pane #splitterPaneOne [resizable]=\"false\" [collapsible]=\"true\">\n      <div *ngIf=\"!splitterPaneOne.collapsed\" class=\"rh-full\">\n        <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplateOne\">\n          <ng-template #nzAlertTemplateOne>\n            <rh-dynamic-form\n              #queryForm\n              rhName=\"storageLocationInventoryQueryForm\"\n              rhType=\"query\"\n              [rhValue]=\"rhDefaultQueryDto\"\n              (rhInterfaceDataChange)=\"setDatas($event)\"\n              (rhDataloadingChange)=\"dataLoadingChange($event)\"\n              (rhOutParaChange)=\"setInitFieldDataset($event)\"\n            ></rh-dynamic-form>\n          </ng-template>\n        </nz-alert>\n      </div>\n    </d-splitter-pane>\n    <d-splitter-pane>\n      <div class=\"rh-full\">\n        <rh-dynamic-table\n          rhName=\"storageLocationInventoryTable\"\n          [rhTableData]=\"dataresult\"\n          [rhTableDataloading]=\"dataLoading\"\n          [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n          (rhRefresh)=\"refreshDatas($event)\"\n          [rhEditButtonDataset]=\"editButtonDataset\"\n          [rhTitleButtonDataset]=\"titleButtonDataset\"\n          [rhExtraButtonDataset]=\"extraButtonDataset\"\n          (rhTableCellClick)=\"tableCellClick($event)\"\n        >\n        </rh-dynamic-table>\n      </div>\n    </d-splitter-pane>\n  </d-splitter>\n</div>\n","import {\n  Component,\n  OnInit,\n  Input,\n  ViewChild,\n  Output,\n  EventEmitter,\n} from '@angular/core';\nimport {\n  RhBaseDto,\n  DataResultT,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto,\n} from 'rh-base/model';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { MsgHelper } from 'rh-base/core';\n\n@Component({\n  selector: 'rh-inventory-query-details',\n  templateUrl: './inventory-query-details.component.html',\n  styleUrls: ['./inventory-query-details.component.less'],\n})\nexport class InventoryQueryDetailsComponent implements OnInit {\n  @Input() rhDefaultQueryDto: RhBaseDto = {};\n  @Output() rhInOutOrderDetailsGet = new EventEmitter<RhBaseDto>();\n\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto(\n      'inOutOrderDetails',\n      '出入库流水',\n      'default',\n      false,\n      'unordered-list',\n      false,\n      null,\n      (data) => this.openInOutOrderDetailsTab(data)\n    ),\n  ];\n  titleButtonDataset: RhTableButtonInfoDto[] = [];\n  extraButtonDataset: RhTableButtonInfoDto[] = [];\n\n  constructor() {}\n\n  ngOnInit(): void {}\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!dataset?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${dataset?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  openInOutOrderDetailsTab(data: RhBaseDto) {\n    this.rhInOutOrderDetailsGet.emit(data);\n  }\n}\n","<div class=\"rh-full\">\n  <d-splitter orientation=\"vertical\">\n    <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n      <div *ngIf=\"!splitterPaneTwo.collapsed\" class=\"rh-full\">\n        <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplateTwo\">\n          <ng-template #nzAlertTemplateTwo>\n            <rh-dynamic-form\n              #queryForm\n              rhName=\"inventoryDetailsQueryForm\"\n              [rhValue]=\"rhDefaultQueryDto\"\n              (rhInterfaceDataChange)=\"setDatas($event)\"\n              (rhDataloadingChange)=\"dataLoadingChange($event)\"\n              (rhOutParaChange)=\"setInitFieldDataset($event)\"\n            ></rh-dynamic-form>\n          </ng-template>\n        </nz-alert>\n      </div>\n    </d-splitter-pane>\n    <d-splitter-pane>\n      <div class=\"rh-full\">\n        <rh-dynamic-table\n          rhName=\"inventoryDetailsTable\"\n          [rhTableData]=\"dataresult\"\n          [rhTableDataloading]=\"dataLoading\"\n          [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n          (rhRefresh)=\"refreshDatas($event)\"\n          [rhEditButtonDataset]=\"editButtonDataset\"\n          [rhTitleButtonDataset]=\"titleButtonDataset\"\n          [rhExtraButtonDataset]=\"extraButtonDataset\"\n        ></rh-dynamic-table>\n      </div>\n    </d-splitter-pane>\n  </d-splitter>\n</div>\n","import { Injectable } from '@angular/core';\nimport { RhApiUrlsService } from 'rh-base/core';\nimport { Observable } from 'rxjs';\nimport { DataResultT } from 'rh-base/model';\nimport { InOutOrderDetailQueryDtoByWarehouse, InOutOrderDetailDto } from '../inventory-manage-model';\n\n@Injectable()\nexport class RhInventorySearchService {\n  constructor(private apiUrls: RhApiUrlsService) {}\n\n  /**\n   *  获取库存出入库明细\n   */\n  GetInOutOrderDetailDatasForInventory(queryDto: InOutOrderDetailQueryDtoByWarehouse): Observable<DataResultT<InOutOrderDetailDto[]>> {\n    return this.apiUrls.PostRhpWms('MaterialInventoryWebApi', 'GetInOutOrderDetailDatasForInventory', queryDto);\n  }\n}\n","import { Component, OnInit, Input, ViewChild, Output, EventEmitter, SimpleChanges } from '@angular/core';\nimport {\n  RhBaseDto,\n  DataResultT,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto\n} from 'rh-base/model';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport { RhInventorySearchService } from '../../../inventory-search.service';\nimport { InOutOrderDetailQueryDtoByWarehouse } from '../../../../inventory-manage-model';\n\n@Component({\n  selector: 'rh-inventory-query-in-out-details',\n  templateUrl: './inventory-query-in-out-details.component.html',\n  styleUrls: ['./inventory-query-in-out-details.component.less']\n})\nexport class InventoryQueryInOutDetailsComponent implements OnInit {\n  @Input() rhDefaultQueryDto: RhBaseDto = {};\n  @Input() rhVisibleSetting: RhBaseDto = {};\n  @Input() rhInventoryLevel = 0;\n  @Output() rhInOutOrderDetailsGet = new EventEmitter<RhBaseDto>();\n\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n  editButtonDataset: RhTableButtonInfoDto[] = [];\n  titleButtonDataset: RhTableButtonInfoDto[] = [];\n  extraButtonDataset: RhTableButtonInfoDto[] = [];\n\n  constructor(private operator: RhInventorySearchService) {}\n\n  ngOnInit(): void {}\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhInventoryLevel } = changes;\n    if (rhInventoryLevel) {\n      if (this.rhInventoryLevel >= 2) {\n        this.dataLoading = true;\n        const queryDto = InOutOrderDetailQueryDtoByWarehouse.create();\n        ObjectHelper.MapT(this.rhDefaultQueryDto, queryDto);\n        queryDto.Mode = 8;\n        this.operator.GetInOutOrderDetailDatasForInventory(queryDto).subscribe(\n          (result) => {\n            this.dataresult = result;\n            this.dataresult.httpRequestPara = queryDto;\n            if (!result?.Success) {\n              MsgHelper.ShowWarningMessage(`搜索无数据!${result?.Message}`);\n            }\n            this.dataLoading = false;\n          },\n          () => (this.dataLoading = false)\n        );\n      }\n    }\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!dataset?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${dataset?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  openInOutOrderDetailsTab(data: RhBaseDto) {\n    this.rhInOutOrderDetailsGet.emit(data);\n  }\n}\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"rhInventoryLevel >= 2; else needQueryTpl\">\n    <div class=\"rh-full\">\n      <rh-dynamic-table rhName=\"inOutOrderDetailsTableAll\" [rhTableData]=\"dataresult\" [rhTableDataloading]=\"dataLoading\">\n      </rh-dynamic-table>\n    </div>\n  </ng-container>\n  <ng-template #needQueryTpl>\n    <d-splitter orientation=\"vertical\">\n      <d-splitter-pane #splitterPaneOne [resizable]=\"false\" [collapsible]=\"true\">\n        <div *ngIf=\"!splitterPaneOne.collapsed\" class=\"rh-full\">\n          <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplateOne\">\n            <ng-template #nzAlertTemplateOne>\n              <rh-dynamic-form\n                #queryForm\n                rhName=\"inOutOrderDetailsQueryForm\"\n                rhType=\"query\"\n                [rhValue]=\"rhDefaultQueryDto\"\n                [rhVisibleSetting]=\"rhVisibleSetting\"\n                (rhInterfaceDataChange)=\"setDatas($event)\"\n                (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                (rhOutParaChange)=\"setInitFieldDataset($event)\"\n              ></rh-dynamic-form>\n            </ng-template>\n          </nz-alert>\n        </div>\n      </d-splitter-pane>\n      <d-splitter-pane>\n        <div class=\"rh-full\">\n          <rh-dynamic-table\n            rhName=\"inOutOrderDetailsTable\"\n            [rhTableData]=\"dataresult\"\n            [rhTableDataloading]=\"dataLoading\"\n            [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n            (rhRefresh)=\"refreshDatas($event)\"\n            [rhEditButtonDataset]=\"editButtonDataset\"\n            [rhTitleButtonDataset]=\"titleButtonDataset\"\n            [rhExtraButtonDataset]=\"extraButtonDataset\"\n          >\n          </rh-dynamic-table>\n        </div>\n      </d-splitter-pane>\n    </d-splitter>\n  </ng-template>\n</div>\n","import {\n  RhBaseDto,\n  RhSelectableDto,\n  DataResultT,\n  RhTableButtonInfoDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto\n} from 'rh-base/model';\nimport { Component, OnInit, Output, EventEmitter, ViewChild, Input } from '@angular/core';\nimport { MsgHelper } from 'rh-base/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { RhBusinessManageService } from './../../../../../business-manage/business-manage.service';\nimport { WarehouseMaterialControlParameter } from './../../../../../business-manage/business-manage-model';\n\n@Component({\n  selector: 'rh-inventory-query-area',\n  templateUrl: './inventory-query-area.component.html',\n  styleUrls: ['./inventory-query-area.component.less']\n})\nexport class InventoryQueryAreaComponent implements OnInit {\n  @Input() rhDefaultQueryDto: RhBaseDto = {};\n  @Output() rhTableCellClick = new EventEmitter<RhBaseDto>();\n  @Output() rhOpenAreaTab = new EventEmitter<RhBaseDto>();\n  @Output() rhOpenShelfTab = new EventEmitter<RhBaseDto>();\n  @Output() rhInOutOrderDetailsGet = new EventEmitter<RhBaseDto>();\n\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('inOutOrderDetails', '出入库流水', 'default', false, 'unordered-list', false, null, (data) =>\n      this.openInOutOrderDetailsTab(data)\n    ),\n    new RhTableButtonInfoDto('inventoryDetails', '库存明细', 'default', false, 'appstore', false, null, (data) => this.tableCellClick({ data }))\n  ];\n  titleButtonDataset: RhTableButtonInfoDto[] = [];\n  extraButtonDataset: RhTableButtonInfoDto[] = [];\n  // 仓库控制配置参数\n  currentWarehouseMaterialControlPara: WarehouseMaterialControlParameter;\n\n  constructor(private businessManageSer: RhBusinessManageService) { }\n\n  async ngOnInit(): Promise<void> {\n    await this.getWarehouseMaterialControlParameter();\n    this.editButtonDataset[1].visible = this.currentWarehouseMaterialControlPara.IsStrictCorrelation;\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!dataset?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${dataset?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  /** 获取仓库控制参数配置 */\n  async getWarehouseMaterialControlParameter() {\n    const para = await this.businessManageSer.getWarehouseMaterialControlParameter({\n      WarehouseCode: this.rhDefaultQueryDto.WarehouseCode\n    });\n    this.currentWarehouseMaterialControlPara = this.businessManageSer.transformWarehouseMaterialControlParameter(para);\n  }\n\n  tableCellClick(dto: RhBaseDto) {\n    if (this.currentWarehouseMaterialControlPara.IsEnableWarehouseShelf) {\n      this.rhOpenShelfTab.emit(dto);\n    } else if (this.currentWarehouseMaterialControlPara.IsEnableStorageLocation) {\n      this.rhTableCellClick.emit(dto);\n    }\n  }\n\n  openInOutOrderDetailsTab(data: RhBaseDto) {\n    this.rhInOutOrderDetailsGet.emit(data);\n  }\n}\n","<div class=\"rh-full\">\n  <d-splitter orientation=\"vertical\">\n    <d-splitter-pane #splitterPaneOne [resizable]=\"false\" [collapsible]=\"true\">\n      <div *ngIf=\"!splitterPaneOne.collapsed\" class=\"rh-full\">\n        <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplateOne\">\n          <ng-template #nzAlertTemplateOne>\n            <rh-dynamic-form\n              #queryForm\n              rhName=\"areaInventoryQueryForm\"\n              rhType=\"query\"\n              [rhValue]=\"rhDefaultQueryDto\"\n              (rhInterfaceDataChange)=\"setDatas($event)\"\n              (rhDataloadingChange)=\"dataLoadingChange($event)\"\n              (rhOutParaChange)=\"setInitFieldDataset($event)\"\n            ></rh-dynamic-form>\n          </ng-template>\n        </nz-alert>\n      </div>\n    </d-splitter-pane>\n    <d-splitter-pane>\n      <div class=\"rh-full\">\n        <rh-dynamic-table\n          rhName=\"areaLocationInventoryTable\"\n          [rhTableData]=\"dataresult\"\n          [rhTableDataloading]=\"dataLoading\"\n          [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n          (rhRefresh)=\"refreshDatas($event)\"\n          [rhEditButtonDataset]=\"editButtonDataset\"\n          [rhTitleButtonDataset]=\"titleButtonDataset\"\n          [rhExtraButtonDataset]=\"extraButtonDataset\"\n          (rhTableCellClick)=\"tableCellClick($event)\"\n        >\n        </rh-dynamic-table>\n      </div>\n    </d-splitter-pane>\n  </d-splitter>\n</div>\n","import {\n  RhBaseDto,\n  RhSelectableDto,\n  DataResultT,\n  RhTableButtonInfoDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto\n} from 'rh-base/model';\nimport { Component, OnInit, Output, EventEmitter, ViewChild, Input } from '@angular/core';\nimport { MsgHelper } from 'rh-base/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { RhBusinessManageService } from './../../../../../business-manage/business-manage.service';\nimport { WarehouseMaterialControlParameter } from './../../../../../business-manage/business-manage-model';\n\n@Component({\n  selector: 'rh-inventory-query-shelf',\n  templateUrl: './inventory-query-shelf.component.html',\n  styleUrls: ['./inventory-query-shelf.component.less']\n})\nexport class InventoryQueryShelfComponent implements OnInit {\n  @Input() rhDefaultQueryDto: RhBaseDto = {};\n  @Output() rhTableCellClick = new EventEmitter<RhBaseDto>();\n  @Output() rhOpenAreaTab = new EventEmitter<RhBaseDto>();\n  @Output() rhOpenShelfTab = new EventEmitter<RhBaseDto>();\n  @Output() rhInOutOrderDetailsGet = new EventEmitter<RhBaseDto>();\n\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('inOutOrderDetails', '出入库流水', 'default', false, 'unordered-list', false, null, (data) =>\n      this.openInOutOrderDetailsTab(data)\n    ),\n    new RhTableButtonInfoDto('inventoryDetails', '库存明细', 'default', false, 'appstore', false, null, (data) => this.tableCellClick({ data }))\n  ];\n  titleButtonDataset: RhTableButtonInfoDto[] = [];\n  extraButtonDataset: RhTableButtonInfoDto[] = [];\n  // 仓库控制配置参数\n  currentWarehouseMaterialControlPara: WarehouseMaterialControlParameter;\n\n  constructor(private businessManageSer: RhBusinessManageService) { }\n\n  async ngOnInit(): Promise<void> {\n    await this.getWarehouseMaterialControlParameter();\n    this.editButtonDataset[1].visible = this.currentWarehouseMaterialControlPara.IsStrictCorrelation;\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!dataset?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${dataset?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  /** 获取仓库控制参数配置 */\n  async getWarehouseMaterialControlParameter() {\n    const para = await this.businessManageSer.getWarehouseMaterialControlParameter({\n      WarehouseCode: this.rhDefaultQueryDto.WarehouseCode\n    });\n    this.currentWarehouseMaterialControlPara = this.businessManageSer.transformWarehouseMaterialControlParameter(para);\n  }\n\n  tableCellClick(dto: RhBaseDto) {\n    if (this.currentWarehouseMaterialControlPara.IsEnableStorageLocation) {\n      this.rhTableCellClick.emit(dto);\n    }\n  }\n\n  openInOutOrderDetailsTab(data: RhBaseDto) {\n    this.rhInOutOrderDetailsGet.emit(data);\n  }\n}\n","<div class=\"rh-full\">\n  <d-splitter orientation=\"vertical\">\n    <d-splitter-pane #splitterPaneOne [resizable]=\"false\" [collapsible]=\"true\">\n      <div *ngIf=\"!splitterPaneOne.collapsed\" class=\"rh-full\">\n        <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplateOne\">\n          <ng-template #nzAlertTemplateOne>\n            <rh-dynamic-form\n              #queryForm\n              rhName=\"shelfLocationInventoryQueryForm\"\n              rhType=\"query\"\n              [rhValue]=\"rhDefaultQueryDto\"\n              (rhInterfaceDataChange)=\"setDatas($event)\"\n              (rhDataloadingChange)=\"dataLoadingChange($event)\"\n              (rhOutParaChange)=\"setInitFieldDataset($event)\"\n            ></rh-dynamic-form>\n          </ng-template>\n        </nz-alert>\n      </div>\n    </d-splitter-pane>\n    <d-splitter-pane>\n      <div class=\"rh-full\">\n        <rh-dynamic-table\n          rhName=\"shelfLocationInventoryTable\"\n          [rhTableData]=\"dataresult\"\n          [rhTableDataloading]=\"dataLoading\"\n          [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n          (rhRefresh)=\"refreshDatas($event)\"\n          [rhEditButtonDataset]=\"editButtonDataset\"\n          [rhTitleButtonDataset]=\"titleButtonDataset\"\n          [rhExtraButtonDataset]=\"extraButtonDataset\"\n          (rhTableCellClick)=\"tableCellClick($event)\"\n        >\n        </rh-dynamic-table>\n      </div>\n    </d-splitter-pane>\n  </d-splitter>\n</div>\n","import { NzTreeNode } from 'ng-zorro-antd/tree';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport {\n  RhBaseDto,\n  DataResultT,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto,\n  RhSafeAny,\n} from 'rh-base/model';\nimport {\n  MsgHelper,\n  RhStorageService\n} from 'rh-base/core';\nimport {\n  DynamicFormComponent\n} from 'rh-base/shared';\n\n@Component({\n  selector: 'rh-inventory-import',\n  templateUrl: './inventory-import.component.html',\n  styleUrls: ['./inventory-import.component.less']\n})\nexport class InventoryImportComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  areaIndex = 0;\n  shelfIndex = 0;\n  locationIndex = 0;\n  BusinessType = 'MaterialInventory';\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  isShowImport = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('inOutOrderDetails', '出入库流水', 'default', false, 'unordered-list', false, null, (data) =>\n      this.openInOutOrderDetailsTab(data, 0)\n    ),\n    new RhTableButtonInfoDto('inventoryDetails', '库存明细', 'default', false, 'appstore', false, null, (data) =>\n      this.openStorageLocationDatasTab({ data })\n    )\n  ];\n  titleButtonDataset: RhTableButtonInfoDto[] = [];\n  extraButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('dataloader', '数据导入', 'default', false, 'import', false, null, () => this.openImportTab(), true)\n  ];\n\n  defaultQueryDto = {};\n  inventoryDetailsQueryDto = {};\n  inventoryStorageLocationQueryDto = {};\n  inOutOrderDetailsQueryDto = {};\n  // 可见性\n  inOutOrderDetailsQueryFormVisibleSetting = {};\n  //树内选中的物料\n  selectedMaterial: RhSafeAny;\n  // 当前库存层级\n  currentInventoryLevel = 0;\n\n  isShowStorageLocationDatasTab = false;\n  isShowDetailsTab = false;\n  isShowAreaTab = false;\n  isShowShelfTab = false;\n  isShowInOutOrderDetailsTab = false;\n\n  constructor(private storage: RhStorageService) {\n    //\n  }\n\n  ngOnInit(): void {\n    //\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult.httpRequestPara) this.dataresult.httpRequestPara = {};\n    this.dataresult.httpRequestPara.FactoryCode = this.storage.getFactoryCode();\n    if (!dataset?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${dataset?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      const queryDto: RhSafeAny = {};\n      if (this.selectedMaterial?.MaterialCode) {\n        queryDto.MaterialCode = this.selectedMaterial.MaterialCode ? `$${this.selectedMaterial.MaterialCode}` : null;\n      } else {\n        queryDto.MaterialCode = null;\n      }\n      this.defaultQueryDto = queryDto;\n      setTimeout(() => {\n        this.queryFormCmt.submitDefaultForm(null, option);\n      });\n    }\n  }\n\n  closeEditTab() {\n    this.editDto = {};\n    this.selectedIndex = 0;\n    this.isShowImport = false;\n  }\n\n  openImportTab() {\n    this.isShowImport = true;\n    this.isShowStorageLocationDatasTab = false;\n    this.selectedIndex = 1;\n  }\n\n  openDetailsTab(dto: RhBaseDto) {\n    this.editDto = dto.data;\n    this.inventoryDetailsQueryDto = {\n      WarehouseCode: this.editDto.WarehouseCode ? `$${this.editDto.WarehouseCode}` : null,\n      MaterialCode: this.editDto.MaterialCode ? `$${this.editDto.MaterialCode}` : null,\n      WarehouseAreaCode: this.editDto.WarehouseAreaCode ? `$${this.editDto.WarehouseAreaCode}` : null,\n      WarehouseShelfCode: this.editDto.WarehouseShelfCode ? `$${this.editDto.WarehouseShelfCode}` : null,\n      StorageLocationCode: this.editDto.StorageLocationCode ? `$${this.editDto.StorageLocationCode}` : null\n    };\n    this.isShowDetailsTab = true;\n    this.closeInOutOrderDetailsTab();\n    this.selectedIndex++;\n  }\n\n  closeDetailsTab() {\n    this.isShowDetailsTab = false;\n  }\n\n  openAreaTab(dto: RhBaseDto) {\n    this.editDto = dto.data;\n    this.inventoryStorageLocationQueryDto = {\n      WarehouseCode: this.editDto.WarehouseCode ? `${this.editDto.WarehouseCode}` : null,\n      MaterialCode: this.editDto.MaterialCode ? `$${this.editDto.MaterialCode}` : null,\n      WarehouseAreaCode: this.editDto.WarehouseAreaCode ? `$${this.editDto.WarehouseAreaCode}` : null\n    };\n    this.isShowAreaTab = true;\n    this.closeInOutOrderDetailsTab();\n    this.selectedIndex++;\n  }\n\n  closeAreaTab() {\n    this.isShowAreaTab = false;\n    this.isShowShelfTab = false;\n    this.isShowDetailsTab = false;\n  }\n\n  openShelfTab(dto: RhBaseDto) {\n    this.editDto = dto.data;\n    this.inventoryStorageLocationQueryDto = {\n      WarehouseCode: this.editDto.WarehouseCode ? `${this.editDto.WarehouseCode}` : null,\n      MaterialCode: this.editDto.MaterialCode ? `$${this.editDto.MaterialCode}` : null,\n      WarehouseAreaCode: this.editDto.WarehouseAreaCode ? `$${this.editDto.WarehouseAreaCode}` : null,\n      WarehouseShelfCode: this.editDto.WarehouseShelfCode ? `$${this.editDto.WarehouseShelfCode}` : null\n    };\n    this.isShowShelfTab = true;\n    this.closeInOutOrderDetailsTab();\n    this.selectedIndex = 3;\n  }\n\n  closeShelfTab() {\n    this.isShowShelfTab = false;\n    this.isShowDetailsTab = false;\n  }\n\n  // openImportTab() {\n  //   this.isShowImport = true;;\n  //   this.selectedIndex = 1;\n  // }\n\n  openStorageLocationDatasTab(dto: RhBaseDto) {\n    this.editDto = dto.data;\n    this.inventoryStorageLocationQueryDto = {\n      WarehouseCode: this.editDto.WarehouseCode ? `${this.editDto.WarehouseCode}` : null,\n      MaterialCode: this.editDto.MaterialCode ? `$${this.editDto.MaterialCode}` : null\n    };\n    this.isShowStorageLocationDatasTab = true;\n    this.closeInOutOrderDetailsTab();\n    this.selectedIndex = 1;\n  }\n  closeStorageLocationDatasTab() {\n    this.isShowStorageLocationDatasTab = false;\n    this.isShowAreaTab = false;\n    this.isShowShelfTab = false;\n    this.isShowDetailsTab = false;\n    this.inventoryStorageLocationQueryDto = {};\n  }\n\n  SelectedMaterialCode(node: NzTreeNode) {\n    if (node && node.origin.customData) {\n      const data = node.origin.customData;\n      if (node.isSelected) {\n        this.selectedMaterial = data;\n        this.getDatas();\n      }\n    } else {\n      this.selectedMaterial = null;\n    }\n  }\n\n  openInOutOrderDetailsTab(data: RhBaseDto, level: number) {\n    this.currentInventoryLevel = level;\n    this.editDto = data;\n    this.inOutOrderDetailsQueryDto = {\n      WarehouseCode: this.editDto.WarehouseCode ? `$${this.editDto.WarehouseCode}` : null,\n      MaterialCode: this.editDto.MaterialCode ? `$${this.editDto.MaterialCode}` : null,\n      WarehouseAreaCode: this.editDto.WarehouseAreaCode ? `$${this.editDto.WarehouseAreaCode}` : null,\n      WarehouseShelfCode: this.editDto.WarehouseShelfCode ? `$${this.editDto.WarehouseShelfCode}` : null,\n      StorageLocationCode: this.editDto.StorageLocationCode ? `${this.editDto.StorageLocationCode}` : null,\n      LotNum: this.editDto.LotNum ? `$${this.editDto.LotNum}` : null,\n      SN: this.editDto.SN ? `$${this.editDto.SN}` : null\n    };\n    switch (level) {\n      case 0:\n        this.inOutOrderDetailsQueryFormVisibleSetting = {\n          MaterialCode: false,\n          WarehouseCode: false\n        };\n        this.isShowStorageLocationDatasTab = false;\n        this.isShowAreaTab = false;\n        this.isShowShelfTab = false;\n        this.isShowDetailsTab = false;\n        break;\n      case 1:\n        this.inOutOrderDetailsQueryFormVisibleSetting = {\n          MaterialCode: false,\n          WarehouseCode: false,\n          WarehouseAreaCode: false\n        };\n        this.isShowAreaTab = false;\n        this.isShowShelfTab = false;\n        this.isShowDetailsTab = false;\n        break;\n      case 2:\n        this.inOutOrderDetailsQueryFormVisibleSetting = {\n          MaterialCode: false,\n          WarehouseCode: false,\n          WarehouseAreaCode: false,\n          WarehouseShelfCode: false\n        };\n        this.isShowShelfTab = false;\n        this.isShowDetailsTab = false;\n        break;\n      case 3:\n        this.inOutOrderDetailsQueryFormVisibleSetting = {\n          MaterialCode: false,\n          WarehouseCode: false,\n          WarehouseAreaCode: false,\n          WarehouseShelfCode: false,\n          StorageLocationCode: false\n        };\n        this.isShowDetailsTab = false;\n        break;\n      case 4:\n        this.inOutOrderDetailsQueryFormVisibleSetting = {\n          MaterialCode: false,\n          WarehouseCode: false,\n          WarehouseAreaCode: false,\n          WarehouseShelfCode: false,\n          StorageLocationCode: false,\n          LotNum: false\n        };\n        break;\n      default:\n        break;\n    }\n    this.selectedIndex = this.selectedIndex + 1;\n    this.isShowInOutOrderDetailsTab = true;\n  }\n\n  closeInOutOrderDetailsTab() {\n    this.currentInventoryLevel = 0;\n    this.isShowInOutOrderDetailsTab = false;\n  }\n\n  selectedIndexChange(index: number) {\n    if (this.isShowInOutOrderDetailsTab && index < this.currentInventoryLevel + 1) {\n      if (this.currentInventoryLevel == 3 && index < this.currentInventoryLevel + this.shelfIndex - 1) {\n        this.isShowInOutOrderDetailsTab = false;\n      }\n      if (this.currentInventoryLevel == 4 && index < this.currentInventoryLevel + this.locationIndex - 2) {\n        this.isShowInOutOrderDetailsTab = false;\n      }\n      if (this.currentInventoryLevel <= 2) {\n        this.isShowInOutOrderDetailsTab = false;\n      }\n    }\n  }\n\n  getWarehouseControl(para) {\n    this.areaIndex = 0;\n    this.shelfIndex = 0;\n    this.locationIndex = 0;\n    if (para.IsEnableWarehouseArea) {\n      this.areaIndex++;\n      this.shelfIndex++;\n      this.locationIndex++;\n    }\n    if (para.IsEnableWarehouseShelf) {\n      this.shelfIndex++;\n      this.locationIndex++;\n    }\n    if (para.IsEnableStorageLocation) {\n      this.locationIndex++;\n    }\n  }\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>库存查询</span>\n      </ng-template>\n\n      <d-splitter style=\"height: 100%; width: 100%\" orientation=\"horizontal\">\n        <!-- <d-splitter-pane #leftPane [collapsible]=\"true\" size=\"300px\" minSize=\"200px\" maxSize=\"400px\">\n          <div *ngIf=\"!leftPane.collapsed\">\n            <rh-material-tree [rhMode]=\"3\" (rhSelectNodeChange)=\"SelectedMaterialCode($event)\"> </rh-material-tree>\n          </div>\n        </d-splitter-pane> -->\n        <d-splitter-pane>\n          <div class=\"rh-full\">\n            <d-splitter orientation=\"vertical\">\n              <d-splitter-pane #splitterPaneOne [resizable]=\"false\" [collapsible]=\"true\">\n                <div *ngIf=\"!splitterPaneOne.collapsed\" class=\"rh-full\">\n                  <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplateOne\">\n                    <ng-template #nzAlertTemplateOne>\n                      <rh-dynamic-form\n                        #queryForm\n                        rhName=\"queryForm\"\n                        rhType=\"query\"\n                        [rhValue]=\"defaultQueryDto\"\n                        (rhInterfaceDataChange)=\"setDatas($event)\"\n                        (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                        (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                      ></rh-dynamic-form>\n                    </ng-template>\n                  </nz-alert>\n                </div>\n              </d-splitter-pane>\n              <d-splitter-pane>\n                <div class=\"rh-full\">\n                  <rh-dynamic-table\n                    [rhTableData]=\"dataresult\"\n                    [rhTableDataloading]=\"dataLoading\"\n                    [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                    (rhRefresh)=\"refreshDatas($event)\"\n                    [rhEditButtonDataset]=\"editButtonDataset\"\n                    [rhTitleButtonDataset]=\"titleButtonDataset\"\n                    [rhExtraButtonDataset]=\"extraButtonDataset\"\n                    (rhTableCellClick)=\"openStorageLocationDatasTab($event)\"\n                  >\n                  </rh-dynamic-table>\n                </div>\n              </d-splitter-pane>\n            </d-splitter>\n          </div>\n        </d-splitter-pane>\n      </d-splitter>\n    </nz-tab>\n    <nz-tab *ngIf=\"isShowStorageLocationDatasTab && selectedIndex > 0\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>{{ editDto?.WarehouseName || 'WMS测试仓库' }}</span>\n        <span class=\"rh-color-danger\"\n          ><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeStorageLocationDatasTab()\"></i\n        ></span>\n      </ng-template>\n      <rh-inventory-query-storage-location\n        [rhDefaultQueryDto]=\"inventoryStorageLocationQueryDto\"\n        (rhTableCellClick)=\"openDetailsTab($event)\"\n        (rhOpenAreaTab)=\"openAreaTab($event)\"\n        (rhOpenShelfTab)=\"openShelfTab($event)\"\n        (rhInOutOrderDetailsGet)=\"openInOutOrderDetailsTab($event, 1)\"\n        (WarehouseControl)=\"getWarehouseControl($event)\"\n      >\n      </rh-inventory-query-storage-location>\n    </nz-tab>\n    <nz-tab *ngIf=\"isShowAreaTab && selectedIndex > areaIndex\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>{{ editDto?.WarehouseAreaName || 'WMS测试库区' }}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeAreaTab()\"></i></span>\n      </ng-template>\n      <rh-inventory-query-area\n        [rhDefaultQueryDto]=\"inventoryStorageLocationQueryDto\"\n        (rhTableCellClick)=\"openDetailsTab($event)\"\n        (rhOpenAreaTab)=\"openAreaTab($event)\"\n        (rhOpenShelfTab)=\"openShelfTab($event)\"\n        (rhInOutOrderDetailsGet)=\"openInOutOrderDetailsTab($event, 2)\"\n      >\n      </rh-inventory-query-area>\n    </nz-tab>\n    <nz-tab *ngIf=\"isShowShelfTab && selectedIndex > shelfIndex\" [nzTitle]=\"tabFourTitle\">\n      <ng-template #tabFourTitle>\n        <span>{{ editDto?.WarehouseShelfName || 'WMS测试货架' }}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeShelfTab()\"></i></span>\n      </ng-template>\n      <rh-inventory-query-shelf\n        [rhDefaultQueryDto]=\"inventoryStorageLocationQueryDto\"\n        (rhTableCellClick)=\"openDetailsTab($event)\"\n        (rhOpenAreaTab)=\"openAreaTab($event)\"\n        (rhOpenShelfTab)=\"openShelfTab($event)\"\n        (rhInOutOrderDetailsGet)=\"openInOutOrderDetailsTab($event, 3)\"\n      >\n      </rh-inventory-query-shelf>\n    </nz-tab>\n    <nz-tab *ngIf=\"isShowDetailsTab && selectedIndex > locationIndex\" [nzTitle]=\"tabFiveTitle\">\n      <ng-template #tabFiveTitle>\n        <span>{{ editDto?.StorageLocationName || 'WMS测试库位' }}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeDetailsTab()\"></i></span>\n      </ng-template>\n      <rh-inventory-query-details\n        [rhDefaultQueryDto]=\"inventoryDetailsQueryDto\"\n        (rhInOutOrderDetailsGet)=\"openInOutOrderDetailsTab($event, 4)\"\n      ></rh-inventory-query-details>\n    </nz-tab>\n    <nz-tab *ngIf=\"isShowInOutOrderDetailsTab\" [nzTitle]=\"tabSixTitle\">\n      <ng-template #tabSixTitle>\n        <span>{{ editDto?.MaterialName || '库存出入库明细' }}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeInOutOrderDetailsTab()\"></i></span>\n      </ng-template>\n      <rh-inventory-query-in-out-details\n        [rhDefaultQueryDto]=\"inOutOrderDetailsQueryDto\"\n        [rhVisibleSetting]=\"inOutOrderDetailsQueryFormVisibleSetting\"\n        [rhInventoryLevel]=\"currentInventoryLevel\"\n      >\n      </rh-inventory-query-in-out-details>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && isShowImport\" [nzTitle]=\"tabSevenTitle\">\n      <ng-template #tabSevenTitle>\n        <span>数据导入</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <rh-import-data-manage [rhBusinessCode]=\"BusinessType\" (rhClose)=\"closeEditTab()\"></rh-import-data-manage>\n    </nz-tab>\n  </nz-tabset>\n</div>\n","import { NzTreeNode } from 'ng-zorro-antd/tree';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport {\n  RhBaseDto,\n  DataResultT,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto,\n  RhSafeAny\n} from 'rh-base/model';\nimport {\n  MsgHelper,\n  RhStorageService\n} from 'rh-base/core';\nimport {\n  DynamicFormComponent,\n} from 'rh-base/shared';\n\n@Component({\n  selector: 'rh-inventory-query',\n  templateUrl: './inventory-query.component.html',\n  styleUrls: ['./inventory-query.component.css']\n})\nexport class RhInventoryQueryComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  areaIndex = 0;\n  shelfIndex = 0;\n  locationIndex = 0;\n  BusinessType = 'MaterialInventory';\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  isShowImport = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('inOutOrderDetails', '出入库流水', 'default', false, 'unordered-list', false, null, (data) =>\n      this.openInOutOrderDetailsTab(data, 0)\n    ),\n    new RhTableButtonInfoDto('inventoryDetails', '库存明细', 'default', false, 'appstore', false, null, (data) =>\n      this.openStorageLocationDatasTab({ data })\n    )\n  ];\n  titleButtonDataset: RhTableButtonInfoDto[] = [];\n  extraButtonDataset: RhTableButtonInfoDto[] = [\n    // new RhTableButtonInfoDto('dataloader', '数据导入', 'default', false, 'import', false, null, () => this.openImportTab(), true)\n  ];\n\n  defaultQueryDto = {};\n  inventoryDetailsQueryDto = {};\n  inventoryStorageLocationQueryDto = {};\n  inOutOrderDetailsQueryDto = {};\n  // 可见性\n  inOutOrderDetailsQueryFormVisibleSetting = {};\n  //树内选中的物料\n  selectedMaterial: RhSafeAny;\n  // 当前库存层级\n  currentInventoryLevel = 0;\n\n  isShowStorageLocationDatasTab = false;\n  isShowDetailsTab = false;\n  isShowAreaTab = false;\n  isShowShelfTab = false;\n  isShowInOutOrderDetailsTab = false;\n\n  constructor(private storage: RhStorageService) {\n    //\n  }\n\n  ngOnInit(): void {\n    //\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult.httpRequestPara) this.dataresult.httpRequestPara = {};\n    this.dataresult.httpRequestPara.FactoryCode = this.storage.getFactoryCode();\n    if (!dataset?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${dataset?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      const queryDto: RhSafeAny = {};\n      if (this.selectedMaterial?.MaterialCode) {\n        queryDto.MaterialCode = this.selectedMaterial.MaterialCode ? `$${this.selectedMaterial.MaterialCode}` : null;\n      } else {\n        queryDto.MaterialCode = null;\n      }\n      this.defaultQueryDto = queryDto;\n      setTimeout(() => {\n        this.queryFormCmt.submitDefaultForm(null, option);\n      });\n    }\n  }\n\n  closeEditTab() {\n    this.editDto = {};\n    this.selectedIndex = 0;\n    this.isShowImport = false;\n  }\n\n  openImportTab() {\n    this.isShowImport = true;\n    this.isShowStorageLocationDatasTab = false;\n    this.selectedIndex = 1;\n  }\n\n  openDetailsTab(dto: RhBaseDto) {\n    this.editDto = dto.data;\n    this.inventoryDetailsQueryDto = {\n      WarehouseCode: this.editDto.WarehouseCode ? `$${this.editDto.WarehouseCode}` : null,\n      MaterialCode: this.editDto.MaterialCode ? `$${this.editDto.MaterialCode}` : null,\n      WarehouseAreaCode: this.editDto.WarehouseAreaCode ? `$${this.editDto.WarehouseAreaCode}` : null,\n      WarehouseShelfCode: this.editDto.WarehouseShelfCode ? `$${this.editDto.WarehouseShelfCode}` : null,\n      StorageLocationCode: this.editDto.StorageLocationCode ? `$${this.editDto.StorageLocationCode}` : null\n    };\n    this.isShowDetailsTab = true;\n    this.closeInOutOrderDetailsTab();\n    this.selectedIndex++;\n  }\n\n  closeDetailsTab() {\n    this.isShowDetailsTab = false;\n  }\n\n  openAreaTab(dto: RhBaseDto) {\n    this.editDto = dto.data;\n    this.inventoryStorageLocationQueryDto = {\n      WarehouseCode: this.editDto.WarehouseCode ? `${this.editDto.WarehouseCode}` : null,\n      MaterialCode: this.editDto.MaterialCode ? `$${this.editDto.MaterialCode}` : null,\n      WarehouseAreaCode: this.editDto.WarehouseAreaCode ? `$${this.editDto.WarehouseAreaCode}` : null\n    };\n    this.isShowAreaTab = true;\n    this.closeInOutOrderDetailsTab();\n    this.selectedIndex++;\n  }\n\n  closeAreaTab() {\n    this.isShowAreaTab = false;\n    this.isShowShelfTab = false;\n    this.isShowDetailsTab = false;\n  }\n\n  openShelfTab(dto: RhBaseDto) {\n    this.editDto = dto.data;\n    this.inventoryStorageLocationQueryDto = {\n      WarehouseCode: this.editDto.WarehouseCode ? `${this.editDto.WarehouseCode}` : null,\n      MaterialCode: this.editDto.MaterialCode ? `$${this.editDto.MaterialCode}` : null,\n      WarehouseAreaCode: this.editDto.WarehouseAreaCode ? `$${this.editDto.WarehouseAreaCode}` : null,\n      WarehouseShelfCode: this.editDto.WarehouseShelfCode ? `$${this.editDto.WarehouseShelfCode}` : null\n    };\n    this.isShowShelfTab = true;\n    this.closeInOutOrderDetailsTab();\n    this.selectedIndex = 3;\n  }\n\n  closeShelfTab() {\n    this.isShowShelfTab = false;\n    this.isShowDetailsTab = false;\n  }\n\n  // openImportTab() {\n  //   this.isShowImport = true;;\n  //   this.selectedIndex = 1;\n  // }\n\n  openStorageLocationDatasTab(dto: RhBaseDto) {\n    this.editDto = dto.data;\n    this.inventoryStorageLocationQueryDto = {\n      WarehouseCode: this.editDto.WarehouseCode ? `${this.editDto.WarehouseCode}` : null,\n      MaterialCode: this.editDto.MaterialCode ? `$${this.editDto.MaterialCode}` : null\n    };\n    this.isShowStorageLocationDatasTab = true;\n    this.closeInOutOrderDetailsTab();\n    this.selectedIndex = 1;\n  }\n  closeStorageLocationDatasTab() {\n    this.isShowStorageLocationDatasTab = false;\n    this.isShowAreaTab = false;\n    this.isShowShelfTab = false;\n    this.isShowDetailsTab = false;\n    this.inventoryStorageLocationQueryDto = {};\n  }\n\n  SelectedMaterialCode(node: NzTreeNode) {\n    if (node && node.origin.customData) {\n      const data = node.origin.customData;\n      if (node.isSelected) {\n        this.selectedMaterial = data;\n        this.getDatas();\n      }\n    } else {\n      this.selectedMaterial = null;\n    }\n  }\n\n  openInOutOrderDetailsTab(data: RhBaseDto, level: number) {\n    this.currentInventoryLevel = level;\n    this.editDto = data;\n    this.inOutOrderDetailsQueryDto = {\n      WarehouseCode: this.editDto.WarehouseCode ? `$${this.editDto.WarehouseCode}` : null,\n      MaterialCode: this.editDto.MaterialCode ? `$${this.editDto.MaterialCode}` : null,\n      WarehouseAreaCode: this.editDto.WarehouseAreaCode ? `$${this.editDto.WarehouseAreaCode}` : null,\n      WarehouseShelfCode: this.editDto.WarehouseShelfCode ? `$${this.editDto.WarehouseShelfCode}` : null,\n      StorageLocationCode: this.editDto.StorageLocationCode ? `${this.editDto.StorageLocationCode}` : null,\n      LotNum: this.editDto.LotNum ? `$${this.editDto.LotNum}` : null,\n      SN: this.editDto.SN ? `$${this.editDto.SN}` : null\n    };\n    switch (level) {\n      case 0:\n        this.inOutOrderDetailsQueryFormVisibleSetting = {\n          MaterialCode: false,\n          WarehouseCode: false\n        };\n        this.isShowStorageLocationDatasTab = false;\n        this.isShowAreaTab = false;\n        this.isShowShelfTab = false;\n        this.isShowDetailsTab = false;\n        break;\n      case 1:\n        this.inOutOrderDetailsQueryFormVisibleSetting = {\n          MaterialCode: false,\n          WarehouseCode: false,\n          WarehouseAreaCode: false\n        };\n        this.isShowAreaTab = false;\n        this.isShowShelfTab = false;\n        this.isShowDetailsTab = false;\n        break;\n      case 2:\n        this.inOutOrderDetailsQueryFormVisibleSetting = {\n          MaterialCode: false,\n          WarehouseCode: false,\n          WarehouseAreaCode: false,\n          WarehouseShelfCode: false\n        };\n        this.isShowShelfTab = false;\n        this.isShowDetailsTab = false;\n        break;\n      case 3:\n        this.inOutOrderDetailsQueryFormVisibleSetting = {\n          MaterialCode: false,\n          WarehouseCode: false,\n          WarehouseAreaCode: false,\n          WarehouseShelfCode: false,\n          StorageLocationCode: false\n        };\n        this.isShowDetailsTab = false;\n        break;\n      case 4:\n        this.inOutOrderDetailsQueryFormVisibleSetting = {\n          MaterialCode: false,\n          WarehouseCode: false,\n          WarehouseAreaCode: false,\n          WarehouseShelfCode: false,\n          StorageLocationCode: false,\n          LotNum: false\n        };\n        break;\n      default:\n        break;\n    }\n    this.selectedIndex = this.selectedIndex + 1;\n    this.isShowInOutOrderDetailsTab = true;\n  }\n\n  closeInOutOrderDetailsTab() {\n    this.currentInventoryLevel = 0;\n    this.isShowInOutOrderDetailsTab = false;\n  }\n\n  selectedIndexChange(index: number) {\n    if (this.isShowInOutOrderDetailsTab && index < this.currentInventoryLevel + 1) {\n      if (this.currentInventoryLevel == 3 && index < this.currentInventoryLevel + this.shelfIndex - 1) {\n        this.isShowInOutOrderDetailsTab = false;\n      }\n      if (this.currentInventoryLevel == 4 && index < this.currentInventoryLevel + this.locationIndex - 2) {\n        this.isShowInOutOrderDetailsTab = false;\n      }\n      if (this.currentInventoryLevel <= 2) {\n        this.isShowInOutOrderDetailsTab = false;\n      }\n    }\n  }\n\n  getWarehouseControl(para) {\n    this.areaIndex = 0;\n    this.shelfIndex = 0;\n    this.locationIndex = 0;\n    if (para.IsEnableWarehouseArea) {\n      this.areaIndex++;\n      this.shelfIndex++;\n      this.locationIndex++;\n    }\n    if (para.IsEnableWarehouseShelf) {\n      this.shelfIndex++;\n      this.locationIndex++;\n    }\n    if (para.IsEnableStorageLocation) {\n      this.locationIndex++;\n    }\n  }\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>库存查询</span>\n      </ng-template>\n\n      <d-splitter style=\"height: 100%; width: 100%\" orientation=\"horizontal\">\n        <d-splitter-pane #leftPane [collapsible]=\"true\" size=\"300px\" minSize=\"200px\" maxSize=\"400px\">\n          <div *ngIf=\"!leftPane.collapsed\">\n            <rh-material-tree [rhMode]=\"3\" (rhSelectNodeChange)=\"SelectedMaterialCode($event)\"> </rh-material-tree>\n          </div>\n        </d-splitter-pane>\n        <d-splitter-pane>\n          <div class=\"rh-full\">\n            <d-splitter orientation=\"vertical\">\n              <d-splitter-pane #splitterPaneOne [resizable]=\"false\" [collapsible]=\"true\">\n                <div *ngIf=\"!splitterPaneOne.collapsed\" class=\"rh-full\">\n                  <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplateOne\">\n                    <ng-template #nzAlertTemplateOne>\n                      <rh-dynamic-form\n                        #queryForm\n                        rhName=\"queryForm\"\n                        rhType=\"query\"\n                        [rhValue]=\"defaultQueryDto\"\n                        (rhInterfaceDataChange)=\"setDatas($event)\"\n                        (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                        (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                      ></rh-dynamic-form>\n                    </ng-template>\n                  </nz-alert>\n                </div>\n              </d-splitter-pane>\n              <d-splitter-pane>\n                <div class=\"rh-full\">\n                  <rh-dynamic-table\n                    [rhTableData]=\"dataresult\"\n                    [rhTableDataloading]=\"dataLoading\"\n                    [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                    (rhRefresh)=\"refreshDatas($event)\"\n                    [rhEditButtonDataset]=\"editButtonDataset\"\n                    [rhTitleButtonDataset]=\"titleButtonDataset\"\n                    [rhExtraButtonDataset]=\"extraButtonDataset\"\n                    (rhTableCellClick)=\"openStorageLocationDatasTab($event)\"\n                  >\n                  </rh-dynamic-table>\n                </div>\n              </d-splitter-pane>\n            </d-splitter>\n          </div>\n        </d-splitter-pane>\n      </d-splitter>\n    </nz-tab>\n    <nz-tab *ngIf=\"isShowStorageLocationDatasTab && selectedIndex > 0\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>{{ editDto?.WarehouseName || 'WMS测试仓库' }}</span>\n        <span class=\"rh-color-danger\"\n          ><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeStorageLocationDatasTab()\"></i\n        ></span>\n      </ng-template>\n      <rh-inventory-query-storage-location\n        [rhDefaultQueryDto]=\"inventoryStorageLocationQueryDto\"\n        (rhTableCellClick)=\"openDetailsTab($event)\"\n        (rhOpenAreaTab)=\"openAreaTab($event)\"\n        (rhOpenShelfTab)=\"openShelfTab($event)\"\n        (rhInOutOrderDetailsGet)=\"openInOutOrderDetailsTab($event, 1)\"\n        (WarehouseControl)=\"getWarehouseControl($event)\"\n      >\n      </rh-inventory-query-storage-location>\n    </nz-tab>\n    <nz-tab *ngIf=\"isShowAreaTab && selectedIndex > areaIndex\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>{{ editDto?.WarehouseAreaName || 'WMS测试库区' }}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeAreaTab()\"></i></span>\n      </ng-template>\n      <rh-inventory-query-area\n        [rhDefaultQueryDto]=\"inventoryStorageLocationQueryDto\"\n        (rhTableCellClick)=\"openDetailsTab($event)\"\n        (rhOpenAreaTab)=\"openAreaTab($event)\"\n        (rhOpenShelfTab)=\"openShelfTab($event)\"\n        (rhInOutOrderDetailsGet)=\"openInOutOrderDetailsTab($event, 2)\"\n      >\n      </rh-inventory-query-area>\n    </nz-tab>\n    <nz-tab *ngIf=\"isShowShelfTab && selectedIndex > shelfIndex\" [nzTitle]=\"tabFourTitle\">\n      <ng-template #tabFourTitle>\n        <span>{{ editDto?.WarehouseShelfName || 'WMS测试货架' }}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeShelfTab()\"></i></span>\n      </ng-template>\n      <rh-inventory-query-shelf\n        [rhDefaultQueryDto]=\"inventoryStorageLocationQueryDto\"\n        (rhTableCellClick)=\"openDetailsTab($event)\"\n        (rhOpenAreaTab)=\"openAreaTab($event)\"\n        (rhOpenShelfTab)=\"openShelfTab($event)\"\n        (rhInOutOrderDetailsGet)=\"openInOutOrderDetailsTab($event, 3)\"\n      >\n      </rh-inventory-query-shelf>\n    </nz-tab>\n    <nz-tab *ngIf=\"isShowDetailsTab && selectedIndex > locationIndex\" [nzTitle]=\"tabFiveTitle\">\n      <ng-template #tabFiveTitle>\n        <span>{{ editDto?.StorageLocationName || 'WMS测试库位' }}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeDetailsTab()\"></i></span>\n      </ng-template>\n      <rh-inventory-query-details\n        [rhDefaultQueryDto]=\"inventoryDetailsQueryDto\"\n        (rhInOutOrderDetailsGet)=\"openInOutOrderDetailsTab($event, 4)\"\n      ></rh-inventory-query-details>\n    </nz-tab>\n    <nz-tab *ngIf=\"isShowInOutOrderDetailsTab\" [nzTitle]=\"tabSixTitle\">\n      <ng-template #tabSixTitle>\n        <span>{{ editDto?.MaterialName || '库存出入库明细' }}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeInOutOrderDetailsTab()\"></i></span>\n      </ng-template>\n      <rh-inventory-query-in-out-details\n        [rhDefaultQueryDto]=\"inOutOrderDetailsQueryDto\"\n        [rhVisibleSetting]=\"inOutOrderDetailsQueryFormVisibleSetting\"\n        [rhInventoryLevel]=\"currentInventoryLevel\"\n      >\n      </rh-inventory-query-in-out-details>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && isShowImport\" [nzTitle]=\"tabSevenTitle\">\n      <ng-template #tabSevenTitle>\n        <span>数据导入</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <rh-import-data-manage [rhBusinessCode]=\"BusinessType\" (rhClose)=\"closeEditTab()\"></rh-import-data-manage>\n    </nz-tab>\n  </nz-tabset>\n</div>\n","import { NzTreeNode } from 'ng-zorro-antd/tree';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport {\n  RhBaseDto,\n  DataResultT,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto,\n  RhSafeAny\n} from 'rh-base/model';\nimport {\n  MsgHelper\n} from 'rh-base/core';\nimport {\n  DynamicFormComponent\n} from 'rh-base/shared';\n\n@Component({\n  selector: 'rh-advanced-inventory-query',\n  templateUrl: './advanced-inventory-query.component.html',\n  styleUrls: ['./advanced-inventory-query.component.css']\n})\nexport class RhAdvancedInventoryQueryComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @ViewChild('inventoryDetailsQueryForm', { static: false }) queryFormCmtDetails: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n  editButtonDataset: RhTableButtonInfoDto[] = [];\n  titleButtonDataset: RhTableButtonInfoDto[] = [];\n  extraButtonDataset: RhTableButtonInfoDto[] = [];\n\n  dataLoadingDetails = false;\n  dataresultDetails: DataResultT<RhSelectableDto[]>;\n  defaultFieldDatasetDetails = [];\n  editButtonDatasetDetails: RhTableButtonInfoDto[] = [];\n  titleButtonDatasetDetails: RhTableButtonInfoDto[] = [];\n  extraButtonDatasetDetails: RhTableButtonInfoDto[] = [];\n\n  defaultQueryDto = {};\n  inventoryDetailsQueryDto = {};\n  //树内选中的物料\n  selectedMaterial: RhSafeAny;\n\n  constructor() {\n    //\n  }\n\n  ngOnInit(): void {\n    //\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>, type?: string) {\n    if (type === 'details') {\n      this.dataresultDetails = dataset;\n    } else {\n      this.dataresult = dataset;\n    }\n    if (!dataset?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${dataset?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean, type?: string) {\n    if (type === 'details') this.dataLoadingDetails = status;\n    else this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel, type?: string) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    if (type === 'details') this.defaultFieldDatasetDetails = [...tempDatas];\n    else this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto, type?: string) {\n    if (type === 'details') this.getDatasDetails(option);\n    else this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      const queryDto: RhSafeAny = {};\n      if (this.selectedMaterial?.MaterialCode) {\n        queryDto.MaterialCode = this.selectedMaterial.MaterialCode ? `$${this.selectedMaterial.MaterialCode}` : null;\n      } else {\n        queryDto.MaterialCode = null;\n      }\n      this.defaultQueryDto = queryDto;\n      setTimeout(() => {\n        this.queryFormCmt.submitDefaultForm(null, option);\n      });\n    }\n  }\n\n  private getDatasDetails(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmtDetails) {\n      this.queryFormCmtDetails.submitDefaultForm(null, option);\n    }\n  }\n\n  openDetailsTab(dto: RhBaseDto) {\n    this.editDto = dto.data;\n    this.inventoryDetailsQueryDto = { WarehouseCode: this.editDto.WarehouseCode ? `$${this.editDto.WarehouseCode}` : null };\n    this.selectedIndex = 1;\n  }\n\n  closeDetailsTab() {\n    this.selectedIndex = 0;\n  }\n\n  // SelectedMaterialCode(item: RhSafeAny) {\n  //   this.selectedMaterial = item;\n  //   this.getDatas();\n  // }\n\n  SelectedMaterialCode(node: NzTreeNode) {\n    if (node && node.origin.customData) {\n      const data = node.origin.customData;\n      if (node.isSelected) {\n        this.selectedMaterial = data;\n        this.getDatas();\n      }\n    } else {\n      this.selectedMaterial = null;\n    }\n  }\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n\n      <d-splitter style=\"height: 100%; width: 100%\" orientation=\"horizontal\">\n        <d-splitter-pane #leftPane [collapsible]=\"true\" size=\"300px\" minSize=\"200px\" maxSize=\"400px\">\n          <div *ngIf=\"!leftPane.collapsed\">\n            <rh-material-tree [rhMode]=\"3\" (rhSelectNodeChange)=\"SelectedMaterialCode($event)\"> </rh-material-tree>\n          </div>\n        </d-splitter-pane>\n        <d-splitter-pane>\n          <div class=\"rh-full\">\n            <d-splitter orientation=\"vertical\">\n              <d-splitter-pane #splitterPaneOne [resizable]=\"false\" [collapsible]=\"true\">\n                <div *ngIf=\"!splitterPaneOne.collapsed\" class=\"rh-full\">\n                  <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplateOne\">\n                    <ng-template #nzAlertTemplateOne>\n                      <rh-dynamic-form #queryForm rhName=\"queryForm\" rhType=\"query\" [rhValue]=\"defaultQueryDto\"\n                        (rhInterfaceDataChange)=\"setDatas($event)\" (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                        (rhOutParaChange)=\"setInitFieldDataset($event)\"></rh-dynamic-form>\n                    </ng-template>\n                  </nz-alert>\n                </div>\n              </d-splitter-pane>\n              <d-splitter-pane>\n                <div class=\"rh-full\">\n                  <rh-dynamic-table [rhTableData]=\"dataresult\" [rhTableDataloading]=\"dataLoading\"\n                    [rhDefaultFieldDataset]=\"defaultFieldDataset\" (rhRefresh)=\"refreshDatas($event)\"\n                    [rhEditButtonDataset]=\"editButtonDataset\" [rhTitleButtonDataset]=\"titleButtonDataset\"\n                    [rhExtraButtonDataset]=\"extraButtonDataset\" (rhTableCellClick)=\"openDetailsTab($event)\">\n                  </rh-dynamic-table>\n                </div>\n              </d-splitter-pane>\n            </d-splitter>\n          </div>\n        </d-splitter-pane>\n      </d-splitter>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\"\n            (click)=\"closeDetailsTab()\"></i></span>\n      </ng-template>\n      <div>\n        <nz-card nzTitle=\"库存信息\">\n          <rh-dynamic-description rhName=\"inventoryDescription\" [rhValue]=\"editDto\"></rh-dynamic-description>\n        </nz-card>\n        <nz-card nzTitle=\"库存明细\">\n          <div class=\"rh-full\">\n            <d-splitter orientation=\"vertical\">\n              <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n                <div *ngIf=\"!splitterPaneTwo.collapsed\" class=\"rh-full\">\n                  <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplateTwo\">\n                    <ng-template #nzAlertTemplateTwo>\n                      <rh-dynamic-form #inventoryDetailsQueryForm rhName=\"inventoryDetailsQueryForm\"\n                        [rhValue]=\"inventoryDetailsQueryDto\" (rhInterfaceDataChange)=\"setDatas($event, 'details')\"\n                        (rhDataloadingChange)=\"dataLoadingChange($event, 'details')\"\n                        (rhOutParaChange)=\"setInitFieldDataset($event, 'details')\"></rh-dynamic-form>\n                    </ng-template>\n                  </nz-alert>\n                </div>\n              </d-splitter-pane>\n              <d-splitter-pane>\n                <div class=\"rh-full\">\n                  <rh-dynamic-table rhName=\"inventoryDetailsTable\" [rhTableData]=\"dataresultDetails\"\n                    [rhTableDataloading]=\"dataLoadingDetails\" [rhDefaultFieldDataset]=\"defaultFieldDatasetDetails\"\n                    (rhRefresh)=\"refreshDatas($event, 'details')\" [rhEditButtonDataset]=\"editButtonDatasetDetails\"\n                    [rhTitleButtonDataset]=\"titleButtonDatasetDetails\"\n                    [rhExtraButtonDataset]=\"extraButtonDatasetDetails\"></rh-dynamic-table>\n                </div>\n              </d-splitter-pane>\n            </d-splitter>\n          </div>\n        </nz-card>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>","import { Injectable } from '@angular/core';\r\nimport { RhApiUrlsService, RhWmsSysConfigService } from 'rh-base/core';\r\nimport { RhSelectItem, DataResultT, RhSelectableDto, RhBaseDto } from 'rh-base/model';\r\nimport {\r\n  PurchaseInTransactOrderDetails,\r\n  View_PurchaseInTransactionOrderMasterDto,\r\n  View_PurchaseInTransactionOrderMasterQueryDto,\r\n  View_PurchaseReturnedTransactOrderMasterDto\r\n} from './../business-manage/purchase-business/purchase-business-model';\r\nimport { InOutOrderMasterDto, ParaSettingEntryDto } from './../wms-model';\r\nimport { Observable } from 'rxjs';\r\nimport { InOutOrderMasterQueryDto, InOutOrderDetailQueryDto, InOutOrderDetailDto } from './inventory-manage-model';\r\n\r\n@Injectable()\r\nexport class RhInventoryManageService {\r\n  constructor(private apiUrls: RhApiUrlsService, private wmsSysConfigSer: RhWmsSysConfigService) {\r\n    //\r\n  }\r\n\r\n  get isEnableInPlan() {\r\n    return this.wmsSysConfigSer.getIsEnableInPlan();\r\n  }\r\n\r\n  get isEnableOutPlan() {\r\n    return this.wmsSysConfigSer.getIsEnableOutPlan();\r\n  }\r\n\r\n  get isEnableAllocateTransferPlan() {\r\n    return this.wmsSysConfigSer.getIsEnableAllocateTransferPlan();\r\n  }\r\n\r\n  get isEnableLocationMovePlan() {\r\n    return this.wmsSysConfigSer.getIsEnableLocationMovePlan();\r\n  }\r\n\r\n  get isEnableSN() {\r\n    return this.wmsSysConfigSer.getIsEnableSN();\r\n  }\r\n\r\n  get isEnableExpirationDate() {\r\n    return this.wmsSysConfigSer.getIsEnableExpirationDate();\r\n  }\r\n\r\n  get isEnableLotNum() {\r\n    return this.wmsSysConfigSer.getIsEnableLotNum();\r\n  }\r\n\r\n  get isEnableStorageLocation() {\r\n    return this.wmsSysConfigSer.getIsEnableStorageLocation();\r\n  }\r\n\r\n  get isEnableWarehouseAreaAndWarehouseShelf() {\r\n    // return this.wmsSysConfigSer.getIsEnableWarehouseAreaAndWarehouseShelf();\r\n    return true;\r\n  }\r\n\r\n  get isEnableInventoryVerificationAddMaterial() {\r\n    return this.wmsSysConfigSer.getIsEnableInventoryVerificationAddMaterial();\r\n  }\r\n\r\n  initWarehouseVisibleSetting() {\r\n    const temp = {};\r\n    if (!this.isEnableWarehouseAreaAndWarehouseShelf) {\r\n      Object.assign(temp, {\r\n        InWarehouseAreaCode: false,\r\n        InWarehouseAreaName: false,\r\n        InWarehouseShelfCode: false,\r\n        InWarehouseShelfName: false,\r\n        OutWarehouseAreaCode: false,\r\n        OutWarehouseAreaName: false,\r\n        OutWarehouseShelfCode: false,\r\n        OutWarehouseShelfName: false,\r\n        WarehouseAreaCode: false,\r\n        WarehouseAreaName: false,\r\n        WarehouseShelfCode: false,\r\n        WarehouseShelfName: false\r\n      });\r\n    } else {\r\n      Object.assign(temp, {\r\n        InWarehouseAreaCode: true,\r\n        InWarehouseAreaName: true,\r\n        InWarehouseShelfCode: true,\r\n        InWarehouseShelfName: true,\r\n        OutWarehouseAreaCode: true,\r\n        OutWarehouseAreaName: true,\r\n        OutWarehouseShelfCode: true,\r\n        OutWarehouseShelfName: true,\r\n        WarehouseAreaCode: true,\r\n        WarehouseAreaName: true,\r\n        WarehouseShelfCode: true,\r\n        WarehouseShelfName: true\r\n      });\r\n    }\r\n    if (!this.isEnableStorageLocation) {\r\n      Object.assign(temp, {\r\n        InStorageLocationCode: false,\r\n        InStorageLocationName: false,\r\n        OutStorageLocationCode: false,\r\n        OutStorageLocationName: false,\r\n        StorageLocationCode: false,\r\n        StorageLocationName: false\r\n      });\r\n    } else {\r\n      Object.assign(temp, {\r\n        InStorageLocationCode: true,\r\n        InStorageLocationName: true,\r\n        OutStorageLocationCode: true,\r\n        OutStorageLocationName: true,\r\n        StorageLocationCode: true,\r\n        StorageLocationName: true\r\n      });\r\n    }\r\n    return temp;\r\n  }\r\n\r\n  initVisibleSetting() {\r\n    const temp = {};\r\n    Object.assign(temp, this.initWarehouseVisibleSetting());\r\n    if (this.isEnableSN) {\r\n      Object.assign(temp, { SN: true });\r\n    } else {\r\n      Object.assign(temp, { SN: false });\r\n    }\r\n    if (this.isEnableExpirationDate) {\r\n      Object.assign(temp, { ProductionDate: true, ExpiryDays: true, ExpiryUnit: true, ExpirationDate: true });\r\n    } else {\r\n      Object.assign(temp, { ProductionDate: false, ExpiryDays: false, ExpiryUnit: false, ExpirationDate: false });\r\n    }\r\n    if (this.isEnableLotNum) {\r\n      Object.assign(temp, { LotNum: true });\r\n    } else {\r\n      Object.assign(temp, { LotNum: false });\r\n    }\r\n    return temp;\r\n  }\r\n\r\n  initCheckFieldList() {\r\n    let temp = ['MaterialCode'];\r\n    if (this.isEnableWarehouseAreaAndWarehouseShelf) {\r\n      temp = temp.concat(['WarehouseAreaCode', 'WarehouseShelfCode']);\r\n    }\r\n    if (this.isEnableStorageLocation) {\r\n      temp = temp.concat(['StorageLocationCode']);\r\n    }\r\n    if (this.isEnableLotNum) {\r\n      temp = temp.concat(['LotNum']);\r\n    }\r\n    return temp;\r\n  }\r\n\r\n  /**\r\n   *  获取业务类型\r\n   */\r\n  GetBussinessType(): Observable<DataResultT<RhSelectItem[]>> {\r\n    return this.apiUrls.GetRhpWms('MaterialInventoryWebApi', 'GetBussinessType');\r\n  }\r\n\r\n  /**\r\n   *  获取物料单位选择项\r\n   */\r\n  GetMeasureUnitSelectItems(): Observable<DataResultT<RhSelectItem[]>> {\r\n    return this.apiUrls.GetMdp('ProductMaterialWebApi', 'GetMeasureUnitSelectItems');\r\n  }\r\n\r\n  /**\r\n   *  获取入库单表体\r\n   */\r\n  GetInOrderDetailDatas(queryDto: InOutOrderDetailQueryDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('InOrderWebApi', 'GetInOrderDetailDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  获取出库单明细\r\n   */\r\n  GetOutOrderDetailDatas(queryDto: InOutOrderDetailQueryDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('OutOrderWebApi', 'GetOutOrderDetailDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  获取调拨单明细\r\n   */\r\n  GetAllocateTransferDetailDatas(queryDto: InOutOrderDetailQueryDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('MaterialTransferOrderWebApi', 'GetAllocateTransferDetailDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  获取移库单明细\r\n   */\r\n  GetLocationMoveDetailDatas(queryDto: InOutOrderDetailQueryDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('MaterialTransferOrderWebApi', 'GetLocationMoveDetailDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  查询采购入库\r\n   */\r\n  GetPurchaseInWarehouseBusinessOrderDatas(queryDto: InOutOrderMasterQueryDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('InOrderWebApi', 'GetPurchaseInWarehouseBusinessOrderDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  查询退料入库\r\n   */\r\n  GetMaterialBackInBusinessOrderData(queryDto: InOutOrderMasterQueryDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('InOrderWebApi', 'GetMaterialBackInBusinessOrderData', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  查询销售退货入库\r\n   */\r\n  GetSaleBackInWarehouseBusinessOrderDatas(queryDto: InOutOrderMasterQueryDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('InOrderWebApi', 'GetSaleBackInWarehouseBusinessOrderDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  查询其他入库\r\n   */\r\n  GetOtherInBusinessOrderDatas(queryDto: InOutOrderMasterQueryDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('InOrderWebApi', 'GetOtherInBusinessOrderDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  查询销售出库\r\n   */\r\n  GetSaleOutBusinessOrderDatas(queryDto: InOutOrderMasterQueryDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('OutOrderWebApi', 'GetSaleOutBusinessOrderDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  查询领料出库\r\n   */\r\n  GetPickingOutBusinessOrderDatas(queryDto: InOutOrderMasterQueryDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('OutOrderWebApi', 'GetPickingOutBusinessOrderDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  查询采购退货\r\n   */\r\n  GetPurchaseBackBusinessOrderDatas(queryDto: InOutOrderMasterQueryDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('OutOrderWebApi', 'GetPurchaseBackBusinessOrderDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  查询其他出库\r\n   */\r\n  GetOtherOutBusinessOrderDatas(queryDto: InOutOrderMasterQueryDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('OutOrderWebApi', 'GetOtherOutBusinessOrderDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  获取调拨单\r\n   */\r\n  GetAllocateTransferBusinessOrderDatas(queryDto: InOutOrderMasterQueryDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('MaterialTransferOrderWebApi', 'GetAllocateTransferBusinessOrderDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  获取移库单\r\n   */\r\n  GetLocationMoveBusinessOrderDatas(queryDto: InOutOrderMasterQueryDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('MaterialTransferOrderWebApi', 'GetLocationMoveBusinessOrderDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  查询生产入库\r\n   */\r\n  GetProduceInBusinessOrderDatas(queryDto: InOutOrderMasterQueryDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('InOrderWebApi', 'GetProduceInBusinessOrderDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  查询委外领料入库\r\n   */\r\n  GetOutPickingInBusinessOrderDatas(queryDto: InOutOrderMasterQueryDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('OutOrderWebApi', 'GetOutPickingInBusinessOrderDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  获取采购入库办理单头数据\r\n   */\r\n  GetPurchaseInTransactOrderDatas(queryDto: RhBaseDto): Observable<DataResultT<View_PurchaseInTransactionOrderMasterDto[]>> {\r\n    return this.apiUrls.PostRhpWms('PurchaseBusinessTransactApi', 'GetPurchaseInTransactOrderDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  获取仓库调拨办理明细数据\r\n   */\r\n  GetWarehouseTransferTransactOrderDetailsDatas(queryDto: RhBaseDto): Observable<DataResultT<InOutOrderDetailDto[]>> {\r\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessTransactApi', 'GetWarehouseTransferTransactOrderDetailsDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  获取库位调拨办理单头数据\r\n   */\r\n  GetStockLocationTransferTransactionOrders(queryDto: RhBaseDto): Observable<DataResultT<InOutOrderMasterDto[]>> {\r\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessTransactApi', 'GetStockLocationTransferTransactionOrders', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  获取采购退货出库办理单头数据\r\n   */\r\n  GetPurchaseReturnedOutTransactOrderDatas(queryDto: RhBaseDto): Observable<DataResultT<View_PurchaseReturnedTransactOrderMasterDto[]>> {\r\n    return this.apiUrls.PostRhpWms('PurchaseBusinessTransactApi', 'GetPurchaseReturnedOutTransactOrderDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  获取生产领料出库办理单头数据\r\n   */\r\n  GetProductPickedMaterialTransactOrderViewDatas(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'GetProductPickedMaterialTransactOrderViewDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  获取生产退料入库办理单头数据\r\n   */\r\n  GetProductReturnedMaterialTransactOrderDatas(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'GetProductReturnedMaterialTransactOrderDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  获取生产完工入库办理单头数据\r\n   */\r\n  GetProductCompletedInTransactOrderDatas(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'GetProductCompletedInTransactOrderDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  获取销售出库办理单头数据\r\n   */\r\n  GetSaleOutTransactOrderDatas(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('SaleTransactBusinessApi', 'GetSaleOutTransactOrderDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  获取销售退货入库办理单头数据\r\n   */\r\n  GetSaleReturnedTransactOrderViewDatas(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('SaleTransactBusinessApi', 'GetSaleReturnedTransactOrderViewDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  获取其他入库办理单头数据\r\n   */\r\n  GetOtherInTransactOrderViewDatas(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('OtherTransactBusinessApi', 'GetOtherInTransactOrderViewDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  获取其他出库办理单头数据\r\n   */\r\n  GetOtherOutTransactOrderViewDatas(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('OtherTransactBusinessApi', 'GetOtherOutTransactOrderViewDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  根据办理单号获取采购入库办理单明细数据,包含统计汇总数量信息\r\n   */\r\n  GetPurchaseInTransactOrderDetailsDatasBy(queryDto: RhBaseDto): Observable<DataResultT<PurchaseInTransactOrderDetails[]>> {\r\n    return this.apiUrls.PostRhpWms('PurchaseBusinessTransactApi', 'GetPurchaseInTransactOrderDetailsDatasBy', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  根据计划单号获取生产领料出库办理单明细数据,包含统计汇总数量信息\r\n   */\r\n  GetProductPickedMaterialTransactOrderDetailsDatasBy(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'GetProductPickedMaterialTransactOrderDetailsDatasBy', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  根据计划单号获取生产退料入库办理单明细数据,包含统计汇总数量信息\r\n   */\r\n  GetProductReturnedMaterialTransactOrderDetailsDatasBy(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'GetProductReturnedMaterialTransactOrderDetailsDatasBy', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  根据计划单号获取生产完工入库办理单明细数据,包含统计汇总数量信息\r\n   */\r\n  GetProductCompletedInTransactOrderDetailsDatasBy(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('ProductTransactBusinessApi', 'GetProductCompletedInTransactOrderDetailsDatasBy', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  根据办理单号获取销售退货入库办理单明细数据,包含统计汇总数量信息\r\n   */\r\n  GetSaleReturnedTransactOrderDetailsDatasBy(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('SaleTransactBusinessApi', 'GetSaleReturnedTransactOrderDetailsDatasBy', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  根据办理单号获取其他入库入库办理单明细数据,包含统计汇总数量信息\r\n   */\r\n  GetOtherInTransactOrderDetailsDatasBy(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('OtherTransactBusinessApi', 'GetOtherInTransactOrderDetailsDatasBy', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  根据办理单号获取销售出库办理单明细数据,包含统计汇总数量信息\r\n   */\r\n  GetSaleOutTransactOrderDetailsDatasBy(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('SaleTransactBusinessApi', 'GetSaleOutTransactOrderDetailsDatasBy', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  根据办理单号获取采购退货出库办理单明细数据,包含统计汇总数量信息\r\n   */\r\n  GetPurchaseReturnedTransactOrderDetailsDatasBy(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('PurchaseBusinessTransactApi', 'GetPurchaseReturnedTransactOrderDetailsDatasBy', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  根据办理单号获取其他出库出库办理单明细数据,包含统计汇总数量信息\r\n   */\r\n  GetOtherOutTransactOrderDetailsDatasBy(queryDto: RhBaseDto): Observable<DataResultT<RhSelectableDto[]>> {\r\n    return this.apiUrls.PostRhpWms('OtherTransactBusinessApi', 'GetOtherOutTransactOrderDetailsDatasBy', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  获取仓库调拨办理单头数据\r\n   */\r\n  GetWarehouseTransferTransactionOrders(queryDto: RhBaseDto): Observable<DataResultT<InOutOrderMasterDto[]>> {\r\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessTransactApi', 'GetWarehouseTransferTransactionOrders', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  获取库位调拨办理明细数据\r\n   */\r\n  GetStockLocationTransferTransactOrderDetailsDatas(queryDto: RhBaseDto): Observable<DataResultT<InOutOrderDetailDto[]>> {\r\n    return this.apiUrls.PostRhpWms('GeneralTransferBusinessTransactApi', 'GetStockLocationTransferTransactOrderDetailsDatas', queryDto);\r\n  }\r\n\r\n  /**\r\n   *  获取参数设置条目列表\r\n   */\r\n  GetParameterSettingEntries(moduleKey: string, groupKey: string, paraCode: string): Observable<DataResultT<ParaSettingEntryDto[]>> {\r\n    return this.apiUrls.GetPp('YGSysConfigApi', 'GetParameterSettingEntries', { params: { moduleKey, groupKey, paraCode } });\r\n  }\r\n}\r\n","import { RhBaseDto, DataResultT, RhSelectableDto, RhTableButtonInfoDto, RhSelectItem } from 'rh-base/model';\nimport { Component, OnInit, Input, SimpleChanges } from '@angular/core';\nimport { RhInventoryManageService } from '../../../inventory-manage.service';\nimport { InOutOrderDetailQueryDto, InOutOrderMasterQueryDto } from '../../../inventory-manage-model';\nimport { MsgHelper } from 'rh-base/core';\nimport { Observable } from 'rxjs';\n\n@Component({\n  selector: 'rh-inventory-in-out-details-by-business',\n  templateUrl: './inventory-in-out-details-by-business.component.html',\n  styleUrls: ['./inventory-in-out-details-by-business.component.less']\n})\nexport class InventoryInOutDetailsByBusinessComponent implements OnInit {\n  @Input() rhData: RhBaseDto;\n  currentBusinessType: string;\n  currnetInOutType: 'In' | 'Out' | 'Other' = 'In';\n  inTypes = ['PurchaseIn', 'ProduceIn', 'MaterialBackIn', 'SaleBack', 'OtherIn'];\n  outTypes = ['SaleOut', 'PickingOut', 'OutPickingOut', 'PurchaseBack', 'OtherOut'];\n  stayTypes = ['LocationMove', 'AllocateTransfer'];\n  // inTypes = ['PurchaseIn', 'ProduceIn', 'MaterialBackIn', 'SaleBack', 'OtherIn'];\n  // outTypes = ['SaleOut', 'PickingOut', 'OutPickingOut', 'PurchaseBack', 'OtherOut'];\n  // stayTypes = ['LocationMove', 'AllocateTransfer', 'DevelopAllocateTransfer', 'ProductTransfer'];\n  // otherTypes = ['InventoryVerification'];\n  visibleSetting = {};\n\n  currentOrder: RhBaseDto;\n  orderLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  dataLoading = false;\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDetail(), true)\n  ];\n\n  businessTypes: RhSelectItem[] = [];\n\n  constructor(private operator: RhInventoryManageService) {}\n\n  ngOnInit(): void {\n    this.getBusinessType();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue) {\n      this.getCurrentType();\n    }\n  }\n\n  getCurrentType() {\n    this.currentBusinessType = this.rhData.BusinessType;\n    if (this.inTypes.includes(this.currentBusinessType)) {\n      this.currnetInOutType = 'In';\n    } else if (this.outTypes.includes(this.currentBusinessType)) {\n      this.currnetInOutType = 'Out';\n    } else {\n      this.currnetInOutType = 'Other';\n    }\n    this.initVisibleSetting();\n    this.getMaster();\n    this.getDetail();\n  }\n\n  initVisibleSetting() {\n    this.visibleSetting = {};\n    Object.assign(this.visibleSetting, this.operator.initVisibleSetting());\n    if (\n      (this.currnetInOutType === 'In' && this.operator.isEnableInPlan) ||\n      (this.currnetInOutType === 'Out' && this.operator.isEnableOutPlan) ||\n      (this.currentBusinessType === 'AllocateTransfer' && this.operator.isEnableAllocateTransferPlan) ||\n      (this.currentBusinessType === 'LocationMove' && this.operator.isEnableLocationMovePlan)\n    ) {\n      Object.assign(this.visibleSetting, { PlanOrderId: true, PlanQty: true, CompletedQty: true, SourceCompletedQty: false });\n    } else {\n      Object.assign(this.visibleSetting, { PlanOrderId: false, PlanQty: false, CompletedQty: false, SourceCompletedQty: true });\n    }\n  }\n\n  getMaster() {\n    const queryDto = InOutOrderMasterQueryDto.create();\n    queryDto.OrderId = this.rhData.OrderId ? `$${this.rhData.OrderId}` : null;\n    let sub: Observable<DataResultT<RhSelectableDto[]>>;\n    switch (this.currentBusinessType) {\n      case 'PurchaseIn':\n        sub = this.operator.GetPurchaseInTransactOrderDatas(queryDto);\n        break;\n      case 'ProductPickedMaterialOut':\n        sub = this.operator.GetProductPickedMaterialTransactOrderViewDatas(queryDto);\n        break;\n      case 'ProductReturnedMaterialIn':\n        sub = this.operator.GetProductReturnedMaterialTransactOrderDatas(queryDto);\n        break;\n      case 'ProductCompletedIn':\n        sub = this.operator.GetProductCompletedInTransactOrderDatas(queryDto);\n        break;\n      case 'SaleReturnedIn':\n        sub = this.operator.GetSaleReturnedTransactOrderViewDatas(queryDto);\n        break;\n      case 'OtherIn':\n        sub = this.operator.GetOtherInTransactOrderViewDatas(queryDto);\n        break;\n      case 'SaleOut':\n        sub = this.operator.GetSaleOutTransactOrderDatas(queryDto);\n        break;\n      case 'PurchaseReturnedOut':\n        sub = this.operator.GetPurchaseReturnedOutTransactOrderDatas(queryDto);\n        break;\n      case 'OtherOut':\n        sub = this.operator.GetOtherOutTransactOrderViewDatas(queryDto);\n        break;\n      case 'WarehouseTransfer':\n        sub = this.operator.GetWarehouseTransferTransactionOrders(queryDto);\n        break;\n      case 'StockLocationTransfer':\n        sub = this.operator.GetStockLocationTransferTransactionOrders(queryDto);\n        break;\n      // case 'DevelopAllocateTransfer':\n      //   sub = this.operator.GetDevelopAllocateBusinessOrderDatas(queryDto);\n      //   break;\n      // case 'ProductTransfer':\n      //   sub = this.operator.GetProductTransferBusinessOrderDatas(queryDto);\n      //   break;\n      default:\n        this.currentOrder = this.rhData;\n        break;\n    }\n\n    if (sub) {\n      this.orderLoading = true;\n      sub.subscribe(\n        (result) => {\n          if (result.Success && result?.Attach?.length === 1) {\n            this.currentOrder = result.Attach[0];\n          } else {\n            this.currentOrder = null;\n            MsgHelper.ShowWarningMessage(`获取单头信息失败！${result.Message}`);\n          }\n          this.orderLoading = false;\n        },\n        () => (this.orderLoading = false)\n      );\n    }\n  }\n\n  getDetail() {\n    const queryDto = InOutOrderDetailQueryDto.create();\n    queryDto.OrderId = this.rhData.OrderId;\n    queryDto.Mode = 8;\n    let sub: Observable<DataResultT<RhSelectableDto[]>>;\n    // switch (this.currnetInOutType) {\n    //   case 'In':\n    //     sub = this.operator.GetInOrderDetailDatas(queryDto);\n    //     break;\n    //   case 'Out':\n    //     sub = this.operator.GetOutOrderDetailDatas(queryDto);\n    //     break;\n    //   default:\n    //     if (this.currentBusinessType === 'LocationMove') {\n    //       sub = this.operator.GetLocationMoveDetailDatas(queryDto);\n    //     } else if (this.stayTypes.includes(this.currentBusinessType)) {\n    //       sub = this.operator.GetAllocateTransferDetailDatas(queryDto);\n    //     } else {\n    //       sub = this.operator.GetOutOrderDetailDatas(queryDto);\n    //     }\n    //     break;\n    // }\n    switch (this.currentBusinessType) {\n      case 'PurchaseIn':\n        sub = this.operator.GetPurchaseInTransactOrderDetailsDatasBy(queryDto);\n        break;\n      case 'ProductPickedMaterialOut':\n        sub = this.operator.GetProductPickedMaterialTransactOrderDetailsDatasBy(queryDto);\n        break;\n      case 'ProductReturnedMaterialIn':\n        sub = this.operator.GetProductReturnedMaterialTransactOrderDetailsDatasBy(queryDto);\n        break;\n      case 'ProductCompletedIn':\n        sub = this.operator.GetProductCompletedInTransactOrderDetailsDatasBy(queryDto);\n        break;\n      case 'SaleReturnedIn':\n        sub = this.operator.GetSaleReturnedTransactOrderDetailsDatasBy(queryDto);\n        break;\n      case 'OtherIn':\n        sub = this.operator.GetOtherInTransactOrderDetailsDatasBy(queryDto);\n        break;\n      case 'SaleOut':\n        sub = this.operator.GetSaleOutTransactOrderDetailsDatasBy(queryDto);\n        break;\n      case 'PurchaseReturnedOut':\n        sub = this.operator.GetPurchaseReturnedTransactOrderDetailsDatasBy(queryDto);\n        break;\n      case 'OtherOut':\n        sub = this.operator.GetOtherOutTransactOrderDetailsDatasBy(queryDto);\n        break;\n      case 'WarehouseTransfer':\n        sub = this.operator.GetWarehouseTransferTransactOrderDetailsDatas(queryDto);\n        break;\n      case 'StockLocationTransfer':\n        sub = this.operator.GetStockLocationTransferTransactOrderDetailsDatas(queryDto);\n        break;\n      // case 'DevelopAllocateTransfer':\n      //   sub = this.operator.GetDevelopAllocateBusinessOrderDatas(queryDto);\n      //   break;\n      // case 'ProductTransfer':\n      //   sub = this.operator.GetProductTransferBusinessOrderDatas(queryDto);\n      //   break;\n      default:\n        this.currentOrder = this.rhData;\n        break;\n    }\n    this.dataLoading = true;\n    sub.subscribe(\n      (result) => {\n        this.dataresult = result;\n        if (!this.dataresult.Success) {\n          MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n        }\n        this.dataLoading = false;\n      },\n      () => {\n        this.dataLoading = false;\n      }\n    );\n  }\n\n  getBusinessType() {\n    this.operator.GetParameterSettingEntries('Wms', 'InOutWarehouseBusiness', 'InOutBusinessTypesConst').subscribe((result) => {\n      if (result.Success) {\n        this.businessTypes = result.Attach.map((ele) => {\n          return { Text: ele.ParameterEntryValue, Value: ele.ParameterEntryCode };\n        });\n      } else {\n        this.businessTypes = [];\n      }\n    });\n  }\n}\n","<d-splitter orientation=\"vertical\">\n  <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n    <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" [nzTitle]=\"headCardTitle\">\n      <ng-template #headCardTitle>\n        {{ currentBusinessType | mapToDisplay: businessTypes }}单单头\n      </ng-template>\n\n      <nz-spin [nzTip]=\"'加载中...'\" [nzSpinning]=\"orderLoading\">\n        <rh-dynamic-description\n          [rhName]=\"currentBusinessType + 'DetailsDescription'\"\n          [rhValue]=\"currentOrder\"\n          [rhVisibleSetting]=\"visibleSetting\"\n        >\n          <ng-template rhTemplate=\"AttachFiles\">\n            <rh-attach-file-manage\n              [rhOrder]=\"currentOrder\"\n              [rhBusinessType]=\"currentBusinessType\"\n            ></rh-attach-file-manage>\n          </ng-template>\n        </rh-dynamic-description>\n      </nz-spin>\n    </nz-card>\n  </d-splitter-pane>\n  <d-splitter-pane>\n    <nz-card [nzTitle]=\"bodyCardTitle\">\n      <ng-template #bodyCardTitle>\n        {{ currentBusinessType | mapToDisplay: businessTypes }}单单体\n      </ng-template>\n      <rh-dynamic-table\n        [rhName]=\"currentBusinessType + 'HandleDetailsTable'\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhTitleButtonDataset]=\"titleButtonDataset\"\n        [rhVisibleSetting]=\"visibleSetting\"\n      ></rh-dynamic-table>\n    </nz-card>\n  </d-splitter-pane>\n</d-splitter>\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport {\n  DataResultT,\n  RhSelectableDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto,\n  RhBaseDto,\n  RhLoginedUserDto,\n} from 'rh-base/model';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\nimport { RhInventoryManageService } from '../../inventory-manage.service';\n\n@Component({\n  selector: 'rh-inventory-in-out-details',\n  templateUrl: './inventory-in-out-details.component.html',\n  styleUrls: ['./inventory-in-out-details.component.less'],\n})\nexport class RhInventoryInOutDetailsComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  defaultFieldDataset = [];\n\n  selectedData: RhSelectableDto = { BusinessType: 'ProduceIn' };\n\n  formVisibleSetting = {};\n  tableVisibleSetting = {};\n  currentUser: RhLoginedUserDto;\n  curFactoryDefaultQueryDto = {};\n\n  constructor(\n    private operator: RhInventoryManageService,\n    public storage: RhStorageService\n  ) {\n    //\n  }\n\n  ngOnInit(): void {\n    // 获取当前用户信息\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryDefaultQueryDto = {\n      FactoryCode: this.currentUser.FactoryCode,\n    };\n    this.initVisibleSetting();\n  }\n\n  initVisibleSetting() {\n    this.formVisibleSetting = {};\n    this.tableVisibleSetting = {};\n    Object.assign(this.formVisibleSetting, this.operator.initVisibleSetting());\n    Object.assign(this.tableVisibleSetting, this.operator.initVisibleSetting());\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult.httpRequestPara) this.dataresult.httpRequestPara = {};\n    this.dataresult.httpRequestPara.FactoryCode = this.storage.getFactoryCode();\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  openDetailTab(dto: RhBaseDto) {\n    this.selectedData = dto.data;\n    this.selectedIndex = 1;\n  }\n\n  closeDetailTab() {\n    this.selectedIndex = 0;\n  }\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <d-splitter orientation=\"vertical\">\n        <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n          <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n            <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n              <ng-template #nzAlertTemplate>\n                <rh-dynamic-form #queryForm (rhInterfaceDataChange)=\"setDatas($event)\"\n                  (rhDataloadingChange)=\"dataLoadingChange($event)\" (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  [rhVisibleSetting]=\"formVisibleSetting\" [rhValue]=\"curFactoryDefaultQueryDto\"></rh-dynamic-form>\n              </ng-template>\n            </nz-alert>\n          </div>\n        </d-splitter-pane>\n        <d-splitter-pane>\n          <div class=\"rh-full\">\n            <rh-dynamic-table [rhTableData]=\"dataresult\" [rhTableDataloading]=\"dataLoading\"\n              [rhDefaultFieldDataset]=\"defaultFieldDataset\" (rhRefresh)=\"refreshDatas($event)\"\n              (rhTableCellClick)=\"openDetailTab($event)\" [rhVisibleSetting]=\"tableVisibleSetting\"></rh-dynamic-table>\n          </div>\n        </d-splitter-pane>\n      </d-splitter>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>数据明细</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\"\n            (click)=\"closeDetailTab()\"></i></span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <rh-inventory-in-out-details-by-business *ngIf=\"selectedIndex\" [rhData]=\"selectedData\">\n        </rh-inventory-in-out-details-by-business>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { DataResultT, RhSelectableDto, RhBaseQueryDto, RhTableQueryOptionDto, CodeClassModel, RhDynamicTableFieldDto } from 'rh-base/model';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\n\n@Component({\n  selector: 'app-immediate-inventory-in-out-details',\n  templateUrl: './immediate-inventory-in-out-details.component.html',\n  styleUrls: ['./immediate-inventory-in-out-details.component.less']\n})\nexport class RhImmediateInventoryInOutDetailsComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  queryDto: RhBaseQueryDto;\n  defaultFieldDataset = [];\n  defaultQueryDtoStorageLocationOfQuery = {};\n\n\n  constructor(private storage: RhStorageService) {\n    //\n  }\n\n  ngOnInit(): void {\n    //\n  }\n\n  closeEditTab() {\n    this.selectedIndex = 0;\n  }\n\n  openEditTab() {\n    this.selectedIndex = 1;\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult.httpRequestPara) this.dataresult.httpRequestPara = {};\n    this.dataresult.httpRequestPara.FactoryCode = this.storage.getFactoryCode();\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  changeInWarehouseConfigQueryForm(code: string, formgroup: UntypedFormGroup) {\n    Object.assign(this.defaultQueryDtoStorageLocationOfQuery, {\n      WarehouseCode: code ? `$${code}` : null,\n    });\n    if (!code) {\n      formgroup.get('StorageLocationCode')?.setValue(null);\n      formgroup.get('StorageLocationName')?.setValue(null);\n    }\n  }\n\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form #queryForm [rhValue]=\"queryDto\" (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\" (rhOutParaChange)=\"setInitFieldDataset($event)\">\n                    <ng-template rhTemplate=\"WarehouseCode\" let-formgroup let-setting=\"setting\"\n                      let-hostSetting=\"hostSetting\" let-formData=\"formData\">\n                      <nz-form-item>\n                        <!-- <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">\n                          {{ setting.displayName }}</nz-form-label> -->\n                        <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                          <rh-warehouse-selector [formControl]=\"formgroup.get('WarehouseCode')\" [rhData]=\"formData\"\n                            [rhFieldData]=\"setting\" [rhSize]=\"hostSetting?.rhSize\" (ngModelChange)=\"\n                              changeInWarehouseConfigQueryForm($event, formgroup)\n                            \"></rh-warehouse-selector>\n                        </nz-form-control>\n                      </nz-form-item>\n                    </ng-template>\n                    <ng-template rhTemplate=\"StorageLocationCode\" let-formgroup let-setting=\"setting\"\n                      let-hostSetting=\"hostSetting\" let-formData=\"formData\">\n                      <nz-form-item>\n                        <!-- <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">\n                          {{ setting.displayName }}</nz-form-label> -->\n                        <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                          <rh-storage-location-selector [formControl]=\"formgroup.get('StorageLocationCode')\"\n                            [rhData]=\"formData\" [rhFieldData]=\"setting\" [rhSize]=\"hostSetting?.rhSize\"\n                            [rhDefaultQueryDto]=\"\n                              defaultQueryDtoStorageLocationOfQuery\n                            \"></rh-storage-location-selector>\n                        </nz-form-control>\n                      </nz-form-item>\n                    </ng-template>\n                  </rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table [rhTableData]=\"dataresult\" [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\" (rhRefresh)=\"refreshDatas($event)\"></rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>","import { RhSharedManageModule } from './../../shared-manage/shared-manage.module';\nimport { NgModule } from '@angular/core';\nimport { RhSharedModule } from 'rh-base/shared';\nimport { RhInventoryQueryComponent } from './inventory-query/inventory-query.component';\nimport { RhAdvancedInventoryQueryComponent } from './advanced-inventory-query/advanced-inventory-query.component';\nimport { InventoryQueryStorageLocationComponent } from './inventory-query/snippets/inventory-query-storage-location/inventory-query-storage-location.component';\nimport { InventoryQueryDetailsComponent } from './inventory-query/snippets/inventory-query-details/inventory-query-details.component';\nimport { RhInventoryInOutDetailsComponent } from './inventory-in-out-details/inventory-in-out-details.component';\nimport { InventoryInOutDetailsByBusinessComponent } from './inventory-in-out-details/inventory-in-out-details-by-business/inventory-in-out-details-by-business.component';\nimport { InventoryQueryInOutDetailsComponent } from './inventory-query/snippets/inventory-query-in-out-details/inventory-query-in-out-details.component';\nimport { RhInventorySearchService } from './inventory-search.service';\nimport { RhImmediateInventoryInOutDetailsComponent } from './immediate-inventory-in-out-details/immediate-inventory-in-out-details.component';\nimport { InventoryQueryAreaComponent } from './inventory-query/snippets/inventory-query-area/inventory-query-area.component';\nimport { InventoryQueryShelfComponent } from './inventory-query/snippets/inventory-query-shelf/inventory-query-shelf.component';\n\nconst COMPONENTS = [\n  RhInventoryQueryComponent,\n  RhAdvancedInventoryQueryComponent,\n  RhInventoryInOutDetailsComponent,\n  RhImmediateInventoryInOutDetailsComponent\n];\n\nconst SNIPPETS = [\n  InventoryQueryStorageLocationComponent,\n  InventoryQueryDetailsComponent,\n  InventoryQueryInOutDetailsComponent,\n  InventoryInOutDetailsByBusinessComponent,\n  InventoryQueryAreaComponent,\n  InventoryQueryShelfComponent\n];\n\n@NgModule({\n  declarations: [...COMPONENTS, ...SNIPPETS],\n  imports: [RhSharedModule, RhSharedManageModule],\n  providers: [RhInventorySearchService],\n  exports: [...COMPONENTS, ...SNIPPETS]\n})\nexport class RhInventorySearchModule {}\n","import { RhSharedManageModule } from './../../shared-manage/shared-manage.module';\nimport { NgModule } from '@angular/core';\nimport { RhSharedModule } from 'rh-base/shared';\nimport { RhInventoryLockComponent } from './inventory-lock/inventory-lock.component';\nimport { RhInventoryControlService } from './inventory-control.service';\nimport { MaterialInventoryDetailsTableComponent } from './snippets/material-inventory-details-table/material-inventory-details-table.component';\nimport { RhTotalInventoryImportComponent } from './inventory-init/total-inventory-import/total-inventory-import.component';\nimport { RhInventoryDetailsImportComponent } from './inventory-init/inventory-details-import/inventory-details-import.component';\nimport { InventoryImportComponent } from './inventory-init/inventory-import/inventory-import.component';\nimport { RhInventorySearchModule } from '../inventory-search/inventory-search.module';\n\nconst COMMPONENTS = [\n  RhInventoryLockComponent,\n  RhTotalInventoryImportComponent,\n  RhInventoryDetailsImportComponent,\n  InventoryImportComponent\n];\n\nconst SNIPPETS = [MaterialInventoryDetailsTableComponent];\n\n@NgModule({\n  declarations: [...COMMPONENTS, ...SNIPPETS],\n  providers: [RhInventoryControlService],\n  imports: [RhSharedModule, RhSharedManageModule, RhInventorySearchModule]\n})\nexport class RhInventoryControlModule {}\n","import { Injectable } from '@angular/core';\nimport { RhApiUrlsService, RhPortType, RhPortLocalFieldType, FileHelper } from 'rh-base/core';\nimport { Observable } from 'rxjs';\nimport { OpResult, DataResultT } from 'rh-base/model';\nimport {\n  InventoryVerificationOrderMasterQueryDto,\n  InventoryVerificationOrderMasterDto,\n  InventoryVerificationOrderDetailQueryDto,\n  InventoryVerificationOrderDetailDto,\n  InventoryVerificationSchemeDto,\n  InventoryVerificationSchemeQueryDto,\n  InventoryVerificationResultQueryDto,\n  InventoryVerificationResultDto,\n  DataImportDto,\n  DownloadInventoryVerificaTamplateDto,\n  View_InventoryVerificationOrderMasterQueryDto,\n  View_InventoryVerificationOrderMasterDto\n} from '../inventory-manage-model';\nimport {\n  MaterialInventoryDetailQueryDto,\n  MaterialInventoryDetailDto,\n  InOutOrderMasterQueryDto,\n  InOutOrderMasterDto,\n  InOutOrderDetailQueryDto,\n  InOutOrderDetailDto\n} from './../../wms-model';\nimport { WarehouseConfigDto, WarehouseConfigQueryDto } from 'rh-base/shared';\n\n@Injectable()\nexport class RhInventoryCountService {\n  constructor(private apiUrls: RhApiUrlsService) {}\n\n  downloadInventoryVerificationOrderDetailData(data: InventoryVerificationOrderMasterDto, selectWarehouse) {\n    // const url = this.apiUrls.GetApiOperateUrl(\n    //   RhPortType.rhpwms,\n    //   'InventoryVerificationWebApi',\n    //   `DownloadInventoryVerificaTemplate?OrderCode=${data.OrderCode}&warehouseCodes=${selectWarehouse}`,\n    //   RhPortLocalFieldType.rhpwms\n    // );\n    const dto = DownloadInventoryVerificaTamplateDto.create();\n    dto.OrderCode = data.OrderCode;\n    dto.WarehouseCodes = selectWarehouse;\n    const url = this.apiUrls.GetApiOperateUrl(\n      RhPortType.rhpwms,\n      'InventoryVerificationWebApi',\n      `DownloadInventoryVerificaTemplate`,\n      RhPortLocalFieldType.rhpwms\n    );\n    FileHelper.downloadFileViaPost(url, dto, `盘点任务报告${new Date(Date.now()).toLocaleDateString()}.xlsx`);\n  }\n\n  /**\n   *  获取盘点方案\n   */\n  GetInventoryVerificationSchemeDatas(\n    queryDto: InventoryVerificationSchemeQueryDto\n  ): Observable<DataResultT<InventoryVerificationSchemeDto[]>> {\n    return this.apiUrls.PostRhpWms('InventoryVerificationWebApi', 'GetInventoryVerificationSchemeDatas', queryDto);\n  }\n\n  /**\n   *  完成盘点方案\n   */\n  CompleteInventoryVerificationScheme(dto: InventoryVerificationSchemeDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('InventoryVerificationWebApi', 'CompleteInventoryVerificationScheme', dto);\n  }\n\n  /**\n   *  获取盘点\n   */\n  GetInventoryVerificationOrderMasterDatas(\n    queryDto: InventoryVerificationOrderMasterQueryDto\n  ): Observable<DataResultT<InventoryVerificationOrderMasterDto[]>> {\n    return this.apiUrls.PostRhpWms('InventoryVerificationWebApi', 'GetInventoryVerificationOrderMasterDatas', queryDto);\n  }\n\n  /**\n   *  批量删除盘点\n   */\n  RemoveInventoryVerificationOrderMasterDatas(\n    InventoryVerificationOrderMasterDto: InventoryVerificationOrderMasterDto[]\n  ): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms(\n      'InventoryVerificationWebApi',\n      'RemoveInventoryVerificationOrderMasterDatas',\n      InventoryVerificationOrderMasterDto\n    );\n  }\n\n  /**\n   *  获取盘点明细\n   */\n  GetInventoryVerificationOrderDetailDatas(\n    queryDto: InventoryVerificationOrderDetailQueryDto\n  ): Observable<DataResultT<InventoryVerificationOrderDetailDto[]>> {\n    return this.apiUrls.PostRhpWms('InventoryVerificationWebApi', 'GetInventoryVerificationOrderDetailDatas', queryDto);\n  }\n\n  /**\n   *  删除盘点明细\n   */\n  RemoveInventoryVerificationOrderDetailDatas(dtos: InventoryVerificationOrderDetailDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('InventoryVerificationWebApi', 'RemoveInventoryVerificationOrderDetailDatas', dtos);\n  }\n\n  /**\n   *  保存或修改盘点明细\n   */\n  StoreInventoryVerificationOrderDetailDatas(dtos: InventoryVerificationOrderDetailDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('InventoryVerificationWebApi', 'StoreInventoryVerificationOrderDetailDatas', dtos);\n  }\n\n  /**\n   *  获取库存明细\n   */\n  GetMaterialInventoryDetailDatas(queryDto: MaterialInventoryDetailQueryDto): Observable<DataResultT<MaterialInventoryDetailDto[]>> {\n    return this.apiUrls.PostRhpWms('MaterialInventoryWebApi', 'GetMaterialInventoryDetailDatas', queryDto);\n  }\n\n  /**\n   *  保存盘点\n   */\n  // StoreInventoryVerificationResultDetailDatas(dtos: InventoryVerificationResultDetailDto[]): Observable<OpResult> {\n  //   return this.apiUrls.PostRhpWms('InventoryVerificationWebApi', 'StoreInventoryVerificationResultDetailDatas', dtos);\n  // }\n\n  /**\n   *  结束盘点\n   */\n  // EndInventoryVerification(dto: InventoryVerificationOrderMasterDto): Observable<OpResult> {\n  //   return this.apiUrls.PostRhpWms('InventoryVerificationWebApi', 'EndInventoryVerification', dto);\n  // }\n\n  /**\n   *  开始盘点\n   */\n  StartInventoryVerification(dto: InventoryVerificationOrderMasterDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('InventoryVerificationWebApi', 'StartInventoryVerification', dto);\n  }\n\n  /**\n   *  结束盘点\n   */\n  CompletedInventoryVerification(dto: InventoryVerificationOrderMasterDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('InventoryVerificationWebApi', 'CompletedInventoryVerification', dto);\n  }\n\n  /**\n   *  获取盘盈盘亏出入库单\n   */\n  GetInOutOrderDatasOfInventoryVerifica(queryDto: InOutOrderMasterQueryDto): Observable<DataResultT<InOutOrderMasterDto[]>> {\n    return this.apiUrls.PostRhpWms('InventoryVerificationWebApi', 'GetInOutOrderDatasOfInventoryVerifica', queryDto);\n  }\n\n  /**\n   *  获取盘盈盘亏出入库单明细\n   */\n  GetInOutOrderDetailDatasOfInventoryVerifica(queryDto: InOutOrderDetailQueryDto): Observable<DataResultT<InOutOrderDetailDto[]>> {\n    return this.apiUrls.PostRhpWms('InventoryVerificationWebApi', 'GetInOutOrderDetailDatasOfInventoryVerifica', queryDto);\n  }\n\n  /**\n   *  获取实际盘点明细\n   */\n  // GetInventoryVerificationResultDetailDatas(\n  //   queryDto: InventoryVerificationResultDetailQueryDto\n  // ): Observable<DataResultT<InventoryVerificationResultDetailDto[]>> {\n  //   return this.apiUrls.PostRhpWms('InventoryVerificationWebApi', 'GetInventoryVerificationResultDetailDatas', queryDto);\n  // }\n\n  /**\n   *  删除实际盘点明细\n   */\n  // RemoveInventoryVerificationOrderResultDatas(\n  //   InventoryVerificationResultDetailDto: InventoryVerificationResultDetailDto[]\n  // ): Observable<OpResult> {\n  //   return this.apiUrls.PostRhpWms(\n  //     'InventoryVerificationWebApi',\n  //     'RemoveInventoryVerificationOrderResultDatas',\n  //     InventoryVerificationResultDetailDto\n  //   );\n  // }\n\n  /**\n   *  创建所有盘盈盘亏出入单\n   */\n  CreateAllInOutOrder(dto: InventoryVerificationOrderMasterDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('InventoryVerificationWebApi', 'CreateAllInOutOrder', dto);\n  }\n\n  /**\n   *  完成整个盘点单\n   */\n  CompleteInventoryVerificationOrder(dto: InventoryVerificationOrderMasterDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('InventoryVerificationWebApi', 'CompleteInventoryVerificationOrder', dto);\n  }\n\n  /**\n   *  添加盘点明细\n   */\n  StoreInventoryVerificationDatas(dtos: InventoryVerificationOrderDetailDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('InventoryVerificationWebApi', 'StoreInventoryVerificationDatas', dtos);\n  }\n\n  /**\n   *  盘点\n   */\n  UpdateInventoryVerificationDatas(dtos: InventoryVerificationOrderDetailDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('InventoryVerificationWebApi', 'UpdateInventoryVerificationDatas', dtos);\n  }\n\n  /**\n   *  创建复盘任务单\n   */\n  CreateRepeatInventoryVerificationOrder(dtos: InventoryVerificationOrderDetailDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('InventoryVerificationWebApi', 'CreateRepeatInventoryVerificationOrder', dtos);\n  }\n\n  /**\n   *  创建盘盈单\n   */\n  CreateInventoryProfitOrder(dto: InventoryVerificationOrderMasterDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('InventoryVerificationWebApi', 'CreateInventoryProfitOrder', dto);\n  }\n\n  /**\n   *  创建盘亏单\n   */\n  CreateInventoryLossesOrder(dto: InventoryVerificationOrderMasterDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('InventoryVerificationWebApi', 'CreateInventoryLossesOrder', dto);\n  }\n\n  /**\n   *  获取盘盈盘亏单明细\n   */\n  GetInventoryVerificationResultDatas(\n    queryDto: InventoryVerificationResultQueryDto\n  ): Observable<DataResultT<InventoryVerificationResultDto[]>> {\n    return this.apiUrls.PostRhpWms('InventoryVerificationWebApi', 'GetInventoryVerificationResultDatas', queryDto);\n  }\n\n  /**\n   *  提交盘点差异\n   */\n  SubmitInventoryVerificationDifferent(dto: InventoryVerificationOrderMasterDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('InventoryVerificationWebApi', 'SubmitInventoryVerificationDifferent', dto);\n  }\n\n  /**\n   *  完成整个盘点单\n   */\n  ClosedInventoryVerificationOrder(dto: InventoryVerificationOrderMasterDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('InventoryVerificationWebApi', 'ClosedInventoryVerificationOrder', dto);\n  }\n\n  /**\n   *  数据导入\n   */\n  DataImport(dto: DataImportDto): Observable<DataResultT<Object[]>> {\n    return this.apiUrls.PostRhpWms('DataImportExportApi', 'DataImport', dto);\n  }\n\n  /**\n   *  获取仓库信息\n   */\n  GetWarehouseConfigDatas(queryDto: WarehouseConfigQueryDto): Observable<DataResultT<WarehouseConfigDto[]>> {\n    return this.apiUrls.PostRhpWms('LabelDataSourceApi', 'GetWarehouseConfigDatas', queryDto);\n  }\n\n  /**\n   *  获取盘点\n   */\n  GetInventoryVerificationOrderMasterdViewDatas(\n    queryDto: View_InventoryVerificationOrderMasterQueryDto\n  ): Observable<DataResultT<View_InventoryVerificationOrderMasterDto[]>> {\n    return this.apiUrls.PostRhpWms('InventoryVerificationWebApi', 'GetInventoryVerificationOrderMasterdViewDatas', queryDto);\n  }\n}\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport {\n  DataResultT,\n  RhSelectableDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto,\n  RhTableButtonInfoDto,\n  RhBaseDto,\n  OpMode,\n  RhSafeAny,\n  RhLoginedUserDto\n} from 'rh-base/model';\nimport { ObjectHelper, MsgHelper, RhStorageService } from 'rh-base/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { RhInventoryCountService } from '../inventory-count.service';\nimport { differenceInCalendarDays } from 'date-fns';\nimport { InventoryVerificationSchemeDto } from './../../inventory-manage-model';\n\n@Component({\n  selector: 'rh-inventory-verification-scheme',\n  templateUrl: './inventory-verification-scheme.component.html',\n  styleUrls: ['./inventory-verification-scheme.component.less']\n})\nexport class RhInventoryVerificationSchemeComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  defaultFieldDataset = [];\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto)),\n    new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) => this.openAuditModal(data as RhBaseDto)),\n    new RhTableButtonInfoDto('complete', '完成', 'default', false, 'check', false, null, (data) =>\n      this.completeInventoryVerificationScheme(data as RhBaseDto)\n    )\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '新建', 'primary', false, 'file', false, null, () => this.openEditTab(), true)\n  ];\n\n  extraButtonDataset: RhTableButtonInfoDto[] = [];\n\n  currentUser: RhLoginedUserDto;\n  startDate: Date;\n  endDate: Date;\n  auditDto = {};\n  isShowAuditModal = false;\n  // 年份选择下拉框\n  yearOffset = 10;\n  yearTotal = 20;\n  yearsQuery: Array<{ label: string; value: number }> = [];\n  yearsEdit: Array<{ label: string; value: number }> = [];\n  activeYear = new Date(Date.now()).getFullYear();\n\n  beforeSubmit = (data: RhBaseDto) => {\n    data.CreatorCode = this.currentUser.UserName;\n    data.CreatorName = this.currentUser.DisplayName;\n    return true;\n  };\n\n  beforeSubmitAudit = (data: RhBaseDto) => {\n    data.AuditorCode = this.currentUser.DisplayName;\n    data.AuditorName = this.currentUser.UserName;\n\n    return true;\n  };\n\n  disabledStartDate = (current: Date) => {\n    if (this.endDate) {\n      return differenceInCalendarDays(current, this.endDate) > 0;\n    } else {\n      return false;\n    }\n  };\n\n  disabledEndDate = (current: Date) => {\n    if (this.startDate) {\n      return differenceInCalendarDays(current, this.startDate) < 0;\n    } else {\n      return false;\n    }\n  };\n\n  constructor(public storage: RhStorageService, private operator: RhInventoryCountService) {\n    //\n  }\n\n  ngOnInit(): void {\n    this.initPageConfig();\n  }\n\n  initPageConfig() {\n    // 获取当前用户信息\n    this.currentUser = this.storage.getUserSession().User;\n    // 获取年份列表\n    this.setUpYears('query');\n    // 设置表格按钮可见性\n    this.editButtonDataset[0].visible = \"data => data.OrderStatus === 'Created'\";\n    this.editButtonDataset[1].visible = \"data => data.OrderStatus === 'Created'\";\n    this.editButtonDataset[2].visible = \"data => data.OrderStatus === 'AuditPass'\";\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    //\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.startDate = new Date(this.editDto.StartDate);\n      this.endDate = new Date(this.editDto.EndDate);\n      this.setUpYears('edit', this.editDto.Year);\n    } else {\n      this.editDto = {};\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.startDate = this.endDate = null;\n      this.editDto.Year = this.activeYear;\n      this.setUpYears('edit');\n    }\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.selectedIndex = 0;\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onStoreData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n      MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n      if (this.editDto.OpSign === OpMode.OpEdit) {\n        this.selectedIndex = 0;\n      }\n      this.editDto = ObjectHelper.createRhBaseDto();\n      this.getDatas();\n    } else {\n      MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n    }\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  openAuditModal(data: RhBaseDto) {\n    this.auditDto = { SchemeCode: data.SchemeCode };\n    this.isShowAuditModal = true;\n  }\n\n  closeAuditModal() {\n    this.auditDto = {};\n    this.isShowAuditModal = false;\n  }\n\n  /** 审核接口返回 */\n  onAuditData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('审核方案成功！');\n      this.closeAuditModal();\n      this.getDatas();\n    } else {\n      MsgHelper.ShowWarningModal(`审核方案失败！${result.Message}`);\n    }\n  }\n\n  /** 完成盘点方案 */\n  completeInventoryVerificationScheme(data: RhBaseDto) {\n    this.operator.CompleteInventoryVerificationScheme(data as InventoryVerificationSchemeDto).subscribe((result) => {\n      if (result.Success) {\n        MsgHelper.ShowSuccessMessage('完成方案成功！');\n        this.getDatas();\n      } else {\n        MsgHelper.ShowWarningModal(`完成方案失败！${result.Message}`);\n      }\n    });\n  }\n\n  private setUpYears(type: 'query' | 'edit', year?: number): void {\n    const start = (year || this.activeYear) - this.yearOffset;\n    const end = start + this.yearTotal;\n    if (type === 'query') {\n      this.yearsQuery = [];\n      for (let i = start; i < end; i++) {\n        this.yearsQuery.push({ label: `${i}`, value: i });\n      }\n    } else {\n      this.yearsEdit = [];\n      for (let i = start; i < end; i++) {\n        this.yearsEdit.push({ label: `${i}`, value: i });\n      }\n    }\n  }\n\n  updateYear(year: number): void {\n    this.setUpYears(this.selectedIndex === 0 ? 'query' : 'edit', year);\n  }\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form #queryForm rhName=\"queryForm\" rhType=\"query\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\" (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\">\n                    <ng-template rhTemplate=\"Year\" let-formGroup let-setting=\"setting\">\n                      <nz-form-item>\n                        <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                          <nz-select [formControl]=\"formGroup.get('Year')\" [nzPlaceHolder]=\"setting.placeholder\"\n                            (ngModelChange)=\"updateYear($event)\" nzAllowClear>\n                            <nz-option *ngFor=\"let year of yearsQuery\" [nzLabel]=\"year.label\" [nzValue]=\"year.value\">\n                            </nz-option>\n                          </nz-select>\n                        </nz-form-control>\n                      </nz-form-item>\n                    </ng-template>\n                  </rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table [rhTableData]=\"dataresult\" [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\" (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\" [rhTitleButtonDataset]=\"titleButtonDataset\"\n                [rhExtraButtonDataset]=\"extraButtonDataset\"></rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>数据{{ editDto?.OpSign === 1 ? '新增' : '编辑' }}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\"\n            (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <rh-dynamic-form #editForm rhName=\"editForm\" rhType=\"edit\" rhLayout=\"horizontal\" [rhValue]=\"editDto\"\n          [rhBeforeSubmit]=\"beforeSubmit\" (rhInterfaceDataChange)=\"onStoreData($event)\" (rhClose)=\"closeEditTab()\">\n          <ng-template rhTemplate=\"Year\" let-formGroup let-setting=\"setting\">\n            <nz-form-item>\n              <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }}\n              </nz-form-label>\n              <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                <nz-select [formControl]=\"formGroup.get('Year')\" [nzPlaceHolder]=\"setting.placeholder\"\n                  (ngModelChange)=\"updateYear($event)\" nzAllowClear>\n                  <nz-option *ngFor=\"let year of yearsEdit\" [nzLabel]=\"year.label\" [nzValue]=\"year.value\"></nz-option>\n                </nz-select>\n              </nz-form-control>\n            </nz-form-item>\n          </ng-template>\n          <ng-template rhTemplate=\"StartDate\" let-formGroup let-setting=\"setting\">\n            <nz-form-item>\n              <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }}\n              </nz-form-label>\n              <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                <nz-date-picker style=\"width: 100%\" [nzDisabledDate]=\"disabledStartDate\"\n                  [nzPlaceHolder]=\"setting.placeholder\" [formControl]=\"formGroup.get('StartDate')\"\n                  (ngModelChange)=\"startDate = $event\"></nz-date-picker>\n              </nz-form-control>\n            </nz-form-item>\n          </ng-template>\n          <ng-template rhTemplate=\"EndDate\" let-formGroup let-setting=\"setting\">\n            <nz-form-item>\n              <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }}\n              </nz-form-label>\n              <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n                <nz-date-picker style=\"width: 100%\" [nzDisabledDate]=\"disabledEndDate\"\n                  [nzPlaceHolder]=\"setting.placeholder\" [formControl]=\"formGroup.get('EndDate')\"\n                  (ngModelChange)=\"endDate = $event\"></nz-date-picker>\n              </nz-form-control>\n            </nz-form-item>\n          </ng-template>\n        </rh-dynamic-form>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<nz-modal nzTitle=\"方案审核\" [nzVisible]=\"isShowAuditModal\" [nzWidth]=\"'60vw'\" [nzOkText]=\"null\" [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeAuditModal()\">\n  <rh-dynamic-form *nzModalContent #auditForm rhName=\"auditForm\" rhType=\"edit\" rhLayout=\"horizontal\"\n    [rhValue]=\"auditDto\" [rhBeforeSubmit]=\"beforeSubmitAudit\" (rhInterfaceDataChange)=\"onAuditData($event)\"\n    (rhClose)=\"closeAuditModal()\">\n    <ng-template rhTemplate=\"IsPass\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }}\n        </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-radio-group [formControl]=\"formgroup.get('IsPass')\">\n            <label nz-radio [nzValue]=\"true\">是</label>\n            <label nz-radio [nzValue]=\"false\">否</label>\n          </nz-radio-group>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { CustomizeBaseTableComponent, DynamicFormComponent } from 'rh-base/shared';\nimport {\n  RhDynamicInterfaceDto,\n  RhSelectableDto,\n  RhBaseDto,\n  RhTableQueryOptionDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto\n} from 'rh-base/model';\n\n@Component({\n  selector: 'rh-inventory-verification-scheme-table',\n  templateUrl: './inventory-verification-scheme-table.component.html',\n  styleUrls: ['./inventory-verification-scheme-table.component.less']\n})\nexport class InventoryVerificationSchemeTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n\n  @Input() rhSingleMode = true;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() rhDisabled: boolean;\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto>();\n\n  rhName = 'InventoryVerificationScheme';\n\n  @Input() defaultQueryDto: RhBaseDto = {};\n  @Input() rhVisibleSetting = {};\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n  defaultInterfaceInfo: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'InventoryVerificationWebApi',\n    interfaceName: 'GetInventoryVerificationSchemeDatas'\n  };\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [];\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  // 年份选择下拉框\n  yearOffset = 10;\n  yearTotal = 20;\n  years: Array<{ label: string; value: number }> = [];\n  activeYear = new Date(Date.now()).getFullYear();\n\n  constructor() {\n    //\n    super();\n  }\n\n  ngOnInit(): void {\n    this.setUpYears();\n    this.rhInterfaceInfo = this.rhInterfaceInfo || this.defaultInterfaceInfo;\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  private setUpYears(year?: number): void {\n    const start = (year || this.activeYear) - this.yearOffset;\n    const end = start + this.yearTotal;\n    this.years = [];\n    for (let i = start; i < end; i++) {\n      this.years.push({ label: `${i}`, value: i });\n    }\n  }\n\n  updateYear(year: number): void {\n    this.setUpYears(year);\n  }\n}\n","<!-- 搜索Form区域 -->\n<div class=\"search-area rh-full\">\n  <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n    <ng-template #searchTpl>\n      <rh-dynamic-form #queryForm rhName=\"{{ rhName }}Form\" [rhValue]=\"defaultQueryDto\"\n        (rhInterfaceDataChange)=\"setDatas($event)\" (rhDataloadingChange)=\"dataLoadingChange($event)\"\n        (rhOutParaChange)=\"setInitFieldDataset($event)\" [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n        [(rhFormInterface)]=\"rhInterfaceInfo\">\n        <ng-template rhTemplate=\"Year\" let-formGroup let-setting=\"setting\">\n          <nz-form-item>\n            <nz-form-control [nzSpan]=\"setting.controlSpan\">\n              <nz-select [formControl]=\"formGroup.get('Year')\" [nzPlaceHolder]=\"setting.placeholder\"\n                (ngModelChange)=\"updateYear($event)\" nzAllowClear>\n                <nz-option *ngFor=\"let year of years\" [nzLabel]=\"year.label\" [nzValue]=\"year.value\"></nz-option>\n              </nz-select>\n            </nz-form-control>\n          </nz-form-item>\n        </ng-template>\n      </rh-dynamic-form>\n    </ng-template>\n  </nz-alert>\n</div>\n<!-- 搜索结果Table展示区域 -->\n<div class=\"table-area\">\n  <rh-dynamic-table rhName=\"{{ rhName }}Table\" [rhTableData]=\"dataresult\" [rhTableDataloading]=\"dataLoading\"\n    [rhDefaultFieldDataset]=\"defaultTableFieldDataset\" (rhRefresh)=\"refreshDatas($event)\"\n    (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\" [rhSingleMode]=\"rhSingleMode\"\n    [rhVisibleSetting]=\"rhVisibleSetting\"></rh-dynamic-table>\n</div>","import { Component, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, SimpleChanges } from '@angular/core';\nimport { NzSizeLDSType } from 'ng-zorro-antd/core/types';\nimport { provideValueAccessor, RhRouteHelper, MsgHelper } from 'rh-base/core';\nimport {\n  RhSelectableDto,\n  RhDynamicFormFieldDto,\n  RhSafeAny,\n  DataResultT,\n  RhDynamicInterfaceDto,\n  RhDynamicCustomizeControlConfigDto,\n  RhRelatedFieldDataDto,\n  RhCustomizeEventSettingDto,\n  RhDisplayMode\n} from 'rh-base/model';\nimport { CustomizeBaseControlComponent, RhBaseDynamicService } from 'rh-base/shared';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { InventoryVerificationSchemeTableComponent } from './inventory-verification-scheme-table/inventory-verification-scheme-table.component';\n\n@Component({\n  selector: 'rh-inventory-verification-scheme-selector',\n  templateUrl: './inventory-verification-scheme-selector.component.html',\n  styleUrls: ['./inventory-verification-scheme-selector.component.less'],\n  providers: [provideValueAccessor(InventoryVerificationSchemeSelectorComponent)]\n})\nexport class InventoryVerificationSchemeSelectorComponent extends CustomizeBaseControlComponent {\n  rhRelatedFieldData = null;\n  @ViewChild(InventoryVerificationSchemeTableComponent) tableComp: InventoryVerificationSchemeTableComponent;\n  @Input() rhDynamicKey = 'InventoryVerificationScheme';\n  @Input() rhTitle = '选择盘点方案';\n  @Input() declare rhSize: NzSizeLDSType;\n  @Input() declare rhDisplayMode: RhDisplayMode;\n  @Input() rhDefaultQueryDto = {};\n  @Input() rhVisibleSetting = {};\n\n  iconSetting = 'search';\n  @Input() rhSingleMode = true;\n\n  formKeyFieldName = 'SchemeCode';\n  formTextFieldName = 'SchemeName';\n\n  modelKeyFieldName = 'SchemeCode';\n  modelTextFieldName = 'SchemeName';\n\n  // // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto>();\n  /** 对应table选中的数据 */\n  rhModel: RhSelectableDto = {};\n\n  /** 动态form字段配置数据 */\n  @Input() rhFieldData: RhDynamicFormFieldDto;\n  /** 整个form的数据 */\n  @Input() declare rhData: RhSafeAny;\n\n  /** 表格Loading */\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  /** selector input上展示的数据，一般为中文 */\n  //displayName: string;\n\n  //selectedData: RhSelectableDto;\n\n  /** 自定义组件的自定义执行函数 */\n  cb: (data: RhSafeAny, ctx: RhSafeAny) => void;\n\n  /** 该组件关联的form名称 */\n  formName: string;\n\n  url: string;\n\n  /** 设置默认搜索接口 */\n  defaultFormInterface: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'InventoryVerificationWebApi',\n    interfaceName: 'GetInventoryVerificationSchemeDatas'\n  };\n\n  mappedList = [\n    { sourceName: this.modelKeyFieldName, mappedName: this.formKeyFieldName },\n    { sourceName: this.modelTextFieldName, mappedName: this.formTextFieldName }\n    // { sourceName: 'VerificationType', mappedName: 'VerificationType' },\n    // { sourceName: 'WarehouseCode', mappedName: 'WarehouseCode' },\n    // { sourceName: 'WarehouseName', mappedName: 'WarehouseName' },\n    // { sourceName: 'EndDate', mappedName: 'EndDate' },\n    // { sourceName: 'StartDate', mappedName: 'StartDate' }\n  ];\n\n  constructor(\n    public fb: UntypedFormBuilder,\n    public cdr: ChangeDetectorRef,\n    public router: Router,\n    public dynamicSer: RhBaseDynamicService\n  ) {\n    super(cdr, dynamicSer);\n    this.url = RhRouteHelper.getRealRoute(this.router.url);\n  }\n\n  ngOnInit(): void {\n    this.rhPlaceholder = this.rhFieldData.placeholder as any;\n    this.formName = this.rhFieldData.relatedComponentName;\n    this.setCbValue();\n  }\n\n  // 自定义表单项配置\n  ngOnChanges(changes: SimpleChanges) {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue && rhData.currentValue[this.formKeyFieldName] === null) {\n      this.resetControlValue();\n    } else {\n      this.rhModel = {};\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    if (data?.length === 1 && this.rhSingleMode) {\n      this.selectedData = data[0];\n    } else {\n      this.selectedData = data;\n    }\n  }\n\n  setDatas(result: DataResultT<RhSelectableDto[]>) {\n    if (result && result.Success) {\n      this.dataresult = result;\n    } else {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n    }\n  }\n\n  /** 根据填入的code值，获取对应的完整数据，回填到输入框 */\n  getTargetDatas(code: string) {\n    // 显示代码 不需要\n    // if (!this.defaultFormInterface) {\n    //   return;\n    // }\n    // const queryDto = {};\n    // queryDto[this.modelKeyFieldName] = `$${code}`;\n    // this.getTargetDatasVisHttpHandler(this.defaultFormInterface, queryDto, this.rhFieldData);\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData) ? this.getDisplayNameByMode(this.rhFieldData).toString() : null;\n  }\n\n  //#region customize selector interface区域\n  confirmSelect() {\n    this.rhModel = this.selectedData;\n    this.rhModelChange.emit(this.rhModel);\n    if (this.rhSingleMode) {\n      this.value = this.rhModel[this.modelKeyFieldName];\n      this.displayName = this.rhModel[this.modelTextFieldName];\n      this.displayName = this.getDisplayNameByMode(this.rhFieldData) ? this.getDisplayNameByMode(this.rhFieldData).toString() : null;\n    } else {\n      this.value = (this.rhModel as RhSafeAny[]).map((ele) => ele[this.modelKeyFieldName]) as RhSafeAny;\n      // 多选的时候只会显示多个代码\n      this.displayName = (this.value as RhSafeAny).toString();\n    }\n    // 执行对应控件定义的代码\n    if (this.rhData && this.rhModel && this.cb) {\n      this.cb(this.rhData, this.rhModel);\n    }\n    this.setFormDataViaRelatedDatas();\n    // 执行form的相关字段赋值操作\n    this.triggerRelatedForm();\n    this.closeDataModal();\n  }\n\n  resetControlValue() {\n    this.displayName = null;\n    // 重置form对应数据对象\n    this.rhData[this.formKeyFieldName] = null;\n    this.rhData[this.formTextFieldName] = null;\n    // 清空数据中的字段的值\n    this.mappedList.forEach((ele) => {\n      this.rhData[ele.mappedName] = null;\n    });\n    this.rhModel = null;\n  }\n\n  setCbValue() {\n    const cbString = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.cb;\n    if (cbString) {\n      const fn = Function(`return ${cbString}`);\n      if (fn) {\n        this.cb = fn();\n      } else {\n        this.cb = this.setFormData;\n      }\n    } else {\n      // 当没有配置回调函数时，执行默认的回调函数\n      this.cb = this.setFormData;\n    }\n  }\n\n  /** 设置form对应的数据对象的值\n   * @param data form对应的数据对象\n   * @params 设置或者对应table选择的数据\n   */\n  setFormData(data: RhSafeAny, ctx: RhSelectableDto) {\n    data[this.formKeyFieldName] = ctx[this.modelKeyFieldName];\n    data[this.formTextFieldName] = ctx[this.modelTextFieldName];\n  }\n\n  setFormDataViaRelatedDatas() {\n    let relatedDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedModelDatas;\n    if (!relatedDatas?.length) {\n      relatedDatas = this.mappedList;\n    }\n    if (relatedDatas?.length) {\n      relatedDatas.forEach((ele) => {\n        this.rhData[ele.mappedName] = this.rhModel[ele.sourceName];\n      });\n    }\n  }\n\n  triggerRelatedForm() {\n    const tempDatas = (this.rhFieldData.config as RhDynamicCustomizeControlConfigDto)?.relatedFieldDatas;\n    const relatedDatas: RhRelatedFieldDataDto[] = tempDatas && tempDatas.length ? tempDatas : this.mappedList;\n    const data: RhCustomizeEventSettingDto = {\n      id: `${this.url}_${this.formName}`,\n      eventType: null,\n      options: null,\n      value: this.rhModel,\n      relatedFieldDatas: relatedDatas\n    };\n    this.dynamicSer.formCustomizeEventTrigger(data);\n  }\n  //#endregion customize selector interface区域结束\n}\n","<nz-input-group [nzSize]=\"rhSize\" [nzSuffix]=\"suffixIconSearch\" [nzAddOnAfter]=\"addOnAfter\">\n  <input type=\"text\" nz-input [ngModel]=\"displayName\" [placeholder]=\"rhPlaceholder\" readonly=\"readonly\" />\n</nz-input-group>\n<ng-template #suffixIconSearch>\n  <a *ngIf=\"displayName && !rhDisabled\" class=\"link-suffix\" (click)=\"clearInputInfo()\">\n    <i nz-icon nzType=\"close-circle\"></i>\n  </a>\n</ng-template>\n\n<ng-template #addOnAfter>\n  <button nz-button nzType=\"link\" type=\"button\" nzSize=\"small\">\n    <a (click)=\"openDataModal($event)\">\n      <i nz-icon [nzType]=\"iconSetting\"></i>\n    </a>\n  </button>\n</ng-template>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"rhTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedData\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-inventory-verification-scheme-table\n        [rhModel]=\"rhModel\"\n        (rhModelChange)=\"onSelectModal($event)\"\n        [rhInterfaceInfo]=\"defaultFormInterface\"\n        [rhSingleMode]=\"rhSingleMode\"\n        [defaultQueryDto]=\"rhDefaultQueryDto\"\n        [rhVisibleSetting]=\"rhVisibleSetting\"\n      ></rh-inventory-verification-scheme-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { Component, OnInit, ViewChild, Output, Input, EventEmitter, SimpleChanges } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport {\n  DataResultT,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto\n} from 'rh-base/model';\nimport { MsgHelper } from 'rh-base/core';\nimport { RhInventoryManageService } from './../../../inventory-manage.service';\n\n@Component({\n  selector: 'rh-inventory-verification-data-source',\n  templateUrl: './inventory-verification-data-source.component.html',\n  styleUrls: ['./inventory-verification-data-source.component.less']\n})\nexport class InventoryVerificationDataSourceComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  @Input() rhSelectedDataResult: DataResultT<RhSelectableDto[]>;\n  @Input() rhIsShowReturnBtn = false;\n  @Input() rhCheckSourceDatasQueryDto = {};\n  @Output() rhSelectedDatasChange = new EventEmitter<RhSelectableDto[]>();\n  @Output() rhReturn = new EventEmitter();\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  editButtonDataset: RhTableButtonInfoDto[] = [];\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto(\n      'new',\n      '生成盘点明细',\n      'primary',\n      false,\n      'file',\n      false,\n      null,\n      (datas) => this.confirmSelect(datas as RhSelectableDto[]),\n      false\n    )\n  ];\n  extraButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('return', '返回', 'default', false, 'rollback', false, null, () => this.return(), true)\n  ];\n\n  queryFormName = 'checkSourceDatasQueryForm';\n  tableName = 'checkSourceDatasTable';\n  visibleSetting = {};\n  checkFields: string[] = [];\n  selectedDatas: RhSelectableDto[] = [];\n  /** 已经生成的盘点明细 */\n  selectedCheckDatas: RhSelectableDto[] = [];\n  /** 如果存在已生成的盘点明细的物料，则无法全选 */\n  allCheckMode = true;\n\n  get isEnableLotNum() {\n    return this.inventoryManageSer.isEnableLotNum;\n  }\n\n  constructor(private inventoryManageSer: RhInventoryManageService) {}\n\n  ngOnInit(): void {\n    this.initConfig();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhSelectedDataResult, rhIsShowReturnBtn } = changes;\n    if (rhSelectedDataResult && rhSelectedDataResult.currentValue) {\n      this.selectedCheckDatas = this.rhSelectedDataResult.Attach;\n    }\n    if (rhIsShowReturnBtn) {\n      this.titleButtonDataset[0].displayName = this.rhIsShowReturnBtn ? '添加盘点明细' : '生成盘点明细';\n    }\n  }\n\n  initConfig() {\n    if (this.isEnableLotNum) {\n      this.queryFormName = 'checkSourceDatasLQueryForm';\n      this.tableName = 'checkSourceDatasLTable';\n    } else {\n      this.queryFormName = 'checkSourceDatasQueryForm';\n      this.tableName = 'checkSourceDatasTable';\n    }\n    this.visibleSetting = this.inventoryManageSer.initVisibleSetting();\n    this.checkFields = this.inventoryManageSer.initCheckFieldList();\n  }\n\n  confirmSelect(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas || [];\n    this.rhSelectedDatasChange.emit(this.selectedDatas);\n  }\n\n  return() {\n    this.rhReturn.emit();\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    } else {\n      if (dataset.httpRequestPara.IsHideZero) {\n        this.dataresult.Attach = dataset.Attach.filter((f) => f.InventoryQty != 0);\n        this.dataresult.TotalCount = this.dataresult.Attach.length;\n      }\n      this.selectedDatas = [];\n      this.allCheckMode = true;\n      if (this.selectedCheckDatas.length) {\n        // dataset.Attach.forEach((data, index) => {\n        //   if (\n        //     this.selectedCheckDatas.some((checkdata) => {\n        //       return this.checkFields.every((field) => {\n        //         if (!data[field] && !checkdata[field]) return true;\n        //         else return data[field] === checkdata[field];\n        //       });\n        //     })\n        //   ) {\n        //     this.dataresult.Attach[index].disable = true;\n        //     this.allCheckMode = false;\n        //   }\n        // });\n        this.dataresult.Attach.forEach((ele, index) => {\n          if (this.selectedCheckDatas.some((f) => f.PrimaryKey == ele.PrimaryKey)) {\n            this.dataresult.Attach.splice(index, 1);\n          }\n        });\n        this.dataresult.TotalCount = this.dataresult.Attach.length;\n      }\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n}\n","<div class=\"rh-full\">\n  <d-splitter orientation=\"vertical\">\n    <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n      <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n        <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n          <ng-template #nzAlertTemplate>\n            <rh-dynamic-form\n              #queryForm\n              [rhName]=\"queryFormName\"\n              rhType=\"query\"\n              [rhValue]=\"rhCheckSourceDatasQueryDto\"\n              [rhVisibleSetting]=\"visibleSetting\"\n              (rhInterfaceDataChange)=\"setDatas($event)\"\n              (rhDataloadingChange)=\"dataLoadingChange($event)\"\n              (rhOutParaChange)=\"setInitFieldDataset($event)\"\n            >\n              <ng-template\n                rhTemplate=\"WarehouseCode\"\n                let-formgroup\n                let-setting=\"setting\"\n                let-hostSetting=\"hostSetting\"\n                let-formData=\"formData\"\n              >\n                <nz-form-item>\n                  <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                    <rh-form-field\n                      [formControl]=\"formgroup.get('WarehouseCode')\"\n                      rhFormType=\"edit\"\n                      [rhFieldData]=\"setting\"\n                      [rhSize]=\"hostSetting?.rhSize\"\n                      [rhData]=\"formData\"\n                    ></rh-form-field>\n                  </nz-form-control>\n                </nz-form-item>\n              </ng-template>\n              <ng-template\n                rhTemplate=\"StorageLocationCode\"\n                let-formgroup\n                let-setting=\"setting\"\n                let-hostSetting=\"hostSetting\"\n                let-formData=\"formData\"\n              >\n                <nz-form-item>\n                  <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                    <rh-storage-location-selector\n                      [formControl]=\"formgroup.get('StorageLocationCode')\"\n                      [rhData]=\"formData\"\n                      [rhFieldData]=\"setting\"\n                      [rhSize]=\"hostSetting?.rhSize\"\n                      [rhDefaultQueryDto]=\"rhCheckSourceDatasQueryDto\"\n                    ></rh-storage-location-selector>\n                  </nz-form-control>\n                </nz-form-item>\n              </ng-template>\n            </rh-dynamic-form>\n          </ng-template>\n        </nz-alert>\n      </div>\n    </d-splitter-pane>\n    <d-splitter-pane>\n      <div class=\"rh-full\">\n        <rh-dynamic-table\n          [rhName]=\"tableName\"\n          [rhTableData]=\"dataresult\"\n          [rhTableDataloading]=\"dataLoading\"\n          [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n          [rhEditButtonDataset]=\"editButtonDataset\"\n          [rhTitleButtonDataset]=\"titleButtonDataset\"\n          [rhExtraButtonDataset]=\"rhIsShowReturnBtn ? extraButtonDataset : []\"\n          [rhVisibleSetting]=\"visibleSetting\"\n          [rhAllCheckMode]=\"allCheckMode\"\n        ></rh-dynamic-table>\n      </div>\n    </d-splitter-pane>\n  </d-splitter>\n</div>\n","import { RhInventoryCountService } from './../../inventory-count.service';\nimport { Component, OnInit, Input, Output, EventEmitter, SimpleChanges, ViewChild } from '@angular/core';\nimport {\n  RhBaseDto,\n  DataResultT,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  OpMode,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto\n} from 'rh-base/model';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport { InventoryVerificationOrderDetailDto } from './../../../inventory-manage-model';\nimport { RhInventoryManageService } from './../../../inventory-manage.service';\nimport { DynamicFormComponent } from 'rh-base/shared';\n\n@Component({\n  selector: 'rh-inventory-verification-order-details',\n  templateUrl: './inventory-verification-order-details.component.html',\n  styleUrls: ['./inventory-verification-order-details.component.less']\n})\nexport class InventoryVerificationOrderDetailsComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  @Input() rhOrder: RhBaseDto = {};\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter();\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto[]>();\n\n  // 盘点明细\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  editButtonDataset: RhTableButtonInfoDto[] = [];\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '新增', 'primary', false, 'file', false, null, () => this.openDataSourceModal(), true),\n    new RhTableButtonInfoDto(\n      'delete',\n      '删除',\n      'primary',true,\n      'delete',\n      false,\n      null,\n      (datas) => this.removeDatas(datas as RhBaseDto[]),\n      false,\n      false,\n      'red'\n    )\n  ];\n\n  isShowDataSourceModal = false;\n  visibleSetting = {};\n  checkDetailDatasQueryDto = {};\n  checkSourceDatasQueryDto = {};\n  defaultQueryDtoStorageLocation = {};\n\n  get isCreated() {\n    return this.rhOrder?.OrderStatus === 'Created';\n  }\n\n  constructor(private operator: RhInventoryCountService, private inventoryManageSer: RhInventoryManageService) {}\n\n  ngOnInit(): void {\n    this.initPageConfig();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhOrder } = changes;\n    if (rhOrder && rhOrder.currentValue && rhOrder.currentValue.OrderCode) {\n      this.checkDetailDatasQueryDto = {\n        OrderCode: this.rhOrder.OrderCode,\n        WarehouseCodes: this.rhOrder.WarehouseCode.split(',')\n      };\n      this.checkSourceDatasQueryDto = { WarehouseCodes: this.rhOrder.WarehouseCode.split(',') };\n      this.defaultQueryDtoStorageLocation = { WarehouseCode: this.rhOrder.WarehouseCode };\n    }\n  }\n\n  setDatas(result: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = result;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  openDataSourceModal() {\n    this.isShowDataSourceModal = true;\n  }\n\n  closeDataSourceModal() {\n    this.isShowDataSourceModal = false;\n  }\n\n  getDataSource(datas: RhSelectableDto[]) {\n    const dataset = datas.map((f) => {\n      const temp = InventoryVerificationOrderDetailDto.create();\n      ObjectHelper.MapT(f, temp, true, false);\n      temp.OrderCode = this.rhOrder.OrderCode;\n      temp.SchemeCode = this.rhOrder.SchemeCode;\n      temp.SchemeName = this.rhOrder.SchemeName;\n      temp.AvailableQty = null;\n      // 库存数量前端赋值\n      temp.PrimaryKey = f.PrimaryKey;\n      temp.InventoryQty = f.InventoryQty;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    this.storeDatas(dataset, () => {\n      this.closeDataSourceModal();\n      this.rhOrder.OpSign = OpMode.OpEdit;\n    });\n  }\n\n  initPageConfig() {\n    this.initVisibleSetting();\n  }\n\n  initVisibleSetting() {\n    this.visibleSetting = {};\n    Object.assign(this.visibleSetting, this.inventoryManageSer.initVisibleSetting());\n  }\n\n  removeDatas(datas: RhBaseDto[]) {\n    MsgHelper.ShowDeleteConfirm('删除后数据无法恢复，是否确定？', () => {\n      this.operator.RemoveInventoryVerificationOrderDetailDatas(datas as InventoryVerificationOrderDetailDto[]).subscribe((result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除盘点明细成功！');\n          if (!this.isCreated) this.rhDetailsUpdate.emit();\n          else this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`删除盘点明细失败！${result.Message}`);\n        }\n      });\n    });\n  }\n\n  storeDatas(datas: RhBaseDto[], cb?: () => void) {\n    this.operator.StoreInventoryVerificationOrderDetailDatas(datas as InventoryVerificationOrderDetailDto[]).subscribe((result) => {\n      if (result.Success) {\n        MsgHelper.ShowSuccessMessage('存储盘点明细成功！');\n        if (!this.isCreated) this.rhDetailsUpdate.emit();\n        else this.getDatas();\n        if (cb) {\n          cb();\n        }\n      } else {\n        MsgHelper.ShowWarningMessage(`存储盘点明细失败！${result.Message}`);\n      }\n    });\n  }\n}\n","<ng-container *ngIf=\"rhOrder?.OpSign === 2 || rhShowDetail; else detailDataSourceTpl\">\n  <nz-card nzTitle=\"盘点明细\">\n    <div class=\"rh-full\">\n      <d-splitter orientation=\"vertical\">\n        <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n          <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n            <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n              <ng-template #nzAlertTemplate>\n                <rh-dynamic-form\n                  #queryForm\n                  rhName=\"checkDetailDatasQueryForm\"\n                  rhType=\"query\"\n                  [rhValue]=\"checkDetailDatasQueryDto\"\n                  [rhVisibleSetting]=\"visibleSetting\"\n                  (rhInterfaceDataChange)=\"setDatas($event)\"\n                  (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                  (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                >\n                  <ng-template\n                    rhTemplate=\"WarehouseCode\"\n                    let-formgroup\n                    let-setting=\"setting\"\n                    let-hostSetting=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                        <rh-form-field\n                          [formControl]=\"formgroup.get('WarehouseCode')\"\n                          rhFormType=\"edit\"\n                          [rhFieldData]=\"setting\"\n                          [rhSize]=\"hostSetting?.rhSize\"\n                          [rhData]=\"formData\"\n                          [rhDisabled]=\"true\"\n                        ></rh-form-field>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                  <ng-template\n                    rhTemplate=\"StorageLocationCode\"\n                    let-formgroup\n                    let-setting=\"setting\"\n                    let-hostSetting=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                        <rh-storage-location-selector\n                          [formControl]=\"formgroup.get('StorageLocationCode')\"\n                          [rhData]=\"formData\"\n                          [rhFieldData]=\"setting\"\n                          [rhSize]=\"hostSetting?.rhSize\"\n                          [rhDefaultQueryDto]=\"defaultQueryDtoStorageLocation\"\n                        ></rh-storage-location-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-template>\n            </nz-alert>\n          </div>\n        </d-splitter-pane>\n        <d-splitter-pane>\n          <div class=\"rh-full\">\n            <ng-container *ngIf=\"rhOrder?.OpSign === 2; else readOnlyTpl\">\n              <rh-dynamic-table\n                rhName=\"checkDetailDatasTable\"\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                [rhVisibleSetting]=\"visibleSetting\"\n              ></rh-dynamic-table>\n            </ng-container>\n            <ng-template #readOnlyTpl>\n              <rh-dynamic-table\n                rhName=\"checkDetailDatasTableReadOnly\"\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"[]\"\n                [rhVisibleSetting]=\"visibleSetting\"\n              ></rh-dynamic-table>\n            </ng-template>\n          </div>\n        </d-splitter-pane>\n      </d-splitter>\n    </div>\n  </nz-card>\n</ng-container>\n<ng-template #detailDataSourceTpl>\n  <nz-card nzTitle=\"库存明细\">\n    <rh-inventory-verification-data-source\n      [rhSelectedDataResult]=\"dataresult\"\n      [rhCheckSourceDatasQueryDto]=\"checkSourceDatasQueryDto\"\n      (rhSelectedDatasChange)=\"getDataSource($event)\"\n    >\n    </rh-inventory-verification-data-source>\n  </nz-card>\n</ng-template>\n\n<!-- <nz-modal\n  [nzTitle]=\"'库存明细'\"\n  [nzVisible]=\"isShowDataSourceModal\"\n  [nzWidth]=\"'90vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataSourceModal()\"\n>\n<rh-inventory-verification-data-source\n    *ngIf=\"isShowDataSourceModal\"\n    [rhSelectedDataResult]=\"dataresult\"\n    [rhIsShowReturnBtn]=\"true\"\n    [rhCheckSourceDatasQueryDto]=\"checkSourceDatasQueryDto\"\n    (rhSelectedDatasChange)=\"getDataSource($event)\"\n    (rhReturn)=\"closeDataSourceModal()\"\n  ></rh-inventory-verification-data-source>\n</nz-modal> -->\n\n<nz-modal\n  [nzVisible]=\"isShowDataSourceModal\"\n  (nzOnCancel)=\"closeDataSourceModal()\"\n  [nzTitle]=\"'库存明细'\"\n  [nzWidth]=\"'60vw'\"\n  [nzMaskClosable]=\"false\"\n>\n  <rh-inventory-verification-data-source\n    *nzModalContent\n    [rhSelectedDataResult]=\"dataresult\"\n    [rhIsShowReturnBtn]=\"true\"\n    [rhCheckSourceDatasQueryDto]=\"checkSourceDatasQueryDto\"\n    (rhSelectedDatasChange)=\"getDataSource($event)\"\n    (rhReturn)=\"closeDataSourceModal()\"\n  >\n  </rh-inventory-verification-data-source>\n</nz-modal>\n","import { RhInventoryManageService } from './../../../../inventory-manage.service';\nimport { Component, OnInit, ViewChild, Input, SimpleChanges } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { DataResultT, RhSelectableDto, CodeClassModel, RhDynamicTableFieldDto, RhTableQueryOptionDto, RhBaseDto } from 'rh-base/model';\nimport { MsgHelper } from 'rh-base/core';\n\n@Component({\n  selector: 'rh-inventory-verification-snapshoot',\n  templateUrl: './inventory-verification-snapshoot.component.html',\n  styleUrls: ['./inventory-verification-snapshoot.component.less']\n})\nexport class InventoryVerificationSnapshootComponent implements OnInit {\n  @Input() rhData: RhBaseDto;\n\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  defaultFieldDataset = [];\n\n  defaultQueryDto = {};\n  tableVisibleSetting = {};\n  formVisibleSetting = {};\n\n  constructor(private inventoryManageSer: RhInventoryManageService) {\n    //\n  }\n\n  ngOnInit(): void {\n    this.initVisibelSetting();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue) {\n      this.defaultQueryDto = { OrderCode: this.rhData.OrderCode };\n    }\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  initVisibelSetting() {\n    Object.assign(this.formVisibleSetting, this.inventoryManageSer.initVisibleSetting());\n    Object.assign(this.tableVisibleSetting, this.inventoryManageSer.initVisibleSetting());\n  }\n}\n","<div class=\"rh-full\">\n  <d-splitter orientation=\"vertical\">\n    <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n      <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n        <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n          <ng-template #nzAlertTemplate>\n            <rh-dynamic-form\n              #queryForm\n              rhName=\"snapshootQueryForm\"\n              [rhValue]=\"defaultQueryDto\"\n              [rhVisibleSetting]=\"formVisibleSetting\"\n              (rhInterfaceDataChange)=\"setDatas($event)\"\n              (rhDataloadingChange)=\"dataLoadingChange($event)\"\n              (rhOutParaChange)=\"setInitFieldDataset($event)\"\n            ></rh-dynamic-form>\n          </ng-template>\n        </nz-alert>\n      </div>\n    </d-splitter-pane>\n    <d-splitter-pane>\n      <div class=\"rh-full\">\n        <rh-dynamic-table\n          rhName=\"snapshootTable\"\n          [rhTableData]=\"dataresult\"\n          [rhTableDataloading]=\"dataLoading\"\n          [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n          [rhVisibleSetting]=\"tableVisibleSetting\"\n          (rhRefresh)=\"refreshDatas($event)\"\n        ></rh-dynamic-table>\n      </div>\n    </d-splitter-pane>\n  </d-splitter>\n</div>\n","import { UntypedFormGroup, Validators } from '@angular/forms';\nimport { RhInventoryCountService } from './../inventory-count.service';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { DynamicFormComponent, WarehouseConfigDto, WarehouseConfigQueryDto } from 'rh-base/shared';\nimport {\n  RhBaseDto,\n  DataResultT,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  RhLoginedUserDto,\n  OpMode,\n  RhSafeAny,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto\n} from 'rh-base/model';\nimport { RhStorageService, MsgHelper } from 'rh-base/core';\nimport { InventoryVerificationOrderMasterQueryDto, InventoryVerificationSchemeQueryDto } from './../../inventory-manage-model';\nimport { differenceInCalendarDays } from 'date-fns';\n\ntype TabType = 'edit' | 'detail' | 'audit' | 'snapshoot';\n\n@Component({\n  selector: 'rh-inventory-verification-order',\n  templateUrl: './inventory-verification-order.component.html',\n  styleUrls: ['./inventory-verification-order.component.less']\n})\nexport class RhInventoryVerificationOrderComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  addDto: RhBaseDto = {};\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  defaultFieldDataset = [];\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto)),\n    new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) =>\n      this.openDetailTab({ data } as RhBaseDto, 'audit')\n    ),\n    new RhTableButtonInfoDto('snapshoot', '盘点快照', 'default', false, 'eye', false, null, (data) => this.openSnapshootTab(data), true)\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '新建', 'primary', false, 'file', false, null, () => this.openEditModal(), true),\n    new RhTableButtonInfoDto(\n      'delete',\n      '删除',\n      'primary',\n      true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhBaseDto[]),\n      false,\n      false,\n      'red'\n    )\n  ];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryDefaultQueryDto = {};\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isRefreshDesc = true;\n  isShowEditModal = false;\n  auditDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n  startDate: Date;\n  endDate: Date;\n  /** 明细列表 */\n  detailDataset: RhSelectableDto[] = [];\n  warehouseData: WarehouseConfigDto[];\n\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n\n  beforeSubmit = (data: RhBaseDto) => {\n    if (!data.StartDate || !data.EndDate) {\n      data.CreatorCode = this.currentUser.UserName;\n      data.CreatorName = this.currentUser.DisplayName;\n      return true;\n    } else {\n      return new Promise((resolve) => {\n        const queryDto = InventoryVerificationSchemeQueryDto.create();\n        queryDto.SchemeCode = data.SchemeCode;\n        this.operator.GetInventoryVerificationSchemeDatas(queryDto).subscribe(\n          (result) => {\n            if (result.Success) {\n              const scheme = result.Attach[0];\n              if (\n                differenceInCalendarDays(new Date(data.StartDate), new Date(scheme.StartDate)) < 0 ||\n                differenceInCalendarDays(new Date(data.EndDate), new Date(scheme.EndDate)) > 0\n              ) {\n                MsgHelper.ShowWarningMessage('盘点任务的开始日期和结束日期不能超出方案时间段！');\n                resolve(false);\n              } else {\n                data.CreatorCode = this.currentUser.UserName;\n                data.CreatorName = this.currentUser.DisplayName;\n                resolve(true);\n              }\n            } else {\n              resolve(false);\n            }\n          },\n          () => {\n            resolve(false);\n          }\n        );\n      });\n    }\n  };\n\n  beforeSubmitAudit = (data: RhBaseDto) => {\n    data.AuditorCode = this.currentUser.UserName;\n    data.AuditorName = this.currentUser.DisplayName;\n    return true;\n  };\n\n  disabledStartDate = (current: Date) => {\n    if (this.endDate) {\n      return differenceInCalendarDays(current, this.endDate) > 0;\n    } else {\n      return false;\n    }\n  };\n\n  disabledEndDate = (current: Date) => {\n    if (this.startDate) {\n      return differenceInCalendarDays(current, this.startDate) < 0;\n    } else {\n      return false;\n    }\n  };\n\n  constructor(public storage: RhStorageService, private operator: RhInventoryCountService) { }\n\n  ngOnInit(): void {\n    this.initPageConfig();\n    this.getWarehouse();\n  }\n\n  initPageConfig() {\n    // 获取当前用户信息\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryDefaultQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n    // 设置表格按钮可见性\n    this.editButtonDataset[0].visible = this.isCreated.toString();\n    this.editButtonDataset[1].visible = this.isCreated.toString();\n    // 关闭\n    this.editButtonDataset[2].visible = `data=>data.OrderStatus==='Closed'`;\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  getWarehouse() {\n    const dto = WarehouseConfigQueryDto.create();\n    dto.Mode = 8;\n    this.operator.GetWarehouseConfigDatas(dto).subscribe((result) => {\n      if (result) {\n        this.warehouseData = result.Attach;\n      }\n    });\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onStoreData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      const msg = this.isShowEditModal ? '新增' : '编辑';\n      MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n      this.editDto.OrderCode = result?.Attach[0]?.OrderCode;\n      this.isShowEditForm = false;\n      this.getDetails();\n    } else {\n      MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n    }\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  // 未退出页面，刷新数据内容\n  getDetails() {\n    const queryDto = InventoryVerificationOrderMasterQueryDto.create();\n    queryDto.OrderCode = this.editDto.OrderCode;\n    this.operator.GetInventoryVerificationOrderMasterdViewDatas(queryDto).subscribe((result) => {\n      if (result.Success && result.Attach.length === 1) {\n        this.editDto = result.Attach[0];\n        this.editDto.OpSign = this.isShowEditModal ? OpMode.OpAdd : OpMode.OpEdit;\n        this.closeEditModal();\n        this.selectedIndex = 1;\n      }\n    });\n  }\n\n  // 明细更新后，表头单据状态可能发生变化，因此刷新表头数据\n  detailsUpdate() {\n    this.getDetails();\n  }\n\n  openEditTab(data: RhBaseDto) {\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.startDate = this.editDto.StartDate ? new Date(this.editDto.StartDate) : null;\n      this.endDate = this.editDto.EndDate ? new Date(this.editDto.EndDate) : null;\n      this.isShowEditForm = false;\n    } else {\n      // this.editDto = {};\n      // this.editDto.OpSign = OpMode.OpAdd;\n      // this.startDate = this.endDate = null;\n      // this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.selectedIndex = 0;\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = {};\n      this.currentTab = 'edit';\n      this.detailDataset = [];\n      this.getDatas();\n    }\n  }\n\n  /** 审核 */\n  auditData(data: RhBaseDto) {\n    if (this.isCreated(data)) {\n      this.openAuditDataModal(data);\n    } else {\n      MsgHelper.ShowWarningMessage('当前单据状态不能进行审核！');\n    }\n  }\n\n  /** 打开审核弹窗 */\n  openAuditDataModal(data: RhBaseDto) {\n    this.auditDto = { OrderCode: data.OrderCode };\n    this.isShowAuditDataModal = true;\n  }\n\n  /** 关闭审核弹窗 */\n  closeAuditDataModal() {\n    this.auditDto = null;\n    this.isShowAuditDataModal = false;\n  }\n\n  /** 审核接口返回 */\n  onAuditData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('审核盘点任务成功！');\n      this.closeAuditDataModal();\n      this.closeEditTab();\n      // this.getDetails();\n    } else {\n      MsgHelper.ShowWarningModal(`审核盘点任务失败！${result.Message}`);\n    }\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.selectedIndex = 1;\n  }\n\n  openSnapshootTab(data: RhBaseDto) {\n    this.editDto = data;\n    this.currentTab = 'snapshoot';\n    this.selectedIndex = 1;\n  }\n\n  /** 删除盘点任务 */\n  removeDatas(datas: RhBaseDto[]) {\n    const some = datas.some((f) => !this.isCreated(f));\n    if (some) {\n      MsgHelper.ShowWarningMessage('只能删除制单状态的数据！');\n    } else {\n      this.dataLoading = true;\n      this.operator.RemoveInventoryVerificationOrderMasterDatas(datas as RhSafeAny).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage('删除成功！');\n            this.getDatas();\n          } else {\n            MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n        },\n        () => {\n          this.dataLoading = false;\n        }\n      );\n    }\n  }\n\n  /** 打开新建表头弹窗 */\n  openEditModal() {\n    this.addDto = {};\n    this.addDto.OpSign = OpMode.OpAdd;\n    this.startDate = this.endDate = null;\n    this.editDto = {};\n    this.isShowEditModal = true;\n  }\n\n  closeEditModal() {\n    this.addDto = {};\n    this.isShowEditModal = false;\n  }\n\n  /** 设置起始日期 */\n  setStartDate(date: Date, formgroup: UntypedFormGroup) {\n    this.startDate = date;\n    if (date) {\n      formgroup.get('EndDate').setValidators(Validators.required);\n    } else {\n      formgroup.get('EndDate').clearValidators();\n    }\n    formgroup.get('EndDate').updateValueAndValidity();\n  }\n\n  /** 设置结束日期 */\n  setEndDate(date: Date, formgroup: UntypedFormGroup) {\n    this.endDate = date;\n    if (date) {\n      formgroup.get('StartDate').setValidators(Validators.required);\n    } else {\n      formgroup.get('StartDate').clearValidators();\n    }\n    formgroup.get('StartDate').updateValueAndValidity();\n  }\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form #queryForm rhName=\"queryForm\" rhType=\"query\" [rhValue]=\"curFactoryDefaultQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\" (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"></rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table [rhTableData]=\"dataresult\" [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\" (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\" [rhTitleButtonDataset]=\"titleButtonDataset\"\n                (rhTableCellClick)=\"openDetailTab($event)\"></rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>数据{{ editDto?.OpSign === 1 ? '新增' : '编辑' }}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\"\n            (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"editExtra\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button *ngIf=\"isCreated(editDto)\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\"\n                    (click)=\"isShowEditForm = true\">\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else editDescription\">\n                <ng-container *ngTemplateOutlet=\"masterEditForm; context: { $implicit: false }\"></ng-container>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <rh-inventory-verification-order-details [rhOrder]=\"editDto\" (rhDetailsUpdate)=\"detailsUpdate()\"\n              (rhDatasetChange)=\"detailDataset = $event\"></rh-inventory-verification-order-details>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\"\n            (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <button *ngIf=\"currentTab === 'audit'\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\"\n                  (click)=\"auditData(editDto)\">\n                  <i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n                </button>\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"editDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <rh-inventory-verification-order-details [rhOrder]=\"editDto\" [rhShowDetail]=\"true\">\n            </rh-inventory-verification-order-details>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'snapshoot'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>盘点快照</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\"\n            (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <rh-inventory-verification-snapshoot [rhData]=\"editDto\"></rh-inventory-verification-snapshoot>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<nz-modal [nzTitle]=\"'任务单单头新建'\" [nzVisible]=\"isShowEditModal\" [nzWidth]=\"'60vw'\" [nzOkText]=\"null\" [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeEditModal()\">\n  <ng-container *nzModalContent>\n    <ng-container *ngTemplateOutlet=\"masterEditForm; context: { $implicit: true }\"></ng-container>\n  </ng-container>\n</nz-modal>\n\n<nz-modal [nzTitle]=\"'盘点任务审核'\" [nzVisible]=\"isShowAuditDataModal\" [nzWidth]=\"'60vw'\" [nzOkText]=\"null\"\n  [nzCancelText]=\"null\" (nzOnCancel)=\"closeAuditDataModal()\">\n  <rh-dynamic-form *nzModalContent #auditDataForm rhName=\"auditDataForm\" rhType=\"edit\" rhLayout=\"horizontal\" [rhValue]=\"auditDto\"\n    [rhBeforeSubmit]=\"beforeSubmitAudit\" (rhInterfaceDataChange)=\"onAuditData($event)\"\n    (rhClose)=\"closeAuditDataModal()\">\n    <ng-template rhTemplate=\"IsPass\" let-formgroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }}\n        </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-radio-group [formControl]=\"formgroup.get('IsPass')\">\n            <label nz-radio [nzValue]=\"true\">是</label>\n            <label nz-radio [nzValue]=\"false\">否</label>\n          </nz-radio-group>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>\n\n<ng-template #editDescription>\n  <rh-dynamic-description *ngIf=\"isRefreshDesc\" rhName=\"editDescription\" [rhValue]=\"editDto\"></rh-dynamic-description>\n</ng-template>\n\n<ng-template #masterEditForm let-isModal>\n  <rh-dynamic-form #editForm rhName=\"editForm\" rhType=\"edit\" rhLayout=\"horizontal\"\n    [rhValue]=\"isModal ? addDto : editDto\" [rhBeforeSubmit]=\"beforeSubmit\" (rhInterfaceDataChange)=\"onStoreData($event)\"\n    (rhClose)=\"isModal ? closeEditModal() : closeEditTab()\">\n    <ng-template rhTemplate=\"SchemeCode\" let-formgroup let-setting=\"setting\" let-formData=\"formData\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }}\n        </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <rh-inventory-verification-scheme-selector [formControl]=\"formgroup.get('SchemeCode')\" [rhFieldData]=\"setting\"\n            [rhDisplayMode]=\"1\" [rhData]=\"formData\"></rh-inventory-verification-scheme-selector>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"SchemeName\" let-formgroup let-setting=\"setting\" let-hostSetting=\"hostSetting\"\n      let-formData=\"formData\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }}\n        </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <rh-form-field [formControl]=\"formgroup.get('SchemeName')\" rhFormType=\"edit\" [rhFieldData]=\"setting\"\n            [rhSize]=\"hostSetting?.rhSize\" [rhData]=\"formData\" [rhDisabled]=\"true\">\n          </rh-form-field>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"StartDate\" let-formGroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"formGroup.get('EndDate').value\">\n          {{ setting.displayName }}</nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-date-picker style=\"width: 100%\" [nzDisabledDate]=\"disabledStartDate\" [nzPlaceHolder]=\"setting.placeholder\"\n            [formControl]=\"formGroup.get('StartDate')\" (ngModelChange)=\"setStartDate($event, formGroup)\">\n          </nz-date-picker>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"EndDate\" let-formGroup let-setting=\"setting\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"formGroup.get('StartDate').value\">{{\n          setting.displayName\n        }}</nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <nz-date-picker style=\"width: 100%\" [nzDisabledDate]=\"disabledEndDate\" [nzPlaceHolder]=\"setting.placeholder\"\n            [formControl]=\"formGroup.get('EndDate')\" (ngModelChange)=\"setEndDate($event, formGroup)\"></nz-date-picker>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</ng-template>","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { DynamicFormComponent, WarehouseConfigDto, WarehouseConfigQueryDto } from 'rh-base/shared';\nimport {\n  DataResultT,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  RhLoginedUserDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto,\n  RhBaseDto,\n  OpMode,\n  RhSafeAny\n} from 'rh-base/model';\nimport { RhStorageService, MsgHelper } from 'rh-base/core';\nimport { RhInventoryCountService } from '../inventory-count.service';\nimport {\n  InventoryVerificationOrderMasterDto,\n  InventoryVerificationOrderDetailQueryDto,\n  InventoryVerificationResultDetailDto,\n  InventoryVerificationOrderDetailDto,\n  DataImportDto\n} from './../../inventory-manage-model';\nimport { RhInventoryManageService } from './../../inventory-manage.service';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { NzUploadFile } from 'ng-zorro-antd/upload';\nimport { Observable, Observer } from 'rxjs';\n\ntype TabType = 'verificationResultDetails' | 'inOutOrderDetails';\n\n@Component({\n  selector: 'rh-inventory-verification-handle',\n  templateUrl: './inventory-verification-handle.component.html',\n  styleUrls: ['./inventory-verification-handle.component.less']\n})\nexport class RhInventoryVerificationHandleComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  curOrder: RhSelectableDto;\n\n  currentResult: DataResultT<RhSelectableDto[]>;\n  warehouseData: WarehouseConfigDto[];\n  selectWarehouse = [];\n\n  verificationResultDetailsResult: DataResultT<RhSelectableDto[]>;\n  verificationResultDetailsLoading = false;\n\n  // 盘点明细编辑对象\n  editDtoCheck: RhBaseDto = {};\n  // 任务单字段按钮\n  defaultFieldDataset = [];\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto(\n      'start',\n      '开始盘点',\n      'default',\n      false,\n      'file-add',\n      false,\n      null,\n      (data) => this.startInventoryVerification(data as RhBaseDto),\n      true,\n      true\n    ),\n    new RhTableButtonInfoDto('verificationResultDetails', '盘点作业管理', 'default', false, 'form', false, null, (data) =>\n      this.openDetailTab({ data } as RhBaseDto, 'verificationResultDetails')\n    ),\n    new RhTableButtonInfoDto(\n      'end',\n      '完成盘点',\n      'default',\n      false,\n      'file-done',\n      false,\n      null,\n      (data) => this.completedInventoryVerification(data as RhBaseDto),\n      true,\n      true\n    )\n  ];\n  titleButtonDataset: RhTableButtonInfoDto[] = [];\n  // 盘点明细按钮\n  titleButtonDatasetCheck: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '新建', 'primary', false, 'file', false, null, () => this.openEditModalCheck(), true),\n    new RhTableButtonInfoDto('rowEdit', '填写盘点记录', 'primary', false, 'edit', false, null, () => this.editAvailableQty(), true),\n    new RhTableButtonInfoDto('export', '导出', 'default', false, 'export', false, null, () => this.exportDetailDatas(), true),\n    new RhTableButtonInfoDto('import', '导入', 'default', false, 'import', false, null, () => this.openDetailDatasImportModal(), true)\n  ];\n  titleButtonDatasetCheckT = [\n    new RhTableButtonInfoDto('new', '新建', 'primary', false, 'file', false, null, () => this.openEditModalCheck(), true),\n    new RhTableButtonInfoDto('rowCheck', '保存盘点记录', 'primary', false, 'check', false, null, () => this.updateAvaliableQty(), true, true),\n    new RhTableButtonInfoDto('redo', '取消', 'default', false, 'redo', false, null, () => this.cancelEditAvaliableQty(), true)\n    // new RhTableButtonInfoDto('export', '导出', 'default', false, 'export', false, null, () => this.exportDetailDatas(), true),\n    // new RhTableButtonInfoDto('import', '导入', 'default', false, 'import', false, null, () => this.openDetailDatasImportModal(), true)\n  ];\n  extraButtonDatasetCheck: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto(\n      'end',\n      '完成盘点',\n      'primary',\n      false,\n      'file-done',\n      false,\n      null,\n      () => this.completedInventoryVerification(),\n      true,\n      true\n    ),\n    new RhTableButtonInfoDto('back', '返回', 'default', false, 'rollback', false, null, () => this.closeDetailTab(), true)\n  ];\n  // 辅助字段\n  currentUser: RhLoginedUserDto;\n  curFactoryDefaultQueryDto = {};\n  isShowDetail = false;\n  isEnableEditAvaliableQty = true;\n  // 文件上传\n  isShowDetailDatasImportModal = false;\n  uploading = false;\n  curUploadData: DataImportDto;\n  /** 上传的文件列表 */\n  uploadFileList: NzUploadFile[] = [];\n  // 弹窗可见性\n  isShowEditModalCheck = false;\n  // 表单可见性\n  editFormVisibleSettingCheck = {};\n  // 表格可见性\n  tableVisibleSetting = {};\n  // 仓储联动\n  defaultQueryDtoWarehouseArea = {};\n  defaultQueryDtoWarehouseShelf = {};\n  defaultQueryDtoStorageLocation = {};\n  // 物料搜索\n  // defaultQueryDtoMaterial = {};\n\n  currentDetailsType = null;\n  radioOptions = [\n    { Text: '全部', Value: null },\n    { Text: '已盘', Value: true },\n    { Text: '未盘', Value: false }\n  ];\n\n  beforeSubmitEditDetailsCheck = (data) => {\n    this.storeInventoryVerificationDatas([data], () => this.closeEditModalCheck());\n    return false;\n  };\n\n  get isEnableInventoryVerificationAddMaterial() {\n    return this.inventoryManageSer.isEnableInventoryVerificationAddMaterial;\n  }\n  get isEnableWarehouseAreaAndWarehouseShelf() {\n    return this.inventoryManageSer.isEnableWarehouseAreaAndWarehouseShelf;\n  }\n  get isEnableStorageLocation() {\n    return this.inventoryManageSer.isEnableStorageLocation;\n  }\n  get isEnableSN() {\n    return this.inventoryManageSer.isEnableSN;\n  }\n  get isEnableExpirationDate() {\n    return this.inventoryManageSer.isEnableExpirationDate;\n  }\n  get isEnableLotNum() {\n    return this.inventoryManageSer.isEnableLotNum;\n  }\n  get isInInventoryVerification() {\n    const list = ['InventoryVerification', 'RepeatInventory'];\n    return list.includes(this.curOrder.OrderStatus);\n  }\n  get isReadOnly() {\n    return this.isShowDetail || (this.curOrder && !this.isInInventoryVerification);\n  }\n  get titleBtnDataset() {\n    return this.isReadOnly ? [] : this.isEnableEditAvaliableQty ? this.titleButtonDatasetCheck : this.titleButtonDatasetCheckT;\n  }\n  get extraBtnDataset() {\n    return this.isReadOnly ? [] : this.extraButtonDatasetCheck;\n  }\n\n  constructor(\n    public storage: RhStorageService,\n    private operator: RhInventoryCountService,\n    private inventoryManageSer: RhInventoryManageService\n  ) { }\n\n  ngOnInit(): void {\n    this.initPageConfig();\n    this.getWarehouse();\n  }\n\n  initPageConfig() {\n    // 获取当前用户信息\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryDefaultQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n    // 设置表格按钮可见性\n    // 开始盘点（审核通过）\n    this.editButtonDataset[0].visible = `data=>data.OrderStatus==='AuditPass'`;\n    // 盘点明细（盘点中）\n    this.editButtonDataset[1].visible = `data=>data.OrderStatus==='InventoryVerification'||data.OrderStatus==='RepeatInventory'`;\n    // 完成盘点（盘点中）\n    this.editButtonDataset[2].visible = `data=>data.OrderStatus==='InventoryVerification'||data.OrderStatus==='RepeatInventory'`;\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  getWarehouse() {\n    const dto = WarehouseConfigQueryDto.create();\n    dto.Mode = 8;\n    this.operator.GetWarehouseConfigDatas(dto).subscribe((result) => {\n      if (result) {\n        this.warehouseData = result.Attach;\n      }\n    });\n  }\n\n  getWarehouseName(item) {\n    return this.warehouseData.find((f) => f.WarehouseCode == item).WarehouseName;\n  }\n\n  onSelctedChange(data) {\n    if (data.length) {\n      this.verificationResultDetailsResult = { Attach: [], TotalCount: 0 } as RhSafeAny;\n      this.verificationResultDetailsResult.Attach = this.currentResult.Attach.filter((f) => data.indexOf(f.WarehouseCode) != -1);\n      this.verificationResultDetailsResult.TotalCount = this.verificationResultDetailsResult.Attach.length;\n    } else {\n      this.verificationResultDetailsResult = { Attach: [], TotalCount: 0 } as RhSafeAny;\n      this.verificationResultDetailsResult = this.currentResult;\n    }\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.curOrder = null;\n      this.currentDetailsType = null;\n      this.isEnableEditAvaliableQty = true;\n    }\n  }\n\n  openDetailTab(dto: RhBaseDto, type?: TabType) {\n    this.curOrder = dto.data;\n    this.initTableVisibleSetting();\n    if (type) {\n      this.isShowDetail = false;\n    } else {\n      this.isShowDetail = true;\n    }\n    this.getInventoryVerificationOrderDetailDatas();\n    this.titleButtonDatasetCheck[0].visible = this.isEnableInventoryVerificationAddMaterial;\n    this.titleButtonDatasetCheckT[0].visible = this.isEnableInventoryVerificationAddMaterial;\n    this.selectedIndex = 1;\n  }\n\n  closeDetailTab() {\n    this.selectedIndex = 0;\n  }\n\n  /** 开始盘点 */\n  startInventoryVerification(data: RhBaseDto) {\n    this.editButtonDataset[0].loading = true;\n    this.editButtonDataset = [...this.editButtonDataset];\n    this.operator.StartInventoryVerification(data as InventoryVerificationOrderMasterDto).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('开始盘点成功！');\n          this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`开始盘点失败！${result.Message}`);\n        }\n        this.editButtonDataset[0].loading = false;\n        this.editButtonDataset = [...this.editButtonDataset];\n      },\n      () => {\n        this.editButtonDataset[0].loading = false;\n        this.editButtonDataset = [...this.editButtonDataset];\n      }\n    );\n  }\n\n  /** 结束盘点 */\n  completedInventoryVerification(data?: RhBaseDto) {\n    if (!data) {\n      data = this.curOrder;\n    }\n    this.editButtonDataset[2].loading = true;\n    this.editButtonDataset = [...this.editButtonDataset];\n    this.operator.CompletedInventoryVerification(data as InventoryVerificationOrderMasterDto).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('结束盘点成功！');\n          this.getDatas();\n          this.closeDetailTab();\n        } else {\n          MsgHelper.ShowWarningMessage(`结束盘点失败！${result.Message}`);\n        }\n        this.editButtonDataset[2].loading = false;\n        this.editButtonDataset = [...this.editButtonDataset];\n      },\n      () => {\n        this.editButtonDataset[2].loading = false;\n        this.editButtonDataset = [...this.editButtonDataset];\n      }\n    );\n  }\n\n  /** 获取盘点明细 */\n  getInventoryVerificationOrderDetailDatas() {\n    const queryDto = InventoryVerificationOrderDetailQueryDto.create();\n    queryDto.OrderCode = this.curOrder.OrderCode;\n    queryDto.InventoryProcess = this.curOrder.OrderStatus === 'RepeatInventory' ? 'RepeatInventory' : null;\n    queryDto.IsVerified = this.currentDetailsType;\n    queryDto.Mode = 8;\n    this.verificationResultDetailsLoading = true;\n    this.operator.GetInventoryVerificationOrderDetailDatas(queryDto).subscribe(\n      (result) => {\n        if (result.Success) {\n          this.currentResult = result;\n          this.verificationResultDetailsResult = result;\n          this.verificationResultDetailsResult.httpRequestPara = queryDto;\n          this.onSelctedChange(this.selectWarehouse);\n        } else {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`);\n          this.verificationResultDetailsResult = { Success: false, Attach: [] } as RhSafeAny;\n        }\n        this.verificationResultDetailsLoading = false;\n      },\n      () => {\n        this.verificationResultDetailsLoading = false;\n      }\n    );\n  }\n\n  /** 编辑=》保存盘点明细（来自任务单明细） */\n  updateInventoryVerificationDatas(datas: InventoryVerificationOrderDetailDto[], cb?: () => void) {\n    this.titleButtonDatasetCheckT[1].loading = true;\n    this.titleButtonDatasetCheckT = [...this.titleButtonDatasetCheckT];\n    this.operator.UpdateInventoryVerificationDatas(datas).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('盘点任务单明细成功！');\n          this.getInventoryVerificationOrderDetailDatas();\n          if (cb) cb();\n        } else {\n          MsgHelper.ShowWarningMessage(`盘点任务单明细失败！${result.Message}`);\n        }\n        this.titleButtonDatasetCheckT[1].loading = false;\n        this.titleButtonDatasetCheckT = [...this.titleButtonDatasetCheckT];\n      },\n      () => {\n        this.titleButtonDatasetCheckT[1].loading = false;\n        this.titleButtonDatasetCheckT = [...this.titleButtonDatasetCheckT];\n      }\n    );\n  }\n\n  /** 新增=》保存盘点明细（来自自定义新增） */\n  storeInventoryVerificationDatas(datas: InventoryVerificationOrderDetailDto[], cb?: () => void) {\n    this.operator.StoreInventoryVerificationDatas(datas).subscribe((result) => {\n      if (result.Success) {\n        MsgHelper.ShowSuccessMessage('存储盘点明细成功！');\n        this.getInventoryVerificationOrderDetailDatas();\n        if (cb) cb();\n      } else {\n        MsgHelper.ShowWarningMessage(`保存盘点明细失败！${result.Message}`);\n      }\n    });\n  }\n\n  /** 行编辑 */\n  editAvailableQty() {\n    this.verificationResultDetailsResult.Attach.forEach((data) => (data.select = true));\n    this.isEnableEditAvaliableQty = false;\n  }\n\n  /** 行保存 */\n  updateAvaliableQty() {\n    if (this.verificationResultDetailsResult.Attach.some((f) => !f.AvailableQty && f.AvailableQty != 0)) {\n      MsgHelper.ShowConfirmModal(\n        '是否自动填充实盘数量',\n        '检测到盘点未完成，是否自动填充库存数量至实盘数量？',\n        () => {\n          this.verificationResultDetailsResult.Attach.forEach((ele) => {\n            if (!ele.AvailableQty) {\n              ele.AvailableQty = ele.InventoryQty;\n            }\n          });\n          this.updateInventoryVerificationDatas(\n            this.verificationResultDetailsResult.Attach as InventoryVerificationOrderDetailDto[],\n            () => {\n              this.isEnableEditAvaliableQty = true;\n              this.verificationResultDetailsResult.Attach.forEach((data) => (data.select = false));\n            }\n          );\n        },\n        () => {\n          this.updateInventoryVerificationDatas(\n            this.verificationResultDetailsResult.Attach as InventoryVerificationOrderDetailDto[],\n            () => {\n              this.isEnableEditAvaliableQty = true;\n              this.verificationResultDetailsResult.Attach.forEach((data) => (data.select = false));\n            }\n          );\n        }\n      );\n    } else {\n      this.updateInventoryVerificationDatas(this.verificationResultDetailsResult.Attach as InventoryVerificationOrderDetailDto[], () => {\n        this.isEnableEditAvaliableQty = true;\n        this.verificationResultDetailsResult.Attach.forEach((data) => (data.select = false));\n      });\n    }\n  }\n\n  /** 取消行编辑 */\n  cancelEditAvaliableQty() {\n    this.getInventoryVerificationOrderDetailDatas();\n    this.isEnableEditAvaliableQty = true;\n    this.verificationResultDetailsResult.Attach.forEach((data) => (data.select = false));\n  }\n\n  /** 打开编辑盘点明细弹窗 */\n  openEditModalCheck(data?: RhBaseDto) {\n    this.initEditFormVisibleSetting();\n    if (data) {\n      this.editDtoCheck = data;\n      this.editDtoCheck.OpSign = OpMode.OpEdit;\n    } else {\n      this.editDtoCheck = InventoryVerificationResultDetailDto.create();\n      this.editDtoCheck.OrderCode = this.curOrder.OrderCode;\n      this.editDtoCheck.WarehouseCode = this.curOrder.WarehouseCode;\n      this.editDtoCheck.WarehouseName = this.curOrder.WarehouseName;\n      this.editDtoCheck.SchemeCode = this.curOrder.SchemeCode;\n      this.editDtoCheck.SchemeName = this.curOrder.SchemeName;\n      this.editDtoCheck.OpSign = OpMode.OpAdd;\n    }\n    // 仓库赋值\n    const code = this.editDtoCheck.WarehouseCode;\n    // Object.assign(this.defaultQueryDtoMaterial, { WarehouseCode: code ? `$${code}` : null });\n    Object.assign(this.defaultQueryDtoWarehouseArea, { WarehouseCode: code ? `$${code}` : null });\n    Object.assign(this.defaultQueryDtoWarehouseShelf, { WarehouseCode: code ? `$${code}` : null });\n    Object.assign(this.defaultQueryDtoStorageLocation, { WarehouseCode: code ? `$${code}` : null });\n    this.isShowEditModalCheck = true;\n  }\n\n  closeEditModalCheck() {\n    this.isShowEditModalCheck = false;\n    this.editDtoCheck = null;\n    // this.defaultQueryDtoMaterial = {};\n    this.defaultQueryDtoWarehouseArea = {};\n    this.defaultQueryDtoWarehouseShelf = {};\n    this.defaultQueryDtoStorageLocation = {};\n  }\n\n  initTableVisibleSetting() {\n    this.tableVisibleSetting = {};\n    Object.assign(this.tableVisibleSetting, this.inventoryManageSer.initVisibleSetting());\n    if (this.curOrder.VerificationType === 'BlindCheck') {\n      // 盘点任务类型为盲盘\n      Object.assign(this.tableVisibleSetting, { InventoryQty: false, DiffQty: false });\n    } else {\n      // 盘点任务类型为明盘\n      Object.assign(this.tableVisibleSetting, { InventoryQty: true, DiffQty: true });\n    }\n  }\n\n  initEditFormVisibleSetting() {\n    this.editFormVisibleSettingCheck = {};\n    Object.assign(this.editFormVisibleSettingCheck, this.inventoryManageSer.initVisibleSetting());\n  }\n\n  //#region 导入导出区域开始\n  exportDetailDatas() {\n    this.operator.downloadInventoryVerificationOrderDetailData(\n      this.curOrder as InventoryVerificationOrderMasterDto,\n      this.selectWarehouse.length ? this.selectWarehouse : this.curOrder.WarehouseCode\n    );\n  }\n\n  openDetailDatasImportModal() {\n    this.isShowDetailDatasImportModal = true;\n  }\n\n  closeDetailDatasImportModal() {\n    this.isShowDetailDatasImportModal = false;\n    this.uploadFileList = [];\n  }\n\n  initDataImportDto() {\n    const dto = DataImportDto.create();\n    dto.BusinessCode = 'InventoryVerification';\n    dto.OperatorCode = this.currentUser.UserName;\n    dto.OperatorName = this.currentUser.DisplayName;\n    dto.FactoryCode = this.currentUser.FactoryCode;\n    return dto;\n  }\n\n  beforeUpload = (file: NzUploadFile) => {\n    return new Observable((observer: Observer<boolean>) => {\n      const reader = new FileReader();\n      reader.readAsDataURL(file as RhSafeAny);\n      reader.onload = () => {\n        this.curUploadData = this.initDataImportDto();\n        this.curUploadData.FileStreamString = reader.result as RhSafeAny;\n        this.uploadFileList = [file];\n        observer.next(false);\n        observer.complete();\n      };\n      reader.onerror = (e) => {\n        MsgHelper.ShowWarningModal(`读取文件失败！${e}`);\n        observer.next(false);\n        observer.complete();\n      };\n    });\n  };\n\n  handleUpload() {\n    this.uploading = true;\n    this.operator.DataImport(this.curUploadData).subscribe(\n      (result) => {\n        if (result && result.Success) {\n          MsgHelper.ShowSuccessMessage('数据上传成功！');\n          this.getInventoryVerificationOrderDetailDatas();\n          this.closeDetailDatasImportModal();\n        } else {\n          MsgHelper.ShowWarningModal(`数据上传失败！${result.Message}`);\n        }\n        this.uploading = false;\n      },\n      () => (this.uploading = false)\n    );\n  }\n  //#endregion 导入导出区域结束\n\n  //#region 仓库管理联动区域开始\n\n  changeWarehouseConfigForm(code: string, type: string, formgroup: UntypedFormGroup) {\n    switch (type) {\n      case 'warehouse':\n        Object.assign(this.defaultQueryDtoWarehouseArea, { WarehouseCode: code ? `$${code}` : null });\n        Object.assign(this.defaultQueryDtoWarehouseShelf, { WarehouseCode: code ? `$${code}` : null });\n        Object.assign(this.defaultQueryDtoStorageLocation, { WarehouseCode: code ? `$${code}` : null });\n        if (!code) {\n          formgroup.get('WarehouseAreaCode')?.setValue(null);\n          formgroup.get('WarehouseAreaName')?.setValue(null);\n          formgroup.get('WarehouseShelfCode')?.setValue(null);\n          formgroup.get('WarehouseShelfName')?.setValue(null);\n          formgroup.get('StorageLocationCode')?.setValue(null);\n          formgroup.get('StorageLocationName')?.setValue(null);\n        }\n        break;\n      case 'warehouseArea':\n        Object.assign(this.defaultQueryDtoWarehouseShelf, { WarehouseAreaCode: code ? `$${code}` : null });\n        Object.assign(this.defaultQueryDtoStorageLocation, { WarehouseAreaCode: code ? `$${code}` : null });\n        if (!code) {\n          formgroup.get('WarehouseShelfCode')?.setValue(null);\n          formgroup.get('WarehouseShelfName')?.setValue(null);\n          formgroup.get('StorageLocationCode')?.setValue(null);\n          formgroup.get('StorageLocationName')?.setValue(null);\n        }\n        break;\n      case 'warehouseShelf':\n        Object.assign(this.defaultQueryDtoStorageLocation, { WarehouseShelfCode: code ? `$${code}` : null });\n        if (!code) {\n          formgroup.get('StorageLocationCode')?.setValue(null);\n          formgroup.get('StorageLocationName')?.setValue(null);\n        }\n        break;\n      case 'storageLocation':\n        break;\n      default:\n        break;\n    }\n  }\n  //#endregion 仓库管理联动区域结束\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryDefaultQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  ></rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              ></rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>盘点明细</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeDetailTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneDetails [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPaneDetails.collapsed\" class=\"rh-full\">\n              <ng-container *ngTemplateOutlet=\"orderDescription\"></ng-container>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-radio-group [(ngModel)]=\"currentDetailsType\" (ngModelChange)=\"getInventoryVerificationOrderDetailDatas()\" class=\"radio\">\n              <label *ngFor=\"let item of radioOptions\" nz-radio-button [nzValue]=\"item.Value\">{{ item.Text }}</label>\n            </nz-radio-group>\n            <nz-select\n              nzAllowClear\n              nzShowSearch\n              nzMode=\"multiple\"\n              nzPlaceHolder=\"仓库筛选\"\n              [(ngModel)]=\"selectWarehouse\"\n              (ngModelChange)=\"onSelctedChange($event)\"\n              style=\"width: 300px\"\n            >\n              <nz-option\n                *ngFor=\"let item of curOrder.WarehouseCode.split(',')\"\n                [nzLabel]=\"getWarehouseName(item)\"\n                [nzValue]=\"item\"\n              ></nz-option>\n            </nz-select>\n\n            <rh-dynamic-table\n              rhName=\"verificationResultDetailsTable\"\n              [rhTableData]=\"verificationResultDetailsResult\"\n              [rhTableDataloading]=\"verificationResultDetailsLoading\"\n              [rhTitleButtonDataset]=\"titleBtnDataset\"\n              [rhExtraButtonDataset]=\"extraBtnDataset\"\n              [rhVisibleSetting]=\"tableVisibleSetting\"\n            ></rh-dynamic-table>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #orderDescription>\n  <rh-dynamic-description rhName=\"orderDescription\" [rhValue]=\"curOrder\"></rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'盘点明细' + (editDtoCheck?.OpSign === 1 ? '新增' : '编辑')\"\n  [nzVisible]=\"isShowEditModalCheck\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeEditModalCheck()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #editDetailCheckForm\n    rhName=\"editDetailCheckForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"editDtoCheck\"\n    [rhVisibleSetting]=\"editFormVisibleSettingCheck\"\n    [rhBeforeSubmit]=\"beforeSubmitEditDetailsCheck\"\n    (rhClose)=\"closeEditModalCheck()\"\n  >\n    <!-- <ng-template rhTemplate=\"MaterialCode\" let-formgroup let-setting=\"setting\" let-hostSetting=\"hostSetting\" let-formData=\"formData\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }}</nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <rh-material-inventory-detail-selector\n            [formControl]=\"formgroup.get('MaterialCode')\"\n            [rhData]=\"formData\"\n            [rhFieldData]=\"setting\"\n            [rhSize]=\"hostSetting?.rhSize\"\n            [rhDefaultQueryDto]=\"defaultQueryDtoMaterial\"\n            (ngModelChange)=\"changeMaterial($event, formgroup)\"\n          ></rh-material-inventory-detail-selector>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template> -->\n    <ng-template rhTemplate=\"MeasureUnit\" let-formgroup let-setting=\"setting\" let-hostSetting=\"hostSetting\" let-formData=\"formData\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <rh-form-field\n            [formControl]=\"formgroup.get('MeasureUnit')\"\n            rhFormType=\"edit\"\n            [rhFieldData]=\"setting\"\n            [rhSize]=\"hostSetting?.rhSize\"\n            [rhData]=\"formData\"\n            [rhDisabled]=\"true\"\n          ></rh-form-field>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"MeasureAuxUnit\" let-formgroup let-setting=\"setting\" let-hostSetting=\"hostSetting\" let-formData=\"formData\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <rh-form-field\n            [formControl]=\"formgroup.get('MeasureAuxUnit')\"\n            rhFormType=\"edit\"\n            [rhFieldData]=\"setting\"\n            [rhSize]=\"hostSetting?.rhSize\"\n            [rhData]=\"formData\"\n            [rhDisabled]=\"true\"\n          ></rh-form-field>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"WarehouseCode\" let-formgroup let-setting=\"setting\" let-hostSetting=\"hostSetting\" let-formData=\"formData\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <rh-warehouse-selector\n            [formControl]=\"formgroup.get('WarehouseCode')\"\n            [rhData]=\"formData\"\n            [rhFieldData]=\"setting\"\n            [rhSize]=\"hostSetting?.rhSize\"\n            (ngModelChange)=\"changeWarehouseConfigForm($event, 'warehouse', formgroup)\"\n            [rhDisabled]=\"true\"\n          >\n          </rh-warehouse-selector>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"WarehouseAreaCode\" let-formgroup let-setting=\"setting\" let-hostSetting=\"hostSetting\" let-formData=\"formData\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <rh-warehouse-area-selector\n            [formControl]=\"formgroup.get('WarehouseAreaCode')\"\n            [rhData]=\"formData\"\n            [rhFieldData]=\"setting\"\n            [rhSize]=\"hostSetting?.rhSize\"\n            [rhDefaultQueryDto]=\"defaultQueryDtoWarehouseArea\"\n            (ngModelChange)=\"changeWarehouseConfigForm($event, 'warehouseArea', formgroup)\"\n          >\n          </rh-warehouse-area-selector>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"WarehouseShelfCode\" let-formgroup let-setting=\"setting\" let-hostSetting=\"hostSetting\" let-formData=\"formData\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <rh-warehouse-shelf-selector\n            [formControl]=\"formgroup.get('WarehouseShelfCode')\"\n            [rhData]=\"formData\"\n            [rhFieldData]=\"setting\"\n            [rhSize]=\"hostSetting?.rhSize\"\n            [rhDefaultQueryDto]=\"defaultQueryDtoWarehouseShelf\"\n            (ngModelChange)=\"changeWarehouseConfigForm($event, 'warehouseShelf', formgroup)\"\n          >\n          </rh-warehouse-shelf-selector>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n    <ng-template rhTemplate=\"StorageLocationCode\" let-formgroup let-setting=\"setting\" let-hostSetting=\"hostSetting\" let-formData=\"formData\">\n      <nz-form-item>\n        <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\">{{ setting.displayName }} </nz-form-label>\n        <nz-form-control rhAutoErrorTip [nzSpan]=\"setting.controlSpan\">\n          <rh-storage-location-selector\n            [formControl]=\"formgroup.get('StorageLocationCode')\"\n            [rhData]=\"formData\"\n            [rhFieldData]=\"setting\"\n            [rhSize]=\"hostSetting?.rhSize\"\n            [rhDefaultQueryDto]=\"defaultQueryDtoStorageLocation\"\n            (ngModelChange)=\"changeWarehouseConfigForm($event, 'storageLocation', formgroup)\"\n          >\n          </rh-storage-location-selector>\n        </nz-form-control>\n      </nz-form-item>\n    </ng-template>\n  </rh-dynamic-form>\n</nz-modal>\n\n<nz-modal\n  [nzVisible]=\"isShowDetailDatasImportModal\"\n  (nzOnCancel)=\"closeDetailDatasImportModal()\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  [nzMaskClosable]=\"false\"\n  [nzTitle]=\"'盘点明细上传'\"\n>\n  <div *nzModalContent style=\"padding: 0px 20px\">\n    <nz-upload nzType=\"drag\" [(nzFileList)]=\"uploadFileList\" [nzBeforeUpload]=\"beforeUpload\" [nzMultiple]=\"false\" nzListType=\"text\">\n      <p class=\"ant-upload-drag-icon\">\n        <i nz-icon nzType=\"inbox\"></i>\n      </p>\n      <p class=\"ant-upload-text\">点击选择文件或拖拽文件到此区域</p>\n      <p class=\"ant-upload-hint\">支持单文件上传</p>\n    </nz-upload>\n    <div style=\"text-align: center\">\n      <button\n        nz-button\n        [nzType]=\"'primary'\"\n        [nzLoading]=\"uploading\"\n        (click)=\"handleUpload()\"\n        [disabled]=\"uploadFileList.length == 0\"\n        style=\"margin-top: 16px\"\n      >\n        {{ uploading ? '上传中...' : '点击上传' }}\n      </button>\n    </div>\n  </div>\n</nz-modal>\n","import { RhInventoryManageService } from './../../../../inventory-manage.service';\n\nimport { Component, OnInit, ViewChild, Input, Output, EventEmitter, SimpleChanges } from '@angular/core';\nimport { CustomizeBaseTableComponent, DynamicFormComponent } from 'rh-base/shared';\nimport {\n  RhDynamicInterfaceDto,\n  RhSelectableDto,\n  RhBaseDto,\n  RhTableQueryOptionDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto\n} from 'rh-base/model';\n\n@Component({\n  selector: 'rh-material-inventory-detail-table',\n  templateUrl: './material-inventory-detail-table.component.html',\n  styleUrls: ['./material-inventory-detail-table.component.less']\n})\nexport class MaterialInventoryDetailTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n\n  @Input() rhSingleMode = false;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() rhDisabled: boolean;\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto>();\n\n  rhName = 'MaterialInventoryDetailSelector';\n\n  @Input() defaultQueryDto: RhBaseDto = {};\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n  defaultInterfaceInfo: RhDynamicInterfaceDto;\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [];\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  visibleSetting = {};\n  defaultQueryDtoStorageLocation = {};\n\n  get isEnableStorageLocation() {\n    return this.operator.isEnableStorageLocation;\n  }\n\n  constructor(private operator: RhInventoryManageService) {\n    //\n    super();\n  }\n\n  ngOnInit(): void {\n    this.rhInterfaceInfo = this.rhInterfaceInfo || this.defaultInterfaceInfo;\n    Object.assign(this.visibleSetting, this.operator.initVisibleSetting());\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { defaultQueryDto } = changes;\n    if (defaultQueryDto && defaultQueryDto.currentValue) {\n      this.defaultQueryDtoStorageLocation = {\n        WarehouseCode: this.defaultQueryDto.WarehouseCode ? `$${this.defaultQueryDto.WarehouseCode}` : null\n      };\n      if (!this.isEnableStorageLocation) {\n        this.getDatas();\n      }\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n}\n","<!-- 搜索Form区域 -->\n<div class=\"search-area rh-full\" *ngIf=\"isEnableStorageLocation\">\n  <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n    <ng-template #searchTpl>\n      <rh-dynamic-form #queryForm rhName=\"materialInventoryDetailsQueryForm\" [rhValue]=\"defaultQueryDto\"\n        (rhInterfaceDataChange)=\"setDatas($event)\" (rhDataloadingChange)=\"dataLoadingChange($event)\"\n        (rhOutParaChange)=\"setInitFieldDataset($event)\" [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n        [(rhFormInterface)]=\"rhInterfaceInfo\" [rhVisibleSetting]=\"visibleSetting\">\n        <ng-template rhTemplate=\"StorageLocationCode\" let-formgroup let-setting=\"setting\" let-hostSetting=\"hostSetting\"\n          let-formData=\"formData\">\n          <nz-form-item>\n            <nz-form-control [nzSpan]=\"setting.controlSpan\">\n              <rh-storage-location-selector [formControl]=\"formgroup.get('StorageLocationCode')\" [rhData]=\"formData\"\n                [rhFieldData]=\"setting\" [rhSize]=\"hostSetting?.rhSize\"\n                [rhDefaultQueryDto]=\"defaultQueryDtoStorageLocation\"></rh-storage-location-selector>\n            </nz-form-control>\n          </nz-form-item>\n        </ng-template>\n        <ng-template rhTemplate=\"LotNum\" let-formgroup let-setting=\"setting\" let-hostSetting=\"hostSetting\"\n          let-formData=\"formData\">\n          <nz-form-item>\n            <nz-form-control [nzSpan]=\"setting.controlSpan\">\n              <rh-form-field [formControl]=\"formgroup.get('LotNum')\" [rhFormType]=\"'edit'\" [rhFieldData]=\"setting\"\n                [rhSize]=\"hostSetting?.rhSize\" [rhData]=\"formData\" [rhDisabled]=\"defaultQueryDto?.LotNum\">\n              </rh-form-field>\n            </nz-form-control>\n          </nz-form-item>\n        </ng-template>\n      </rh-dynamic-form>\n    </ng-template>\n  </nz-alert>\n</div>\n<!-- 搜索结果Table展示区域 -->\n<div class=\"table-area\">\n  <rh-dynamic-table rhName=\"materialInventoryDetailsTable\" [rhTableData]=\"dataresult\" [rhTableDataloading]=\"dataLoading\"\n    [rhDefaultFieldDataset]=\"defaultTableFieldDataset\" (rhRefresh)=\"refreshDatas($event)\"\n    (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\" [rhSingleMode]=\"rhSingleMode\"\n    [rhVisibleSetting]=\"visibleSetting\"></rh-dynamic-table>\n</div>","import { Component, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, SimpleChanges } from '@angular/core';\nimport { provideValueAccessor, RhRouteHelper, MsgHelper } from 'rh-base/core';\nimport { CustomizeBaseControlComponent, RhBaseDynamicService } from 'rh-base/shared';\nimport { NzSizeLDSType } from 'ng-zorro-antd/core/types';\nimport {\n  RhSelectableDto,\n  RhDynamicFormFieldDto,\n  RhSafeAny,\n  DataResultT,\n  RhDynamicInterfaceDto,\n  RhDynamicCustomizeControlConfigDto,\n  RhRelatedFieldDataDto,\n  RhCustomizeEventSettingDto,\n  RhBaseDto,\n  RhDisplayMode\n} from 'rh-base/model';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { MaterialInventoryDetailTableComponent } from './material-inventory-detail-table/material-inventory-detail-table.component';\n\n@Component({\n  selector: 'rh-material-inventory-detail-selector',\n  templateUrl: './material-inventory-detail-selector.component.html',\n  styleUrls: ['./material-inventory-detail-selector.component.less'],\n  providers: [provideValueAccessor(MaterialInventoryDetailSelectorComponent)]\n})\nexport class MaterialInventoryDetailSelectorComponent extends CustomizeBaseControlComponent {\n  rhRelatedFieldData = null;\n  @ViewChild(MaterialInventoryDetailTableComponent) tableComp: MaterialInventoryDetailTableComponent;\n  @Input() rhDynamicKey = 'MaterialInventoryDetail';\n  @Input() rhTitle = '选择物料';\n  @Input() declare rhSize: NzSizeLDSType;\n  @Input() declare rhDisplayMode: RhDisplayMode;\n  @Input() rhDefaultQueryDto = {};\n  @Input() rhMaterialInfo: RhBaseDto;\n\n  iconSetting = 'search';\n  @Input() rhSingleMode = false;\n\n  formKeyFieldName = 'MaterialCode';\n  formTextFieldName = 'MaterialName';\n\n  modelKeyFieldName = 'MaterialCode';\n  modelTextFieldName = 'MaterialName';\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  /** 对应table选中的数据 */\n  rhModel: RhSelectableDto = {};\n\n  /** 动态form字段配置数据 */\n  @Input() rhFieldData: RhDynamicFormFieldDto;\n  /** 整个form的数据 */\n  @Input() declare rhData: RhSafeAny;\n\n  /** 表格Loading */\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  /** selector input上展示的数据，一般为中文 */\n  //displayName: string;\n\n  selectedData: RhSelectableDto[] = [];\n\n  /** 自定义组件的自定义执行函数 */\n  cb: (data: RhSafeAny, ctx: RhSafeAny) => void;\n\n  /** 该组件关联的form名称 */\n  formName: string;\n\n  url: string;\n\n  /** 设置默认搜索接口 */\n  defaultFormInterface: RhDynamicInterfaceDto;\n\n  mappedList = [\n    { sourceName: this.modelKeyFieldName, mappedName: this.formKeyFieldName },\n    { sourceName: this.modelTextFieldName, mappedName: this.formTextFieldName },\n    { sourceName: 'MaterialSpecification', mappedName: 'MaterialSpecification' },\n    { sourceName: 'MeasureUnit', mappedName: 'MeasureUnit' },\n    { sourceName: 'MeasureAuxUnit', mappedName: 'MeasureAuxUnit' },\n    { sourceName: 'LotNum', mappedName: 'LotNum' },\n    { sourceName: 'SN', mappedName: 'SN' },\n    { sourceName: 'WarehouseAreaCode', mappedName: 'WarehouseAreaCode' },\n    { sourceName: 'WarehouseAreaName', mappedName: 'WarehouseAreaName' },\n    { sourceName: 'WarehouseShelfCode', mappedName: 'WarehouseShelfCode' },\n    { sourceName: 'WarehouseShelfName', mappedName: 'WarehouseShelfName' },\n    { sourceName: 'StorageLocationCode', mappedName: 'StorageLocationCode' },\n    { sourceName: 'StorageLocationName', mappedName: 'StorageLocationName' }\n  ];\n\n  constructor(\n    public fb: UntypedFormBuilder,\n    public cdr: ChangeDetectorRef,\n    public router: Router,\n    public dynamicSer: RhBaseDynamicService\n  ) {\n    super(cdr, dynamicSer);\n    this.url = RhRouteHelper.getRealRoute(this.router.url);\n  }\n\n  ngOnInit(): void {\n    this.rhPlaceholder = this.rhFieldData.placeholder as any;\n    this.formName = this.rhFieldData.relatedComponentName;\n    this.setCbValue();\n  }\n\n  // 自定义表单项配置\n  ngOnChanges(changes: SimpleChanges) {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue && rhData.currentValue[this.formKeyFieldName] === null) {\n      this.resetControlValue();\n    } else {\n      this.rhModel = {};\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedData = data || [];\n  }\n\n  setDatas(result: DataResultT<RhSelectableDto[]>) {\n    if (result && result.Success) {\n      this.dataresult = result;\n    } else {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n    }\n  }\n\n  /** 根据填入的code值，获取对应的完整数据，回填到输入框 */\n  getTargetDatas(code: string) {\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n  }\n\n  //#region customize selector interface区域\n  confirmSelect() {\n    this.rhModel = this.selectedData[0];\n    this.rhModelChange.emit(this.selectedData);\n    this.value = this.rhModel[this.modelKeyFieldName];\n    this.displayName = this.rhModel[this.modelTextFieldName];\n    this.displayName = this.getDisplayNameByMode(this.rhFieldData).toString();\n    // 执行对应控件定义的代码\n    if (this.rhData && this.rhModel && this.cb) {\n      this.cb(this.rhData, this.rhModel);\n    }\n    this.setFormDataViaRelatedDatas();\n    // 执行form的相关字段赋值操作\n    this.triggerRelatedForm();\n    this.closeDataModal();\n  }\n\n  resetControlValue() {\n    this.displayName = null;\n    // 重置form对应数据对象\n    this.rhData[this.formKeyFieldName] = null;\n    this.rhData[this.formTextFieldName] = null;\n    //\n    this.mappedList.forEach((ele) => (this.rhData[ele.mappedName] = null));\n    this.rhModel = null;\n  }\n\n  setCbValue() {\n    const cbString = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.cb;\n    if (cbString) {\n      const fn = Function(`return ${cbString}`);\n      if (fn) {\n        this.cb = fn();\n      } else {\n        this.cb = this.setFormData;\n      }\n    } else {\n      // 当没有配置回调函数时，执行默认的回调函数\n      this.cb = this.setFormData;\n    }\n  }\n\n  /** 设置form对应的数据对象的值\n   * @param data form对应的数据对象\n   * @params 设置或者对应table选择的数据\n   */\n  setFormData(data: RhSafeAny, ctx: RhSelectableDto) {\n    data[this.formKeyFieldName] = ctx[this.modelKeyFieldName];\n    data[this.formTextFieldName] = ctx[this.modelTextFieldName];\n  }\n\n  setFormDataViaRelatedDatas() {\n    let relatedDatas = (this.rhFieldData?.config as RhDynamicCustomizeControlConfigDto)?.relatedModelDatas;\n    if (!relatedDatas?.length) {\n      relatedDatas = this.mappedList;\n    }\n    if (relatedDatas?.length) {\n      relatedDatas.forEach((ele) => {\n        this.rhData[ele.mappedName] = this.rhModel[ele.sourceName];\n      });\n    }\n  }\n\n  triggerRelatedForm() {\n    const tempDatas = (this.rhFieldData.config as RhDynamicCustomizeControlConfigDto)?.relatedFieldDatas;\n    const relatedDatas: RhRelatedFieldDataDto[] = tempDatas && tempDatas.length ? tempDatas : this.mappedList;\n    const data: RhCustomizeEventSettingDto = {\n      id: `${this.url}_${this.formName}`,\n      eventType: null,\n      options: null,\n      value: this.rhModel,\n      relatedFieldDatas: relatedDatas\n    };\n    this.dynamicSer.formCustomizeEventTrigger(data);\n  }\n  //#endregion customize selector interface区域结束\n}\n","<nz-input-group [nzSize]=\"rhSize\" [nzSuffix]=\"suffixIconSearch\" [nzAddOnAfter]=\"addOnAfter\">\n  <input type=\"text\" nz-input [ngModel]=\"displayName\" [placeholder]=\"rhPlaceholder\" readonly=\"readonly\" />\n</nz-input-group>\n<ng-template #suffixIconSearch>\n  <a *ngIf=\"displayName && !rhDisabled\" class=\"link-suffix\" (click)=\"clearInputInfo()\">\n    <i nz-icon nzType=\"close-circle\"></i>\n  </a>\n</ng-template>\n\n<ng-template #addOnAfter>\n  <button nz-button nzType=\"link\" type=\"button\" nzSize=\"small\">\n    <a (click)=\"openDataModal($event)\">\n      <i nz-icon [nzType]=\"iconSetting\"></i>\n    </a>\n  </button>\n</ng-template>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"rhTitle\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <ng-container *nzModalContent>\n    <rh-dynamic-description *ngIf=\"rhMaterialInfo\" rhName=\"materialInventoryDesc\" [rhValue]=\"rhMaterialInfo\"></rh-dynamic-description>\n    <nz-card *ngIf=\"isShowDataModal\" [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n      <ng-template #cardTitleTpl>\n        <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedData?.length\">\n          <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n          确定选择\n        </button>\n      </ng-template>\n      <ng-template #cardExtraTpl>\n        <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n          <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n          关闭\n        </button>\n      </ng-template>\n      <div>\n        <rh-material-inventory-detail-table\n          [rhModel]=\"rhModel\"\n          (rhModelChange)=\"onSelectModal($event)\"\n          [rhInterfaceInfo]=\"defaultFormInterface\"\n          [rhSingleMode]=\"rhSingleMode\"\n          [defaultQueryDto]=\"rhDefaultQueryDto\"\n        ></rh-material-inventory-detail-table>\n      </div>\n    </nz-card>\n  </ng-container>\n</nz-modal>\n","import { RhInventoryManageService } from './../../../../inventory-manage.service';\nimport { MsgHelper } from 'rh-base/core';\nimport { InventoryVerificationOrderDetailQueryDto, InventoryVerificationOrderDetailDto } from './../../../../inventory-manage-model';\nimport { RhInventoryCountService } from './../../../inventory-count.service';\nimport { RhBaseDto, DataResultT, RhSelectableDto, RhTableButtonInfoDto } from 'rh-base/model';\nimport { Component, OnInit, Input, SimpleChanges, Output, EventEmitter } from '@angular/core';\n\n@Component({\n  selector: 'rh-replay-manage',\n  templateUrl: './replay-manage.component.html',\n  styleUrls: ['./replay-manage.component.less']\n})\nexport class ReplayManageComponent implements OnInit {\n  @Input() rhData: RhBaseDto;\n  @Output() rhClose = new EventEmitter();\n\n  dataresult: DataResultT<RhSelectableDto[]>;\n  dataLoading = false;\n  extraButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto(\n      'createReplayOrder',\n      '生成复盘单',\n      'primary',\n      false,\n      'file-sync',\n      false,\n      null,\n      (datas) => this.createReplayOrder(datas as RhBaseDto[]),\n      false,\n      true\n    )\n  ];\n\n  currentType = null;\n  radioOptions = [\n    // { Text: '全部', Value: '[]InventoryNormal[]InventoryProfit[]InventoryLosses' },\n    { Text: '全部', Value: null },\n    { Text: '差异', Value: '[]InventoryProfit[]InventoryLosses' },\n    { Text: '盘盈', Value: 'InventoryProfit' },\n    { Text: '盘亏', Value: 'InventoryLosses' }\n  ];\n  // 表格可见性\n  tableVisibleSetting = {};\n\n  get isReadOnly() {\n    return (\n      this.rhData.OrderStatus !== 'CompletedInitialInventoryVerification' &&\n      this.rhData.OrderStatus !== 'CompletedRepeatInventoryVerification'\n    );\n  }\n\n  constructor(private operator: RhInventoryCountService, private inventoryManageSer: RhInventoryManageService) {}\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue) {\n      this.getDatas();\n    }\n  }\n\n  getDatas() {\n    const queryDto = InventoryVerificationOrderDetailQueryDto.create();\n    queryDto.Mode = 8;\n    queryDto.OrderCode = this.rhData.OrderCode;\n    queryDto.InvResultType = this.currentType;\n    this.dataLoading = true;\n    this.operator.GetInventoryVerificationOrderDetailDatas(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        if (!result.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`);\n        }\n        this.dataLoading = false;\n      },\n      () => (this.dataLoading = false)\n    );\n  }\n\n  createReplayOrder(datas: RhBaseDto[]) {\n    this.extraButtonDataset[0].loading = true;\n    this.operator.CreateRepeatInventoryVerificationOrder(datas as InventoryVerificationOrderDetailDto[]).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('生成复盘单成功！');\n          this.rhClose.emit();\n          // this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`生成复盘单失败！${result.Message}`);\n        }\n        this.extraButtonDataset[0].loading = false;\n      },\n      () => (this.extraButtonDataset[0].loading = false)\n    );\n  }\n\n  initTableVisibleSetting() {\n    this.tableVisibleSetting = {};\n    Object.assign(this.tableVisibleSetting, this.inventoryManageSer.initVisibleSetting());\n  }\n}\n","<div class=\"rh-full\">\r\n  <nz-radio-group [(ngModel)]=\"currentType\" (ngModelChange)=\"getDatas()\" class=\"radio\">\r\n    <label *ngFor=\"let item of radioOptions\" nz-radio [nzValue]=\"item.Value\">{{ item.Text }}</label>\r\n  </nz-radio-group>\r\n  <ng-container *ngIf=\"isReadOnly; else handleTpl\">\r\n    <rh-dynamic-table\r\n      rhName=\"replaySourceTableReadOnly\"\r\n      [rhTableData]=\"dataresult\"\r\n      [rhTableDataloading]=\"dataLoading\"\r\n      [rhVisibleSetting]=\"tableVisibleSetting\"\r\n    ></rh-dynamic-table>\r\n  </ng-container>\r\n  <ng-template #handleTpl>\r\n    <rh-dynamic-table\r\n      rhName=\"replaySourceTable\"\r\n      [rhTableData]=\"dataresult\"\r\n      [rhTableDataloading]=\"dataLoading\"\r\n      [rhExtraButtonDataset]=\"extraButtonDataset\"\r\n      [rhVisibleSetting]=\"tableVisibleSetting\"\r\n    ></rh-dynamic-table>\r\n  </ng-template>\r\n</div>\r\n","import { MsgHelper } from 'rh-base/core';\nimport {\n  InventoryVerificationOrderMasterDto,\n  InventoryVerificationResultQueryDto,\n  InventoryVerificationOrderDetailQueryDto\n} from './../../../../inventory-manage-model';\nimport { RhInventoryManageService } from './../../../../inventory-manage.service';\nimport { RhInventoryCountService } from './../../../inventory-count.service';\nimport { DataResultT, RhSelectableDto, RhBaseDto, RhTableButtonInfoDto, RhSafeAny } from 'rh-base/model';\nimport { Component, OnInit, Input, SimpleChanges } from '@angular/core';\n\n@Component({\n  selector: 'rh-inventory-gain-loss-manage',\n  templateUrl: './inventory-gain-loss-manage.component.html',\n  styleUrls: ['./inventory-gain-loss-manage.component.less']\n})\nexport class InventoryGainLossManageComponent implements OnInit {\n  @Input() rhData: RhBaseDto;\n\n  dataresult: DataResultT<RhSelectableDto[]>;\n  dataLoading = false;\n\n  gainDataResult: DataResultT<RhSelectableDto[]>;\n  lossDataResult: DataResultT<RhSelectableDto[]>;\n  gainLossDataLoading = false;\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto(\n      'createGainOrder',\n      '生成盘盈单',\n      'primary',\n      false,\n      'apartment',\n      false,\n      null,\n      () => this.createGainOrder(),\n      true,\n      true\n    ),\n    new RhTableButtonInfoDto('createLossOrder', '生成盘亏单', 'primary', false, 'apartment', false, null, () => this.createLossOrder(), true, true)\n  ];\n\n  // 表格可见性\n  tableVisibleSetting = {};\n  // 盘盈盘亏值\n  gainValue = 'InventoryProfit';\n  lossValue = 'InventoryLosses';\n\n  get isReadOnly() {\n    return (\n      this.rhData.OrderStatus !== 'CompletedInitialInventoryVerification' &&\n      this.rhData.OrderStatus !== 'CompletedRepeatInventoryVerification'\n    );\n  }\n\n  constructor(private operator: RhInventoryCountService, private inventoryManageSer: RhInventoryManageService) {}\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue) {\n      // if (1) {\n      //   this.getDatas();\n      // } else {\n      //   this.getGainLossDatas();\n      // }\n      this.getDatas();\n      this.getGainLossDatas();\n    }\n  }\n\n  getDatas() {\n    const queryDto = InventoryVerificationOrderDetailQueryDto.create();\n    queryDto.Mode = 8;\n    queryDto.OrderCode = this.rhData.OrderCode;\n    this.dataLoading = true;\n    this.operator.GetInventoryVerificationOrderDetailDatas(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        if (!result.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`);\n        }\n        this.dataLoading = false;\n      },\n      () => (this.dataLoading = false)\n    );\n  }\n\n  getGainLossDatas() {\n    const queryDto = InventoryVerificationResultQueryDto.create();\n    queryDto.OrderCode = this.rhData.OrderCode;\n    queryDto.Mode = 8;\n    this.gainLossDataLoading = true;\n    this.operator.GetInventoryVerificationResultDatas(queryDto).subscribe(\n      (result) => {\n        if (!result.Success) {\n          MsgHelper.ShowWarningMessage(`查询无盘盈盘亏单明细！${result.Message}`);\n        } else {\n          this.gainDataResult = { Attach: result.Attach.filter((f) => f.InvResultType === this.gainValue) } as RhSafeAny;\n          this.lossDataResult = { Attach: result.Attach.filter((f) => f.InvResultType === this.lossValue) } as RhSafeAny;\n          this.gainDataResult.httpRequestPara = Object.assign(queryDto, { InvResultType: this.gainValue });\n          this.lossDataResult.httpRequestPara = Object.assign(queryDto, { InvResultType: this.lossValue });\n        }\n        this.gainLossDataLoading = false;\n      },\n      () => (this.gainLossDataLoading = false)\n    );\n  }\n\n  createGainOrder() {\n    this.titleButtonDataset[0].loading = true;\n    this.operator.CreateInventoryProfitOrder(this.rhData as InventoryVerificationOrderMasterDto).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('生成盘盈单成功！');\n          this.getGainLossDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`生成盘盈单失败！${result.Message}`);\n        }\n        this.titleButtonDataset[0].loading = false;\n      },\n      () => (this.titleButtonDataset[0].loading = false)\n    );\n  }\n\n  createLossOrder() {\n    this.titleButtonDataset[1].loading = true;\n    this.operator.CreateInventoryLossesOrder(this.rhData as InventoryVerificationOrderMasterDto).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('生成盘亏单成功！');\n          this.getGainLossDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`生成盘亏单失败！${result.Message}`);\n        }\n        this.titleButtonDataset[1].loading = false;\n      },\n      () => (this.titleButtonDataset[1].loading = false)\n    );\n  }\n\n  initTableVisibleSetting() {\n    this.tableVisibleSetting = {};\n    Object.assign(this.tableVisibleSetting, this.inventoryManageSer.initVisibleSetting());\n  }\n}\n","<!-- <ng-container *ngIf=\"1; else gainLossDatasetTpl\">\r\n  <div class=\"rh-full\">\r\n    <rh-dynamic-table\r\n      rhName=\"gainLossSourceTable\"\r\n      [rhTableData]=\"dataresult\"\r\n      [rhTableDataloading]=\"dataLoading\"\r\n      [rhTitleButtonDataset]=\"titleButtonDataset\"\r\n      [rhVisibleSetting]=\"tableVisibleSetting\"\r\n    ></rh-dynamic-table>\r\n  </div>\r\n</ng-container>\r\n\r\n<ng-template #gainLossDatasetTpl>\r\n  <nz-tabset nzType=\"card\">\r\n    <nz-tab nzTitle=\"盘盈单\">\r\n      <rh-dynamic-table rhName=\"gainTable\" [rhTableData]=\"gainDataResult\" [rhTableDataloading]=\"gainDataLoading\"></rh-dynamic-table>\r\n    </nz-tab>\r\n    <nz-tab nzTitle=\"盘亏单\">\r\n      <rh-dynamic-table rhName=\"lossTable\" [rhTableData]=\"lossDataResult\" [rhTableDataloading]=\"lossDataLoading\"></rh-dynamic-table>\r\n    </nz-tab>\r\n  </nz-tabset>\r\n</ng-template> -->\r\n\r\n<nz-tabset nzType=\"card\">\r\n  <nz-tab nzTitle=\"盘点明细\">\r\n    <ng-container *ngIf=\"isReadOnly; else handleTpl\">\r\n      <rh-dynamic-table\r\n        rhName=\"gainLossSourceTableReadOnly\"\r\n        [rhTableData]=\"dataresult\"\r\n        [rhTableDataloading]=\"dataLoading\"\r\n        [rhVisibleSetting]=\"tableVisibleSetting\"\r\n      ></rh-dynamic-table>\r\n    </ng-container>\r\n    <ng-template #handleTpl>\r\n      <rh-dynamic-table\r\n        rhName=\"gainLossSourceTable\"\r\n        [rhTableData]=\"dataresult\"\r\n        [rhTableDataloading]=\"dataLoading\"\r\n        [rhTitleButtonDataset]=\"titleButtonDataset\"\r\n        [rhVisibleSetting]=\"tableVisibleSetting\"\r\n      ></rh-dynamic-table>\r\n    </ng-template>\r\n  </nz-tab>\r\n  <nz-tab nzTitle=\"盘盈单\">\r\n    <rh-dynamic-table rhName=\"gainTable\" [rhTableData]=\"gainDataResult\" [rhTableDataloading]=\"gainLossDataLoading\"></rh-dynamic-table>\r\n  </nz-tab>\r\n  <nz-tab nzTitle=\"盘亏单\">\r\n    <rh-dynamic-table rhName=\"lossTable\" [rhTableData]=\"lossDataResult\" [rhTableDataloading]=\"gainLossDataLoading\"></rh-dynamic-table>\r\n  </nz-tab>\r\n</nz-tabset>\r\n","import { InventoryVerificationOrderDetailQueryDto, InventoryVerificationOrderMasterDto } from './../../../../inventory-manage-model';\nimport { RhInventoryManageService } from './../../../../inventory-manage.service';\nimport { RhInventoryCountService } from './../../../inventory-count.service';\nimport { Component, OnInit, Input, SimpleChanges, Output, EventEmitter } from '@angular/core';\nimport { RhBaseDto, DataResultT, RhSelectableDto, RhTableButtonInfoDto } from 'rh-base/model';\nimport { MsgHelper } from 'rh-base/core';\n\n@Component({\n  selector: 'rh-difference-audit',\n  templateUrl: './difference-audit.component.html',\n  styleUrls: ['./difference-audit.component.less']\n})\nexport class DifferenceAuditComponent implements OnInit {\n  @Input() rhData: RhBaseDto;\n  @Output() rhDetailsUpdate = new EventEmitter();\n  @Output() rhClose = new EventEmitter();\n\n  dataresult: DataResultT<RhSelectableDto[]>;\n  dataLoading = false;\n  extraButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto(\n      'submitAudit',\n      '提交审核',\n      'primary',\n      false,\n      'audit',\n      false,\n      null,\n      () => this.submitInventoryVerificationDifferent(),\n      true,\n      true\n    ),\n    new RhTableButtonInfoDto(\n      'closedVerification',\n      '完成盘点',\n      'primary',\n      false,\n      'check',\n      false,\n      null,\n      () => this.closedInventoryVerificationOrder(),\n      true,\n      true\n    )\n  ];\n  extraButtonDatasetT: RhTableButtonInfoDto[] = [];\n\n  // 表格可见性\n  tableVisibleSetting = {};\n\n  constructor(private operator: RhInventoryCountService, private inventoryManageSer: RhInventoryManageService) {}\n\n  ngOnInit(): void {\n    this.initPageConfig();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhData } = changes;\n    if (rhData && rhData.currentValue) {\n      if (\n        this.rhData.OrderStatus === 'CompletedInitialInventoryVerification' ||\n        this.rhData.OrderStatus === 'CompletedRepeatInventoryVerification'\n      ) {\n        this.extraButtonDatasetT = [this.extraButtonDataset[0]];\n      } else if (this.rhData.OrderStatus === 'AuditDifferences') {\n        this.extraButtonDatasetT = [this.extraButtonDataset[1]];\n      }\n      this.getDatas();\n    }\n  }\n\n  getDatas() {\n    const queryDto = InventoryVerificationOrderDetailQueryDto.create();\n    queryDto.Mode = 8;\n    queryDto.OrderCode = this.rhData.OrderCode;\n    this.dataLoading = true;\n    this.operator.GetInventoryVerificationOrderDetailDatas(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        if (!result.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`);\n        }\n        this.dataLoading = false;\n      },\n      () => (this.dataLoading = false)\n    );\n  }\n\n  submitInventoryVerificationDifferent() {\n    this.extraButtonDataset[0].loading = true;\n    this.operator.SubmitInventoryVerificationDifferent(this.rhData as InventoryVerificationOrderMasterDto).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('提交审核成功！');\n          this.rhDetailsUpdate.emit();\n        } else {\n          MsgHelper.ShowWarningMessage(`提交审核失败！${result.Message}`);\n        }\n        this.extraButtonDataset[0].loading = false;\n      },\n      () => (this.extraButtonDataset[0].loading = false)\n    );\n  }\n\n  closedInventoryVerificationOrder() {\n    this.extraButtonDataset[1].loading = true;\n    this.operator.ClosedInventoryVerificationOrder(this.rhData as InventoryVerificationOrderMasterDto).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('完成盘点成功！');\n          // this.rhDetailsUpdate.emit();\n          this.rhClose.emit();\n        } else {\n          MsgHelper.ShowWarningMessage(`完成盘点失败！${result.Message}`);\n        }\n        this.extraButtonDataset[1].loading = false;\n      },\n      () => (this.extraButtonDataset[1].loading = false)\n    );\n  }\n\n  initPageConfig() {\n    this.tableVisibleSetting = {};\n    Object.assign(this.tableVisibleSetting, this.inventoryManageSer.initVisibleSetting());\n  }\n}\n","<div class=\"rh-full\">\n  <d-splitter orientation=\"vertical\">\n    <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n      <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n        <rh-dynamic-description [rhValue]=\"rhData\"></rh-dynamic-description>\n      </div>\n    </d-splitter-pane>\n    <d-splitter-pane>\n      <rh-dynamic-table\n        rhName=\"diffAuditSourceTable\"\n        [rhTableData]=\"dataresult\"\n        [rhTableDataloading]=\"dataLoading\"\n        [rhExtraButtonDataset]=\"extraButtonDatasetT\"\n        [rhVisibleSetting]=\"tableVisibleSetting\"\n      ></rh-dynamic-table>\n    </d-splitter-pane>\n  </d-splitter>\n</div>\n","import { InventoryVerificationOrderMasterQueryDto, InventoryVerificationOrderMasterDto } from './../../inventory-manage-model';\nimport { RhInventoryManageService } from './../../inventory-manage.service';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport {\n  DataResultT,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  RhLoginedUserDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto,\n  RhBaseDto\n} from 'rh-base/model';\nimport { RhStorageService, MsgHelper } from 'rh-base/core';\nimport { RhInventoryCountService } from '../inventory-count.service';\n\ntype tabType = 'replayManage' | 'inventoryGainLossManage' | 'differenceAudit' | 'snapshoot';\n\n@Component({\n  selector: 'rh-inventory-verification-difference',\n  templateUrl: './inventory-verification-difference.component.html',\n  styleUrls: ['./inventory-verification-difference.component.less']\n})\nexport class RhInventoryVerificationDifferenceComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  selectedData: RhSelectableDto;\n\n  defaultFieldDataset = [];\n  titleButtonDataset: RhTableButtonInfoDto[] = [];\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('replayManage', '复盘管理', 'default', false, 'copy', false, null, (data) => this.openReplayManageTab(data), true),\n    new RhTableButtonInfoDto(\n      'inventoryGainLossManage',\n      '盘盈盘亏管理',\n      'default',\n      false,\n      'form',\n      false,\n      null,\n      (data) => this.openInventoryGainLossManageTab(data),\n      true\n    ),\n    new RhTableButtonInfoDto(\n      'inventoryGainLossView',\n      '盘盈盘亏查看',\n      'default',\n      false,\n      'eye',\n      false,\n      null,\n      (data) => this.openInventoryGainLossManageTab(data),\n      true\n    ),\n    new RhTableButtonInfoDto(\n      'differenceAudit',\n      '差异审核',\n      'default',\n      false,\n      'audit',\n      false,\n      null,\n      (data) => this.openDifferenceAuditTab(data),\n      true\n    ),\n    new RhTableButtonInfoDto(\n      'closedVerification',\n      '完成盘点',\n      'primary',\n      false,\n      'check',\n      false,\n      null,\n      (data) => this.closedInventoryVerificationOrder(data),\n      true\n    ),\n    new RhTableButtonInfoDto('snapshoot', '盘点快照', 'default', false, 'eye', false, null, (data) => this.openSnapshootTab(data), true)\n  ];\n\n  // 辅助字段\n  currentUser: RhLoginedUserDto;\n  curFactoryDefaultQueryDto = {};\n  currentTab: tabType;\n\n  get isReadOnly() {\n    return (\n      this.selectedData.OrderStatus !== 'CompletedInitialInventoryVerification' &&\n      this.selectedData.OrderStatus !== 'CompletedRepeatInventoryVerification'\n    );\n  }\n\n  constructor(\n    public storage: RhStorageService,\n    private operator: RhInventoryCountService,\n    private inventoryManageSer: RhInventoryManageService\n  ) {}\n\n  ngOnInit(): void {\n    this.initPageConfig();\n  }\n\n  initPageConfig() {\n    /// 复盘管理\n    this.editButtonDataset[0].visible = `data=>data.OrderStatus==='CompletedInitialInventoryVerification'`;\n    // 盘盈盘亏管理\n    this.editButtonDataset[1].visible = `data=>data.OrderStatus==='CompletedInitialInventoryVerification'||data.OrderStatus==='CompletedRepeatInventoryVerification'`;\n    // 盘盈盘亏查看\n    this.editButtonDataset[2].visible = `data=>data.OrderStatus!=='CompletedInitialInventoryVerification'&&data.OrderStatus!=='CompletedRepeatInventoryVerification'`;\n    // 差异审核\n    this.editButtonDataset[3].visible = `data=>data.OrderStatus==='CompletedInitialInventoryVerification'||data.OrderStatus==='CompletedRepeatInventoryVerification'||data.OrderStatus==='AuditDifferences'`;\n    // 完成盘点\n    this.editButtonDataset[4].visible = `data=>data.OrderStatus==='AuditDifferences'`;\n    // 盘点快照\n    this.editButtonDataset[5].visible = `data=>data.OrderStatus==='Closed'`;\n    // 获取当前用户信息\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryDefaultQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  openSnapshootTab(data: RhBaseDto) {\n    this.selectedData = data;\n    this.currentTab = 'snapshoot';\n    this.selectedIndex = 1;\n  }\n\n  closeDetailTab() {\n    this.selectedIndex = 0;\n  }\n\n  // 复盘管理\n  openReplayManageTab(data: RhBaseDto) {\n    this.selectedData = data;\n    this.currentTab = 'replayManage';\n    this.selectedIndex = 1;\n  }\n\n  // 盘盈盘亏管理\n  openInventoryGainLossManageTab(data: RhBaseDto) {\n    this.selectedData = data;\n    this.currentTab = 'inventoryGainLossManage';\n    this.selectedIndex = 1;\n  }\n\n  // 差异审核\n  openDifferenceAuditTab(data: RhBaseDto) {\n    this.selectedData = data;\n    this.currentTab = 'differenceAudit';\n    this.selectedIndex = 1;\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.getDatas();\n    }\n  }\n\n  getDetails() {\n    const queryDto = InventoryVerificationOrderMasterQueryDto.create();\n    queryDto.OrderCode = this.selectedData.OrderCode;\n    this.operator.GetInventoryVerificationOrderMasterDatas(queryDto).subscribe((result) => {\n      if (result.Success && result.Attach.length === 1) {\n        this.selectedData = result.Attach[0];\n      }\n    });\n  }\n\n  detailsUpdate() {\n    this.getDetails();\n  }\n\n  closedInventoryVerificationOrder(data: RhBaseDto) {\n    this.operator.ClosedInventoryVerificationOrder(data as InventoryVerificationOrderMasterDto).subscribe((result) => {\n      if (result.Success) {\n        MsgHelper.ShowSuccessMessage('完成盘点成功！');\n        this.getDatas();\n      } else {\n        MsgHelper.ShowWarningMessage(`完成盘点失败！${result.Message}`);\n      }\n    });\n  }\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form #queryForm rhName=\"queryForm\" rhType=\"query\" [rhValue]=\"curFactoryDefaultQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\" (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"></rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table [rhTableData]=\"dataresult\" [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\" (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\" [rhTitleButtonDataset]=\"titleButtonDataset\">\n              </rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'replayManage'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>复盘管理</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\"\n            (click)=\"closeDetailTab()\"></i></span>\n      </ng-template>\n      <rh-replay-manage [rhData]=\"selectedData\" (rhClose)=\"closeDetailTab()\"></rh-replay-manage>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'inventoryGainLossManage'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>盘盈盘亏{{isReadOnly?'查看':'管理'}}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\"\n            (click)=\"closeDetailTab()\"></i></span>\n      </ng-template>\n      <rh-inventory-gain-loss-manage [rhData]=\"selectedData\"></rh-inventory-gain-loss-manage>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'differenceAudit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>差异审核</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\"\n            (click)=\"closeDetailTab()\"></i></span>\n      </ng-template>\n      <rh-difference-audit [rhData]=\"selectedData\" (rhDetailsUpdate)=\"detailsUpdate()\" (rhClose)=\"closeDetailTab()\">\n      </rh-difference-audit>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'snapshoot'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>盘点快照</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\"\n            (click)=\"closeDetailTab()\"></i></span>\n      </ng-template>\n      <rh-inventory-verification-snapshoot [rhData]=\"selectedData\"></rh-inventory-verification-snapshoot>\n    </nz-tab>\n  </nz-tabset>\n</div>","import { RhSharedManageModule } from './../../shared-manage/shared-manage.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { RhSharedModule } from 'rh-base/shared';\r\nimport { RhInventoryCountService } from './inventory-count.service';\r\nimport { RhInventoryVerificationSchemeComponent } from './inventory-verification-scheme/inventory-verification-scheme.component';\r\nimport { InventoryVerificationSchemeSelectorComponent } from './snippets/inventory-verification-scheme-selector/inventory-verification-scheme-selector.component';\r\nimport { InventoryVerificationSchemeTableComponent } from './snippets/inventory-verification-scheme-selector/inventory-verification-scheme-table/inventory-verification-scheme-table.component';\r\nimport { RhInventoryVerificationOrderComponent } from './inventory-verification-order/inventory-verification-order.component';\r\nimport { InventoryVerificationOrderDetailsComponent } from './inventory-verification-order/inventory-verification-order-details/inventory-verification-order-details.component';\r\nimport { RhInventoryVerificationHandleComponent } from './inventory-verification-handle/inventory-verification-handle.component';\r\nimport { InventoryVerificationDataSourceComponent } from './inventory-verification-order/inventory-verification-data-source/inventory-verification-data-source.component';\r\nimport { MaterialInventoryDetailSelectorComponent } from './snippets/material-inventory-detail-selector/material-inventory-detail-selector.component';\r\nimport { MaterialInventoryDetailTableComponent } from './snippets/material-inventory-detail-selector/material-inventory-detail-table/material-inventory-detail-table.component';\r\nimport { RhInventoryVerificationDifferenceComponent } from './inventory-verification-difference/inventory-verification-difference.component';\r\nimport { ReplayManageComponent } from './inventory-verification-difference/snippets/replay-manage/replay-manage.component';\r\nimport { InventoryGainLossManageComponent } from './inventory-verification-difference/snippets/inventory-gain-loss-manage/inventory-gain-loss-manage.component';\r\nimport { DifferenceAuditComponent } from './inventory-verification-difference/snippets/difference-audit/difference-audit.component';\r\nimport { InventoryVerificationSnapshootComponent } from './inventory-verification-difference/snippets/inventory-verification-snapshoot/inventory-verification-snapshoot.component';\r\n\r\nconst COMPONENTS = [\r\n  RhInventoryVerificationSchemeComponent,\r\n  RhInventoryVerificationOrderComponent,\r\n  RhInventoryVerificationHandleComponent,\r\n  RhInventoryVerificationDifferenceComponent\r\n];\r\n\r\nconst SNIPPETS = [\r\n  InventoryVerificationSchemeSelectorComponent,\r\n  InventoryVerificationSchemeTableComponent,\r\n  InventoryVerificationOrderDetailsComponent,\r\n  InventoryVerificationDataSourceComponent,\r\n  MaterialInventoryDetailSelectorComponent,\r\n  MaterialInventoryDetailTableComponent,\r\n  ReplayManageComponent,\r\n  InventoryGainLossManageComponent,\r\n  DifferenceAuditComponent\r\n];\r\n\r\n@NgModule({\r\n  declarations: [...COMPONENTS, ...SNIPPETS, InventoryVerificationSnapshootComponent],\r\n  imports: [RhSharedModule, RhSharedManageModule],\r\n  providers: [RhInventoryCountService]\r\n})\r\nexport class RhInventoryCountModule {}\r\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class RhInventoryAdjustService {\n\n  constructor() { }\n}\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { MsgHelper } from 'rh-base/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { DataResultT, RhSelectableDto, CodeClassModel, RhDynamicTableFieldDto, RhTableQueryOptionDto } from 'rh-base/model';\n\n@Component({\n  selector: 'rh-clear-zero-inventory',\n  templateUrl: './clear-zero-inventory.component.html',\n  styleUrls: ['./clear-zero-inventory.component.less']\n})\nexport class RhClearZeroInventoryComponent implements OnInit {\n\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  defaultFieldDataset = [];\n\n  constructor() {\n    //\n  }\n\n  ngOnInit(): void {\n    //\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n}\n","<nz-tabset>\n  <nz-tab nzTitle=\"数据展示\">\n    <div class=\"rh-full\">\n      <d-splitter orientation=\"vertical\">\n        <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n          <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n            <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n              <ng-template #nzAlertTemplate>\n                <rh-dynamic-form\n                  #queryForm\n                  (rhInterfaceDataChange)=\"setDatas($event)\"\n                  (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                  (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                ></rh-dynamic-form>\n              </ng-template>\n            </nz-alert>\n          </div>\n        </d-splitter-pane>\n        <d-splitter-pane>\n          <div class=\"rh-full\">\n            <rh-dynamic-table\n              [rhTableData]=\"dataresult\"\n              [rhTableDataloading]=\"dataLoading\"\n              [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n              (rhRefresh)=\"refreshDatas($event)\"\n            ></rh-dynamic-table>\n          </div>\n        </d-splitter-pane>\n      </d-splitter>\n    </div>\n  </nz-tab>\n</nz-tabset>\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\nimport { CodeClassModel, DataResultT, RhDynamicTableFieldDto, RhSelectableDto, RhTableQueryOptionDto, RhTableButtonInfoDto, RhBaseDto, RhSafeAny, RhLoginedUserDto } from 'rh-base/model';\nimport { DynamicFormComponent } from 'rh-base/shared';\n\n@Component({\n  selector: 'rh-abnormal-inventory-adjustment',\n  templateUrl: './abnormal-inventory-adjustment.component.html',\n  styleUrls: ['./abnormal-inventory-adjustment.component.less']\n})\nexport class RhAbnormalInventoryAdjustmentComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  defaultFieldDataset = [];\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('adjustup', '调增', 'default', false, 'up-circle', false, null, (data) => this.openTransactQtyAdjustModal(data, 'up'), true, true, 'green'),\n    new RhTableButtonInfoDto('adjustdown', '调减', 'default', false, 'down-circle', false, null, (data) => this.openTransactQtyAdjustModal(data, 'down'), true, true, 'red')\n  ];\n\n  currentAdjustType: 'up' | 'down' = 'up';\n  currnetAdjustData: RhBaseDto;\n  isShowTransactQtyAdjustModal = false;\n  currentUser: RhLoginedUserDto;\n\n  beforeSubmit = (data: RhBaseDto) => {\n    // 单据操作人信息\n    data.OrderCreatorCode = this.currentUser.UserName;\n    data.OrderCreatorName = this.currentUser.DisplayName;\n\n    if (this.currentAdjustType === 'down') {\n      data.TransactQty = Number(`-${data.TransactQty}`);\n    }\n    return true;\n  }\n\n  constructor(private storage: RhStorageService) {\n    //\n  }\n\n  ngOnInit(): void {\n    this.currentUser = this.storage.getUserSession()?.User;\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  /** 打开调整数量弹窗 */\n  openTransactQtyAdjustModal(data: RhBaseDto, type: 'up' | 'down') {\n    this.currnetAdjustData = data;\n    this.currentAdjustType = type;\n    this.isShowTransactQtyAdjustModal = true;\n  }\n\n  closeTransactQtyAdjustModal() {\n    this.isShowTransactQtyAdjustModal = false;\n  }\n\n  onAdjustData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('调整数量成功！');\n      this.closeTransactQtyAdjustModal();\n      this.getDatas();\n    } else {\n      MsgHelper.ShowWarningModal(`调整数量失败！${result.Message}`);\n    }\n  }\n}\n","<nz-tabset>\n  <nz-tab nzTitle=\"数据展示\">\n    <div class=\"rh-full\">\n      <d-splitter orientation=\"vertical\">\n        <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n          <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n            <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n              <ng-template #nzAlertTemplate>\n                <rh-dynamic-form\n                  #queryForm\n                  (rhInterfaceDataChange)=\"setDatas($event)\"\n                  (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                  (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                ></rh-dynamic-form>\n              </ng-template>\n            </nz-alert>\n          </div>\n        </d-splitter-pane>\n        <d-splitter-pane>\n          <div class=\"rh-full\">\n            <rh-dynamic-table\n              [rhTableData]=\"dataresult\"\n              [rhTableDataloading]=\"dataLoading\"\n              [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n              [rhEditButtonDataset]=\"editButtonDataset\"\n              (rhRefresh)=\"refreshDatas($event)\"\n            ></rh-dynamic-table>\n          </div>\n        </d-splitter-pane>\n      </d-splitter>\n    </div>\n  </nz-tab>\n</nz-tabset>\n\n<nz-modal\n  [nzVisible]=\"isShowTransactQtyAdjustModal\"\n  [nzTitle]=\"'数量' + (currentAdjustType === 'up' ? '调增' : '调减')\"\n  [nzMaskClosable]=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeTransactQtyAdjustModal()\"\n>\n  <ng-container *nzModalContent>\n    <rh-dynamic-form\n      #transactQtyAdjustForm\n      rhName=\"transactQtyAdjustForm\"\n      rhType=\"edit\"\n      rhLayout=\"horizontal\"\n      [rhValue]=\"currnetAdjustData\"\n      [rhBeforeSubmit]=\"beforeSubmit\"\n      (rhInterfaceDataChange)=\"onAdjustData($event)\"\n      (rhClose)=\"closeTransactQtyAdjustModal()\"\n    ></rh-dynamic-form>\n  </ng-container>\n</nz-modal>\n","import { NgModule } from '@angular/core';\nimport { RhSharedModule } from 'rh-base/shared';\nimport { RhInventoryAdjustService } from './inventory-adjust.service';\nimport { RhClearZeroInventoryComponent } from './clear-zero-inventory/clear-zero-inventory.component';\nimport { RhAbnormalInventoryAdjustmentComponent } from './abnormal-inventory-adjustment/abnormal-inventory-adjustment.component';\n\nconst COMPONENTS = [RhClearZeroInventoryComponent, RhAbnormalInventoryAdjustmentComponent];\n\n@NgModule({\n  declarations: [...COMPONENTS],\n  imports: [\n    RhSharedModule\n  ],\n  providers: [RhInventoryAdjustService]\n})\nexport class RhInventoryAdjustModule { }\n","import { RhInventoryControlModule } from './inventory-control/inventory-control.module';\nimport { NgModule } from '@angular/core';\nimport { RhInventorySearchModule } from './inventory-search/inventory-search.module';\nimport { RhInventoryCountModule } from './inventory-count/inventory-count.module';\nimport { RhInventoryManageService } from './inventory-manage.service';\nimport { RhInventoryAdjustModule } from './inventory-adjust/inventory-adjust.module';\n\nconst MODULES = [RhInventorySearchModule, RhInventoryCountModule, RhInventoryControlModule, RhInventoryAdjustModule];\n\n@NgModule({\n  declarations: [],\n  imports: [...MODULES],\n  providers: [RhInventoryManageService]\n})\nexport class RhInventoryManageModule {}\n","import { Injectable } from '@angular/core';\nimport { DataResultT, OpResult, RhBaseDto, RhSelectableDto } from 'rh-base/model';\nimport {\n  RhApiUrlsService,\n  RhWmsSysConfigService\n} from 'rh-base/core';\nimport { RhInventoryControlManageService } from './../../shared-manage/inventory-control/inventory-control-manage.service';\nimport { Observable } from 'rxjs';\nimport {\n  SaleDeliveryOrderDetailDto,\n  SaleDeliveryOrderMasterDto,\n  SaleOrderDetailDto,\n  SaleOrderMasterDto\n} from './sale-delivery-order-model';\n\n@Injectable()\nexport class RhSaleOrderManageService {\n  constructor(\n    private apiUrls: RhApiUrlsService,\n    private wmsSysConfigSer: RhWmsSysConfigService,\n    private inventoryControlSer: RhInventoryControlManageService\n  ) { }\n  //#region 销售发货单\n  /**\n   *  批量存储销售发货单明细数据\n   */\n  StoreSaleDeliveryOrderDetailDatas(SaleDeliveryOrderDetailDto: RhSelectableDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('BusinessOrdersManageApi', 'StoreSaleDeliveryOrderDetailDatas', SaleDeliveryOrderDetailDto);\n  }\n\n  /**\n   *  存储销售发货单单头数据\n   */\n  StoreSaleDeliveryOrderMasterData(dto: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('BusinessOrdersManageApi', 'StoreSaleDeliveryOrderMasterData', dto);\n  }\n\n  /**\n   *  获取销售发货单单头数据\n   */\n  GetSaleDeliveryOrderMasterDatas(queryDto: RhBaseDto): Observable<DataResultT<SaleDeliveryOrderMasterDto[]>> {\n    return this.apiUrls.PostRhpWms('BusinessOrdersManageApi', 'GetSaleDeliveryOrderMasterDatas', queryDto);\n  }\n\n  /**\n   *  批量移除销售发货单单头数据\n   */\n  RemoveSaleDeliveryOrderMasterDatas(SaleDeliveryOrderMasterDto: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('BusinessOrdersManageApi', 'RemoveSaleDeliveryOrderMasterDatas', SaleDeliveryOrderMasterDto);\n  }\n\n  /**\n   *  获取销售发货单单体数据\n   */\n  GetSaleDeliveryOrderDetailDatas(queryDto: RhBaseDto): Observable<DataResultT<SaleDeliveryOrderDetailDto[]>> {\n    return this.apiUrls.PostRhpWms('BusinessOrdersManageApi', 'GetSaleDeliveryOrderDetailDatas', queryDto);\n  }\n\n  /**\n   *  批量移除销售发货单明细数据\n   */\n  RemoveSaleDeliveryOrderDetailDatas(SaleDeliveryOrderDetailDto: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('BusinessOrdersManageApi', 'RemoveSaleDeliveryOrderDetailDatas', SaleDeliveryOrderDetailDto);\n  }\n\n  /**\n   *  编辑销售发货单单头数据\n   */\n  UpdateSaleDeliveryOrderMasterData(dto: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('BusinessOrdersManageApi', 'UpdateSaleDeliveryOrderMasterData', dto);\n  }\n  //#endregion 销售发货单结束\n\n  //#region 销售订单\n\n  /**\n   *  获取销售订单单体数据\n   */\n  GetSaleOrderDetailDatas(queryDto: RhBaseDto): Observable<DataResultT<SaleOrderDetailDto[]>> {\n    return this.apiUrls.PostRhpWms('BusinessOrdersManageApi', 'GetSaleOrderDetailDatas', queryDto);\n  }\n\n  /**\n   *  批量存储销售订单明细数据\n   */\n  StoreSaleOrderDetailDatas(SaleOrderDetailDto: RhSelectableDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('BusinessOrdersManageApi', 'StoreSaleOrderDetailDatas', SaleOrderDetailDto);\n  }\n\n  /**\n   *  批量移除销售订单明细数据\n   */\n  RemoveSaleOrderDetailDatas(SaleOrderDetailDto: RhSelectableDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('BusinessOrdersManageApi', 'RemoveSaleOrderDetailDatas', SaleOrderDetailDto);\n  }\n\n  /**\n   *  存储销售订单单头数据\n   */\n  StoreSaleOrderMasterData(dto: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('BusinessOrdersManageApi', 'StoreSaleOrderMasterData', dto);\n  }\n\n  /**\n   *  编辑销售订单单头数据\n   */\n  UpdateSaleOrderMasterData(dto: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('BusinessOrdersManageApi', 'UpdateSaleOrderMasterData', dto);\n  }\n\n  /**\n   *  获取销售订单单头数据\n   */\n  GetSaleOrderMasterDatas(queryDto: RhBaseDto): Observable<DataResultT<SaleOrderMasterDto[]>> {\n    return this.apiUrls.PostRhpWms('BusinessOrdersManageApi', 'GetSaleOrderMasterDatas', queryDto);\n  }\n\n  /**\n   *  批量移除销售订单单头数据\n   */\n  RemoveSaleOrderMasterDatas(SaleOrderMasterDto: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('BusinessOrdersManageApi', 'RemoveSaleOrderMasterDatas', SaleOrderMasterDto);\n  }\n\n  //#endregion 销售订单结束\n}\n","import { Injectable } from '@angular/core';\nimport { RhDynamicCustomizeControlConfigDto, RhDynamicFormFieldDto } from 'rh-base/model';\nimport {\n  RhApiUrlsService,\n  RhWmsSysConfigService\n} from 'rh-base/core';\nimport { RhInventoryControlManageService } from './../shared-manage/inventory-control/inventory-control-manage.service';\n/** 库存操作类型 */\ntype InventoryHandle = 'In' | 'Out';\n@Injectable()\nexport class RhBusinessOrderManageService {\n  constructor(\n    private apiUrls: RhApiUrlsService,\n    private wmsSysConfigSer: RhWmsSysConfigService,\n    private inventoryControlSer: RhInventoryControlManageService\n  ) { }\n\n  /** 业务仓库selector赋值对象配置 */\n  setWarehouseFieldSetting = (setting: RhDynamicFormFieldDto, type: InventoryHandle) => {\n    if (!setting.config) {\n      setting.config = RhDynamicCustomizeControlConfigDto.create();\n    }\n    (setting.config as RhDynamicCustomizeControlConfigDto).relatedFieldDatas = [\n      { sourceName: 'WarehouseCode', mappedName: `${type}WarehouseCode` }\n    ];\n    (setting.config as RhDynamicCustomizeControlConfigDto).relatedFieldDatas = [\n      { sourceName: 'WarehouseCode', mappedName: `${type}WarehouseCode` },\n      { sourceName: 'WarehouseName', mappedName: `${type}WarehouseName` }\n    ];\n    return setting;\n  };\n}\n","/** 销售出库发单单头模型 */\nexport class SaleDeliveryOrderMasterDto {\n  constructor(\n    /** 发货单号 */\n    public DeliveryOrderId: string,\n    /** 发货日期 */\n    public DeliveryDate: Date,\n    /** 发货类型 */\n    public SaleDeliveryType: string,\n    /** 客户编码 */\n    public CustomerCode: string,\n    /** 客户名称 */\n    public CustomerName: string,\n    /** 发货仓库代码 */\n    public OutWarehouseCode: string,\n    /** 发货仓库名称 */\n    public OutWarehouseName: string,\n    /** 发入仓库代码 */\n    public InWarehouseCode: string,\n    /** 发入仓库名称 */\n    public InWarehouseName: string,\n    /** 办理人编码 */\n    public TransactorCode: string,\n    /** 办理人 */\n    public TransactorName: string,\n    /** 制单人 */\n    public Creator: string,\n    /** 制单人编码 */\n    public CreatorId: string,\n    /** 制单日期 */\n    public CreateDate: Date,\n    /** 制单时间 */\n    public CreateTime: Date,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人编码 */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 备注 */\n    public Remark: string,\n    /** */\n    public SField1: string,\n    /** */\n    public SField2: string,\n    /** */\n    public SField3: string,\n    /** */\n    public FField1: number,\n    /** */\n    public FField2: number,\n    /** */\n    public FField3: number,\n    /** */\n    public DField1: Date,\n    /** */\n    public DField2: Date,\n    /** */\n    public DField3: Date,\n    /** */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {}\n  static create(): SaleDeliveryOrderMasterDto {\n    return new SaleDeliveryOrderMasterDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 销售发货单明细模型 */\nexport class SaleDeliveryOrderDetailDto {\n  constructor(\n    /** 发货单号 */\n    public DeliveryOrderId: string,\n    /** 发货单行号 */\n    public DeliveryRowNum: string,\n    /** 销售单号 */\n    public SaleOrderCode: string,\n    /** 销售单行号 */\n    public SaleOrderRowNum: string,\n    /** 物料编码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料特性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 测量单位 */\n    public MeasureUnit: string,\n    /** 计划发货数量 */\n    public PlanDeliveryQty: number,\n    /** 已发货数量 */\n    public DeliveriedQty: number,\n    /** 辅助测量单位 */\n    public MeasureAuxUnit: string,\n    /** 辅助单位数量 */\n    public MeasureAuxQty: number,\n    /** 收货地址 */\n    public ReceiverAddress: string,\n    /** 发货仓库代码 */\n    public OutWarehouseCode: string,\n    /** 发货仓库名称 */\n    public OutWarehouseName: string,\n    /** 质检人Id */\n    public InspectorId: string,\n    /** 质检人 */\n    public Inspector: string,\n    /** 质检结果 */\n    public InspectionResult: string,\n    /** 备注 */\n    public Remark: string,\n    /** */\n    public SField1: string,\n    /** */\n    public SField2: string,\n    /** */\n    public SField3: string,\n    /** */\n    public FField1: number,\n    /** */\n    public FField2: number,\n    /** */\n    public FField3: number,\n    /** */\n    public DField1: Date,\n    /** */\n    public DField2: Date,\n    /** */\n    public DField3: Date,\n    /** */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {}\n  static create(): SaleDeliveryOrderDetailDto {\n    return new SaleDeliveryOrderDetailDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 销售订单单体模型 */\nexport class SaleOrderDetailDto {\n  constructor(\n    /** 销售订单号 */\n    public SaleOrderCode: string,\n    /** 销售订单行号 */\n    public SaleOrderRowNum: string,\n    /** 物料编码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料特性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 计划销售数量 */\n    public PlanSaleQty: number,\n    /** 销售数量 */\n    public SaleQty: number,\n    /** 辅助计量单位 */\n    public MeasureAuxUnit: string,\n    /** 辅助数量 */\n    public MeasureAuxQty: number,\n    /** 发货地址 */\n    public DeliveryAddress: string,\n    /** 仓库代码 */\n    public OutWarehouseCode: string,\n    /** 仓库名称 */\n    public OutWarehouseName: string,\n    /** 检验人编码 */\n    public InspectorId: string,\n    /** 质检人 */\n    public Inspector: string,\n    /** 质检结果 */\n    public InspectionResult: string,\n    /** 备注 */\n    public Remark: string,\n    /** */\n    public SField1: string,\n    /** */\n    public SField2: string,\n    /** */\n    public SField3: string,\n    /** */\n    public FField1: number,\n    /** */\n    public FField2: number,\n    /** */\n    public FField3: number,\n    /** */\n    public DField1: Date,\n    /** */\n    public DField2: Date,\n    /** */\n    public DField3: Date,\n    /** */\n    public DField4: Date,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {}\n  static create(): SaleOrderDetailDto {\n    return new SaleOrderDetailDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 销售订单单头模型 */\nexport class SaleOrderMasterDto {\n  constructor(\n    /** 销售订单号 */\n    public OrderCode: string,\n    /** 销售日期 */\n    public SaleDate: Date,\n    /** 销售人员 */\n    public SaleMan: string,\n    /** 销售业务类型 */\n    public SaleBusinessType: string,\n    /** 客户编码 */\n    public CustomerCode: string,\n    /** 客户名称 */\n    public CustomerName: string,\n    /** 仓库编码 */\n    public OutWarehouseCode: string,\n    /** 仓库名称 */\n    public OutWarehouseName: string,\n    /** 制单人 */\n    public Creator: string,\n    /** 制单人编码 */\n    public CreatorId: string,\n    /** 制单日期 */\n    public CreateDate: Date,\n    /** 制单时间 */\n    public CreateTime: Date,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人编码 */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核内容 */\n    public AuditMessage: string,\n    /** 单据状态 */\n    public OrderStatus: string,\n    /** 备注 */\n    public Remark: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** */\n    public SField1: string,\n    /** */\n    public SField2: string,\n    /** */\n    public SField3: string,\n    /** */\n    public FField1: number,\n    /** */\n    public FField2: number,\n    /** */\n    public FField3: number,\n    /** */\n    public DField1: Date,\n    /** */\n    public DField2: Date,\n    /** */\n    public DField3: Date,\n    /** */\n    public DField4: Date,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {}\n  static create(): SaleOrderMasterDto {\n    return new SaleOrderMasterDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { CustomizeBaseTableComponent, DynamicFormComponent } from 'rh-base/shared';\nimport { RhDynamicInterfaceDto, RhSelectableDto, RhTableQueryOptionDto, CodeClassModel, RhDynamicTableFieldDto } from 'rh-base/model';\n\n@Component({\n  selector: 'rh-purchase-order-material-choose-table',\n  templateUrl: './purchase-order-material-choose-table.component.html',\n  styleUrls: ['./purchase-order-material-choose-table.component.less']\n})\nexport class PurchaseOrderMaterialChooseTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n\n  @Input() rhSingleMode = false;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() rhDisabled: boolean;\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto>();\n\n  @Input() rhName = 'PurchaseOrderData';\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n  defaultInterfaceInfo: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52880,\n    controllerName: 'ProductMaterialWebApi',\n    interfaceName: 'GetMaterialDocumentDatas'\n  };\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [\n    { name: 'MaterialCode', displayName: '物料代码', placeholder: '物料代码', editable: true },\n    { name: 'MaterialName', displayName: '物料名称', placeholder: '物料名称', editable: true },\n    {\n      name: 'IsMaterial_Or1',\n      displayName: '是否物料',\n      placeholder: '是否物料',\n      editable: true,\n      type: 'array',\n      config: {\n        datas: [\n          { Text: '是', Value: true },\n          { Text: '否', Value: false }\n        ]\n      }\n    },\n    {\n      name: 'IsProduct_Or1',\n      displayName: '是否成品',\n      placeholder: '是否成品',\n      editable: true,\n      type: 'array',\n      config: {\n        datas: [\n          { Text: '是', Value: true },\n          { Text: '否', Value: false }\n        ]\n      }\n    },\n    {\n      name: 'IsSemiFinishedProduct_Or1',\n      displayName: '是否半成品',\n      placeholder: '是否半成品',\n      editable: true,\n      type: 'array',\n      config: {\n        datas: [\n          { Text: '是', Value: true },\n          { Text: '否', Value: false }\n        ]\n      }\n    }\n  ];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [\n    { name: 'MaterialCode', displayName: '物料编号', width: 120 },\n    { name: 'MaterialName', displayName: '物料名称', width: 120 },\n    { name: 'MaterialSpecification', displayName: '物料规格', width: 200, rhEllipsis: true },\n    {\n      name: 'MaterialCategory',\n      displayName: '物料类别',\n      width: 120,\n      type: 'array',\n      config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'MaterialCategory' }\n    },\n    {\n      name: 'MaterialAttribute',\n      displayName: '物料属性',\n      width: 120,\n      type: 'array',\n      config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'ProductMaterialAttribute' }\n    },\n    { name: 'SupplierCode', displayName: '供应商代码', width: 120 },\n    { name: 'SupplierName', displayName: '供应商名称', width: 120 },\n    {\n      name: 'MeasureUnit',\n      displayName: '计量单位',\n      width: 120,\n      type: 'array',\n      config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n    },\n    { name: 'Remark', displayName: '备注', width: 120, rhEllipsis: true }\n  ];\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  constructor() {\n    super();\n  }\n\n  ngOnInit(): void {\n    this.rhInterfaceInfo = this.rhInterfaceInfo || this.defaultInterfaceInfo;\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n}\n","<!-- 搜索Form区域 -->\n<div class=\"search-area rh-full\">\n  <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n    <ng-template #searchTpl>\n      <rh-dynamic-form\n        #queryForm\n        rhName=\"{{ rhName }}Form\"\n        [rhValue]=\"rhDefaultQueryDto\"\n        (rhInterfaceDataChange)=\"setDatas($event)\"\n        (rhDataloadingChange)=\"dataLoadingChange($event)\"\n        (rhOutParaChange)=\"setInitFieldDataset($event)\"\n        [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n        [(rhFormInterface)]=\"rhInterfaceInfo\"\n      ></rh-dynamic-form>\n    </ng-template>\n  </nz-alert>\n</div>\n<!-- 搜索结果Table展示区域 -->\n<div class=\"table-area\">\n  <rh-dynamic-table\n    rhName=\"{{ rhName }}Table\"\n    [rhTableData]=\"dataresult\"\n    [rhTableDataloading]=\"dataLoading\"\n    [rhDefaultFieldDataset]=\"defaultTableFieldDataset\"\n    (rhRefresh)=\"refreshDatas($event)\"\n    (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\"\n    [rhSingleMode]=\"rhSingleMode\"\n  ></rh-dynamic-table>\n</div>\n","import { Observable } from 'rxjs';\nimport { Component, OnInit, Input, Output, EventEmitter, SimpleChanges } from '@angular/core';\nimport { RhBaseDto, RhSelectableDto, DataResultT, RhTableButtonInfoDto, OpMode, RhSafeAny } from 'rh-base/model';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport { RhBusinessManageService } from './../../../../business-manage/business-manage.service';\nimport { RhSaleOrderManageService } from '../../sale-order-manage.service';\nimport { SaleDeliveryOrderDetailDto } from '../../sale-delivery-order-model';\n\n@Component({\n  selector: 'rh-sale-delivery-order-detail',\n  templateUrl: './sale-delivery-order-detail.component.html',\n  styleUrls: ['./sale-delivery-order-detail.component.less']\n})\nexport class SaleDeliveryOrderDetailComponent implements OnInit {\n  @Input() rhPlanOrder: RhBaseDto;\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter();\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto(\n      'deleteDetails',\n      '删除',\n      'primary', true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhSelectableDto[]),\n      false,\n      true\n    ),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset = [new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)];\n  tableVisibleSetting = {};\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  isEnterEditStatus = false;\n\n  get isReadOnlyTable() {\n    return this.rhShowDetail || !this.rhPlanOrder?.DeliveryOrderId || this.isEnterEditStatus;\n  }\n\n  get readeOnlyButtonDataset() {\n    if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(private operator: RhSaleOrderManageService, public businessManageSer: RhBusinessManageService) { }\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhPlanOrder } = changes;\n    if (rhPlanOrder && rhPlanOrder.currentValue) {\n      if (this.rhPlanOrder.DeliveryOrderId) {\n        this.getDatas();\n      }\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getDynamicVisibleSetting(['LotNum']));\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      DeliveryOrderId: this.rhPlanOrder.DeliveryOrderId,\n      FactoryCode: this.rhPlanOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetSaleDeliveryOrderDetailDatas(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`);\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    const checkRes = this.checkStoreDatas(details);\n    if (!checkRes) {\n      return;\n    }\n    return new Observable((observer) => {\n      const msg = editType === 'add' ? '新增' : '编辑';\n      this.dataLoading = true;\n      this.operator.StoreSaleDeliveryOrderDetailDatas(details).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`);\n          } else {\n            MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n          observer.next();\n          observer.complete();\n        },\n        () => {\n          this.dataLoading = false;\n          observer.error();\n        }\n      );\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[]) {\n    this.extraButtonHandleDataset[1].loading = true;\n    this.operator.RemoveSaleDeliveryOrderDetailDatas(details).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n          this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n        }\n        this.extraButtonHandleDataset[1].loading = false;\n      },\n      () => (this.extraButtonHandleDataset[1].loading = false)\n    );\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    const datas = details.map((data) => {\n      const temp = SaleDeliveryOrderDetailDto.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 单头赋值\n      temp.DeliveryOrderId = this.rhPlanOrder.DeliveryOrderId;\n      temp.OutWarehouseCode = this.rhPlanOrder.OutWarehouseCode;\n      temp.OutWarehouseName = this.rhPlanOrder.OutWarehouseName;\n      temp.FactoryCode = this.rhPlanOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n      }\n      this.dataresult = { Attach: (this.dataresult?.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  /** 检查保存数据 */\n  checkStoreDatas(details: RhSelectableDto[]) {\n    // 必须填写计划数量\n    if (details.some((f) => !f.PlanDeliveryQty)) {\n      MsgHelper.ShowWarningMessage('采购数量不能为0或空！');\n      return false;\n    }\n    // 计划批次号开启后，可填可不填，只判断超额入库\n    // if (!this.businessManageSer.IsEnableExcessInWarehouse) {\n    //   if (details.some((f) => f.PlanQty + f.SourcePlannedQty > f.StockQty)) {\n    //     MsgHelper.ShowWarningMessage('未启用超额入库！不能超额计划源单数量！');\n    //     return false;\n    //   }\n    // }\n    return true;\n  }\n\n  openDataModal() {\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n}\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n    <rh-dynamic-table\n      rhName=\"handleDetailsReadOnlyTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    ></rh-dynamic-table>\n  </ng-container>\n  <ng-template #handleTpl>\n    <rh-dynamic-table\n      rhName=\"handleDetailsTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    >\n    </rh-dynamic-table>\n  </ng-template>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"'选择采购入库数据'\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-purchase-order-material-choose-table (rhModelChange)=\"onSelectModal($event)\" [rhSingleMode]=\"false\">\n      </rh-purchase-order-material-choose-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { RhSharedManageService } from './../../../shared-manage/shared-manage.service';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport {\n  RhBaseDto,\n  DataResultT,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  RhLoginedUserDto,\n  OpMode,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto,\n  RhSafeAny,\n  OpResult\n} from 'rh-base/model';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\nimport { RhBusinessOrderManageService } from './../../business-order-manage.service';\nimport { BusinessType } from './../../business-type';\nimport { RhSaleOrderManageService } from '../sale-order-manage.service';\n\ntype TabType = 'edit' | 'detail' | 'audit';\n@Component({\n  selector: 'rh-sale-delivery-order',\n  templateUrl: './sale-delivery-order.component.html',\n  styleUrls: ['./sale-delivery-order.component.less']\n})\nexport class SaleDeliveryOrderComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  BusinessType = BusinessType.OtherIn;\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isShowCloseInPlanRemarkModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  closeDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  completeVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitInWarehouse';\n  };\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  isAsCreated = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto))\n    // new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) =>\n    //   this.openDetailTab({ data } as RhBaseDto, 'audit')\n    // ),\n    // new RhTableButtonInfoDto(\n    //   'close',\n    //   '关闭',\n    //   'default',\n    //   'close-circle',\n    //   false,\n    //   null,\n    //   (data) => this.openCloseInPlanRemarkModal(data as RhBaseDto),\n    //   null,\n    //   null,\n    //   'red'\n    // )\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '新建', 'primary', false, 'file', false, null, () => this.openEditTab(), true),\n    new RhTableButtonInfoDto(\n      'delete',\n      '删除',\n      'primary',true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhBaseDto[]),\n      false,\n      false,\n      'red'\n    )\n  ];\n\n  beforeSubmit = async (data: RhBaseDto, context: DynamicFormComponent) => {\n    let result: OpResult = null;\n    const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n    context.submitLoading = true;\n    try {\n      if (this.editDto.OpSign === OpMode.OpAdd) {\n        // 基本信息\n        data.Creator = this.currentUser.DisplayName;\n        data.CreatorId = this.currentUser.UserName;\n        data.CreateDate = new Date().toLocaleDateString();\n        data.CreateTime = new Date().toLocaleString();\n\n        result = await this.operator.StoreSaleDeliveryOrderMasterData(data).toPromise();\n      } else {\n        result = await this.operator.UpdateSaleDeliveryOrderMasterData(data).toPromise();\n      }\n      if (result && result.Success) {\n        MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n        this.editDto.DeliveryOrderId = result?.Attach?.DeliveryOrderId;\n        this.isShowEditForm = false;\n        this.getDetails();\n      } else {\n        MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n      }\n    } catch (error) {\n      //\n    } finally {\n      context.submitLoading = false;\n    }\n\n    return false;\n  };\n\n  constructor(\n    private operator: RhSaleOrderManageService,\n    public businessManageSer: RhBusinessOrderManageService,\n    public storage: RhStorageService,\n    public sharedManageSer: RhSharedManageService\n  ) {}\n\n  ngOnInit(): void {\n    this.setUserInfo();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {\n        TransactorCode: this.currentUser.UserName,\n        TransactorName: this.currentUser.DisplayName,\n        FactoryCode: this.currentUser.FactoryCode\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.editDto = null;\n    this.selectedIndex = 0;\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.selectedIndex = 1;\n  }\n\n  // 未退出页面，刷新数据内容\n  getDetails() {\n    const queryDto = { DeliveryOrderId: this.editDto.DeliveryOrderId };\n    this.operator.GetSaleDeliveryOrderMasterDatas(queryDto).subscribe((result) => {\n      if (result.Success && result.Attach.length === 1) {\n        this.editDto = result.Attach[0];\n        this.editDto.OpSign = OpMode.OpEdit;\n      }\n    });\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    }\n  }\n\n  /** 打开关闭计划备注弹窗 */\n  openCloseInPlanRemarkModal(data: RhBaseDto) {\n    this.closeDto = { DeliveryOrderId: data.DeliveryOrderId, Remark: data.Remark };\n    this.isShowCloseInPlanRemarkModal = true;\n  }\n\n  /** 关闭关闭计划备注弹窗 */\n  closeCloseInPlanRemarkModal() {\n    this.closeDto = {};\n    this.isShowCloseInPlanRemarkModal = false;\n  }\n\n  /** 关闭接口返回 */\n  onCloseData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('关闭入库计划成功！');\n      this.closeCloseInPlanRemarkModal();\n      this.getDatas();\n    } else {\n      MsgHelper.ShowWarningModal(`关闭入库计划失败！${result.Message}`);\n    }\n  }\n\n  /** 删除计划 */\n  removeDatas(datas: RhBaseDto[]) {\n    this.dataLoading = true;\n    this.operator.RemoveSaleDeliveryOrderMasterDatas(datas as RhSafeAny).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除成功！');\n          this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n        }\n        this.dataLoading = false;\n      },\n      () => {\n        this.dataLoading = false;\n      }\n    );\n  }\n  //#endregion 操作区域结束\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  >\n                  </rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              >\n              </rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>数据{{ editDto?.OpSign === 1 ? '新增' : '编辑' }}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = true\">\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button *ngIf=\"!isShowEditForm\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else editDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template\n                    rhTemplate=\"OutWarehouseCode\"\n                    let-formGroup\n                    let-setting=\"setting\"\n                    let-hostConfig=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.placeholder }}</nz-form-label>\n                      <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                        <rh-business-warehouse-selector\n                          name=\"OutWarehouseCode\"\n                          [formControl]=\"formGroup.get('OutWarehouseCode')\"\n                          rhFormType=\"edit\"\n                          [rhFieldData]=\"businessManageSer.setWarehouseFieldSetting(setting, 'Out')\"\n                          [rhSize]=\"hostConfig?.rhSize\"\n                          [rhData]=\"formData\"\n                        >\n                        </rh-business-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                  <ng-template\n                    rhTemplate=\"InWarehouseCode\"\n                    let-formGroup\n                    let-setting=\"setting\"\n                    let-hostConfig=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.placeholder }}</nz-form-label>\n                      <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                        <rh-business-warehouse-selector\n                          name=\"InWarehouseCode\"\n                          [formControl]=\"formGroup.get('InWarehouseCode')\"\n                          rhFormType=\"edit\"\n                          [rhFieldData]=\"businessManageSer.setWarehouseFieldSetting(setting, 'In')\"\n                          [rhSize]=\"hostConfig?.rhSize\"\n                          [rhData]=\"formData\"\n                        >\n                        </rh-business-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                  <ng-template\n                    rhTemplate=\"DeliveryDate\"\n                    let-formgroup\n                    let-setting=\"setting\"\n                    let-hostSetting=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                        <nz-date-picker [formControl]=\"formgroup.get('DeliveryDate')\" rhFormType=\"edit\"></nz-date-picker>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-sale-delivery-order-detail [rhPlanOrder]=\"editDto\" (rhDetailsUpdate)=\"getDetails()\"> </rh-sale-delivery-order-detail>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <!-- <button *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\" nz-button\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"auditData(editDto)\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</button> -->\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"editDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-sale-delivery-order-detail [rhPlanOrder]=\"editDto\" [rhShowDetail]=\"true\"> </rh-sale-delivery-order-detail>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #editDescription>\n  <rh-dynamic-description *ngIf=\"isRefreshDesc\" rhName=\"editDescription\" [rhValue]=\"editDto\"></rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'关闭入库计划备注'\"\n  [nzVisible]=\"isShowCloseInPlanRemarkModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeCloseInPlanRemarkModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #closeDataForm\n    rhName=\"closeDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"closeDto\"\n    (rhInterfaceDataChange)=\"onCloseData($event)\"\n    (rhClose)=\"closeCloseInPlanRemarkModal()\"\n  ></rh-dynamic-form>\n</nz-modal>\n","import { Injectable } from '@angular/core';\nimport { DataResultT, OpResult, RhBaseDto, RhSelectableDto, } from 'rh-base/model';\nimport {\n  RhApiUrlsService,\n  RhWmsSysConfigService\n} from 'rh-base/core';\nimport { RhInventoryControlManageService } from './../../shared-manage/inventory-control/inventory-control-manage.service';\nimport { Observable } from 'rxjs';\nimport {\n  PurchaseAdvanceReceiptOrderDetailDto,\n  PurchaseAdvanceReceiptOrderMasterDto,\n  PurchaseOrderDetailDto,\n  PurchaseOrderMasterDto\n} from './purchase-order-manage-model';\n\n@Injectable()\nexport class RhPurchaseOrderManageService {\n  constructor(\n    private apiUrls: RhApiUrlsService,\n    private wmsSysConfigSer: RhWmsSysConfigService,\n    private inventoryControlSer: RhInventoryControlManageService\n  ) { }\n  //#region 采购订单\n  /**\n   *  存储采购订单单头数据\n   */\n  StorePurchaseOrderMasterData(dto: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('BusinessOrdersManageApi', 'StorePurchaseOrderMasterData', dto);\n  }\n\n  /**\n   *  获取采购订单单头数据\n   */\n  GetPurchaseOrderMasterDatas(queryDto: RhBaseDto): Observable<DataResultT<PurchaseOrderMasterDto[]>> {\n    return this.apiUrls.PostRhpWms('BusinessOrdersManageApi', 'GetPurchaseOrderMasterDatas', queryDto);\n  }\n\n  /**\n   *  批量移除采购订单单头数据\n   */\n  RemovePurchaseOrderMasterDatas(PurchaseOrderMasterDto: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('BusinessOrdersManageApi', 'RemovePurchaseOrderMasterDatas', PurchaseOrderMasterDto);\n  }\n\n  /**\n   *  获取采购订单单体数据\n   */\n  GetPurchaseOrderDetailDatas(queryDto: RhBaseDto): Observable<DataResultT<PurchaseOrderDetailDto[]>> {\n    return this.apiUrls.PostRhpWms('BusinessOrdersManageApi', 'GetPurchaseOrderDetailDatas', queryDto);\n  }\n\n  /**\n   *  批量存储采购订单明细数据\n   */\n  StorePurchaseOrderDetailDatas(PurchaseOrderDetailDto: RhSelectableDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('BusinessOrdersManageApi', 'StorePurchaseOrderDetailDatas', PurchaseOrderDetailDto);\n  }\n\n  /**\n   *  批量移除采购订单明细数据\n   */\n  RemovePurchaseOrderDetailDatas(PurchaseOrderDetailDto: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('BusinessOrdersManageApi', 'RemovePurchaseOrderDetailDatas', PurchaseOrderDetailDto);\n  }\n\n  /**\n   *  编辑采购订单单头数据\n   */\n  UpdatePurchaseOrderMasterData(dto: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('BusinessOrdersManageApi', 'UpdatePurchaseOrderMasterData', dto);\n  }\n\n  //#endregion采购订单结束\n\n  //#region 采购预收货管理\n  /**\n   *  获取采购预收货单单头数据\n   */\n  GetPurchaseAdvanceReceiptOrderMasterDatas(queryDto: RhBaseDto): Observable<DataResultT<PurchaseAdvanceReceiptOrderMasterDto[]>> {\n    return this.apiUrls.PostRhpWms('BusinessOrdersManageApi', 'GetPurchaseAdvanceReceiptOrderMasterDatas', queryDto);\n  }\n\n  /**\n   *  获取采购预收货单单体数据\n   */\n  GetPurchaseAdvanceReceiptOrderDetailDatas(queryDto: RhBaseDto): Observable<DataResultT<PurchaseAdvanceReceiptOrderDetailDto[]>> {\n    return this.apiUrls.PostRhpWms('SupplierPortalApi', 'GetPurchaseAdvanceReceiptOrderDetailDatas', queryDto);\n  }\n\n  /**\n   *  批量移除采购预收货单明细数据\n   */\n  RemovePurchaseAdvanceReceiptOrderDetailDatas(PurchaseAdvanceReceiptOrderDetailDto: RhSelectableDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms(\n      'BusinessOrdersManageApi',\n      'RemovePurchaseAdvanceReceiptOrderDetailDatas',\n      PurchaseAdvanceReceiptOrderDetailDto\n    );\n  }\n\n  /**\n   *  批量移除采购预收货单单头数据\n   */\n  RemovePurchaseAdvanceReceiptOrderMasterDatas(PurchaseAdvanceReceiptOrderMasterDto: RhSelectableDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms(\n      'BusinessOrdersManageApi',\n      'RemovePurchaseAdvanceReceiptOrderMasterDatas',\n      PurchaseAdvanceReceiptOrderMasterDto\n    );\n  }\n\n  /**\n   *  批量存储采购预收货单明细数据\n   */\n  StorePurchaseAdvanceReceiptOrderDetailDatas(PurchaseAdvanceReceiptOrderDetailDto: RhBaseDto[]): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms(\n      'BusinessOrdersManageApi',\n      'StorePurchaseAdvanceReceiptOrderDetailDatas',\n      PurchaseAdvanceReceiptOrderDetailDto\n    );\n  }\n\n  /**\n   *  存储采购预收货单单头数据\n   */\n  StorePurchaseAdvanceReceiptOrderMasterData(dto: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('BusinessOrdersManageApi', 'StorePurchaseAdvanceReceiptOrderMasterData', dto);\n  }\n\n  /**\n   *  编辑采购预收货单单头数据\n   */\n  UpdatePurchaseAdvanceReceiptOrderMasterData(dto: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('BusinessOrdersManageApi', 'UpdatePurchaseAdvanceReceiptOrderMasterData', dto);\n  }\n\n  //#endregion 采购预收货结束\n}\n","/** 采购订单单据头模型 */\nexport class PurchaseOrderMasterDto {\n  constructor(\n    /** 采购单号 */\n    public OrderCode: string,\n    /** 采购员编码 */\n    public PurchaserId: string,\n    /** 采购员 */\n    public Purchaser: string,\n    /** 供应商编码 */\n    public SupplierId: string,\n    /** 供应商 */\n    public Supplier: string,\n    /** 采购日期 */\n    public PurchaseDate: Date,\n    /** 到货日期 */\n    public DeliveryDate: Date,\n    /** 联系人 */\n    public Contacts: string,\n    /** 联系号码 */\n    public ContactNumber: string,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人代码 */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核信息 */\n    public AuditMessage: string,\n    /** 办理人 */\n    public OrderCreatorName: string,\n    /** 办理人代码 */\n    public OrderCreatorCode: string,\n    /** 办理日期 */\n    public OrderCreateDate: Date,\n    /** 办理时间 */\n    public OrderCreateTime: Date,\n    /** 工厂编码 */\n    public FactoryCode: string,\n    /** 备注 */\n    public Remark: string,\n    /** */\n    public SField1: string,\n    /** */\n    public SField2: string,\n    /** */\n    public SField3: string,\n    /** */\n    public FField1: number,\n    /** */\n    public FField2: number,\n    /** */\n    public FField3: number,\n    /** */\n    public DField1: Date,\n    /** */\n    public DField2: Date,\n    /** */\n    public DField3: Date,\n    /** */\n    public DField4: Date,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {}\n  static create(): PurchaseOrderMasterDto {\n    return new PurchaseOrderMasterDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 采购订单明细模型 */\nexport class PurchaseOrderDetailDto {\n  constructor(\n    /** 采购单号 */\n    public OrderCode: string,\n    /** 采购单行号 */\n    public OrderRowNum: string,\n    /** 采购数量 */\n    public PurchaseQty: number,\n    /** 物料编号 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料属性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 物料单位 */\n    public MeasureUnit: string,\n    /** 物料辅助单位 */\n    public MeasureAuxUnit: string,\n    /** 辅助采购数量 */\n    public MeasureAuxQty: number,\n    /** 有效期 */\n    public ExpiryDays: number,\n    /** 有效期至 */\n    public ExpirationDate: Date,\n    /** 有效期单位 */\n    public ExpiryUnit: string,\n    /** 已收数量 */\n    public ReceivedQty: number,\n    /** 未收数量 */\n    public UnReceiveQty: number,\n    /** 库存数量 */\n    public StockQty: number,\n    /** 交货上限 */\n    public DeliveryUpperLimit: number,\n    /** 交货下限 */\n    public DeliveryLowwerLimit: number,\n    /** 是否完成 */\n    public IsCompleted: boolean,\n    /** 完成时间 */\n    public CompletedTime: Date,\n    /** 仓库编码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 供应商编码 */\n    public SupplierCode: string,\n    /** 供应商名称 */\n    public SupplierName: string,\n    /** 发货地址 */\n    public ShippingAddress: string,\n    /** 生产日期 */\n    public ProductionDate: Date,\n    /** 附件编码 */\n    public AttachFileCode: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 备注 */\n    public Remark: string,\n    /** */\n    public SField1: string,\n    /** */\n    public SField2: string,\n    /** */\n    public SField3: string,\n    /** */\n    public FField1: number,\n    /** */\n    public FField2: number,\n    /** */\n    public FField3: number,\n    /** */\n    public DField1: Date,\n    /** */\n    public DField2: Date,\n    /** */\n    public DField3: Date,\n    /** */\n    public DField4: Date,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {}\n  static create(): PurchaseOrderDetailDto {\n    return new PurchaseOrderDetailDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 采购预收货单单头模型 */\nexport class PurchaseAdvanceReceiptOrderMasterDto {\n  constructor(\n    /** 预收货单号 */\n    public OrderCode: string,\n    /** 收货人编码 */\n    public ReceiverId: string,\n    /** 收货人 */\n    public Receiver: string,\n    /** 收货日期 */\n    public ReceiptDate: Date,\n    /** 供应商编码 */\n    public SupplierId: string,\n    /** 供应商 */\n    public Supplier: string,\n    /** 采购人编码 */\n    public PurchaserId: string,\n    /** 采购人 */\n    public Purchaser: string,\n    /** 采购日期 */\n    public PurchaseDate: Date,\n    /** 联系人 */\n    public Contacts: string,\n    /** 联系号码 */\n    public ContactNumber: string,\n    /** 审核人 */\n    public Auditor: string,\n    /** 审核人编码 */\n    public AuditorId: string,\n    /** 审核日期 */\n    public AuditDate: Date,\n    /** 审核时间 */\n    public AuditTime: Date,\n    /** 审核内容 */\n    public AuditMessage: string,\n    /** 制单人 */\n    public OrderCreatorName: string,\n    /** 制单人编码 */\n    public OrderCreatorCode: string,\n    /** 制单日期 */\n    public OrderCreateDate: Date,\n    /** 制单时间 */\n    public OrderCreateTime: Date,\n    /** 工厂编码 */\n    public FactoryCode: string,\n    /** 备注 */\n    public Remark: string,\n    /** */\n    public SField1: string,\n    /** */\n    public SField2: string,\n    /** */\n    public SField3: string,\n    /** */\n    public FField1: number,\n    /** */\n    public FField2: number,\n    /** */\n    public FField3: number,\n    /** */\n    public DField1: Date,\n    /** */\n    public DField2: Date,\n    /** */\n    public DField3: Date,\n    /** */\n    public DField4: Date,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {}\n  static create(): PurchaseAdvanceReceiptOrderMasterDto {\n    return new PurchaseAdvanceReceiptOrderMasterDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n\n/** 采购预收货单明细模型 */\nexport class PurchaseAdvanceReceiptOrderDetailDto {\n  constructor(\n    /** 预收货单号 */\n    public OrderCode: string,\n    /** 采购单号 */\n    public PurchaseOrderCode: string,\n    /** 采购单行号 */\n    public PurchaseOrderRowNum: string,\n    /** 采购数量 */\n    public PurchaseQty: number,\n    /** 收货数量 */\n    public ReceiptQty: number,\n    /** 实收数量 */\n    public TransactQty: number,\n    /** 物料编码 */\n    public MaterialCode: string,\n    /** 物料名称 */\n    public MaterialName: string,\n    /** 物料规格 */\n    public MaterialSpecification: string,\n    /** 物料特性 */\n    public MaterialAttribute: string,\n    /** 物料类别 */\n    public MaterialCategory: string,\n    /** 计量单位 */\n    public MeasureUnit: string,\n    /** 辅助计量单位 */\n    public MeasureAuxUnit: string,\n    /** 辅助数量 */\n    public MeasureAuxQty: number,\n    /** 有效期 */\n    public ExpiryDays: number,\n    /** 有效期至 */\n    public ExpirationDate: Date,\n    /** 有效期单位 */\n    public ExpiryUnit: string,\n    /** 收货上限比例 */\n    public DeliveryUpperLimit: number,\n    /** 收货下限比例 */\n    public DeliveryLowwerLimit: number,\n    /** 条码 */\n    public SN: string,\n    /** 批次 */\n    public LotNum: string,\n    /** 生产日期 */\n    public ProductionDate: Date,\n    /** 仓库代码 */\n    public WarehouseCode: string,\n    /** 仓库名称 */\n    public WarehouseName: string,\n    /** 供应商编码 */\n    public SupplierCode: string,\n    /** 供应商名称 */\n    public SupplierName: string,\n    /** 发货地址 */\n    public ShippingAddress: string,\n    /** 质检人 */\n    public Inspector: string,\n    /** 质检人编码 */\n    public InspectorId: string,\n    /** 质检结果 */\n    public InspectResult: string,\n    /** 完成标志 */\n    public IsCompleted: boolean,\n    /** 完成时间 */\n    public CompletedTime: Date,\n    /** 器具编号 */\n    public ApplianceCode: string,\n    /** 附件编码 */\n    public AttachFileCode: string,\n    /** 工厂代码 */\n    public FactoryCode: string,\n    /** 备注 */\n    public Remark: string,\n    /** */\n    public SField1: string,\n    /** */\n    public SField2: string,\n    /** */\n    public SField3: string,\n    /** */\n    public FField1: number,\n    /** */\n    public FField2: number,\n    /** */\n    public FField3: number,\n    /** */\n    public DField1: Date,\n    /** */\n    public DField2: Date,\n    /** */\n    public DField3: Date,\n    /** */\n    public DField4: Date,\n    /** 操作标志 */\n    public OpSign: number,\n    /** 自增键 */\n    public Id: number\n  ) {}\n  static create(): PurchaseAdvanceReceiptOrderDetailDto {\n    return new PurchaseAdvanceReceiptOrderDetailDto(\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\n","import { Observable } from 'rxjs';\nimport { Component, OnInit, Input, Output, EventEmitter, SimpleChanges } from '@angular/core';\nimport { RhBaseDto, RhSelectableDto, DataResultT, RhTableButtonInfoDto, OpMode, RhSafeAny } from 'rh-base/model';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport { RhPurchaseOrderManageService } from '../../purchase-order-manage.service';\nimport { RhBusinessManageService } from './../../../../business-manage/business-manage.service';\nimport { PurchaseOrderDetailDto } from '../../purchase-order-manage-model';\n\n@Component({\n  selector: 'rh-purchase-order-detail',\n  templateUrl: './purchase-order-detail.component.html',\n  styleUrls: ['./purchase-order-detail.component.less']\n})\nexport class PurchaseOrderDetailComponent implements OnInit {\n  @Input() rhPlanOrder: RhBaseDto;\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter();\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto(\n      'deleteDetails',\n      '删除',\n      'primary', true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhSelectableDto[]),\n      false,\n      true\n    ),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset = [new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)];\n  tableVisibleSetting = {};\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  isEnterEditStatus = false;\n\n  get isReadOnlyTable() {\n    return this.rhShowDetail || !this.rhPlanOrder?.OrderCode || this.isEnterEditStatus;\n  }\n\n  get readeOnlyButtonDataset() {\n    if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(private operator: RhPurchaseOrderManageService, public businessManageSer: RhBusinessManageService) { }\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhPlanOrder } = changes;\n    if (rhPlanOrder && rhPlanOrder.currentValue) {\n      if (this.rhPlanOrder.OrderCode) {\n        this.getDatas();\n      }\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getDynamicVisibleSetting(['LotNum']));\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      OrderCode: this.rhPlanOrder.OrderCode,\n      FactoryCode: this.rhPlanOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetPurchaseOrderDetailDatas(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`);\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    const checkRes = this.checkStoreDatas(details);\n    if (!checkRes) {\n      return;\n    }\n    return new Observable((observer) => {\n      const msg = editType === 'add' ? '新增' : '编辑';\n      this.dataLoading = true;\n      // 赋值表头的供应商信息\n      details.forEach(data => {\n        data.SupplierCode = this.rhPlanOrder.SupplierId;\n        data.SupplierName = this.rhPlanOrder.Supplier;\n      });\n      this.operator.StorePurchaseOrderDetailDatas(details).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`);\n          } else {\n            MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n          observer.next();\n          observer.complete();\n        },\n        () => {\n          this.dataLoading = false;\n          observer.error();\n        }\n      );\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[]) {\n    this.extraButtonHandleDataset[1].loading = true;\n    this.operator.RemovePurchaseOrderDetailDatas(details).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n          this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n        }\n        this.extraButtonHandleDataset[1].loading = false;\n      },\n      () => (this.extraButtonHandleDataset[1].loading = false)\n    );\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    const datas = details.map((data) => {\n      const temp = PurchaseOrderDetailDto.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 单头赋值\n      temp.OrderCode = this.rhPlanOrder.OrderCode;\n      temp.WarehouseCode = this.rhPlanOrder.WarehouseCode;\n      temp.WarehouseName = this.rhPlanOrder.WarehouseName;\n      temp.FactoryCode = this.rhPlanOrder.FactoryCode;\n      temp.StockQty = data.InventoryQty;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n      }\n      this.dataresult = { Attach: (this.dataresult?.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  /** 检查保存数据 */\n  checkStoreDatas(details: RhSelectableDto[]) {\n    // 必须填写计划数量\n    if (details.some((f) => !f.PurchaseQty)) {\n      MsgHelper.ShowWarningMessage('采购数量不能为0或空！');\n      return false;\n    }\n    // 计划批次号开启后，可填可不填，只判断超额入库\n    // if (!this.businessManageSer.IsEnableExcessInWarehouse) {\n    //   if (details.some((f) => f.PlanQty + f.SourcePlannedQty > f.StockQty)) {\n    //     MsgHelper.ShowWarningMessage('未启用超额入库！不能超额计划源单数量！');\n    //     return false;\n    //   }\n    // }\n    return true;\n  }\n\n  openDataModal() {\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n}\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n    <rh-dynamic-table\n      rhName=\"handleDetailsReadOnlyTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    ></rh-dynamic-table>\n  </ng-container>\n  <ng-template #handleTpl>\n    <rh-dynamic-table\n      rhName=\"handleDetailsTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    >\n    </rh-dynamic-table>\n  </ng-template>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"'选择采购入库数据'\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-purchase-order-material-choose-table (rhModelChange)=\"onSelectModal($event)\" [rhSingleMode]=\"false\">\n      </rh-purchase-order-material-choose-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { RhSharedManageService } from './../../../shared-manage/shared-manage.service';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport {\n  RhBaseDto,\n  DataResultT,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  RhLoginedUserDto,\n  OpMode,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto,\n  RhSafeAny,\n  OpResult\n} from 'rh-base/model';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\nimport { RhPurchaseOrderManageService } from '../purchase-order-manage.service';\nimport { RhBusinessOrderManageService } from './../../../business-order-manage/business-order-manage.service';\nimport { BusinessType } from './../../../business-order-manage/business-type';\n\ntype TabType = 'edit' | 'detail' | 'audit';\n@Component({\n  selector: 'rh-purchase-order',\n  templateUrl: './purchase-order.component.html',\n  styleUrls: ['./purchase-order.component.less']\n})\nexport class PurchaseOrderComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  BusinessType = BusinessType.OtherIn;\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isShowCloseInPlanRemarkModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  closeDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  completeVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitInWarehouse';\n  };\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  isAsCreated = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto))\n    // new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) =>\n    //   this.openDetailTab({ data } as RhBaseDto, 'audit')\n    // ),\n    // new RhTableButtonInfoDto(\n    //   'close',\n    //   '关闭',\n    //   'default',\n    //   'close-circle',\n    //   false,\n    //   null,\n    //   (data) => this.openCloseInPlanRemarkModal(data as RhBaseDto),\n    //   null,\n    //   null,\n    //   'red'\n    // )\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '新建', 'primary', false, 'file', false, null, () => this.openEditTab(), true),\n    new RhTableButtonInfoDto(\n      'delete',\n      '删除',\n      'primary',true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhBaseDto[]),\n      false,\n      false,\n      'red'\n    )\n  ];\n\n  beforeSubmit = async (data: RhBaseDto, context: DynamicFormComponent) => {\n    let result: OpResult = null;\n    const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n    context.submitLoading = true;\n    try {\n      if (this.editDto.OpSign === OpMode.OpAdd) {\n        // 基本信息\n        data.OrderCreatorName = this.currentUser.DisplayName;\n        data.OrderCreatorCode = this.currentUser.UserName;\n        data.OrderCreateDate = new Date().toLocaleDateString();\n        data.OrderCreateTime = new Date().toLocaleString();\n\n        result = await this.operator.StorePurchaseOrderMasterData(data).toPromise();\n      } else {\n        result = await this.operator.UpdatePurchaseOrderMasterData(data).toPromise();\n      }\n      if (result && result.Success) {\n        MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n        this.editDto.OrderCode = result?.Attach?.OrderCode;\n        this.isShowEditForm = false;\n        this.getDetails();\n      } else {\n        MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n      }\n    } catch (error) {\n      //\n    } finally {\n      context.submitLoading = false;\n    }\n\n    return false;\n  };\n\n  constructor(\n    private operator: RhPurchaseOrderManageService,\n    public businessManageSer: RhBusinessOrderManageService,\n    public storage: RhStorageService,\n    public sharedManageSer: RhSharedManageService\n  ) {}\n\n  ngOnInit(): void {\n    this.setUserInfo();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {\n        PurchaserId: this.currentUser.UserName,\n        Purchaser: this.currentUser.DisplayName,\n        FactoryCode: this.currentUser.FactoryCode\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.editDto = null;\n    this.selectedIndex = 0;\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.selectedIndex = 1;\n  }\n\n  // 未退出页面，刷新数据内容\n  getDetails() {\n    const queryDto = { OrderCode: this.editDto.OrderCode };\n    this.operator.GetPurchaseOrderMasterDatas(queryDto).subscribe((result) => {\n      if (result.Success && result.Attach.length === 1) {\n        this.editDto = result.Attach[0];\n        this.editDto.OpSign = OpMode.OpEdit;\n      }\n    });\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    }\n  }\n\n  /** 打开关闭计划备注弹窗 */\n  openCloseInPlanRemarkModal(data: RhBaseDto) {\n    this.closeDto = { OrderCode: data.OrderCode, Remark: data.Remark };\n    this.isShowCloseInPlanRemarkModal = true;\n  }\n\n  /** 关闭关闭计划备注弹窗 */\n  closeCloseInPlanRemarkModal() {\n    this.closeDto = {};\n    this.isShowCloseInPlanRemarkModal = false;\n  }\n\n  /** 关闭接口返回 */\n  onCloseData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('关闭入库计划成功！');\n      this.closeCloseInPlanRemarkModal();\n      this.getDatas();\n    } else {\n      MsgHelper.ShowWarningModal(`关闭入库计划失败！${result.Message}`);\n    }\n  }\n\n  /** 删除计划 */\n  removeDatas(datas: RhBaseDto[]) {\n    this.dataLoading = true;\n    this.operator.RemovePurchaseOrderMasterDatas(datas as RhSafeAny).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除成功！');\n          this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n        }\n        this.dataLoading = false;\n      },\n      () => {\n        this.dataLoading = false;\n      }\n    );\n  }\n  //#endregion 操作区域结束\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  >\n                  </rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              >\n              </rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>数据{{ editDto?.OpSign === 1 ? '新增' : '编辑' }}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = true\">\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button *ngIf=\"!isShowEditForm\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else editDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template\n                    rhTemplate=\"InWarehouseCode\"\n                    let-formGroup\n                    let-setting=\"setting\"\n                    let-hostConfig=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.placeholder }}</nz-form-label>\n                      <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                        <rh-business-warehouse-selector\n                          name=\"InWarehouseCode\"\n                          [formControl]=\"formGroup.get('InWarehouseCode')\"\n                          rhFormType=\"edit\"\n                          [rhFieldData]=\"businessManageSer.setWarehouseFieldSetting(setting, 'In')\"\n                          [rhSize]=\"hostConfig?.rhSize\"\n                          [rhData]=\"formData\"\n                        >\n                        </rh-business-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                  <ng-template\n                    rhTemplate=\"PurchaseDate\"\n                    let-formgroup\n                    let-setting=\"setting\"\n                    let-hostSetting=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                        <nz-date-picker [formControl]=\"formgroup.get('PurchaseDate')\" rhFormType=\"edit\"></nz-date-picker>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                  <ng-template\n                    rhTemplate=\"DeliveryDate\"\n                    let-formgroup\n                    let-setting=\"setting\"\n                    let-hostSetting=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                        <nz-date-picker [formControl]=\"formgroup.get('DeliveryDate')\" rhFormType=\"edit\"></nz-date-picker>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-purchase-order-detail [rhPlanOrder]=\"editDto\" (rhDetailsUpdate)=\"getDetails()\"> </rh-purchase-order-detail>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <!-- <button *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\" nz-button\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"auditData(editDto)\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</button> -->\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"editDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-purchase-order-detail [rhPlanOrder]=\"editDto\" [rhShowDetail]=\"true\"> </rh-purchase-order-detail>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #editDescription>\n  <rh-dynamic-description *ngIf=\"isRefreshDesc\" rhName=\"editDescription\" [rhValue]=\"editDto\"></rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'关闭入库计划备注'\"\n  [nzVisible]=\"isShowCloseInPlanRemarkModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeCloseInPlanRemarkModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #closeDataForm\n    rhName=\"closeDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"closeDto\"\n    (rhInterfaceDataChange)=\"onCloseData($event)\"\n    (rhClose)=\"closeCloseInPlanRemarkModal()\"\n  ></rh-dynamic-form>\n</nz-modal>\n","import { DataResultT, OpResult, RhBaseDto, RhSelectableDto } from 'rh-base/model';\nimport { Injectable } from '@angular/core';\nimport { RhApiUrlsService, RhWmsSysConfigService } from 'rh-base/core';\nimport { RhInventoryControlManageService } from './../../shared-manage/inventory-control/inventory-control-manage.service';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class RhProductionOrderManageService {\n  constructor(\n    private apiUrls: RhApiUrlsService,\n    private wmsSysConfigSer: RhWmsSysConfigService,\n    private inventoryControlSer: RhInventoryControlManageService\n  ) { }\n\n  /**\n     *  创建生产领料投料(计划)单\n     */\n  CreateProductOrderPlanDto(dto: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'CreateProductOrderPlanDto', dto);\n  }\n\n  /**\n     *  获取生产齐套统计\n     */\n  GetProductOrderDataStatisticsData(input: RhBaseDto): Observable<DataResultT<RhBaseDto>> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'GetProductOrderDataStatisticsData', input);\n  }\n\n  /**\n     *  获取工单Bom\n     */\n  GetProductPlanBomData(queryDto: RhBaseDto): Observable<DataResultT<RhBaseDto>> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'GetProductPlanBomData', queryDto);\n  }\n\n  /**\n     *  获取补料单Bom\n     */\n  GetProductPlanBomDataByPlan(planOrderId: string): Observable<DataResultT<RhBaseDto[]>> {\n    return this.apiUrls.GetRhpWms('ProductPlanBusinessApi', 'GetProductPlanBomDataByPlan', { params: { planOrderId } });\n  }\n\n  /**\n     *  存储补料单计划明细\n     */\n  StoreReplenishmentMaterialOutPlanOrderDetails(planOrder: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'StoreReplenishmentMaterialOutPlanOrderDetails', planOrder);\n  }\n\n  /**\n     *  创建补料单\n     */\n  CreateReplenishmentMaterialPlanOrder(dto: RhBaseDto): Observable<OpResult> {\n    return this.apiUrls.PostRhpWms('ProductPlanBusinessApi', 'CreateReplenishmentMaterialPlanOrder', dto);\n  }\n\n}\n","import { RhProductionOrderManageService } from './../../production-order-manage/production-order-manage.service';\nimport { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { RhDynamicInterfaceDto, RhSafeAny, RhSelectableDto, RhTableQueryOptionDto } from 'rh-base/model';\nimport { CustomizeBaseTableComponent } from 'rh-base/shared';\nimport { MsgHelper } from 'rh-base/core';\n\n/**\n * 生产投料单明细来源，根据工单号查询\n */\n@Component({\n  selector: 'rh-product-order-bom-table',\n  templateUrl: './product-order-bom-table.component.html',\n  styleUrls: ['./product-order-bom-table.component.less']\n})\nexport class ProductOrderBomTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  refreshDatas(option: RhTableQueryOptionDto) {\n    throw new Error('Method not implemented.');\n  }\n  // @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n\n  @Input() rhSingleMode = false;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() rhDisabled: boolean;\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto>();\n\n  @Input() rhName = 'ProductOrderBom';\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n  defaultInterfaceInfo: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'ProductPlanBusinessApi',\n    interfaceName: 'GetProductPlanBomData'\n  };\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [{ name: 'ProductionPlanCode', displayName: '工单单号', placeholder: '工单单号', editable: true }];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [\n    { name: 'ParentMaterialCode', displayName: '父物料编码', width: 150 },\n    { name: 'ProductBomCode', displayName: '产品BOM编码', width: 150 },\n    { name: 'VersionCode', displayName: '产品BOM版本号', width: 150 },\n    { name: 'MaterialCode', displayName: '物料代码', width: 120 },\n    { name: 'MaterialName', displayName: '物料名称', width: 120 },\n    { name: 'MaterialSpecification', displayName: '物料规格', width: 200, rhEllipsis: true },\n    { name: 'ProcessCode', displayName: '工序编码', width: 120 },\n    { name: 'ProcessName', displayName: '工序名称', width: 120 }\n  ];\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  constructor(private operator: RhProductionOrderManageService) {\n    super();\n  }\n\n  ngOnInit(): void {\n    // this.rhInterfaceInfo = this.rhInterfaceInfo || this.defaultInterfaceInfo;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhDefaultQueryDto } = changes;\n    if (rhDefaultQueryDto && rhDefaultQueryDto.currentValue) {\n      this.getProductPlanBomData();\n    }\n  }\n\n  // dataLoadingChange(status: boolean) {\n  //   this.dataLoading = status;\n  // }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  getProductPlanBomData() {\n    this.dataLoading = true;\n    this.operator.GetProductPlanBomData(this.rhDefaultQueryDto).subscribe(\n      (res) => {\n        if (res.Success) {\n          const dataset = res.Attach['BomDetails'] || [];\n          this.dataresult = { Attach: dataset, TotalCount: dataset.length, Success: true } as RhSafeAny;\n        } else {\n          this.dataresult = { Attach: [], TotalCount: 0 } as RhSafeAny;\n          MsgHelper.ShowWarningMessage(`查询无数据！${res.Message}`);\n        }\n        this.dataLoading = false;\n      },\n      () => (this.dataLoading = false)\n    );\n  }\n\n  // refreshDatas(option: RhTableQueryOptionDto) {\n  //   this.queryOption = option;\n  //   this.getDatas(option);\n  // }\n\n  // setInitFieldDataset(item: CodeClassModel) {\n  //   const tempDatas = [];\n  //   item.CodeProperties.forEach((ele) => {\n  //     const temp = RhDynamicTableFieldDto.create();\n  //     temp.name = ele.PropertyName;\n  //     temp.displayName = ele.Descirption;\n  //     tempDatas.push(temp);\n  //   });\n  //   this.defaultTableFieldDataset = [...tempDatas];\n  // }\n\n  // // 调用子组件中的接口\n  // private getDatas(option?: RhTableQueryOptionDto) {\n  //   option = option || this.queryOption;\n  //   if (this.queryFormCmt) {\n  //     this.queryFormCmt.submitDefaultForm(null, option);\n  //   }\n  // }\n}\n","<!-- 搜索Form区域 -->\n<!-- <div class=\"search-area rh-full\">\n  <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n    <ng-template #searchTpl>\n      <rh-dynamic-form\n        #queryForm\n        rhName=\"{{ rhName }}Form\"\n        [rhValue]=\"rhDefaultQueryDto\"\n        (rhInterfaceDataChange)=\"setDatas($event)\"\n        (rhDataloadingChange)=\"dataLoadingChange($event)\"\n        (rhOutParaChange)=\"setInitFieldDataset($event)\"\n        [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n        [(rhFormInterface)]=\"rhInterfaceInfo\"\n      ></rh-dynamic-form>\n    </ng-template>\n  </nz-alert>\n</div> -->\n<!-- 搜索结果Table展示区域 -->\n<!-- <div class=\"table-area\">\n  <rh-dynamic-table\n    rhName=\"{{ rhName }}Table\"\n    [rhTableData]=\"dataresult\"\n    [rhTableDataloading]=\"dataLoading\"\n    [rhDefaultFieldDataset]=\"defaultTableFieldDataset\"\n    (rhRefresh)=\"refreshDatas($event)\"\n    (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\"\n    [rhSingleMode]=\"rhSingleMode\"\n  ></rh-dynamic-table>\n</div> -->\n\n<!-- <div class=\"table-area\">\n  <rh-dynamic-single-table\n    rhName=\"detailTable\"\n    [rhInterfaceInfo]=\"defaultInterfaceInfo\"\n    [rhDefaultFieldDataset]=\"defaultTableFieldDataset\"\n    [rhPara]=\"rhDefaultQueryDto\"\n    (rh)\n  ></rh-dynamic-single-table>\n</div> -->\n\n<rh-dynamic-table\n  rhName=\"{{ rhName }}Table\"\n  [rhTableData]=\"dataresult\"\n  [rhTableDataloading]=\"dataLoading\"\n  [rhDefaultFieldDataset]=\"defaultTableFieldDataset\"\n  (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\"\n  [rhSingleMode]=\"rhSingleMode\"\n></rh-dynamic-table>\n","import { RhProductionOrderManageService } from '../../production-order-manage/production-order-manage.service';\nimport { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { DataResultT, RhSafeAny, RhSelectableDto } from 'rh-base/model';\nimport { MsgHelper } from 'rh-base/core';\n\n/**\n * 生产补料单明细来源，根据补料单计划单号查询\n */\n@Component({\n  selector: 'rh-product-plan-bom-table',\n  templateUrl: './product-plan-bom-table.component.html',\n  styleUrls: ['./product-plan-bom-table.component.less']\n})\nexport class ProductPlanBomTableComponent implements OnInit {\n  @Input() rhDefaultQueryDto = {};\n  @Input() rhName = 'ProductPlanBom';\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n\n  /** 表格Loading */\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  selectedDatas: RhSelectableDto[];\n\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [\n    { name: 'ParentMaterialCode', displayName: '父物料编码', width: 150 },\n    { name: 'ProductBomCode', displayName: '产品BOM编码', width: 150 },\n    { name: 'VersionCode', displayName: '产品BOM版本号', width: 150 },\n    { name: 'MaterialCode', displayName: '物料代码', width: 120 },\n    { name: 'MaterialName', displayName: '物料名称', width: 120 },\n    { name: 'MaterialSpecification', displayName: '物料规格', width: 200, rhEllipsis: true },\n    { name: 'ProcessCode', displayName: '工序编码', width: 120 },\n    { name: 'ProcessName', displayName: '工序名称', width: 120 },\n  ];\n\n  constructor(private operator: RhProductionOrderManageService) { }\n\n  ngOnInit(): void {\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhDefaultQueryDto } = changes;\n    if (rhDefaultQueryDto && rhDefaultQueryDto.currentValue) {\n      this.getProductPlanBomDataByPlan();\n    }\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  getProductPlanBomDataByPlan() {\n    this.dataLoading = true;\n    this.operator.GetProductPlanBomDataByPlan(this.rhDefaultQueryDto['planOrderId']).subscribe(res => {\n      if (res.Success) {\n        const dataset = res.Attach?.[0]?.['BomDetails'] || [];\n        dataset.forEach(data => {\n          data.SourceOrderId = res.Attach[0].ProductionPlanCode;\n        });\n        this.dataresult = { Attach: dataset, TotalCount: dataset.length, Success: true } as RhSafeAny;\n      } else {\n        this.dataresult = { Attach: [], TotalCount: 0 } as RhSafeAny;\n        MsgHelper.ShowWarningMessage(`查询无数据！${res.Message}`);\n      }\n      this.dataLoading = false;\n    }, () => this.dataLoading = false)\n  }\n\n}\n","<rh-dynamic-table\n  rhName=\"{{ rhName }}Table\"\n  [rhTableData]=\"dataresult\"\n  [rhTableDataloading]=\"dataLoading\"\n  [rhDefaultFieldDataset]=\"defaultTableFieldDataset\"\n  (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\"\n  [rhSingleMode]=\"false\"\n></rh-dynamic-table>\n","import { NgModule } from '@angular/core';\nimport { RhSharedModule } from 'rh-base/shared';\nimport { PurchaseOrderMaterialChooseTableComponent } from './purchase-order-material-choose-table/purchase-order-material-choose-table.component';\nimport { ProductOrderBomTableComponent } from './product-order-bom-table/product-order-bom-table.component';\nimport { RhProductionOrderManageService } from '../production-order-manage/production-order-manage.service';\nimport { ProductPlanBomTableComponent } from './product-plan-bom-table/product-plan-bom-table.component';\n\nconst COMPONENTS = [PurchaseOrderMaterialChooseTableComponent, ProductOrderBomTableComponent, ProductPlanBomTableComponent];\n\n@NgModule({\n  declarations: [...COMPONENTS],\n  imports: [RhSharedModule],\n  exports: [...COMPONENTS],\n  providers: [RhProductionOrderManageService]\n})\nexport class SharedModule { }\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { CustomizeBaseTableComponent, DynamicFormComponent } from 'rh-base/shared';\nimport { RhDynamicInterfaceDto, RhSelectableDto, RhTableQueryOptionDto, CodeClassModel, RhDynamicTableFieldDto } from 'rh-base/model';\n\n@Component({\n  selector: 'rh-purchase-order-detail-data-table',\n  templateUrl: './purchase-order-detail-data-table.component.html',\n  styleUrls: ['./purchase-order-detail-data-table.component.less']\n})\nexport class PurchaseOrderDetailDataTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n\n  @Input() rhSingleMode = false;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() rhDisabled: boolean;\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto>();\n\n  rhName = 'PurchaseOrderDetailData';\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n  defaultInterfaceInfo: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'BusinessOrdersManageApi',\n    interfaceName: 'GetPurchaseOrderDetailDatas'\n  };\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [\n    { name: 'MaterialCode', displayName: '物料代码', placeholder: '物料代码', editable: true },\n    { name: 'MaterialName', displayName: '物料名称', placeholder: '物料名称', editable: true },\n    {\n      name: 'OrderCode',\n      displayName: '采购单号',\n      placeholder: '采购单号',\n      editable: true\n    }\n  ];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [\n    { name: 'OrderCode', displayName: '采购单号', width: 120 },\n    { name: 'OrderRowNum', displayName: '采购单行号', width: 120 },\n    { name: 'MaterialCode', displayName: '物料编号', width: 120 },\n    { name: 'MaterialName', displayName: '物料名称', width: 120 },\n    { name: 'MaterialSpecification', displayName: '物料规格', width: 200, rhEllipsis: true },\n    {\n      name: 'MaterialCategory',\n      displayName: '物料类别',\n      width: 120,\n      type: 'array',\n      config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'MaterialCategory' }\n    },\n    {\n      name: 'MaterialAttribute',\n      displayName: '物料属性',\n      width: 120,\n      type: 'array',\n      config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'ProductMaterialAttribute' }\n    },\n    { name: 'SupplierCode', displayName: '供应商代码', width: 120 },\n    { name: 'SupplierName', displayName: '供应商名称', width: 120 },\n    {\n      name: 'MeasureUnit',\n      displayName: '计量单位',\n      width: 120,\n      type: 'array',\n      config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n    },\n    { name: 'Remark', displayName: '备注', width: 120, rhEllipsis: true },\n    { name: 'PurchaseQty', displayName: '采购数量', width: 120 }\n  ];\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  constructor() {\n    super();\n  }\n\n  ngOnInit(): void {\n    this.rhInterfaceInfo = this.rhInterfaceInfo || this.defaultInterfaceInfo;\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n}\n","<!-- 搜索Form区域 -->\n<div class=\"search-area rh-full\">\n  <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n    <ng-template #searchTpl>\n      <rh-dynamic-form\n        #queryForm\n        rhName=\"{{ rhName }}Form\"\n        [rhValue]=\"rhDefaultQueryDto\"\n        (rhInterfaceDataChange)=\"setDatas($event)\"\n        (rhDataloadingChange)=\"dataLoadingChange($event)\"\n        (rhOutParaChange)=\"setInitFieldDataset($event)\"\n        [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n        [(rhFormInterface)]=\"rhInterfaceInfo\"\n      ></rh-dynamic-form>\n    </ng-template>\n  </nz-alert>\n</div>\n<!-- 搜索结果Table展示区域 -->\n<div class=\"table-area\">\n  <rh-dynamic-table\n    rhName=\"{{ rhName }}Table\"\n    [rhTableData]=\"dataresult\"\n    [rhTableDataloading]=\"dataLoading\"\n    [rhDefaultFieldDataset]=\"defaultTableFieldDataset\"\n    (rhRefresh)=\"refreshDatas($event)\"\n    (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\"\n    [rhSingleMode]=\"rhSingleMode\"\n  ></rh-dynamic-table>\n</div>\n","import { Observable } from 'rxjs';\nimport { Component, OnInit, Input, Output, EventEmitter, SimpleChanges } from '@angular/core';\nimport { RhBaseDto, RhSelectableDto, DataResultT, RhTableButtonInfoDto, OpMode, RhSafeAny } from 'rh-base/model';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport { RhPurchaseOrderManageService } from '../../purchase-order-manage.service';\nimport { RhBusinessManageService } from './../../../../business-manage/business-manage.service';\nimport { PurchaseAdvanceReceiptOrderDetailDto, PurchaseOrderDetailDto } from '../../purchase-order-manage-model';\n\n@Component({\n  selector: 'rh-purchase-advance-receipt-order-detail',\n  templateUrl: './purchase-advance-receipt-order-detail.component.html',\n  styleUrls: ['./purchase-advance-receipt-order-detail.component.less']\n})\nexport class PurchaseAdvanceReceiptOrderDetailComponent implements OnInit {\n  @Input() rhPlanOrder: RhBaseDto;\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter();\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto(\n      'deleteDetails',\n      '删除',\n      'primary', true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhSelectableDto[]),\n      false,\n      true\n    ),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset = [new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)];\n  tableVisibleSetting = {};\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  isEnterEditStatus = false;\n\n  get isReadOnlyTable() {\n    return this.rhShowDetail || !this.rhPlanOrder?.OrderCode || this.isEnterEditStatus;\n  }\n\n  get readeOnlyButtonDataset() {\n    if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(private operator: RhPurchaseOrderManageService, public businessManageSer: RhBusinessManageService) { }\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhPlanOrder } = changes;\n    if (rhPlanOrder && rhPlanOrder.currentValue) {\n      if (this.rhPlanOrder.OrderCode) {\n        this.getDatas();\n      }\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getDynamicVisibleSetting(['LotNum']));\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      OrderCode: this.rhPlanOrder.OrderCode,\n      FactoryCode: this.rhPlanOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetPurchaseAdvanceReceiptOrderDetailDatas(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`);\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    const checkRes = this.checkStoreDatas(details);\n    if (!checkRes) {\n      return;\n    }\n    return new Observable((observer) => {\n      const msg = editType === 'add' ? '新增' : '编辑';\n      this.dataLoading = true;\n      this.operator.StorePurchaseAdvanceReceiptOrderDetailDatas(details).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`);\n          } else {\n            MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n          observer.next();\n          observer.complete();\n        },\n        () => {\n          this.dataLoading = false;\n          observer.error();\n        }\n      );\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[]) {\n    this.extraButtonHandleDataset[1].loading = true;\n    this.operator.RemovePurchaseAdvanceReceiptOrderDetailDatas(details).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n          this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n        }\n        this.extraButtonHandleDataset[1].loading = false;\n      },\n      () => (this.extraButtonHandleDataset[1].loading = false)\n    );\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    const datas = details.map((data) => {\n      const temp = PurchaseAdvanceReceiptOrderDetailDto.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 单头赋值\n      temp.OrderCode = this.rhPlanOrder.OrderCode;\n      temp.PurchaseOrderCode = data.OrderCode;\n      temp.WarehouseCode = this.rhPlanOrder.WarehouseCode;\n      temp.WarehouseName = this.rhPlanOrder.WarehouseName;\n      temp.FactoryCode = this.rhPlanOrder.FactoryCode;\n      temp.PurchaseQty = data.PurchaseQty;\n      temp.PurchaseOrderRowNum = data.OrderRowNum;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n      }\n      this.dataresult = { Attach: (this.dataresult?.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  /** 检查保存数据 */\n  checkStoreDatas(details: RhSelectableDto[]) {\n    // 必须填写计划数量\n    if (details.some((f) => !f.TransactQty)) {\n      MsgHelper.ShowWarningMessage('实收数量不能为0或空！');\n      return false;\n    }\n    if (details.some((f) => f.TransactQty > f.PurchaseQty)) {\n      MsgHelper.ShowWarningMessage('实收数量不能大于采购数量！');\n      return false;\n    }\n    // 计划批次号开启后，可填可不填，只判断超额入库\n    // if (!this.businessManageSer.IsEnableExcessInWarehouse) {\n    //   if (details.some((f) => f.PlanQty + f.SourcePlannedQty > f.StockQty)) {\n    //     MsgHelper.ShowWarningMessage('未启用超额入库！不能超额计划源单数量！');\n    //     return false;\n    //   }\n    // }\n    return true;\n  }\n\n  openDataModal() {\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n}\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n    <rh-dynamic-table\n      rhName=\"handleDetailsReadOnlyTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    ></rh-dynamic-table>\n  </ng-container>\n  <ng-template #handleTpl>\n    <rh-dynamic-table\n      rhName=\"handleDetailsTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    >\n    </rh-dynamic-table>\n  </ng-template>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"'选择采购入库数据'\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-purchase-order-detail-data-table (rhModelChange)=\"onSelectModal($event)\" [rhSingleMode]=\"false\">\n      </rh-purchase-order-detail-data-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { RhSharedManageService } from './../../../shared-manage/shared-manage.service';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport {\n  RhBaseDto,\n  DataResultT,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  RhLoginedUserDto,\n  OpMode,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto,\n  RhSafeAny,\n  OpResult\n} from 'rh-base/model';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\nimport { RhPurchaseOrderManageService } from '../purchase-order-manage.service';\nimport { RhBusinessOrderManageService } from './../../../business-order-manage/business-order-manage.service';\nimport { BusinessType } from './../../../business-order-manage/business-type';\n\ntype TabType = 'edit' | 'detail' | 'audit';\n\n@Component({\n  selector: 'rh-purchase-advance-receipt-order',\n  templateUrl: './purchase-advance-receipt-order.component.html',\n  styleUrls: ['./purchase-advance-receipt-order.component.less']\n})\nexport class PurchaseAdvanceReceiptOrderComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  BusinessType = BusinessType.OtherIn;\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isShowCloseInPlanRemarkModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  closeDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  completeVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitInWarehouse';\n  };\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  isAsCreated = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto))\n    // new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) =>\n    //   this.openDetailTab({ data } as RhBaseDto, 'audit')\n    // ),\n    // new RhTableButtonInfoDto(\n    //   'close',\n    //   '关闭',\n    //   'default',\n    //   'close-circle',\n    //   false,\n    //   null,\n    //   (data) => this.openCloseInPlanRemarkModal(data as RhBaseDto),\n    //   null,\n    //   null,\n    //   'red'\n    // )\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '新建', 'primary', false, 'file', false, null, () => this.openEditTab(), true),\n    new RhTableButtonInfoDto(\n      'delete',\n      '删除',\n      'primary',true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhBaseDto[]),\n      false,\n      false,\n      'red'\n    )\n  ];\n\n  beforeSubmit = async (data: RhBaseDto, context: DynamicFormComponent) => {\n    let result: OpResult = null;\n    const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n    context.submitLoading = true;\n    try {\n      if (this.editDto.OpSign === OpMode.OpAdd) {\n        // 基本信息\n        data.OrderCreatorName = this.currentUser.DisplayName;\n        data.OrderCreatorCode = this.currentUser.UserName;\n        data.OrderCreateDate = new Date().toLocaleDateString();\n        data.OrderCreateTime = new Date().toLocaleString();\n\n        result = await this.operator.StorePurchaseAdvanceReceiptOrderMasterData(data).toPromise();\n      } else {\n        result = await this.operator.UpdatePurchaseAdvanceReceiptOrderMasterData(data).toPromise();\n      }\n      if (result && result.Success) {\n        MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n        this.editDto.OrderCode = result?.Attach?.OrderCode;\n        this.isShowEditForm = false;\n        this.getDetails();\n      } else {\n        MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n      }\n    } catch (error) {\n      //\n    } finally {\n      context.submitLoading = false;\n    }\n\n    return false;\n  };\n\n  constructor(\n    private operator: RhPurchaseOrderManageService,\n    public businessManageSer: RhBusinessOrderManageService,\n    public storage: RhStorageService,\n    public sharedManageSer: RhSharedManageService\n  ) {}\n\n  ngOnInit(): void {\n    this.setUserInfo();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {\n        PurchaserId: this.currentUser.UserName,\n        Purchaser: this.currentUser.DisplayName,\n        FactoryCode: this.currentUser.FactoryCode\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.editDto = null;\n    this.selectedIndex = 0;\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.selectedIndex = 1;\n  }\n\n  // 未退出页面，刷新数据内容\n  getDetails() {\n    const queryDto = { OrderCode: this.editDto.OrderCode };\n    this.operator.GetPurchaseAdvanceReceiptOrderMasterDatas(queryDto).subscribe((result) => {\n      if (result.Success && result.Attach.length === 1) {\n        this.editDto = result.Attach[0];\n        this.editDto.OpSign = OpMode.OpEdit;\n      }\n    });\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    }\n  }\n\n  /** 打开关闭计划备注弹窗 */\n  openCloseInPlanRemarkModal(data: RhBaseDto) {\n    this.closeDto = { OrderCode: data.OrderCode, Remark: data.Remark };\n    this.isShowCloseInPlanRemarkModal = true;\n  }\n\n  /** 关闭关闭计划备注弹窗 */\n  closeCloseInPlanRemarkModal() {\n    this.closeDto = {};\n    this.isShowCloseInPlanRemarkModal = false;\n  }\n\n  /** 关闭接口返回 */\n  onCloseData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('关闭入库计划成功！');\n      this.closeCloseInPlanRemarkModal();\n      this.getDatas();\n    } else {\n      MsgHelper.ShowWarningModal(`关闭入库计划失败！${result.Message}`);\n    }\n  }\n\n  /** 删除计划 */\n  removeDatas(datas: RhBaseDto[]) {\n    this.dataLoading = true;\n    this.operator.RemovePurchaseAdvanceReceiptOrderMasterDatas(datas as RhSafeAny).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除成功！');\n          this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n        }\n        this.dataLoading = false;\n      },\n      () => {\n        this.dataLoading = false;\n      }\n    );\n  }\n  //#endregion 操作区域结束\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  >\n                  </rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              >\n              </rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>数据{{ editDto?.OpSign === 1 ? '新增' : '编辑' }}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = true\">\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button *ngIf=\"!isShowEditForm\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else editDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template\n                    rhTemplate=\"InWarehouseCode\"\n                    let-formGroup\n                    let-setting=\"setting\"\n                    let-hostConfig=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.placeholder }}</nz-form-label>\n                      <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                        <rh-business-warehouse-selector\n                          name=\"InWarehouseCode\"\n                          [formControl]=\"formGroup.get('InWarehouseCode')\"\n                          rhFormType=\"edit\"\n                          [rhFieldData]=\"businessManageSer.setWarehouseFieldSetting(setting, 'In')\"\n                          [rhSize]=\"hostConfig?.rhSize\"\n                          [rhData]=\"formData\"\n                        >\n                        </rh-business-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                  <ng-template\n                    rhTemplate=\"PurchaseDate\"\n                    let-formgroup\n                    let-setting=\"setting\"\n                    let-hostSetting=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                        <nz-date-picker [formControl]=\"formgroup.get('PurchaseDate')\" rhFormType=\"edit\"></nz-date-picker>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                  <ng-template\n                    rhTemplate=\"DeliveryDate\"\n                    let-formgroup\n                    let-setting=\"setting\"\n                    let-hostSetting=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.displayName }}</nz-form-label>\n                      <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                        <nz-date-picker [formControl]=\"formgroup.get('DeliveryDate')\" rhFormType=\"edit\"></nz-date-picker>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-purchase-advance-receipt-order-detail [rhPlanOrder]=\"editDto\" (rhDetailsUpdate)=\"getDetails()\">\n              </rh-purchase-advance-receipt-order-detail>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <!-- <button *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\" nz-button\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"auditData(editDto)\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</button> -->\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"editDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-purchase-advance-receipt-order-detail [rhPlanOrder]=\"editDto\" [rhShowDetail]=\"true\">\n              </rh-purchase-advance-receipt-order-detail>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #editDescription>\n  <rh-dynamic-description *ngIf=\"isRefreshDesc\" rhName=\"editDescription\" [rhValue]=\"editDto\"></rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'关闭入库计划备注'\"\n  [nzVisible]=\"isShowCloseInPlanRemarkModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeCloseInPlanRemarkModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #closeDataForm\n    rhName=\"closeDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"closeDto\"\n    (rhInterfaceDataChange)=\"onCloseData($event)\"\n    (rhClose)=\"closeCloseInPlanRemarkModal()\"\n  ></rh-dynamic-form>\n</nz-modal>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RhSharedModule } from 'rh-base/shared';\nimport { RhSharedManageModule } from './../../shared-manage/shared-manage.module';\nimport { RhPurchaseOrderManageService } from './purchase-order-manage.service';\nimport { RhOtherBusinessModule } from './../../business-manage/other-business/other-business.module';\nimport { PurchaseOrderComponent } from './purchase-order/purchase-order.component';\nimport { PurchaseOrderDetailComponent } from './purchase-order/purchase-order-detail/purchase-order-detail.component';\nimport { SharedModule } from '../shared/shared.module';\nimport { PurchaseAdvanceReceiptOrderComponent } from './purchase-advance-receipt-order/purchase-advance-receipt-order.component';\nimport { PurchaseAdvanceReceiptOrderDetailComponent } from './purchase-advance-receipt-order/purchase-advance-receipt-order-detail/purchase-advance-receipt-order-detail.component';\nimport { PurchaseOrderDetailDataTableComponent } from './snippets/purchase-order-detail-data-table/purchase-order-detail-data-table.component';\n\nconst COMPONENTS = [\n  PurchaseOrderComponent,\n  PurchaseOrderDetailComponent,\n  PurchaseAdvanceReceiptOrderComponent,\n  PurchaseAdvanceReceiptOrderDetailComponent\n];\n\nconst SNIPPETS = [PurchaseOrderDetailDataTableComponent];\n\n@NgModule({\n  declarations: [...COMPONENTS, ...SNIPPETS],\n  imports: [RhSharedModule, RhSharedManageModule, RhOtherBusinessModule, SharedModule],\n  providers: [RhPurchaseOrderManageService]\n})\nexport class RhPurchaseOrderManageModule {}\n","import { RhProductionOrderManageService } from './../production-order-manage.service';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\nimport { CodeClassModel, DataResultT, RhBaseDto, RhDynamicTableFieldDto, RhLoginedUserDto, RhSelectableDto, RhTableButtonInfoDto, RhTableQueryOptionDto } from 'rh-base/model';\nimport { DynamicFormComponent } from 'rh-base/shared';\n\n@Component({\n  selector: 'rh-production-plan-manage',\n  templateUrl: './production-plan-manage.component.html',\n  styleUrls: ['./production-plan-manage.component.less']\n})\nexport class RhProductionPlanManageComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  defaultFieldDataset = [];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('createReplenishmentOrder', '生成补料单', 'primary', false, 'file', true, null, (datas, buttonInfo) => this.createReplenishmentOrder(datas as RhBaseDto[], buttonInfo), false, true)\n  ];\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('createPickedMaterialOutPlanOrder', '生成投料单', 'primary', false, 'file', true, null, (data, buttonInfo) => this.createFeedingOrder(data as RhBaseDto, buttonInfo), true, true)\n  ];\n\n  currentUser: RhLoginedUserDto;\n\n  constructor(private operator: RhProductionOrderManageService, private storage: RhStorageService) { }\n\n  ngOnInit(): void {\n    this.currentUser = this.storage.getUserSession()?.User;\n  }\n\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  //调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  /** 生成投料单 */\n  createFeedingOrder(data: RhBaseDto, buttonInfo: RhTableButtonInfoDto) {\n    buttonInfo.loading = true;\n    data.Creator = this.currentUser.DisplayName;\n    data.CreatorId = this.currentUser.UserName;\n    this.operator.CreateProductOrderPlanDto(data).subscribe(result => {\n      if (result.Success) {\n        MsgHelper.ShowSuccessMessage('生成投料单成功！');\n        this.getDatas();\n      } else {\n        MsgHelper.ShowWarningMessage(`生成投料单失败！${result.Message}`);\n      }\n      buttonInfo.loading = false;\n    }, () => buttonInfo.loading = false)\n  }\n\n  /** 生成补料单 */\n  createReplenishmentOrder(datas: RhBaseDto[], buttonInfo: RhTableButtonInfoDto) {\n    buttonInfo.loading = true;\n    const data = {\n      ProductionPlanOrderDtos: datas,\n      Creator: this.currentUser.DisplayName,\n      CreatorId: this.currentUser.UserName\n    };\n    this.operator.CreateReplenishmentMaterialPlanOrder(data).subscribe(result => {\n      if (result.Success) {\n        MsgHelper.ShowSuccessMessage('生成补料单成功！');\n        this.getDatas();\n      } else {\n        MsgHelper.ShowWarningMessage(`生成补料单失败！${result.Message}`);\n      }\n      buttonInfo.loading = false;\n    }, () => buttonInfo.loading = false)\n  }\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  ></rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n              ></rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n","import { RhProductionBusinessService } from './../../../../business-manage/production-business/production-business.service';\nimport { ProductPickingMaterialOutPlanOrderDetails } from './../../../../business-manage/production-business/production-business-model';\nimport { RhBusinessManageService } from './../../../../business-manage/business-manage.service';\nimport { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { DataResultT, OpMode, RhBaseDto, RhSafeAny, RhSelectableDto, RhTableButtonInfoDto } from 'rh-base/model';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport { Observable } from 'rxjs';\nimport * as _ from 'lodash';\n\n@Component({\n  selector: 'rh-production-feeding-details',\n  templateUrl: './production-feeding-details.component.html',\n  styleUrls: ['./production-feeding-details.component.less']\n})\nexport class ProductionFeedingDetailsComponent implements OnInit {\n  @Input() rhPlanOrder: RhBaseDto;\n  @Output() rhDetailsUpdate = new EventEmitter();\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto(\n      'deleteDetails',\n      '删除',\n      'primary',true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhSelectableDto[]),\n      false,\n      true\n    ),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset = [new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)];\n  tableVisibleSetting = {};\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  isEnterEditStatus = false;\n  // 源单明细数据\n  sourceDetailQueryDto: RhBaseDto = {};\n\n  get readeOnlyButtonDataset() {\n    if (!this.rhPlanOrder?.PlanOrderId) return [];\n    else if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(private operator: RhProductionBusinessService, public businessManageSer: RhBusinessManageService) { }\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhPlanOrder } = changes;\n    if (rhPlanOrder && rhPlanOrder.currentValue) {\n      this.sourceDetailQueryDto = { ProductionPlanCode: this.rhPlanOrder?.ProductionPlanCode ? `$${this.rhPlanOrder.ProductionPlanCode}` : null };\n      this.initOutPlanOrderDetailDataset();\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getDynamicVisibleSetting(['LotNum']));\n  }\n\n  /** 初始化明细数据 */\n  initOutPlanOrderDetailDataset() {\n    if (this.rhPlanOrder.PlanOrderId) {\n      this.getDatas();\n    }\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      PlanOrderId: this.rhPlanOrder.PlanOrderId,\n      SourceOrderId: this.rhPlanOrder.SourceOrderId,\n      FactoryCode: this.rhPlanOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetProductPickingMaterialOutPlanOrderDetailsDatasBy(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`);\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.rhDetailsUpdate.emit();\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    const checkRes = this.checkStoreDatas(details);\n    if (!checkRes) {\n      return;\n    }\n    // 源单号赋值\n    details.forEach((ele) => (ele.SourceOrderId = this.rhPlanOrder.SourceOrderId));\n    return new Observable((observer) => {\n      const dto = {\n        OrderMaster: this.rhPlanOrder,\n        OrderDetails: details\n      };\n      const msg = editType === 'add' ? '新增' : '编辑';\n      this.dataLoading = true;\n      this.operator.StoreProductPickingMaterialOutPlanOrderDetails(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`);\n          } else {\n            MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n          observer.next();\n          observer.complete();\n        },\n        () => {\n          this.dataLoading = false;\n          observer.error();\n        }\n      );\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[]) {\n    this.extraButtonHandleDataset[1].loading = true;\n    this.operator.RemoveProductPickingMaterialOutPlanOrderDetails(details).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n          this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n        }\n        this.extraButtonHandleDataset[1].loading = false;\n      },\n      () => (this.extraButtonHandleDataset[1].loading = false)\n    );\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  async handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    // 是否已存在该物料明细\n    const dataset = this.dataresult?.Attach || [];\n    if (dataset.length) {\n      const existedMaterialDatas = details.filter(ele => dataset.find(data => data.MaterialCode === ele.MaterialCode)) || [];\n      if (existedMaterialDatas.length) {\n        if (existedMaterialDatas.length === details.length) { // 全部已存在\n          return this.enterEditingStatus();\n        } else { // 部分已存在\n          details = _.without(details, ...existedMaterialDatas);\n        }\n      }\n    }\n\n    // 获取源单统计信息\n    const convertResult = await this.businessManageSer.convertSourceOrderStatisticsDatasToSelectedDatas(\n      this.rhPlanOrder.SourceOrderId,\n      this.rhPlanOrder.BusinessType,\n      details\n    );\n    const datas = details.map((data) => {\n      const temp = ProductPickingMaterialOutPlanOrderDetails.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 源单赋值\n      if (!convertResult) {\n        temp.SourceOrderId = this.rhPlanOrder.SourceOrderId;\n        // temp.SourceOrderRowNum = data.ProductionPickingOrderRowNum;\n        temp.SourceOrderQty = data.NeededPickQty;\n        temp.SourceCompletedQty = data.PickedQty;\n      }\n      // 单头赋值\n      temp.PlanOrderId = this.rhPlanOrder.PlanOrderId;\n      temp.BusinessType = this.rhPlanOrder.BusinessType;\n      if (data.WarehouseCode) {\n        temp.OutWarehouseCode = data.WarehouseCode;\n        temp.OutWarehouseName = data.WarehouseName;\n      } else {\n        temp.OutWarehouseCode = this.rhPlanOrder.OutWarehouseCode;\n        temp.OutWarehouseName = this.rhPlanOrder.OutWarehouseName;\n      }\n      temp.FactoryCode = this.rhPlanOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n      }\n      this.dataresult = { Attach: (this.dataresult.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  /** 检查保存数据 */\n  checkStoreDatas(details: RhSelectableDto[]) {\n    // 必须填写计划数量\n    if (details.some((f) => !f.PlanQty)) {\n      MsgHelper.ShowWarningMessage('计划数量不能为0或空！');\n      return false;\n    }\n    return true;\n  }\n\n  openDataModal() {\n    // this.getSourceDetailDatas();\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n}\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isEnterEditStatus; else handleTpl\">\n    <rh-dynamic-table\n      rhName=\"handleDetailsReadOnlyTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    >\n      <ng-template rhTemplate=\"LotNum\" let-item let-data=\"data\">\n        <ng-container *ngIf=\"data.select; else lotNumTpl\">\n          <input nz-input nzSize=\"small\" [(ngModel)]=\"data.LotNum\" [placeholder]=\"item?.displayName\" />\n        </ng-container>\n        <ng-template #lotNumTpl>{{ data.LotNum }}</ng-template>\n      </ng-template>\n    </rh-dynamic-table>\n  </ng-container>\n  <ng-template #handleTpl>\n    <rh-dynamic-table\n      rhName=\"handleDetailsTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    >\n    </rh-dynamic-table>\n  </ng-template>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"'选择投料明细'\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <!-- <rh-dynamic-table\n        rhName=\"sourceOrderDetailTable\"\n        [rhTableData]=\"sourceDetailDataResult\"\n        [rhTableDataloading]=\"sourceDetailDataLoading\"\n        [rhDefaultFieldDataset]=\"sourceDetailTableFieldDataset\"\n        [rhSingleMode]=\"false\"\n        (rhSelectedDatasChange)=\"onSelectModal($event)\"\n      ></rh-dynamic-table> -->\n      <rh-product-order-bom-table\n        rhName=\"sourceOrderDetail\"\n        [rhDefaultQueryDto]=\"sourceDetailQueryDto\"\n        (rhModelChange)=\"onSelectModal($event)\"\n      ></rh-product-order-bom-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { RhProductionBusinessService } from './../../../business-manage/production-business/production-business.service';\nimport { RhSharedManageService } from './../../../shared-manage/shared-manage.service';\nimport { RhBusinessManageService } from './../../../business-manage/business-manage.service';\nimport { BusinessType } from './../../../business-manage/business-type';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\nimport { CodeClassModel, DataResultT, RhBaseDto, RhDynamicTableFieldDto, RhLoginedUserDto, RhSelectableDto, RhTableButtonInfoDto, RhTableQueryOptionDto } from 'rh-base/model';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport { RhProductionOrderManageService } from '../production-order-manage.service';\n\n@Component({\n  selector: 'rh-production-feeding-manage',\n  templateUrl: './production-feeding-manage.component.html',\n  styleUrls: ['./production-feeding-manage.component.less']\n})\nexport class RhProductionFeedingManageComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  BusinessType = BusinessType.ProductPickedMaterialOut;\n  // 齐套信息\n  statisticsData: RhBaseDto = {};\n  statisticsDataLoading = false;\n\n  editButtonDataset: RhTableButtonInfoDto[] = [];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    // new RhTableButtonInfoDto(\n    //   'delete',\n    //   '删除',\n    //   'primary',true,\n    //   'delete',\n    //   true,\n    //   null,\n    //   (datas) => this.removeDatas(datas as RhBaseDto[]),\n    //   false,\n    //   false,\n    //   'red'\n    // )\n  ];\n\n  constructor(\n    private operator: RhProductionBusinessService,\n    public businessManageSer: RhBusinessManageService,\n    public storage: RhStorageService,\n    public sharedManageSer: RhSharedManageService,\n    public productionOrderManageSer: RhProductionOrderManageService\n  ) { }\n\n  ngOnInit(): void {\n    this.setUserInfo();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  openDetailTab(dto: RhBaseDto) {\n    this.editDto = dto.data;\n    this.getProductOrderDataStatisticsData();\n    this.selectedIndex = 1;\n  }\n\n  closeDetailTab() {\n    this.selectedIndex = 0;\n  }\n\n  // 未退出页面，刷新数据内容\n  // getDetails() {\n  //   const queryDto = { PlanOrderId: this.editDto.PlanOrderId };\n  //   this.operator.GetProductPickingMaterialOutPlanOrderDatas(queryDto).subscribe((result) => {\n  //     if (result.Success && result.Attach.length === 1) {\n  //       this.editDto = result.Attach[0];\n  //       this.editDto.OpSign = OpMode.OpEdit;\n  //     }\n  //   });\n  // }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    }\n  }\n\n  //#region 操作区域开始\n  /** 删除计划 */\n  // removeDatas(datas: RhBaseDto[]) {\n  //   const some = datas.some((f) => f.OrderStatus !== 'Created');\n  //   if (some) {\n  //     MsgHelper.ShowWarningMessage('只能删除制单状态的数据！');\n  //   } else {\n  //     this.dataLoading = true;\n  //     this.operator.RemoveProductPickingMaterialOutPlanOrders(datas as RhSafeAny).subscribe(\n  //       (result) => {\n  //         if (result.Success) {\n  //           MsgHelper.ShowSuccessMessage('删除成功！');\n  //           this.getDatas();\n  //         } else {\n  //           MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n  //         }\n  //         this.dataLoading = false;\n  //       },\n  //       () => {\n  //         this.dataLoading = false;\n  //       }\n  //     );\n  //   }\n  // }\n\n  /** 打开详情页，获取齐套信息 */\n  getProductOrderDataStatisticsData() {\n    const queryDto = { ProductionPlanCode: this.editDto?.ProductionPlanCode ? `$${this.editDto.ProductionPlanCode}` : null };\n    this.statisticsDataLoading = true;\n    this.productionOrderManageSer.GetProductOrderDataStatisticsData(queryDto).subscribe(res => {\n      if (res.Success) {\n        this.statisticsData = res.Attach;\n      } else {\n        this.statisticsData = null;\n        MsgHelper.ShowWarningMessage(`获取齐套信息失败！${res.Message}`);\n      }\n      this.statisticsDataLoading = false;\n    }, () => this.statisticsDataLoading = false);\n  }\n  //#endregion 操作区域结束\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  >\n                  </rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              >\n              </rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeDetailTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"基础信息\">\n              <ng-container *ngTemplateOutlet=\"detailsDescription\"></ng-container>\n            </nz-card>\n            <nz-card nzTitle=\"齐套信息\">\n              <nz-spin [nzSpinning]=\"statisticsDataLoading\">\n                <rh-dynamic-description rhName=\"statisticsDataDescription\" [rhValue]=\"statisticsData\"> </rh-dynamic-description>\n              </nz-spin>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-production-feeding-details [rhPlanOrder]=\"editDto\" (rhDetailsUpdate)=\"getProductOrderDataStatisticsData()\">\n              </rh-production-feeding-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #detailsDescription>\n  <rh-dynamic-description rhName=\"detailsDescription\" [rhValue]=\"editDto\"> </rh-dynamic-description>\n</ng-template>\n","import { RhProductionBusinessService } from './../../../../business-manage/production-business/production-business.service';\nimport { RhBusinessManageService } from './../../../../business-manage/business-manage.service';\nimport { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { DataResultT, OpMode, RhBaseDto, RhSafeAny, RhSelectableDto, RhTableButtonInfoDto } from 'rh-base/model';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport * as _ from 'lodash';\nimport { ProductPickingMaterialOutPlanOrderDetails } from './../../../../business-manage/production-business/production-business-model';\nimport { Observable } from 'rxjs';\nimport { RhProductionOrderManageService } from '../../production-order-manage.service';\n\n@Component({\n  selector: 'rh-production-replenishment-details',\n  templateUrl: './production-replenishment-details.component.html',\n  styleUrls: ['./production-replenishment-details.component.less']\n})\nexport class ProductionReplenishmentDetailsComponent implements OnInit {\n  @Input() rhPlanOrder: RhBaseDto;\n  @Output() rhDetailsUpdate = new EventEmitter();\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto(\n      'deleteDetails',\n      '删除',\n      'primary',true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhSelectableDto[]),\n      false,\n      true\n    ),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset = [new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)];\n  tableVisibleSetting = {};\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  isEnterEditStatus = false;\n  // 源单明细数据\n  sourceDetailQueryDto: RhBaseDto = {};\n\n  get readeOnlyButtonDataset() {\n    if (!this.rhPlanOrder?.PlanOrderId) return [];\n    else if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(private operator: RhProductionBusinessService, public businessManageSer: RhBusinessManageService, private productionOrderSer: RhProductionOrderManageService) { }\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhPlanOrder } = changes;\n    if (rhPlanOrder && rhPlanOrder.currentValue) {\n      this.sourceDetailQueryDto = { planOrderId: this.rhPlanOrder?.PlanOrderId ? `${this.rhPlanOrder.PlanOrderId}` : null };\n      this.initOutPlanOrderDetailDataset();\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getDynamicVisibleSetting(['LotNum']));\n  }\n\n  /** 初始化明细数据 */\n  initOutPlanOrderDetailDataset() {\n    if (this.rhPlanOrder.PlanOrderId) {\n      this.getDatas();\n    }\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      PlanOrderId: this.rhPlanOrder.PlanOrderId,\n      // SourceOrderId: this.rhPlanOrder.SourceOrderId,\n      FactoryCode: this.rhPlanOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetProductPickingMaterialOutPlanOrderDetailsDatasBy(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`);\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.rhDetailsUpdate.emit();\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    const checkRes = this.checkStoreDatas(details);\n    if (!checkRes) {\n      return;\n    }\n    // 源单号赋值\n    // details.forEach((ele) => (ele.SourceOrderId = this.rhPlanOrder.SourceOrderId));\n    return new Observable((observer) => {\n      const dto = {\n        OrderMaster: this.rhPlanOrder,\n        OrderDetails: details\n      };\n      const msg = editType === 'add' ? '新增' : '编辑';\n      this.dataLoading = true;\n      this.productionOrderSer.StoreReplenishmentMaterialOutPlanOrderDetails(dto).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`);\n          } else {\n            MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n          observer.next();\n          observer.complete();\n        },\n        () => {\n          this.dataLoading = false;\n          observer.error();\n        }\n      );\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[]) {\n    this.extraButtonHandleDataset[1].loading = true;\n    this.operator.RemoveProductPickingMaterialOutPlanOrderDetails(details).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n          this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n        }\n        this.extraButtonHandleDataset[1].loading = false;\n      },\n      () => (this.extraButtonHandleDataset[1].loading = false)\n    );\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  async handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    // 是否已存在该物料明细\n    const dataset = this.dataresult?.Attach || [];\n    if (dataset.length) {\n      const existedMaterialDatas = details.filter(ele => dataset.find(data => data.MaterialCode === ele.MaterialCode)) || [];\n      if (existedMaterialDatas.length) {\n        if (existedMaterialDatas.length === details.length) { // 全部已存在\n          return this.enterEditingStatus();\n        } else { // 部分已存在\n          details = _.without(details, ...existedMaterialDatas);\n        }\n      }\n    }\n\n    // 获取源单统计信息\n    // const convertResult = await this.businessManageSer.convertSourceOrderStatisticsDatasToSelectedDatas(\n    //   this.rhPlanOrder.SourceOrderId,\n    //   this.rhPlanOrder.BusinessType,\n    //   details\n    // );\n    const datas = details.map((data) => {\n      const temp = ProductPickingMaterialOutPlanOrderDetails.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 源单赋值\n      // if (!convertResult) {\n      //   temp.SourceOrderId = this.rhPlanOrder.SourceOrderId;\n      //   // temp.SourceOrderRowNum = data.ProductionPickingOrderRowNum;\n      //   temp.SourceOrderQty = data.NeededPickQty;\n      //   temp.SourceCompletedQty = data.PickedQty;\n      // }\n      // 单头赋值\n      temp.PlanOrderId = this.rhPlanOrder.PlanOrderId;\n      temp.BusinessType = this.rhPlanOrder.BusinessType;\n      if (data.WarehouseCode) {\n        temp.OutWarehouseCode = data.WarehouseCode;\n        temp.OutWarehouseName = data.WarehouseName;\n      } else {\n        temp.OutWarehouseCode = this.rhPlanOrder.OutWarehouseCode;\n        temp.OutWarehouseName = this.rhPlanOrder.OutWarehouseName;\n      }\n      temp.FactoryCode = this.rhPlanOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n      }\n      this.dataresult = { Attach: (this.dataresult.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  /** 检查保存数据 */\n  checkStoreDatas(details: RhSelectableDto[]) {\n    // 必须填写计划数量\n    if (details.some((f) => !f.PlanQty)) {\n      MsgHelper.ShowWarningMessage('计划数量不能为0或空！');\n      return false;\n    }\n    return true;\n  }\n\n  openDataModal() {\n    // this.getSourceDetailDatas();\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n\n\n}\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isEnterEditStatus; else handleTpl\">\n    <rh-dynamic-table\n      rhName=\"handleDetailsReadOnlyTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    >\n      <ng-template rhTemplate=\"LotNum\" let-item let-data=\"data\">\n        <ng-container *ngIf=\"data.select; else lotNumTpl\">\n          <input nz-input nzSize=\"small\" [(ngModel)]=\"data.LotNum\" [placeholder]=\"item?.displayName\" />\n        </ng-container>\n        <ng-template #lotNumTpl>{{ data.LotNum }}</ng-template>\n      </ng-template>\n    </rh-dynamic-table>\n  </ng-container>\n  <ng-template #handleTpl>\n    <rh-dynamic-table\n      rhName=\"handleDetailsTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    >\n    </rh-dynamic-table>\n  </ng-template>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"'选择bom明细'\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-product-plan-bom-table\n        rhName=\"sourceOrderDetail\"\n        [rhDefaultQueryDto]=\"sourceDetailQueryDto\"\n        (rhModelChange)=\"onSelectModal($event)\"\n      ></rh-product-plan-bom-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\nimport { CodeClassModel, DataResultT, RhBaseDto, RhDynamicTableFieldDto, RhLoginedUserDto, RhSelectableDto, RhTableButtonInfoDto, RhTableQueryOptionDto } from 'rh-base/model';\nimport { DynamicFormComponent } from 'rh-base/shared';\n\n@Component({\n  selector: 'rh-production-replenishment-manage',\n  templateUrl: './production-replenishment-manage.component.html',\n  styleUrls: ['./production-replenishment-manage.component.less']\n})\nexport class RhProductionReplenishmentManageComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n\n  editButtonDataset: RhTableButtonInfoDto[] = [];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [];\n\n  constructor(\n    public storage: RhStorageService,\n  ) { }\n\n  ngOnInit(): void {\n    this.setUserInfo();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  openDetailTab(dto: RhBaseDto) {\n    this.editDto = dto.data;\n    this.selectedIndex = 1;\n  }\n\n  closeDetailTab() {\n    this.selectedIndex = 0;\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    }\n  }\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  >\n                  </rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              >\n              </rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeDetailTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"基础信息\">\n              <ng-container *ngTemplateOutlet=\"detailsDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-production-replenishment-details [rhPlanOrder]=\"editDto\"> </rh-production-replenishment-details>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #detailsDescription>\n  <rh-dynamic-description rhName=\"detailsDescription\" [rhValue]=\"editDto\"> </rh-dynamic-description>\n</ng-template>\n","import { RhProductionBusinessService } from './../../business-manage/production-business/production-business.service';\nimport { NgModule } from '@angular/core';\n\nimport { RhSharedModule } from 'rh-base/shared';\nimport { RhSharedManageModule } from './../../shared-manage/shared-manage.module';\nimport { RhProductionOrderManageService } from './production-order-manage.service';\nimport { RhProductionPlanManageComponent } from './production-plan-manage/production-plan-manage.component';\nimport { RhProductionFeedingManageComponent } from './production-feeding-manage/production-feeding-manage.component';\nimport { ProductionFeedingDetailsComponent } from './production-feeding-manage/production-feeding-details/production-feeding-details.component';\nimport { SharedModule } from '../shared/shared.module';\nimport { RhProductionReplenishmentManageComponent } from './production-replenishment-manage/production-replenishment-manage.component';\nimport { ProductionReplenishmentDetailsComponent } from './production-replenishment-manage/production-replenishment-details/production-replenishment-details.component';\n\nconst COMPONENTS = [RhProductionPlanManageComponent, RhProductionFeedingManageComponent, RhProductionReplenishmentManageComponent];\n\nconst SNIPPETS = [ProductionFeedingDetailsComponent, ProductionReplenishmentDetailsComponent];\n\n@NgModule({\n  declarations: [...COMPONENTS, ...SNIPPETS],\n  imports: [RhSharedModule, RhSharedManageModule, SharedModule],\n  providers: [RhProductionOrderManageService, RhProductionBusinessService]\n})\nexport class RhProductionOrderManageModule { }\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { CustomizeBaseTableComponent, DynamicFormComponent } from 'rh-base/shared';\nimport {\n  RhDynamicInterfaceDto,\n  RhSelectableDto,\n  DataResultT,\n  RhTableQueryOptionDto,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhSafeAny\n} from 'rh-base/model';\nimport { MsgHelper } from 'rh-base/core';\n\n@Component({\n  selector: 'rh-sale-order-data-table',\n  templateUrl: './sale-order-data-table.component.html',\n  styleUrls: ['./sale-order-data-table.component.less']\n})\nexport class SaleOrderDataTableComponent extends CustomizeBaseTableComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n  @Input() declare rhInterfaceInfo: RhDynamicInterfaceDto;\n\n  @Input() rhSingleMode = false;\n\n  // 自定义表单项配置\n  @Output() rhModelChange = new EventEmitter<RhSelectableDto[]>();\n  @Input() rhModel: RhSelectableDto = {};\n  @Input() rhDisabled: boolean;\n  @Output() rhDatasetChange = new EventEmitter<RhSelectableDto>();\n\n  rhName = 'SaleOrderData';\n\n  /** 表格Loading */\n  dataLoading = false;\n  //dataresult: DataResultT<RhSelectableDto[]>;\n\n  //#region default setting区域\n  defaultInterfaceInfo: RhDynamicInterfaceDto = {\n    interfaceType: 'post',\n    port: 52883,\n    controllerName: 'MaterialInventoryWebApi',\n    interfaceName: 'GetMaterialInventoryDetailDatas'\n  };\n\n  /** 设置默认的form显示字段 */\n  defaultFormFieldDataset = [\n    // { name: 'WarehouseCode', displayName: '仓库代码', placeholder: '仓库代码', editable: true, type: 'customize', config: { type: 'warehouse' } },\n    { name: 'MaterialCode', displayName: '物料代码', placeholder: '物料代码', editable: true },\n    { name: 'MaterialName', displayName: '物料名称', placeholder: '物料名称', editable: true }\n    // { name: 'IsObsoleteMaterial', displayName: '是否呆滞', placeholder: '是否呆滞', editable: true, type: 'bool' },\n    // { name: 'IsHideZeroInventory', displayName: '是否零库存', placeholder: '是否零库存', editable: true, type: 'bool' },\n  ];\n  /** 设置默认的table显示字段 */\n  defaultTableFieldDataset = [\n    { name: 'MaterialCode', displayName: '物料编号', width: 120 },\n    { name: 'MaterialName', displayName: '物料名称', width: 120 },\n    { name: 'MaterialSpecification', displayName: '物料规格', width: 200, rhEllipsis: true },\n    { name: 'WarehouseCode', displayName: '仓库代码', width: 120 },\n    { name: 'WarehouseName', displayName: '仓库名称', width: 120 },\n    {\n      name: 'MaterialCategory',\n      displayName: '物料类别',\n      width: 120,\n      type: 'array',\n      config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'MaterialCategory' }\n    },\n    {\n      name: 'MaterialAttribute',\n      displayName: '物料属性',\n      width: 120,\n      type: 'array',\n      config: { moduleKey: 'MDP', groupKey: 'MaterialManagement', paraCode: 'ProductMaterialAttribute' }\n    },\n    {\n      name: 'MeasureUnit',\n      displayName: '计量单位',\n      width: 120,\n      type: 'array',\n      config: { port: '52880', controllerName: 'ProductMaterialWebApi', interfaceName: 'GetMeasureUnitSelectItems' }\n    },\n    { name: 'InventoryQty', displayName: '库存数量', width: 120 },\n    { name: 'AvailableQty', displayName: '可用数量', width: 120 },\n    { name: 'LotNum', displayName: '批次号', width: 120 },\n    { name: 'Remark', displayName: '备注', width: 120, rhEllipsis: true }\n  ];\n  //#endregion default setting区域结束\n\n  /** 搜索选项 */\n  queryOption = RhTableQueryOptionDto.create(1, 10);\n\n  //selectedDatas: RhSelectableDto[];\n\n  constructor() {\n    super();\n  }\n\n  ngOnInit(): void {\n    this.rhInterfaceInfo = this.rhInterfaceInfo || this.defaultInterfaceInfo;\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  onSelectedDatasChange(datas: RhSelectableDto[]) {\n    this.selectedDatas = datas;\n    this.rhModelChange.emit(this.selectedDatas);\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.queryOption = option;\n    this.getDatas(option);\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultTableFieldDataset = [...tempDatas];\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    option = option || this.queryOption;\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n\n  // TODO 测试数据\n  setDatas(result: DataResultT<RhSelectableDto[]>) {\n    if (result && result.Success) {\n      this.dataresult = result;\n      this.rhDatasetChange.next(result.Attach);\n    } else {\n      this.dataresult = {\n        Success: false,\n        Attach: []\n      } as RhSafeAny;\n      this.rhDatasetChange.next(null);\n      MsgHelper.ShowWarningMessage(`搜索无数据!${result.Message}`);\n    }\n  }\n}\n","<!-- 搜索Form区域 -->\n<div class=\"search-area rh-full\">\n  <nz-alert nzType=\"info\" [nzMessage]=\"searchTpl\">\n    <ng-template #searchTpl>\n      <rh-dynamic-form\n        #queryForm\n        rhName=\"{{ rhName }}Form\"\n        [rhValue]=\"rhDefaultQueryDto\"\n        (rhInterfaceDataChange)=\"setDatas($event)\"\n        (rhDataloadingChange)=\"dataLoadingChange($event)\"\n        (rhOutParaChange)=\"setInitFieldDataset($event)\"\n        [rhDefaultFieldDataset]=\"defaultFormFieldDataset\"\n        [(rhFormInterface)]=\"rhInterfaceInfo\"\n      ></rh-dynamic-form>\n    </ng-template>\n  </nz-alert>\n</div>\n<!-- 搜索结果Table展示区域 -->\n<div class=\"table-area\">\n  <rh-dynamic-table\n    rhName=\"{{ rhName }}Table\"\n    [rhTableData]=\"dataresult\"\n    [rhTableDataloading]=\"dataLoading\"\n    [rhDefaultFieldDataset]=\"defaultTableFieldDataset\"\n    (rhRefresh)=\"refreshDatas($event)\"\n    (rhSelectedDatasChange)=\"onSelectedDatasChange($event)\"\n    [rhSingleMode]=\"rhSingleMode\"\n  ></rh-dynamic-table>\n</div>\n","import { Observable } from 'rxjs';\nimport { Component, OnInit, Input, Output, EventEmitter, SimpleChanges } from '@angular/core';\nimport { RhBaseDto, RhSelectableDto, DataResultT, RhTableButtonInfoDto, OpMode, RhSafeAny } from 'rh-base/model';\nimport { MsgHelper, ObjectHelper } from 'rh-base/core';\nimport { RhBusinessManageService } from './../../../../business-manage/business-manage.service';\nimport { RhSaleOrderManageService } from '../../sale-order-manage.service';\nimport { SaleOrderDetailDto } from '../../sale-delivery-order-model';\n\n@Component({\n  selector: 'rh-sale-order-detail',\n  templateUrl: './sale-order-detail.component.html',\n  styleUrls: ['./sale-order-detail.component.less']\n})\nexport class SaleOrderDetailComponent implements OnInit {\n  @Input() rhPlanOrder: RhBaseDto;\n  @Input() rhShowDetail = false;\n  @Output() rhDetailsUpdate = new EventEmitter();\n\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n\n  extraButtonHandleDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('newDetails', '新建', 'primary', false, 'file', false, null, () => this.openDataModal(), true),\n    new RhTableButtonInfoDto(\n      'deleteDetails',\n      '删除',\n      'primary', true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhSelectableDto[]),\n      false,\n      true\n    ),\n    new RhTableButtonInfoDto('rowEdit', '行编辑', 'primary', false, 'edit', false, null, () => this.editDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonInEditDataset = [\n    new RhTableButtonInfoDto('rowSave', '行保存', 'primary', false, 'check', false, null, () => this.updateDatas(), true),\n    new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)\n  ];\n  extraButtonReadOnlyDataset = [new RhTableButtonInfoDto('refresh', '刷新', 'default', false, 'sync', false, null, () => this.getDatas(), true)];\n  tableVisibleSetting = {};\n  isShowDataModal = false;\n  selectedDatas: RhSelectableDto[] = [];\n  isEnterEditStatus = false;\n\n  get isReadOnlyTable() {\n    return this.rhShowDetail || !this.rhPlanOrder?.OrderCode || this.isEnterEditStatus;\n  }\n\n  get readeOnlyButtonDataset() {\n    if (this.isEnterEditStatus) return this.extraButtonInEditDataset;\n    else return this.extraButtonReadOnlyDataset;\n  }\n\n  constructor(private operator: RhSaleOrderManageService, public businessManageSer: RhBusinessManageService) { }\n\n  ngOnInit(): void {\n    this.initTableVisibleSetting();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { rhPlanOrder } = changes;\n    if (rhPlanOrder && rhPlanOrder.currentValue) {\n      if (this.rhPlanOrder.OrderCode) {\n        this.getDatas();\n      }\n    }\n  }\n\n  initTableVisibleSetting() {\n    Object.assign(this.tableVisibleSetting, this.businessManageSer.getDynamicVisibleSetting(['LotNum']));\n  }\n\n  getDatas() {\n    this.dataLoading = true;\n    const queryDto = {\n      OrderCode: this.rhPlanOrder.OrderCode,\n      FactoryCode: this.rhPlanOrder.FactoryCode,\n      Mode: 8\n    };\n    this.operator.GetSaleOrderDetailDatas(queryDto).subscribe(\n      (result) => {\n        this.dataresult = result;\n        if (!result?.Success) {\n          MsgHelper.ShowWarningMessage(`查询无数据！${result.Message}`);\n        }\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      },\n      () => {\n        this.dataLoading = false;\n        this.isEnterEditStatus = false;\n      }\n    );\n  }\n\n  editDatas() {\n    if (!this.dataresult?.Attach?.length) {\n      MsgHelper.ShowWarningMessage('没有明细数据可以进行编辑！');\n      return;\n    }\n    this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n    this.enterEditingStatus();\n  }\n\n  updateDatas() {\n    if (this.dataresult?.Attach?.length) {\n      const type = this.dataresult.Attach[0].OpSign === OpMode.OpAdd ? 'add' : 'edit';\n      this.storeDatas(this.dataresult.Attach, type).subscribe(() => {\n        this.getDatas();\n      });\n    } else {\n      MsgHelper.ShowWarningMessage('没有数据可以保存！');\n      this.exitEditingStatus();\n    }\n  }\n\n  storeDatas(details: RhSelectableDto[], editType = 'add') {\n    const checkRes = this.checkStoreDatas(details);\n    if (!checkRes) {\n      return;\n    }\n    return new Observable((observer) => {\n      const msg = editType === 'add' ? '新增' : '编辑';\n      this.dataLoading = true;\n      this.operator.StoreSaleOrderDetailDatas(details).subscribe(\n        (result) => {\n          if (result.Success) {\n            MsgHelper.ShowSuccessMessage(`${msg}明细数据成功！`);\n          } else {\n            MsgHelper.ShowWarningMessage(`${msg}明细数据失败！${result.Message}`);\n          }\n          this.dataLoading = false;\n          observer.next();\n          observer.complete();\n        },\n        () => {\n          this.dataLoading = false;\n          observer.error();\n        }\n      );\n    });\n  }\n\n  removeDatas(details: RhSelectableDto[]) {\n    this.extraButtonHandleDataset[1].loading = true;\n    this.operator.RemoveSaleOrderDetailDatas(details).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除明细数据成功！');\n          this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`删除明细数据失败！${result.Message}`);\n        }\n        this.extraButtonHandleDataset[1].loading = false;\n      },\n      () => (this.extraButtonHandleDataset[1].loading = false)\n    );\n  }\n\n  /** 处理来自源单的数据，转化为明细模型 */\n  handleSourceDataset(details: RhSelectableDto[], overwrite = false) {\n    const datas = details.map((data) => {\n      const temp = SaleOrderDetailDto.create();\n      ObjectHelper.MapT(data, temp, true, false);\n      // 单头赋值\n      temp.SaleOrderCode = this.rhPlanOrder.OrderCode;\n      temp.OutWarehouseCode = this.rhPlanOrder.OutWarehouseCode;\n      temp.OutWarehouseName = this.rhPlanOrder.OutWarehouseName;\n      temp.FactoryCode = this.rhPlanOrder.FactoryCode;\n      temp.OpSign = OpMode.OpAdd;\n      return temp;\n    });\n    if (overwrite) {\n      this.dataresult = { Attach: datas } as RhSafeAny;\n    } else {\n      if (this.dataresult?.Attach?.length) {\n        this.dataresult.Attach.forEach((data) => (data.OpSign = OpMode.OpEdit));\n      }\n      this.dataresult = { Attach: (this.dataresult?.Attach || []).concat(datas) } as RhSafeAny;\n    }\n    this.enterEditingStatus();\n  }\n\n  /** 进入编辑状态 */\n  enterEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = true;\n      data.disable = true;\n    });\n    this.isEnterEditStatus = true;\n  }\n\n  /** 退出编辑状态 */\n  exitEditingStatus() {\n    this.dataresult.Attach.forEach((data) => {\n      data.select = false;\n      data.disable = false;\n    });\n    this.isEnterEditStatus = false;\n  }\n\n  /** 检查保存数据 */\n  checkStoreDatas(details: RhSelectableDto[]) {\n    // 必须填写计划数量\n    if (details.some((f) => !f.PlanSaleQty)) {\n      MsgHelper.ShowWarningMessage('计划销售数量不能为0或空！');\n      return false;\n    }\n    // 计划批次号开启后，可填可不填，只判断超额入库\n    // if (!this.businessManageSer.IsEnableExcessInWarehouse) {\n    //   if (details.some((f) => f.PlanQty + f.SourcePlannedQty > f.StockQty)) {\n    //     MsgHelper.ShowWarningMessage('未启用超额入库！不能超额计划源单数量！');\n    //     return false;\n    //   }\n    // }\n    return true;\n  }\n\n  openDataModal() {\n    this.isShowDataModal = true;\n  }\n\n  closeDataModal() {\n    this.isShowDataModal = false;\n    this.selectedDatas = [];\n  }\n\n  onSelectModal(data: RhSelectableDto[]) {\n    this.selectedDatas = data || [];\n  }\n\n  confirmSelect() {\n    this.handleSourceDataset(this.selectedDatas);\n    this.closeDataModal();\n  }\n}\n","<div class=\"rh-full\">\n  <ng-container *ngIf=\"isReadOnlyTable; else handleTpl\">\n    <rh-dynamic-table\n      rhName=\"handleDetailsReadOnlyTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"readeOnlyButtonDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    ></rh-dynamic-table>\n  </ng-container>\n  <ng-template #handleTpl>\n    <rh-dynamic-table\n      rhName=\"handleDetailsTable\"\n      [rhTableData]=\"dataresult\"\n      [rhTableDataloading]=\"dataLoading\"\n      [rhExtraButtonDataset]=\"extraButtonHandleDataset\"\n      [rhVisibleSetting]=\"tableVisibleSetting\"\n    >\n    </rh-dynamic-table>\n  </ng-template>\n</div>\n\n<nz-modal\n  [nzVisible]=\"isShowDataModal\"\n  [nzTitle]=\"'选择销售出库数据'\"\n  nzMaskClosable=\"false\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeDataModal()\"\n  [nzWidth]=\"900\"\n>\n  <nz-card *nzModalContent [nzTitle]=\"cardTitleTpl\" [nzExtra]=\"cardExtraTpl\" [nzBodyStyle]=\"{ padding: '0px' }\">\n    <ng-template #cardTitleTpl>\n      <button nz-button nzType=\"primary\" type=\"button\" (click)=\"confirmSelect()\" [disabled]=\"!selectedDatas.length\">\n        <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>\n        确定选择\n      </button>\n    </ng-template>\n    <ng-template #cardExtraTpl>\n      <button nz-button nzType=\"default\" type=\"button\" (click)=\"closeDataModal()\">\n        <i nz-icon nzType=\"reload\" nzTheme=\"outline\"></i>\n        关闭\n      </button>\n    </ng-template>\n    <div>\n      <rh-sale-order-data-table (rhModelChange)=\"onSelectModal($event)\" [rhSingleMode]=\"false\"> </rh-sale-order-data-table>\n    </div>\n  </nz-card>\n</nz-modal>\n","import { RhSharedManageService } from './../../../shared-manage/shared-manage.service';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { DynamicFormComponent } from 'rh-base/shared';\nimport {\n  RhBaseDto,\n  DataResultT,\n  RhSelectableDto,\n  RhTableButtonInfoDto,\n  RhLoginedUserDto,\n  OpMode,\n  CodeClassModel,\n  RhDynamicTableFieldDto,\n  RhTableQueryOptionDto,\n  RhSafeAny,\n  OpResult\n} from 'rh-base/model';\nimport { MsgHelper, RhStorageService } from 'rh-base/core';\nimport { RhBusinessOrderManageService } from './../../business-order-manage.service';\nimport { RhSaleOrderManageService } from '../sale-order-manage.service';\n\ntype TabType = 'edit' | 'detail' | 'audit';\n\n@Component({\n  selector: 'rh-sale-order',\n  templateUrl: './sale-order.component.html',\n  styleUrls: ['./sale-order.component.less']\n})\nexport class SaleOrderComponent implements OnInit {\n  @ViewChild('queryForm', { static: false }) queryFormCmt: DynamicFormComponent;\n\n  selectedIndex = 0;\n  editDto: RhBaseDto = {};\n  dataLoading = false;\n  dataresult: DataResultT<RhSelectableDto[]>;\n  defaultFieldDataset = [];\n\n  currentUser: RhLoginedUserDto;\n  curFactoryQueryDto = {};\n  isShowEditForm = true;\n  isShowAuditDataModal = false;\n  isShowCloseInPlanRemarkModal = false;\n  isRefreshDesc = true;\n  auditDto: RhBaseDto = {};\n  closeDto: RhBaseDto = {};\n  currentTab: TabType = 'edit';\n\n  editVisible = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n  auditVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitAudit';\n  };\n  completeVisible = (data: RhBaseDto) => {\n    return data.OrderStatus === 'WaitInWarehouse';\n  };\n  isCreated = (data: RhBaseDto) => {\n    return data.OrderStatus === 'Created';\n  };\n  isAsCreated = (data: RhBaseDto) => {\n    const list = ['Created', 'WaitAudit'];\n    return list.includes(data.OrderStatus);\n  };\n\n  editButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('edit', '编辑', 'default', false, 'edit', false, null, (data) => this.openEditTab(data as RhBaseDto))\n    // new RhTableButtonInfoDto('audit', '审核', 'default', false, 'audit', false, null, (data) =>\n    //   this.openDetailTab({ data } as RhBaseDto, 'audit')\n    // ),\n    // new RhTableButtonInfoDto(\n    //   'close',\n    //   '关闭',\n    //   'default',\n    //   'close-circle',\n    //   false,\n    //   null,\n    //   (data) => this.openCloseInPlanRemarkModal(data as RhBaseDto),\n    //   null,\n    //   null,\n    //   'red'\n    // )\n  ];\n\n  titleButtonDataset: RhTableButtonInfoDto[] = [\n    new RhTableButtonInfoDto('new', '新建', 'primary', false, 'file', false, null, () => this.openEditTab(), true),\n    new RhTableButtonInfoDto(\n      'delete',\n      '删除',\n      'primary',true,\n      'delete',\n      true,\n      null,\n      (datas) => this.removeDatas(datas as RhBaseDto[]),\n      false,\n      false,\n      'red'\n    )\n  ];\n\n  beforeSubmit = async (data: RhBaseDto, context: DynamicFormComponent) => {\n    let result: OpResult = null;\n    const msg = this.editDto.OpSign === OpMode.OpAdd ? '新增' : '编辑';\n    context.submitLoading = true;\n    try {\n      if (this.editDto.OpSign === OpMode.OpAdd) {\n        // 基本信息\n        data.CreateDate = new Date().toLocaleDateString();\n        data.CreateTime = new Date().toLocaleString();\n\n        result = await this.operator.StoreSaleOrderMasterData(data).toPromise();\n      } else {\n        result = await this.operator.UpdateSaleOrderMasterData(data).toPromise();\n      }\n      if (result && result.Success) {\n        MsgHelper.ShowSuccessMessage(`${msg}数据成功！`);\n        this.editDto.OrderCode = result?.Attach?.OrderCode;\n        this.isShowEditForm = false;\n        this.getDetails();\n      } else {\n        MsgHelper.ShowWarningModal(`存储数据失败！${result.Message}`);\n      }\n    } catch (error) {\n      //\n    } finally {\n      context.submitLoading = false;\n    }\n\n    return false;\n  };\n\n  constructor(\n    private operator: RhSaleOrderManageService,\n    public businessManageSer: RhBusinessOrderManageService,\n    public storage: RhStorageService,\n    public sharedManageSer: RhSharedManageService\n  ) {}\n\n  ngOnInit(): void {\n    this.setUserInfo();\n  }\n\n  setUserInfo() {\n    this.currentUser = this.storage.getUserSession().User;\n    this.curFactoryQueryDto = { FactoryCode: this.currentUser.FactoryCode };\n  }\n\n  openEditTab(data?: RhBaseDto) {\n    if (data) {\n      this.editDto = data;\n      this.editDto.OpSign = OpMode.OpEdit;\n      this.isShowEditForm = false;\n    } else {\n      this.editDto = {\n        CreatorId: this.currentUser.UserName,\n        Creator: this.currentUser.DisplayName,\n        FactoryCode: this.currentUser.FactoryCode\n      };\n      this.editDto.OpSign = OpMode.OpAdd;\n      this.isShowEditForm = true;\n    }\n    this.currentTab = 'edit';\n    this.selectedIndex = 1;\n  }\n\n  closeEditTab() {\n    this.editDto = null;\n    this.selectedIndex = 0;\n  }\n\n  openDetailTab(dto: RhBaseDto, type: TabType = 'detail') {\n    this.editDto = dto.data;\n    this.currentTab = type;\n    this.selectedIndex = 1;\n  }\n\n  // 未退出页面，刷新数据内容\n  getDetails() {\n    const queryDto = { OrderCode: this.editDto.OrderCode };\n    this.operator.GetSaleOrderMasterDatas(queryDto).subscribe((result) => {\n      if (result.Success && result.Attach.length === 1) {\n        this.editDto = result.Attach[0];\n        this.editDto.OpSign = OpMode.OpEdit;\n      }\n    });\n  }\n\n  selectedIndexChange(index: number) {\n    if (index === 0) {\n      this.editDto = null;\n      this.getDatas();\n    }\n  }\n\n  /** 打开关闭计划备注弹窗 */\n  openCloseInPlanRemarkModal(data: RhBaseDto) {\n    this.closeDto = { OrderCode: data.OrderCode, Remark: data.Remark };\n    this.isShowCloseInPlanRemarkModal = true;\n  }\n\n  /** 关闭关闭计划备注弹窗 */\n  closeCloseInPlanRemarkModal() {\n    this.closeDto = {};\n    this.isShowCloseInPlanRemarkModal = false;\n  }\n\n  /** 关闭接口返回 */\n  onCloseData(result: DataResultT<RhSafeAny>) {\n    if (result && result.Success) {\n      MsgHelper.ShowSuccessMessage('关闭入库计划成功！');\n      this.closeCloseInPlanRemarkModal();\n      this.getDatas();\n    } else {\n      MsgHelper.ShowWarningModal(`关闭入库计划失败！${result.Message}`);\n    }\n  }\n\n  /** 删除计划 */\n  removeDatas(datas: RhBaseDto[]) {\n    this.dataLoading = true;\n    this.operator.RemoveSaleOrderMasterDatas(datas as RhSafeAny).subscribe(\n      (result) => {\n        if (result.Success) {\n          MsgHelper.ShowSuccessMessage('删除成功！');\n          this.getDatas();\n        } else {\n          MsgHelper.ShowWarningMessage(`删除失败！${result.Message}`);\n        }\n        this.dataLoading = false;\n      },\n      () => {\n        this.dataLoading = false;\n      }\n    );\n  }\n  //#endregion 操作区域结束\n\n  //#region 搜索表单区域开始\n  setDatas(dataset: DataResultT<RhSelectableDto[]>) {\n    this.dataresult = dataset;\n    if (!this.dataresult?.Success) {\n      MsgHelper.ShowWarningMessage(`搜索无数据!${this.dataresult?.Message}`);\n    }\n  }\n\n  dataLoadingChange(status: boolean) {\n    this.dataLoading = status;\n  }\n\n  setInitFieldDataset(item: CodeClassModel) {\n    const tempDatas = [];\n    item.CodeProperties.forEach((ele) => {\n      const temp = RhDynamicTableFieldDto.create();\n      temp.name = ele.PropertyName;\n      temp.displayName = ele.Descirption;\n      tempDatas.push(temp);\n    });\n    this.defaultFieldDataset = [...tempDatas];\n  }\n\n  refreshDatas(option: RhTableQueryOptionDto) {\n    this.getDatas(option);\n  }\n\n  // 调用子组件中的接口\n  private getDatas(option?: RhTableQueryOptionDto) {\n    if (this.queryFormCmt) {\n      this.queryFormCmt.submitDefaultForm(null, option);\n    }\n  }\n  //#endregion 搜索表单区域结束\n}\n","<div class=\"rh-full\">\n  <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\" (nzSelectedIndexChange)=\"selectedIndexChange($event)\">\n    <nz-tab [nzTitle]=\"tabOneTitle\">\n      <ng-template #tabOneTitle>\n        <span>数据展示</span>\n      </ng-template>\n      <div class=\"rh-full\">\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPane [resizable]=\"false\" [collapsible]=\"true\">\n            <div *ngIf=\"!splitterPane.collapsed\" class=\"rh-full\">\n              <nz-alert nzType=\"info\" [nzMessage]=\"nzAlertTemplate\">\n                <ng-template #nzAlertTemplate>\n                  <rh-dynamic-form\n                    #queryForm\n                    rhName=\"queryForm\"\n                    rhType=\"query\"\n                    [rhValue]=\"curFactoryQueryDto\"\n                    (rhInterfaceDataChange)=\"setDatas($event)\"\n                    (rhDataloadingChange)=\"dataLoadingChange($event)\"\n                    (rhOutParaChange)=\"setInitFieldDataset($event)\"\n                  >\n                  </rh-dynamic-form>\n                </ng-template>\n              </nz-alert>\n            </div>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <div class=\"rh-full\">\n              <rh-dynamic-table\n                [rhTableData]=\"dataresult\"\n                [rhTableDataloading]=\"dataLoading\"\n                [rhDefaultFieldDataset]=\"defaultFieldDataset\"\n                (rhRefresh)=\"refreshDatas($event)\"\n                [rhEditButtonDataset]=\"editButtonDataset\"\n                [rhTitleButtonDataset]=\"titleButtonDataset\"\n                (rhTableCellClick)=\"openDetailTab($event)\"\n              >\n              </rh-dynamic-table>\n            </div>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && currentTab === 'edit'\" [nzTitle]=\"tabTwoTitle\">\n      <ng-template #tabTwoTitle>\n        <span>数据{{ editDto?.OpSign === 1 ? '新增' : '编辑' }}</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneTwo [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneTwo.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"editDto?.OpSign === 2 ? editExtra : null\">\n              <ng-template #editExtra>\n                <ng-container *ngIf=\"!isShowEditForm; else cancelBtnTpl\">\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = true\">\n                    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>编辑\n                  </button>\n                  <nz-divider nzType=\"vertical\"></nz-divider>\n                  <button *ngIf=\"!isShowEditForm\" nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"closeEditTab()\">\n                    <i nz-icon nzType=\"save\" nzTheme=\"outline\"></i>保存\n                  </button>\n                </ng-container>\n                <ng-template #cancelBtnTpl>\n                  <button nz-button nzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"isShowEditForm = false\">\n                    <i nz-icon nzType=\"redo\" nzTheme=\"outline\"></i>取消\n                  </button>\n                </ng-template>\n              </ng-template>\n              <ng-container *ngIf=\"isShowEditForm; else editDescription\">\n                <rh-dynamic-form\n                  #editForm\n                  rhName=\"editForm\"\n                  rhType=\"edit\"\n                  rhLayout=\"horizontal\"\n                  [rhValue]=\"editDto\"\n                  [rhBeforeSubmit]=\"beforeSubmit\"\n                  (rhClose)=\"closeEditTab()\"\n                >\n                  <ng-template\n                    rhTemplate=\"InWarehouseCode\"\n                    let-formGroup\n                    let-setting=\"setting\"\n                    let-hostConfig=\"hostSetting\"\n                    let-formData=\"formData\"\n                  >\n                    <nz-form-item>\n                      <nz-form-label [nzSpan]=\"setting.labelSpan\" [nzRequired]=\"setting.required\"> {{ setting.placeholder }}</nz-form-label>\n                      <nz-form-control [nzSpan]=\"setting.controlSpan\">\n                        <rh-business-warehouse-selector\n                          name=\"InWarehouseCode\"\n                          [formControl]=\"formGroup.get('InWarehouseCode')\"\n                          rhFormType=\"edit\"\n                          [rhFieldData]=\"businessManageSer.setWarehouseFieldSetting(setting, 'In')\"\n                          [rhSize]=\"hostConfig?.rhSize\"\n                          [rhData]=\"formData\"\n                        >\n                        </rh-business-warehouse-selector>\n                      </nz-form-control>\n                    </nz-form-item>\n                  </ng-template>\n                </rh-dynamic-form>\n              </ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-sale-order-detail [rhPlanOrder]=\"editDto\" (rhDetailsUpdate)=\"getDetails()\"> </rh-sale-order-detail>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n    <nz-tab *ngIf=\"selectedIndex && (currentTab === 'detail' || currentTab === 'audit')\" [nzTitle]=\"tabThreeTitle\">\n      <ng-template #tabThreeTitle>\n        <span>数据详情</span>\n        <span class=\"rh-color-danger\"><i nz-icon nzType=\"close-circle\" nzTheme=\"outline\" (click)=\"closeEditTab()\"></i></span>\n      </ng-template>\n      <div>\n        <d-splitter orientation=\"vertical\">\n          <d-splitter-pane #splitterPaneThree [resizable]=\"false\" [collapsible]=\"true\">\n            <nz-card *ngIf=\"!splitterPaneThree.collapsed\" nzTitle=\"基础信息\" [nzExtra]=\"detailsExtra\">\n              <ng-template #detailsExtra>\n                <!-- <button *ngIf=\"auditVisible(editDto) && currentTab === 'audit'\" nz-button\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnzType=\"primary\" nzSize=\"small\" type=\"button\" (click)=\"auditData(editDto)\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i nz-icon nzType=\"audit\" nzTheme=\"outline\"></i>审核\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</button> -->\n              </ng-template>\n              <ng-container *ngTemplateOutlet=\"editDescription\"></ng-container>\n            </nz-card>\n          </d-splitter-pane>\n          <d-splitter-pane>\n            <nz-card nzTitle=\"计划明细\">\n              <rh-sale-order-detail [rhPlanOrder]=\"editDto\" [rhShowDetail]=\"true\"> </rh-sale-order-detail>\n            </nz-card>\n          </d-splitter-pane>\n        </d-splitter>\n      </div>\n    </nz-tab>\n  </nz-tabset>\n</div>\n\n<ng-template #editDescription>\n  <rh-dynamic-description *ngIf=\"isRefreshDesc\" rhName=\"editDescription\" [rhValue]=\"editDto\"></rh-dynamic-description>\n</ng-template>\n\n<nz-modal\n  [nzTitle]=\"'关闭出库计划备注'\"\n  [nzVisible]=\"isShowCloseInPlanRemarkModal\"\n  [nzWidth]=\"'60vw'\"\n  [nzOkText]=\"null\"\n  [nzCancelText]=\"null\"\n  (nzOnCancel)=\"closeCloseInPlanRemarkModal()\"\n>\n  <rh-dynamic-form\n    *nzModalContent\n    #closeDataForm\n    rhName=\"closeDataForm\"\n    rhType=\"edit\"\n    rhLayout=\"horizontal\"\n    [rhValue]=\"closeDto\"\n    (rhInterfaceDataChange)=\"onCloseData($event)\"\n    (rhClose)=\"closeCloseInPlanRemarkModal()\"\n  ></rh-dynamic-form>\n</nz-modal>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RhSharedModule } from 'rh-base/shared';\nimport { RhSharedManageModule } from './../../shared-manage/shared-manage.module';\nimport { RhSaleOrderManageService } from './sale-order-manage.service';\nimport { SaleOrderComponent } from './sale-order/sale-order.component';\nimport { SaleOrderDetailComponent } from './sale-order/sale-order-detail/sale-order-detail.component';\nimport { SaleOrderDataTableComponent } from './snippets/sale-order-data-table/sale-order-data-table.component';\n\nconst COMPONENTS = [SaleOrderComponent, SaleOrderDetailComponent];\n\nconst SNIPPETS = [SaleOrderDataTableComponent];\n\n@NgModule({\n  declarations: [...COMPONENTS, ...SNIPPETS],\n  imports: [RhSharedModule, RhSharedManageModule],\n  providers: [RhSaleOrderManageService]\n})\nexport class RhSaleOrderManageModule {}\n","import { NgModule } from '@angular/core';\n//import { RhUIXModule } from 'rh-uix';\nimport { RhSharedModule } from 'rh-base/shared';\nimport { RhSharedManageModule } from './../shared-manage/shared-manage.module';\nimport { SaleDeliveryOrderComponent } from './sale-order-manage/sale-delivery-order/sale-delivery-order.component';\nimport { SaleDeliveryOrderDetailComponent } from './sale-order-manage/sale-delivery-order/sale-delivery-order-detail/sale-delivery-order-detail.component';\nimport { RhPurchaseOrderManageModule } from './purchase-order-manage/purchase-order-manage.module';\nimport { RhProductionOrderManageModule } from './production-order-manage/production-order-manage.module';\nimport { RhSaleOrderManageModule } from './sale-order-manage/sale-order-manage.module';\nimport { RhBusinessOrderManageService } from './business-order-manage.service';\nimport { SharedModule } from './shared/shared.module';\n\n// 生产单据管理\nexport * from './production-order-manage/index';\n\nconst MODULES = [RhPurchaseOrderManageModule, RhSaleOrderManageModule, RhProductionOrderManageModule, SharedModule];\n\nconst COMPONNETS = [];\n\n@NgModule({\n  declarations: [SaleDeliveryOrderComponent, SaleDeliveryOrderDetailComponent],\n  imports: [RhSharedModule, RhSharedManageModule, /* RhUIXModule, */ ...MODULES],\n  exports: [...COMPONNETS],\n  providers: [RhBusinessOrderManageService]\n})\nexport class RhBusinessOrderManageModule { }\n","// 库存查询\nexport * from './inventory-search/index';\n// 库存盘点\nexport * from './inventory-count/index';\n// 库存控制\nexport * from './inventory-control/index';\n// 库存调整\nexport * from './inventory-adjust/index';","import { RhSupplierPortalModule } from './supplier-portal/supplier-portal.module';\nimport { RhToolKitModule } from './tool-kit/tool-kit.module';\nimport { RhBusinessManageModule } from './business-manage/business-manage.module';\nimport { NgModule } from '@angular/core';\nimport { RhWmsService } from './wms.service';\nimport { RhConfigManageModule } from './config-manage/config-manage.module';\nimport { RhInventoryManageModule } from './inventory-manage/inventory-manage.module';\nimport { RhBusinessOrderManageModule } from './business-order-manage/business-order-manage.module';\n\n// 供应商门户\nexport * from './supplier-portal/index';\n// 业务单据管理\nexport * from './business-order-manage/index';\n// 库存管理\nexport * from './inventory-manage/index';\n// 配置管理\nexport * from './config-manage/index';\n// 业务管理\nexport * from './business-manage/index';\n// 工具箱\nexport * from './tool-kit/index';\n\nconst MODULES = [\n  RhSupplierPortalModule,\n  RhConfigManageModule,\n  RhBusinessManageModule,\n  RhToolKitModule,\n  RhInventoryManageModule,\n  RhBusinessOrderManageModule\n];\n\n@NgModule({\n  declarations: [],\n  imports: [...MODULES],\n  // exports: [...MODULES],\n  providers: [RhWmsService]\n})\nexport class RhWmsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './wms.module';\n"],"names":["i2","i4","i5","i6","i7","i8","i1","i9","i10","i11","i13","i14","i12","i14.PurchaseOrderPrintComponent","SNIPPETS","i1.RhInventoryControlManageService","i3","i12.WarehouseBusinessConfTableComponent","i1.RhSharedManageService","i7.RhAttachFileUploadComponent","i15","i12.BusinessWarehouseTableComponent","COMMPONENTS","i12.ListWarehouseCategoriesTableComponent","i2.RhToolKitService","i3.RhWmsService","i16","i17.ListWarehouseCategoriesSelectorComponent","i18.ListWarehouseConfSelectorComponent","i1.RhWmsService","i14.RhWarehouseBusinessConfComponent","i15.BusinessModeConfigComponent","i12.ListWarehousesTableComponent","i3.RhToolKitService","i17","COMPONNETS","BusinessType","i2.RhInventoryControlManageService","i1.RhOtherBusinessService","i2.RhBusinessManageService","i11.OtherInSourceDataTableComponent","i4.RhSharedManageService","i22.BusinessWarehouseSelectorComponent","i23.OtherInPlanDetailsComponent","i11.OtherOutSourceDataTableComponent","i23.OtherOutPlanDetailsComponent","i15.OtherInSourceDataTableComponent","i12.OtherInPlanOrderTableComponent","i22.RhInventoryControlSpecialTypeDirective","i23.OtherInHandleDetailsComponent","i24.OtherInPlanOrderSelectorComponent","i15.OtherOutSourceDataTableComponent","i12.OtherOutPlanOrderTableComponent","i23.OtherOutHandleDetailsComponent","i24.OtherOutPlanOrderSelectorComponent","COMPONENTS","i1.RhProductionBusinessService","i1.RhBusinessManageService","i12.ProuctionWarehousingSourceOrderTableComponent","i23.ProductionInPlanDetailsComponent","i24.ProductionWarehousingSourceOrderSelectorComponent","i12.ProdcutionWarehousingPlanTableComponent","i12.ReturnWarehousingSourceOrderTableComponent","i23.ProductReturnedMaterialInPlanDetailsComponent","i24.ReturnWarehousingSourceOrderSelectorComponent","i12.ProductionPickingSourceOrderTableComponent","i23.ProductPickingMaterialOutPlanDetailsComponent","i24.ProductionPickingSourceOrderSelectorComponent","i12.ReturnWarehousingPlanTableComponent","i12.ProductionPickingPlanTableComponent","i23.ProductionPickingSourceOrderSelectorComponent","i24.ProductionPickingPlanSelectorComponent","i25.ProductPickingMaterialOutHandleDetailsComponent","i23.ReturnWarehousingSourceOrderSelectorComponent","i24.ReturnWarehousingPlanSelectorComponent","i25.ProductReturnedMaterialInHandleDetailsComponent","i23.ProdcutionWarehousingPlanSelectorComponent","i25.ProductionInHandleDetailsComponent","i1.RhPurchaseBusinessService","i4.RhBusinessManageService","i13.PurchaseWarehousingSourceOrderTableComponent","i19","i20","i21","i22","i23.BusinessWarehouseSelectorComponent","i24.PurchaseInPlanDetailsComponent","i25.PurchaseWarehousingSourceOrderSelectorComponent","i12.PurchaseWarehousingPlanTableComponent","i24.PurchaseWarehousingSourceOrderSelectorComponent","i25.PurchaseReturnedOutPlanDetailsComponent","i2.RhPurchaseBusinessService","i3.RhBusinessManageService","i18","i21.PurchaseWarehousingSourceOrderSelectorComponent","i22.PurchaseWarehousingPlanSelectorComponent","i23.PurchaseInHandleDetailsComponent","i12.PurchaseReturnedOutPlanTableComponent","i13.PurchaseReturnedOutSourceOrderTableComponent","i21.RhInventoryControlSpecialTypeDirective","i22.PurchaseReturnedOutHandleDetailsComponent","i23.PurchaseReturnedOutPlanSelectorComponent","i24.PurchaseReturnedOutSourceOrderSelectorComponent","i18.RhInventoryControlSpecialTypeDirective","i1.RhSaleBusinessService","i13.SaleOutWarehousingSourceOrderTableComponent","i23.SaleOutPlanDetailsComponent","i24.SaleOutWarehousingSourceOrderSelectorComponent","i23.SaleReturnedInPlanDetailsComponent","i12.SaleOutWarehousingPlanTableComponent","i23.SaleOutWarehousingSourceOrderSelectorComponent","i24.SaleOutHandleDetailsComponent","i25.SaleOutWarehousingPlanSelectorComponent","i12.SaleReturnPlanTableComponent","i24.SaleReturnedInHandleDetailsComponent","i25.SaleReturnPlanOrderSelectorComponent","i1.RhStayStockBusinessService","i15.MaterialInventoryChooseTransferComponent","i12.AllocateTransferPlanTableComponent","i23.AllocateTransferHandleDetailsComponent","i24.AllocateTransferPlanSelectorComponent","i5.MaterialInventoryChooseTransferComponent","i23.AllocateTransferPlanDetailComponent","i23.LocationMoveHandleDetailsComponent","i24.LocationMovePlanSelectorComponent","i23.LocationMovePlanDetailsComponent","MODULES","i1.RhBasicDataService","i2.RhInventoryControlService","i14.MaterialInventoryDetailsTableComponent","i9.RhImportDataManageComponent","i12.RhImportDataManageComponent","i1.RhInventorySearchService","i10.InventoryQueryStorageLocationComponent","i11.InventoryQueryDetailsComponent","i12.InventoryQueryInOutDetailsComponent","i13.InventoryQueryAreaComponent","i14.InventoryQueryShelfComponent","InOutOrderMasterQueryDto","InOutOrderDetailQueryDto","i1.RhInventoryManageService","i7.RhAttachFileManageComponent","i10.InventoryInOutDetailsByBusinessComponent","i2.RhInventoryCountService","i12.InventoryVerificationSchemeTableComponent","i1.RhInventoryCountService","i2.RhInventoryManageService","i12.InventoryVerificationDataSourceComponent","WarehouseConfigQueryDto","i19.InventoryVerificationSchemeSelectorComponent","i20.InventoryVerificationOrderDetailsComponent","i21.InventoryVerificationSnapshootComponent","i3.RhInventoryManageService","i12.MaterialInventoryDetailTableComponent","i11.ReplayManageComponent","i12.InventoryGainLossManageComponent","i13.DifferenceAuditComponent","i14.InventoryVerificationSnapshootComponent","i1.RhSaleOrderManageService","i11.PurchaseOrderMaterialChooseTableComponent","i2.RhBusinessOrderManageService","i21.BusinessWarehouseSelectorComponent","i22.SaleDeliveryOrderDetailComponent","i1.RhPurchaseOrderManageService","i22.PurchaseOrderDetailComponent","i1.RhProductionOrderManageService","i11.PurchaseOrderDetailDataTableComponent","i22.PurchaseAdvanceReceiptOrderDetailComponent","i13.ProductOrderBomTableComponent","i5.RhProductionOrderManageService","i15.ProductionFeedingDetailsComponent","i3.RhProductionOrderManageService","i14.ProductPlanBomTableComponent","i10.ProductionReplenishmentDetailsComponent","i11.SaleOrderDataTableComponent","i20.BusinessWarehouseSelectorComponent","i21.SaleOrderDetailComponent"],"mappings":"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"}