Commit b48fcf59 by 毛勇泽

物资落位

parent 5b4940dd
......@@ -15,17 +15,17 @@ export interface RecommendHwDto {
*/
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
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 {
......
......@@ -8,7 +8,8 @@ export interface SearchData{
kfmc?:string
kfdm?:string
zmmc?:string,
hwh?:string
hwh?:string,
exportToal?:number
}
export interface HWFromData{
hwh?: string,
......
......@@ -298,7 +298,21 @@ export class WzcrkmxDao extends BaseTable<Wzcrkmx> {
};
return info;
}
toExportHwWzDto(cursor: relationalStore.ResultSet): TestHwWzDto {
let info: TestHwWzDto = {
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')),
hwzt: cursor.getString(cursor.getColumnIndex('hwzt')),
hwxgsj: cursor.getString(cursor.getColumnIndex('hwxgsj')),
gldwguid: cursor.getString(cursor.getColumnIndex('gldwguid')),
kfguid: cursor.getString(cursor.getColumnIndex('kfguid')),
zmlx: cursor.getString(cursor.getColumnIndex('zmlx'))
};
return info;
}
async getPzMxItem(params, isPmSix): Promise<PzMxItemDto[]> {
try {
......@@ -353,6 +367,24 @@ export class WzcrkmxDao extends BaseTable<Wzcrkmx> {
throw new Error('[查询异常]|' + e)
}
}
async exportPageSql(params): Promise<TestHwWzDto[]>{
try {
let val_sql = NativeSql.exportPageSql(params);
Logger.info(this,"查询sql====>"+val_sql)
let db = await this.futureDb;
let rs = await db.querySql(val_sql);
let items = []
if (rs.goToFirstRow()) {
do {
items.push(this.toExportHwWzDto(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 = {
......
......@@ -602,4 +602,9 @@ WHERE
const sql=`insert into tab_bzgl_knzy_app_hwb (guid, hwh, pmdmcode, hwsl, hjguid,hwzt,gldwguid,kfguid,zmlx) values ('${params.guid}','${params.hwh}',${params.pmdmcode},${params.srsl},'${params.hjguid}','11111111SF1','${params.gldwguid}','${params.kfguid}',${params.zmlx})`
return sql
}
/*物资落位导出*/
static exportPageSql(params?: any):string{
const sql=`select hw.* from tab_bzgl_knzy_app_hwb hw inner join TAB_BZGL_KNZY_APP_HJB hj on hj.guid =hw.hjguid inner join TAB_BZGL_KNZY_APP_QYB qy on qy.guid = hj.qyguid where hw.pmdmcode is not null and hw.pmdmcode !='' and hw.hwh not like 'LS%' and hw.kfguid = '${params.kfguid}' and hw.gldwguid = '${params.gldwguid}' and hw.zmlx = ${params.zmlx}`
return sql
}
}
\ No newline at end of file
......@@ -58,6 +58,11 @@ class WzcrkmxModel {
let res = await SQLiteContext.with(WzcrkmxDao).testInsertSql(params)
return res
}
// 物资落位导出
async exportPageSql(params) {
let res = await SQLiteContext.with(WzcrkmxDao).exportPageSql(params)
return res
}
async getPzMxItem(params, isPmSix) {
let res = await SQLiteContext.with(WzcrkmxDao).getPzMxItem(params, isPmSix)
return res
......
......@@ -6,11 +6,13 @@ import promptAction from '@ohos.promptAction';
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';
import Prompt from '@system.prompt';
import { ExportPositionDialog } from './dialog/ExportPositionDialog';
import { zmlx_dict } from '@ohos/common/src/main/ets/utils/dict'
import gldwModel from '../../../model/GldwModel'
import kfModel from '../../../model/KfModel'
import hwModel from "../../../model/HwModel"
import wzcrkmxModel from '../../../model/WzcrkmxModel';
@Extend(Button) function bottomBtnSty() {
.borderWidth(1)
......@@ -21,7 +23,6 @@ import hwModel from "../../../model/HwModel"
.borderRadius(7)
.type(ButtonType.Normal)
.stateEffect(true)
}
@Entry
......@@ -39,6 +40,7 @@ struct WzPositionPage {
@State zmlxselectValue: Array<SelectOption> = []
private kfList: KfInfo[] = []
private dwList: Gldw[] = []
private exportData:Array<any>=[]
private searchcontroller: SearchController = new SearchController()
@Builder bottomButtons() {
......@@ -57,7 +59,6 @@ struct WzPositionPage {
bottom: 200
})
}
})
.fontColor("#0fa983")
.fontSize("14vp")
......@@ -78,13 +79,14 @@ struct WzPositionPage {
})
Button("导出结果数据包")
.bottomBtnSty()
.onClick(async () => {
.onClick(() => {
this.onShowExportDialog()
}).fontColor("#0fa983").fontSize("14vp")
}
}.height(50)
}
@Builder exportContainer() {
Column() {
Text('请选择导出单据模式')
......@@ -92,82 +94,32 @@ struct WzPositionPage {
}
exportDialogController: CustomDialogController = new CustomDialogController({
builder: ExportOrderDialog({
cancel: this.onExportCancel,
confirm: this.onExportSubmit,
checkedList: $checkedList,
dataSource: $dataSource,
container: this.exportContainer
builder: ExportPositionDialog({
searchData:$searchData,
confirm: this.onExportSubmit
}),
autoCancel: true,
alignment: DialogAlignment.Bottom,
customStyle: true
})
onExportCancel() {
async onShowExportDialog() {
this.exportData=await wzcrkmxModel.exportPageSql(this.searchData)
Logger.info(this,"导出数据包"+JSON.stringify(this.exportData))
if(this.exportData&&this.exportData.length>0){
this.searchData.exportToal=this.exportData.length
if (this.exportDialogController != undefined) {
this.exportDialogController.open()
}
}else{
Prompt.showToast({
message:'暂无数据,无法导出'
})
}
}
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',
}],
})
Logger.info(this,"导出数据"+JSON.stringify(this.exportData))
}
@Builder renderEmpty() {
......@@ -299,12 +251,7 @@ struct WzPositionPage {
ForEach(this.dataSource, (item) => {
ListItem() {
WzPositionList({ wzposition: item }).width('100%').backgroundColor('#fff')
}.onClick(() => {
router.pushUrl({ url: 'pages/metailmange/WzOutPage/WzOutDetail/WzOutDetail', params: {
wzcrk: item,
isUpdate: true
} })
})
}
})
}.padding(18)
}
......
import { DividerTitle } from '../../../../view/DividerTitle/DividerTitle';
import { Logger, KfInfo, Gldw, WzPositionClass,SearchData } from '@ohos/common';
@Extend(Button) function CommonButtonStyle() {
.borderWidth(2)
.borderColor('#0fa983')
.backgroundColor('#fff')
.fontColor('#0fa983')
.borderRadius(10)
.type(ButtonType.Normal)
.stateEffect(true)
}
/*导出落位数据包*/
@CustomDialog
@Component
export struct ExportPositionDialog{
@Link searchData: SearchData
confirm: () => void
controller: CustomDialogController
build() {
Column() {
Flex({ justifyContent:FlexAlign.SpaceBetween,alignItems: ItemAlign.Start }) {
DividerTitle({ title: "落位导出信息" })
Text("年度:"+new Date().getFullYear().toString())
.fontWeight(FontWeight.Medium)
.fontSize(16)
.fontColor("#000")
.textAlign(TextAlign.Start)
}.padding({top:10,bottom:10 })
Flex({ justifyContent: FlexAlign.SpaceBetween }) {
Text("管理单位:").fontSize(16).lineHeight(18)
Text(this.searchData.gldwmc).fontSize(16).fontColor("#000").fontWeight(700)
}.padding(5)
Flex({ justifyContent: FlexAlign.SpaceBetween }) {
Text("库房:").fontSize(16).lineHeight(18)
Text(this.searchData.kfmc).fontSize(16).fontColor("#000").fontWeight(700)
}.padding(5)
Flex({ justifyContent: FlexAlign.SpaceBetween }) {
Text("账目类型:").fontSize(16).lineHeight(18)
Text(this.searchData.zmmc).fontSize(16).fontColor("#000").fontWeight(700)
}.padding(5)
// this.container()
Flex({ justifyContent:FlexAlign.SpaceBetween,alignItems: ItemAlign.Start }) {
DividerTitle({ title: "落位导出数据" })
Text("导出数量:1")
.fontWeight(FontWeight.Medium)
.fontSize(16)
.fontColor("#000")
.textAlign(TextAlign.Start)
}.padding({top:10,bottom:10 })
Flex({ justifyContent: FlexAlign.SpaceAround }) {
Button('覆盖导出')
.onClick(() => {
this.controller.close()
this.confirm()
}).CommonButtonStyle()
Button('合并导出')
.onClick(() => {
this.controller.close()
this.confirm()
}).CommonButtonStyle()
}.margin({ top: 10, bottom: 10 })
}.padding({left:10,right:10})
.width('100%')
.borderRadius(5)
.backgroundColor('#fff')
}
}
\ No newline at end of file
import { DividerTitle } from '../../../../view/DividerTitle/DividerTitle'
import IdentifyService from '../../../../identify/IdentifySerivce'
@CustomDialog
@Component
......
......@@ -11,6 +11,7 @@ import {
@Entry
@Component
export struct MaterialManagement {
@State liseModel:boolean=true
build(){
Column() {
Flex({ direction: FlexDirection.Column }) {
......@@ -23,49 +24,18 @@ export struct MaterialManagement {
.fontColor('#fff')
Image($r("app.media.menu")).size({ width: 55, height: 55 }).padding(15)
.onClick(()=>{
router.pushUrl({
url: 'identify/demo_page/ScanDemo',
})
// router.pushUrl({
// url: 'identify/demo_page/ScanDemo',
// })
this.liseModel=!this.liseModel
})
}.padding({top: `${StatusBarManager.get().getSystemBarOffset()}px`})
}.margin({ top: 15 })
Grid() {
ForEach(gridWordModel.getGridWorkData(), (secondItem: ItemData) => {
GridItem() {
Column() {
Image(secondItem.img).borderRadius(12)
.height("72%")
.onClick(() => {
// router.pushUrl({ url: CommonConstants.PLAY_PAGE });
this.onGridItemClick(secondItem.others);
})
Text(secondItem.title).width('94.4%')
.fontSize(21)
.fontWeight(500)
.fontColor('#fff')
.textAlign(TextAlign.Center)
.margin({ top: 5 })
}.backgroundColor('#0fa983')
.borderRadius($r('app.float.home_list_padding'))
.padding(10)
.width("100%")
.height('100%')
}
.padding({ top: $r('app.float.home_list_padding'), left: $r('app.float.home_list_padding') })
.borderRadius($r('app.float.home_backgroundImage_borderRadius'))
.align(Alignment.TopStart)
.backgroundImageSize(ImageSize.Auto)
.width("100%")
.height("100%")
}, (secondItem: ItemData) => JSON.stringify(secondItem))
if(this.liseModel){
this.gridView()
}else{
this.ListView()
}
.width("100%")
.height('70%')
.columnsTemplate('2fr 2fr')
.rowsTemplate('1fr 1fr 1fr 1fr')
.columnsGap($r('app.float.home_grid_columnsGap'))
.rowsGap($r('app.float.home_grid_rowGap'))
.margin({ bottom: $r('app.float.setting_account_fontSize') })
}.margin({
left:20,
right:20
......@@ -77,6 +47,80 @@ export struct MaterialManagement {
})
}
}
@Builder gridView(){
Column(){
Grid() {
ForEach(gridWordModel.getGridWorkData(), (secondItem: ItemData) => {
GridItem() {
Column() {
Image(secondItem.img).borderRadius(12)
.height("72%")
Text(secondItem.title).width('94.4%')
.fontSize(21)
.fontWeight(500)
.fontColor('#fff')
.textAlign(TextAlign.Center)
.margin({ top: 5 })
}.backgroundColor('#0fa983')
.borderRadius($r('app.float.home_list_padding'))
.padding(10)
.width("100%")
.height('100%')
}.onClick(() => {
// router.pushUrl({ url: CommonConstants.PLAY_PAGE });
this.onGridItemClick(secondItem.others);
})
.padding({ top: $r('app.float.home_list_padding'), left: $r('app.float.home_list_padding') })
.borderRadius($r('app.float.home_backgroundImage_borderRadius'))
.align(Alignment.TopStart)
.backgroundImageSize(ImageSize.Auto)
.width("100%")
.height("100%")
}, (secondItem: ItemData) => JSON.stringify(secondItem))
}
.width("100%")
.height('70%')
.columnsTemplate('2fr 2fr')
.rowsTemplate('1fr 1fr 1fr 1fr')
.columnsGap($r('app.float.home_grid_columnsGap'))
.rowsGap($r('app.float.home_grid_rowGap'))
.margin({ bottom: $r('app.float.setting_account_fontSize') })
}
}
@Builder ListView(){
Column(){
List({ space: 2 }) {
ForEach(gridWordModel.getGridWorkData(), (secondItem: ItemData) => {
ListItem() {
Row() {
Row() {
Image(secondItem?.img)
.width(24)
.height(24)
.margin({ right: 8 })
Text(secondItem?.title).fontSize(20).fontColor('#3b4144')
}
.width('60%')
Blank()
.layoutWeight(1)
Image($r('app.media.right_grey')).width(8).height(16)
}
.width('100%')
.justifyContent(FlexAlign.SpaceBetween)
.padding({ left: 12, right: 18 ,top:10,bottom:10})
}.onClick(() => {
// router.pushUrl({ url: CommonConstants.PLAY_PAGE });
this.onGridItemClick(secondItem.others);
})
})
}
.width('100%')
.backgroundColor('#fff')
.divider({ strokeWidth: 1, color: 'rgb(242,242,242)' }) // 每行之间的分界线
}
}
onGridItemClick(type?:string):void {
switch (type) {
case "in":
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论