Explorar o código

增加样品单查询,入库单列表,入库单详情

panxingxin %!s(int64=5) %!d(string=hai) anos
pai
achega
4eb42ccbe3

+ 4 - 1
src/app/app-routing.module.ts

@@ -25,7 +25,10 @@ const routes: Routes = [
   { path: 'store-sample-pending', loadChildren: './store-sample-pending/store-sample-pending.module#StoreSamplePendingPageModule' },
   { path: 'warehouse-manage-pending', loadChildren: './warehouse-manage-pending/warehouse-manage-pending.module#WarehouseManagePendingPageModule' },
   { path: 'home', loadChildren: './home/home.module#HomePageModule' },
-  { path: 'es-apply-scan', loadChildren: './es-apply-scan/es-apply-scan.module#EsApplyScanPageModule' }
+  { path: 'es-apply-scan', loadChildren: './es-apply-scan/es-apply-scan.module#EsApplyScanPageModule' },
+  { path: 'enter-store-list', loadChildren: './enter-store-list/enter-store-list.module#EnterStoreListPageModule' },
+  { path: 'enter-store-detail/:code/:entergoodsid', loadChildren: './enter-store-detail/enter-store-detail.module#EnterStoreDetailPageModule' },
+  { path: 'store-sample-code', loadChildren: './store-sample-code/store-sample-code.module#StoreSampleCodePageModule' }
   // { path: 'scanning', loadChildren: './scanning/scanning.module#ScanningPageModule', canActivate: [LoginGuardGuard] }
 ];
 @NgModule({

+ 26 - 0
src/app/enter-store-detail/enter-store-detail.module.ts

@@ -0,0 +1,26 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { FormsModule } from '@angular/forms';
+import { Routes, RouterModule } from '@angular/router';
+
+import { IonicModule } from '@ionic/angular';
+
+import { EnterStoreDetailPage } from './enter-store-detail.page';
+
+const routes: Routes = [
+  {
+    path: '',
+    component: EnterStoreDetailPage
+  }
+];
+
+@NgModule({
+  imports: [
+    CommonModule,
+    FormsModule,
+    IonicModule,
+    RouterModule.forChild(routes)
+  ],
+  declarations: [EnterStoreDetailPage]
+})
+export class EnterStoreDetailPageModule {}

+ 96 - 0
src/app/enter-store-detail/enter-store-detail.page.html

@@ -0,0 +1,96 @@
+<ion-header>
+  <ion-toolbar>
+    <ion-buttons slot="start">
+      <ion-back-button defaultHref="enter-store-list"></ion-back-button>
+    </ion-buttons>
+    <ion-title>入库单详情</ion-title>
+  </ion-toolbar>
+</ion-header>
+
+<ion-content>
+  <ion-item>
+    <ion-label>入库单号:</ion-label>
+    <ion-input readonly>{{code}}</ion-input>
+  </ion-item>
+  <ion-list *ngFor="let es of esDetailList" class="es-detail">
+    <ion-item-group>
+      <ion-item-divider sticky>
+        <ion-label>
+          详细信息
+        </ion-label>
+      </ion-item-divider>
+    </ion-item-group>
+    <ion-item>
+      <ion-label>
+        我司货号:
+      </ion-label>
+      <ion-input [(ngModel)]="es.scpCode" readonly></ion-input>
+    </ion-item>
+    <ion-item>
+      <ion-label>
+        合同号:
+      </ion-label>
+      <ion-input [(ngModel)]="es.sscCode" readonly></ion-input>
+    </ion-item>
+    <ion-item>
+      <ion-label>
+        中文品名:
+      </ion-label>
+      <ion-input [(ngModel)]="es.scpCnname" readonly></ion-input>
+    </ion-item>
+    <ion-item>
+      <ion-label>
+        PO号:
+      </ion-label>
+      <ion-input [(ngModel)]="es.scpPoCode" readonly></ion-input>
+    </ion-item>
+    <ion-item>
+      <ion-label>
+        客户货号:
+      </ion-label>
+      <ion-input [(ngModel)]="es.scpCustomercode" readonly></ion-input>
+    </ion-item>
+    <ion-item>
+      <ion-label>
+        总箱数:
+      </ion-label>
+      <ion-input [(ngModel)]="es.contractBoxs" readonly></ion-input>
+    </ion-item>
+    <ion-item>
+      <ion-label>
+        qc员:
+      </ion-label>
+      <ion-input [(ngModel)]="es.qcName" readonly></ion-input>
+    </ion-item>
+    <ion-item>
+      <ion-label>
+        外箱长度:
+      </ion-label>
+      <ion-input [(ngModel)]="es.outboxlength" readonly></ion-input>
+    </ion-item>
+    <ion-item>
+      <ion-label>
+        外箱宽度:
+      </ion-label>
+      <ion-input [(ngModel)]="es.outboxwidth" readonly></ion-input>
+    </ion-item>
+    <ion-item>
+      <ion-label>
+        外箱高度:
+      </ion-label>
+      <ion-input [(ngModel)]="es.outboxheigt" readonly></ion-input>
+    </ion-item>
+    <ion-item>
+      <ion-label>
+        外箱毛重:
+      </ion-label>
+      <ion-input [(ngModel)]="es.grossweight" readonly></ion-input>
+    </ion-item>
+    <ion-item>
+      <ion-label>
+        仓位编号:
+      </ion-label>
+      <ion-input [(ngModel)]="es.storelocation" readonly></ion-input>
+    </ion-item>
+  </ion-list>
+</ion-content>

+ 3 - 0
src/app/enter-store-detail/enter-store-detail.page.scss

@@ -0,0 +1,3 @@
+.es-detail ion-item {
+  font-size: 14px;
+}

+ 27 - 0
src/app/enter-store-detail/enter-store-detail.page.spec.ts

@@ -0,0 +1,27 @@
+import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { EnterStoreDetailPage } from './enter-store-detail.page';
+
+describe('EnterStoreDetailPage', () => {
+  let component: EnterStoreDetailPage;
+  let fixture: ComponentFixture<EnterStoreDetailPage>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ EnterStoreDetailPage ],
+      schemas: [CUSTOM_ELEMENTS_SCHEMA],
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(EnterStoreDetailPage);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});

+ 30 - 0
src/app/enter-store-detail/enter-store-detail.page.ts

@@ -0,0 +1,30 @@
+import { Component, OnInit } from '@angular/core';
+import { ActivatedRoute } from '@angular/router'
+import { UserData } from '../../providers/user-data';
+
+@Component({
+  selector: 'app-enter-store-detail',
+  templateUrl: './enter-store-detail.page.html',
+  styleUrls: ['./enter-store-detail.page.scss'],
+})
+export class EnterStoreDetailPage implements OnInit {
+
+  public esDetailList = []
+  public code:string
+
+  constructor(private activeRoute: ActivatedRoute,
+    public userData: UserData) { }
+
+  ngOnInit() {
+  }
+
+  ionViewDidEnter() {
+    this.activeRoute.paramMap.subscribe(async params => {
+      this.code = params['params']['code']
+      console.log(params['params'].entergoodsid)
+      let data = await this.userData.geteEnterStoreDetail(params['params'].entergoodsid)
+      this.esDetailList = data.data
+      console.log(data)
+    })
+  }
+}

+ 26 - 0
src/app/enter-store-list/enter-store-list.module.ts

@@ -0,0 +1,26 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { FormsModule } from '@angular/forms';
+import { Routes, RouterModule } from '@angular/router';
+
+import { IonicModule } from '@ionic/angular';
+
+import { EnterStoreListPage } from './enter-store-list.page';
+
+const routes: Routes = [
+  {
+    path: '',
+    component: EnterStoreListPage
+  }
+];
+
+@NgModule({
+  imports: [
+    CommonModule,
+    FormsModule,
+    IonicModule,
+    RouterModule.forChild(routes)
+  ],
+  declarations: [EnterStoreListPage]
+})
+export class EnterStoreListPageModule {}

+ 58 - 0
src/app/enter-store-list/enter-store-list.page.html

@@ -0,0 +1,58 @@
+<ion-header>
+  <ion-toolbar>
+    <ion-buttons slot="start">
+      <ion-menu-button></ion-menu-button>
+    </ion-buttons>
+    <ion-title>入库单</ion-title>
+  </ion-toolbar>
+</ion-header>
+
+<ion-content>
+  <ion-refresher slot="fixed" (ionRefresh)="doRefresh($event)">
+    <ion-refresher-content pullingIcon="arrow-dropdown" pullingText="加载中..." refreshingSpinner="circles"
+      refreshingText="刷新...">
+    </ion-refresher-content>
+  </ion-refresher>
+  <ion-list style="margin-bottom: 0;">
+    <ion-item>
+      <ion-label>入库单编号:</ion-label>
+      <ion-input [(ngModel)]="code" (keyup)="search($event)"></ion-input>
+    </ion-item>
+  </ion-list>
+  <!-- <ion-item-group>
+    <ion-item-divider sticky>
+      <ion-label>
+        入库单列表
+      </ion-label>
+    </ion-item-divider>
+  </ion-item-group> -->
+  <ion-card *ngFor="let es of enterStoreList" (click)="getDetail(es.code,es.entergoodsid)">
+
+    <ion-card-content>
+      <div>
+      <ion-icon name="folder"></ion-icon>
+      <ion-label>入库单号:{{es.code}} </ion-label>
+    </div>
+    <div>
+      <ion-icon name="clock"></ion-icon>
+      <ion-label>入库时间:{{es.modifiedtme}} </ion-label>
+    </div>
+    <div>
+      <ion-icon name="folder"></ion-icon>
+      <ion-label>操作人:{{es.contact}} </ion-label>
+    </div>
+    <div>
+      <ion-icon name="keypad"></ion-icon>
+      <ion-label>产品类型:{{es.producttypeName}} </ion-label>
+    </div>
+    <div>
+      <ion-icon name="document"></ion-icon>
+      <ion-label>备注:{{es.remark}} </ion-label>
+    </div>
+    </ion-card-content>
+  </ion-card>
+  <ion-infinite-scroll #IonInfiniteScroll threshold="100px" (ionInfinite)="loadData($event)">
+    <ion-infinite-scroll-content loadingSpinner="bubbles" loadingText="加载...">
+    </ion-infinite-scroll-content>
+  </ion-infinite-scroll>
+</ion-content>

+ 0 - 0
src/app/enter-store-list/enter-store-list.page.scss


+ 27 - 0
src/app/enter-store-list/enter-store-list.page.spec.ts

@@ -0,0 +1,27 @@
+import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { EnterStoreListPage } from './enter-store-list.page';
+
+describe('EnterStoreListPage', () => {
+  let component: EnterStoreListPage;
+  let fixture: ComponentFixture<EnterStoreListPage>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ EnterStoreListPage ],
+      schemas: [CUSTOM_ELEMENTS_SCHEMA],
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(EnterStoreListPage);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});

