GetParamsByAsnHeaderTest.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. namespace Tests\Services\StoreService;
  3. use App\OracleBasCode;
  4. use App\OracleDOCASNHeader;
  5. use App\Owner;
  6. use App\Services\OwnerService;
  7. use App\Services\StoreService;
  8. use App\Services\WarehouseService;
  9. use App\Store;
  10. use App\Warehouse;
  11. use Carbon\Carbon;
  12. use Tests\TestCase;
  13. class GetParamsByAsnHeaderTest extends TestCase
  14. {
  15. /**
  16. * @var StoreService $service
  17. * @var OwnerService $ownerService
  18. * @var WarehouseService $warehouseService
  19. *
  20. */
  21. public $service;
  22. public $asnHeaders;
  23. public $ownerService;
  24. public $warehouseService;
  25. private $data=[];
  26. public function setUp(): void
  27. {
  28. parent::setUp(); // TODO: Change the autogenerated stub
  29. cache()->flush();
  30. $this->service=app(StoreService::class);
  31. $this->ownerService=app(OwnerService::class);
  32. $this->warehouseService=app(WarehouseService::class);
  33. $this->data['warehouse'] = factory(Warehouse::class)->create(['code'=>'test_wh']);
  34. $this->data['owner'] = factory(Owner::class)->create(['code'=>'test_owner','name'=>'测试货主']);
  35. $wmsAsnHeader = factory(OracleDOCASNHeader::class)->make([
  36. 'customerid'=>'test_owner','warehouseid'=>'test_wh','asntype'=>'CSRK','asnstatus'=>'11',
  37. ]);
  38. $asnType = factory(OracleBasCode::class)->make(['codeid'=>'ASN_TYP','code'=>'CSRK','descr_c'=>'测试入库']);
  39. $asnStatus = factory(OracleBasCode::class)->make(['code'=>'11', 'codeid'=>'ASN_STS', 'codename_c'=>'测试状态']);
  40. $wmsAsnHeader->setRelation('asnType',$asnType);
  41. $wmsAsnHeader->setRelation('asnStatus',$asnStatus);
  42. $this->asnHeaders=collect();
  43. $this->asnHeaders->add($wmsAsnHeader);
  44. }
  45. public function testGetParamsByAsnHeader(){
  46. if (empty($this->asnHeaders))return null;
  47. $stores = Store::query()->whereIn('asn_code',data_get($this->asnHeaders,'*.asnno'))->get();
  48. $owner_codes = [];
  49. $warehouse_codes = [];
  50. foreach ($this->asnHeaders as $asnHerder) {
  51. if (!empty($asnHerder['customerid']))
  52. $owner_codes[$asnHerder['customerid']] = $asnHerder['customerid'];
  53. if (!empty($asnHerder['warehouseid']))
  54. $warehouse_codes[$asnHerder['warehouseid']] = $asnHerder['warehouseid'];
  55. }
  56. $owners = $this->ownerService->getOwnerByCodes($owner_codes);
  57. $warehouses = $this->warehouseService->getWareHouseByCodes($warehouse_codes);
  58. $this->assertNotEmpty($this->asnHeaders);
  59. $owners_code_map=[];
  60. foreach ($owners as $owner) {
  61. $owners_code_map[$owner->code] = $owner;
  62. }
  63. $warehouses_code_map=[];
  64. foreach ($warehouses as $warehouse) {
  65. $warehouses_code_map[$warehouse->code] = $warehouse;
  66. }
  67. if (count($this->asnHeaders)>count($stores)){
  68. $params=$this->service->getParamsByAsnHeader($this->asnHeaders,$owners_code_map,$warehouses_code_map);
  69. $this->assertNotEmpty($params);
  70. }
  71. }
  72. public function tearDown(): void
  73. {
  74. $this->data['warehouse']->delete();
  75. $this->data['owner']->delete();
  76. cache()->flush();
  77. parent::tearDown(); // TODO: Change the autogenerated stub
  78. }
  79. }