Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
J
jump_hm_warehouse
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Members
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
毛勇泽
jump_hm_warehouse
Commits
d510de8c
Commit
d510de8c
authored
Jan 24, 2024
by
毛勇泽
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
货位扫描,解析工具类问题修复
parent
1a9b549d
隐藏空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
856 行增加
和
40 行删除
+856
-40
BzhxDao.ets
common/src/main/ets/db/dao/BzhxDao.ets
+23
-28
ScanParser.ets
entry/src/main/ets/identify/analysis/ScanParser.ets
+0
-1
analysis_QR_code.ets
entry/src/main/ets/identify/analysis/analysis_QR_code.ets
+3
-3
GoodsSelectHwPage.ets
entry/src/main/ets/pages/metailmange/GoodsSelectHwPage.ets
+33
-4
UHFScanPage.ets
entry/src/main/ets/pages/metailmange/UHFScanPage.ets
+3
-2
PzConversioneInfo.ets
entry/src/main/ets/pages/metailmange/WzConversionPage/WzConversionDetailPage/PzConversioneInfo.ets
+108
-0
WzConversionDetailPage.ets
entry/src/main/ets/pages/metailmange/WzConversionPage/WzConversionDetailPage/WzConversionDetailPage.ets
+169
-0
WzConversioneInfo.ets
entry/src/main/ets/pages/metailmange/WzConversionPage/WzConversionDetailPage/WzConversioneInfo.ets
+165
-0
WzConversionPage.ets
entry/src/main/ets/pages/metailmange/WzConversionPage/WzConversionPage.ets
+299
-0
WzPositionPage.ets
entry/src/main/ets/pages/metailmange/WzPositionPage.ets
+49
-1
main_pages.json
entry/src/main/resources/base/profile/main_pages.json
+3
-0
MaterialManagement.ets
features/MaterialManagement/src/main/ets/components/MaterialManagement.ets
+1
-1
没有找到文件。
common/src/main/ets/db/dao/BzhxDao.ets
View file @
d510de8c
...
...
@@ -73,34 +73,28 @@ export class BzhxDao extends BaseTable<Bzhx> {
return this.query(wp, this.getTableColumns())
}
async selectHXList(hx_map?: any): Promise<Bzhx[]> {
let wp = this.getPredicates();
if (hx_map) {
wp.equalTo('pmdmSix', hx_map['wzdm']);
wp.or()
wp.in('pmdmSix',[`${hx_map['pmdm_hxmc']}`])
wp.or()
wp.equalTo('pmdmten',hx_map['wzdm']);
wp.or()
wp.beginWrap()
wp.equalTo('wzpm', hx_map['wzdm'])
wp.and()
wp.equalTo("pmdmten","0000")
wp.or()
wp.in("pmdmten",[`${hx_map['pmdm_hxmc']}`])
wp.endWrap()
wp.or()
wp.beginWrap()
wp.equalTo('wzpm', hx_map['wzdm'])
wp.and()
wp.beginWrap()
wp.equalTo('hxmc', "无号配号")
wp.or()
wp.in('hxmc', [`${hx_map['pmdm_hxmc']}`])
wp.endWrap()
wp.endWrap()
try {
let val_sql = "select * from TAB_XTWH_JCSJ_BZHX where "+
" lsm = '" + hx_map["wzdm"] + "' " +
" 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"] + ") ) )" ;
console.log('查询SQL语句=' + val_sql)
let db = await this.futureDb;
let rs = await db.querySql(val_sql);
console.log('查询SQL语句开始2')
let items = []
if (rs.goToFirstRow()) {
do {
items.push(this.toBean(rs))
} while (rs.goToNextRow())
}
console.log('查询SQL结果=' + JSON.stringify(items))
return items;
}catch (err){
console.log("查询报错==》"+JSON.stringify(err))
}
console.log("执行语句==="+JSON.stringify(hx_map))
console.log("执行语句==="+JSON.stringify(wp))
return this.query(wp, this.getTableColumns())
}
}
\ No newline at end of file
entry/src/main/ets/identify/analysis/ScanParser.ets
View file @
d510de8c
...
...
@@ -228,7 +228,6 @@ export class ScanParser {
bqObj.pmsl += 1;
}
}
return result;
}
...
...
entry/src/main/ets/identify/analysis/analysis_QR_code.ets
View file @
d510de8c
...
...
@@ -264,9 +264,9 @@ async function analysisQrCode(bqData:string, isData:boolean = false) {
for (let j = 0; j < wzdmList.length; j++) {
let wzdm = wzdmList[j];
Object.keys(hx_map).forEach((item) => {
if (item == wzdm["
LSM"] || item == wzdm["HXMC"] || item == wzdm["HXDM
"]) {
if (item == wzdm["
lsm"] || item == wzdm["hxmc"] || item == wzdm["pmdmTen
"]) {
let Pzmx = {
pmdm: wzdm.pmdm
Six
,
pmdm: wzdm.pmdm
Ten
,
pmdmcode: wzdm.pmdmTen,
srsl: hx_map[item],
wzpm: wzdm.wzpm,
...
...
@@ -276,7 +276,7 @@ async function analysisQrCode(bqData:string, isData:boolean = false) {
}
})
}
//
console.log('扫描解析数据:', hxList)
console.log('扫描解析数据:', hxList)
result.data = hxList;
result.success = true;
result.status = JsonResult.SUCCESS_CODE;
...
...
entry/src/main/ets/pages/metailmange/GoodsSelectHwPage.ets
View file @
d510de8c
...
...
@@ -9,6 +9,7 @@ import router from '@ohos.router'
import IdentifyService from '../../identify/IdentifySerivce'
import emitter from '@ohos.events.emitter';
import wzcrkModel from '../../model/WzcrkModel'
import {analysisQrCode} from '../../identify/analysis/analysis_QR_code'
@Extend(Button) function CommonButtonStyle() {
.borderWidth(2)
...
...
@@ -28,8 +29,6 @@ struct GoodsSelectHwPage{
@State checkedList: Array<DsRfid> = []
@State hwh:string=""
aboutToAppear(){
this.scanCodeListen()
IdentifyService.openScanPort()
this.checkedList= router.getParams()["checkArray"];
this.model=router.getParams()["checkType"]
this.getHwList()
...
...
@@ -207,11 +206,41 @@ struct GoodsSelectHwPage{
}
})
}
async showQRDetail(data: string) {
Logger.info("扫码二维码===》"+data)
async showQRDetail(hwQrCode: string) {
Logger.info("扫码二维码===》"+hwQrCode)
this.handleanalysisQrCode(hwQrCode)
}
/*
* 货位解析*/
async handleanalysisQrCode(hwQrCode:string) {
const res = await analysisQrCode(hwQrCode, true)
console.log('扫描返回数据', JSON.stringify(res))
if (res.data && res.data.length > 0) {
console.log(res.data, 'res.data')
res.data.forEach((item) => {
const {
hwh,
hjguid
} = item
if (hwh && hjguid) {
this.hwh = hwh
this.onSubmit()
}
if (!this.hwh) {
promptAction.showToast({
message: '请扫描货位'
})
return
}
})
}
}
onPageShow() {
console.error("========onPageShow=========")
this.scanCodeListen()
IdentifyService.openScanPort()
}
onPageHide() {
...
...
entry/src/main/ets/pages/metailmange/UHFScanPage.ets
View file @
d510de8c
...
...
@@ -226,8 +226,8 @@ struct UHFScanPage{
showList(epc?:string){
this.doneEpcsList.push(epc)
try {
this.handleanalysisQrCode("050400000000000016033C62BF2A111F0000A10040E220419000");
//
this.handleanalysisQrCode(epc);
//
this.handleanalysisQrCode("050400000000000016033C62BF2A111F0000A10040E220419000");
this.handleanalysisQrCode(epc);
}catch (err){
Logger.info("解析失败1"+epc+JSON.stringify(err))
...
...
@@ -347,6 +347,7 @@ struct UHFScanPage{
}
onPageShow() {
console.error("========onPageShow=========")
this.checkedList=[]
this.getUPorDown()
this.rfidInvListen()
IdentifyService.openRfidPort()
...
...
entry/src/main/ets/pages/metailmange/WzConversionPage/WzConversionDetailPage/PzConversioneInfo.ets
0 → 100644
View file @
d510de8c
import gldwModel from '../../../../model/GldwModel'
import kfModel from '../../../../model/KfModel'
import { renderPzlx, renderSzlx, renderZmlx, WzClass } from '../../Common/Wzcrk.data'
@Component
export struct PzConversioneInfo{
@State kfmc: string = ''
@State fwgldw: string = ''
@State swgldw: string = ''
@ObjectLink wzcrk: WzClass
arr = [{ title: "凭证类型", key: 'pzlx', enabled: false },
{ title: "凭证号", key: 'pzh', enabled: false },
{ title: "库房", key: 'kfguid', enabled: false },
{ title: "发物管理单位", key: 'fwgldwdm', enabled: false },
{ title: "收物管理单位", key: 'swgldwdm', enabled: false },
{ title: "账目类型", key: 'zmlx', enabled: false },
{ title: "备注", key: 'dec', enabled: true }
]
aboutToAppear(){
this.getData()
}
async getData() {
const res = await kfModel.query({guid: this.wzcrk.kfguid})
this.kfmc = res[0].kfmc ?? ''
const res1 = await gldwModel.queryByData({dwdm:this.wzcrk.fwgldwdm})
this.fwgldw = res1[0].dwfh ?? ''
const res2 = await gldwModel.queryByData({dwdm:this.wzcrk.swgldwdm})
this.swgldw = res2[0].dwfh ?? ''
}
handleText(key: string): string {
switch (key) {
case 'pzlx':
return renderPzlx(this.wzcrk.pzlx)
case 'pzszlx':
return renderSzlx(this.wzcrk.pzszlx)
case 'zmlx':
return renderZmlx(this.wzcrk.zmlx)
case 'kfguid':
return this.kfmc
case 'fwgldwdm':
return this.fwgldw
case 'swgldwdm':
return this.swgldw
default:
return String(this.wzcrk[key])
}
}
build(){
Column(){
Flex({ direction: FlexDirection.Row, justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
Divider()
.vertical(true)
.height(14)
.strokeWidth(3)
.color('#19ac88')
.opacity(0.6)
.margin({ left: 8, right: 8 })
Text("凭证信息")
.fontSize(16)
}.height('8%')
List(){
ForEach(this.arr,(item) => {
ListItem(){
Column(){
Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center }) {
Text(item.title)
.fontSize(14)
.width("30%")
.height(40)
.fontColor($r("app.color.item_color_black"))
TextInput({ text: this.handleText(item.key),placeholder: `请输入${item.title}` })
.enterKeyType(EnterKeyType.Search)
.borderColor("#454545")
.borderRadius(5)
.width("70%")
.height(40)
.padding(10)
.borderColor('#bcc5d7')
.borderWidth(1)
.backgroundColor(item.enabled ? '#fff' : "app.color.disabledColor")
.enabled(item.enabled)
.onChange((value: string) => {
if(item.enabled) {
this.wzcrk[item.key] = value
}
})
}
}
}.padding(15)
})
}.margin({bottom:40})
}.backgroundColor('#fff')
}
}
\ No newline at end of file
entry/src/main/ets/pages/metailmange/WzConversionPage/WzConversionDetailPage/WzConversionDetailPage.ets
0 → 100644
View file @
d510de8c
import { TitleBar } from '../../../../view/title/TitleBar'
import router from '@ohos.router';
import { Logger } from '@ohos/common/src/main/ets/utils/Logger';
import { Wzcrk } from '@ohos/common/src/main/ets/entity/Wzcrk';
import { WzConversioneInfo } from './WzConversioneInfo'
import { PzConversioneInfo } from './PzConversioneInfo'
import {AddWzin} from '../../WzInPage/WzinDetail/AddWzin'
import wzcrkmxModel from '../../../../model/WzcrkmxModel';
import { WzClass, WzmxClass } from '../../Common/Wzcrk.data';
import bzhxModel from '../../../../model/BzhxModel';
import promptAction from '@ohos.promptAction';
import wzcrkModel from '../../../../model/WzcrkModel';
import { SQLiteContext, Wzcrkmx, WzcrkmxDao } from '@ohos/common';
import { uuid } from '@ohos/common/src/main/ets/utils/util';
@Extend(Button) function CommonButtonStyle() {
.borderWidth(2)
.borderColor('#0fa983')
.backgroundColor('#97c6a6')
.fontColor('#fff')
.borderRadius(5)
.type(ButtonType.Normal)
.stateEffect(true)
}
interface params {
wzcrk: Wzcrk,
isUpdate: boolean
}
@Entry
@Component
struct WzConversionDetailPage{
@State fontColor: string = '#0FA983'
@State selectedFontColor: string = '#fff'
@State currentIndex: number = 0
@State isUpdate: boolean = false
@State wzcrk: WzClass = null // 物资出入库单据信息
@State wzmx: WzmxClass[] = [] // 物资出入库明细
private controller: TabsController = new TabsController()
wzcrkmxDao: WzcrkmxDao = SQLiteContext.with(WzcrkmxDao)
onPageShow() {
const params = router.getParams() as params
this.isUpdate = params.isUpdate
this.wzcrk = new WzClass(params.wzcrk)
Logger.info('接收到出入库信息>>', JSON.stringify(params.wzcrk))
this.getDetail()
}
// 获取凭证信息
async getDetail(wzpm?) {
this.wzmx = []
const res = await wzcrkmxModel.query(this.wzcrk.guid, wzpm)
res.forEach(i => {
// @ts-ignore
this.wzmx.push(new WzmxClass(i))
})
Logger.info('接收到出入库物资明细信息>>', JSON.stringify(res))
}
@Builder TabBuilder(index: number, name: string) {
Column() {
Text(name)
.fontColor(this.currentIndex === index ? this.selectedFontColor : this.fontColor)
.fontSize(21)
.lineHeight(36)
}
.width('100%')
.height(45)
.border({ width: 2, color: 'rgb(15, 169, 131)' })
.borderRadius(3)
.backgroundColor(this.currentIndex === index ? this.fontColor : '#00000000')
}
build() {
Column() {
Flex({ direction: FlexDirection.Column }) {
TitleBar({ title: "凭证详情" })
Tabs({ barPosition: BarPosition.Start, controller: this.controller }) {
TabContent() {
Column() {
if(this.isUpdate) {
PzConversioneInfo({ wzcrk: this.wzcrk })
} else {
AddWzin({ wzcrk: this.wzcrk })
}
}.width("100%")
}.tabBar(this.TabBuilder(0, '凭证信息'))
TabContent() {
Column() {
WzConversioneInfo({ wzmx: this.wzmx, wzcrk: this.wzcrk, getDetail: this.getDetail })
}.width("100%")
}.tabBar(this.TabBuilder(1, '物资信息'))
}
.margin({ left: 15, right: 15, top: 15 })
.onChange((index: number) => {
this.currentIndex = index
})
Row() {
Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
Button("保存").CommonButtonStyle().width("100%")
.onClick(async () => {
try {
Logger.info('保存的明细数据>>', JSON.stringify(this.wzmx))
if(this.isUpdate) {
await wzcrkModel.updateWcztByData(this.wzcrk.guid, {
dec: this.wzcrk.dec,
ydh: this.wzcrk.ydh,
})
}
else {
this.wzcrk.guid = uuid()
this.wzcrk.gznd = new Date().getFullYear() + ''
this.wzcrk.sjlx = '新建'
await wzcrkModel.setOne(this.wzcrk)
Logger.info('添加的数据>>', JSON.stringify(this.wzcrk))
}
// for (let index = 0; index < this.wzmx.length; index++) {
// const element = this.wzmx[index];
// try {
// Logger.error(this, '更新数据参数' + JSON.stringify({
// 'guid': element.guid,
// 'crksl': element.crksl
// }))
// let val1 = await this.wzcrkmxDao.update({ 'guid': element.guid, 'crksl': element.crksl } as Wzcrkmx)
// Logger.error(this, '更新查询的入库数据>>' + JSON.stringify(val1));
// } catch (e) {
// Logger.error(this, '保存失败了>>' + JSON.stringify(e))
// }
// }
//
// const crksl = this.wzmx.map(v => Number(v.crksl)).reduce((a, b) => a + b, 0)
//
// await wzcrkModel.updateWcztByData(this.wzcrk.guid, {
// dec: this.wzcrk.dec,
// ydh: this.wzcrk.ydh,
// crksl
// })
//
promptAction.showToast({
message: '保存数据成功',
bottom: 300
})
setTimeout(() => {
router.back({ url: 'pages/metailmange/WzExchangePage/WzExchangePage' })
}, 300)
} catch (e) {
promptAction.showToast({
message: '保存入库数据失败',
bottom: 200
})
}
})
}
}.margin({ left: 10, right: 10 }).height(80)
}.width("100%")
}.linearGradient({
direction: GradientDirection.Right, // 渐变方向
repeating: true, // 渐变颜色是否重复
colors: [[0x36a3c0, 0.0], [0x97c6a6, 1], [0xc7d799, 0.0]] // 数组末尾元素占比小于1时满足重复着色效果
})
}
}
\ No newline at end of file
entry/src/main/ets/pages/metailmange/WzConversionPage/WzConversionDetailPage/WzConversioneInfo.ets
0 → 100644
View file @
d510de8c
import router from '@ohos.router';
import { Logger } from '@ohos/common';
import { Wzcrkmx } from '@ohos/common/src/main/ets/entity/Wzcrkmx';
import gldwModel from '../../../../model/GldwModel';
import kfModel from '../../../../model/KfModel';
import { WzClass, WzmxClass } from '../../Common/Wzcrk.data';
import { WzList } from '../../WzInPage/WzinDetail/WzList';
@Extend(Button) function CommonButtonStyle() {
.borderWidth(2)
.borderColor('#0fa983')
.backgroundColor('#97c6a6')
.fontColor('#fff')
.borderRadius(5)
.type(ButtonType.Normal)
.stateEffect(true)
}
@Component
// 物资信息
export struct WzConversioneInfo{
private searchcontroller: SearchController = new SearchController()
@State kfmc: string = ''
@State sfdw: string = ''
@State wzmx: WzmxClass[] = []
@ObjectLink wzcrk: WzClass
getDetail: (wzpm?:string) => void
aboutToAppear(){
this.getData()
}
async getData() {
const res = await kfModel.query({guid: this.wzcrk.kfguid})
this.kfmc = res[0].kfmc ?? ''
const res1 = await gldwModel.queryByData({dwdm:this.wzcrk.sfdw})
this.sfdw = res1[0].dwfh ?? ''
}
build() {
Column() {
Flex({ direction: FlexDirection.Column }) {
Column() {
Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
Row() {
Divider()
.vertical(true)
.height(14)
.strokeWidth(3)
.color('#19ac88')
.opacity(0.6)
.margin({ left: 8, right: 8 })
Text("单位/库房信息")
.fontWeight(FontWeight.Medium)
.fontSize(14)
.fontColor($r("app.color.item_color_black"))
}
.width("35%")
Text(this.sfdw + this.kfmc)
.fontWeight(FontWeight.Medium)
.fontSize(21)
.fontColor($r("app.color.title_background"))
.width("60%")
.textAlign(TextAlign.Start)
.padding({ bottom: 20, top: 20 })
}.width("100%")
Divider().vertical(false).backgroundColor($r("app.color.font_description"))
Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) {
Row(){
Divider()
.vertical(true)
.height(14)
.strokeWidth(3)
.color('#19ac88')
.opacity(0.6)
.margin({ left: 8, right: 8 })
Text("换位模式")
.fontSize(14)
.width("30%")
.height(40)
.fontColor($r("app.color.item_color_black"))
}
Row(){
Text("换入").margin({left:10,right:10})
Toggle({ type: ToggleType.Switch, isOn: true })
.selectedColor('#007DFF')
.switchPointColor('#FFFFFF')
.onChange((isOn: boolean) => {
console.info('Component status:' + isOn)
})
Text("换出").margin({left:10,right:10})
}
}.padding({left:2,bottom:20})
.width("100%")
}.padding({ bottom: 20, top: 20 })
.borderRadius(5)
.width("100%")
.backgroundColor("#fff")
Flex({ direction: FlexDirection.Column }) {
Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) {
Row() {
Divider()
.vertical(true)
.height(14)
.strokeWidth(3)
.color('#19ac88')
.opacity(0.6)
.margin({ left: 8, right: 8 })
Text("物资列表")
.fontWeight(FontWeight.Medium)
.fontSize(14)
.fontColor($r("app.color.item_color_black"))
}
}.padding({ left: 2, right: 10 })
.width("100%")
Row() {
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) => {
})
.margin({ left: 10 })
.borderRadius(5)
Button("查看状态").CommonButtonStyle().width("25%").margin({ left: 5, right: 5 }).onClick(() => {
router.pushUrl({ url: 'pages/metailmange/WzStatus', params: {
wzmx: this.wzmx
} })
})
}.width("100%")
}.padding({ top: 10, bottom: 10 }).width("100%")
Column() {
List() {
ForEach(this.wzmx, (item) => {
ListItem() {
WzList({ wzmx: item })
}
})
}
}.flexGrow(1)
}
.padding({ bottom: 20, top: 20 })
.borderRadius(15)
.margin({ top: 20 })
.width("100%")
.backgroundColor("#fff")
}
.width("100%")
.height("100%")
}
}
}
\ No newline at end of file
entry/src/main/ets/pages/metailmange/WzConversionPage/WzConversionPage.ets
0 → 100644
View file @
d510de8c
import { TitleBar } from '../../../view/title/TitleBar'
import router from '@ohos.router';
import wzcrkModel from '../../../model/WzcrkModel';
import { Logger } from '@ohos/common';
import { WzClass } from '../Common/Wzcrk.data';
import { WzList } from '../Common/WzcrkList';
import promptAction from '@ohos.promptAction';
import { SetStatusDialog } from '../../../view/SetStatusDialog/SetStatusDialog';
import { dateUtils } from '@ohos/common/src/main/ets/utils/util';
import ViewdrdcModel from '../../../model/ViewdrdcModel';
import { importData } from '../Common/Wzcrk.api';
import { ExportOrderDialog } from '../../../view/ExportOrderDialog/ExportOrderDialog';
@Extend(Button) function bottomBtnSty() {
.borderWidth(1)
.padding({top:1,bottom:1,right:7,left:7})
.borderColor('#0fa983')
.backgroundColor('#fff')
.fontColor('#0fa983')
.borderRadius(7)
.type(ButtonType.Normal)
.stateEffect(true)
}
interface SearchData {
pzh?: string;
wczt?: string;
}
@Entry
@Component
struct WzConversionPage{
@State fontColor: string = '#182431'
@State selectedFontColor: string = '#fff'
@State currentIndex: number = 0
@State dataSource: WzClass[] = []
@State checkedList: Array<string> = []
@State radioChecked: boolean = true
@State searchData: SearchData = {
pzh: '',
wczt: '未完成'
}
private controller: TabsController = new TabsController()
private searchcontroller: SearchController = new SearchController()
aboutToAppear() {
this.getWzcrkList()
}
async getWzcrkList(qzh?: number, wczt?: string) {
this.dataSource = []
const res = await wzcrkModel.query({
pzlx: "HW44",
pzh: Number(this.searchData.pzh),
wczt: this.searchData.wczt,
sjlx: this.currentIndex === 0 ? "导入" : "临时调号" })
res.forEach(element => {
this.dataSource.push(new WzClass(element))
});
Logger.info('数量是' + JSON.stringify(this.dataSource))
}
@Builder container() {
Column() {
Row() {
Flex({ justifyContent: FlexAlign.SpaceBetween }) {
Text('完成').margin({ left: 20 })
Radio({ value: 'Radio1', group: 'radioGroup' })
.checked(true)
.onChange((isChecked: boolean) => {
this.radioChecked = isChecked
}).margin({ right: 20 })
}
}.padding({ top: 10, bottom: 10 })
Divider().strokeWidth(1).color('rgb(242,242,242)')
Row() {
Flex({ justifyContent: FlexAlign.SpaceBetween }) {
Text('未完成').margin({ left: 20 })
Radio({ value: 'Radio2', group: 'radioGroup' })
.onChange((isChecked: boolean) => {
}).margin({ right: 20 })
}
}.padding({ top: 10, bottom: 10 })
Divider().strokeWidth(1).color('rgb(242,242,242)')
}
}
@Builder exportContainer() {
Column() {
Text('请选择导出单据模式')
}.height(40)
}
dialogController: CustomDialogController = new CustomDialogController({
builder: SetStatusDialog({
cancel: this.onCancel,
confirm: this.onSubmit,
checkedList: $checkedList,
dataSource: $dataSource,
container: this.container
}),
autoCancel: true,
alignment: DialogAlignment.Bottom,
customStyle: true
})
onCancel() {
console.info('------取消------')
}
onSubmit() {
try{
this.checkedList.forEach(async (element)=>{
let num = await wzcrkModel.updateWzcrkWczt(element, (this.radioChecked == undefined || this.radioChecked ? '已完成' : '未完成'))
if(num) {
this.dataSource.splice(this.dataSource.findIndex(i => i.guid == element), 1)
}
})
}catch(e){
}finally{
this.checkedList = []
}
}
exportDialogController: CustomDialogController = new CustomDialogController({
builder: ExportOrderDialog({
cancel: this.onExportCancel,
confirm: this.onExportSubmit,
checkedList: $checkedList,
dataSource: $dataSource,
container: this.exportContainer
}),
autoCancel: true,
alignment: DialogAlignment.Bottom,
customStyle: true
})
onExportCancel() {
}
onExportSubmit() {
this.checkedList.forEach(async element => {
let res = await ViewdrdcModel.queryExport({guid: element, wczt: '已完成', pzlx: '17'})
const jhguidArr = res.map((item) => item.guid)
if (jhguidArr && jhguidArr.length > 0) {
const date = dateUtils.formatDateTime(new Date(), 'before')
const newArr = [...new Set(jhguidArr)]
const exportData = newArr.map((item) => {
let newObj = {}
let ItemData = []
res.forEach((Item) => {
if (item == Item.guid) {
ItemData.push({
jhmxguid: Item.jhmxguid,
hwh: Item.hwh,
pmdmcode: Item.pmdmcode,
wzdm: Item.wzdm,
pzsl: Item.pzsl || 0,
sjsl: Item.crksl || 0
})
}
})
const [filterData] = res.filter((fItem) => fItem
.guid == item)
if (filterData) {
newObj = {
cbdwdm: filterData.ckdwguid,
ckkfdm: filterData.kfdm,
...filterData,
crksl: ItemData.map(i => i.sjsl).reduce((a, b) => {
return a + b
},0),
scjid: "863576927543400,863576927543400",
cjmc: "普华",
imei: "863576927543400,863576927543400",
model: "ax6737_65_n",
vendor: "alps",
dcsj: date,
pzmx: ItemData
}
}
return newObj
})
const exportForm = {
pzzbJson: exportData,
crklx: '11111CRKLX2',
gznd: '2023',
jsdwguid: 1,
}
await importData(exportForm)
}
})
promptAction.showDialog({
title: '提示',
message: '入库作业单据已同步至业务系统,请以保管员身份登录业务系统,在菜单“作业项目--物资入库”里刷新查看。',
buttons: [{
text: '已知晓',
color: '#0fa983',
}],
})
}
@Builder renderEmpty() {
Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
Column() {
Image($r("app.media.empty")).width("42%")
Text("暂无数据").fontSize(22).fontColor("#fff").margin({ top: 5 })
}
}.height('70%')
}
@Builder bottomButtons() {
Row() {
Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
Button("新建换位")
.bottomBtnSty()
.onClick( () => {
router.pushUrl({
url: "pages/metailmange/AddConversionPage",
})
})
.fontColor("#0fa983")
.fontSize("14vp")
Button("设置状态")
.bottomBtnSty()
.onClick(() => {
})
.fontColor("#0fa983")
.fontSize("14vp")
Button("导出数据包")
.bottomBtnSty()
.onClick(() => {
}).fontColor("#0fa983") .fontSize("14vp")
Button("全选")
.bottomBtnSty().fontColor("#0fa983") .fontSize("14vp")
Button("清空选择")
.bottomBtnSty()
.onClick(() =>{
}).fontColor("#0fa983") .fontSize("14vp")
}
}.height(80)
}
build(){
Column() {
Flex({direction:FlexDirection.Column}){
TitleBar({ title:"物资换位" })
Row(){
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('100%')
.onSubmit((value: string) => {
})
.onChange((value: string) => {
this.searchData.pzh = value
this.getWzcrkList()
})
.borderRadius(5)
}
}.width("100%")
.padding('15vp')
// 列表
Column() {
if (this.dataSource.length == 0) {
this.renderEmpty()
} else {
List({ space: 2 }) {
ForEach(this.dataSource, (item) => {
ListItem() {
WzList({ item, checkedList: $checkedList }).width('100%').backgroundColor('#fff')
}.onClick(() => {
router.pushUrl({ url: 'pages/metailmange/WzConversionPage/WzConversionDetailPage/WzConversionDetailPage', params: {
wzcrk: item,
isUpdate:true
} },)
})
})
}.padding(18)
}
}.flexGrow(1).alignSelf(ItemAlign.Center)
Row(){
// 底部按钮
this.bottomButtons();
}.backgroundColor("#97c6a6").width("100%").height(80)
}
}.linearGradient({
direction: GradientDirection.Right, // 渐变方向
repeating: true, // 渐变颜色是否重复
colors: [[0x36a3c0, 0.0], [0x97c6a6, 1], [0xc7d799, 0.0]] // 数组末尾元素占比小于1时满足重复着色效果
})
}
}
\ No newline at end of file
entry/src/main/ets/pages/metailmange/WzPositionPage.ets
View file @
d510de8c
...
...
@@ -19,6 +19,7 @@ struct WzPositionPage{
@State selectedFontColor: string = '#fff'
@State currentIndex: number = 0
@State titleBarPadding:number=0
@State selectValue: Array<SelectOption> = [{ value: "未完成" }, { value: "已完成" }, { value: "完成已绑定" }]
itemClick() {
router.pushUrl({url:'pages/order_detail/PzPourStoragePage'})
}
...
...
@@ -41,12 +42,59 @@ struct WzPositionPage{
}
}.height(50)
}
@Builder selectPopupView(){
Row() {
Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }){
Select(this.selectValue )
.value('未完成')
.selected(0)
.borderWidth(1)
.borderRadius(6)
.height(42)
.borderColor("#454545")
.onSelect(async (index: number, value?: string) => {
})
.width(100)
.margin({
right: 5
})
Select(this.selectValue )
.value('未完成')
.selected(0)
.borderWidth(1)
.borderRadius(6)
.height(42)
.borderColor("#454545")
.onSelect(async (index: number, value?: string) => {
})
.width(100)
.margin({
right: 5
})
Select(this.selectValue)
.value('未完成')
.selected(0)
.borderWidth(1)
.borderRadius(6)
.height(42)
.borderColor("#454545")
.onSelect(async (index: number, value?: string) => {
})
.width(100)
.margin({
right: 5
})
}
}.padding({ top:15,bottom:15,left:5,right:5}).backgroundColor("#fff").margin({top:10,left:15,right:15})
}
build(){
Column() {
Flex({direction:FlexDirection.Column}){
TitleBar({ title:"物资落位"})
this.selectPopupView();
Row(){
Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }){
Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center}){
Search({ placeholder: '请输入凭证号',controller: this.searchcontroller })
.height(40)
.textAlign(TextAlign.Center)
...
...
entry/src/main/resources/base/profile/main_pages.json
View file @
d510de8c
...
...
@@ -10,6 +10,9 @@
"pages/metailmange/WzExchangePage/WzExchangeDetailPage/WzExchangeDetailPage"
,
"pages/metailmange/WzExchangePage/WzExchangePage"
,
"pages/metailmange/WzConversionPage"
,
"pages/metailmange/WzConversionPage/WzConversionPage"
,
"pages/metailmange/WzConversionPage/WzConversionDetailPage/WzConversionDetailPage"
,
"pages/metailmange/WzInvPage"
,
"pages/metailmange/WzInvPage/WzInvPage"
,
"pages/metailmange/WzInvPage/WzInvDetail/WzInvDetail"
,
...
...
features/MaterialManagement/src/main/ets/components/MaterialManagement.ets
View file @
d510de8c
...
...
@@ -106,7 +106,7 @@ export struct MaterialManagement {
break;
case "conversion":
router.pushUrl({
url: "pages/metailmange/WzConversionPage",
url: "pages/metailmange/WzConversionPage
/WzConversionPage
",
})
break;
case "position":
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论