Commit 5189f26d by 陈桂东

提交代码

parent 9c73eeea
......@@ -13,4 +13,23 @@ export interface WzcrkMxRefWzDto {
pzsl: number,
hwh: string,
crksl: number
}
/**
* 物资出入库详情
*/
export interface WzcrkDetailDto {
guid: string,
pzlx: string,
pzh: number,
rkkfdm: string,
kfdm: string,
pzszlx: string,
sfdw: string,
ydh: string,
dec: string,
fwgldwdm: string,
swgldwdm: string,
zmlx: string,
}
\ No newline at end of file
......@@ -13,8 +13,8 @@ export type ValuesBucket = {
*/
export default abstract class BaseTable<T> implements ITable {
protected readonly tableName;
private readonly dbName;
protected readonly futureDb: Promise<rdb.RdbStore>
private readonly dbName;
constructor(dbName: string, tableName: string) {
this.dbName = dbName;
......@@ -23,28 +23,6 @@ export default abstract class BaseTable<T> implements ITable {
}
/**
* 初始化数据库
*/
private async initDb(): Promise<rdb.RdbStore> {
Logger.info(this, '初始化数据库,[dbName=' + this.dbName + ',tableName=' + this.tableName + ']');
let db = await rdb.getRdbStore(getContext(this), {
name: this.dbName,
securityLevel: rdb.SecurityLevel.S4
})
Logger.info(this, "开始执行====")
await this.init(db);
Logger.info(this, "结束执行====")
return db;
}
/**
* 初始化数据表
*/
protected async init(db: rdb.RdbStore): Promise<void> {
return db.executeSql(this.getCreateTableSql())
}
/**
* 获取表名
*/
getTableName(): string {
......@@ -79,7 +57,6 @@ export default abstract class BaseTable<T> implements ITable {
})
}
/**
* 更新数据的bucket
*/
......@@ -90,7 +67,6 @@ export default abstract class BaseTable<T> implements ITable {
return bucket;
}
/**
* 清空表
*/
......@@ -149,7 +125,6 @@ export default abstract class BaseTable<T> implements ITable {
return Promise.resolve(1);
}
/**
* 删除数据
*/
......@@ -188,7 +163,7 @@ export default abstract class BaseTable<T> implements ITable {
* @param predicates 默认不填,根据主键更新,否则依据[predicates]更新
*/
async update(item: T, predicates?: rdb.RdbPredicates): Promise<number> {
try{
try {
let bucket = {};
Logger.info(this, '更新数据,item=' + JSON.stringify(item));
this.toUpdateBucket(bucket, item);
......@@ -199,7 +174,7 @@ export default abstract class BaseTable<T> implements ITable {
predicates = this.getPredicates().equalTo(this.getColumnId(), this.getEntityId(item));
}
return db.update(bucket, predicates);
}catch (e){
} catch (e) {
throw new Error('[数据更新失败]|异常信息>>' + e)
}
......@@ -240,7 +215,6 @@ export default abstract class BaseTable<T> implements ITable {
return items;
}
/**
* 创建表的SQL语句
*/
......@@ -265,4 +239,26 @@ export default abstract class BaseTable<T> implements ITable {
* 结果集转对象
*/
abstract toBean(cursor: rdb.ResultSet): T;
/**
* 初始化数据表
*/
protected async init(db: rdb.RdbStore): Promise<void> {
return db.executeSql(this.getCreateTableSql())
}
/**
* 初始化数据库
*/
private async initDb(): Promise<rdb.RdbStore> {
Logger.info(this, '初始化数据库,[dbName=' + this.dbName + ',tableName=' + this.tableName + ']');
let db = await rdb.getRdbStore(getContext(this), {
name: this.dbName,
securityLevel: rdb.SecurityLevel.S1
})
Logger.info(this, "开始执行====")
await this.init(db);
Logger.info(this, "结束执行====")
return db;
}
}
\ No newline at end of file
import relationalStore from '@ohos.data.relationalStore';
import { WzcrkDetailDto } from '../../bean/dto/WzcrkMxRefWzDto';
import { Wzcrk } from '../../entity/Wzcrk';
import { Wzcrkmx } from '../../entity/Wzcrkmx';
import { Logger } from '../../utils/Logger';
......@@ -92,6 +93,49 @@ export class WzcrkDao extends BaseTable<Wzcrk> {
return this.update(item, predicates)
}
// 物资出入库详情表单
async queryByCrkDetailGuid(wzcrkguid: string): Promise<WzcrkDetailDto[]> {
Logger.info(this, 'wzcrkguidwzcrkguid' + JSON.stringify(wzcrkguid))
try {
let val_sql = NativeSql.getSqlByCrkDetail(wzcrkguid);
let db = await this.futureDb;
let rs = await db.querySql(val_sql);
let items = []
if (rs.goToFirstRow()) {
do {
items.push(this.toWzcrkRefWz(rs))
} while (rs.goToNextRow())
}
Logger.info(this, 'queryAll items=' + JSON.stringify(items))
return items;
} catch (e) {
throw new Error('[查询异常]|' + e)
}
}
/**
* 物资出入库详情表单
*/
toWzcrkRefWz(cursor: relationalStore.ResultSet): WzcrkDetailDto {
let info: WzcrkDetailDto = {
guid: cursor.getString(cursor.getColumnIndex('guid')),
pzlx: cursor.getString(cursor.getColumnIndex('pzlx')),
pzh: cursor.getLong(cursor.getColumnIndex('pzh')),
rkkfdm: cursor.getString(cursor.getColumnIndex('rkkfdm')),
kfdm: cursor.getString(cursor.getColumnIndex('kfdm')),
pzszlx: cursor.getString(cursor.getColumnIndex('pzszlx')),
ydh: cursor.getString(cursor.getColumnIndex('ydh')),
dec: cursor.getString(cursor.getColumnIndex('dec')),
fwgldwdm: cursor.getString(cursor.getColumnIndex('fwgldwdm')),
swgldwdm: cursor.getString(cursor.getColumnIndex('swgldwdm')),
zmlx: cursor.getString(cursor.getColumnIndex('zmlx')),
sfdw: cursor.getString(cursor.getColumnIndex('sfdw'))
};
return info;
}
/**
* 更新单据状态
*/
......@@ -122,10 +166,10 @@ export class WzcrkDao extends BaseTable<Wzcrk> {
}
async updateWcztBySql(sql) {
Logger.info("执行的sql>>" ,sql)
Logger.info("执行的sql>>", sql)
let db = await this.futureDb;
return await db.executeSql(sql);
}
}
async getWzcrk(data: Partial<Wzcrk>): Promise<Wzcrk[]> {
let wp = this.getPredicates();
......
......@@ -4,7 +4,7 @@ import BaseTable, { ValueType } from '../BaseTable';
import { Table } from '../decorator/Decorators';
import { Logger } from '../../utils/Logger';
import { NativeSql } from '../sql/NativeSql';
import { WzcrkMxRefWzDto } from '../../bean/dto/WzcrkMxRefWzDto';
import { WzcrkDetailDto, WzcrkMxRefWzDto } from '../../bean/dto/WzcrkMxRefWzDto';
import { RecommendHwDto } from '../../bean/dto/RecommendHwDto.ts';
......@@ -156,9 +156,9 @@ export class WzcrkmxDao extends BaseTable<Wzcrkmx> {
const valueBucket = {};
for (const [key, value] of Object.entries(data)) {
if(value) {
valueBucket[key] = value
}
if (value) {
valueBucket[key] = value
}
}
let wp = this.getPredicates()
......@@ -175,11 +175,8 @@ export class WzcrkmxDao extends BaseTable<Wzcrkmx> {
async queryByCrkGuid(wzcrkguid: string, wzpm?: string): Promise<WzcrkMxRefWzDto[]> {
try {
let val_sql = NativeSql.getSqlByCrkmx(wzcrkguid, wzpm);
Logger.info(this, '查询SQL语句=' + val_sql)
let db = await this.futureDb;
Logger.info(this, '查询SQL语句开始1')
let rs = await db.querySql(val_sql);
Logger.info(this, '查询SQL语句开始2')
let items = []
if (rs.goToFirstRow()) {
do {
......@@ -193,6 +190,7 @@ export class WzcrkmxDao extends BaseTable<Wzcrkmx> {
}
}
/**
* 物资出入库明细转换
*/
......@@ -244,5 +242,4 @@ export class WzcrkmxDao extends BaseTable<Wzcrkmx> {
};
return info;
}
}
\ No newline at end of file
......@@ -15,6 +15,23 @@ export class NativeSql {
return sql_val;
}
/**
* 获取物资出入库详情
* @param wzcrkguid 出入库主键
*
*/
static getSqlByCrkDetail(wzcrkguid: string): string {
let sql_val = `
select crk.pzlx pzlx,crk.guid, crk.pzh pzh, rk.kfdm rkkfdm, ck.kfdm kfdm, crk.pzszlx pzszlx, crk.sfdw sfdw, crk.ydh ydh,crk.dec dec, crk.fwgldwdm fwgldwdm, crk.swgldwdm swgldwdm, crk.zmlx zmlx
from tab_bzgl_knzy_app_wzcrk crk
left join
TAB_BZGL_KNZY_APP_DWKF ck
on ck.KFDM = crk.kfdm
left join TAB_BZGL_KNZY_APP_DWKF rk
on rk.KFDM = crk.rkkfdm
where crk.guid = '${wzcrkguid}'`;
return sql_val;
}
/**
......@@ -30,8 +47,8 @@ export class NativeSql {
LEFT JOIN TAB_BZGL_KNZY_APP_HJB hj ON tjhw.hjguid = hj.guid
LEFT JOIN TAB_BZGL_KNZY_APP_QYB qy ON hj.qyguid = qy.guid
WHERE
tjhw.pmguid =${ pmguid }
AND qy.kfguid IN ( SELECT guid FROM TAB_BZGL_KNZY_APP_DWKF WHERE kfdm = ${ kfdm } )`
tjhw.pmguid =${pmguid}
AND qy.kfguid IN ( SELECT guid FROM TAB_BZGL_KNZY_APP_DWKF WHERE kfdm = ${kfdm} )`
return sql_val
}
......
......@@ -2,6 +2,7 @@ import { WzcrkDao, Wzcrk, SQLiteContext } from '@ohos/common'
import { uuid } from '@ohos/common/src/main/ets/utils/util';
import wzcrkmxModel from './WzcrkmxModel';
import { Logger } from '@ohos/common/src/main/ets/utils/Logger';
import { WzcrkDetailDto } from '@ohos/common/src/main/ets/bean/dto/WzcrkMxRefWzDto';
// 物资出库入库
class WzcrkModel {
......@@ -65,6 +66,12 @@ class WzcrkModel {
return res;
}
/*获取物资出入库详情表单*/
async queryByCrkDetailGuid(guid: string): Promise<WzcrkDetailDto[]> {
let res = await SQLiteContext.with(WzcrkDao).queryByCrkDetailGuid(guid);
return res;
}
async updateWzcrkWczt(guid: string, wczt: string): Promise<number> {
let res = await SQLiteContext.with(WzcrkDao).updateWczt(guid, wczt)
return res;
......
import { WzcrkmxDao, WzcrkDao, Wzcrk, Wzcrkmx, SQLiteContext, Logger } from '@ohos/common'
import { Logger, SQLiteContext, Wzcrk, WzcrkDao, Wzcrkmx, WzcrkmxDao } from '@ohos/common'
import { WzcrkMxRefWzDto } from '@ohos/common/src/main/ets/bean/dto/WzcrkMxRefWzDto'
// 物资出库入库
......@@ -9,34 +9,38 @@ class WzcrkmxModel {
}
// 单条添加
async setInsert(data: Wzcrkmx) {
let res= await SQLiteContext.with(WzcrkmxDao).insert(data)
console.log("插入成功===》"+JSON.stringify(res))
let res = await SQLiteContext.with(WzcrkmxDao).insert(data)
console.log("插入成功===》" + JSON.stringify(res))
}
// 查询
async query(wzcrkguid?: string,pmdmcode?: string): Promise<WzcrkMxRefWzDto[]> {
let res = await SQLiteContext.with(WzcrkmxDao).queryByCrkGuid(wzcrkguid,pmdmcode)
async query(wzcrkguid?: string, pmdmcode?: string): Promise<WzcrkMxRefWzDto[]> {
let res = await SQLiteContext.with(WzcrkmxDao).queryByCrkGuid(wzcrkguid, pmdmcode)
return res;
}
async queryMX(wzcrkguid?: string,pmdmcode?: string): Promise<Wzcrkmx[]> {
let res = await SQLiteContext.with(WzcrkmxDao).getWzcrkmx(wzcrkguid,pmdmcode)
async queryMX(wzcrkguid?: string, pmdmcode?: string): Promise<Wzcrkmx[]> {
let res = await SQLiteContext.with(WzcrkmxDao).getWzcrkmx(wzcrkguid, pmdmcode)
return res;
}
async updateCrkMX(guid: string, hwh: string,crksl?:string):Promise<number> {
let res = await SQLiteContext.with(WzcrkmxDao).updateCrkMx(guid, hwh,crksl)
console.log("更新成功===》"+JSON.stringify(res))
async updateCrkMX(guid: string, hwh: string, crksl?: string): Promise<number> {
let res = await SQLiteContext.with(WzcrkmxDao).updateCrkMx(guid, hwh, crksl)
console.log("更新成功===》" + JSON.stringify(res))
return res;
}
// 更新单据信息
async updateWcztmxByData(guid:string,data: Partial<Wzcrkmx>):Promise<number> {
async updateWcztmxByData(guid: string, data: Partial<Wzcrkmx>): Promise<number> {
let res = await SQLiteContext.with(WzcrkmxDao).updateWcztmxByData(guid, data)
return res;
}
// 更新单据信息
async updateWcztBySql(guid?:string, crksl?:number){
async updateWcztBySql(guid?: string, crksl?: number) {
// const tableName = SQLiteContext.with(WzcrkmxDao).getTableName()
// const sql = `update ${tableName} set crksl = ${crksl} where guid = ${guid}`
const sql = `update TAB_BZGL_KNZY_APP_WZCRKMX set crksl = ${crksl} where guid = ${guid}`
Logger.info('splsplspl>>',sql)
Logger.info('splsplspl>>', sql)
return await SQLiteContext.with(WzcrkmxDao).updateWcztBySql(sql)
}
// 获取推荐货位
......@@ -49,6 +53,7 @@ class WzcrkmxModel {
await SQLiteContext.with(WzcrkmxDao).clearTable()
}
}
const wzcrkmxModel = new WzcrkmxModel()
export default wzcrkmxModel
\ No newline at end of file
......@@ -24,10 +24,8 @@ import wzcrkmxModel from '../../../model/WzcrkmxModel';
}
@Component
@Entry
// 物资信息
export struct WzInfo {
private searchcontroller: SearchController = new SearchController()
@State currentHwh: string = '' // 当前货位
@State pageType: string = "" //当前凭证的类型
@State currentModel: boolean = false //倒出:true/倒入:false
......@@ -42,13 +40,25 @@ export struct WzInfo {
@State wzmx: WzmxClass[] = []
@ObjectLink wzcrk: WzClass
getDetail: (wzpm?: string) => void
scanInfoDialog: CustomDialogController = new CustomDialogController({
builder: WzScanInfoDialog({
container: this.container,
defaultHwh: $defaultHwh,
pageType: $pageType,
currentHwh: $currentHwh,
currentWZInfo: $currentWZInfo
}),
autoCancel: false,
alignment: DialogAlignment.Top,
customStyle: true
})
private searchcontroller: SearchController = new SearchController()
// 在自定义组件即将析构销毁时将dialogController置空
aboutToDisappear() {
this.scanInfoDialog = undefined // 将dialogController置空
}
@Builder container() {
Column() {
Flex({ justifyContent: FlexAlign.SpaceBetween }) {
......@@ -116,20 +126,6 @@ export struct WzInfo {
}
}
scanInfoDialog: CustomDialogController = new CustomDialogController({
builder: WzScanInfoDialog({
container: this.container,
defaultHwh: $defaultHwh,
pageType: $pageType,
currentHwh: $currentHwh,
currentWZInfo: $currentWZInfo
}),
autoCancel: false,
alignment: DialogAlignment.Top,
customStyle: true
})
// 页面初始化
aboutToAppear() {
this.getData()
......
......@@ -9,7 +9,7 @@ import { WzClass, WzmxClass } from '../../Common/Wzcrk.data';
import promptAction from '@ohos.promptAction';
import wzcrkModel from '../../../../model/WzcrkModel';
import { SQLiteContext, Wzcrkmx, WzcrkmxDao } from '@ohos/common';
import {AddWzin} from './AddWzin'
import { AddWzin } from './AddWzin'
import { uuid } from '@ohos/common/src/main/ets/utils/util';
import IdentifyService from '../../../../identify/IdentifySerivce'
import emitter from '@ohos.events.emitter';
......@@ -38,23 +38,30 @@ struct WzinDetail {
@State isUpdate: boolean = false
@State wzcrk: WzClass = null // 物资出入库单据信息
@State wzmx: WzmxClass[] = [] // 物资出入库明细
private controller: TabsController = new TabsController()
wzcrkmxDao: WzcrkmxDao = SQLiteContext.with(WzcrkmxDao)
private controller: TabsController = new TabsController()
onPageShow() {
const params = router.getParams() as params
this.isUpdate = params.isUpdate
this.wzcrk = new WzClass(params.wzcrk)
Logger.info('接收到出入库信息>>', JSON.stringify(params.wzcrk))
this.getDetail()
if (this.isUpdate) {
this.getWzFormDetail()
}
this.getWzmxList()
this.scanCodeListen()
IdentifyService.openScanPort()
}
// 获取凭证信息
async getDetail(wzpm?) {
// 获取物资表单详情
async getWzFormDetail() {
Logger.info('获取物资表单详情>>', JSON.stringify(this.wzcrk.guid))
const res = await wzcrkModel.queryByCrkDetailGuid(this.wzcrk.guid)
Logger.info('获取到物资出入库表单>>', JSON.stringify(res))
}
// 获取物资列表详情信息
async getWzmxList(wzpm?) {
this.wzmx = []
const res = await wzcrkmxModel.query(this.wzcrk.guid, wzpm)
res.forEach(i => {
......@@ -86,7 +93,7 @@ struct WzinDetail {
TabContent() {
Column() {
if(this.isUpdate) {
if (this.isUpdate) {
PzInfo({ wzcrk: this.wzcrk })
} else {
AddWzin({ wzcrk: this.wzcrk })
......@@ -97,7 +104,7 @@ struct WzinDetail {
TabContent() {
Column() {
WzInfo({ wzmx: this.wzmx, wzcrk: this.wzcrk, getDetail: this.getDetail, pageType: "入库" })
WzInfo({ wzmx: this.wzmx, wzcrk: this.wzcrk, getDetail: this.getWzmxList, pageType: "入库" })
}.width("100%")
}.tabBar(this.TabBuilder(1, '物资信息'))
}
......@@ -118,7 +125,7 @@ struct WzinDetail {
try {
Logger.info('保存的入库明细数据>>', JSON.stringify(this.wzmx))
if(this.isUpdate) {
if (this.isUpdate) {
const crksl = this.wzmx.map(v => Number(v.crksl)).reduce((a, b) => a + b, 0)
await wzcrkModel.updateWcztByData(this.wzcrk.guid, {
dec: this.wzcrk.dec,
......@@ -129,7 +136,7 @@ struct WzinDetail {
for (let index = 0; index < this.wzmx.length; index++) {
const element = this.wzmx[index];
try {
let val1 = await wzcrkmxModel.updateWcztmxByData(element.guid, {crksl:element.crksl})
let val1 = await wzcrkmxModel.updateWcztmxByData(element.guid, { crksl: element.crksl })
} catch (e) {
Logger.error(this, '保存失败了>>' + JSON.stringify(e))
}
......@@ -162,8 +169,8 @@ struct WzinDetail {
}.width("100%")
}.onKeyEvent((e: globalThis.KeyEvent) => {
console.error('keycode====》:' + e.keyCode)
if (this.currentIndex==1&&(e.keyCode == 2096 || e.keyCode == 2093)) {
if(e.type==1){
if (this.currentIndex == 1 && (e.keyCode == 2096 || e.keyCode == 2093)) {
if (e.type == 1) {
IdentifyService.openScan()
}
}
......@@ -174,6 +181,7 @@ struct WzinDetail {
colors: [[0x36a3c0, 0.0], [0x97c6a6, 1], [0xc7d799, 0.0]] // 数组末尾元素占比小于1时满足重复着色效果
})
}
scanCodeListen() {
var innerEvent = { eventId: 2 }
emitter.on(innerEvent, (eventData) => {
......
......@@ -39,7 +39,7 @@ export struct Pack {
@State ddh: string = ''
@State bgzt: string = ''
onPageShow() {
aboutToAppear() {
let params = router.getParams() as Type;
this.type = params.type
......
......@@ -99,7 +99,8 @@ export struct BasicInfoModal {
Row() {
Text('*').fontColor('red')
Text('单位代码:').width('30%')
TextInput({ placeholder: "请输入单位代码", text: this.dwguid }).width('60%')
TextInput({ placeholder: "请输入单位代码", text: this.dwguid })
.width('60%')
.borderRadius(6)
.borderColor('#bcc5d7')
.borderWidth(1)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论