Commit 0919e842 by 毛勇泽

Merge remote-tracking branch 'origin/master'

parents 75d4e02c f7a8f5b4
...@@ -8,4 +8,45 @@ export interface RecommendHwDto { ...@@ -8,4 +8,45 @@ export interface RecommendHwDto {
pmguid: string, pmguid: string,
hwguid: string, hwguid: string,
hwh: string, hwh: string,
}
/**
* 验证当前货位在本方库
*/
export interface TestHwWzDto {
guid: string,
hwh: string,
pmdmcode: string,
hwsl: string,
hjguid: string,
hwzt: string,
hwxgsj: string,
gldwguid: string,
kfguid: string,
zmlx: string,
kfdm: string
}
export interface PzMxItemDto {
guid: string,
gznd: string,
pmdmcode: string,
pzsl: string,
crksl: string,
wzcrkguid: string,
hwh: string,
pzmxguid: string
}
export interface CommonHxPzMxDto {
wzpm: string,
pmdmsix: string,
pmdmcode: string,
hxmc: string,
pzsl: string,
crksl: string,
hwh: string,
mxguid: string,
pzmxguid: string
} }
\ No newline at end of file
...@@ -32,4 +32,21 @@ export interface WzcrkDetailDto { ...@@ -32,4 +32,21 @@ export interface WzcrkDetailDto {
fwgldwdm: string, fwgldwdm: string,
swgldwdm: string, swgldwdm: string,
zmlx: string, zmlx: string,
} hwh?: string
\ No newline at end of file }
/**
* 货架号
*/
export interface HjListDto {
guid: string,
hjh: string,
hjmc: string,
hjcs: number,
mchws: number,
hjrl: number,
hjbz: string,
qyguid: string,
qymc: string,
kfmc: string,
}
...@@ -46,10 +46,11 @@ export class GldwDao extends BaseTable<Gldw> { ...@@ -46,10 +46,11 @@ export class GldwDao extends BaseTable<Gldw> {
*/ */
getGldwList(offset: number, dwmc?: string): Promise<Gldw[]> { getGldwList(offset: number, dwmc?: string): Promise<Gldw[]> {
let wp = this.getPredicates(); let wp = this.getPredicates();
wp.orderByAsc('DWDM').offsetAs(offset).limitAs(20);
if (dwmc) { if (dwmc) {
wp.like('DWFH', `%${dwmc}%`) wp.like('DWFH', `%${dwmc}%`)
// wp.equalTo('DWFH', dwmc)
} }
wp.orderByAsc('DWDM').offsetAs(offset).limitAs(20);
return this.query(wp, this.getTableColumns()); return this.query(wp, this.getTableColumns());
} }
......
import relationalStore from '@ohos.data.relationalStore'; import relationalStore from '@ohos.data.relationalStore';
import { HjListDto, WzcrkMxRefWzDto } from '../../bean/dto/WzcrkMxRefWzDto';
import { HjInfo } from '../../entity/HjInfo'; import { HjInfo } from '../../entity/HjInfo';
import BaseTable, { ValueType } from '../BaseTable'; import BaseTable, { ValueType } from '../BaseTable';
import { Table } from '../decorator/Decorators'; import { Table } from '../decorator/Decorators';
...@@ -40,12 +41,39 @@ export class HjInfoDao extends BaseTable<HjInfo> { ...@@ -40,12 +41,39 @@ export class HjInfoDao extends BaseTable<HjInfo> {
return NativeSql.getHjInfoTable(); return NativeSql.getHjInfoTable();
} }
async getHjList(no: string): Promise<HjInfo[]> { async getHjList(hjh: string): Promise<HjListDto[]> {
let wp = this.getPredicates(); try {
if (no) { let val_sql = NativeSql.getHjListSql(hjh);
wp.equalTo('HJH', no); 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())
}
return items;
} catch (e) {
throw new Error('[查询异常]|' + e)
} }
wp.orderByAsc('HJH');
return this.query(wp, this.getTableColumns())
} }
} /**
\ No newline at end of file * 物资出入库明细转换
*/
toWzcrkRefWz(cursor: relationalStore.ResultSet): HjListDto {
let info: HjListDto = {
guid: cursor.getString(cursor.getColumnIndex('guid')),
hjh: cursor.getString(cursor.getColumnIndex('hjh')),
hjmc: cursor.getString(cursor.getColumnIndex('hjmc')),
mchws: cursor.getLong(cursor.getColumnIndex('mchws')),
hjrl: cursor.getLong(cursor.getColumnIndex('hjrl')),
hjcs: cursor.getLong(cursor.getColumnIndex('hjcs')),
hjbz: cursor.getString(cursor.getColumnIndex('hjbz')),
qyguid: cursor.getString(cursor.getColumnIndex('qyguid')),
qymc: cursor.getString(cursor.getColumnIndex('qymc')),
kfmc: cursor.getString(cursor.getColumnIndex('kfmc')),
};
return info;
}
}
...@@ -45,11 +45,17 @@ export class KfInfoDao extends BaseTable<KfInfo> { ...@@ -45,11 +45,17 @@ export class KfInfoDao extends BaseTable<KfInfo> {
let wp = this.getPredicates(); let wp = this.getPredicates();
for (const [key, value] of Object.entries(data)) { for (const [key, value] of Object.entries(data)) {
if(value) { if (value) {
wp.equalTo(key, value) wp.equalTo(key, value)
} }
} }
wp.orderByAsc("KFDM"); wp.orderByAsc("KFDM");
return this.query(wp, this.getTableColumns()); return this.query(wp, this.getTableColumns());
} }
async updateDefault(guid) {
let db = await this.futureDb;
await db.executeSql(`update ${this.getTableName()} set isDefault = '0'`);
await db.executeSql(`update ${this.getTableName()} set isDefault = '1' where guid = '${guid}'`);
}
} }
\ No newline at end of file
...@@ -99,6 +99,7 @@ export class WzcrkDao extends BaseTable<Wzcrk> { ...@@ -99,6 +99,7 @@ export class WzcrkDao extends BaseTable<Wzcrk> {
Logger.info(this, 'wzcrkguidwzcrkguid' + JSON.stringify(wzcrkguid)) Logger.info(this, 'wzcrkguidwzcrkguid' + JSON.stringify(wzcrkguid))
try { try {
let val_sql = NativeSql.getSqlByCrkDetail(wzcrkguid); let val_sql = NativeSql.getSqlByCrkDetail(wzcrkguid);
Logger.info(this, val_sql)
let db = await this.futureDb; let db = await this.futureDb;
let rs = await db.querySql(val_sql); let rs = await db.querySql(val_sql);
let items = [] let items = []
......
...@@ -5,7 +5,7 @@ import { Table } from '../decorator/Decorators'; ...@@ -5,7 +5,7 @@ import { Table } from '../decorator/Decorators';
import { Logger } from '../../utils/Logger'; import { Logger } from '../../utils/Logger';
import { NativeSql } from '../sql/NativeSql'; import { NativeSql } from '../sql/NativeSql';
import { WzcrkDetailDto, WzcrkMxRefWzDto } from '../../bean/dto/WzcrkMxRefWzDto'; import { WzcrkDetailDto, WzcrkMxRefWzDto } from '../../bean/dto/WzcrkMxRefWzDto';
import { RecommendHwDto } from '../../bean/dto/RecommendHwDto.ts'; import { CommonHxPzMxDto, PzMxItemDto, RecommendHwDto, TestHwWzDto } from '../../bean/dto/RecommendHwDto.ts';
/** /**
...@@ -234,12 +234,147 @@ export class WzcrkmxDao extends BaseTable<Wzcrkmx> { ...@@ -234,12 +234,147 @@ export class WzcrkmxDao extends BaseTable<Wzcrkmx> {
*/ */
toRecommendHwDto(cursor: relationalStore.ResultSet): RecommendHwDto { toRecommendHwDto(cursor: relationalStore.ResultSet): RecommendHwDto {
let info: RecommendHwDto = { let info: RecommendHwDto = {
guid: cursor.getString(cursor.getColumnIndex('GUID')),
hjguid: cursor.getString(cursor.getColumnIndex('HJGUID')),
pmguid: cursor.getString(cursor.getColumnIndex('PMGUID')),
hwguid: cursor.getString(cursor.getColumnIndex('HWGUID')),
hwh: cursor.getString(cursor.getColumnIndex('HWH'))
};
return info;
}
async testHwWz(kfdm, hjguid, hwh): Promise<TestHwWzDto[]> {
try {
let val_sql = NativeSql.testHwWzSql(kfdm, hjguid, hwh);
let db = await this.futureDb;
let rs = await db.querySql(val_sql);
let items = []
if (rs.goToFirstRow()) {
do {
items.push(this.toTestHwWzDto(rs))
} while (rs.goToNextRow())
}
Logger.info(this, 'queryAll items=' + JSON.stringify(items))
return items;
} catch (e) {
throw new Error('[查询异常]|' + e)
}
}
/**
* 验证当前货位在本方库转换
*/
toTestHwWzDto(cursor: relationalStore.ResultSet): TestHwWzDto {
let info: TestHwWzDto = {
guid: cursor.getString(cursor.getColumnIndex('guid')), guid: cursor.getString(cursor.getColumnIndex('guid')),
hwh: cursor.getString(cursor.getColumnIndex('hwh')),
pmdmcode: cursor.getString(cursor.getColumnIndex('pmdmcode')),
hwsl: cursor.getString(cursor.getColumnIndex('hwsl')),
hjguid: cursor.getString(cursor.getColumnIndex('hjguid')), hjguid: cursor.getString(cursor.getColumnIndex('hjguid')),
pmguid: cursor.getString(cursor.getColumnIndex('pmguid')), hwzt: cursor.getString(cursor.getColumnIndex('hwzt')),
hwguid: cursor.getString(cursor.getColumnIndex('hwguid')), hwxgsj: cursor.getString(cursor.getColumnIndex('hwxgsj')),
hwh: cursor.getString(cursor.getColumnIndex('hwh')) gldwguid: cursor.getString(cursor.getColumnIndex('gldwguid')),
kfguid: cursor.getString(cursor.getColumnIndex('kfguid')),
zmlx: cursor.getString(cursor.getColumnIndex('zmlx')),
kfdm: cursor.getString(cursor.getColumnIndex('kfdm'))
}; };
return info; return info;
} }
async getPzMxItem(params, isPmSix): Promise<PzMxItemDto[]> {
try {
let val_sql = NativeSql.getPzMxItemSql(params, isPmSix);
let db = await this.futureDb;
let rs = await db.querySql(val_sql);
let items = []
if (rs.goToFirstRow()) {
do {
items.push(this.toPzMxItemDto(rs))
} while (rs.goToNextRow())
}
Logger.info(this, 'queryAll items=' + JSON.stringify(items))
return items;
} catch (e) {
throw new Error('[查询异常]|' + e)
}
}
/**
* 验证当前货位在本方库转换
*/
toPzMxItemDto(cursor: relationalStore.ResultSet): PzMxItemDto {
let info: PzMxItemDto = {
guid: cursor.getString(cursor.getColumnIndex('guid')),
gznd: cursor.getString(cursor.getColumnIndex('gznd')),
pmdmcode: cursor.getString(cursor.getColumnIndex('pmdmcode')),
pzsl: cursor.getString(cursor.getColumnIndex('pzsl')),
crksl: cursor.getString(cursor.getColumnIndex('crksl')),
wzcrkguid: cursor.getString(cursor.getColumnIndex('wzcrkguid')),
hwh: cursor.getString(cursor.getColumnIndex('hwh')),
pzmxguid: cursor.getString(cursor.getColumnIndex('pzmxguid'))
};
return info;
}
async getCommonHxPzMx(params): Promise<CommonHxPzMxDto[]> {
try {
let val_sql = NativeSql.getCommonHxPzMxSql(params);
let db = await this.futureDb;
let rs = await db.querySql(val_sql);
let items = []
if (rs.goToFirstRow()) {
do {
items.push(this.toCommonHxPzMx(rs))
} while (rs.goToNextRow())
}
Logger.info(this, 'queryAll items=' + JSON.stringify(items))
return items;
} catch (e) {
throw new Error('[查询异常]|' + e)
}
}
toCommonHxPzMx(cursor: relationalStore.ResultSet): CommonHxPzMxDto {
let info: CommonHxPzMxDto = {
wzpm: cursor.getString(cursor.getColumnIndex('wzpm')),
pmdmsix: cursor.getString(cursor.getColumnIndex('pmdmsix')),
pmdmcode: cursor.getString(cursor.getColumnIndex('pmdmcode')),
hxmc: cursor.getString(cursor.getColumnIndex('hxmc')),
pzsl: cursor.getString(cursor.getColumnIndex('pzsl')),
crksl: cursor.getString(cursor.getColumnIndex('crksl')),
hwh: cursor.getString(cursor.getColumnIndex('hwh')),
mxguid: cursor.getString(cursor.getColumnIndex('mxguid')),
pzmxguid: cursor.getString(cursor.getColumnIndex('pzmxguid'))
};
return info;
}
async insertWz(params) {
try {
let val_sql = NativeSql.insertWzSql(params)
let db = await this.futureDb;
let rs = await db.querySql(val_sql);
return rs;
} catch (e) {
throw new Error('[插入异常]|' + e)
}
}
async updateWzmx(params): Promise<number> {
try {
let valueBucket = {
hwh: params.hwh,
crksl: params.crksl
}
let wp = this.getPredicates()
wp.equalTo('guid', params.mxguid)
return this.updateData(valueBucket, wp)
} catch (e) {
throw new Error('[更新异常]|' + e)
}
}
} }
\ No newline at end of file
import { uuid } from '../../utils/util';
export class NativeSql { export class NativeSql {
/** /**
* 构建出入库明细查询语句 * 构建出入库明细查询语句
...@@ -21,15 +22,26 @@ export class NativeSql { ...@@ -21,15 +22,26 @@ export class NativeSql {
* *
*/ */
static getSqlByCrkDetail(wzcrkguid: string): string { static getSqlByCrkDetail(wzcrkguid: string): string {
let sql_val = ` // 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 }'`
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 let sql_val = `SELECT
from tab_bzgl_knzy_app_wzcrk crk crk.pzlx pzlx,
left join crk.guid,
TAB_BZGL_KNZY_APP_DWKF ck crk.pzh pzh,
on ck.KFDM = crk.kfdm rk.kfdm rkkfdm,
left join TAB_BZGL_KNZY_APP_DWKF rk ck.kfdm kfdm,
on rk.KFDM = crk.rkkfdm crk.pzszlx pzszlx,
where crk.guid = '${wzcrkguid}'`; 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; return sql_val;
} }
...@@ -40,18 +52,60 @@ export class NativeSql { ...@@ -40,18 +52,60 @@ export class NativeSql {
* @param kfdm 库房代码 * @param kfdm 库房代码
*/ */
static getRecommendHwSql(pmguid, kfdm): string { static getRecommendHwSql(pmguid, kfdm): string {
let sql_val = `SELECT tjhw.*, hw.hwh let sql_val = `SELECT tjhw.*,hw.hwh from HW_PROJECT_TABLE tjhw left join tab_bzgl_knzy_app_hwb hw on tjhw.hwguid = hw.guid 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}' )`
return sql_val
}
/**
* 验证当前货位在本方库
*/
static testHwWzSql(kfdm, hjguid, hwh): string {
let sql_val = `SELECT
*
FROM
(
SELECT
hw.*,
qy.kfdm kfdm
FROM FROM
HW_PROJECT_TABLE tjhw tab_bzgl_knzy_app_hwb hw
LEFT JOIN tab_bzgl_knzy_app_hwb hw ON tjhw.hwguid = hw.guid LEFT JOIN tab_bzgl_knzy_app_hjb hj ON hj.guid = hw.hjguid
LEFT JOIN TAB_BZGL_KNZY_APP_HJB hj ON tjhw.hjguid = hj.guid LEFT JOIN tab_bzgl_knzy_app_qyb qy ON qy.guid = hj.qyguid
LEFT JOIN TAB_BZGL_KNZY_APP_QYB qy ON hj.qyguid = qy.guid )
WHERE WHERE
tjhw.pmguid =${pmguid} kfdm = '${kfdm}'
AND qy.kfguid IN ( SELECT guid FROM TAB_BZGL_KNZY_APP_DWKF WHERE kfdm = ${kfdm} )` AND hjguid = '${hjguid}'
AND hwh = '${hwh}'`
return sql_val return sql_val
} }
// 查询物资明细是否含有对应物资数据
static getPzMxItemSql(params, isPmSix): string {
if (isPmSix) {
return `select * from TAB_BZGL_KNZY_APP_WZCRKMX where wzcrkguid='${params.wzcrkguid}' and substr(PMDMCODE,1,6)='${params.pmdmcode}'`
} else {
return `select * from TAB_BZGL_KNZY_APP_WZCRKMX where wzcrkguid='${params.wzcrkguid}' and PMDMCODE='${params.pmdmcode}'`
}
}
// 查询同号型
static getCommonHxPzMxSql(params): string {
// pmdm前6位
return `select hx.wzpm wzpm, hx.pmdmsix pmdmsix,hx.pmdmten pmdmcode, hx.hxmc hxmc, mx.pzsl pzsl, mx.crksl crksl, mx.hwh hwh, mx.guid mxguid,mx.pzmxguid pzmxguid from tab_bzgl_knzy_app_wzcrk crk left join tab_bzgl_knzy_app_wzcrkmx mx on crk.GUID = mx.wzcrkguid left join tab_xtwh_jcsj_bzhx hx on mx.pmdmcode = hx.pmdmten where crk.guid = '${(params.guid)}' and hx.PMDMSIX= '${(params.pmdm)}' order by hx.PMDMSIX, hx.XH`
}
// 出入盘库
// 入库修改
static updateWzmxSql(params): string {
return `update tab_bzgl_knzy_app_wzcrkmx set crksl = '${params.crksl}' , hwh = '${params.hwh}' where guid = '${params.mxguid}'`
}
// 不存在物资,进行物资新增
static insertWzSql(params): string {
const sql =
`insert into tab_bzgl_knzy_app_hwb (guid, hwh, pmdmcode, hwsl, hjguid, hwzt) values ('${params.guid}', '${params.hwh}', '${params.pmdmcode}', '${params.hwsl}', '${params.hjguid}','11111111SF1')`
return sql
}
/** /**
* 包裹管理表 * 包裹管理表
...@@ -99,6 +153,26 @@ export class NativeSql { ...@@ -99,6 +153,26 @@ export class NativeSql {
return bzhx_sql; return bzhx_sql;
} }
/**
* 获取货架的四级结构
* @param pmguid 品名主键
* @param kfdm 库房代码
*/
static getHjListSql(hjh): string {
let sql_val = `SELECT
jh.*,
qy.qymc,
kf.kfmc
FROM
TAB_BZGL_KNZY_APP_HJB jh
LEFT JOIN TAB_BZGL_KNZY_APP_QYB qy ON qy.guid = jh.qyguid
LEFT JOIN tab_bzgl_knzy_app_dwkf kf ON kf.guid = qy.kfguid`
if (hjh) {
sql_val += ` where hjh = '${hjh}'`
}
return sql_val
}
/** /**
* 导出记录表 * 导出记录表
......
import { KfInfoDao, SQLiteContext,KfInfo } from '@ohos/common' import { KfInfo, KfInfoDao, SQLiteContext } from '@ohos/common'
// 库房管理 // 库房管理
class KfModel { class KfModel {
// 添加库房 // 添加库房
async set(data: KfInfo[]) { async set(data: KfInfo[]) {
const copyData = data.map(v => {
return {
...v,
isdefault: "0"
}
})
await SQLiteContext.with(KfInfoDao).batchInsert(data) await SQLiteContext.with(KfInfoDao).batchInsert(data)
} }
...@@ -13,6 +19,11 @@ class KfModel { ...@@ -13,6 +19,11 @@ class KfModel {
return res; return res;
} }
// 设置推荐货位
async update(guid) {
let res = await SQLiteContext.with(KfInfoDao).updateDefault(guid)
}
// 清空表 // 清空表
async clear() { async clear() {
await SQLiteContext.with(KfInfoDao).clearTable() await SQLiteContext.with(KfInfoDao).clearTable()
......
...@@ -48,6 +48,27 @@ class WzcrkmxModel { ...@@ -48,6 +48,27 @@ class WzcrkmxModel {
let res = await SQLiteContext.with(WzcrkmxDao).queryRecommendHw(data.pmguid, data.kfdm) let res = await SQLiteContext.with(WzcrkmxDao).queryRecommendHw(data.pmguid, data.kfdm)
return res return res
} }
// 验证当前货位在本方库
async testHwWz(data) {
let res = await SQLiteContext.with(WzcrkmxDao).testHwWz(data.kfdm, data.hjguid, data.hwh)
return res
}
async getPzMxItem(params, isPmSix) {
let res = await SQLiteContext.with(WzcrkmxDao).getPzMxItem(params, isPmSix)
return res
}
async getCommonHxPzMx(params) {
let res = await SQLiteContext.with(WzcrkmxDao).getCommonHxPzMx(params)
return res
}
async insertWz(params) {
let res = await SQLiteContext.with(WzcrkmxDao).insertWz(params)
return res
}
async updateWzmx(params) {
let res = await SQLiteContext.with(WzcrkmxDao).updateWzmx(params)
return res
}
// 清空表 // 清空表
async clear() { async clear() {
await SQLiteContext.with(WzcrkmxDao).clearTable() await SQLiteContext.with(WzcrkmxDao).clearTable()
......
...@@ -5,17 +5,14 @@ import { DirectConnect } from '@ohos/direct'; ...@@ -5,17 +5,14 @@ import { DirectConnect } from '@ohos/direct';
import { MaterialManagement } from '@ohos/material'; import { MaterialManagement } from '@ohos/material';
import { PageManagement } from '@ohos/pagemanagement'; import { PageManagement } from '@ohos/pagemanagement';
import { SystemMaintenance } from '@ohos/system'; import { SystemMaintenance } from '@ohos/system';
import { import { BreakpointConstants, BreakpointSystem, Logger, StyleConstants } from '@ohos/common';
BreakpointSystem,
Logger,
StyleConstants,
BreakpointConstants
} from '@ohos/common';
@Entry @Entry
@Component @Component
struct MainPage { struct MainPage {
@StorageProp('currentBreakpoint') currentBreakpoint: string = 'sm'; @StorageProp('currentBreakpoint') currentBreakpoint: string = 'sm';
@StorageLink('IndexPage') currentPageIndex: number = 0; @StorageLink('IndexPage') currentPageIndex: number = 0;
@State index: number = 0;
private breakpointSystem = new BreakpointSystem(); private breakpointSystem = new BreakpointSystem();
aboutToAppear() { aboutToAppear() {
...@@ -46,7 +43,7 @@ struct MainPage { ...@@ -46,7 +43,7 @@ struct MainPage {
.tabBar(this.BottomNavigation(buttonInfo[PageConstants.NEW_PRODUCT_INDEX])) .tabBar(this.BottomNavigation(buttonInfo[PageConstants.NEW_PRODUCT_INDEX]))
TabContent() { TabContent() {
PageManagement() PageManagement({ currentPageIndex: this.index })
} }
.tabBar(this.BottomNavigation(buttonInfo[PageConstants.SHOP_CART_INDEX])) .tabBar(this.BottomNavigation(buttonInfo[PageConstants.SHOP_CART_INDEX]))
...@@ -63,6 +60,8 @@ struct MainPage { ...@@ -63,6 +60,8 @@ struct MainPage {
.scrollable(false) .scrollable(false)
.onChange((index: number) => { .onChange((index: number) => {
this.currentPageIndex = index; this.currentPageIndex = index;
this.index = index
// if (index === PageConstants.PERSONAL_INDEX) { // if (index === PageConstants.PERSONAL_INDEX) {
// this.queryShopCart(); // this.queryShopCart();
// } else if (index === PageConstants.PERSONAL_INDEX) { // } else if (index === PageConstants.PERSONAL_INDEX) {
......
...@@ -10,7 +10,6 @@ export struct WzScanInfoDialog { ...@@ -10,7 +10,6 @@ export struct WzScanInfoDialog {
@Link currentHwh: string @Link currentHwh: string
@Link currentWZInfo: Array<any> @Link currentWZInfo: Array<any>
handleDefaultHwDetail: () => void handleDefaultHwDetail: () => void
@BuilderParam container: () => void @BuilderParam container: () => void
// hwDetailDialog: CustomDialogController = new CustomDialogController({ // hwDetailDialog: CustomDialogController = new CustomDialogController({
...@@ -30,8 +29,8 @@ export struct WzScanInfoDialog { ...@@ -30,8 +29,8 @@ export struct WzScanInfoDialog {
build() { build() {
Column() { Column() {
Flex({ justifyContent: FlexAlign.SpaceBetween }) { Flex({ justifyContent: FlexAlign.SpaceBetween }) {
DividerTitle({title: "扫描信息"}) DividerTitle({ title: "扫描信息" })
.padding({ top: 10, bottom: 10 }) .padding({ top: 10, bottom: 10 })
Image($rawfile('scan/close.png')) Image($rawfile('scan/close.png'))
.width(28) .width(28)
.height(28) .height(28)
...@@ -50,7 +49,7 @@ export struct WzScanInfoDialog { ...@@ -50,7 +49,7 @@ export struct WzScanInfoDialog {
}) })
}.padding(15) }.padding(15)
} }
.margin({top: 80}) .margin({ top: 80 })
.width('100%') .width('100%')
.borderRadius(5) .borderRadius(5)
.backgroundColor('#fff') .backgroundColor('#fff')
......
...@@ -3,14 +3,14 @@ import { Logger } from '@ohos/common'; ...@@ -3,14 +3,14 @@ import { Logger } from '@ohos/common';
import gldwModel from '../../../model/GldwModel'; import gldwModel from '../../../model/GldwModel';
import kfModel from '../../../model/KfModel'; import kfModel from '../../../model/KfModel';
import { DividerTitle } from '../../../view/DividerTitle/DividerTitle'; import { DividerTitle } from '../../../view/DividerTitle/DividerTitle';
import { WzClass, WzmxClass } from './Wzcrk.data'; import { PzFormClass, ScanWzClass, WzClass, WzmxClass } from './Wzcrk.data';
import { WzList } from '../WzInPage/WzinDetail/WzList'; import { WzList } from '../WzInPage/WzinDetail/WzList';
import { pzForm } from './action'
import { WzScanInfoDialog } from './Dialog/WzScanInfoDialog'; import { WzScanInfoDialog } from './Dialog/WzScanInfoDialog';
import { analysisQrCode } from '../../../identify/analysis/analysis_QR_code' import { analysisQrCode } from '../../../identify/analysis/analysis_QR_code'
import emitter from '@ohos.events.emitter'; import emitter from '@ohos.events.emitter';
import Prompt from '@system.prompt'; import Prompt from '@system.prompt';
import wzcrkmxModel from '../../../model/WzcrkmxModel'; import wzcrkmxModel from '../../../model/WzcrkmxModel';
import { dateUtils, uuid } from '@ohos/common/src/main/ets/utils/util';
@Extend(Button) function CommonButtonStyle() { @Extend(Button) function CommonButtonStyle() {
...@@ -29,12 +29,17 @@ export struct WzInfo { ...@@ -29,12 +29,17 @@ export struct WzInfo {
@State currentHwh: string = '' // 当前货位 @State currentHwh: string = '' // 当前货位
@State pageType: string = "" //当前凭证的类型 @State pageType: string = "" //当前凭证的类型
@State currentModel: boolean = false //倒出:true/倒入:false @State currentModel: boolean = false //倒出:true/倒入:false
@State currentWZInfo: Array<any> = [] //当前扫描物资信息 @State currentWZInfo: ScanWzClass[] = [] //当前扫描物资信息
@State defaultArr: Array<any> = [] @State defaultArr: Array<any> = []
@State dataType: boolean = false // 导入是true, 其他false 根据单据状态控制提交按钮显示隐藏 @State dataType: boolean = false // 导入是true, 其他false 根据单据状态控制提交按钮显示隐藏
@State isHaveButton: boolean = false // 完成状态, 未完成是true, 其他false @State isHaveButton: boolean = false // 完成状态, 未完成是true, 其他false
@State isAutomation: boolean = true //控制扫描提示显示隐藏 @State isAutomation: boolean = true //控制扫描提示显示隐藏
@State pzxqGuild: string = '' //当前凭证guid
@State historicalInformation: Array<any> = [] //物资数据
@State currentPmdmcode: string = '' //当前扫描pmdm10位
@State defaultHwh: string = this.convertionDefaultHwh() @State defaultHwh: string = this.convertionDefaultHwh()
@Link pzForm: PzFormClass
@State currentDw: string = '' @State currentDw: string = ''
@State kfmc: string = '' @State kfmc: string = ''
@State wzmx: WzmxClass[] = [] @State wzmx: WzmxClass[] = []
...@@ -104,7 +109,7 @@ export struct WzInfo { ...@@ -104,7 +109,7 @@ export struct WzInfo {
Text(item.pmdmsix).width("25%").textAlign(TextAlign.Start).fontSize(14) Text(item.pmdmsix).width("25%").textAlign(TextAlign.Start).fontSize(14)
Text(item.wzpm).width("25%").textAlign(TextAlign.Center).fontSize(14) Text(item.wzpm).width("25%").textAlign(TextAlign.Center).fontSize(14)
Text(item.hxmc).width("25%").textAlign(TextAlign.Center).fontSize(14) Text(item.hxmc).width("25%").textAlign(TextAlign.Center).fontSize(14)
Text(item.crksl) Text(item.crksl + '')
.width("25%") .width("25%")
.textAlign(TextAlign.Center) .textAlign(TextAlign.Center)
.fontSize(20) .fontSize(20)
...@@ -128,6 +133,7 @@ export struct WzInfo { ...@@ -128,6 +133,7 @@ export struct WzInfo {
// 页面初始化 // 页面初始化
aboutToAppear() { aboutToAppear() {
this.pzxqGuild = this.wzcrk.guid
this.getData() this.getData()
this.scanCodeListen(); this.scanCodeListen();
} }
...@@ -158,11 +164,11 @@ export struct WzInfo { ...@@ -158,11 +164,11 @@ export struct WzInfo {
*/ */
async handleanalysisQrCode(value) { async handleanalysisQrCode(value) {
this.isAutomation = false this.isAutomation = false
if (this.scanInfoDialog != undefined) {
this.scanInfoDialog.open()
}
const res = await analysisQrCode(value, false) const res = await analysisQrCode(value, false)
if (res.data && res.data.length > 0) { if (res.data && res.data.length > 0) {
if (this.scanInfoDialog != undefined) {
this.scanInfoDialog.open()
}
console.log("解析货位", JSON.stringify(res.data)) console.log("解析货位", JSON.stringify(res.data))
//1. 获取默认货位 //1. 获取默认货位
this.handleGetDefaultHwh(res) this.handleGetDefaultHwh(res)
...@@ -174,66 +180,852 @@ export struct WzInfo { ...@@ -174,66 +180,852 @@ export struct WzInfo {
return return
} }
// 无货位 // 无货位
// if (!this.wzcrk.hwh && !res.data[0].hwh) { if (!this.pzForm.hwh && !res.data[0].hwh) {
// Prompt.showToast({ Prompt.showToast({
// message: '请优先扫描货位' message: '请优先扫描货位'
// }) })
// return return
// } }
// 如果没有货位: // 如果没有货位:
// if (!this.pzFrom.hwh && res.data[0].hwh) { if (!this.pzForm.hwh && res.data[0].hwh) {
// // if (this.pageType == '倒库') { // if (this.pageType == '倒库') {
// const hwParams = { const hwParams = {
// kfdm: this.pzFrom.kfdm, kfdm: this.pzForm.kfdm,
// hwh: res.data[0].hwh, hwh: res.data[0].hwh,
// hjguid: res.data[0].hjguid hjguid: res.data[0].hjguid
// } }
// // console.log('this.currentModel', this.currentModel, this.pzFrom) // console.log('this.currentModel', this.currentModel, this.pzFrom)
// if (this.pageType == '倒库') { if (this.pageType == '倒库') {
// if (this.currentModel) { if (this.currentModel) {
// hwParams.kfdm = this.pzFrom.kfdm hwParams.kfdm = this.pzForm.kfdm
// } else { } else {
// hwParams.kfdm = this.pzFrom.rkkfdm hwParams.kfdm = this.pzForm.rkkfdm
// } }
// } else { } else {
// hwParams.kfdm = this.pzFrom.kfdm hwParams.kfdm = this.pzForm.kfdm
// } }
// const testHwForKf = await selectInformationType("GY_M_PMV3", const testHwForKf = await wzcrkmxModel.testHwWz(hwParams)
// testHwWzSql(hwParams)) if (testHwForKf.length == 0) {
// if (testHwForKf.length == 0) { Prompt.showToast({
// Prompt.showToast({ message: '当前库房不存在' + res.data[0].hwh + '货位'
// message: '当前库房不存在' + res.data[0].hwh + '货位' })
// }) return
// return }
// } // }
// // } this.pzForm.hwh = res.data[0].hwh
// this.pzFrom.hwh = res.data[0].hwh // @ts-ignore
// this.pzFrom.hjguid = res.data[0].hjguid this.pzForm.hjguid = res.data[0].hjguid
// this.currentHwh = res.data[0].hwh this.currentHwh = res.data[0].hwh
// Prompt.showToast({ Prompt.showToast({
// message: '当前货位:' + res.data[0].hwh, message: '当前货位:' + res.data[0].hwh,
// }) })
// return return
// } }
if (this.pzForm.hwh && res.data[0].hwh && this.pzForm.hwh == res.data[0].hwh) {
Prompt.showToast({
message: '当前货位:' + res.data[0].hwh
})
return
}
// 如果有货位:
if (this.pzForm.hwh && res.data[0].hwh && this.pzForm.hwh !== res.data[0].hwh) {
// if (that.pageType == '倒库') {
const isHwParams = {
kfdm: this.pzForm.kfdm,
// 入 rkkfdm 出 kfdm
hwh: res.data[0].hwh,
hjguid: res.data[0].hjguid
}
if (this.pageType == '倒库') {
if (this.currentModel) {
isHwParams.kfdm = this.pzForm.kfdm
} else {
isHwParams.kfdm = this.pzForm.rkkfdm
}
} else {
isHwParams.kfdm = this.pzForm.kfdm
}
const testHwForKf = await wzcrkmxModel.testHwWz(isHwParams)
if (testHwForKf.length == 0) {
Prompt.showToast({
message: '当前库房不存在' + res.data[0].hwh + '货位',
})
return
}
// }
this.pzForm.hwh = res.data[0].hwh
// @ts-ignore
this.pzForm.hjguid = res.data[0].hjguid
this.currentHwh = res.data[0].hwh
Prompt.showToast({
message: '切换货位:' + res.data[0].hwh,
})
return
}
// 扫描物资
if (res.data && res.data.length > 0) {
res.data.forEach(async (ITEM) => {
if (this.dataType) {
// 单据导入
if (this.pageType == '入库' || this.pageType == '出库') {
// 收物单-品种不可以新建,同品种号型可新建,数量可以超
// 发物单-品种不可以新建,同品种号型可新建,数量可以超
const params = {
wzcrkguid: this.pzxqGuild,
pmdmcode: ITEM.pmdmcode.slice(0, 6)
}
const pzData = await wzcrkmxModel.getPzMxItem(params, true)
console.log('pzData', pzData)
if (pzData.length == 0) {
Prompt.showToast({
// title: this.pageType + '导入的凭证中无扫描品种,不容许添加!',
message: '本单据中无此扫描品种,不允许添加!'
})
return
}
}
// 调号 - 1.不容许新建,数量不可以超
// 2.同品种调入调出合计为0
// 3.同品种xx号型如果是调入不能为调出,反之
if (this.pageType == '调号') {
const params = {
wzcrkguid: this.pzxqGuild,
pmdmcode: ITEM.pmdmcode
}
// console.log('getPzMxItemSql(params, false)', getPzMxItemSql(params,
// false))
const pzData = await wzcrkmxModel.getPzMxItem(params, false)
// console.log('pzData', pzData)
if (pzData.length == 0) {
Prompt.showToast({
message: '调号导入的凭证中无扫描品种,不容许添加!'
})
return
} else {
// @ts-ignore
var currentModel = Number(pzData[0].PZSL) > 0 ? true : false
var model = currentModel ? '调出' : '调入'
if (this.currentModel !== currentModel) {
Prompt.showToast({
message: '当前物资调号模式为' + model + '无法修改'
})
return
}
}
}
// 倒库 - 1.倒出不可以新建 倒入新建同品种同号型
// 2.倒出和倒入的品种号型必须一样
if (this.pageType == '倒库') {
// if (this.currentModel) {
const params = {
wzcrkguid: this.pzxqGuild,
pmdmcode: ITEM.pmdmcode
}
const pzData = await await wzcrkmxModel.getPzMxItem(params, false)
console.log('pzDatapzData', pzData)
if (pzData.length == 0) {
Prompt.showToast({
message: '倒库导入的凭证中无扫描品种,不容许添加!'
})
return
}
}
// 盘库 - 1.详情新增物资明细无限制
} else {
// 单据新建详情
// 收物单-1.详情新增物资明细无限制
// 调号 - 1.详情新增物资明细无限制;
// 2.同品种调入调出合计为0
// 3.同品种xx号型如果是调入不能为调出,反之;
if (this.pageType == '调号') {
const params = {
wzcrkguid: this.pzxqGuild,
pmdmcode: ITEM.pmdmcode
}
const pzData = await wzcrkmxModel.getPzMxItem(params, false)
console.log('pzData', pzData)
if (pzData.length == 0) {
// uni.showToast({
// title: '调号导入的凭证中无扫描品种,不容许添加!',
// icon: 'none'
// })
// return
} else {
// @ts-ignore
var currentModel = Number(pzData[0].PZSL) > 0 ? true : false
var model = currentModel ? '调出' : '调入'
if (this.currentModel !== currentModel) {
Prompt.showToast({
message: '当前物资调号模式为' + model + '无法修改'
})
return
}
}
}
// 换位 - 1.详情新增物资明细无限制
// 2.换出和换入的品种号型必须一样
}
const [data] = this.historicalInformation.filter((item, index) => item
.pmdmcode == ITEM.pmdmcode && item.hwh == this.pzForm.hwh)
console.log('---过滤后的data---', JSON.stringify(data))
if (this.pageType == '调号') {
if (data && data.currentModel !== this.currentModel) {
const model = data.currentModel ? '调出' : '调入'
Prompt.showToast({
message: '当前物资调号模式为' + model + '无法修改'
})
return
}
}
if (!!this.currentPmdmcode && this.currentPmdmcode.slice(0, 6) == ITEM
.pmdmcode
.slice(0, 6)) {
console.log('同品名数据时', JSON.stringify(res), JSON.stringify(ITEM))
this.handleSetInsertOrUpdate(res, ITEM)
// this.setDkScan(ITEM)
} else {
console.log('不同品名数据时')
// 1.先查询同品种数据
this.pageInit(ITEM, 'insert', () => {
// 2.判断品名和货位相同
this.handleSetInsertOrUpdate(res, ITEM)
})
}
})
console.log('this.historicalInformation', this.historicalInformation)
}
}
}
async pageInit(ITEM, tip, callback?) {
try {
// 不同号型新增
// 查询同号型数据
const params = {
guid: this.pzxqGuild,
pmdm: ITEM.pmdmcode.slice(0, 6)
}
const res = await wzcrkmxModel.getCommonHxPzMx(params)
// 设置
if (tip == 'insert') {
Prompt.showToast({
message: '切换号型:' + ITEM.pmdmcode + '数据'
})
}
this.currentPmdmcode = ITEM.pmdmcode
this.historicalInformation = res
this.setDefaultActive()
callback && callback()
} catch (e) {
}
}
/***
* @description: 数据设置默认状态
*/
setDefaultActive() {
if (this.pageType == '倒库' || this.pageType == '调号' || this.pageType == '换位') {
// 倒库默认添加倒库模式
this.historicalInformation.forEach((item) => {
if (item.pzsl > 0) {
item.currentModel = true
} else {
item.currentModel = false
}
})
}
}
/***
* @description: 单据明细新增/修改
*/
async handleSetInsertOrUpdate(res, ITEM) {
const [filterInsrtData] = res.data.filter(item => item.pmdmcode == ITEM.pmdmcode && item
.hxmc == ITEM.hxmc)
var testPmdmCodeSql = []
if (this.pageType == '倒库' || this.pageType == '调号' || this.pageType == '换位') {
testPmdmCodeSql = this.historicalInformation.filter((item) => item.pmdmcode ==
filterInsrtData.pmdmcode && (item.hwh == '' || item.hwh == this.pzForm.hwh) && item
.currentModel == this.currentModel)
} else {
testPmdmCodeSql = this.historicalInformation.filter((item) => item.pmdmcode ==
filterInsrtData.pmdmcode && (item.hwh == '' || item.hwh == this.pzForm.hwh))
}
console.log('testPmdmCodeSql', testPmdmCodeSql, this.currentModel)
if (testPmdmCodeSql && testPmdmCodeSql.length > 0) {
var update_crksl = 0
if (this.pageType == '倒库' || this.pageType == '调号' || this.pageType == '换位') {
if (this.currentModel) {
update_crksl = Number(testPmdmCodeSql[0].crksl) +
Number(filterInsrtData.srsl)
} else {
update_crksl = Number(testPmdmCodeSql[0].crksl) -
Number(filterInsrtData.srsl)
}
} else {
if (testPmdmCodeSql[0].crksl) {
update_crksl = Number(testPmdmCodeSql[0].crksl) +
Number(filterInsrtData.srsl)
} else {
update_crksl = filterInsrtData.srsl
}
}
const updateParams = {
mxguid: testPmdmCodeSql[0].mxguid,
hwh: testPmdmCodeSql[0].hwh || this.pzForm.hwh,
crksl: update_crksl
}
console.log("updateParams", JSON.stringify(updateParams))
let s = await wzcrkmxModel.updateWzmx(updateParams)
console.log("updateParams执行成功或者失败:" + s)
} else {
var insert_crksl = 0
if (this.pageType == '倒库' || this.pageType == '调号' || this.pageType == '换位') {
if (this.currentModel) {
insert_crksl = 0 + Number(filterInsrtData.srsl)
} else {
insert_crksl = 0 - Number(filterInsrtData.srsl)
}
} else {
insert_crksl = filterInsrtData.srsl
}
const insertParams = {
guid: uuid(),
pzsl: insert_crksl,
crksl: insert_crksl,
hwh: this.pzForm.hwh,
wzcrkguid: this.pzxqGuild,
currentModel: this.currentModel,
...filterInsrtData
}
await wzcrkmxModel.insertWz(insertParams)
// createOrFindSQL("GY_M_PMV3", insertWz(insertParams))
ITEM.mxguid = insertParams.guid
}
// this.pageInit(ITEM, 'update')
if (res.data && res.data.length > 1) {
this.pageInit(ITEM, 'update')
} else {
if (this.pageType == '倒库' || this.pageType == '调号' || this.pageType == '换位') {
this.pageInit(ITEM, 'update')
} else {
this.setDkScan(ITEM, res.data)
}
}
}
/***
* @description: 修改物资数据
*/
setDkScan(ITEM, ScanData) {
// console.log('修改配置信息=============================================')
try {
if (this.historicalInformation && this.historicalInformation.length > 0) {
const [data] = this.historicalInformation.filter((item, index) =>
item.pmdmcode == ITEM.pmdmcode)
// console.log('判断有没有这条数据,没有新增=============================================')
// console.log(data)
// 判断有没有这条数据,没有新增
if (data) {
// 倒库单判断如果当前为倒出模式判断有没有这个pmdmcode/currentModel为1的
// 有覆盖/无新增(新增向缓存添加,向新增列表添加)
// 如果有这条数据,判断当前数据有没有货位号
if (data.hwh) {
// 如果有货位号,判断货位号和当前扫描货位号是否一致
if (data.hwh == this.pzForm.hwh) {
if (this.pageType == '倒库') {
// 先检测是否存在,如果存在覆盖,如果没有新增
const newCurrentModel = this.currentModel
const [newIsDk] = this.historicalInformation.filter((item) =>
item.pmdmcode == data
.pmdmcode && item.currentModel == newCurrentModel)
if (newIsDk) {
// 如果一致,则覆盖这条数据货位并合计
this.historicalInformation.forEach(async (item,
index) => {
if (item.hwh == this.pzForm.hwh && item
.pmdmcode == ITEM.pmdmcode && item
.currentModel ==
newCurrentModel) {
// item.currentModel = this.currentModel
let num = ITEM.srsl || 1
let hjsl = 0
if (this.pageType == '倒库') {
if (item.currentModel) {
hjsl = Number(item.crksl) +
Number(
num)
} else {
hjsl = Number(item.crksl) -
Number(
num)
}
} else {
hjsl = Number(item.crksl) + Number(
num)
}
item.crksl = hjsl
}
})
} else {
const params = {
guid: uuid(),
pzsl: ITEM.srsl,
crksl: ITEM.srsl,
hwh: this.pzForm.hwh,
wzcrkguid: this.pzxqGuild,
currentModel: this.currentModel,
...ITEM
}
if (params.currentModel) {
params.pzsl = 0 + Number(ITEM.srsl)
params.crksl = 0 + Number(ITEM.srsl)
} else {
params.pzsl = 0 - Number(ITEM.srsl)
params.crksl = 0 - Number(ITEM.srsl)
}
// @ts-ignore
this.insertWzMxFun(params)
// this.historicalInformation.unshift(params)
// this.bufferFun(params)
// createOrFindSQL("GY_M_PMV3", insertWz(params))
// uni.showToast({
// title: '新增单据号型:' + ITEM.hxmc + '模式:' + this.currentModel ? '倒出' :
// '倒入',
// icon: 'none'
// })
}
} else {
// 如果一致,则覆盖这条数据货位并合计
this.historicalInformation.forEach(async (item,
index) => {
if (item.hwh == this.pzForm.hwh && item
.pmdmcode == ITEM.pmdmcode) {
// item.currentModel = this.currentModel
let num = ITEM.srsl || 1
let hjsl = 0
if (this.pageType == '倒库') {
if (item.currentModel) {
hjsl = Number(item.crksl) +
Number(
num)
} else {
hjsl = Number(item.crksl) -
Number(
num)
}
} else {
hjsl = Number(item.crksl) + Number(num)
}
item.crksl = hjsl
// this.bufferFun(item)
}
})
}
} else {
if (this.pageType == '倒库') {
// 先检测是否存在,如果存在覆盖,如果没有新增
const newCurrentModel = this.currentModel
const [newIsDk] = this.historicalInformation.filter((item) =>
item.pmdmcode == data
.pmdmcode && item.currentModel == newCurrentModel)
if (newIsDk) {
// 如果不一致,则新增数据
const [newHwData] = this.historicalInformation.filter((
item) => item.hwh ==
this
.pzForm
.hwh && item.pmdmcode == ITEM.pmdmcode)
if (newHwData) {
this.historicalInformation.forEach(async (item,
index) => {
if (item.hwh == this.pzForm.hwh && item
.pmdmcode == ITEM
.pmdmcode && item.currentModel ==
newCurrentModel) {
let num = ITEM.srsl || 1
let hjsl = 0
if (this.pageType == '倒库') {
if (item.currentModel) {
hjsl = Number(item.crksl) +
Number(
num)
} else {
hjsl = Number(item.crksl) -
Number(
num)
}
} else {
hjsl = Number(item.crksl) +
Number(num)
}
item.crksl = hjsl
// this.bufferFun(item)
}
})
} else {
if (this.pageType == '倒库') {
Prompt.showToast({
message: '此单据号型:' + ITEM.hxmc + '不存在'
})
return
} else {
this.insertWzmxFun(ITEM)
}
}
} else {
const params = {
guid: uuid(),
pzsl: ITEM.srsl,
crksl: ITEM.srsl,
hwh: this.pzForm.hwh,
wzcrkguid: this.pzxqGuild,
currentModel: this.currentModel,
...ITEM
}
if (params.currentModel) {
params.pzsl = 0 + Number(ITEM.srsl)
params.crksl = 0 + Number(ITEM.srsl)
} else {
params.pzsl = 0 - Number(ITEM.srsl)
params.crksl = 0 - Number(ITEM.srsl)
}
// @ts-ignore
this.insertWzMxFun(params)
// this.historicalInformation.unshift(params)
// this.bufferFun(params)
// createOrFindSQL("GY_M_PMV3", insertWz(params))
// uni.showToast({
// title: '新增单据号型:' + ITEM.hxmc + '模式:' + this.currentModel ? '倒出' :
// '倒入',
// icon: 'none'
// })
}
} else {
// 如果不一致,则新增数据
const [newHwData] = this.historicalInformation.filter((item) =>
item.hwh == this
.pzForm
.hwh && item.pmdmcode == ITEM.pmdmcode)
if (newHwData) {
this.historicalInformation.forEach(async (item,
index) => {
if (item.hwh == this.pzForm.hwh &&
item
.pmdmcode == ITEM.pmdmcode) {
let num = ITEM.srsl || 1
let hjsl = 0
if (this.pageType == '倒库') {
if (item.currentModel) {
hjsl = Number(item.crksl) +
Number(
num)
} else {
hjsl = Number(item.crksl) -
Number(
num)
}
} else {
hjsl = Number(item.crksl) + Number(
num)
}
item.crksl = hjsl
// this.bufferFun(item)
}
})
} else {
if (this.pageType == '倒库') {
Prompt.showToast({
message: '此单据号型:' + ITEM.hxmc + '不存在'
})
return
} else {
console.log(
'==========================不存在4==============='
)
this.insertWzmxFun(ITEM)
}
}
}
}
} else {
console.log('========================= 无货位 ======================')
if (this.pageType == '倒库') {
// 先检测是否存在,如果存在覆盖,如果没有新增
const newCurrentModel = this.currentModel
const [newIsDk] = this.historicalInformation.filter((item) => item
.pmdmcode == data
.pmdmcode && item.currentModel == newCurrentModel)
console.log('没有货位====================')
console.log(newIsDk)
if (newIsDk) {
// console.log('==========================存在===============1')
// 如果没有货位号,则覆盖这条数据货位并合计
this.historicalInformation.forEach(async (item, index) => {
if (item.pmdmcode == data.pmdmcode && item
.currentModel ==
newCurrentModel) {
if (!item.hwh) {
item.hwh = this.pzForm.hwh
// @ts-ignore
item.hjguid = this.pzForm.hjguid
}
let num = ITEM.srsl || 1
let hjsl = 0
if (this.pageType == '倒库') {
if (item.currentModel) {
hjsl = Number(item.crksl) +
Number(
num)
} else {
hjsl = Number(item.crksl) -
Number(
num)
}
} else {
hjsl = Number(item.crksl) + Number(num)
}
item.crksl = hjsl
// this.bufferFun(item)
}
})
} else {
console.log('==========================不存在5===============2')
const params = {
guid: uuid(),
pzsl: ITEM.srsl,
crksl: ITEM.srsl,
hwh: this.pzForm.hwh,
wzcrkguid: this.pzxqGuild,
currentModel: this.currentModel,
...ITEM
}
if (params.currentModel) {
params.pzsl = 0 + Number(ITEM.srsl)
params.crksl = 0 + Number(ITEM.srsl)
} else {
params.pzsl = 0 - Number(ITEM.srsl)
params.crksl = 0 - Number(ITEM.srsl)
}
console.log('===========params5', params)
// @ts-ignore
this.insertWzMxFun(params)
// this.historicalInformation.unshift(params)
// this.bufferFun(params)
// createOrFindSQL("GY_M_PMV3", insertWz(params))
// uni.showToast({
// title: '新增单据号型:' + ITEM.hxmc + '模式:' + this.currentModel ? '倒出' : '倒入',
// icon: 'none'
// })
}
} else {
// 如果没有货位号,则覆盖这条数据货位并合计
this.calcWzmxFun(data, ITEM)
}
}
} else {
// 倒库单 判断有没有这条数据,没有提示
if (this.pageType == '倒库') {
Prompt.showToast({
message: '此单据号型:' + ITEM.hxmc + '不存在'
})
return
} else {
console.log('==========================不存在6===============')
this.insertWzmxFun(ITEM)
}
}
} else {
// console.log('========================= 列表无数据新增 ======================')
if (this.pageType == '倒库') {
Prompt.showToast({
message: '此单据号型:' + ITEM.hxmc + '不存在'
})
return
} else {
console.log('==========================不存在7===============')
this.insertWzmxFun(ITEM)
}
}
const newData = ScanData.map((item) => {
const [filterData] = this.historicalInformation.filter((fLe) => fLe.pmdmcode ==
item.pmdmcode && fLe.hwh == this.currentHwh)
return filterData
}) as ScanWzClass []
console.log('this.newData', JSON.stringify(newData))
this.currentWZInfo = []
newData.forEach(i => {
this.currentWZInfo.push(new ScanWzClass(i))
})
console.log('this.currentWZInfo', JSON.stringify(this.currentWZInfo))
Logger.info(this, '手动修改结束', dateUtils.formatDate(new Date()))
} catch (e) {
//TODO handle the exception
Prompt.showToast({
message: '修改物资失败'
})
} }
} }
/***
* @description: 新增物资明细
* @param {*}
* @return {*}
* @author: 王弘钢
*/
insertWzmxFun(ITEM) {
try {
var insert_crksl = 0
if (this.pageType == '倒库') {
if (this.currentModel) {
insert_crksl = 0 + Number(ITEM.srsl)
} else {
insert_crksl = 0 - Number(ITEM.srsl)
}
} else {
insert_crksl = ITEM.srsl
}
const params = {
guid: uuid(),
pzsl: insert_crksl,
crksl: insert_crksl,
hwh: this.pzForm.hwh,
wzcrkguid: this.pzxqGuild,
currentModel: this.currentModel,
...ITEM
}
// console.log('新增单据号型', params)
// console.log('开始新增物资明细', dateUtils.formatDate(new Date()))
// createOrFindSQL("GY_M_PMV3", insertWz(params))
// console.log('新增物资明细结束', dateUtils.formatDate(new Date()))
// this.insertWzMxFun(params)
this.historicalInformation.unshift(params)
// this.historicalInformation.forEach((item) => {
// if (item.pmdmcode == params.pmdmcode) {
// console.log('筛选ITEM', item)
// if (item.children && item.children.length > 0) {
// const [filterPmData] = item.children.filter((ELEMENT) => ELEMENT.pmdmcode == params
// .pmdmcode && ELEMENT.hwh == params.hwh)
// if (filterPmData) {
// item.children.forEach(newItem => {
// if (newItem.pmdmcode == params.pmdmcode && ELEMENT.hwh == params
// .hwh) {
// newItem.crksl = Number(newItem.crksl) + Number(insert_crksl)
// newItem.pzsl = Number(newItem.pzsl) + Number(insert_crksl)
// console.log('筛选ITEM.===', item.children)
// }
// })
// // item.children.(params)
// } else {
// item.children.push(params)
// console.log('筛选ITEM.push', item.children)
// }
// } else {
// item.children = []
// item.children.push(params)
// console.log('筛选ITEM.push', item.children)
// }
// }
// })
// createOrFindSQL("GY_M_PMV3", insertWz(params))
// uni.showToast({
// title: '新增单据号型:' + ITEM.hxmc,
// icon: 'none'
// })
} catch (e) {
//TODO handle the exception
Prompt.showToast({
message: '物资新增失败'
})
}
}
/***
* @description: 计算合计数
* @param {*}
* @return {*}
* @author: 王弘钢
*/
calcWzmxFun(data, ITEM) {
try {
this.historicalInformation.forEach(async (item, index) => {
if (item.pmdmcode == data.pmdmcode) {
if (!item.hwh) {
item.hwh = this.pzForm.hwh
// @ts-ignore
item.hjguid = this.pzForm.hjguid
}
let num = ITEM.srsl || 1
let hjsl = 0
if (this.pageType == '倒库') {
if (item.currentModel) {
hjsl = Number(item.crksl) + Number(num)
} else {
hjsl = Number(item.crksl) - Number(num)
}
} else {
hjsl = Number(item.crksl) + Number(num)
}
item.crksl = hjsl
// this.bufferFun(item)
}
})
} catch (e) {
//TODO handle the exception
Prompt.showToast({
message: '物资合计失败'
})
}
}
handleGetDefaultHwh(res) { handleGetDefaultHwh(res) {
try { try {
var defaultArr = [] var defaultArr = []
res.data.forEach(async (item, index) => { res.data.forEach(async (item, index) => {
const defaultParams = { const defaultParams = {
kfdm: this.wzcrk.kfdm, kfdm: this.wzcrk.kfdm,
pmguid: item.pmdm pmguid: item?.pmdm
} }
Logger.info(this, '默认货位defaultParams-------', JSON.stringify(item), JSON.stringify(defaultParams))
// 获取推荐货位 // 获取推荐货位
const defaultData = await wzcrkmxModel.queryRecommendHw(defaultParams) const defaultData = await wzcrkmxModel.queryRecommendHw(defaultParams)
Logger.info(this, '默认货位defaultData-------', JSON.stringify(defaultData))
defaultArr = defaultArr.concat(defaultData) defaultArr = defaultArr.concat(defaultData)
const last = res.data.length - 1 const last = res.data.length - 1
if (index == last) { if (index == last) {
Logger.info(this, 'defaultArr-------', JSON.stringify(defaultArr)) Logger.info(this, '默认货位defaultArr-------', JSON.stringify(defaultArr))
this.defaultArr = defaultArr this.defaultArr = defaultArr
} }
}) })
...@@ -345,7 +1137,7 @@ export struct WzInfo { ...@@ -345,7 +1137,7 @@ export struct WzInfo {
.borderRadius(5) .borderRadius(5)
Button("查看状态").CommonButtonStyle().width("25%").margin({ left: 5, right: 5 }).onClick(() => { Button("查看状态").CommonButtonStyle().width("25%").margin({ left: 5, right: 5 }).onClick(() => {
router.pushUrl({ url: 'pages/metailmange/WzStatus', params: { router.pushUrl({ url: 'pages/metailmange/WzStatus', params: {
wzmx: this.wzmx wzmx: this.historicalInformation
} }) } })
}) })
}.width("100%") }.width("100%")
...@@ -353,7 +1145,7 @@ export struct WzInfo { ...@@ -353,7 +1145,7 @@ export struct WzInfo {
Column() { Column() {
List() { List() {
ForEach(this.wzmx, (item) => { ForEach(this.historicalInformation, (item) => {
ListItem() { ListItem() {
WzList({ wzmx: item }) WzList({ wzmx: item })
} }
......
import { pzlx_dict, szlx_dict, new_zmlx_dict, Logger } from '@ohos/common' import { Logger, new_zmlx_dict, pzlx_dict, szlx_dict } from '@ohos/common'
import wzcrkModel from '../../../model/WzcrkModel' import wzcrkModel from '../../../model/WzcrkModel'
...@@ -169,7 +169,7 @@ export class WzmxClass { ...@@ -169,7 +169,7 @@ export class WzmxClass {
/** /**
* 品名代码 * 品名代码
*/ */
// pmdmcode: string pmdmcode: string
/** /**
* 凭证数量 * 凭证数量
*/ */
...@@ -211,10 +211,14 @@ export class WzmxClass { ...@@ -211,10 +211,14 @@ export class WzmxClass {
*/ */
wczt: string wczt: string
currentModel?: boolean
constructor(data: { constructor(data: {
guid?: string, guid?: string,
// gznd: string, // gznd: string,
// pmdmcode: string, pmdmcode: string,
pzsl: number, pzsl: number,
crksl: number, crksl: number,
wzcrkguid: string, wzcrkguid: string,
...@@ -224,11 +228,12 @@ export class WzmxClass { ...@@ -224,11 +228,12 @@ export class WzmxClass {
xh: string, xh: string,
wzpm: string, wzpm: string,
pmdmSix: string, pmdmSix: string,
wczt: string wczt: string,
currentModel?: boolean
}) { }) {
this.guid = data.guid; this.guid = data.guid;
// this.gznd = data.gznd; // this.gznd = data.gznd;
// this.pmdmcode = data.pmdmcode; this.pmdmcode = data.pmdmcode;
this.pzsl = data.pzsl; this.pzsl = data.pzsl;
this.crksl = data.crksl; this.crksl = data.crksl;
this.wzcrkguid = data.wzcrkguid; this.wzcrkguid = data.wzcrkguid;
...@@ -239,6 +244,94 @@ export class WzmxClass { ...@@ -239,6 +244,94 @@ export class WzmxClass {
this.wzpm = data.wzpm; this.wzpm = data.wzpm;
this.pmdmSix = data.pmdmSix; this.pmdmSix = data.pmdmSix;
this.wczt = data.wczt; this.wczt = data.wczt;
this.currentModel = data.currentModel
}
}
// 物资表单详情
@Observed
export class PzFormClass {
guid: string;
pzlx: string;
pzh: number;
rkkfdm: string;
kfdm: string;
pzszlx: string;
sfdw: string;
ydh: string;
dec: string;
fwgldwdm: string;
swgldwdm: string;
zmlx: string;
hwh?: string;
constructor(
data: {
guid: string,
pzlx: string,
pzh: number,
rkkfdm: string,
kfdm: string,
pzszlx: string,
sfdw: string,
ydh: string,
dec: string,
fwgldwdm: string,
swgldwdm: string,
zmlx: string,
hwh?: string
}
) {
this.guid = data.guid || '';
this.pzlx = data.pzlx || '';
this.pzh = data.pzh || 0;
this.rkkfdm = data.rkkfdm || '';
this.kfdm = data.kfdm || '';
this.pzszlx = data.pzszlx || '';
this.sfdw = data.sfdw || '';
this.ydh = data.ydh || '';
this.dec = data.dec || '';
this.fwgldwdm = data.fwgldwdm || '';
this.swgldwdm = data.swgldwdm || '';
this.zmlx = data.zmlx || '';
this.hwh = data.hwh || '';
}
}
@Observed
export class ScanWzClass {
pzsl: string
crksl: number
hwh: string
hxmc: string
pmdmcode: string
wzpm: string
pzmxguid: string
mxguid: string
pmdmsix: string
constructor(data: {
pzsl: string
crksl: number
hwh: string
hxmc: string
pmdmcode: string
wzpm: string
pzmxguid: string
mxguid: string
pmdmsix: string
}) {
this.pmdmsix = data.pmdmsix;
this.mxguid = data.mxguid;
this.crksl = data.crksl;
this.hwh = data.hwh;
this.hxmc = data.hxmc;
this.pmdmcode = data.pmdmcode;
this.wzpm = data.wzpm;
this.hxmc = data.hxmc;
this.mxguid = data.mxguid;
} }
} }
......
import { Logger } from '@ohos/common/src/main/ets/utils/Logger'
import { WzmxClass } from '../../Common/Wzcrk.data' import { WzmxClass } from '../../Common/Wzcrk.data'
@Component @Component
......
...@@ -5,14 +5,14 @@ import { Wzcrk } from '@ohos/common/src/main/ets/entity/Wzcrk'; ...@@ -5,14 +5,14 @@ import { Wzcrk } from '@ohos/common/src/main/ets/entity/Wzcrk';
import { WzInfo } from '../../Common/WzInfo' import { WzInfo } from '../../Common/WzInfo'
import { PzInfo } from './PzInfo' import { PzInfo } from './PzInfo'
import wzcrkmxModel from '../../../../model/WzcrkmxModel'; import wzcrkmxModel from '../../../../model/WzcrkmxModel';
import { WzClass, WzmxClass } from '../../Common/Wzcrk.data'; import { PzFormClass, WzClass, WzmxClass } from '../../Common/Wzcrk.data';
import promptAction from '@ohos.promptAction'; import promptAction from '@ohos.promptAction';
import wzcrkModel from '../../../../model/WzcrkModel'; 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 { uuid } from '@ohos/common/src/main/ets/utils/util';
import IdentifyService from '../../../../identify/IdentifySerivce' import IdentifyService from '../../../../identify/IdentifySerivce'
import emitter from '@ohos.events.emitter'; import emitter from '@ohos.events.emitter';
import { WzcrkDetailDto } from '@ohos/common/src/main/ets/bean/dto/WzcrkMxRefWzDto';
@Extend(Button) function CommonButtonStyle() { @Extend(Button) function CommonButtonStyle() {
.borderWidth(2) .borderWidth(2)
...@@ -38,9 +38,8 @@ struct WzinDetail { ...@@ -38,9 +38,8 @@ struct WzinDetail {
@State isUpdate: boolean = false @State isUpdate: boolean = false
@State wzcrk: WzClass = null // 物资出入库单据信息 @State wzcrk: WzClass = null // 物资出入库单据信息
@State wzmx: WzmxClass[] = [] // 物资出入库明细 @State wzmx: WzmxClass[] = [] // 物资出入库明细
@State pzForm: PzFormClass = null // 物资出入库表单详情
private controller: TabsController = new TabsController() private controller: TabsController = new TabsController()
wzcrkmxDao: WzcrkmxDao = SQLiteContext.with(WzcrkmxDao)
onPageShow() { onPageShow() {
const params = router.getParams() as params const params = router.getParams() as params
...@@ -58,7 +57,7 @@ struct WzinDetail { ...@@ -58,7 +57,7 @@ struct WzinDetail {
async getWzFormDetail() { async getWzFormDetail() {
Logger.info('获取物资表单详情>>', JSON.stringify(this.wzcrk.guid)) Logger.info('获取物资表单详情>>', JSON.stringify(this.wzcrk.guid))
const res = await wzcrkModel.queryByCrkDetailGuid(this.wzcrk.guid) const res = await wzcrkModel.queryByCrkDetailGuid(this.wzcrk.guid)
Logger.info('获取到物资出入库表单>>', JSON.stringify(res)) this.pzForm = new PzFormClass(res[0])
} }
// 获取物资列表详情信息 // 获取物资列表详情信息
...@@ -105,7 +104,12 @@ struct WzinDetail { ...@@ -105,7 +104,12 @@ struct WzinDetail {
TabContent() { TabContent() {
Column() { Column() {
WzInfo({ wzmx: this.wzmx, wzcrk: this.wzcrk, getDetail: this.getWzmxList, pageType: "入库" }) // pzxqGuild必传 是wzcrk的guid, 我里面已经接了
// pageType必传 入库 出库 盘库 调号 倒库 换位
// dataType必传 导入是true, 其他为false
// isHaveButton 必传 完成状态 未完成是true, 其他为false
WzInfo({ historicalInformation: this.wzmx, wzcrk: this.wzcrk, getDetail: this.getWzmxList,
pageType: "入库", pzForm: this.pzForm, dataType: this.isUpdate ? true : false, isHaveButton: this.wzcrk.wczt == '未完成' ? true : false})
}.width("100%") }.width("100%")
}.tabBar(this.TabBuilder(1, '物资信息')) }.tabBar(this.TabBuilder(1, '物资信息'))
} }
...@@ -171,9 +175,9 @@ struct WzinDetail { ...@@ -171,9 +175,9 @@ struct WzinDetail {
}.onKeyEvent((e: globalThis.KeyEvent) => { }.onKeyEvent((e: globalThis.KeyEvent) => {
console.error('keycode====》:' + e.keyCode) console.error('keycode====》:' + e.keyCode)
if ((e.keyCode == 2096 || e.keyCode == 2093)) { if ((e.keyCode == 2096 || e.keyCode == 2093)) {
if(e.type==1){ if (e.type == 1) {
if(this.currentIndex==0){ if (this.currentIndex == 0) {
this.currentIndex=1 this.currentIndex = 1
} }
IdentifyService.openScan() IdentifyService.openScan()
} }
......
...@@ -85,7 +85,7 @@ struct WzInvDetail{ ...@@ -85,7 +85,7 @@ struct WzInvDetail{
TabContent() { TabContent() {
Column() { Column() {
WzInfo({ wzmx: this.wzmx, wzcrk: this.wzcrk, getDetail: this.getDetail }) WzInfo({ historicalInformation: this.wzmx, wzcrk: this.wzcrk, getDetail: this.getDetail })
}.width("100%") }.width("100%")
}.tabBar(this.TabBuilder(1, '物资信息')) }.tabBar(this.TabBuilder(1, '物资信息'))
} }
......
...@@ -92,7 +92,7 @@ struct WzOutDetail { ...@@ -92,7 +92,7 @@ struct WzOutDetail {
TabContent() { TabContent() {
Column() { Column() {
WzInfo({ wzmx: this.wzmx, wzcrk: this.wzcrk, getDetail: this.getDetail, pageType: "出库" }) WzInfo({ historicalInformation: this.wzmx, wzcrk: this.wzcrk, getDetail: this.getDetail, pageType: "出库" })
}.width("100%") }.width("100%")
}.tabBar(this.TabBuilder(1, '物资信息')) }.tabBar(this.TabBuilder(1, '物资信息'))
} }
......
...@@ -48,8 +48,9 @@ export struct ListDialog { ...@@ -48,8 +48,9 @@ export struct ListDialog {
await hwModel.clear(); await hwModel.clear();
await hjModel.clear(); await hjModel.clear();
await gldwModel.clear(); await gldwModel.clear();
await await drModel.set('清除基础数据') await bzhxModel.clear()
await this.getDrData() await drModel.set('清除基础数据')
await this.getDrData()
promptAction.showToast({ promptAction.showToast({
message: '清除基础数据成功' message: '清除基础数据成功'
}) })
...@@ -58,6 +59,7 @@ export struct ListDialog { ...@@ -58,6 +59,7 @@ export struct ListDialog {
message: '清除基础数据失败' message: '清除基础数据失败'
}) })
} }
break;
case '是否确认清除单据数据': case '是否确认清除单据数据':
try { try {
......
import { DividerTitle } from '../../../../view/DividerTitle/DividerTitle' import { DividerTitle } from '../../../../view/DividerTitle/DividerTitle'
import promptAction from '@ohos.promptAction' import promptAction from '@ohos.promptAction'
import wzcrkModel from '../../../../model/WzcrkModel'
import wzcrkmxModel from '../../../../model/WzcrkmxModel'
import dsRfidModel from '../../../../model/DsRfidModel'
import { getDjList, getLsqList } from '../sync.api' import { getDjList, getLsqList } from '../sync.api'
import drModel from '../../../../model/DrModel' import drModel from '../../../../model/DrModel'
import { KfInfo } from '@ohos/common/src/main/ets/entity/KfInfo'
import kfModel from '../../../../model/KfModel' import kfModel from '../../../../model/KfModel'
import { pzlx_dict } from '@ohos/common/src/main/ets/utils/dict'
import hwModel from '../../../../model/HwModel' import hwModel from '../../../../model/HwModel'
@Extend(Button) function CommonButtonStyle() { @Extend(Button) function CommonButtonStyle() {
...@@ -106,7 +101,8 @@ export struct OrderModal { ...@@ -106,7 +101,8 @@ export struct OrderModal {
Row() { Row() {
Text('*').fontColor('red') Text('*').fontColor('red')
Text('单位代码:').width('25%') Text('单位代码:').width('25%')
TextInput({ placeholder: "请输入单位代码", text: this.form.ckdwguid }).width('60%') TextInput({ placeholder: "请输入单位代码", text: this.form.ckdwguid })
.width('60%')
.borderRadius(6) .borderRadius(6)
.borderColor('#bcc5d7') .borderColor('#bcc5d7')
.borderWidth(1) .borderWidth(1)
......
...@@ -33,6 +33,7 @@ export struct GoodShelf { ...@@ -33,6 +33,7 @@ export struct GoodShelf {
.placeholderFont({ size: 14, weight: 400 }) .placeholderFont({ size: 14, weight: 400 })
.textFont({ size: 14, weight: 400 }) .textFont({ size: 14, weight: 400 })
.onSubmit((value) => this.getShelfList(value)) .onSubmit((value) => this.getShelfList(value))
.onChange((value) => this.getShelfList(value))
.borderRadius(5) .borderRadius(5)
}.width('100%') }.width('100%')
Column() { Column() {
......
...@@ -2,71 +2,56 @@ import { HjInfo } from '@ohos/common' ...@@ -2,71 +2,56 @@ import { HjInfo } from '@ohos/common'
@Component @Component
export struct Shelf { export struct Shelf {
@Link dataSource: HjInfo[] @Link dataSource: HjInfo[]
@Styles commonPadding() { @Styles commonPadding() {
.padding({top:4, bottom:4}) .padding({ top: 4, bottom: 4 })
.alignSelf(ItemAlign.Start) .alignSelf(ItemAlign.Start)
} }
@Builder renderList() { @Builder renderList() {
Column() { Column() {
List(){ List() {
ForEach(this.dataSource, (item, index) => { ForEach(this.dataSource, (item, index) => {
ListItem(){ ListItem() {
Row() { Row() {
Column() { Column() {
Row(){ Text("区域:" + item.qymc).commonPadding()
Text("区域:").commonPadding() Text("货架号:" + item.hjh).commonPadding()
Text(item.kfdm).commonPadding() }.width('45%')
}.margin({left:20})
Row(){
Text("库房名称:").commonPadding()
Text(item.kfmc).commonPadding()
}
}.width('40%')
Column() { Column() {
Row(){ Text("层数:" + item.mchws).commonPadding()
Text("库房类型:").commonPadding()
Text(item.kflx).commonPadding() Text("货位数/层:" + item.hjcs).commonPadding()
}
Row(){ }.width('30%')
Text("优先级:").commonPadding()
Text(item.yxj + '').commonPadding()
}
}.width('40%')
Row() { Row() {
Radio({ value: 'Radio1', group: 'radioGroup' }) Text('仓库:' + item.kfmc)
.height(18) }.width('25%')
.width(18)
.onChange((isChecked: boolean) => {
console.log('Radio1 status is ' + isChecked)
})
}.width('10%')
}.commonPadding() }.commonPadding()
} }
}) })
}.divider({strokeWidth:1,color:'505050'}) }.divider({ strokeWidth: 1, color: '505050' })
}.width('100%').height('100%').backgroundColor('#fff') }.width('100%').height('100%').backgroundColor('#fff')
} }
@Builder renderEmpty() { @Builder renderEmpty() {
Flex({justifyContent:FlexAlign.Center,alignItems:ItemAlign.Center}) { Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
Column() { Column() {
Image($r("app.media.empty")).width("42%") Image($r("app.media.empty")).width("42%")
Text("暂无数据").fontSize(22).fontColor("#fff").margin({top: 5}) Text("暂无数据").fontSize(22).fontColor("#fff").margin({ top: 5 })
} }
}.height('70%') }.height('70%')
} }
build() { build() {
if(this.dataSource.length == 0) { if (this.dataSource.length == 0) {
this.renderEmpty() this.renderEmpty()
} else { } else {
this.renderList() this.renderList()
}
} }
}
} }
\ No newline at end of file
import bzhxModal from '../../../model/BzhxModel' import bzhxModal from '../../../model/BzhxModel'
import { BasicTable } from '../../../view/BasicTable/BasicTable'
import { TitleBar } from '../../../view/title/TitleBar' import { TitleBar } from '../../../view/title/TitleBar'
import { Bzhx, Logger } from '@ohos/common' import { Bzhx, BzhxDao, SQLiteContext } from '@ohos/common'
import { pmhxList } from './pmhxList' import { pmhxList } from './pmhxList'
@Entry @Entry
...@@ -11,6 +10,8 @@ export struct Pmhx { ...@@ -11,6 +10,8 @@ export struct Pmhx {
@State offsetNumber: number = 0 @State offsetNumber: number = 0
@State finished: boolean = false @State finished: boolean = false
@State pmdmsix: string = '' @State pmdmsix: string = ''
@State pmsl: number = 0
@State hxsl: number = 0
controller: SearchController = new SearchController() controller: SearchController = new SearchController()
aboutToAppear() { aboutToAppear() {
...@@ -23,6 +24,23 @@ export struct Pmhx { ...@@ -23,6 +24,23 @@ export struct Pmhx {
this.finished = true this.finished = true
} }
this.dataSource = [...this.dataSource, ...res] this.dataSource = [...this.dataSource, ...res]
this.getHxsl()
this.getPmsl()
}
// 号型数量
async getHxsl() {
const res = await SQLiteContext.with(BzhxDao).queryAll()
this.hxsl = res.length
}
// 号型数量
async getPmsl() {
let wp = SQLiteContext.with(BzhxDao).getPredicates()
wp.groupBy(['pmdmsix'])
const res = await SQLiteContext.with(BzhxDao).query(wp)
this.pmsl = res.length
} }
clearData() { clearData() {
...@@ -38,19 +56,20 @@ export struct Pmhx { ...@@ -38,19 +56,20 @@ export struct Pmhx {
Row() { Row() {
Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) {
Column() { Column() {
Text('品名数量: 0个') Text(`品名数量: ${this.pmsl}个`)
} }
Column() { Column() {
Text('号型数量: 0个') Text(`号型数量: ${this.hxsl}个`)
} }
} }
.height(80)
.width('100%') .width('100%')
.backgroundColor('#fff') .backgroundColor('#fff')
.height(52) .height(52)
.borderRadius(5) .borderRadius(5)
.padding({ left: 10, right: 10 }) .padding({ left: 10, right: 10 })
} }.margin({ top: 20 })
Row() { Row() {
Search({ placeholder: '请输入六位品名代码', controller: this.controller }) Search({ placeholder: '请输入六位品名代码', controller: this.controller })
...@@ -64,9 +83,13 @@ export struct Pmhx { ...@@ -64,9 +83,13 @@ export struct Pmhx {
this.pmdmsix = value this.pmdmsix = value
this.getPmhxList() this.getPmhxList()
}) })
.onChange((value) => {
this.clearData()
this.pmdmsix = value
this.getPmhxList()
})
.borderRadius(5) .borderRadius(5)
.margin({ top: 15 }) }.height(50).margin({ top: 30 })
}
Column() { Column() {
pmhxList({ pmhxList({
......
import { Gldw, Logger } from '@ohos/common' import { Gldw, Logger } from '@ohos/common'
@Component @Component
...@@ -6,13 +5,13 @@ export struct UnitList { ...@@ -6,13 +5,13 @@ export struct UnitList {
@Link dataSource: Gldw[] @Link dataSource: Gldw[]
@Link finished: boolean @Link finished: boolean
@Link offsetNumber: number @Link offsetNumber: number
onScrollEdge: () => void
scroller: Scroller = new Scroller()
@Styles commonPadding() { @Styles commonPadding() {
.padding({top:4, bottom:4}) .padding({ top: 4, bottom: 4 })
.alignSelf(ItemAlign.Start) .alignSelf(ItemAlign.Start)
} }
onScrollEdge: () => void
scroller: Scroller = new Scroller()
@Builder renderList() { @Builder renderList() {
Column() { Column() {
...@@ -28,49 +27,51 @@ export struct UnitList { ...@@ -28,49 +27,51 @@ export struct UnitList {
.padding({ top: 8, bottom: 8 }) .padding({ top: 8, bottom: 8 })
.width('60%') .width('60%')
} }
List({ space: 2, scroller: this.scroller }){
ForEach(this.dataSource, (item, index) => {
ListItem(){
Row() {
Column() {
Row(){
Text(item.dwdm).commonPadding()
}.margin({left:10})
}.width('40%')
Column() { List({ space: 2, scroller: this.scroller }) {
Row(){ ForEach(this.dataSource, (item, index) => {
Text(item.dwfh).commonPadding() ListItem() {
} Row() {
}.width('60%') Column() {
}.commonPadding() Row() {
}.borderRadius(4) Text(item.dwdm).commonPadding()
}) }.margin({ left: 10 })
}.divider({strokeWidth:1,color:'505050'}) }.width('40%')
.onScrollIndex((firstIndex: number, lastIndex: number) => {
if (!this.finished && this.dataSource.length == (lastIndex + 1) ) { Column() {
// 如果没完成并且划到最底部则调刷新数据接口 Row() {
this.offsetNumber ++ Text(item.dwfh).commonPadding()
this.onScrollEdge() }
} }.width('60%')
}) }.commonPadding()
}.borderRadius(4)
})
}.divider({ strokeWidth: 1, color: '505050' })
.margin({ bottom: 20 })
.onScrollIndex((firstIndex: number, lastIndex: number) => {
if (!this.finished && this.dataSource.length == (lastIndex + 1)) {
// 如果没完成并且划到最底部则调刷新数据接口
this.offsetNumber++
this.onScrollEdge()
}
})
}.width('100%').height('100%').backgroundColor('#fff') }.width('100%').height('100%').backgroundColor('#fff')
} }
@Builder renderEmpty() { @Builder renderEmpty() {
Flex({justifyContent:FlexAlign.Center,alignItems:ItemAlign.Center}) { Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
Column() { Column() {
Image($r("app.media.empty")).width("42%") Image($r("app.media.empty")).width("42%")
Text("暂无数据").fontSize(22).fontColor("#fff").margin({top: 5}) Text("暂无数据").fontSize(22).fontColor("#fff").margin({ top: 5 })
} }
}.height('70%') }.height('70%')
} }
build() { build() {
if(this.dataSource.length == 0) { if (this.dataSource.length == 0) {
this.renderEmpty() this.renderEmpty()
} else { } else {
this.renderList() this.renderList()
}
} }
}
} }
\ No newline at end of file
import { KfInfo } from '@ohos/common/src/main/ets/entity/KfInfo' import { KfInfo } from '@ohos/common/src/main/ets/entity/KfInfo'
import kfModel from '../../../model/KfModel'
@Component @Component
export struct HouseList { export struct HouseList {
...@@ -39,13 +40,19 @@ export struct HouseList { ...@@ -39,13 +40,19 @@ export struct HouseList {
} }
}.width('40%') }.width('40%')
Row() { Column() {
Radio({ value: 'Radio1', group: 'radioGroup' }) Radio({ value: item.guid, group: 'radioGroup' })
.checked(item.isdefault == '1')
.height(18) .height(18)
.width(18) .width(18)
.onChange((isChecked: boolean) => { .onChange((isChecked: boolean) => {
console.log('Radio1 status is ' + isChecked) if (isChecked) {
kfModel.update(item.guid)
}
}) })
if (item.isdefault == '1') {
Text('默认库房').fontColor('#3672cf')
}
}.width('10%') }.width('10%')
}.commonPadding() }.commonPadding()
} }
......
import router from '@ohos.router' import router from '@ohos.router'
import { import { BgglDao, Logger, SQLiteContext, StatusBarManager } from '@ohos/common';
StatusBarManager,
SQLiteContext, @Extend(Text) function numberStyle() {
BgglDao, .fontSize(20)
Logger .fontColor('#17d56b')
} from '@ohos/common'; .padding({ left: 5, right: 5 })
@Entry }
@Component @Component
export struct PageManagement { export struct PageManagement {
@State currentIndex: number = 0 @State currentIndex: number = 0
private controller: TabsController = new TabsController()
searchController: SearchController = new SearchController() searchController: SearchController = new SearchController()
@Prop @Watch('onCountUpdated') currentPageIndex: number
@State total: number = 0
@State dsj: number = 0
@State wlq: number = 0
@State ylq: number = 0
private controller: TabsController = new TabsController()
onCountUpdated(index: number) {
if (this.currentPageIndex == 2) {
this.getTotal()
this.getDsj()
this.getYlq()
this.getWlq()
}
}
@Builder TabBuilder(index: number, name: string) { @Builder TabBuilder(index: number, name: string) {
Column() { Column() {
...@@ -27,24 +41,35 @@ export struct PageManagement { ...@@ -27,24 +41,35 @@ export struct PageManagement {
}.width('100%') }.width('100%')
} }
onPageShow(){
this.getPackList()
}
// 获取包裹列表 // 获取包裹列表
async getPackList(ddh?: string) { async getPackList(ddh?: string) {
let wp = SQLiteContext.with(BgglDao).getPredicates() }
if(ddh) { async getTotal() {
wp.equalTo('DDH', ddh) const res = await SQLiteContext.with(BgglDao).queryAll()
} Logger.info('total>>', res.length + '')
this.total = res.length
}
wp.equalTo('WCZT','未完成') async getDsj() {
const res = await SQLiteContext.with(BgglDao).queryAll(wp) let wp = SQLiteContext.with(BgglDao).getPredicates()
const res1 = await SQLiteContext.with(BgglDao).queryAll() wp.equalTo('WCZT', '待上架')
const res = await SQLiteContext.with(BgglDao).query(wp)
this.dsj = res.length
}
Logger.info('包裹列表>>', JSON.stringify(res)) async getWlq() {
Logger.info('包裹列表1111>>', JSON.stringify(res1)) let wp = SQLiteContext.with(BgglDao).getPredicates()
wp.equalTo('WCZT', '未领取')
const res = await SQLiteContext.with(BgglDao).query(wp)
this.wlq = res.length
}
async getYlq() {
let wp = SQLiteContext.with(BgglDao).getPredicates()
wp.equalTo('WCZT', '已领取')
const res = await SQLiteContext.with(BgglDao).query(wp)
this.ylq = res.length
} }
build() { build() {
...@@ -119,48 +144,78 @@ export struct PageManagement { ...@@ -119,48 +144,78 @@ export struct PageManagement {
Row() { Row() {
Column() { Column() {
Row() { Row() {
Text("0条") Text(this.total + '').numberStyle()
Text("条")
} }
Text("订单数量").padding({ top: 8, bottom: 8 }) Text("订单数量").padding({ top: 8, bottom: 8 })
} }
}.width('50%').justifyContent(FlexAlign.Center).onClick(() => { }
.width('50%')
.justifyContent(FlexAlign.Center)
.onClick(() => {
router.pushUrl({ url: "pages/package/Pack", params: { router.pushUrl({ url: "pages/package/Pack", params: {
type: "all" type: "all"
} }) } })
}).border({ })
.border({
width: { left: '0lpx', right: '2lpx', top: '0lpx', bottom: '0lpx' }, width: { left: '0lpx', right: '2lpx', top: '0lpx', bottom: '0lpx' },
}).height('100%') })
.height('100%')
Row() { Row() {
Column() { Column() {
Text("待上架0条").onClick(() => { Row() {
Text(`待上架`)
Text(`${this.dsj}`).numberStyle()
Text(`条`)
}
.justifyContent(FlexAlign.Center)
.onClick(() => {
router.pushUrl({ url: "pages/package/Pack", params: { router.pushUrl({ url: "pages/package/Pack", params: {
type: "wait" type: "wait"
} }) } })
}).padding({ top: 10, bottom: 10 }).border({ })
.padding({ top: 10, bottom: 10 })
.border({
width: { left: '0lpx', right: '0lpx', top: '0lpx', bottom: '2lpx' }, width: { left: '0lpx', right: '0lpx', top: '0lpx', bottom: '2lpx' },
}).textAlign(TextAlign.Center).width('100%') })
.width('100%')
Text("未领取0条").onClick(() => { Row() {
Text(`未领取`)
Text(`${this.wlq}`).numberStyle()
Text(`条`)
}
.onClick(() => {
router.pushUrl({ url: "pages/package/Pack", params: { router.pushUrl({ url: "pages/package/Pack", params: {
type: "unclaimed" type: "unclaimed"
} }) } })
}).padding({ top: 10, bottom: 10 }).textAlign(TextAlign.Center).width('100%').border({ })
.padding({ top: 10, bottom: 10 })
.justifyContent(FlexAlign.Center)
.width('100%')
.border({
width: { left: 'lpx', right: '0lpx', top: '0lpx', bottom: '2lpx' }, width: { left: 'lpx', right: '0lpx', top: '0lpx', bottom: '2lpx' },
}) })
Text("已领取0条").onClick(() => { Row() {
Text(`已领取`)
Text(`${this.ylq}`).numberStyle()
Text(`条`)
}.onClick(() => {
router.pushUrl({ url: "pages/package/Pack", params: { router.pushUrl({ url: "pages/package/Pack", params: {
type: "received" type: "received"
} }) } })
}).padding({ top: 10, bottom: 10 }).textAlign(TextAlign.Center).width('100%') }).padding({ top: 10, bottom: 10 }).justifyContent(FlexAlign.Center).width('100%')
} }
}.width('50%').justifyContent(FlexAlign.Center) }.width('50%').justifyContent(FlexAlign.Center)
}.border({ }.border({
width: { left: '0lpx', right: '0lpx', top: '2lpx', bottom: '0lpx' }, width: { left: '0lpx', right: '0lpx', top: '2lpx', bottom: '0lpx' },
}).height(120) }).height(130)
} }
}.padding({top: `${StatusBarManager.get().getSystemBarOffset()}px`}) }.padding({ top: `${StatusBarManager.get().getSystemBarOffset()}px` })
.width('100%').backgroundColor('#fff') .width('100%')
} }
} }
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论