From 867f65fe7558c1fb1e2b11d23b625cc95dbe88d8 Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期六, 29 十一月 2025 17:34:17 +0800
Subject: [PATCH] 入库通知单提交
---
fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn.view.xml | 636 ++++++++++++++
fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticePR.java | 489 +++++++++++
fzzy-igdss-core/src/main/java/com/fzzy/igds/repository/InoutNoticeInRepository.java | 54 +
fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeOut.view.xml | 1122 ++++++++++++++++++++++++++
fzzy-igdss-core/src/main/java/com/fzzy/igds/repository/InoutNoticeOutRepository.java | 53 +
fzzy-igdss-core/src/main/java/com/fzzy/igds/data/NoticeParam.java | 74 +
fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutNoticeOut.java | 4
fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/InoutNoticeMapper.java | 29
fzzy-igdss-core/src/main/java/com/fzzy/igds/data/NoticeDto.java | 91 ++
9 files changed, 2,552 insertions(+), 0 deletions(-)
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/NoticeDto.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/NoticeDto.java
new file mode 100644
index 0000000..e73f223
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/NoticeDto.java
@@ -0,0 +1,91 @@
+package com.fzzy.igds.data;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @Description 鍑哄叆搴撻�氱煡鍗曟暣浣撲娇鐢ㄥ皝瑁�
+ * @Author CZT
+ * @Date 2025/11/29 16:33
+ */
+@Data
+public class NoticeDto {
+
+
+ /**
+ * 閫氱煡鍗昳d
+ */
+ private String id;
+
+
+ private String name;
+
+ /**
+ * 缁勭粐缂栫爜
+ */
+ private String companyId;
+
+ /**
+ * 搴撳尯缂栫爜
+ */
+ private String deptId;
+
+ /**
+ * 浠撳簱缂栫爜
+ */
+ private String depotId;
+
+ /**
+ * 瀹㈡埛缂栫爜
+ */
+ private String customerId;
+
+ /**
+ * 瀹㈡埛鍚嶇О
+ */
+ private String customerName;
+
+ /**
+ * 鍗曚綅鍚嶇О
+ */
+ private String unitName;
+
+ /**
+ * 绮鍝佺
+ */
+ private String foodVariety;
+
+
+ /**
+ * 绮鎬ц川
+ */
+ private String foodType;
+
+
+ /**
+ * 骞翠唤
+ */
+ private String year;
+
+ /**
+ * 鐩爣鏁伴噺
+ */
+ private Double targetNumber = 0.0;
+
+ /**
+ * 瀹屾垚鏁伴噺
+ */
+ private Double completeNumber = 0.0;
+
+ /**
+ * 瀹屾垚鏃堕棿
+ */
+ private Date completeTime;
+
+ /**
+ * 鎵�灞炲悎鍚�
+ */
+ private String contractName;
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/NoticeParam.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/NoticeParam.java
new file mode 100644
index 0000000..823a220
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/NoticeParam.java
@@ -0,0 +1,74 @@
+package com.fzzy.igds.data;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.util.Date;
+
+/**
+ * @Description 鍑哄叆搴撻�氱煡鍗曞弬鏁�
+ * @Author CZT
+ * @Date 2025/11/29 16:33
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+public class NoticeParam {
+
+ private String id;
+
+ private String companyId;
+
+ private String depotId;
+
+ private String deptId;// 鎵�灞炲垎搴�
+
+ private String customerName;// 瀹㈡埛鍚嶇О
+
+ private String foodVariety;// 鍝佺
+
+ private String contractId;//鍚堝悓鍙�
+
+ private String planId;//璁″垝
+
+ private String foodType; // 绮鎬ц川
+
+ private String year;// 骞翠唤
+
+ private String type;
+
+ private Double weight;// 閲嶉噺淇℃伅
+
+ private Double taskNum = 0.0;
+
+ private String completeStatus; // 瀹屾垚鐘舵��
+
+ private Double storageReal;// 搴撳瓨閲嶉噺
+
+ private Date start;
+
+ private Date end;
+
+ private String createUser;
+
+ public NoticeParam() {
+ }
+
+ public NoticeParam(String companyId, String deptId, String customerName,
+ String foodVariety, String id) {
+ this.companyId = companyId;
+ this.deptId = deptId;
+ this.customerName = customerName;
+ this.foodVariety = foodVariety;
+ this.id = id;
+ }
+
+ public NoticeParam(String companyId, String deptId, String depotId,
+ String customerName, String foodVariety, String id) {
+ this.companyId = companyId;
+ this.deptId = deptId;
+ this.depotId = depotId;
+ this.customerName = customerName;
+ this.foodVariety = foodVariety;
+ this.id = id;
+ }
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutNoticeOut.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutNoticeOut.java
index 455c251..ef221ed 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutNoticeOut.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutNoticeOut.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.bstek.dorado.annotation.PropertyDef;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -107,4 +108,7 @@
@TableField("remark")
private String remark;
+ @Transient
+ @PropertyDef(label = "鏍囪", description = "鐢ㄤ簬鍒ゆ柇閫氱煡鍗曟槸鍚︿负鏂板")
+ private String tag;
}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/InoutNoticeMapper.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/InoutNoticeMapper.java
new file mode 100644
index 0000000..50850e2
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/InoutNoticeMapper.java
@@ -0,0 +1,29 @@
+package com.fzzy.igds.mapper;
+
+import com.fzzy.igds.data.NoticeParam;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @Description
+ * @Author CZT
+ * @Date 2025/11/29 16:39
+ */
+public interface InoutNoticeMapper {
+
+ /**
+ * 鍏ュ簱閫氱煡鍗� - 鏍规嵁鍙傛暟閲嶆柊璁$畻瀹屾垚閲�
+ *
+ * @param param
+ * @return
+ */
+ int reSumNoticeInComplete(@Param("param") NoticeParam param);
+
+ /**
+ * 鍑哄簱閫氱煡鍗� - 鏍规嵁鍙傛暟閲嶆柊璁$畻瀹屾垚閲�
+ *
+ * @param param
+ * @return
+ */
+ int reSumNoticeOutComplete(@Param("param") NoticeParam param);
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/repository/InoutNoticeInRepository.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/repository/InoutNoticeInRepository.java
new file mode 100644
index 0000000..24eb543
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/repository/InoutNoticeInRepository.java
@@ -0,0 +1,54 @@
+package com.fzzy.igds.repository;
+
+import com.fzzy.igds.domain.InoutNoticeIn;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @Description
+ * @Author CZT
+ * @Date 2025/11/29 16:33
+ */
+@Service
+public interface InoutNoticeInRepository extends JpaRepository<InoutNoticeIn, String> , JpaSpecificationExecutor<InoutNoticeIn> {
+
+ /**
+ * 鏍规嵁缁勭粐缂栫爜鍜屽簱鍖虹紪鐮佽幏鍙栦俊鎭�
+ *
+ * @param companyId
+ * @param deptId
+ * @param id
+ * @return
+ */
+ @Query("from InoutNoticeIn where companyId =:companyId and deptId =:deptId and id =:id")
+ InoutNoticeIn getDataById(@Param("companyId") String companyId, @Param("deptId") String deptId, @Param("id") String id);
+
+ /**
+ * 鏍规嵁缁勭粐缂栫爜鍜屽簱鍖虹紪鐮佽幏鍙栦俊鎭�
+ *
+ * @param companyId
+ * @param deptId
+ * @param completeStatus
+ * @return
+ */
+ @Query("from InoutNoticeIn where companyId =:companyId and deptId =:deptId and completeStatus =:completeStatus")
+ List<InoutNoticeIn> listNoticeIn(@Param("companyId") String companyId, @Param("deptId") String deptId, @Param("completeStatus") String completeStatus);
+
+ /**
+ * 鏍规嵁缁勭粐缂栫爜鍜屽簱鍖虹紪鐮佽幏鍙栦俊鎭�
+ *
+ * @param companyId
+ * @param completeStatus
+ * @return
+ */
+ @Query("from InoutNoticeIn where companyId =:companyId and completeStatus =:completeStatus")
+ List<InoutNoticeIn> listNoticeIn(@Param("companyId") String companyId, @Param("completeStatus") String completeStatus);
+
+
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/repository/InoutNoticeOutRepository.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/repository/InoutNoticeOutRepository.java
new file mode 100644
index 0000000..d1dacde
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/repository/InoutNoticeOutRepository.java
@@ -0,0 +1,53 @@
+package com.fzzy.igds.repository;
+
+import com.fzzy.igds.domain.InoutNoticeOut;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @Description
+ * @Author CZT
+ * @Date 2025/11/29 16:34
+ */
+@Service
+public interface InoutNoticeOutRepository extends JpaRepository<InoutNoticeOut, String> , JpaSpecificationExecutor<InoutNoticeOut> {
+
+ /**
+ * 鏍规嵁缁勭粐缂栫爜鍜屽簱鍖虹紪鐮佽幏鍙栦俊鎭�
+ *
+ * @param companyId
+ * @param deptId
+ * @param id
+ * @return
+ */
+ @Query("from InoutNoticeOut where companyId =:companyId and deptId =:deptId and id =:id")
+ InoutNoticeOut getDataById(@Param("companyId") String companyId, @Param("deptId") String deptId, @Param("id") String id);
+
+ /**
+ * 鏍规嵁缁勭粐缂栫爜鍜屽簱鍖虹紪鐮佽幏鍙栦俊鎭�
+ *
+ * @param companyId
+ * @param deptId
+ * @param completeStatus
+ * @return
+ */
+ @Query("from InoutNoticeOut where companyId =:companyId and deptId =:deptId and completeStatus =:completeStatus")
+ List<InoutNoticeOut> listNoticeOut(@Param("companyId") String companyId, @Param("deptId") String deptId, @Param("completeStatus") String completeStatus);
+
+ /**
+ * 鏍规嵁缁勭粐缂栫爜鍜屽簱鍖虹紪鐮佽幏鍙栦俊鎭�
+ *
+ * @param companyId
+ * @param completeStatus
+ * @return
+ */
+ @Query("from InoutNoticeOut where companyId =:companyId and completeStatus =:completeStatus")
+ List<InoutNoticeOut> listNoticeOut(@Param("companyId") String companyId, @Param("completeStatus") String completeStatus);
+
+
+}
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn.view.xml
new file mode 100644
index 0000000..c1e4663
--- /dev/null
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn.view.xml
@@ -0,0 +1,636 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ViewConfig>
+ <Arguments/>
+ <Context/>
+ <Model>
+ <DataType name="dtMain">
+ <Property name="creationType">com.fzzy.igds.domain.InoutNoticeIn</Property>
+ <PropertyDef name="id">
+ <Property></Property>
+ <Property name="label">閫氱煡鍗曞彿</Property>
+ </PropertyDef>
+ <PropertyDef name="companyId">
+ <Property></Property>
+ <Property name="label">缁勭粐缂栫爜</Property>
+ </PropertyDef>
+ <PropertyDef name="deptId">
+ <Property></Property>
+ <Property name="label">鎵�灞炲垎搴�</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("deptPR#getAllData").getResult()}</Property>
+ <Property name="keyProperty">id</Property>
+ <Property name="valueProperty">kqmc</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="name">
+ <Property></Property>
+ <Property name="label">閫氱煡鍗曞悕绉�</Property>
+ <Property name="required">true</Property>
+ </PropertyDef>
+ <PropertyDef name="type">
+ <Property></Property>
+ <Property name="label">绫诲瀷</Property>
+ <Property name="mapping">
+ <Property name="mapValues">
+ <Collection>
+ <Entity>
+ <Property name="name">搴撳尯鑷缓</Property>
+ <Property name="code">10</Property>
+ </Entity>
+ <Entity>
+ <Property name="name">閾惰鐩戠</Property>
+ <Property name="code">20</Property>
+ </Entity>
+ </Collection>
+ </Property>
+ <Property name="keyProperty">code</Property>
+ <Property name="valueProperty">name</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="contractId">
+ <Property></Property>
+ <Property name="label">璐ㄦ娂鍚堝悓</Property>
+ <Property name="required">false</Property>
+ </PropertyDef>
+ <PropertyDef name="depotId">
+ <Property></Property>
+ <Property name="label">鍏ュ簱浠撳簱</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("depotPR#getAllCache").getResult()}</Property>
+ <Property name="keyProperty">id</Property>
+ <Property name="valueProperty">name</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="customerName">
+ <Property></Property>
+ <Property name="label">鍙戣揣瀹㈡埛</Property>
+ <Property name="required">true</Property>
+ </PropertyDef>
+ <PropertyDef name="unitName">
+ <Property></Property>
+ <Property name="label">鏀惰揣鍗曚綅</Property>
+ <Property name="required">false</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("deptPR#getAllData").getResult()}</Property>
+ <Property name="keyProperty">id</Property>
+ <Property name="valueProperty">kqmc</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="foodVariety">
+ <Property></Property>
+ <Property name="label">绮鍝佺</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("dicPR#sysDictData").getResult("FOOD_VARIETY_")}</Property>
+ <Property name="keyProperty">dictValue</Property>
+ <Property name="valueProperty">dictLabel</Property>
+ </Property>
+ <Property name="required">true</Property>
+ </PropertyDef>
+ <PropertyDef name="year">
+ <Property></Property>
+ <Property name="label">骞翠唤</Property>
+ <Property name="required">true</Property>
+ </PropertyDef>
+ <PropertyDef name="targetNumber">
+ <Property name="dataType">Double</Property>
+ <Property name="displayFormat">#0.0 KG</Property>
+ <Property name="required">true</Property>
+ <Property name="label">鐩爣鏁伴噺</Property>
+ </PropertyDef>
+ <PropertyDef name="completeNumber">
+ <Property name="dataType">Double</Property>
+ <Property name="label">瀹屾垚鏁伴噺</Property>
+ <Property name="displayFormat">#0.0 KG</Property>
+ </PropertyDef>
+ <PropertyDef name="auditStatus">
+ <Property></Property>
+ <Property name="label">瀹℃牳鐘舵��</Property>
+ <Property name="mapping">
+ <Property name="mapValues">
+ <Collection>
+ <Entity>
+ <Property name="name">鐩戠瀹℃牳</Property>
+ <Property name="code">10</Property>
+ </Entity>
+ <Entity>
+ <Property name="name">閾惰瀹℃牳</Property>
+ <Property name="code">20</Property>
+ </Entity>
+ <Entity>
+ <Property name="name">宸插鏍�</Property>
+ <Property name="code">30</Property>
+ </Entity>
+ </Collection>
+ </Property>
+ <Property name="keyProperty">code</Property>
+ <Property name="valueProperty">name</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="auditUser">
+ <Property></Property>
+ <Property name="label">瀹℃牳浜�</Property>
+ </PropertyDef>
+ <PropertyDef name="auditDate">
+ <Property name="dataType">DateTime</Property>
+ <Property name="label">瀹℃壒鏃堕棿</Property>
+ </PropertyDef>
+ <PropertyDef name="completeStatus">
+ <Property></Property>
+ <Property name="label">瀹屾垚鐘舵��</Property>
+ <Property name="mapping">
+ <Property name="mapValues">
+ <Collection>
+ <Entity>
+ <Property name="name">鏈畬鎴�</Property>
+ <Property name="code">NONE</Property>
+ </Entity>
+ <Entity>
+ <Property name="name">宸插畬鎴�</Property>
+ <Property name="code">COMPLETE</Property>
+ </Entity>
+ </Collection>
+ </Property>
+ <Property name="keyProperty">code</Property>
+ <Property name="valueProperty">name</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="completeTime">
+ <Property name="dataType">DateTime</Property>
+ <Property name="label">瀹屾垚鏃堕棿</Property>
+ </PropertyDef>
+ <PropertyDef name="remark">
+ <Property></Property>
+ <Property name="label">澶囨敞淇℃伅</Property>
+ </PropertyDef>
+ <PropertyDef name="tag">
+ <Property></Property>
+ <Property name="label">鏍囪</Property>
+ </PropertyDef>
+ <PropertyDef name="createTime">
+ <Property name="dataType">DateTime</Property>
+ <Property name="label">鍒涘缓鏃堕棿</Property>
+ <Property name="readOnly">true</Property>
+ </PropertyDef>
+ <PropertyDef name="createBy">
+ <Property></Property>
+ <Property name="label">鍒涘缓浜�</Property>
+ <Property name="readOnly">true</Property>
+ </PropertyDef>
+ <PropertyDef name="updateTime">
+ <Property name="dataType">DateTime</Property>
+ <Property name="label">鏇存柊鏃堕棿</Property>
+ <Property name="readOnly">true</Property>
+ </PropertyDef>
+ <PropertyDef name="updateBy">
+ <Property></Property>
+ <Property name="label">鏇存柊浜�</Property>
+ <Property name="readOnly">true</Property>
+ </PropertyDef>
+ </DataType>
+ <DataType name="dtQuery">
+ <PropertyDef name="depotId">
+ <Property></Property>
+ <Property name="label">瑁呭嵏浠撳簱</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("depotPR#getAllCache").getResult()}</Property>
+ <Property name="keyProperty">id</Property>
+ <Property name="valueProperty">name</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="customerName">
+ <Property></Property>
+ <Property name="label">鍙戣揣瀹㈡埛</Property>
+ </PropertyDef>
+ <PropertyDef name="foodVariety">
+ <Property></Property>
+ <Property name="label">绮鍝佺</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("dicPR#sysDictData").getResult("FOOD_VARIETY_")}</Property>
+ <Property name="keyProperty">dictValue</Property>
+ <Property name="valueProperty">dictLabel</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="completeStatus">
+ <Property></Property>
+ <Property name="label">瀹屾垚鐘舵��</Property>
+ <Property name="mapping">
+ <Property name="mapValues">
+ <Collection>
+ <Entity>
+ <Property name="name">鏈畬鎴�</Property>
+ <Property name="code">NONE</Property>
+ </Entity>
+ <Entity>
+ <Property name="name">宸插畬鎴�</Property>
+ <Property name="code">COMPLETE</Property>
+ </Entity>
+ </Collection>
+ </Property>
+ <Property name="keyProperty">code</Property>
+ <Property name="valueProperty">name</Property>
+ </Property>
+ </PropertyDef>
+ </DataType>
+ <DataType name="dtQueryTitle">
+ <PropertyDef name="title">
+ <Property name="label">title</Property>
+ </PropertyDef>
+ </DataType>
+ </Model>
+ <View layout="padding:10">
+ <ClientEvent name="onReady">var deptId = window.parent.deptId;//鐖堕〉闈腑鐨勫垎搴撶紪鐮�
+var TYPE = "NOTICE_IN";
+query = function(){
+ view.get("#dsQuery").set("parameter",{deptId:deptId}).flushAsync();
+};
+query();
+ 
+queryTitle = function(){
+ view.get("#dsQueryTitle").set("parameter",{type:TYPE,deptId:deptId}).flushAsync();
+};
+queryTitle();
+ 
+//鏂板
+add = function(){
+ view.get("#ajaxInitAdd").set("parameter", TYPE).execute(function(data){
+ view.get("#dsMain").insert(data);
+ view.get("#dialogMain").show();
+ });
+};</ClientEvent>
+ <Property name="packages">font-awesome,css-common</Property>
+ <DataSet id="dsMain">
+ <Property name="dataType">[dtMain]</Property>
+ <Property name="dataProvider">inoutNoticePR#pageQueryIn</Property>
+ <Property name="pageSize">15</Property>
+ <Property name="loadMode">lazy</Property>
+ </DataSet>
+ <DataSet id="dsQuery">
+ <Property name="dataType">dtQuery</Property>
+ <Property name="dataProvider">inoutNoticePR#getYearQuery</Property>
+ <Property name="loadMode">manual</Property>
+ </DataSet>
+ <DataSet id="dsQueryTitle">
+ <Property name="dataType">dtQueryTitle</Property>
+ <Property name="dataProvider">inoutNoticePR#getTitle</Property>
+ <Property name="loadMode">manual</Property>
+ </DataSet>
+ <Container>
+ <Property name="className">c-param</Property>
+ <AutoForm>
+ <Property name="cols">*,*,*,*,90,90</Property>
+ <Property name="dataSet">dsQuery</Property>
+ <Property name="labelAlign">right</Property>
+ <Property name="labelWidth">100</Property>
+ <AutoFormElement>
+ <Property name="name">depotId</Property>
+ <Property name="property">depotId</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">customerName</Property>
+ <Property name="property">customerName</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">foodVariety</Property>
+ <Property name="property">foodVariety</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">completeStatus</Property>
+ <Property name="property">completeStatus</Property>
+ <Editor/>
+ </AutoFormElement>
+ <Button>
+ <ClientEvent name="onClick">var data = view.get("#dsQuery.data");
+ if(data){
+ view.get("#dsMain").set("parameter",data.toJSON()).flushAsync();
+ }else{
+ view.get("#dsMain").flushAsync();
+ }</ClientEvent>
+ <Property name="caption">鎼滅储</Property>
+ <Property name="iconClass">fa fa-search</Property>
+ <Property name="exClassName">btn-q1</Property>>
+ </Button>
+ <Button>
+ <ClientEvent name="onClick">view.get("#dsQuery").flushAsync();</ClientEvent>
+ <Property name="caption">閲嶇疆</Property>
+ <Property name="exClassName">btn-q2</Property>
+ <Property name="iconClass">fa fa-refresh</Property>
+ </Button>
+ </AutoForm>
+ </Container>
+ <Container>
+ <Property name="className">c-data</Property>
+ <ToolBar>
+ <ToolBarButton layoutConstraint="left">
+ <ClientEvent name="onClick">add();</ClientEvent>
+ <Property name="caption">鏂板</Property>
+ <Property name="exClassName">btn1</Property>
+ <Property name="width">100</Property>
+ <Property name="iconClass">fa fa-plus</Property>
+ </ToolBarButton>
+ <ToolBarButton layoutConstraint="left">
+ <ClientEvent name="onClick">
+ var select = view.get("#dataGridMain").get("selection");
+ if(select){
+ view.get("#dialogMain").show();
+ }else{
+ $notify("璇烽�夋嫨闇�瑕佷慨鏀圭殑鏁版嵁鈥︹��");
+ }</ClientEvent>
+ <Property name="caption">淇敼</Property>
+ <Property name="exClassName">btn2</Property>
+ <Property name="width">100</Property>
+ <Property name="iconClass">fa fa-pencil-square-o</Property>
+ </ToolBarButton>
+ <ToolBarButton layoutConstraint="left">
+ <ClientEvent name="onClick">
+ var select = view.get("#dataGridMain").get("selection");
+ if(select){
+ view.get("#ajaxDel").set("parameter",select).execute(function(result){
+ select.remove();
+ });
+ }else{
+ $notify("璇烽�夋嫨闇�瑕佸垹闄ょ殑浠撳簱鈥︹��");
+ }</ClientEvent>
+ <Property name="caption">鍒犻櫎</Property>
+ <Property name="exClassName">btn3</Property>
+ <Property name="width">100</Property>
+ <Property name="iconClass">fa fa-times</Property>
+ </ToolBarButton>
+ <ToolBarButton layoutConstraint="left">
+ <ClientEvent name="onClick">view.get("#recalculate").execute(function(result){
+ if(result == 'success'){
+ $notify("鏁版嵁鏇存柊瀹屾垚锛侊紒");
+ 
+ var data = view.get("#dsQuery.data");
+ view.get("#dsMain").set("parameter",data.toJSON()).flushAsync();
+ }else{
+ $notify("鏁版嵁鏇存柊澶辫触锛侊紒");
+ }
+ });</ClientEvent>
+ <Property name="caption">瀹炴椂鏍哥畻</Property>
+ <Property name="exClassName">btn4</Property>
+ <Property name="iconClass">fa fa-refresh</Property>
+ <Property name="width">100</Property>
+ <Property name="tip">瀹屾垚閲忛粯璁ょ粺璁″埌鏄ㄥぉ锛屾煡鐪嬪疄鏃跺畬鎴愰噺璇风偣鍑烩�滃疄鏃舵牳绠椻�濇寜閽�</Property>
+ </ToolBarButton>
+ </ToolBar>
+ <DataGrid id="dataGridMain" layoutConstraint="padding:8">
+ <ClientEvent name="onDataRowClick">view.get("#dataGridCamera").set("selection",arg.data);</ClientEvent>
+ <Property name="dataSet">dsMain</Property>
+ <Property name="readOnly">true</Property>
+ <Property name="selectionMode">singleRow</Property>
+ <Property name="readOnly">true</Property>
+ <RowSelectorColumn/>
+ <RowNumColumn>
+ <Property name="width">50</Property>
+ <Property name="caption">搴忓彿</Property>
+ </RowNumColumn>
+ <DataColumn name="id">
+ <Property name="property">id</Property>
+ <Property name="width">200</Property>
+ <Property name="align">center</Property>
+ </DataColumn>
+ <DataColumn name="name">
+ <Property name="property">name</Property>
+ <Property name="align">center</Property>
+ <Property name="width">120</Property>
+ </DataColumn>
+ <DataColumn>
+ <Property name="property">customerName</Property>
+ <Property name="name">customerName</Property>
+ <Property name="align">center</Property>
+ </DataColumn>
+ <DataColumn name="depotId">
+ <Property name="property">depotId</Property>
+ <Property name="align">center</Property>
+ <Property name="width">150</Property>
+ </DataColumn>
+ <DataColumn name="foodVariety">
+ <Property name="property">foodVariety</Property>
+ <Property name="align">center</Property>
+ <Property name="width">150</Property>
+ </DataColumn>
+ <DataColumn>
+ <Property name="property">targetNumber</Property>
+ <Property name="name">targetNumber</Property>
+ <Property name="align">center</Property>
+ <Property name="width">200</Property>
+ </DataColumn>
+ <DataColumn>
+ <Property name="property">completeStatus</Property>
+ <Property name="name">completeStatus</Property>
+ <Property name="align">center</Property>
+ <Property name="width">100</Property>
+ </DataColumn>
+ <DataColumn>
+ <Property name="property">createTime</Property>
+ <Property name="align">center</Property>
+ <Property name="name">createTime</Property>
+ <Property name="width">160</Property>
+ </DataColumn>
+ <DataColumn>
+ <Property name="property">updateBy</Property>
+ <Property name="align">center</Property>
+ <Property name="name">updateBy</Property>
+ <Property name="width">120</Property>
+ </DataColumn>
+ <DataColumn>
+ <Property name="property">updateTime</Property>
+ <Property name="align">center</Property>
+ <Property name="name">updateTime</Property>
+ <Property name="width">160</Property>
+ </DataColumn>
+ </DataGrid>
+ </Container>
+ <Container layoutConstraint="bottom">
+ <Property name="className">c-bottom</Property>
+ <DataPilot layoutConstraint="right">
+ <Property name="itemCodes">pageSize,pages</Property>
+ <Property name="dataSet">dsMain</Property>
+ </DataPilot>
+ </Container>
+ <Dialog id="dialogMain" layout="regionPadding:8">
+ <Property name="closeable">false</Property>
+ <Property name="caption">鍏ュ簱閫氱煡鍗�</Property>
+ <Property name="width">60%</Property>
+ <Property name="iconClass">fa fa-tasks</Property>
+ <Buttons>
+ <Button id="btnOk">
+ <ClientEvent name="onClick">var data = view.get("#dsMain.data:#");
+ if(data.validate() != 'ok'){
+ $notify("鏁版嵁鏍¢獙澶辫触锛侊紒");
+ return;
+ }
+ view.get("#ajaxSave").set("parameter",data).execute(function(result){
+ if(result){
+ $alert(result);
+ return;
+ }
+ $notify("鏁版嵁鎵ц瀹屾垚锛侊紒");
+ self.get("parent").hide();
+ });</ClientEvent>
+ <Property name="caption">淇濆瓨</Property>
+ <Property name="iconClass">fa fa-check-circle</Property>
+ <Property name="exClassName">btn1</Property>
+ <Property name="width">120</Property>
+ </Button>
+ <Button>
+ <ClientEvent name="onClick">view.get("#dsMain.data:#").cancel();
+ self.get("parent").hide();</ClientEvent>
+ <Property name="caption">鍙栨秷</Property>
+ <Property name="exClassName">btn3</Property>
+ <Property name="iconClass">fa fa-times-circle</Property>
+ <Property name="width">120</Property>
+ </Button>
+ </Buttons>
+ <Children>
+ <Container>
+ <AutoForm id="autoForm1" layoutConstraint="top padding:10">
+ <Property name="cols">*,*,*,*,*,*,*</Property>
+ <Property name="dataSet">dsQueryTitle</Property>
+ <Property name="labelAlign">right</Property>
+ <Property name="showHint">false</Property>
+ <AutoFormElement layoutConstraint="colSpan:7">
+ <Property name="name">title</Property>
+ <Property name="property">title</Property>
+ <Property name="showLabel">false</Property>
+ <Property name="editorType">Label</Property>
+ <Property name="style">
+ <Property name="font">bold 30px Georgia, serif;</Property>
+ <Property name="text-align">center</Property>
+ </Property>
+ <Editor/>
+ </AutoFormElement>
+ </AutoForm>
+ <Container layout="padding:15">
+ <AutoForm>
+ <Property name="dataSet">dsMain</Property>
+ <Property name="cols">*,*,*</Property>
+ <Property name="labelAlign">right</Property>
+ <Property name="labelSeparator">锛�</Property>
+ <Property name="labelWidth">120</Property>
+ <AutoFormElement>
+ <Property name="name">name</Property>
+ <Property name="property">name</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">depotId</Property>
+ <Property name="property">depotId</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">id</Property>
+ <Property name="property">id</Property>
+ <Property name="readOnly">true</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">foodVariety</Property>
+ <Property name="property">foodVariety</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">customerName</Property>
+ <Property name="property">customerName</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">unitName</Property>
+ <Property name="property">unitName</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">year</Property>
+ <Property name="property">year</Property>
+ <Property name="trigger">defaultYearDropDown</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">targetNumber</Property>
+ <Property name="property">targetNumber</Property>
+ <Property name="readOnly">false</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">completeNumber</Property>
+ <Property name="property">completeNumber</Property>
+ <Property name="readOnly">false</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">type</Property>
+ <Property name="property">type</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">completeStatus</Property>
+ <Property name="property">completeStatus</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">completeTime</Property>
+ <Property name="property">completeTime</Property>
+ <Property name="readOnly">false</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">contractId</Property>
+ <Property name="property">contractId</Property>
+ <Editor/>
+ </AutoFormElement>
+ <Label layoutConstraint="colSpan:2">
+ <Property name="style">
+ <Property name="color">blue</Property>
+ </Property>
+ <Property name="text">娉細绫诲瀷涓洪摱琛岀洃绠℃椂锛岄渶鍏宠仈璐ㄦ娂鍚堝悓</Property>
+ </Label>
+ <AutoFormElement layoutConstraint="colSpan:2">
+ <Property name="name">remark</Property>
+ <Property name="property">remark</Property>
+ <Property name="editorType">TextArea</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">createBy</Property>
+ <Property name="property">createBy</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">createTime</Property>
+ <Property name="property">createTime</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">updateBy</Property>
+ <Property name="property">updateBy</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">updateTime</Property>
+ <Property name="property">updateTime</Property>
+ <Editor/>
+ </AutoFormElement>
+ </AutoForm>
+ </Container>
+ </Container>
+ </Children>
+ <Tools/>
+ </Dialog>
+ <AjaxAction id="ajaxSave">
+ <Property name="service">inoutNoticePR#saveIn</Property>
+ </AjaxAction>
+ <AjaxAction id="ajaxDel">
+ <Property name="service">inoutNoticePR#delDataIn</Property>
+ <Property name="confirmMessage">纭畾瑕佹墽琛屽垹闄や箞锛�</Property>
+ </AjaxAction>
+ <AjaxAction id="ajaxInitAdd">
+ <Property name="service">inoutNoticePR#initAddIn</Property>
+ </AjaxAction>
+ <AjaxAction id="recalculate">
+ <Property name="service">inoutNoticePR#updateSumNoticeIn</Property>
+ </AjaxAction>
+ </View>
+</ViewConfig>
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeOut.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeOut.view.xml
new file mode 100644
index 0000000..f5e3789
--- /dev/null
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeOut.view.xml
@@ -0,0 +1,1122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ViewConfig>
+ <Arguments/>
+ <Context/>
+ <Model>
+ <DataType name="dtMain">
+ <ClientEvent name="onDataChange">if(arg.property =="depotId"){
+ autoByDepot(arg.newValue);
+}</ClientEvent>
+ <Property name="creationType">com.fzzy.igds.models.InoutNoticeOut</Property>
+ <PropertyDef name="id">
+ <Property></Property>
+ <Property name="label">閫氱煡鍗曞彿</Property>
+ </PropertyDef>
+ <PropertyDef name="companyId">
+ <Property></Property>
+ <Property name="label">缁勭粐缂栫爜</Property>
+ </PropertyDef>
+ <PropertyDef name="deptId">
+ <Property></Property>
+ <Property name="label">鎵�灞炲垎搴�</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("deptPR#loadParents").getResult()}</Property>
+ <Property name="keyProperty">deptId</Property>
+ <Property name="valueProperty">deptName</Property>
+ </Property>
+ <Property name="required">false</Property>
+ </PropertyDef>
+ <PropertyDef name="planId">
+ <Property></Property>
+ <Property name="label">鎵�灞炶鍒�</Property>
+ <Property name="required">false</Property>
+ </PropertyDef>
+ <PropertyDef name="planName">
+ <Property></Property>
+ <Property name="label">鎵�灞炶鍒�</Property>
+ <Property name="required">false</Property>
+ </PropertyDef>
+ <PropertyDef name="contractId">
+ <Property></Property>
+ <Property name="label">鎵�灞炲悎鍚�</Property>
+ <Property name="required">false</Property>
+ </PropertyDef>
+ <PropertyDef name="contractName">
+ <Property></Property>
+ <Property name="label">鎵�灞炲悎鍚�</Property>
+ <Property name="required">false</Property>
+ </PropertyDef>
+ <PropertyDef name="name">
+ <Property></Property>
+ <Property name="label">閫氱煡鍗曞悕绉�</Property>
+ <Property name="required">true</Property>
+ </PropertyDef>
+ <PropertyDef name="depotId">
+ <Property></Property>
+ <Property name="label">鍑哄簱浠撳簱</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("depotPR#getAllCache").getResult()}</Property>
+ <Property name="keyProperty">id</Property>
+ <Property name="valueProperty">name</Property>
+ </Property>
+ <Property name="required">true</Property>
+ </PropertyDef>
+ <PropertyDef name="customerId">
+ <Property></Property>
+ <Property name="label">鏀惰揣瀹㈡埛</Property>
+ <Property name="required">true</Property>
+ </PropertyDef>
+ <PropertyDef name="customerName">
+ <Property></Property>
+ <Property name="label">鏀惰揣瀹㈡埛</Property>
+ <Property name="required">true</Property>
+ </PropertyDef>
+ <PropertyDef name="unitName">
+ <Property></Property>
+ <Property name="label">鍙戣揣鍗曚綅</Property>
+ <Property name="required">false</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("deptPR#loadParents").getResult()}</Property>
+ <Property name="keyProperty">deptId</Property>
+ <Property name="valueProperty">deptName</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="foodVariety">
+ <Property></Property>
+ <Property name="label">绮鍝佺</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("dicPR#sysDictData").getResult("FOOD_VARIETY_")}</Property>
+ <Property name="keyProperty">dictValue</Property>
+ <Property name="valueProperty">dictLabel</Property>
+ </Property>
+ <Property name="required">true</Property>
+ </PropertyDef>
+ <PropertyDef name="year">
+ <Property></Property>
+ <Property name="label">绮骞翠唤</Property>
+ <Property name="required">true</Property>
+ </PropertyDef>
+ <PropertyDef name="targetNumber">
+ <Property name="dataType">double</Property>
+ <Property name="displayFormat">#,## kG</Property>
+ <Property name="required">true</Property>
+ <Property name="label">璁″垝鏁伴噺</Property>
+ </PropertyDef>
+ <PropertyDef name="completeNumber">
+ <Property name="dataType">double</Property>
+ <Property name="label">瀹屾垚鏁伴噺</Property>
+ <Property name="displayFormat">#,## kG</Property>
+ </PropertyDef>
+ <PropertyDef name="auditStatus">
+ <Property></Property>
+ <Property name="label">瀹℃牳鐘舵��</Property>
+ </PropertyDef>
+ <PropertyDef name="auditUser">
+ <Property></Property>
+ <Property name="label">瀹℃牳浜�</Property>
+ </PropertyDef>
+ <PropertyDef name="completeStatus">
+ <Property></Property>
+ <Property name="label">瀹屾垚鐘舵��</Property>
+ <Property name="mapping">
+ <Property name="mapValues">
+ <Collection>
+ <Entity>
+ <Property name="name">鏈畬鎴�</Property>
+ <Property name="code">NONE</Property>
+ </Entity>
+ <Entity>
+ <Property name="name">宸插畬鎴�</Property>
+ <Property name="code">COMPLETE</Property>
+ </Entity>
+ </Collection>
+ </Property>
+ <Property name="keyProperty">code</Property>
+ <Property name="valueProperty">name</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="createTime">
+ <Property name="dataType">DateTime</Property>
+ <Property name="label">鍒涘缓鏃堕棿</Property>
+ </PropertyDef>
+ <PropertyDef name="createUser">
+ <Property></Property>
+ <Property name="label">鍒涘缓浜�</Property>
+ </PropertyDef>
+ <PropertyDef name="completeTime">
+ <Property name="dataType">DateTime</Property>
+ <Property name="label">瀹屾垚鏃堕棿</Property>
+ </PropertyDef>
+ <PropertyDef name="remark">
+ <Property></Property>
+ <Property name="label">澶囨敞淇℃伅</Property>
+ </PropertyDef>
+ <PropertyDef name="tag">
+ <Property></Property>
+ <Property name="label">鏍囪</Property>
+ </PropertyDef>
+ </DataType>
+ <DataType name="dtQuery">
+ <PropertyDef name="id">
+ <Property></Property>
+ <Property name="label">閫氱煡鍗曞彿</Property>
+ </PropertyDef>
+ <PropertyDef name="deptId">
+ <Property></Property>
+ <Property name="label">鍙戣揣鍗曚綅</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("deptPR#loadParents").getResult()}</Property>
+ <Property name="keyProperty">deptId</Property>
+ <Property name="valueProperty">deptName</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="foodVariety">
+ <Property></Property>
+ <Property name="label">绮鍝佺</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("dicPR#sysDictData").getResult("FOOD_VARIETY_")}</Property>
+ <Property name="keyProperty">dictValue</Property>
+ <Property name="valueProperty">dictLabel</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="year">
+ <Property></Property>
+ <Property name="label">骞翠唤</Property>
+ </PropertyDef>
+ <PropertyDef name="completeStatus">
+ <Property></Property>
+ <Property name="label">瀹屾垚鐘舵��</Property>
+ <Property name="mapping">
+ <Property name="mapValues">
+ <Collection>
+ <Entity>
+ <Property name="name">鏈畬鎴�</Property>
+ <Property name="code">NONE</Property>
+ </Entity>
+ <Entity>
+ <Property name="name">宸插畬鎴�</Property>
+ <Property name="code">COMPLETE</Property>
+ </Entity>
+ </Collection>
+ </Property>
+ <Property name="keyProperty">code</Property>
+ <Property name="valueProperty">name</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="depotId">
+ <Property></Property>
+ <Property name="label">鍑哄簱浠撳簱</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("depotPR#getAllCache").getResult()}</Property>
+ <Property name="keyProperty">id</Property>
+ <Property name="valueProperty">name</Property>
+ </Property>
+ <Property name="required">true</Property>
+ </PropertyDef>
+ </DataType>
+ <DataType name="dtQueryTitle">
+ <PropertyDef name="title">
+ <Property name="label">title</Property>
+ </PropertyDef>
+ </DataType>
+ <DataType name="dtPlan">
+ <Property name="creationType">com.fzzy.igds.models.InoutPlanDetail</Property>
+ <PropertyDef name="id">
+ <Property></Property>
+ <Property name="label">璁″垝鏄庣粏鍙�</Property>
+ </PropertyDef>
+ <PropertyDef name="planId">
+ <Property name="label">璁″垝缂栫爜</Property>
+ </PropertyDef>
+ <PropertyDef name="foodVariety">
+ <Property></Property>
+ <Property name="label">绮鍝佺</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("dicPR#sysDictData").getResult("FOOD_VARIETY_")}</Property>
+ <Property name="keyProperty">dictValue</Property>
+ <Property name="valueProperty">dictLabel</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="foodType">
+ <Property></Property>
+ <Property name="label">绮鎬ц川</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("dicPR#sysDictData").getResult("FOOD_TYPE_")}</Property>
+ <Property name="keyProperty">dictValue</Property>
+ <Property name="valueProperty">dictLabel</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="foodLevel">
+ <Property></Property>
+ <Property name="label">绮绛夌骇</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("dicPR#triggerFoodLevel").getResult()}</Property>
+ <Property name="keyProperty">dictValue</Property>
+ <Property name="valueProperty">dictLabel</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="year">
+ <Property></Property>
+ <Property name="label">鏀惰幏骞村害</Property>
+ </PropertyDef>
+ <PropertyDef name="depotId">
+ <Property></Property>
+ <Property name="label">浠撳簱</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("depotPR#getAllCache").getResult()}</Property>
+ <Property name="keyProperty">id</Property>
+ <Property name="valueProperty">name</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="planNum">
+ <Property name="dataType">Double</Property>
+ <Property name="label">璁″垝鏁伴噺</Property>
+ </PropertyDef>
+ <PropertyDef name="type">
+ <Property name="label">璁″垝绫诲瀷</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("dicPR#triggerPlanType").getResult()}</Property>
+ <Property name="keyProperty">dictValue</Property>
+ <Property name="valueProperty">dictLabel</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="updateTime">
+ <Property></Property>
+ <Property name="label">鏇存柊鏃堕棿</Property>
+ </PropertyDef>
+ </DataType>
+ <DataType name="dtContract">
+ <Property name="creationType">com.fzzy.igds.models.InoutContract</Property>
+ <PropertyDef name="id">
+ <Property></Property>
+ <Property name="label">ID_</Property>
+ </PropertyDef>
+ <PropertyDef name="companyId">
+ <Property></Property>
+ <Property name="label">缁勭粐缂栫爜</Property>
+ </PropertyDef>
+ <PropertyDef name="deptId">
+ <Property></Property>
+ <Property name="label">鎵�灞炲簱鍖�</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("deptPR#loadParents").getResult()}</Property>
+ <Property name="keyProperty">deptId</Property>
+ <Property name="valueProperty">deptName</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="planId">
+ <Property></Property>
+ <Property name="label">鎵�灞炶鍒�</Property>
+ </PropertyDef>
+ <PropertyDef name="planName">
+ <Property></Property>
+ <Property name="label">鎵�灞炶鍒�</Property>
+ </PropertyDef>
+ <PropertyDef name="type">
+ <Property></Property>
+ <Property name="label">鍚堝悓绫诲瀷</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("dicPR#triggerContractType").getResult()}</Property>
+ <Property name="keyProperty">dictValue</Property>
+ <Property name="valueProperty">dictLabel</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="name">
+ <Property></Property>
+ <Property name="label">鍚堝悓鍚嶇О</Property>
+ <Property name="required">true</Property>
+ </PropertyDef>
+ <PropertyDef name="year">
+ <Property></Property>
+ <Property name="label">骞翠唤</Property>
+ </PropertyDef>
+ <PropertyDef name="customerId">
+ <Property></Property>
+ <Property name="label">瀹㈡埛缂栫爜</Property>
+ </PropertyDef>
+ <PropertyDef name="customerName">
+ <Property></Property>
+ <Property name="label">瀹㈡埛鍚嶇О</Property>
+ <Property name="required">true</Property>
+ </PropertyDef>
+ <PropertyDef name="customerType">
+ <Property></Property>
+ <Property name="label">瀹㈡埛绫诲瀷</Property>
+ <Property name="mapping">
+ <Property name="mapValues">
+ <Collection>
+ <Entity>
+ <Property name="code">1</Property>
+ <Property name="name">1-浼佷笟</Property>
+ </Entity>
+ <Entity>
+ <Property name="code">2</Property>
+ <Property name="name">2-涓汉</Property>
+ </Entity>
+ </Collection>
+ </Property>
+ <Property name="keyProperty">code</Property>
+ <Property name="valueProperty">name</Property>
+ </Property>
+ <Property name="required">true</Property>
+ </PropertyDef>
+ <PropertyDef name="customerBank">
+ <Property></Property>
+ <Property name="label">瀹㈡埛寮�鎴疯</Property>
+ </PropertyDef>
+ <PropertyDef name="customerBankAccount">
+ <Property></Property>
+ <Property name="label">瀹㈡埛寮�鎴疯璐﹀彿</Property>
+ </PropertyDef>
+ <PropertyDef name="customerSignUser">
+ <Property></Property>
+ <Property name="label">瀹㈡埛绛剧害浜�</Property>
+ </PropertyDef>
+ <PropertyDef name="bank">
+ <Property></Property>
+ <Property name="label">鏈柟寮�鎴疯</Property>
+ </PropertyDef>
+ <PropertyDef name="bankAccount">
+ <Property></Property>
+ <Property name="label">鏈柟寮�鎴疯璐﹀彿</Property>
+ </PropertyDef>
+ <PropertyDef name="signUser">
+ <Property></Property>
+ <Property name="label">鏈柟绛剧害浜�</Property>
+ </PropertyDef>
+ <PropertyDef name="signAddress">
+ <Property></Property>
+ <Property name="label">绛剧害鍦板潃</Property>
+ </PropertyDef>
+ <PropertyDef name="price">
+ <Property name="dataType">Double</Property>
+ <Property name="label">鍗曚环</Property>
+ <Property name="displayFormat">#,###0.000 鍏�/鍏枻</Property>
+ <Property name="required">true</Property>
+ </PropertyDef>
+ <PropertyDef name="money">
+ <Property name="dataType">Double</Property>
+ <Property name="label">鎬婚噾棰�</Property>
+ <Property name="displayFormat">#,###0.000 鍏�</Property>
+ <Property name="required">true</Property>
+ </PropertyDef>
+ <PropertyDef name="contactAmount">
+ <Property name="dataType">Double</Property>
+ <Property name="label">鍚堝悓鏁伴噺</Property>
+ <Property name="displayFormat">#,##0.00 KG</Property>
+ <Property name="required">true</Property>
+ </PropertyDef>
+ <PropertyDef name="completeNum">
+ <Property name="dataType">Double</Property>
+ <Property name="label">鍚堝悓瀹屾垚鏁伴噺</Property>
+ <Property name="displayFormat">#,##0.00 KG</Property>
+ </PropertyDef>
+ <PropertyDef name="foodVariety">
+ <Property></Property>
+ <Property name="label">绮鍝佺</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("dicPR#sysDictData").getResult("FOOD_VARIETY_")}</Property>
+ <Property name="keyProperty">dictValue</Property>
+ <Property name="valueProperty">dictLabel</Property>
+ </Property>
+ <Property name="required">true</Property>
+ </PropertyDef>
+ <PropertyDef name="foodType">
+ <Property></Property>
+ <Property name="label">绮鎬ц川</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("dicPR#sysDictData").getResult("FOOD_TYPE_")}</Property>
+ <Property name="keyProperty">dictValue</Property>
+ <Property name="valueProperty">dictLabel</Property>
+ </Property>
+ <Property name="required">true</Property>
+ </PropertyDef>
+ <PropertyDef name="payType">
+ <Property></Property>
+ <Property name="label">鏀粯鏂瑰紡</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("dicPR#sysDictData").getResult("PAY_TYPE")}</Property>
+ <Property name="valueProperty">dictLabel</Property>
+ <Property name="keyProperty">dictValue</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="createUser">
+ <Property></Property>
+ <Property name="label">鍒涘缓浜�</Property>
+ </PropertyDef>
+ <PropertyDef name="createTime">
+ <Property name="dataType">Date</Property>
+ <Property name="label">鍒涘缓鏃堕棿</Property>
+ </PropertyDef>
+ <PropertyDef name="signingTime">
+ <Property name="dataType">Date</Property>
+ <Property name="label">绛捐鏃堕棿</Property>
+ <Property name="required">true</Property>
+ </PropertyDef>
+ <PropertyDef name="beginTime">
+ <Property name="dataType">Date</Property>
+ <Property name="label">鏈夋晥寮�濮嬫椂闂�</Property>
+ </PropertyDef>
+ <PropertyDef name="endTime">
+ <Property name="dataType">Date</Property>
+ <Property name="label">鏈夋晥鎴鏃堕棿</Property>
+ </PropertyDef>
+ <PropertyDef name="remark">
+ <Property></Property>
+ <Property name="label">澶囨敞璇存槑</Property>
+ </PropertyDef>
+ </DataType>
+ </Model>
+ <View layout="padding:5;regionPadding:5">
+ <ClientEvent name="onReady">var deptId = window.parent.deptId;//鐖堕〉闈腑鐨勫垎搴撶紪鐮�
+var TYPE = "NOTICE_OUT";
+query = function(){
+ view.get("#dsQuery").set("parameter",{deptId:deptId}).flushAsync();
+};
+query();
+ 
+queryTitle = function(){
+ view.get("#dsQueryTitle").set("parameter",{type:TYPE,deptId:deptId}).flushAsync();
+};
+queryTitle();
+ 
+//鏂板
+add = function(){
+ view.get("#ajaxInitAdd").set("parameter", TYPE).execute(function(data){
+ view.get("#dsMain").insert(data);
+ view.get("#dialogMain").show();
+ });
+};
+
+//鏍规嵁浠撳簱鑷姩鍥炲~绮鍝佺锛岀瓑绾э紝浜у湴鏂�
+autoByDepot = function(depotId){
+ view.get("#ajaxGetDepot").set("parameter",depotId).execute(function(result){
+ if(result){
+ var data = view.get("#dataGridMain.currentEntity");
+ data.set("foodVariety",result.foodVariety);
+ 
+ }
+ });
+};</ClientEvent>
+ <Property name="packages">font-awesome,css-common</Property>
+ <DataSet id="dsMain">
+ <Property name="dataType">[dtMain]</Property>
+ <Property name="dataProvider">inoutNoticePR#pageQueryOut</Property>
+ <Property name="pageSize">15</Property>
+ <Property name="loadMode">lazy</Property>
+ </DataSet>
+ <DataSet id="dsQueryTitle">
+ <Property name="dataType">dtQueryTitle</Property>
+ <Property name="dataProvider">inoutNoticePR#getTitle</Property>
+ <Property name="loadMode">manual</Property>
+ </DataSet>
+ <DataSet id="dsQuery">
+ <Property name="dataType">dtQuery</Property>
+ <Property name="dataProvider">inoutNoticePR#getYearQuery</Property>
+ <Property name="loadMode">manual</Property>
+ </DataSet>
+ <AutoForm layoutConstraint="top">
+ <Property name="cols">*,*,*,*</Property>
+ <Property name="dataSet">dsQuery</Property>
+ <Property name="exClassName">bg-color</Property>
+ <AutoFormElement>
+ <Property name="name">foodVariety</Property>
+ <Property name="property">foodVariety</Property>
+ <Property name="editable">false</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">year</Property>
+ <Property name="property">year</Property>
+ <Property name="trigger">defaultYearDropDown</Property>
+ <Property name="editable">false</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">completeStatus</Property>
+ <Property name="property">completeStatus</Property>
+ <Property name="editable">false</Property>
+ <Editor/>
+ </AutoFormElement>
+ <Container layout="hbox regionPadding:15">
+ <Button>
+ <ClientEvent name="onClick">var data = view.get("#dsQuery.data");
+ if(data){
+ view.get("#dsMain").set("parameter",data.toJSON()).flushAsync();
+ }else{
+ view.get("#dsMain").flushAsync();
+ }</ClientEvent>
+ <Property name="caption">鏌ヨ</Property>
+ <Property name="exClassName">btn1</Property>
+ <Property name="iconClass">fa fa-search</Property>
+ </Button>
+ <Button>
+ <ClientEvent name="onClick">view.get("#dsQuery").flushAsync();</ClientEvent>
+ <Property name="exClassName">btn2</Property>
+ <Property name="iconClass">fa fa-refresh</Property>
+ <Property name="caption">閲嶇疆</Property>
+ </Button>
+ </Container>
+ <Container layout="regionPadding:10" layoutConstraint="type:top;colSpan:2">
+ <Property name="exClassName">bg-color</Property>
+ <Property name="contentOverflow">hidden</Property>
+ <Property name="height">55</Property>
+ <Label layoutConstraint="left">
+ <Property name="text">鑿滃崟鏍忥細</Property>
+ </Label>
+ <Button layoutConstraint="left">
+ <ClientEvent name="onClick">add();
+ //view.get("#dsMain").insert({
+ // name:"鍑哄簱閫氱煡鍗�"
+ // });
+ // view.get("#dialogMain").show();</ClientEvent>
+ <Property name="caption">鏂板</Property>
+ <Property name="exClassName">btn1</Property>
+ <Property name="iconClass">fa fa-plus</Property>
+ </Button>
+ <Button layoutConstraint="left">
+ <ClientEvent name="onClick">
+var select = view.get("#dataGridMain").get("selection");
+if(select){
+ view.get("#dialogMain").show();
+}else{
+ $notify("璇烽�夋嫨闇�瑕佷慨鏀圭殑鏁版嵁鈥︹��");
+}</ClientEvent>
+ <Property name="caption">缂栬緫</Property>
+ <Property name="exClassName">btn2</Property>
+ <Property name="iconClass">fa fa-pencil</Property>
+ </Button>
+ <Button layoutConstraint="left">
+ <ClientEvent name="onClick">
+var select = view.get("#dataGridMain").get("selection");
+if(select){
+ view.get("#ajaxDel").set("parameter",select).execute(function(result){
+ select.remove();
+ });
+}else{
+ $notify("璇烽�夋嫨闇�瑕佸垹闄ょ殑浠撳簱鈥︹��");
+}
+ </ClientEvent>
+ <Property name="caption">鍒犻櫎</Property>
+ <Property name="exClassName">btn3</Property>
+ <Property name="iconClass">fa fa-minus</Property>
+ </Button>
+ <Button layoutConstraint="left">
+ <ClientEvent name="onClick">var data = view.get("#dsQuery.data");
+var page = view.get("#dsMain");
+var param = {
+ "pageSize":page.get("pageSize"),
+ "pageNo":page.get("pageNo"),
+ "foodVariety":data.get("foodVariety"),
+ "year":data.get("year"),
+ "completeStatus":data.get("completeStatus")
+}
+console.log(param);
+window.parent.$.table.exportExcelDorado("./export/noticeOut-excel", "鍑哄簱閫氱煡鍗曟暟鎹�", param);</ClientEvent>
+ <Property name="caption">瀵煎嚭EXCEL</Property>
+ <Property name="exClassName">btn4</Property>
+ <Property name="iconClass">fa fa-file-excel-o</Property>
+ <Property name="action">exportExcel</Property>
+ </Button>
+ <Button layoutConstraint="left">
+ <ClientEvent name="onClick">view.get("#recalculate").execute(function(result){
+ if(result == 'success'){
+ $notify("鏁版嵁鏇存柊瀹屾垚锛侊紒");
+ 
+ var data = view.get("#dsQuery.data");
+ view.get("#dsMain").set("parameter",data.toJSON()).flushAsync();
+ }else{
+ $notify("鏁版嵁鏇存柊澶辫触锛侊紒");
+ }
+});</ClientEvent>
+ <Property name="caption">瀹炴椂鏍哥畻</Property>
+ <Property name="exClassName">btn2</Property>
+ <Property name="iconClass">fa fa-refresh</Property>
+ <Property name="tip">瀹屾垚閲忛粯璁ょ粺璁″埌鏄ㄥぉ锛屾煡鐪嬪疄鏃跺畬鎴愰噺璇风偣鍑烩�滃疄鏃舵牳绠椻�濇寜閽�</Property>
+ </Button>
+ </Container>
+ </AutoForm>
+ <Container layoutConstraint="center">
+ <Property name="exClassName">bg-color</Property>
+ <DataGrid id="dataGridMain" layoutConstraint="center">
+ <ClientEvent name="onDataRowDoubleClick">var data = view.get("#dsMain.data:#");
+ if(data){
+ view.get("#dialogMain").show();
+ }</ClientEvent>
+ <Property name="dataSet">dsMain</Property>
+ <Property name="readOnly">true</Property>
+ <Property name="selectionMode">singleRow</Property>
+ <RowSelectorColumn/>
+ <RowNumColumn>
+ <Property name="width">50</Property>
+ <Property name="caption">搴忓彿</Property>
+ </RowNumColumn>
+ <DataColumn name="id">
+ <Property name="property">id</Property>
+ <Property name="width">200</Property>
+ <Property name="align">center</Property>
+ </DataColumn>
+ <DataColumn name="name">
+ <Property name="property">name</Property>
+ <Property name="align">center</Property>
+ <Property name="width">120</Property>
+ </DataColumn>
+ <DataColumn>
+ <Property name="property">customerName</Property>
+ <Property name="name">customerName</Property>
+ <Property name="align">center</Property>
+ </DataColumn>
+ <DataColumn>
+ <Property name="property">depotId</Property>
+ <Property name="name">depotId</Property>
+ <Property name="align">center</Property>
+ <Property name="width">100</Property>
+ </DataColumn>
+ <DataColumn name="foodVariety">
+ <Property name="property">foodVariety</Property>
+ <Property name="align">center</Property>
+ <Property name="width">150</Property>
+ </DataColumn>
+ <DataColumn>
+ <Property name="property">targetNumber</Property>
+ <Property name="name">targetNumber</Property>
+ <Property name="align">center</Property>
+ <Property name="width">200</Property>
+ </DataColumn>
+ <DataColumn>
+ <Property name="property">completeNumber</Property>
+ <Property name="align">center</Property>
+ <Property name="name">completeNumber</Property>
+ <Property name="width">200</Property>
+ </DataColumn>
+ <DataColumn>
+ <Property name="property">completeStatus</Property>
+ <Property name="name">completeStatus</Property>
+ <Property name="align">center</Property>
+ <Property name="width">100</Property>
+ </DataColumn>
+ <DataColumn>
+ <Property name="property">createTime</Property>
+ <Property name="align">center</Property>
+ <Property name="name">createTime</Property>
+ <Property name="width">200</Property>
+ </DataColumn>
+ </DataGrid>
+ </Container>
+ <Container layoutConstraint="bottom">
+ <Property name="exClassName">bg-color</Property>
+ <DataPilot layoutConstraint="right">
+ <Property name="itemCodes">pageSize,pages</Property>
+ <Property name="dataSet">dsMain</Property>
+ </DataPilot>
+ </Container>
+ <Dialog id="dialogMain">
+ <Property name="closeable">false</Property>
+ <Property name="caption">鍑哄簱鍗�</Property>
+ <Property name="width">60%</Property>
+ <Property name="iconClass">fa fa-tasks</Property>
+ <Buttons>
+ <Button id="btnOk">
+ <ClientEvent name="onClick">var data = view.get("#dsMain.data:#");
+ if(data.validate() != 'ok'){
+ $notify("鏁版嵁鏍¢獙澶辫触锛侊紒");
+ return;
+ }
+ view.get("#ajaxSave").set("parameter",data).execute(function(result){
+ if(result){
+ $alert(result);
+ return;
+ }
+ $notify("鏁版嵁鎵ц瀹屾垚锛侊紒");
+ self.get("parent").hide();
+ });</ClientEvent>
+ <Property name="caption">纭畾</Property>
+ <Property name="iconClass">fa fa-check</Property>
+ <Property name="exClassName">btn1</Property>
+ </Button>
+ <Button>
+ <ClientEvent name="onClick">view.get("#dsMain.data:#").cancel();
+ self.get("parent").hide();</ClientEvent>
+ <Property name="caption">鍙栨秷</Property>
+ <Property name="iconClass">fa fa-times</Property>
+ <Property name="exClassName">btn3</Property>
+ </Button>
+ </Buttons>
+ <Children>
+ <Container>
+ <AutoForm id="autoForm1" layoutConstraint="top padding:10">
+ <Property name="cols">*,*,*,*,*,*,*</Property>
+ <Property name="dataSet">dsQueryTitle</Property>
+ <Property name="labelAlign">right</Property>
+ <Property name="showHint">false</Property>
+ <AutoFormElement layoutConstraint="colSpan:7">
+ <Property name="name">title</Property>
+ <Property name="property">title</Property>
+ <Property name="showLabel">false</Property>
+ <Property name="editorType">Label</Property>
+ <Property name="style">
+ <Property name="font">bold 30px Georgia, serif;</Property>
+ <Property name="text-align">center</Property>
+ </Property>
+ <Editor/>
+ </AutoFormElement>
+ </AutoForm>
+ <Container layout="padding:15">
+ <AutoForm>
+ <Property name="dataSet">dsMain</Property>
+ <Property name="cols">*,*</Property>
+ <Property name="labelAlign">right</Property>
+ <Property name="labelSeparator">锛�</Property>
+ <Property name="labelWidth">120</Property>
+ <AutoFormElement>
+ <Property name="name">name</Property>
+ <Property name="property">name</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">id</Property>
+ <Property name="property">id</Property>
+ <Property name="readOnly">true</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">customerName</Property>
+ <Property name="property">customerName</Property>
+ <Property name="trigger">ddCustomer</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">unitName</Property>
+ <Property name="property">unitName</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">depotId</Property>
+ <Property name="property">depotId</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">foodVariety</Property>
+ <Property name="property">foodVariety</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">year</Property>
+ <Property name="property">year</Property>
+ <Property name="trigger">defaultYearDropDown</Property>
+ <Editor/>
+ </AutoFormElement>
+ <Label layoutConstraint="colSpan:1"/>
+ <AutoFormElement>
+ <Property name="name">targetNumber</Property>
+ <Property name="property">targetNumber</Property>
+ <Property name="readOnly">false</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">completeNumber</Property>
+ <Property name="property">completeNumber</Property>
+ <Property name="readOnly">false</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">planName</Property>
+ <Property name="property">planName</Property>
+ <Property name="trigger">ddPlan</Property>
+ <Editor/>
+ </AutoFormElement>
+ <Label layoutConstraint="colSpan:1">
+ <Property name="style">
+ <Property name="color">blue</Property>
+ </Property>
+ <Property name="text">娉細褰撳墠閫氱煡鍗曞叧鑱旂殑搴撳尯璁″垝</Property>
+ </Label>
+ <AutoFormElement>
+ <Property name="name">contractName</Property>
+ <Property name="property">contractName</Property>
+ <Property name="trigger">ddContract</Property>
+ <Editor/>
+ </AutoFormElement>
+ <Label layoutConstraint="colSpan:1">
+ <Property name="style">
+ <Property name="color">blue</Property>
+ </Property>
+ <Property name="text">娉細褰撳墠閫氱煡鍗曞叧鑱旂殑閿�鍞悎鍚�</Property>
+ </Label>
+ <AutoFormElement>
+ <Property name="name">createTime</Property>
+ <Property name="property">createTime</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">completeTime</Property>
+ <Property name="property">completeTime</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">completeStatus</Property>
+ <Property name="property">completeStatus</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement layoutConstraint="colSpan:2">
+ <Property name="name">remark</Property>
+ <Property name="property">remark</Property>
+ <Property name="editorType">TextArea</Property>
+ <Editor/>
+ </AutoFormElement>
+ </AutoForm>
+ </Container>
+ </Container>
+ </Children>
+ <Tools/>
+ </Dialog>
+ <AjaxAction id="ajaxGetDepot">
+ <Property name="service">depotPR#getDepot</Property>
+ </AjaxAction>
+ <AjaxAction id="ajaxSave">
+ <Property name="service">inoutNoticePR#saveOut</Property>
+ </AjaxAction>
+ <AjaxAction id="ajaxDel">
+ <Property name="service">inoutNoticePR#delDataOut</Property>
+ <Property name="confirmMessage">纭畾瑕佹墽琛屽垹闄や箞锛�</Property>
+ </AjaxAction>
+ <AjaxAction id="ajaxInitAdd">
+ <Property name="service">inoutNoticePR#initAddOut</Property>
+ </AjaxAction>
+ <CustomDropDown id="ddCustomer">
+ <Property name="minHeight">400</Property>
+ <Property name="assignmentMap">customerId=id,customerName=name</Property>
+ <Property name="minWidth">500</Property>
+ <Property name="autoOpen">true</Property>
+ <Container layout="regionPadding:5">
+ <DataSet id="dsCustomer">
+ <Property name="dataProvider">inoutCustomerPR#queryListByKey</Property>
+ <Property name="dataType">[dtInoutCustomer]</Property>
+ <Property name="parameter">
+ <Entity>
+ <Property name="type">OUT</Property>
+ </Entity>
+ </Property>
+ </DataSet>
+ <Container layout="hbox regionPadding:5">
+ <TextEditor id="key">
+ <Property name="blankText"> -- 缂栫爜鎴栬�呭悕绉� --</Property>
+ <Property name="width">200</Property>
+ </TextEditor>
+ <Button>
+ <ClientEvent name="onClick">var key = view.get("#key.value");
+var type = "${request.getParameter('type')}";
+view.get("#dsCustomer").set("parameter",{key:key,type:type}).flushAsync();</ClientEvent>
+ <Property name="caption">鏌ヨ</Property>
+ <Property name="iconClass">fa fa-search</Property>
+ </Button>
+ <Button>
+ <ClientEvent name="onClick">var data = view.get("#dsCustomer.data:#");
+if(data){
+ view.get("#ddCustomer").close(data.toJSON());
+}</ClientEvent>
+ <Property name="iconClass">fa fa-check</Property>
+ <Property name="caption">纭畾</Property>
+ </Button>
+ </Container>
+ <DataGrid>
+ <ClientEvent name="onDataRowDoubleClick">var data = view.get("#dsCustomer.data:#");
+if(data){
+ view.get("#ddCustomer").close(data.toJSON());
+}</ClientEvent>
+ <Property name="dataSet">dsCustomer</Property>
+ <Property name="readOnly">true</Property>
+ <DataColumn name="id">
+ <Property name="property">id</Property>
+ <Property name="width">100</Property>
+ <Property name="align">center</Property>
+ </DataColumn>
+ <DataColumn name="name">
+ <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = "bold";
+arg.processDefault = true;</ClientEvent>
+ <Property name="property">name</Property>
+ <Property name="align">center</Property>
+ </DataColumn>
+ </DataGrid>
+ </Container>
+ </CustomDropDown>
+ <AjaxAction id="recalculate">
+ <Property name="service">inoutNoticePR#updateSumNoticeOut</Property>
+ </AjaxAction>
+ <CustomDropDown id="ddPlan">
+ <Property name="minHeight">325</Property>
+ <Property name="assignmentMap">planId=id,planName=planId</Property>
+ <Property name="minWidth">900</Property>
+ <Property name="autoOpen">false</Property>
+ <Container layout="regionPadding:5">
+ <DataSet id="dsPlan">
+ <Property name="dataProvider">planManagePR#pagePlanDetail</Property>
+ <Property name="dataType">[dtPlan]</Property>
+ <Property name="parameter"></Property>
+ <Property name="pageSize">5</Property>
+ </DataSet>
+ <AutoForm layoutConstraint="top">
+ <Property name="cols">*,*,*</Property>
+ <Property name="dataSet">dsQuery</Property>
+ <Property name="exClassName">bg-color</Property>
+ <Property name="labelAlign">right</Property>
+ <Property name="labelSeparator">:</Property>
+ <Property name="labelWidth">100</Property>
+ <AutoFormElement>
+ <Property name="name">depotId</Property>
+ <Property name="property">depotId</Property>
+ <Property name="editable">false</Property>
+ <Property name="label">璁″垝浠撳簱</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">year</Property>
+ <Property name="property">year</Property>
+ <Property name="trigger">defaultYearDropDown</Property>
+ <Property name="editable">false</Property>
+ <Property name="label">鏀惰幏骞翠唤</Property>
+ <Editor/>
+ </AutoFormElement>
+ <Container layout="hbox regionPadding:15">
+ <Button>
+ <ClientEvent name="onClick">var data = view.get("#dsQuery.data");
+if(data){
+ view.get("#dsPlan").set("parameter",data.toJSON()).flushAsync();
+}else{
+ view.get("#dsPlan").flushAsync();
+}
+</ClientEvent>
+ <Property name="caption">鏌ヨ</Property>
+ <Property name="exClassName">btn-normal</Property>
+ <Property name="iconClass">fa fa-search</Property>
+ </Button>
+ <Button>
+ <ClientEvent name="onClick">var data = view.get("#dsPlan.data:#");
+if(data){
+ view.get("#ddPlan").close(data.toJSON());
+}</ClientEvent>
+ <Property name="iconClass">fa fa-check</Property>
+ <Property name="caption">纭畾</Property>
+ </Button>
+ </Container>
+ </AutoForm>
+ <DataGrid>
+ <ClientEvent name="onDataRowDoubleClick">var data = view.get("#dsPlan.data:#");
+if(data){
+ view.get("#ddPlan").close(data.toJSON());
+}</ClientEvent>
+ <Property name="dataSet">dsPlan</Property>
+ <Property name="readOnly">true</Property>
+ <DataColumn>
+ <Property name="property">planId</Property>
+ <Property name="width">100</Property>
+ <Property name="align">center</Property>
+ <Property name="name">planId</Property>
+ <Property name="visible">false</Property>
+ </DataColumn>
+ <DataColumn name="depotId">
+ <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = "bold";
+arg.processDefault = true;</ClientEvent>
+ <Property name="property">depotId</Property>
+ <Property name="align">center</Property>
+ </DataColumn>
+ <DataColumn>
+ <Property name="property">year</Property>
+ <Property name="width">200</Property>
+ <Property name="align">center</Property>
+ <Property name="name">year</Property>
+ </DataColumn>
+ <DataColumn>
+ <Property name="property">planNum</Property>
+ <Property name="width">80</Property>
+ <Property name="align">center</Property>
+ <Property name="name">planNum</Property>
+ </DataColumn>
+ <DataColumn>
+ <Property name="property">foodVariety</Property>
+ <Property name="width">80</Property>
+ <Property name="align">center</Property>
+ <Property name="name">foodVariety</Property>
+ </DataColumn>
+ <DataColumn>
+ <Property name="property">type</Property>
+ <Property name="align">center</Property>
+ <Property name="name">type</Property>
+ </DataColumn>
+ </DataGrid>
+ <DataPilot layoutConstraint="bottom">
+ <Property name="dataSet">dsPlan</Property>
+ </DataPilot>
+ </Container>
+ </CustomDropDown>
+ <CustomDropDown id="ddContract">
+ <Property name="minHeight">317</Property>
+ <Property name="assignmentMap">contractId=id,contractName=name</Property>
+ <Property name="minWidth">550</Property>
+ <Property name="autoOpen">false</Property>
+ <Container layout="regionPadding:5">
+ <DataSet id="dsContract">
+ <Property name="dataProvider">contractManagePR#pageContract</Property>
+ <Property name="dataType">[dtContract]</Property>
+ <Property name="parameter"></Property>
+ <Property name="pageSize">5</Property>
+ </DataSet>
+ <Container layout="hbox regionPadding:5">
+ <TextEditor id="key3">
+ <Property name="blankText"> -- 鍚堝悓鍚嶇О鎴栬�呮墍灞炶鍒� --</Property>
+ <Property name="width">200</Property>
+ </TextEditor>
+ <Button>
+ <ClientEvent name="onClick">var key = view.get("#key3.value");
+view.get("#dsContract").set("parameter",{key:key}).flushAsync();</ClientEvent>
+ <Property name="caption">鏌ヨ</Property>
+ <Property name="iconClass">fa fa-search</Property>
+ </Button>
+ <Button>
+ <ClientEvent name="onClick">var data = view.get("#dsContract.data:#");
+if(data){
+ view.get("#ddContract").close(data.toJSON());
+}</ClientEvent>
+ <Property name="iconClass">fa fa-check</Property>
+ <Property name="caption">纭畾</Property>
+ </Button>
+ </Container>
+ <DataGrid>
+ <ClientEvent name="onDataRowDoubleClick">var data = view.get("#dsContract.data:#");
+if(data){
+ view.get("#ddContract").close(data.toJSON());
+}</ClientEvent>
+ <Property name="dataSet">dsContract</Property>
+ <Property name="readOnly">true</Property>
+ <DataColumn>
+ <Property name="property">id</Property>
+ <Property name="width">100</Property>
+ <Property name="align">center</Property>
+ <Property name="name">id</Property>
+ <Property name="visible">false</Property>
+ </DataColumn>
+ <DataColumn name="name">
+ <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = "bold";
+arg.processDefault = true;</ClientEvent>
+ <Property name="property">name</Property>
+ <Property name="align">center</Property>
+ </DataColumn>
+ <DataColumn>
+ <Property name="property">planName</Property>
+ <Property name="align">center</Property>
+ <Property name="name">planName</Property>
+ </DataColumn>
+ <DataColumn>
+ <Property name="property">year</Property>
+ <Property name="width">80</Property>
+ <Property name="align">center</Property>
+ <Property name="name">year</Property>
+ </DataColumn>
+ </DataGrid>
+ <DataPilot layoutConstraint="bottom">
+ <Property name="dataSet">dsContract</Property>
+ </DataPilot>
+ </Container>
+ </CustomDropDown>
+ </View>
+</ViewConfig>
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticePR.java b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticePR.java
new file mode 100644
index 0000000..74ead93
--- /dev/null
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticePR.java
@@ -0,0 +1,489 @@
+package com.fzzy.igds;
+
+
+import com.bstek.dorado.annotation.DataProvider;
+import com.bstek.dorado.annotation.Expose;
+import com.bstek.dorado.data.provider.Page;
+import com.fzzy.igds.constant.Constant;
+import com.fzzy.igds.data.NoticeDto;
+import com.fzzy.igds.service.InoutNoticeService;
+import com.fzzy.igds.domain.InoutNoticeIn;
+import com.fzzy.igds.domain.InoutNoticeOut;
+import com.fzzy.igds.service.SysDeptService;
+import com.fzzy.igds.utils.ContextUtil;
+import com.ruoyi.common.core.domain.entity.SysDept;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.StringUtils;
+import org.apache.commons.lang3.time.DateFormatUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Sort;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.stereotype.Component;
+import javax.annotation.Resource;
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+import java.util.*;
+
+/**
+ * @Description 閫氱煡鍗曠鐞�
+ * @Author CZT
+ * @Date 2024/12/16 10:10
+ */
+@Component
+public class InoutNoticePR {
+
+ @Resource
+ private InoutNoticeService inoutNoticeService;
+ @Resource
+ private SysDeptService sysDeptService;
+
+ /**
+ * inoutNoticePR#getTitle 鏍规嵁鎶ヨ〃绫诲瀷锛岃幏鍙栭粯璁ゆ煡璇俊鎭紝姣斿琛ㄥご淇℃伅绛�
+ *
+ * @param
+ * @return
+ */
+ @DataProvider
+ public Map<String, Object> getTitle(Map<String, Object> param) {
+ Map<String, Object> result = new HashMap<String, Object>();
+ //鑾峰彇鍙傛暟涓姤琛ㄧ被鍨�
+ String type = (String)param.get("type");
+
+ //鑾峰彇鍒嗗簱缂栫爜瀵瑰簲鐨勫垎搴撳悕绉�
+ String deptName = "";
+ SysDept subDept = sysDeptService.getCacheDept(null, ContextUtil.subDeptId(null));
+ if (null != subDept) {
+ deptName = subDept.getDeptName();
+ }
+ if ("NOTICE_IN".equals(type)) {
+ result.put("title", "鍏ュ簱閫氱煡鍗�");
+ if (StringUtils.isNotEmpty(deptName)) {
+ result.put("title", deptName + "鍏ュ簱閫氱煡鍗�");
+ }
+ }
+ if ("NOTICE_OUT".equals(type)) {
+ result.put("title", "鍑哄簱閫氱煡鍗�");
+ if (StringUtils.isNotEmpty(deptName)) {
+ result.put("title", deptName + "鍑哄簱閫氱煡鍗�");
+ }
+ }
+ return result;
+ }
+
+ /**
+ * inoutNoticePR#getYearQuery 榛樿骞翠唤
+ *
+ * @param
+ * @return
+ */
+ @DataProvider
+ public Map<String, Object> getYearQuery(Map<String, Object> param) {
+ Map<String, Object> result = new HashMap<String, Object>();
+ //鑾峰彇鍙傛暟涓垎搴撶紪鐮�
+ String deptId = (String)param.get("deptId");
+
+ result.put("year", DateFormatUtils.format(new Date(), "yyyy"));
+ result.put("deptId", deptId);
+ return result;
+ }
+
+ /**
+ * inoutNoticePR#queryNoticeByKey 鏍规嵁鍙傛暟鏌ヨ鍑哄叆搴撻�氱煡鍗曪紝鐢ㄤ簬鎵嬪姩琛ュ崟鏃讹紝閫夋嫨閫氱煡鍗�
+ *
+ * @param
+ * @return
+ */
+ @DataProvider
+ public List<NoticeDto> queryNoticeByKey(Map<String, Object> param) {
+ if (param == null) {
+ return null;
+ }
+ String type = (String) param.get("type");
+ if (StringUtils.isEmpty(type)) {
+ return null;
+ }
+ List<NoticeDto> list = new ArrayList<>();
+ NoticeDto dto;
+ if (Constant.TYPE_IN.equals(type)) {
+ List<InoutNoticeIn> listIn = this.queryNoticeIn(param);
+ if (null != listIn && listIn.size() > 0) {
+ for (InoutNoticeIn inoutNoticeIn : listIn) {
+ dto = new NoticeDto();
+ BeanUtils.copyProperties(inoutNoticeIn, dto);
+ list.add(dto);
+ }
+ }
+ }
+ if (Constant.TYPE_OUT.equals(type)) {
+ List<InoutNoticeOut> listOut = this.queryNoticeOut(param);
+ if (null != listOut && listOut.size() > 0) {
+ for (InoutNoticeOut inoutNoticeOut : listOut) {
+ dto = new NoticeDto();
+ BeanUtils.copyProperties(inoutNoticeOut, dto);
+ list.add(dto);
+ }
+ }
+ }
+ return list;
+ }
+
+
+ /*==================== 鍏ュ簱閫氱煡鍗曠浉鍏充笟鍔� ====================*/
+
+ /**
+ * inoutNoticePR#initAddIn 鍏ュ簱閫氱煡鍗曟柊澧炲垵濮嬪寲
+ *
+ * @return
+ */
+ @Expose
+ public InoutNoticeIn initAddIn() {
+ SysUser user = ContextUtil.getLoginUser();
+ InoutNoticeIn data = new InoutNoticeIn();
+ data.setId("RKTZD_" + ContextUtil.generateId());
+ data.setName("鍏ュ簱閫氱煡鍗�");
+ data.setCompanyId(user.getCompanyId());
+ data.setDeptId(ContextUtil.subDeptId(user));
+ data.setTag(Constant.YN_Y);
+ return data;
+ }
+
+ /**
+ * inoutNoticePR#pageQueryIn 鑾峰彇鍏ュ簱閫氱煡鍗�
+ *
+ * @param param
+ * @return
+ */
+ @DataProvider
+ public void pageQueryIn(Page<InoutNoticeIn> page, Map<String, Object> param) {
+ if (null == param) {
+ param = new HashMap<>();
+ }
+ Map<String, Object> finalParam = param;
+
+ //澶氬弬鏁板垎椤垫煡璇�
+ Pageable pageable = PageRequest.of(0, 10000, Sort.Direction.ASC, InoutNoticeIn.SORT_PROP);
+ Specification<InoutNoticeIn> specification = new Specification<InoutNoticeIn>() {
+ private static final long serialVersionUID = 1L;
+
+ public Predicate toPredicate(Root<InoutNoticeIn> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
+ List<Predicate> predicates = new ArrayList<Predicate>(); //鎵�鏈夌殑鏂█
+
+ Predicate predicate1 = cb.equal(root.get("companyId"), ContextUtil.getCompanyId());
+ predicates.add(predicate1);
+ Predicate predicate2 = cb.equal(root.get("deptId"), ContextUtil.subDeptId(null));
+ predicates.add(predicate2);
+
+ String key = String.valueOf(finalParam.get("year"));
+ if (StringUtils.isBlank(key)) {
+ Predicate predicate3 = cb.equal(root.get("year"), key);
+ predicates.add(predicate3);
+ }
+ key = (String) finalParam.get("id");
+ if (StringUtils.isBlank(key)) {
+ Predicate predicate4 = cb.equal(root.get("id"), key);
+ predicates.add(predicate4);
+ }
+ key = (String) finalParam.get("customerName");
+ if (StringUtils.isBlank(key)) {
+ Predicate predicate5 = cb.like(root.get("customerName"), "%" + key + "%");
+ predicates.add(predicate5);
+ }
+ key = (String) finalParam.get("completeStatus");
+ if (StringUtils.isBlank(key)) {
+ Predicate predicate6 = cb.equal(root.get("completeStatus"), key);
+ predicates.add(predicate6);
+ }
+ key = (String) finalParam.get("foodVariety");
+ if (StringUtils.isBlank(key)) {
+ Predicate predicate7 = cb.equal(root.get("foodVariety"), key);
+ predicates.add(predicate7);
+ }
+ return cb.and(predicates.toArray(new Predicate[0]));
+ }
+ };
+ org.springframework.data.domain.Page<InoutNoticeIn> japPage = inoutNoticeService.queryAllNoticeIn(specification, pageable);
+ page.setEntityCount((int) japPage.getTotalElements());
+ page.setEntities(japPage.getContent());
+ }
+
+ /**
+ * inoutNoticePR#saveIn 鏇存柊鍏ュ簱閫氱煡鍗�
+ */
+ @Expose
+ public String saveIn(InoutNoticeIn data) {
+ InoutNoticeIn inoutNoticeIn = new InoutNoticeIn();
+ BeanUtils.copyProperties(data, inoutNoticeIn);
+ return inoutNoticeService.saveOrUpdateIn(inoutNoticeIn);
+ }
+
+ /**
+ * inoutNoticePR#delDataIn
+ */
+ @Expose
+ public String delDataIn(InoutNoticeIn data) {
+ InoutNoticeIn inoutNoticeIn = new InoutNoticeIn();
+ BeanUtils.copyProperties(data, inoutNoticeIn);
+ return inoutNoticeService.delDataIn(inoutNoticeIn);
+ }
+
+ /**
+ * 鏍规嵁涓嶅悓鏉′欢鏌ヨ
+ * @param param
+ * @return
+ */
+ public List<InoutNoticeIn> queryNoticeIn(Map<String, Object> param) {
+ if (null == param) {
+ param = new HashMap<>();
+ }
+ Map<String, Object> finalParam = param;
+
+ //澶氬弬鏁板垎椤垫煡璇�
+ Pageable pageable = PageRequest.of(0, 10000, Sort.Direction.ASC, InoutNoticeIn.SORT_PROP);
+ Specification<InoutNoticeIn> specification = new Specification<InoutNoticeIn>() {
+ private static final long serialVersionUID = 1L;
+
+ public Predicate toPredicate(Root<InoutNoticeIn> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
+ List<Predicate> predicates = new ArrayList<Predicate>(); //鎵�鏈夌殑鏂█
+
+ Predicate predicate1 = cb.equal(root.get("companyId"), ContextUtil.getCompanyId());
+ predicates.add(predicate1);
+ Predicate predicate2 = cb.equal(root.get("deptId"), ContextUtil.subDeptId(null));
+ predicates.add(predicate2);
+ Predicate predicate3 = cb.equal(root.get("completeStatus"), "NONE");
+ predicates.add(predicate3);
+
+ String key = (String) finalParam.get("customerId");
+ if (StringUtils.isNotEmpty(key)) {
+ Predicate predicate4 = cb.equal(root.get("customerId"), key);
+ predicates.add(predicate4);
+ }
+ key = (String) finalParam.get("foodVariety");
+ if (StringUtils.isNotEmpty(key)) {
+ Predicate predicate5 = cb.equal(root.get("foodVariety"), key);
+ predicates.add(predicate5);
+ }
+ key = (String) finalParam.get("depotId");
+ if (StringUtils.isNotEmpty(key)) {
+ Predicate predicate6 = cb.equal(root.get("depotId"), key);
+ predicates.add(predicate6);
+ }
+ key = (String) finalParam.get("key");
+ if (StringUtils.isNotEmpty(key)) {
+ Predicate predicate7 = cb.like(root.get("name"), "%" + key + "%");
+ predicates.add(predicate7);
+ }
+ return cb.and(predicates.toArray(new Predicate[0]));
+ }
+ };
+ org.springframework.data.domain.Page<InoutNoticeIn> japPage = inoutNoticeService.queryAllNoticeIn(specification, pageable);
+
+ return japPage.getContent();
+ }
+
+ /**
+ * 閲嶆柊鏍哥畻鍏ュ簱閫氱煡鍗曞畬鎴愰噺
+ *
+ * inoutNoticePR#updateSumNoticeIn
+ *
+ * @return
+ */
+ @Expose
+ public String updateSumNoticeIn() {
+
+ //鑾峰彇鎵�鏈夋湭瀹屾垚鐘舵�佺殑鍏ュ簱閫氱煡鍗�
+ String companyId = ContextUtil.getCompanyId();
+ String deptId = ContextUtil.subDeptId(null);
+
+ List<InoutNoticeIn> noticeInList = inoutNoticeService.getUnComNoticeIn(companyId);
+
+ if (noticeInList != null && noticeInList.size() > 0) {
+ inoutNoticeService.updateSumNoticeIn(noticeInList);
+ return "success";
+ }
+
+
+ return "fail";
+ }
+
+ /*==================== 鍑哄簱閫氱煡鍗曠浉鍏充笟鍔� ====================*/
+
+ /**
+ * inoutNoticePR#initAddOut 鍑哄簱閫氱煡鍗曟柊澧炲垵濮嬪寲
+ *
+ * @return
+ */
+ @Expose
+ public InoutNoticeOut initAddOut() {
+ SysUser user = ContextUtil.getLoginUser();
+ InoutNoticeOut data = new InoutNoticeOut();
+ data.setId("CKTZD_" + ContextUtil.generateId());
+ data.setName("鍑哄簱閫氱煡鍗�");
+ data.setCompanyId(user.getCompanyId());
+ data.setDeptId(ContextUtil.subDeptId(user));
+ data.setTag(Constant.YN_Y);
+ return data;
+ }
+
+ /**
+ * inoutNoticePR#pageQueryOut 鑾峰彇鍑哄簱閫氱煡鍗�
+ * @param page
+ * @param param
+ */
+ @DataProvider
+ public void pageQueryOut(Page<InoutNoticeOut> page, Map<String, Object> param) {
+
+ if (null == param) {
+ param = new HashMap<>();
+ }
+ Map<String, Object> finalParam = param;
+
+ //澶氬弬鏁板垎椤垫煡璇�
+ Pageable pageable = PageRequest.of(0, 10000, Sort.Direction.ASC, InoutNoticeOut.SORT_PROP);
+ Specification<InoutNoticeOut> specification = new Specification<InoutNoticeOut>() {
+ private static final long serialVersionUID = 1L;
+
+ public Predicate toPredicate(Root<InoutNoticeOut> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
+ List<Predicate> predicates = new ArrayList<Predicate>(); //鎵�鏈夌殑鏂█
+
+ Predicate predicate1 = cb.equal(root.get("companyId"), ContextUtil.getCompanyId());
+ predicates.add(predicate1);
+ Predicate predicate2 = cb.equal(root.get("deptId"), ContextUtil.subDeptId(null));
+ predicates.add(predicate2);
+
+ String key = String.valueOf(finalParam.get("year"));
+ if (StringUtils.isNotEmpty(key)) {
+ Predicate predicate3 = cb.equal(root.get("year"), key);
+ predicates.add(predicate3);
+ }
+ key = (String) finalParam.get("id");
+ if (StringUtils.isNotEmpty(key)) {
+ Predicate predicate4 = cb.equal(root.get("id"), key);
+ predicates.add(predicate4);
+ }
+ key = (String) finalParam.get("customerId");
+ if (StringUtils.isNotEmpty(key)) {
+ Predicate predicate5 = cb.equal(root.get("customerId"), key);
+ predicates.add(predicate5);
+ }
+ key = (String) finalParam.get("completeStatus");
+ if (StringUtils.isNotEmpty(key)) {
+ Predicate predicate6 = cb.equal(root.get("completeStatus"), key);
+ predicates.add(predicate6);
+ }
+ key = (String) finalParam.get("foodVariety");
+ if (StringUtils.isNotEmpty(key)) {
+ Predicate predicate7 = cb.equal(root.get("foodVariety"), key);
+ predicates.add(predicate7);
+ }
+ return cb.and(predicates.toArray(new Predicate[0]));
+ }
+ };
+ org.springframework.data.domain.Page<InoutNoticeOut> japPage = inoutNoticeService.queryAllNoticeOut(specification, pageable);
+ page.setEntityCount((int) japPage.getTotalElements());
+ page.setEntities(japPage.getContent());
+ }
+
+ /**
+ * inoutNoticePR#saveOut 鏇存柊鍑哄簱閫氱煡鍗�
+ * @param data
+ * @return
+ */
+ @Expose
+ public String saveOut(InoutNoticeOut data) {
+ InoutNoticeOut inoutNoticeOut = new InoutNoticeOut();
+ BeanUtils.copyProperties(data, inoutNoticeOut);
+ return inoutNoticeService.saveOrUpdateOut(inoutNoticeOut);
+ }
+
+ /**
+ * inoutNoticePR#delDataOut
+ */
+ @Expose
+ public String delDataOut(InoutNoticeOut data) {
+ InoutNoticeOut inoutNoticeOut = new InoutNoticeOut();
+ BeanUtils.copyProperties(data, inoutNoticeOut);
+ return inoutNoticeService.delDataOut(inoutNoticeOut);
+ }
+
+ /**
+ * 鏍规嵁涓嶅悓鏉′欢鏌ヨ
+ * @param param
+ * @return
+ */
+ public List<InoutNoticeOut> queryNoticeOut(Map<String, Object> param) {
+ if (null == param) {
+ param = new HashMap<>();
+ }
+ Map<String, Object> finalParam = param;
+
+ //澶氬弬鏁板垎椤垫煡璇�
+ Pageable pageable = PageRequest.of(0, 10000, Sort.Direction.ASC, InoutNoticeOut.SORT_PROP);
+ Specification<InoutNoticeOut> specification = new Specification<InoutNoticeOut>() {
+ private static final long serialVersionUID = 1L;
+
+ public Predicate toPredicate(Root<InoutNoticeOut> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
+ List<Predicate> predicates = new ArrayList<Predicate>(); //鎵�鏈夌殑鏂█
+
+ Predicate predicate1 = cb.equal(root.get("companyId"), ContextUtil.getCompanyId());
+ predicates.add(predicate1);
+ Predicate predicate2 = cb.equal(root.get("deptId"), ContextUtil.subDeptId(null));
+ predicates.add(predicate2);
+ Predicate predicate3 = cb.equal(root.get("completeStatus"), "NONE");
+ predicates.add(predicate3);
+
+ String key = (String) finalParam.get("customerId");
+ if (StringUtils.isNotEmpty(key)) {
+ Predicate predicate4 = cb.equal(root.get("customerId"), key);
+ predicates.add(predicate4);
+ }
+ key = (String) finalParam.get("foodVariety");
+ if (StringUtils.isNotEmpty(key)) {
+ Predicate predicate5 = cb.equal(root.get("foodVariety"), key);
+ predicates.add(predicate5);
+ }
+ key = (String) finalParam.get("depotId");
+ if (StringUtils.isNotEmpty(key)) {
+ Predicate predicate6 = cb.equal(root.get("depotId"), key);
+ predicates.add(predicate6);
+ }
+ key = (String) finalParam.get("key");
+ if (StringUtils.isNotEmpty(key)) {
+ Predicate predicate7 = cb.like(root.get("name"), "%" + key + "%");
+ predicates.add(predicate7);
+ }
+ return cb.and(predicates.toArray(new Predicate[0]));
+ }
+ };
+ org.springframework.data.domain.Page<InoutNoticeOut> japPage = inoutNoticeService.queryAllNoticeOut(specification, pageable);
+
+ return japPage.getContent();
+ }
+
+ /**
+ * 閲嶆柊鏍哥畻鍑哄簱閫氱煡鍗曞畬鎴愰噺
+ *
+ * inoutNoticePR#updateSumNoticeOut
+ *
+ * @return
+ */
+ @Expose
+ public String updateSumNoticeOut() {
+
+ //鑾峰彇鎵�鏈夋湭瀹屾垚鐘舵�佺殑鍏ュ簱閫氱煡鍗�
+ String companyId = ContextUtil.getCompanyId();
+ String deptId = ContextUtil.subDeptId(null);
+
+ List<InoutNoticeOut> noticeOutList = inoutNoticeService.getUnComNoticeOut(companyId);
+
+ if (noticeOutList != null && noticeOutList.size() > 0) {
+ inoutNoticeService.updateSumNoticeOut(noticeOutList);
+ return "success";
+ }
+ return "fail";
+ }
+
+}
--
Gitblit v1.9.3