+ 62 - 0
src/app/enter-store-list/enter-store-list.page.ts

@@ -0,0 +1,62 @@
+import { Component, OnInit } from '@angular/core';
+import { UserData } from '../../providers/user-data';
+import { Router } from '@angular/router';
+
+@Component({
+  selector: 'app-enter-store-list',
+  templateUrl: './enter-store-list.page.html',
+  styleUrls: ['./enter-store-list.page.scss'],
+})
+export class EnterStoreListPage implements OnInit {
+
+  public code: string
+  public enterStoreList = []
+  public size = 10
+  public total = 0
+  constructor(public userData: UserData,private router: Router) { }
+
+  ngOnInit() {
+
+  }
+
+  ionViewDidEnter() {
+    this.getList()
+  }
+
+  async search(e) {
+    e.preventDefault()
+    let keycode = window.event ? e.keyCode : e.which;
+    if (keycode == 13) {
+      e.preventDefault();
+      this.getList()
+    }
+  }
+
+  async getList() {
+    let data = await this.userData.geteEnterStoreList(this.code, this.size)
+    this.enterStoreList = data.data
+    this.total = data.totalElements
+    for (let i of this.enterStoreList) {
+      i.producttypeName = i.producttype == 200 ? '合同产品' : i.producttype == 201 ? '样品产品' : i.producttype == 202 ? '退货' : i.producttype == 203 ? '储运部特殊入库' : ''
+    }
+  }
+
+  async loadData(event) {
+    this.size += 10
+    this.getList()
+    event.target.complete();
+    if (this.total < this.size) {
+      event.target.disabled = true;
+    }
+  }
+
+  getDetail(code,entergoodsid) {
+    this.router.navigateByUrl(`/enter-store-detail/${code}/${entergoodsid}`)
+  }
+
+  doRefresh(event) {
+    this.getList()
+    event.target.complete(); 
+  }
+
+}

