Commit e447d0d8 by 毛勇泽

Merge remote-tracking branch 'origin/master'

parents 636c2518 4318430a
export interface PmActive {
pmdm:string
wzpm:string
pzsl:number
crksl:number
wczt:string
hxmc?:string
}
\ No newline at end of file
......@@ -44,8 +44,8 @@ export interface CommonHxPzMxDto {
pmdmsix: string,
pmdmcode: string,
hxmc: string,
pzsl: string,
crksl: string,
pzsl: number,
crksl: number,
hwh: string,
mxguid: string,
pzmxguid: string
......
......@@ -84,6 +84,22 @@ export default abstract class BaseTable<T> implements ITable {
}
/**
* 清空表
*/
async clearTableBySql(sql): Promise<void> {
let db = await this.futureDb;
try {
// db.beginTransaction();
await db.executeSql(sql);
Logger.info('clearTableBySql>>', sql)
// db.commit();
} catch (e) {
Logger.error(this, "清空表失败:", e, sql);
db.rollBack();
}
}
/**
* 插入数据
* @param item 插入对象
*/
......
import relationalStore from '@ohos.data.relationalStore';
import { PmActive } from '../../bean/dto/BzhxDto';
import { Bzhx } from '../../entity/Bzhx';
import { Logger } from '../../utils/Logger';
import BaseTable, { ValueType } from '../BaseTable';
import { Table } from '../decorator/Decorators';
import { NativeSql } from '../sql/NativeSql';
......@@ -72,14 +74,15 @@ export class BzhxDao extends BaseTable<Bzhx> {
wp.orderByAsc('LSM');
return this.query(wp, this.getTableColumns())
}
async selectHXList(hx_map?: any): Promise<Bzhx[]> {
try {
let val_sql = "select * from TAB_XTWH_JCSJ_BZHX where "+
let val_sql = "select * from TAB_XTWH_JCSJ_BZHX where " +
" lsm = '" + hx_map["wzdm"] + "' " +
" or lsm in (" + hx_map["pmdm_hxmc"] + ")"+
" or lsm in (" + hx_map["pmdm_hxmc"] + ")" +
" or pmdmten = '" + hx_map["wzdm"] + "' " +
" or ( wzpm = '" + hx_map["wzdm"] + "' and ( substr(pmdmten,7)='0000' or pmdmten in (" + hx_map["pmdm_hxmc"] + ") ) )"+
" or ( wzpm = '" + hx_map["wzdm"] + "' and ( hxmc='无号配号' or hxmc in (" + hx_map["pmdm_hxmc"] + ") ) )" ;
" or ( wzpm = '" + hx_map["wzdm"] + "' and ( substr(pmdmten,7)='0000' or pmdmten in (" + hx_map["pmdm_hxmc"] + ") ) )" +
" or ( wzpm = '" + hx_map["wzdm"] + "' and ( hxmc='无号配号' or hxmc in (" + hx_map["pmdm_hxmc"] + ") ) )";
console.log('查询SQL语句=' + val_sql)
let db = await this.futureDb;
let rs = await db.querySql(val_sql);
......@@ -92,9 +95,71 @@ export class BzhxDao extends BaseTable<Bzhx> {
}
console.log('查询SQL结果=' + JSON.stringify(items))
return items;
}catch (err){
console.log("查询报错==》"+JSON.stringify(err))
} catch (err) {
console.log("查询报错==》" + JSON.stringify(err))
}
}
// 显示某凭证那些品种完成了那些品种未完成
async getPmhxActive(params, pageType) {
try {
let val_sql = NativeSql.getPmhxActiveSql(params, pageType);
Logger.info(this, val_sql)
let db = await this.futureDb;
let rs = await db.querySql(val_sql);
let items = []
if (rs.goToFirstRow()) {
do {
items.push(this.toDjcx(rs))
} while (rs.goToNextRow())
}
Logger.info(this, '显示某凭证那些品种完成了那些品种未完成>>' + JSON.stringify(items))
return items;
} catch (e) {
throw new Error('[查询异常]|' + e)
}
}
// 根据品名查号型
async getPmhxDetailActive(params, pageType) {
try {
let val_sql = NativeSql.getPmhxDetailActiveSql(params, pageType);
Logger.info(this, val_sql)
let db = await this.futureDb;
let rs = await db.querySql(val_sql);
let items = []
if (rs.goToFirstRow()) {
do {
items.push(this.toDetail(rs))
} while (rs.goToNextRow())
}
Logger.info(this, '显示某凭证那些品种完成了那些品种未完成>>' + JSON.stringify(items))
return items;
} catch (e) {
throw new Error('[查询异常]|' + e)
}
}
toDjcx(cursor: relationalStore.ResultSet): PmActive {
let info: PmActive = {
pmdm: cursor.getString(cursor.getColumnIndex('pmdm')),
wzpm: cursor.getString(cursor.getColumnIndex('wzpm')),
pzsl: cursor.getLong(cursor.getColumnIndex('pzsl')),
crksl: cursor.getLong(cursor.getColumnIndex('crksl')),
wczt: cursor.getString(cursor.getColumnIndex('WCZT')),
};
return info;
}
toDetail(cursor: relationalStore.ResultSet): PmActive {
let info: PmActive = {
pmdm: cursor.getString(cursor.getColumnIndex('pmdm')),
wzpm: cursor.getString(cursor.getColumnIndex('wzpm')),
hxmc: cursor.getString(cursor.getColumnIndex('hxmc')),
pzsl: cursor.getLong(cursor.getColumnIndex('pzsl')),
crksl: cursor.getLong(cursor.getColumnIndex('crksl')),
wczt: cursor.getString(cursor.getColumnIndex('WCZT')),
};
return info;
}
}
\ No newline at end of file
......@@ -361,12 +361,28 @@ export class WzcrkmxDao extends BaseTable<Wzcrkmx> {
items.push(this.toCommonHxPzMx(rs))
} while (rs.goToNextRow())
}
Logger.info(this, 'queryAll items=' + JSON.stringify(items))
Logger.info(this, 'queryAll items9999=' + 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.getLong(cursor.getColumnIndex('pzsl')),
crksl: cursor.getLong(cursor.getColumnIndex('crksl')),
hwh: cursor.getString(cursor.getColumnIndex('hwh')),
mxguid: cursor.getString(cursor.getColumnIndex('mxguid')),
pzmxguid: cursor.getString(cursor.getColumnIndex('pzmxguid'))
};
return info;
}
async exportPageSql(params): Promise<TestHwWzDto[]>{
try {
let val_sql = NativeSql.exportPageSql(params);
......@@ -386,20 +402,7 @@ export class WzcrkmxDao extends BaseTable<Wzcrkmx> {
}
}
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 {
......
import { uuid } from '@ohos/common/src/main/ets/utils/util'
import { Wzdm, Wzhxdm,Bzhx,SQLiteContext, WzdmDao,WzhxdmDao, BzhxDao,Logger } from '@ohos/common'
import { Bzhx, BzhxDao, Logger, SQLiteContext, Wzdm, WzdmDao, Wzhxdm, WzhxdmDao } from '@ohos/common'
// 被装号型
class BzhxModel {
......@@ -9,12 +9,12 @@ class BzhxModel {
const copyData = data.map(v => {
return {
...v,
pmdmSix: v.pmdmTen.slice(0,6),
lsm:v.pmdmSix,
guid:uuid(),
pmguid:"",
hxguid:"",
pmguid_old:""
pmdmSix: v.pmdmTen.slice(0, 6),
lsm: v.pmdmSix,
guid: uuid(),
pmguid: "",
hxguid: "",
pmguid_old: ""
}
})
......@@ -22,24 +22,24 @@ class BzhxModel {
}
// 查询被装号型
async query(offset: number, pmdmsix? : string): Promise<Bzhx[]> {
async query(offset: number, pmdmsix?: string): Promise<Bzhx[]> {
let res = await SQLiteContext.with(BzhxDao).getBzhxList(offset, pmdmsix)
return res;
}
// 根据品名代码查询
async queryByCode(pmdmcode:string): Promise<Bzhx> {
async queryByCode(pmdmcode: string): Promise<Bzhx> {
let res = await SQLiteContext.with(BzhxDao).getBzhxByCode(pmdmcode)
return res[0];
}
async queryLsm(lsm?: string):Promise<Bzhx[]> {
async queryLsm(lsm?: string): Promise<Bzhx[]> {
let res = await SQLiteContext.with(BzhxDao).selectWZInfo(lsm);
Logger.info("查询LSM结果"+JSON.stringify(res))
Logger.info("查询LSM结果" + JSON.stringify(res))
return res;
}
async queryHXlist(hx_map?: any):Promise<Bzhx[]> {
async queryHXlist(hx_map?: any): Promise<Bzhx[]> {
let res = await SQLiteContext.with(BzhxDao).selectHXList(hx_map);
return res;
}
......@@ -48,6 +48,15 @@ class BzhxModel {
await SQLiteContext.with(WzhxdmDao).clearTable()
}
// 显示某凭证那些品种完成了那些品种未完成
async getPmhxActive(params, pageType) {
return await SQLiteContext.with(BzhxDao).getPmhxActive(params, pageType);
}
// 根据品名查号型
async getPmhxDetailActive(params, pageType) {
return await SQLiteContext.with(BzhxDao).getPmhxDetailActive(params, pageType);
}
}
const bzhxModel = new BzhxModel()
......
import { DrInfo, SQLiteContext, DrInfoDao } from '@ohos/common'
import { uuid, dateUtils } from '@ohos/common/src/main/ets/utils/util'
import { DrInfo, DrInfoDao, Logger, SQLiteContext } from '@ohos/common'
import { dateUtils, uuid } from '@ohos/common/src/main/ets/utils/util'
// 导入
class DrModel {
......@@ -13,6 +13,7 @@ class DrModel {
size: 0,
time: dateUtils.formatDateTime(new Date(), 'all')
}
Logger.info('添加导入>>', JSON.stringify(obj))
await SQLiteContext.with(DrInfoDao).insert(obj)
}
......
import { PmActive } from '@ohos/common/src/main/ets/bean/dto/BzhxDto'
import { Logger } from '@ohos/common/src/main/ets/utils/Logger'
import bzhxModel from '../../../../model/BzhxModel'
@Extend(Text) function activeColor() {
.fontColor('#4fd055')
.fontSize(20)
}
@CustomDialog
@Component
export struct LeftDialog {
controller: CustomDialogController
cancel: () => void
confirm: () => void
@State datasourcepm: PmActive[] = []
pageType: string = ''
wzcrkguid: string = ''
@State wcsl: number = 0
@State wwcsl: number = 0
@State pzslhj: number = 0
@State crkhj: number = 0
@State pmwcsl: number = 0
@State pmwwcsl: number = 0
@State pmpzslhj: number = 0
@State pmcrkhj: number = 0
current: PmActive
aboutToAppear() {
Logger.info('this.current>>', JSON.stringify(this.current))
this.handleviewpm(this.current)
}
async handleviewpm(row) {
this.datasourcepm = [];
const params = {
wzcrkguid: this.wzcrkguid,
pmdmcode: row.pmdm,
};
// const res = await selectInformationType(
// "GY_M_PMV3",
// getPmhxDetailActive(params, this.pageType)
// );
const res = await bzhxModel.getPmhxDetailActive(params, this.pageType) as PmActive[]
console.log("查询sql", JSON.stringify(res));
this.datasourcepm = res;
const wcData = res.filter((item) => item.wczt == "");
console.log("wcDatawcData", wcData);
this.pmwcsl = wcData.length;
const wwcData = res.filter((item) => item.wczt == "未完成");
this.pmwwcsl = wwcData.length;
const pzslList = res.map((item) => item.pzsl);
const crkslList = res.map((item) => item.crksl);
var pzslHj = 0;
var crkslHj = 0;
if (pzslList && pzslList.length > 0) {
pzslHj = pzslList.reduce(function (prev, cur, index, array) {
return Number(prev) + Number(cur);
});
} else {
pzslHj = 0;
}
if (crkslList && crkslList.length > 0) {
crkslHj = crkslList.reduce(function (prev, cur, index, array) {
return Number(prev) + Number(cur);
});
} else {
crkslHj = 0;
}
// return pzslHj + '/' + crkslHj
this.pmpzslhj = pzslHj;
this.pmcrkhj = crkslHj;
// this.dialogController.open()
}
convertionCrkName() {
// return this.pageType+'数量'
switch (this.pageType) {
case "入库":
return "入库数量";
case "出库":
return "出库数量";
case "盘库":
return "盘库数量";
case "调号":
return "实调数量";
case "倒库":
return "实倒数量";
case "换位":
return "换入数量";
default:
return "出入库数量";
}
}
convertionPzslName() {
switch (this.pageType) {
case "入库":
return "凭证数量";
case "出库":
return "凭证数量";
case "盘库":
return "入库数量";
case "调号":
return "应调数量";
case "倒库":
return "应倒数量";
case "换位":
return "换出数量";
default:
return "凭证数量";
}
}
build() {
Column() {
Column() {
Flex({ justifyContent: FlexAlign.SpaceBetween }) {
Text('品名:').activeColor()
Text(this.current.wzpm).activeColor()
}.padding({ top: 5, bottom: 5 })
Flex({ justifyContent: FlexAlign.SpaceBetween }) {
Text('数量:').activeColor()
Text(this.pmcrkhj + '/' + this.pmpzslhj + '个').activeColor()
}.padding({ top: 5, bottom: 5 })
Flex({ justifyContent: FlexAlign.SpaceBetween }) {
Text('未完成/完成:').activeColor()
Text(this.pmwcsl + '/' + this.pmwcsl + '个').activeColor()
}.padding({ top: 5, bottom: 5 })
}.margin({ top: 25, left: 10 })
List({ space: 2 }) {
ForEach(this.datasourcepm, (item: PmActive) => {
ListItem() {
Row() {
Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center }) {
Text('号型:' + item.hxmc).fontSize(14).fontColor('#3b4144')
Text(this.convertionPzslName() + item.pzsl).fontSize(14).fontColor('#3b4144').margin({ top: 14 })
}
.width('70%')
Blank()
.layoutWeight(1)
Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center, alignItems: ItemAlign.Start }) {
if (item.wczt == '未完成') {
Text('未完成').fontSize(14)
} else {
Text('完成').fontSize(14)
}
Text(this.convertionCrkName() + item.crksl).fontSize(14).fontColor('#3b4144').margin({ top: 14 })
}
.width('40%')
}
.width('100%')
.justifyContent(FlexAlign.SpaceBetween)
.padding({ left: 12, right: 18 })
}.height(90)
})
}
}.width('100%')
.width('60%')
.height('100%')
.backgroundColor('#fff')
}
}
\ No newline at end of file
......@@ -5,7 +5,7 @@ import { Wzcrk } from '@ohos/common/src/main/ets/entity/Wzcrk';
import { WzInfo } from './WzInfo'
import { PzInfo } from '../WzInPage/WzinDetail/PzInfo'
import wzcrkmxModel from '../../../model/WzcrkmxModel';
import { historicalInformationClass, PzFormClass, WzClass, WzmxClass } from './Wzcrk.data';
import { PzFormClass, WzClass, WzmxClass } from './Wzcrk.data';
import promptAction from '@ohos.promptAction';
import wzcrkModel from '../../../model/WzcrkModel';
import { AddWzin } from '../WzInPage/WzinDetail/AddWzin'
......@@ -41,7 +41,6 @@ struct WzinDetail {
@State pageType: string = '入库'
@State pzxqGuild: string = ''
@State wzcrk: WzClass = null // 物资出入库单据信息
@State historicalInformation: historicalInformationClass[] = [] // 物资出入库明细
@State pzForm: PzFormClass = null // 物资出入库表单详情
@State flag: boolean = true
private controller: TabsController = new TabsController()
......@@ -92,7 +91,6 @@ struct WzinDetail {
}
this.getWzFormDetail()
this.getWzmxList()
this.scanCodeListen()
IdentifyService.openScanPort()
}
......@@ -104,14 +102,6 @@ struct WzinDetail {
this.pzForm = new PzFormClass(res[0])
}
// 获取物资列表详情信息
async getWzmxList(wzpm?) {
const pzmxRes = await wzcrkModel.getPzMx({ guid: this.wzcrk.guid })
pzmxRes.forEach((element) => {
this.historicalInformation.push(new historicalInformationClass(element))
})
Logger.info('接收到出入库物资明细信息>>', JSON.stringify(pzmxRes))
}
/***
* @description: 保存
......@@ -227,8 +217,6 @@ struct WzinDetail {
WzInfo({
wzcrk: this.wzcrk,
pzForm: this.pzForm,
getDetail: this.getWzmxList,
historicalInformation: this.historicalInformation,
pageType: this.pageType,
dataType: this.dataType,
isHaveButton: this.isHaveButton
......@@ -254,7 +242,6 @@ struct WzinDetail {
Button("保存").CommonButtonStyle().width(['入库', '出库'].includes(this.pageType) ? '50%' : '90%')
.onClick(async () => {
try {
Logger.info('保存的入库明细数据>>', JSON.stringify(this.historicalInformation))
this.submit()
} catch (e) {
......
......@@ -11,6 +11,8 @@ import emitter from '@ohos.events.emitter';
import Prompt from '@system.prompt';
import wzcrkmxModel from '../../../model/WzcrkmxModel';
import { dateUtils, uuid } from '@ohos/common/src/main/ets/utils/util';
import promptAction from '@ohos.promptAction';
import wzcrkModel from '../../../model/WzcrkModel';
@Extend(Button) function CommonButtonStyle() {
......@@ -44,7 +46,6 @@ export struct WzInfo {
@State kfmc: string = ''
@State rkkfmc: string = ''
@ObjectLink wzcrk: WzClass
getDetail: (wzpm?: string) => void
scanInfoDialog: CustomDialogController = new CustomDialogController({
builder: WzScanInfoDialog({
container: this.container,
......@@ -136,6 +137,8 @@ export struct WzInfo {
// 页面初始化
aboutToAppear() {
this.pzxqGuild = this.wzcrk.guid
// 获取物资明细信息
this.getMxDetailsData()
this.getData()
this.scanCodeListen();
}
......@@ -143,7 +146,6 @@ export struct WzInfo {
// 在自定义组件即将析构销毁时将dialogController置空
aboutToDisappear() {
this.scanInfoDialog = undefined // 将dialogController置空
Logger.info('Aaaaa>>', JSON.stringify(this.historicalInformation))
}
scanCodeListen() {
......@@ -169,6 +171,30 @@ export struct WzInfo {
}
}
async getMxDetailsData() {
try {
const params = {
guid: this.pzxqGuild
}
const res = await wzcrkModel.getPzMx(params)
// 3.设置物资数据状态
if (res && res.length > 0) {
this.isAutomation = false
res.forEach(element => {
this.historicalInformation.push(new historicalInformationClass(element))
})
this.setDefaultActive()
} else {
this.isAutomation = true
this.historicalInformation = []
}
} catch (e) {
promptAction.showToast({
message: '获取明细信息失败'
})
}
}
/***
* @description: 扫码解析
*/
......@@ -438,8 +464,13 @@ export struct WzInfo {
})
}
this.currentPmdmcode = ITEM.pmdmcode
// @ts-ignore
this.historicalInformation = res
this.historicalInformation = []
res.forEach(element => {
this.historicalInformation.push(new historicalInformationClass(element))
})
res.forEach(i => {
Logger.info(this, '赋值成为了什么', JSON.stringify(i))
})
this.setDefaultActive()
callback && callback()
} catch (e) {
......@@ -466,6 +497,51 @@ export struct WzInfo {
/***
* @description: 切换总数
* @param {*}
* @return {*}
* @author: 王弘钢
*/
async handleNumberBoxChangeValue(row, that) {
try {
const updateParams = {
mxguid: row.mxguid,
hwh: row.hwh || this.pzForm.hwh,
crksl: row.crksl
}
if (this.pageType == '倒库' || this.pageType == '调号' || this.pageType == '换位') {
if (row.currentModel) {
if (row.crksl < 0) {
promptAction.showToast({
message: '当前模式不支持修改为负数'
})
updateParams.crksl = 0
}
} else {
if (row.crksl > 0) {
promptAction.showToast({
message: '当前模式不支持修改为正数'
})
updateParams.crksl = 0
}
}
}
await wzcrkmxModel.updateWzmx(updateParams)
// createOrFindSQL("GY_M_PMV3", updateWzmx(updateParams))
console.log('event,element,count', 'asdhasudaugduay')
that.pageInit(row, 'update')
} catch (e) {
console.log("更新数字报错了!!!!!!" + e.stack)
//TODO handle the exception
promptAction.showToast({
message: '更新数据失败'
})
}
}
/***
* @description: 单据明细新增/修改
*/
async handleSetInsertOrUpdate(res, ITEM) {
......@@ -506,7 +582,7 @@ export struct WzInfo {
}
console.log("updateParams", JSON.stringify(updateParams))
let s = await wzcrkmxModel.updateWzmx(updateParams)
console.log("updateParams执行成功或者失败:" + JSON.stringify(this.historicalInformation))
console.log("updateParams执行成功或者失败:" + s)
} else {
var insert_crksl = 0
if (this.pageType == '倒库' || this.pageType == '调号' || this.pageType == '换位') {
......@@ -1146,41 +1222,42 @@ export struct WzInfo {
.width("100%")
Row() {
if (this.isAutomation) {
Column() {
Text("请扫描货位码").fontColor("#36a3c0").fontSize(24)
}.width("100%").height(480)
} else {
Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) {
Search({ placeholder: '请输入品名名称', controller: this.searchcontroller })
.height(40)
.backgroundColor('#F5F5F5')
.placeholderColor(Color.Grey)
.textAlign(TextAlign.Center)
.placeholderFont({ size: 14, weight: 400 })
.textFont({ size: 14, weight: 400 })
.width('75%')
.onSubmit((value: string) => {
this.getDetail(value)
})
.onChange((value: string) => {
if (this.isAutomation) {
Column() {
Text("请扫描货位码").fontColor("#36a3c0").fontSize(24)
}.width("100%").height(30)
} else {
Search({ placeholder: '请输入品名名称', controller: this.searchcontroller })
.height(40)
.backgroundColor('#F5F5F5')
.placeholderColor(Color.Grey)
.textAlign(TextAlign.Center)
.placeholderFont({ size: 14, weight: 400 })
.textFont({ size: 14, weight: 400 })
.width('75%')
.onSubmit((value: string) => {
})
.onChange((value: string) => {
})
.margin({ left: 10 })
.borderRadius(5)
Button("查看状态").CommonButtonStyle().width("25%").margin({ left: 5, right: 5 }).onClick(() => {
router.pushUrl({ url: 'pages/metailmange/Common/WzStatus', params: {
wzcrkguid: this.pzxqGuild,
pageType: this.pageType
}})
})
.margin({ left: 10 })
.borderRadius(5)
Button("查看状态").CommonButtonStyle().width("25%").margin({ left: 5, right: 5 }).onClick(() => {
router.pushUrl({ url: 'pages/metailmange/WzStatus', params: {
wzmx: this.historicalInformation
} })
})
}
}.width("100%")
}
}.padding({ top: 10, bottom: 10 }).width("100%")
Column() {
List() {
ForEach(this.historicalInformation, (item) => {
ListItem() {
WzList({ wzmx: item })
WzList({ wzmx: item, handleNumberBoxChangeValue: this.handleNumberBoxChangeValue, that: this })
}
})
}
......
......@@ -3,6 +3,9 @@ import { historicalInformationClass, WzmxClass } from './Wzcrk.data'
@Component
export struct WzList {
@ObjectLink wzmx: historicalInformationClass
@State that: any = null
handleNumberBoxChangeValue: (wzmx: historicalInformationClass, that) => void
controller: TextInputController = new TextInputController()
build() {
Column() {
......@@ -27,17 +30,26 @@ export struct WzList {
Row() {
Counter() {
Text(this.wzmx.crksl + '')
TextInput({ text: this.wzmx.crksl + '', controller: this.controller})
.onChange((value) => {
this.wzmx.crksl = Number(value)
})
.onSubmit(() => {
this.handleNumberBoxChangeValue(this.wzmx, this.that)
})
.borderRadius(0).backgroundColor('#fff').fontSize(15).textAlign(TextAlign.Center)
}
.width(120)
.width(130)
.onInc(() => {
this.wzmx.crksl = this.wzmx.crksl + 1
this.handleNumberBoxChangeValue(this.wzmx, this.that)
})
.onDec(() => {
if( this.wzmx.crksl == 0) {
return
}
this.wzmx.crksl = this.wzmx.crksl - 1
this.handleNumberBoxChangeValue(this.wzmx, this.that)
})
}.alignSelf(ItemAlign.End)
......
import { TitleBar } from '../../../view/title/TitleBar'
import router from '@ohos.router'
import { WzmxClass } from './Wzcrk.data'
import { dateUtils } from '@ohos/common'
import bzhxModel from '../../../model/BzhxModel'
import { PmActive } from '@ohos/common/src/main/ets/bean/dto/BzhxDto'
import { LeftDialog } from './Dialog/LeftDialog'
@Extend(Button) function CommonButtonStyle() {
.borderWidth(2)
.borderColor('#0fa983')
.backgroundColor('#fff')
.fontColor('#0fa983')
.borderRadius(3)
.type(ButtonType.Normal)
.height(30)
.stateEffect(true)
}
interface params {
wzcrkguid: string,
pageType: string
}
@Entry
@Component
export struct WzStatus {
@State pageType: string = ''
@State wzcrkguid: string = ''
@State wcsl: number = 0
@State wwcsl: number = 0
@State pzslhj: number = 0
@State crkhj: number = 0
@State pmwcsl: number = 0
@State pmwwcsl: number = 0
@State pmpzslhj: number = 0
@State pmcrkhj: number = 0
@State current: PmActive = null
dialogController: CustomDialogController = new CustomDialogController({
builder: LeftDialog({
cancel: this.onCancel,
confirm: this.onSubmit,
current: this.current,
pageType: this.pageType,
wzcrkguid: this.wzcrkguid
}),
alignment: DialogAlignment.CenterEnd,
customStyle: true,
})
@State private dataSource: PmActive[] = []
@State private datasourcepm: PmActive[] = []
aboutToAppear() {
const params = router.getParams() as params
this.pageType = params.pageType
this.wzcrkguid = params.wzcrkguid
this.init(this.wzcrkguid)
}
convertionCrkName() {
// return this.pageType+'数量'
switch (this.pageType) {
case "入库":
return "入库数量";
case "出库":
return "出库数量";
case "盘库":
return "盘库数量";
case "调号":
return "实调数量";
case "倒库":
return "实倒数量";
case "换位":
return "换入数量";
default:
return "出入库数量";
}
}
convertionPzslName() {
switch (this.pageType) {
case "入库":
return "凭证数量";
case "出库":
return "凭证数量";
case "盘库":
return "入库数量";
case "调号":
return "应调数量";
case "倒库":
return "应倒数量";
case "换位":
return "换出数量";
default:
return "凭证数量";
}
}
async init(wzcrkguid) {
try {
console.log("查询状态开始", dateUtils.formatDate(new Date()));
const params = {
wzcrkguid,
};
const res = await bzhxModel.getPmhxActive(params, this.pageType) as PmActive[]
console.log("查询状态结束", dateUtils.formatDate(new Date()));
// console.log("查询数据", res);
this.dataSource = res;
const wcData = res.filter((item) => item.wczt == "已完成");
console.log("wcDatawcData", wcData);
this.wcsl = wcData.length;
const wwcData = res.filter((item) => item.wczt == "未完成");
this.wwcsl = wwcData.length;
const pzslList = res.map((item) => item.pzsl);
const crkslList = res.map((item) => item.crksl);
var pzslHj = 0;
var crkslHj = 0;
if (pzslList && pzslList.length > 0) {
pzslHj = pzslList.reduce(function (prev, cur, index, array) {
return Number(prev) + Number(cur);
});
} else {
pzslHj = 0;
}
if (crkslList && crkslList.length > 0) {
crkslHj = crkslList.reduce(function (prev, cur, index, array) {
return Number(prev) + Number(cur);
});
} else {
crkslHj = 0;
}
// return pzslHj + '/' + crkslHj
this.pzslhj = pzslHj;
this.crkhj = crkslHj;
} catch (e) {
//TODO handle the exception
}
}
async handleviewpm(row) {
this.datasourcepm = [];
this.current = row;
const params = {
wzcrkguid: this.wzcrkguid,
pmdmcode: row.pmdm,
};
// const res = await selectInformationType(
// "GY_M_PMV3",
// getPmhxDetailActive(params, this.pageType)
// );
const res = await bzhxModel.getPmhxDetailActive(params, this.pageType) as PmActive[]
console.log("查询sql", res);
this.datasourcepm = res;
const wcData = res.filter((item) => item.wczt == "");
console.log("wcDatawcData", wcData);
this.pmwcsl = wcData.length;
const wwcData = res.filter((item) => item.wczt == "未完成");
this.pmwwcsl = wwcData.length;
const pzslList = res.map((item) => item.pzsl);
const crkslList = res.map((item) => item.crksl);
var pzslHj = 0;
var crkslHj = 0;
if (pzslList && pzslList.length > 0) {
pzslHj = pzslList.reduce(function (prev, cur, index, array) {
return Number(prev) + Number(cur);
});
} else {
pzslHj = 0;
}
if (crkslList && crkslList.length > 0) {
crkslHj = crkslList.reduce(function (prev, cur, index, array) {
return Number(prev) + Number(cur);
});
} else {
crkslHj = 0;
}
// return pzslHj + '/' + crkslHj
this.pmpzslhj = pzslHj;
this.pmcrkhj = crkslHj;
this.dialogController.open()
}
onCancel() {
console.info('------取消------')
}
onSubmit() {
console.info('------确认------')
}
existApp() {
console.info('Click the callback in the blank area')
}
build() {
Column() {
TitleBar({ title: "物资状态" })
Flex({ direction: FlexDirection.Column }) {
Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) {
Column() {
Text('完成:' + this.wcsl + '个' + ' 未完成:' + this.wwcsl + '个').fontSize(13)
}
Column() {
Text('数量:' + this.crkhj + '/' + this.pzslhj + '个').fontSize(13)
}
}
.width('100%')
.backgroundColor('#fff')
.height(52)
.borderRadius(5)
.margin({ bottom: 10 })
.padding({ left: 10, right: 10 })
Row() {
List({ space: 2 }) {
ForEach(this.dataSource, (item: PmActive) => {
ListItem() {
Row() {
Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center }) {
Text('名称: ' + item.wzpm).fontSize(14).fontColor('#3b4144')
Text('代码: ' + item.pmdm).fontSize(14).fontColor('#3b4144')
Button('号型信息').CommonButtonStyle()
}
.width('70%')
Blank()
.layoutWeight(1)
Flex({
direction: FlexDirection.Column,
justifyContent: FlexAlign.Center,
alignItems: ItemAlign.Start
}) {
Text(this.convertionPzslName() + item.pzsl).fontSize(14).fontColor('#3b4144')
Text(this.convertionCrkName() + item.crksl).fontSize(14).fontColor('#3b4144')
// Text(item.status).fontSize(14).fontColor( item.status == '未完成' ? 'red': 'green')
if (item.wczt == '未完成') {
Text('未完成').fontSize(14).fontColor('red')
} else {
Text('完成').fontSize(14).fontColor('green')
}
}
.width('40%')
}
.width('100%')
.justifyContent(FlexAlign.SpaceBetween)
.padding({ left: 12, right: 18 })
}
.height(90)
.onClick(() => {
this.current = item
this.dialogController.open()
})
})
}
.width('100%')
.backgroundColor('#fff')
.divider({ strokeWidth: 1, color: 'rgb(242,242,242)' }) // 每行之间的分界线
}.margin({ bottom: 50 })
}.padding({ bottom: 20, left: 20, right: 20 })
}
.height('100%')
.linearGradient({
direction: GradientDirection.RightBottom,
repeating: true,
colors: [['#36a3c0', 0.0], ['#97c6a6', 1.0], ['#c7d799', 2.0]]
})
}
}
\ No newline at end of file
......@@ -20,7 +20,6 @@ import { ExportOrderDialog } from '../../../view/ExportOrderDialog/ExportOrderDi
.borderRadius(7)
.type(ButtonType.Normal)
.stateEffect(true)
}
interface SearchData {
......@@ -30,7 +29,7 @@ interface SearchData {
@Entry
@Component
struct WzReversePage {
struct WzConversionPage {
@State fontColor: string = '#182431'
@State selectedFontColor: string = '#fff'
@State currentIndex: number = 0
......
......@@ -32,7 +32,7 @@ interface SearchData {
@Entry
@Component
export struct WzInPage {
export struct WzExchangePage {
@State fontColor: string = '#182431'
@State selectedFontColor: string = '#fff'
@State currentIndex: number = 0
......
import { WzmxClass } from '../../Common/Wzcrk.data'
@CustomDialog
@Component
export struct LeftDialog {
controller: CustomDialogController
cancel: () => void
confirm: () => void
private item: WzmxClass
build() {
Column() {
List({ space: 2 }) {
ListItem() {
Row() {
Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center }) {
Text('号型:' + this.item.xh).fontSize(12).fontColor('#3b4144')
Text('凭证数量:' + this.item.pzsl).fontSize(12).fontColor('#3b4144').margin({ top: 30 })
}
.width('70%')
Blank()
.layoutWeight(1)
Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center, alignItems: ItemAlign.Start }) {
if(this.item.wczt == '未完成' && this.item.crksl < this.item.pzsl) {
Text('未完成').fontSize(14).fontColor('red')
} else {
Text('完成').fontSize(14).fontColor( 'green')
}
Text('入库数量: ' + this.item.crksl).fontSize(12).fontColor('#3b4144').margin({ top: 30 })
}
.width('40%')
}
.width('100%')
.justifyContent(FlexAlign.SpaceBetween)
.padding({ left: 12, right: 18 })
}.height(90)
}.margin({ top: 100 })
}.width('100%')
.width('60%')
.height('100%')
.backgroundColor('#fff')
}
}
\ No newline at end of file
......@@ -85,7 +85,7 @@ struct WzInvDetail{
TabContent() {
Column() {
WzInfo({ wzcrk: this.wzcrk, getDetail: this.getDetail })
WzInfo({ wzcrk: this.wzcrk })
}.width("100%")
}.tabBar(this.TabBuilder(1, '物资信息'))
}
......
......@@ -30,7 +30,7 @@ interface SearchData {
@Entry
@Component
struct WzReversePage {
struct WzInvPage {
@State fontColor: string = '#182431'
@State selectedFontColor: string = '#fff'
@State currentIndex: number = 0
......
......@@ -92,7 +92,7 @@ struct WzOutDetail {
TabContent() {
Column() {
WzInfo({ wzcrk: this.wzcrk, getDetail: this.getDetail, pageType: "出库" })
WzInfo({ wzcrk: this.wzcrk, pageType: "出库" })
}.width("100%")
}.tabBar(this.TabBuilder(1, '物资信息'))
}
......
......@@ -32,7 +32,7 @@ interface SearchData {
@Entry
@Component
export struct WzInPage {
export struct WzOutPage {
@State fontColor: string = '#182431'
@State selectedFontColor: string = '#fff'
@State currentIndex: number = 0
......
......@@ -19,7 +19,7 @@ struct WzReversePage{
@State selectedFontColor: string = '#fff'
@State currentIndex: number = 0
private controller: TabsController = new TabsController()
private searchcontroller: SearchController = new SearchController()
private searchcontroller: SearchController = new SearchController()
itemClick() {
router.pushUrl({url:'pages/order_detail/PzPourStoragePage'})
}
......
import { LeftDialog } from '../metailmange/WzInPage/WzinDetail/LeftDialog'
import { TitleBar } from '../../view/title/TitleBar'
import router from '@ohos.router'
import { WzmxClass } from './Common/Wzcrk.data'
@Extend(Button) function CommonButtonStyle() {
.borderWidth(2)
.borderColor('#0fa983')
.backgroundColor('#fff')
.fontColor('#0fa983')
.borderRadius(3)
.type(ButtonType.Normal)
.height(30)
.stateEffect(true)
}
interface params {
wzmx: WzmxClass[]
}
@Entry
@Component
export struct WzStatus {
@State private finishNum: number = 0
@State private unFinishNum: number = 5
@State private numberPercentage: string = "0/500个"
@State show: boolean = false
@State currentItem: WzmxClass = null
@State private dataSource: WzmxClass[] = []
// @State private dataSourceGroup: WzmxClass[] = [] // 物资代码相同的合并
aboutToAppear() {
const params = router.getParams() as params
this.dataSource = params.wzmx
const pzsl = this.dataSource.map(v => Number(v.pzsl)).reduce((a, b) => a + b, 0)
const crksl = this.dataSource.map(v => Number(v.crksl)).reduce((a, b) => a + b, 0)
this.numberPercentage = crksl + '/' + pzsl
// for (let i = 0; i < this.dataSource.length; i++) {
// const element = this.dataSource[i];
// const index = this.dataSourceGroup.findIndex(v => v.pmdmSix === element.pmdmSix)
// if(index == -1) {
// this.dataSourceGroup.push(element)
// } else{
// this.dataSourceGroup[index].crksl += this.dataSourceGroup[index].crksl
// this.dataSourceGroup[index].pzsl += this.dataSourceGroup[index].pzsl
// }
// }
// this.dataSourceGroup = dataSource
}
dialogController: CustomDialogController = new CustomDialogController({
builder: LeftDialog({
cancel: this.onCancel,
confirm: this.onSubmit,
item:this.currentItem
}),
alignment: DialogAlignment.CenterEnd,
customStyle: true,
})
onCancel() {
console.info('------取消------')
}
onSubmit() {
console.info('------确认------')
}
existApp() {
console.info('Click the callback in the blank area')
}
build() {
Column() {
TitleBar({ title: "物资状态" })
Flex({ direction: FlexDirection.Column }) {
Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) {
Column() {
Text('完成:' + this.finishNum + '个' + ' 未完成:' + this.unFinishNum + '个').fontSize(13)
}
Column() {
Text('数量:' + this.numberPercentage).fontSize(13)
}
}
.width('100%')
.backgroundColor('#fff')
.height(52)
.borderRadius(5)
.margin({ bottom: 10 })
.padding({ left: 10, right: 10 })
Row() {
List({ space: 2 }) {
ForEach(this.dataSource, (item: WzmxClass) => {
ListItem() {
Row() {
Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center }) {
Text('名称: ' + item.wzpm).fontSize(14).fontColor('#3b4144')
Text('代码: ' + item.pmdmSix).fontSize(14).fontColor('#3b4144')
Button('号型信息').CommonButtonStyle()
}
.width('70%')
Blank()
.layoutWeight(1)
Flex({
direction: FlexDirection.Column,
justifyContent: FlexAlign.Center,
alignItems: ItemAlign.Start
}) {
Text('凭证数量: ' + item.pzsl).fontSize(14).fontColor('#3b4144')
Text('入库数量: ' + item.crksl).fontSize(14).fontColor('#3b4144')
// Text(item.status).fontSize(14).fontColor( item.status == '未完成' ? 'red': 'green')
if(item.wczt == '未完成' && item.crksl < item.pzsl) {
Text('未完成').fontSize(14).fontColor('red')
} else {
Text('完成').fontSize(14).fontColor( 'green')
}
}
.width('40%')
}
.width('100%')
.justifyContent(FlexAlign.SpaceBetween)
.padding({ left: 12, right: 18 })
}
.height(90)
.onClick(() => {
this.currentItem = item
if (this.dialogController != undefined) {
this.dialogController.open()
}
})
})
}
.width('100%')
.backgroundColor('#fff')
.divider({ strokeWidth: 1, color: 'rgb(242,242,242)' }) // 每行之间的分界线
}.margin({ bottom: 50 })
}.padding({ bottom: 20, left: 20, right: 20 })
}
.height('100%')
.linearGradient({
direction: GradientDirection.RightBottom,
repeating: true,
colors: [['#36a3c0', 0.0], ['#97c6a6', 1.0], ['#c7d799', 2.0]]
})
}
}
\ No newline at end of file
......@@ -12,6 +12,9 @@ import hwModel from '../../../model/HwModel'
import hjModel from '../../../model/HjModel'
import gldwModel from '../../../model/GldwModel'
import drModel from '../../../model/DrModel'
import { deleteSql } from '../../../sql'
import { SQLiteContext } from '@ohos/common/src/main/ets/db/SQLiteContext'
import { BgglDao } from '@ohos/common/src/main/ets/db/dao/BgglDao'
@CustomDialog
@Component
......@@ -37,94 +40,54 @@ export struct ListDialog {
console.log("onCancel")
}
async onSubmit(content: string) {
async onSubmit(content) {
var newData = deleteSql.delete_jc_sql_list;
var clearText = "清除基础数据";
switch (content) {
case '是否确定清除基础数据':
try {
await qyModel.clear();
await kfModel.clear();
await hwModel.clear();
await hjModel.clear();
await gldwModel.clear();
await bzhxModel.clear()
await drModel.set('清除基础数据')
await this.getDrData()
promptAction.showToast({
message: '清除基础数据成功'
})
} catch (e) {
promptAction.showToast({
message: '清除基础数据失败'
})
}
newData = deleteSql.delete_jc_sql_list;
clearText = "清除基础数据";
break;
case '是否确认清除单据数据':
try {
await wzcrkModel.clear()
await wzcrkmxModel.clear()
await drModel.set('清除单据数据')
// await this.getDrData()
promptAction.showToast({
message: '清除单据数据成功'
})
} catch (e) {
promptAction.showToast({
message: '清除单据数据失败'
})
}
newData = deleteSql.delete_dj_sql_list;
clearText = "清除单据数据";
break;
case '是否确认清除包裹数据':
try {
await bgglModel.clear()
await drModel.set('清除包裹数据')
await this.getDrData()
promptAction.showToast({
message: '清除包裹数据成功'
})
} catch (e) {
promptAction.showToast({
message: '清除包裹数据失败'
})
}
newData = deleteSql.delete_bg_sql_list;
clearText = "清除包裹数据";
break;
case '是否确认清除品名及号型数据':
try {
await bzhxModel.clear()
await drModel.set('清除品名及号型')
await this.getDrData()
promptAction.showToast({
message: '清除品名及号型数据成功'
})
} catch (e) {
promptAction.showToast({
message: '清除品名及号型数据失败'
})
}
newData = deleteSql.delete_pmhx_sql_list;
clearText = "清除品名号型数据";
break;
case '是否确认清除导入导出数据':
try {
await drModel.clear()
await drModel.set('清除导入导出数据')
await this.getDrData()
promptAction.showToast({
message: '清除导入导出数据成功'
})
} catch (e) {
promptAction.showToast({
message: '清除导入导出数据失败'
})
}
newData = deleteSql.delete_port_sql_list;
clearText = "清除导入导出数据";
break;
case '是否确认清除全部数据':
newData = deleteSql.delete_all_sql_list;
clearText = "清除全部数据";
break;
default:
newData = deleteSql.delete_jc_sql_list;
clearText = "清除基础数据";
break;
}
newData.forEach(async (item, index) => {
await SQLiteContext.with(BgglDao).clearTableBySql(item)
const last = newData.length - 1;
if (last == index) {
setTimeout(async () => {
await drModel.set(clearText || "清除数据")
promptAction.showToast({
message: `${clearText}成功`
})
// this.init();
}, 800);
}
});
}
handleClick(item) {
......
......@@ -42,11 +42,7 @@ export struct BasicInfoModal {
try {
this.controller.close()
this.showProgress = true
await qyModel.clear();
await kfModel.clear();
await hwModel.clear();
await hjModel.clear();
await gldwModel.clear();
const res = await getPmList({ rows: 5000, page: 1 })
// 获取品名
const allData = JSON.parse(res).bzhxList as Bzhx[]
......
......@@ -7,7 +7,7 @@ import { getDjList, getQkdzList } from '../sync.api'
import drModel from '../../../../model/DrModel'
import { KfInfo } from '@ohos/common/src/main/ets/entity/KfInfo'
import kfModel from '../../../../model/KfModel'
import { pzlxList, pzlx_dict } from '@ohos/common/src/main/ets/utils/dict'
import { pzlx_dict, pzlxList } from '@ohos/common/src/main/ets/utils/dict'
import { Logger } from '@ohos/common/src/main/ets/utils/Logger'
@Extend(Button) function CommonButtonStyle() {
......@@ -110,13 +110,9 @@ export struct DjInfoModal {
try {
this.showProgress = true
this.controller.close()
await wzcrkModel.clear()
await wzcrkmxModel.clear()
await dsRfidModel.clear()
this.showProgress = true
let rows = [] as any[]
Logger.info('Logger.info>>', JSON.stringify(this.form))
if (this.form.pzlx == '111111PZLX42') {
const res = await getQkdzList({
......
......@@ -61,8 +61,6 @@ export struct PageModal {
this.controller.close()
await bgglModel.clear()
const res = await getBgList(this.form)
// 获取包裹数据
const bgData = JSON.parse(res) as Bggl[]
......
......@@ -49,7 +49,7 @@
"pages/order_detail/PzPourStoragePage",
"pages/sub_systemMaintenance/Version",
"pages/sub_systemMaintenance/Feedback",
"pages/metailmange/WzStatus",
"pages/metailmange/Common/WzStatus",
"pages/metailmange/UHFScanPage",
"identify/demo_page/UHFDemo",
"identify/demo_page/ScanDemo",
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论