From c19f1f7e21c93d1f13b4f44a8a615f65af577559 Mon Sep 17 00:00:00 2001
From: wangzhibo <wangzhibo@shsening.com>
Date: 星期日, 16 八月 2026 15:10:24 +0800
Subject: [PATCH] 添加 android 端接口
---
src/modules/operation/service/wastesale.ts | 93 +++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 90 insertions(+), 3 deletions(-)
diff --git a/src/modules/operation/service/wastesale.ts b/src/modules/operation/service/wastesale.ts
index 70b0f4c..8e6cd6f 100644
--- a/src/modules/operation/service/wastesale.ts
+++ b/src/modules/operation/service/wastesale.ts
@@ -1,8 +1,12 @@
import { Provide } from '@midwayjs/core';
-import { BaseService } from '@cool-midway/core';
+import { BaseService, CoolCommException } from '@cool-midway/core';
import { InjectEntityModel } from '@midwayjs/typeorm';
import { Repository } from 'typeorm';
import { OperationWastesaleEntity } from '../entity/wastesale';
+import { BasicdataSorterEntity } from '../../basicdata/entity/sorter';
+import { BasicdataWastetypeEntity } from '../../basicdata/entity/wastetype';
+import { BasicdataBuyerEntity } from '../../basicdata/entity/buyer';
+import { BasicdataSiteEntity } from '../../basicdata/entity/site';
/**
* 鍙洖鏀剁墿鏀剁泭鏈嶅姟
@@ -12,14 +16,97 @@
@InjectEntityModel(OperationWastesaleEntity)
operationWastesaleEntity: Repository<OperationWastesaleEntity>;
+ @InjectEntityModel(BasicdataSorterEntity)
+ basicdataSorterEntity: Repository<BasicdataSorterEntity>;
+
+ @InjectEntityModel(BasicdataWastetypeEntity)
+ basicdataWastetypeEntity: Repository<BasicdataWastetypeEntity>;
+
+ @InjectEntityModel(BasicdataBuyerEntity)
+ basicdataBuyerEntity: Repository<BasicdataBuyerEntity>;
+
+ @InjectEntityModel(BasicdataSiteEntity)
+ basicdataSiteEntity: Repository<BasicdataSiteEntity>;
+
/**
* 鍐欏叆鍓嶈绠楁�讳环
*/
async modifyBefore(data: any, type: 'add' | 'update') {
if (type === 'add' || type === 'update') {
if (data.weight !== undefined && data.unitPrice !== undefined) {
- data.totalPrice = Number((Number(data.weight) * Number(data.unitPrice)).toFixed(2));
+ data.totalPrice = Number(
+ (Number(data.weight) * Number(data.unitPrice)).toFixed(2)
+ );
}
}
}
-}
\ No newline at end of file
+
+ async getSorter(sorterId: string) {
+ const sorter = await this.basicdataSorterEntity.findOneBy({
+ businessId: String(sorterId || '').trim(),
+ });
+ if (!sorter || sorter.status !== 0) {
+ throw new CoolCommException('鍒嗘嫞鍛樿处鍙蜂笉鍙敤');
+ }
+ return sorter;
+ }
+
+ /**
+ * 鍒嗘嫞鍛樻柊澧為攢鍞褰�
+ */
+ async appAdd(param: any) {
+ const sorter = await this.getSorter(param.sorterId);
+ const weight = Number(param.weight);
+ let unitPrice = Number(param.unitPrice);
+ if (!weight || weight <= 0) {
+ throw new CoolCommException('璇峰~鍐欓噸閲�');
+ }
+ if (!param.wasteCode) {
+ throw new CoolCommException('璇烽�夋嫨鍨冨溇绉嶇被');
+ }
+ if (!param.buyerCode) {
+ throw new CoolCommException('璇烽�夋嫨鏀惰喘鏂�');
+ }
+ if (!unitPrice) {
+ const waste = await this.basicdataWastetypeEntity.findOneBy({
+ code: param.wasteCode,
+ });
+ unitPrice = Number(waste?.price || 0);
+ }
+ const data: any = {
+ departmentId: param.departmentId || sorter.departmentId,
+ siteId: param.siteId,
+ wasteCode: param.wasteCode,
+ dateTime: param.dateTime || new Date(),
+ weight,
+ unitPrice,
+ totalPrice: Number((weight * unitPrice).toFixed(2)),
+ handlerId: sorter.businessId,
+ buyerCode: param.buyerCode,
+ };
+ await this.operationWastesaleEntity.save(data);
+ return data;
+ }
+
+ /**
+ * 鏌ョ湅褰撳墠鍒嗘嫞鍛樼殑閿�鍞褰�
+ */
+ async appPage(query: any) {
+ const { sorterId, page = 1, size = 10 } = query || {};
+ const sorter = await this.getSorter(sorterId);
+ const find = this.operationWastesaleEntity
+ .createQueryBuilder('a')
+ .select([
+ 'a.*',
+ 'c.businessName AS siteName',
+ 'd.name AS wasteName',
+ 'f.name AS buyerName',
+ ])
+ .leftJoin(BasicdataSiteEntity, 'c', 'a.siteId = c.businessId')
+ .leftJoin(BasicdataWastetypeEntity, 'd', 'a.wasteCode = d.code')
+ .leftJoin(BasicdataBuyerEntity, 'f', 'a.buyerCode = f.code')
+ .where('a.handlerId = :hid', { hid: sorter.businessId })
+ .orderBy('a.dateTime', 'DESC');
+ return this.entityRenderPage(find, { ...query, page, size }, false);
+ }
+}
--
Gitblit v1.9.1