+ 11 - 6
src/app/menu/menu.ts

@@ -38,16 +38,21 @@ export const menu_list = [
             name: '仓库样品列表',
             icon: 'home',
             url: 'store-sample'
+        }, {
+            id: 13000,
+            name: '样品单查询',
+            icon: 'home',
+            url: 'store-sample-code'
         }]
     },{
         title: '仓库管理',
         children: [
-        //     {
-        //     id: 7000,
-        //     name: '入库扫描',
-        //     icon: 'appstore',
-        //     url: 'enter-store'
-        // },
+            {
+            id: 7000,
+            name: '入库单列表',
+            icon: 'list-box',
+            url: 'enter-store-list'
+        },
         {
             id: 8000,
             name: '入库单号查询',

+ 4 - 4
src/app/store-qc-scanning/store-qc-scanning.page.html

@@ -6,7 +6,7 @@
     <ion-buttons slot="start" *ngIf="defaultHref">
       <ion-back-button [defaultHref]="defaultHref"></ion-back-button>
     </ion-buttons>
-    <ion-title>QC扫描</ion-title>
+    <ion-title>QC待保存</ion-title>
     <ion-buttons slot="end">
       <ion-button [disabled]="storeQCList.length===0" (click)="generateQC()">
         生成
@@ -20,7 +20,7 @@
 </ion-header>
 
 <ion-content>
-  <ion-item>
+  <ion-item style="display: none;">
     <ion-label>条形码编号:</ion-label>
     <ion-input #scanInput clear-on-edit (ionChange)="getStoreQCDetail()" [(ngModel)]="scanCode"></ion-input>
   </ion-item>
@@ -135,12 +135,12 @@
     <ion-item-group>
       <ion-item-divider sticky>
         <ion-label>
-          已扫描条形码编号
+          已保存QC记录
         </ion-label>
       </ion-item-divider>
     </ion-item-group>
     <ion-item *ngFor="let item of storeQCList index as i">
-      <ion-label color="primary" (click)="getStoreQCDetail(item)">{{item.scpCode}}({{item.scanCode}})</ion-label>
+      <ion-label color="primary" (click)="getStoreQCDetail(item)">我司货号:{{item.scpCode}}</ion-label>
       <ion-icon name="trash" (click)="deleteQCStore(item, i)"></ion-icon>
     </ion-item>
   </ion-list>

+ 4 - 3
src/app/store-qc-scanning/store-qc-scanning.page.ts

@@ -23,6 +23,7 @@ export class StoreQCScanningPage implements OnInit {
   storeQCList = []
   defaultHref = ''
   storeQCDetailList = []
+  test= false
   constructor(private router: Router,
     private barcodeScanner: BarcodeScanner,
     private activeRoute: ActivatedRoute,
@@ -102,8 +103,8 @@ export class StoreQCScanningPage implements OnInit {
           this.storeQCDetailList = new Array(data)
         }
         for (let i of this.storeQCDetailList) {
-          i.qaimgList = []
-          i.qcimgList = []
+          // i.qaimgList = []
+          // i.qcimgList = []
           i['qcIdList'] = []
           // 获取QA日志
           let qalogdata = await this.userData.getQAlog(i.sscId, i.pid)
@@ -171,7 +172,7 @@ export class StoreQCScanningPage implements OnInit {
       }
       // this.scpCodes.push(i.scpCode)
     }
-    this.addQClog()
+    // this.addQClog()
     this.initialData()
   }
 

+ 26 - 0
src/app/store-sample-code/store-sample-code.module.ts

@@ -0,0 +1,26 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { FormsModule } from '@angular/forms';
+import { Routes, RouterModule } from '@angular/router';
+
+import { IonicModule } from '@ionic/angular';
+
+import { StoreSampleCodePage } from './store-sample-code.page';
+
+const routes: Routes = [
+  {
+    path: '',
+    component: StoreSampleCodePage
+  }
+];
+
+@NgModule({
+  imports: [
+    CommonModule,
+    FormsModule,
+    IonicModule,
+    RouterModule.forChild(routes)
+  ],
+  declarations: [StoreSampleCodePage]
+})
+export class StoreSampleCodePageModule {}

+ 66 - 0
src/app/store-sample-code/store-sample-code.page.html

@@ -0,0 +1,66 @@
+<ion-header>
+  <ion-toolbar>
+    <ion-buttons slot="start">
+      <ion-menu-button></ion-menu-button>
+    </ion-buttons>
+    <ion-title>样品单查询</ion-title>
+  </ion-toolbar>
+</ion-header>
+
+<ion-content>
+  <ion-refresher slot="fixed" (ionRefresh)="doRefresh($event)">
+    <ion-refresher-content pullingIcon="arrow-dropdown" pullingText="加载中..." refreshingSpinner="circles"
+      refreshingText="刷新...">
+    </ion-refresher-content>
+  </ion-refresher>
+
+  <ion-item>
+    <ion-label>入库单号:</ion-label>
+    <ion-input #scanInput clear-on-edit (keyup)="getStoreSampleDetail($event)" [(ngModel)]="code"></ion-input>
+  </ion-item>
+
+
+  <ion-card *ngFor="let storeSample of storeSampleLists">
+
+    <ion-card-content class="storeSample-content">
+      <ion-item lines="none">
+        <span>产品图片:</span>
+        <img slot="end" (click)="showFullScreenImage(storeSample)" [src]="storeSample.imgsrc" class="title-image" />
+      </ion-item>
+      <ion-item>
+        <ion-icon name="briefcase"></ion-icon>
+        <ion-label>货架:</ion-label>
+        <ion-input [(ngModel)]='storeSample.shelves' readonly></ion-input>
+      </ion-item>
+      <ion-item>
+        <ion-icon name="square"></ion-icon>
+        <ion-label>货号:</ion-label>
+        <ion-input [(ngModel)]='storeSample.code' readonly></ion-input>
+      </ion-item>
+      <ion-item>
+        <ion-icon name="checkbox-outline"></ion-icon>
+        <ion-label>状态: </ion-label>
+        <ion-input [(ngModel)]="storeSample.statusName" readonly></ion-input>
+      </ion-item>
+      <ion-item>
+        <ion-icon name="hand"></ion-icon>
+        是否借出:
+        <ion-label>{{storeSample.lendName}}</ion-label>
+      </ion-item>
+      <!-- <ion-item>
+        <ion-icon name="calendar"></ion-icon>
+        <ion-label>更新时间: </ion-label>
+        <ion-datetime [(ngModel)]="storeSample.updatetime" readonly></ion-datetime>
+      </ion-item> -->
+      <ion-item>
+        <ion-icon name="apps"></ion-icon>
+        <ion-label>数量: </ion-label>
+        <ion-input [(ngModel)]='storeSample.count' readonly></ion-input>
+      </ion-item>
+    </ion-card-content>
+  </ion-card>
+  <!-- <ion-infinite-scroll #IonInfiniteScroll threshold="100px" (ionInfinite)="loadData($event)">
+    <ion-infinite-scroll-content loadingSpinner="bubbles" loadingText="加载...">
+    </ion-infinite-scroll-content>
+  </ion-infinite-scroll> -->
+</ion-content>

+ 4 - 0
src/app/store-sample-code/store-sample-code.page.scss

@@ -0,0 +1,4 @@
+.title-image {
+    width: auto;
+    height: 60px;
+}

+ 27 - 0
src/app/store-sample-code/store-sample-code.page.spec.ts

@@ -0,0 +1,27 @@
+import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { StoreSampleCodePage } from './store-sample-code.page';
+
+describe('StoreSampleCodePage', () => {
+  let component: StoreSampleCodePage;
+  let fixture: ComponentFixture<StoreSampleCodePage>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ StoreSampleCodePage ],
+      schemas: [CUSTOM_ELEMENTS_SCHEMA],
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(StoreSampleCodePage);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});

+ 44 - 0
src/app/store-sample-code/store-sample-code.page.ts

@@ -0,0 +1,44 @@
+import { Component, OnInit } from '@angular/core';
+import { UserData } from '../../providers/user-data';
+import { commonService } from '../../providers/common.service'
+
+@Component({
+  selector: 'app-store-sample-code',
+  templateUrl: './store-sample-code.page.html',
+  styleUrls: ['./store-sample-code.page.scss'],
+})
+export class StoreSampleCodePage implements OnInit {
+
+  public storeSampleLists = []
+  public code:string
+  constructor(public userData: UserData,public commonService: commonService) { }
+
+  ngOnInit() {
+  }
+
+  ionViewDidEnter() {
+  }
+
+  async getStoreSampleDetail(e) {
+    e.preventDefault()
+    let keycode = window.event ? e.keyCode : e.which;
+    if (keycode == 13) {
+      e.preventDefault();
+      this.getList()
+    }
+  }
+
+  async getList() {
+    let data = await this.userData.getStoreSampleByCode(this.code)
+    this.storeSampleLists = new Array(data.data)
+  }
+
+  showFullScreenImage(data) {
+    this.commonService.fullScreenImg(data)
+  }
+
+  doRefresh() {
+    this.getList()
+  }
+
+}

+ 102 - 1
src/providers/user-data.ts

@@ -588,6 +588,74 @@ export class UserData {
     });
   }
 
+  // 获取入库单列表
+  async geteEnterStoreList(code:string,size: number): Promise<any> {
+    const token = await this.getToken();
+    const loading = await this.loadingCtrl.create();
+    await loading.present();
+    this.nativeHttp.setDataSerializer('json');
+    const headers = { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json;charset=UTF-8' };
+    return new Promise((resolve, reject) => {
+      from(this.nativeHttp.get(`${environment.APP_SERVE_URL}/inventory/enterStore/mobile`, {code:code,size:size},
+        headers)).pipe(
+          finalize(() => loading.dismiss())
+        ).subscribe(async data => {
+          if (JSON.parse(data.data).code===1) {
+            const toast = await this.toastCtrl.create({
+              message: JSON.parse(data.data).msg,
+              duration: 1000,
+              position: 'top'
+            });
+            await toast.present();
+            resolve([]);
+          }
+          resolve(JSON.parse(data.data));
+        }, async err => {
+          console.log(err);
+          const toast = await this.toastCtrl.create({
+            message: '查询失败',
+            duration: 1000,
+            position: 'top'
+          });
+          await toast.present();
+        });
+    });
+  }
+
+    // 获取入库单详情
+    async geteEnterStoreDetail(entergoodsid:string): Promise<any> {
+      const token = await this.getToken();
+      const loading = await this.loadingCtrl.create();
+      await loading.present();
+      this.nativeHttp.setDataSerializer('json');
+      const headers = { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json;charset=UTF-8' };
+      return new Promise((resolve, reject) => {
+        from(this.nativeHttp.get(`${environment.APP_SERVE_URL}/inventory/enterStore/mobile/${entergoodsid}`, {},
+          headers)).pipe(
+            finalize(() => loading.dismiss())
+          ).subscribe(async data => {
+            if (JSON.parse(data.data).code===1) {
+              const toast = await this.toastCtrl.create({
+                message: JSON.parse(data.data).msg,
+                duration: 1000,
+                position: 'top'
+              });
+              await toast.present();
+              resolve([]);
+            }
+            resolve(JSON.parse(data.data));
+          }, async err => {
+            console.log(err);
+            const toast = await this.toastCtrl.create({
+              message: '获取失败',
+              duration: 1000,
+              position: 'top'
+            });
+            await toast.present();
+          });
+      });
+    }
+
   // 获取入库详情
   async getStoreDetail(sscId: number, pId: number): Promise<any> {
     const token = await this.getToken();
@@ -988,6 +1056,40 @@ export class UserData {
     });
   }
 
+    // 查询样品
+    async getStoreSampleByCode(code: string): Promise<any> {
+      const token = await this.getToken();
+      const loading = await this.loadingCtrl.create();
+      await loading.present();
+      this.nativeHttp.setDataSerializer('json');
+      const headers = { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json;charset=UTF-8' };
+      return new Promise((resolve, reject) => {
+        from(this.nativeHttp.get(`${environment.APP_SERVE_URL}/inventory/shelf/mobile/code`, {code:code},
+          headers)).pipe(
+            finalize(() => loading.dismiss())
+          ).subscribe(async data => {
+            if (JSON.parse(data.data).code == 1) {
+              const toast = await this.toastCtrl.create({
+                message: JSON.parse(data.data).msg,
+                duration: 1000,
+                position: 'top'
+              });
+              await toast.present();
+              resolve([]);
+            }
+            resolve(JSON.parse(data.data));
+          }, async err => {
+            console.log(err);
+            const toast = await this.toastCtrl.create({
+              message: '查询失败',
+              duration: 1000,
+              position: 'top'
+            });
+            await toast.present();
+          });
+      });
+    }
+
   // 获取待备货列表
   async getWarehouseManagePendingList(current: number, size: number): Promise<any> {
     const token = await this.getToken();
@@ -1000,7 +1102,6 @@ export class UserData {
         headers)).pipe(
           finalize(() => loading.dismiss())
         ).subscribe(async data => {
-          console.log(data)
           if (data.data === null || JSON.parse(data.data).data.records == null) {
             const toast = await this.toastCtrl.create({
               message: '无数据',