From 19f170a41e2200eed6a23402b00d7da20b38f42d Mon Sep 17 00:00:00 2001
From: jiazx0107 <jiazx0107@163.com>
Date: 星期四, 15 一月 2026 18:37:00 +0800
Subject: [PATCH] 更新入库通知单逻辑

---
 fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrder.java                |   26 
 fzzy-igdss-web/src/main/resources/templates/work/flow-conf.html                  |    5 
 fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeOut-Detail.view.xml       |  649 ++++++++++++++++++++
 fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn-Detail.view.xml        |  634 +++++++++++++++++++
 fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java        |   19 
 fzzy-igdss-view/src/main/java/com/fzzy/igds/DepotConfPR.java                     |    1 
 fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java          |  115 +++
 fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderConfService.java    |   42 +
 fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn.view.xml               |   66 -
 fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/InoutConstant.java          |   15 
 fzzy-igdss-view/src/main/java/com/fzzy/igds/DepotPR.java                         |    3 
 fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticePR.java                   |    3 
 fzzy-igdss-web/src/main/resources/templates/login.html                           |    2 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/NoticeType.java             |   11 
 fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderProcessService.java |    6 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java      |  186 +++--
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/PledgeContractService.java   |   31 
 fzzy-igdss-core/src/main/java/com/fzzy/work/data/WorkNode.java                   |   42 +
 fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrderProcess.java         |   24 
 fzzy-igdss-view/src/main/java/com/fzzy/igds/GrainReportPR.java                   |    1 
 fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrderConf.view.xml               |   24 
 21 files changed, 1,751 insertions(+), 154 deletions(-)

diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/InoutConstant.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/InoutConstant.java
new file mode 100644
index 0000000..ecd9d00
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/InoutConstant.java
@@ -0,0 +1,15 @@
+package com.fzzy.igds.constant;
+
+/**
+ * @Desc:
+ * @Author: Andy.jia
+ * @Date: 2026/1/15
+ */
+public class InoutConstant {
+
+    //鑷缓閫氱煡鍗�
+    public static final String NOTICE_IN_TYPE_10 = "10";
+
+    //鐩戠閫氱煡鍗�
+    public static final String NOTICE_IN_TYPE_20 = "20";
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/NoticeType.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/NoticeType.java
index 828ec9e..5758f83 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/NoticeType.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/NoticeType.java
@@ -1,10 +1,13 @@
 package com.fzzy.igds.constant;
 
+import lombok.Getter;
+
 /**
  * @Description 璀﹀憡閫氱煡绫诲瀷:鐭俊锛岃闊�
  * @Author CZT
  * @Date 2025/11/25 15:43
  */
+@Getter
 public enum NoticeType {
 
 
@@ -23,14 +26,6 @@
     NoticeType(String code, String name) {
         this.code = code;
         this.name = name;
-    }
-
-    public String getCode() {
-        return code;
-    }
-
-    public String getName() {
-        return name;
     }
 
     public static String getName(String code) {
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java
index 428f7a7..04312f6 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java
@@ -3,19 +3,23 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.fzzy.igds.constant.AuditStatus;
 import com.fzzy.igds.constant.Constant;
-import com.fzzy.igds.data.ExportWordParam;
-import com.fzzy.igds.data.NoticeDto;
-import com.fzzy.igds.data.NoticeParam;
+import com.fzzy.igds.constant.InoutConstant;
+import com.fzzy.igds.data.*;
 import com.fzzy.igds.domain.*;
 import com.fzzy.igds.mapper.InoutNoticeInMapper;
 import com.fzzy.igds.mapper.InoutNoticeOutMapper;
 import com.fzzy.igds.utils.ContextUtil;
+import com.fzzy.work.data.WorkBizType;
+import com.fzzy.work.domain.WorkOrderConf;
+import com.fzzy.work.service.BizWorkService;
 import com.ruoyi.common.utils.StringUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.time.DateFormatUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.transaction.annotation.Transactional;
+
 import javax.annotation.Resource;
 import java.util.Date;
 import java.util.HashMap;
@@ -42,7 +46,11 @@
     @Resource
     private PledgeContractService pledgeContractService;
 
+    @Resource
+    private BizWorkService workService;
+
     /*----------------------鍏ュ簱閫氱煡鍗曚俊鎭�-------------------------*/
+
     /**
      * 鍒嗛〉鏌ヨ鏁版嵁
      * @param page
@@ -51,19 +59,19 @@
     public void pageQueryIn(Page<InoutNoticeIn> page, NoticeParam param) {
         QueryWrapper<InoutNoticeIn> queryWrapper = new QueryWrapper<>();
 
-        if(null == param) {
+        if (null == param) {
             param = new NoticeParam();
         }
         param.setCompanyId(ContextUtil.getCompanyId());
 
         queryWrapper.eq("company_id", param.getCompanyId());
-        if(StringUtils.isNotBlank(param.getCustomerName())){
+        if (StringUtils.isNotBlank(param.getCustomerName())) {
             queryWrapper.like("customer_name", param.getCustomerName());
         }
-        if(StringUtils.isNotBlank(param.getFoodVariety())){
+        if (StringUtils.isNotBlank(param.getFoodVariety())) {
             queryWrapper.like("food_variety", param.getFoodVariety());
         }
-        if(StringUtils.isNotBlank(param.getCompleteStatus())){
+        if (StringUtils.isNotBlank(param.getCompleteStatus())) {
             queryWrapper.like("complete_status", param.getCompleteStatus());
         }
 
@@ -77,20 +85,20 @@
     public List<InoutNoticeIn> getNoticeIn(NoticeParam param) {
 
         QueryWrapper<InoutNoticeIn> queryWrapper = new QueryWrapper<>();
-        if(StringUtils.isNotBlank(param.getCompanyId())){
+        if (StringUtils.isNotBlank(param.getCompanyId())) {
             queryWrapper.eq("company_id", param.getCompanyId());
         }
-        if(StringUtils.isNotBlank(param.getDeptId())){
+        if (StringUtils.isNotBlank(param.getDeptId())) {
             queryWrapper.eq("dept_id", param.getDeptId());
         }
-        if(StringUtils.isNotBlank(param.getCompleteStatus())){
+        if (StringUtils.isNotBlank(param.getCompleteStatus())) {
             queryWrapper.eq("complete_status", param.getCompleteStatus());
         }
-        if(StringUtils.isNotBlank(param.getKey())){
+        if (StringUtils.isNotBlank(param.getKey())) {
             queryWrapper.like("name", param.getKey());
         }
         queryWrapper.orderByDesc("create_time");
-        
+
         return noticeInMapper.selectList(queryWrapper);
     }
 
@@ -127,59 +135,88 @@
      * @param data
      * @return
      */
-    public String saveOrUpdateIn(InoutNoticeIn data) {
-        //濡傛灉鍏ュ簱閫氱煡鍗曠被鍨嬩负搴撳尯閫氱煡鍗曪紝楠岃瘉浠撳簱鏄惁鏄湭瑙e帇寰椾粨搴擄紝鏄垯涓嶅厑璁镐繚瀛�
-        //鑾峰彇鎵�鏈夎川鎶煎悎鍚屾暟鎹�
-        List<PledgeContract> pledgeContracts = pledgeContractService.listAll(null);
-        if("10".equals(data.getType())){
-            //鍦ㄨ川鎶煎悎鍚屾壘鍒版湭瑙e帇锛屼笖璐ㄦ娂浠撳簱鍖呭惈褰撳墠浠撳簱鐨勬暟鎹�
-            for (PledgeContract pledgeContract : pledgeContracts) {
-                if(pledgeContract.getDepotIds().contains(data.getDepotId())){
-                    if(pledgeContract.getStatus().equals(Constant.YN_N)){
-                        return "鍏ュ簱浠撳簱鏈В鍘嬶紝鏃犳硶淇濆瓨锛�";
-                    }
-                }
+    @Transactional(rollbackFor = Exception.class)
+    public BaseResp saveOrUpdateIn(InoutNoticeIn data) {
+
+        //濡傛灉鏄簱鍖鸿嚜寤洪�氱煡鍗�
+        if (InoutConstant.NOTICE_IN_TYPE_10.equals(data.getType())) {
+            //鑾峰彇璐ㄦ娂鍚堝悓鏁版嵁
+            PledgeContract pledge = this.getPledgeByDepotId(data);
+            if (null != pledge && pledge.getStatus().equals(Constant.YN_N)) {
+                return BaseResp.error("褰撳墠浠撳簱鏈夋湭瑙e帇鐨勮川鎶煎悎鍚岋紝璐ㄦ娂鍚堝悓=" + pledge.getName());
             }
         }
-        //濡傛灉鍏ュ簱閫氱煡鍗曠被鍨嬩负鐩戠閫氱煡鍗�
-        if("20".equals(data.getType())){
-            //1.楠岃瘉閾惰鏄惁濉啓锛屾湭濉啓锛屽垯涓嶅厑璁镐繚瀛�
-            if(StringUtils.isEmpty(data.getBankId())){
-                return "鐩戠潱閾惰涓嶈兘涓虹┖锛�";
 
+        //濡傛灉璐ㄦ娂閫氱煡鍗�
+        if (InoutConstant.NOTICE_IN_TYPE_20.equals(data.getType())) {
+            //1.楠岃瘉閾惰鏄惁濉啓锛屾湭濉啓锛屽垯涓嶅厑璁镐繚瀛�
+            if (StringUtils.isEmpty(data.getBankId())) {
+                return BaseResp.error("璐ㄦ娂閾惰涓嶈兘涓虹┖锛�");
             }
             //2.楠岃瘉閾惰鍜屼粨搴撶殑瀵瑰簲鍏崇郴鏄惁姝g‘锛屼笉姝g‘鍒欎笉鍏佽淇濆瓨
-            //鍦ㄨ川鎶煎悎鍚屾壘鍒版湭瑙e帇锛屼笖璐ㄦ娂浠撳簱鍖呭惈褰撳墠浠撳簱鐨� 閾惰-浠撳簱锛堣川鎶煎悎鍚屽叧绯伙級
-            Map<String, PledgeContract> bankDepotMap = new HashMap<>();
-            for (PledgeContract pledgeContract : pledgeContracts) {
-                if(pledgeContract.getDepotIds().contains(data.getDepotId())){
-                    if(pledgeContract.getStatus().equals(Constant.YN_N)){
-                        bankDepotMap.put(pledgeContract.getPledgeBank(), pledgeContract);
-                    }
-                }
-            }
-            //鍦╩ap涓鎵惧尮閰嶉摱琛岀殑鏁版嵁锛屽鏋滄病鏈夊尮閰嶇殑鏁版嵁锛屽垯涓嶅厑璁镐繚瀛�
-            if(!bankDepotMap.containsKey(data.getBankId())){
-                return "鏈壘鍒板搴旂殑璐ㄦ娂鍚堝悓锛岃妫�鏌ョ洃鐫i摱琛屾垨鑰呭叆搴撲粨搴撳~鍐欐槸鍚︽纭紒";
-
+            PledgeContract pledge = this.getPledgeByDepotIdAndBankId(data);
+            if (null == pledge) {
+                return BaseResp.error("鏈幏鍙栧埌褰撳墠搴撳尯銆佷粨搴撳拰閾惰涔嬮棿鐨勮川鎶间俊鎭紒");
             }
         }
 
+        //淇敼鍜屾彁浜ゆ槸涓や釜閫昏緫鍒ゆ柇
         if (null == data.getUpdateBy()) {
-            data.setUpdateBy(ContextUtil.getLoginUserName());
-            data.setUpdateTime(new Date());
-            data.setCreateBy(ContextUtil.getLoginUserName());
-            data.setCreateTime(new Date());
-            data.setAuditStatus(AuditStatus.STATUS_10.getCode());
-            data.setCompleteStatus(Constant.COMPLETE_STATUS_NONE);
-            noticeInMapper.insert(data);
+            return this.saveInAddStartWork(data);
         } else {
             data.setUpdateBy(ContextUtil.getLoginUserName());
             data.setUpdateTime(new Date());
             noticeInMapper.updateById(data);
+            return BaseResp.success();
+        }
+    }
+
+    private BaseResp saveInAddStartWork(InoutNoticeIn data) {
+        //鏁版嵁淇濆瓨
+        data.setUpdateBy(ContextUtil.getLoginUserName());
+        data.setUpdateTime(new Date());
+        data.setCreateBy(ContextUtil.getLoginUserName());
+        data.setCreateTime(new Date());
+        data.setAuditStatus(AuditStatus.STATUS_10.getCode());
+        data.setCompleteStatus(Constant.COMPLETE_STATUS_NONE);
+
+        //鎵ц娴佺▼
+        WorkOrderConf conf = workService.getConfByDeptId(data.getDeptId(), WorkBizType.TYPE_10);
+        //娴佺▼涓嶅惎鐢�
+        if (null == conf || Constant.YN_N.equals(conf.getValTag())) {
+            data.setAuditStatus(AuditStatus.STATUS_20.getCode());
+            data.setAuditDate(data.getCreateTime());
+        } else {
+            BaseResp resp = workService.startByNoticeIn(data, conf);
+            log.info("---------鍚姩宸ュ崟娴佺▼------{}", resp);
         }
 
-        return null;
+        noticeInMapper.insert(data);
+
+        return BaseResp.success();
+    }
+
+
+    /**
+     * 鍒ゆ柇褰撳墠浠撳簱鏄惁鍦ㄨ川鎶煎悎鍚屼腑鏈В鍘�
+     * @param data 褰撳墠鏁版嵁
+     * @return true-鍦ㄨ川鎶煎悎鍚屼腑鏈В鍘嬶紝false-鍦ㄨ川鎶煎悎鍚屼腑宸茶В鍘�
+     */
+    private PledgeContract getPledgeByDepotId(InoutNoticeIn data) {
+        IgdsBaseParam param = new IgdsBaseParam();
+        param.setCompanyId(data.getCompanyId());
+        param.setDeptId(data.getDeptId());
+        param.setDepotId(data.getDepotId());
+        return pledgeContractService.getByDepotId(param);
+    }
+
+    private PledgeContract getPledgeByDepotIdAndBankId(InoutNoticeIn data) {
+        IgdsBaseParam param = new IgdsBaseParam();
+        param.setCompanyId(data.getCompanyId());
+        param.setDeptId(data.getDeptId());
+        param.setDepotId(data.getDepotId());
+        param.setBankId(data.getBankId());
+        return pledgeContractService.getByDepotId(param);
     }
 
     /**
@@ -194,6 +231,7 @@
     }
 
     /*----------------------鍑哄簱閫氱煡鍗曚俊鎭�-------------------------*/
+
     /**
      * 鍒嗛〉鏌ヨ鏁版嵁
      * @param page
@@ -202,19 +240,19 @@
     public void pageQueryOut(Page<InoutNoticeOut> page, NoticeParam param) {
         QueryWrapper<InoutNoticeOut> queryWrapper = new QueryWrapper<>();
 
-        if(null == param) {
+        if (null == param) {
             param = new NoticeParam();
         }
         param.setCompanyId(ContextUtil.getCompanyId());
 
         queryWrapper.eq("company_id", param.getCompanyId());
-        if(StringUtils.isNotBlank(param.getCustomerName())){
+        if (StringUtils.isNotBlank(param.getCustomerName())) {
             queryWrapper.like("customer_name", param.getCustomerName());
         }
-        if(StringUtils.isNotBlank(param.getFoodVariety())){
+        if (StringUtils.isNotBlank(param.getFoodVariety())) {
             queryWrapper.like("food_variety", param.getFoodVariety());
         }
-        if(StringUtils.isNotBlank(param.getCompleteStatus())){
+        if (StringUtils.isNotBlank(param.getCompleteStatus())) {
             queryWrapper.like("complete_status", param.getCompleteStatus());
         }
 
@@ -227,16 +265,16 @@
      */
     public List<InoutNoticeOut> getNoticeOut(NoticeParam param) {
         QueryWrapper<InoutNoticeOut> queryWrapper = new QueryWrapper<>();
-        if(StringUtils.isNotBlank(param.getCompanyId())){
+        if (StringUtils.isNotBlank(param.getCompanyId())) {
             queryWrapper.eq("company_id", param.getCompanyId());
         }
-        if(StringUtils.isNotBlank(param.getDeptId())){
+        if (StringUtils.isNotBlank(param.getDeptId())) {
             queryWrapper.eq("dept_id", param.getDeptId());
         }
-        if(StringUtils.isNotBlank(param.getCompleteStatus())){
+        if (StringUtils.isNotBlank(param.getCompleteStatus())) {
             queryWrapper.eq("complete_status", param.getCompleteStatus());
         }
-        if(StringUtils.isNotBlank(param.getKey())){
+        if (StringUtils.isNotBlank(param.getKey())) {
             queryWrapper.like("name", param.getKey());
         }
         queryWrapper.orderByDesc("create_time");
@@ -281,20 +319,20 @@
         //濡傛灉鍑哄簱閫氱煡鍗曠被鍨嬩负搴撳尯閫氱煡鍗曪紝楠岃瘉浠撳簱鏄惁鏄湭瑙e帇寰椾粨搴擄紝鏄垯涓嶅厑璁镐繚瀛�
         //鑾峰彇鎵�鏈夎川鎶煎悎鍚屾暟鎹�
         List<PledgeContract> pledgeContracts = pledgeContractService.listAll(null);
-        if("10".equals(data.getType())){
+        if ("10".equals(data.getType())) {
             //鍦ㄨ川鎶煎悎鍚屾壘鍒版湭瑙e帇锛屼笖璐ㄦ娂浠撳簱鍖呭惈褰撳墠浠撳簱鐨勬暟鎹�
             for (PledgeContract pledgeContract : pledgeContracts) {
-                if(pledgeContract.getDepotIds().contains(data.getDepotId())){
-                    if(pledgeContract.getStatus().equals(Constant.YN_N)){
+                if (pledgeContract.getDepotIds().contains(data.getDepotId())) {
+                    if (pledgeContract.getStatus().equals(Constant.YN_N)) {
                         return "鍑哄簱浠撳簱鏈В鍘嬶紝鏃犳硶淇濆瓨锛�";
                     }
                 }
             }
         }
         //濡傛灉鍑哄簱閫氱煡鍗曠被鍨嬩负鐩戠閫氱煡鍗�
-        if("20".equals(data.getType())){
+        if ("20".equals(data.getType())) {
             //1.楠岃瘉閾惰鏄惁濉啓锛屾湭濉啓锛屽垯涓嶅厑璁镐繚瀛�
-            if(StringUtils.isEmpty(data.getBankId())){
+            if (StringUtils.isEmpty(data.getBankId())) {
                 return "鐩戠潱閾惰涓嶈兘涓虹┖锛�";
 
             }
@@ -302,14 +340,14 @@
             //鍦ㄨ川鎶煎悎鍚屾壘鍒版湭瑙e帇锛屼笖璐ㄦ娂浠撳簱鍖呭惈褰撳墠浠撳簱鐨� 閾惰-浠撳簱锛堣川鎶煎悎鍚屽叧绯伙級
             Map<String, PledgeContract> bankDepotMap = new HashMap<>();
             for (PledgeContract pledgeContract : pledgeContracts) {
-                if(pledgeContract.getDepotIds().contains(data.getDepotId())){
-                    if(pledgeContract.getStatus().equals(Constant.YN_N)){
+                if (pledgeContract.getDepotIds().contains(data.getDepotId())) {
+                    if (pledgeContract.getStatus().equals(Constant.YN_N)) {
                         bankDepotMap.put(pledgeContract.getPledgeBank(), pledgeContract);
                     }
                 }
             }
             //鍦╩ap涓鎵惧尮閰嶉摱琛岀殑鏁版嵁锛屽鏋滄病鏈夊尮閰嶇殑鏁版嵁锛屽垯涓嶅厑璁镐繚瀛�
-            if(!bankDepotMap.containsKey(data.getBankId())){
+            if (!bankDepotMap.containsKey(data.getBankId())) {
                 return "鏈壘鍒板搴旂殑璐ㄦ娂鍚堝悓锛岃妫�鏌ョ洃鐫i摱琛屾垨鑰呭嚭搴撲粨搴撳~鍐欐槸鍚︽纭紒";
 
             }
@@ -480,10 +518,10 @@
         map.put("name", notice.getName());
 
         String type = "";
-        if("10".equals(notice.getType())){
+        if ("10".equals(notice.getType())) {
             type = "搴撳尯閫氱煡鍗�";
         }
-        if("20".equals(notice.getType())){
+        if ("20".equals(notice.getType())) {
             type = "鐩戠閫氱煡鍗�";
         }
         map.put("type", type);
@@ -492,14 +530,14 @@
 
         String unitName = "";
         Dept dept = coreDeptService.getDeptById(notice.getUnitName());
-        if(dept != null){
+        if (dept != null) {
             unitName = dept.getKqmc();
         }
         map.put("unitName", unitName);
 
         Depot depot = depotService.getCacheDepot(notice.getCompanyId(), notice.getDepotId());
         String depotId = "";
-        if(dept != null){
+        if (dept != null) {
             depotId = depot.getName();
         }
         map.put("depotId", depotId);
@@ -533,10 +571,10 @@
         map.put("name", notice.getName());
 
         String type = "";
-        if("10".equals(notice.getType())){
+        if ("10".equals(notice.getType())) {
             type = "搴撳尯閫氱煡鍗�";
         }
-        if("20".equals(notice.getType())){
+        if ("20".equals(notice.getType())) {
             type = "鐩戠閫氱煡鍗�";
         }
         map.put("type", type);
@@ -545,14 +583,14 @@
 
         String unitName = "";
         Dept dept = coreDeptService.getDeptById(notice.getUnitName());
-        if(dept != null){
+        if (dept != null) {
             unitName = dept.getKqmc();
         }
         map.put("unitName", unitName);
 
         Depot depot = depotService.getCacheDepot(notice.getCompanyId(), notice.getDepotId());
         String depotId = "";
-        if(dept != null){
+        if (dept != null) {
             depotId = depot.getName();
         }
         map.put("depotId", depotId);
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/PledgeContractService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/PledgeContractService.java
index f71f858..82e5221 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/PledgeContractService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/PledgeContractService.java
@@ -35,11 +35,39 @@
         if (StringUtils.isNotEmpty(param.getBankId())) {
             queryWrapper.eq("pledge_bank", param.getBankId());
         }
+
+        if (StringUtils.isNotEmpty(param.getDeptId())) {
+            queryWrapper.eq("pledge_dept", param.getDeptId());
+        }
+
+        //鏍规嵁浠撳簱ID鍖归厤
+        if (StringUtils.isNotEmpty(param.getDepotId())) {
+            queryWrapper.like("depot_ids", param.getDepotId());
+        }
+
+        queryWrapper.orderByDesc("update_time");
+
         return pledgeContractMapper.selectList(queryWrapper);
     }
 
+
+    /**
+     * 鏍规嵁浠撳簱ID鑾峰彇璐ㄦ娂淇℃伅
+     * @param param 鍙傛暟
+     * @return 璐ㄦ娂淇℃伅
+     */
+    public PledgeContract getByDepotId(IgdsBaseParam param) {
+        if (null == param) return null;
+
+        List<PledgeContract> list = listAll(param);
+
+        if (null == list || list.isEmpty()) return null;
+
+        return list.get(0);
+    }
+
     public BaseResp addData(PledgeContract pledgeContract) {
-        if(StringUtils.isEmpty(pledgeContract.getId())){
+        if (StringUtils.isEmpty(pledgeContract.getId())) {
             pledgeContract.setId(ContextUtil.generateOrderId("PC"));
         }
         pledgeContract.setCompanyId(ContextUtil.getCompanyId());
@@ -60,4 +88,5 @@
         return pledgeContractMapper.deleteById(pledgeContract) > 0 ? BaseResp.success() : BaseResp.error("鍒犻櫎澶辫触");
     }
 
+
 }
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/work/data/WorkNode.java b/fzzy-igdss-core/src/main/java/com/fzzy/work/data/WorkNode.java
new file mode 100644
index 0000000..de15914
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/work/data/WorkNode.java
@@ -0,0 +1,42 @@
+package com.fzzy.work.data;
+
+/**
+ * @Desc: 宸ュ崟鑺傜偣鏋氫妇绫�
+ * @Author: Andy.jia
+ * @Date: 2025/12/18
+ */
+public enum WorkNode {
+
+    NODE_START("node-start", "鎻愪氦"),
+    NODE1("node1", "搴撳尯棰嗗瀹℃壒"),
+    NODE2("node2", "鐩戠瀹℃壒"),
+    NODE3("node3", "閾惰瀹℃壒"),
+
+    NODE_END("node-end", "缁撴潫");
+
+    private String code;
+    private String msg;
+
+    WorkNode(String code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public static String getMsg(String code) {
+        if(null == code) return null;
+        if(WorkNode.NODE_START.getCode().equals(code)) return WorkNode.NODE_START.getMsg();
+        if(WorkNode.NODE1.getCode().equals(code)) return WorkNode.NODE1.getMsg();
+        if(WorkNode.NODE2.getCode().equals(code)) return WorkNode.NODE2.getMsg();
+        if(WorkNode.NODE3.getCode().equals(code)) return WorkNode.NODE3.getMsg();
+        if(WorkNode.NODE_END.getCode().equals(code)) return WorkNode.NODE_END.getMsg();
+        return code;
+    }
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrder.java b/fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrder.java
index da6cc2e..72ad675 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrder.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrder.java
@@ -25,11 +25,11 @@
 @EqualsAndHashCode(callSuper = false)
 public class WorkOrder extends BizBaseEntity implements Serializable {
     /**
-	 * 
-	 */
-	private static final long serialVersionUID = 1L;
+     *
+     */
+    private static final long serialVersionUID = 1L;
 
-	@Id
+    @Id
     @Column(name = "id", columnDefinition = "varchar(40) COMMENT '宸ュ崟缂栧彿'")
     @TableField("id")
     private String id;
@@ -46,9 +46,13 @@
     @TableField("biz_type")
     private String bizType;
 
-    @Column(name = "category", columnDefinition = "varchar(20) COMMENT '宸ュ崟鍒嗙被'")
-    @TableField("category")
-    private String category;
+//    @Column(name = "category", columnDefinition = "varchar(20) COMMENT '宸ュ崟鍒嗙被'")
+//    @TableField("category")
+//    private String category;
+
+    @Column(name = "node", columnDefinition = "varchar(20) COMMENT '娴佺▼鑺傜偣'")
+    @TableField("node")
+    private String node;
 
     @Column(name = "status", columnDefinition = "varchar(20) COMMENT '鐘舵��'")
     @TableField("status")
@@ -62,8 +66,8 @@
     @TableField("assignee_name")
     private String assigneeName;
 
-    @Column(name = "recive_time")
-    @TableField("recive_time")
+    @Column(name = "receive_time")
+    @TableField("receive_time")
     private Date receiveTime;
 
     @Column(name = "create_by_id", columnDefinition = "varchar(30) COMMENT '鍒涘缓浜�'")
@@ -86,4 +90,8 @@
     @TableField("bank_id")
     private String bankId;
 
+    @Column(name = "conf_id", columnDefinition = "varchar(40) COMMENT '娴佺▼閰嶇疆ID'")
+    @TableField("conf_id")
+    private String confId;
+
 }
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrderProcess.java b/fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrderProcess.java
index b8ccc9f..4f58eec 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrderProcess.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrderProcess.java
@@ -25,11 +25,11 @@
 public class WorkOrderProcess implements Serializable {
 
     /**
-	 * 
-	 */
-	private static final long serialVersionUID = 1L;
+     *
+     */
+    private static final long serialVersionUID = 1L;
 
-	@Id
+    @Id
     @Column(name = "id", columnDefinition = "varchar(40) COMMENT '宸ュ崟缂栧彿'")
     @TableField("id")
     private String id;
@@ -38,13 +38,17 @@
     @TableField("order_id")
     private String orderId;
 
-    @Column(name = "operator_id", columnDefinition = "varchar(20) COMMENT '鎿嶄綔浜�'")
-    @TableField("operator_id")
-    private String operatorId;
+    @Column(name = "assignee_id", columnDefinition = "varchar(20) COMMENT '澶勭悊浜�'")
+    @TableField("assignee_id")
+    private String assigneeId;
 
-    @Column(name = "operator_name", columnDefinition = "varchar(30) COMMENT '鎿嶄綔浜�'")
-    @TableField("operator_name")
-    private String operatorName;
+    @Column(name = "assignee_name", columnDefinition = "varchar(20) COMMENT '澶勭悊浜�'")
+    @TableField("assignee_name")
+    private String assigneeName;
+
+    @Column(name = "node", columnDefinition = "varchar(20) COMMENT '娴佺▼鑺傜偣'")
+    @TableField("node")
+    private String node;
 
     @Column(name = "action", columnDefinition = "varchar(20) COMMENT '鎿嶄綔鍔ㄤ綔'")
     @TableField("action")
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java b/fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java
new file mode 100644
index 0000000..599280c
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java
@@ -0,0 +1,115 @@
+package com.fzzy.work.service;
+
+import com.fzzy.igds.constant.Constant;
+import com.fzzy.igds.data.BaseResp;
+import com.fzzy.igds.domain.InoutNoticeIn;
+import com.fzzy.igds.utils.ContextUtil;
+import com.fzzy.work.data.OrderStatus;
+import com.fzzy.work.data.WorkBizType;
+import com.fzzy.work.data.WorkNode;
+import com.fzzy.work.domain.WorkOrder;
+import com.fzzy.work.domain.WorkOrderConf;
+import com.fzzy.work.domain.WorkOrderProcess;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * @Desc: 宸ュ崟涓氬姟鎺ュ彛
+ * @Author: Andy.jia
+ * @Date: 2026/1/15
+ */
+@Service
+public class BizWorkService {
+    @Resource
+    private WorkOrderConfService confService;
+    @Resource
+    private WorkOrderService orderService;
+    @Resource
+    private WorkOrderProcessService orderProcessService;
+
+
+    /**
+     * 鑾峰彇娴佺▼閰嶇疆淇℃伅
+     * @param deptId 搴撳尯ID
+     * @param type  涓氬姟绫诲瀷
+     * @return 閰嶇疆淇℃伅
+     */
+    public WorkOrderConf getConfByDeptId(String deptId, WorkBizType type) {
+        return confService.getByDeptId(deptId, type);
+    }
+
+    /**
+     *
+     * 鏍规嵁鍑哄叆搴撻�氱煡鍗曞惎鍔ㄥ鎵瑰伐鍗�
+     * @param data 鍑哄叆搴撳伐鍗曟暟鎹�
+     * @return 鍝嶅簲缁撴灉
+     */
+    public BaseResp startByNoticeIn(InoutNoticeIn data, WorkOrderConf conf) {
+        if (null == conf) conf = confService.getByDeptId(data.getDeptId(), WorkBizType.TYPE_10);
+
+        if (Constant.YN_N.equals(conf.getValTag())) return BaseResp.error("娴佺▼鏈惎鐢�");
+
+        //鍒涘缓宸ュ崟
+        WorkOrder work = new WorkOrder();
+        work.setId(ContextUtil.generateOrderId("RKD"));
+        work.setBizType(WorkBizType.TYPE_10.getCode());
+        work.setBusinessId(data.getId());
+        work.setBankId(data.getBankId());
+        work.setBusinessUrl("com.fzzy.igds.InoutNoticeIn-Detail.d");
+        work.setCreateTime(new Date());
+        work.setDeptId(data.getDeptId());
+        work.setCompanyId(data.getCompanyId());
+        work.setUpdateTime(new Date());
+        work.setTitle("鍏ュ簱閫氱煡鍗曞鎵�");
+        work.setConfId(conf.getId());
+        work.setStatus(OrderStatus.STATUS_30.getCode());
+        work.setReceiveTime(new Date());
+
+        String nextNode = this.getNextNode(WorkNode.NODE_START.getCode(), conf).getCode();
+        work.setNode(nextNode);
+        orderService.addData(work);
+
+        //娣诲姞璁板綍
+        WorkOrderProcess process = new WorkOrderProcess();
+        process.setId(ContextUtil.UUID());
+        process.setAction("鎻愪氦");
+        process.setCreateTime(new Date());
+        process.setOrderId(work.getId());
+        process.setAssigneeName(work.getCreateBy());
+        process.setAssigneeId(work.getCreateById());
+        process.setNode(WorkNode.NODE_START.getCode());
+        orderProcessService.addData(process);
+
+        return BaseResp.success();
+    }
+
+    /**
+     * 鏍规嵁褰撳墠鑺傜偣鑾峰彇涓嬩竴涓妭鐐�
+     * @param curNode
+     * @param conf
+     * @return
+     */
+    private WorkNode getNextNode(String curNode, WorkOrderConf conf) {
+
+        if (null == conf) return WorkNode.NODE_END;
+
+        if (WorkNode.NODE_START.getCode().equals(curNode)) {
+            if (Constant.YN_Y.equals(conf.getNodeVal1())) return WorkNode.NODE1;
+            if (Constant.YN_Y.equals(conf.getNodeVal2())) return WorkNode.NODE2;
+            if (Constant.YN_Y.equals(conf.getNodeVal3())) return WorkNode.NODE3;
+        }
+
+        if (WorkNode.NODE1.getCode().equals(curNode)) {
+            if (Constant.YN_Y.equals(conf.getNodeVal2())) return WorkNode.NODE2;
+            if (Constant.YN_Y.equals(conf.getNodeVal3())) return WorkNode.NODE3;
+        }
+
+        if (WorkNode.NODE2.getCode().equals(curNode)) {
+            if (Constant.YN_Y.equals(conf.getNodeVal3())) return WorkNode.NODE3;
+        }
+
+        return WorkNode.NODE_END;
+    }
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderConfService.java b/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderConfService.java
index 2be2b13..6f8031e 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderConfService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderConfService.java
@@ -1,8 +1,10 @@
 package com.fzzy.work.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fzzy.igds.constant.Constant;
 import com.fzzy.igds.data.BaseResp;
 import com.fzzy.igds.utils.ContextUtil;
+import com.fzzy.work.data.WorkBizType;
 import com.fzzy.work.domain.WorkOrderConf;
 import com.fzzy.work.mapper.WorkOrderConfMapper;
 import org.apache.commons.lang3.StringUtils;
@@ -44,13 +46,39 @@
         data.setCreateTime(new Date());
         data.setUpdateBy(ContextUtil.getLoginUserName());
         data.setUpdateTime(new Date());
-        if(null == data.getCompanyId()) data.setCompanyId(ContextUtil.getCompanyId());
+        if (null == data.getCompanyId()) data.setCompanyId(ContextUtil.getCompanyId());
+
+        if(null == data.getNodeVal1()) data.setNodeVal1(Constant.YN_N);
+        if(null == data.getNodeVal2()) data.setNodeVal2(Constant.YN_N);
+        if(null == data.getNodeVal3()) data.setNodeVal3(Constant.YN_N);
+
+        //濡傛灉鑺傜偣閮芥病鏈夊惎鐢紝榛樿璁剧疆涓烘祦绋嬩笉鍚敤
+        if(Constant.YN_N.equals(data.getNodeVal1())
+                && Constant.YN_N.equals(data.getNodeVal2())
+                && Constant.YN_N.equals(data.getNodeVal3())){
+
+            data.setValTag(Constant.YN_N);
+        }
+
         mapper.insert(data);
     }
 
     public void updateConf(WorkOrderConf data) {
         data.setUpdateBy(ContextUtil.getLoginUserName());
         data.setUpdateTime(new Date());
+
+        if(null == data.getNodeVal1()) data.setNodeVal1(Constant.YN_N);
+        if(null == data.getNodeVal2()) data.setNodeVal2(Constant.YN_N);
+        if(null == data.getNodeVal3()) data.setNodeVal3(Constant.YN_N);
+
+        //濡傛灉鑺傜偣閮芥病鏈夊惎鐢紝榛樿璁剧疆涓烘祦绋嬩笉鍚敤
+        if(Constant.YN_N.equals(data.getNodeVal1())
+                && Constant.YN_N.equals(data.getNodeVal2())
+                && Constant.YN_N.equals(data.getNodeVal3())){
+
+            data.setValTag(Constant.YN_N);
+        }
+
         mapper.updateById(data);
     }
 
@@ -58,4 +86,16 @@
         if (null == data.getId()) return BaseResp.success();
         return mapper.deleteById(data.getId()) > 0 ? BaseResp.success() : BaseResp.error("鍒犻櫎澶辫触");
     }
+
+    public WorkOrderConf getByDeptId(String deptId, WorkBizType type) {
+        QueryWrapper<WorkOrderConf> queryWrapper = new QueryWrapper<>();
+
+        queryWrapper.eq("dept_id", deptId);
+        queryWrapper.eq("biz_type", type.getCode());
+
+        List<WorkOrderConf> list = mapper.selectList(queryWrapper);
+
+        if (null == list) return null;
+        return list.get(0);
+    }
 }
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderProcessService.java b/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderProcessService.java
index fe92ba4..f8ffd84 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderProcessService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderProcessService.java
@@ -1,6 +1,7 @@
 package com.fzzy.work.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fzzy.igds.utils.ContextUtil;
 import com.fzzy.work.domain.WorkOrderProcess;
 import com.fzzy.work.mapper.WorkOrderProcessMapper;
 import org.apache.commons.lang3.StringUtils;
@@ -29,4 +30,9 @@
         queryWrapper.orderByDesc("create_time");
         return mapper.selectList(queryWrapper);
     }
+
+    public void addData(WorkOrderProcess process) {
+        if(null == process.getId()) process.setId(ContextUtil.UUID());
+        mapper.insert(process);
+    }
 }
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java b/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java
index 7ecf0f3..80ed30d 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java
@@ -11,10 +11,12 @@
 import com.fzzy.work.mapper.WorkOrderMapper;
 import com.ruoyi.common.core.domain.entity.SysDictData;
 
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.StringUtils;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 import javax.annotation.Resource;
@@ -29,6 +31,23 @@
     @Resource
     private WorkOrderMapper workOrderMapper;
 
+
+
+    public void addData(WorkOrder data) {
+        if(null == data.getId()) data.setId(ContextUtil.generateOrderId("GD"));
+
+        if(null == data.getCompanyId()) data.setCompanyId(ContextUtil.getCompanyId());
+
+        if(null == data.getCreateBy()){
+            SysUser user = ContextUtil.getLoginUser();
+            data.setCreateBy(user.getUserName());
+            data.setCreateById(user.getLoginName());
+        }
+        data.setUpdateTime(new Date());
+
+        workOrderMapper.insert(data);
+    }
+
     public void pageQuery(Page<WorkOrder> page, WorkOrderParam param) {
 
         QueryWrapper<WorkOrder> queryWrapper = new QueryWrapper<>();
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/DepotConfPR.java b/fzzy-igdss-view/src/main/java/com/fzzy/igds/DepotConfPR.java
index e9dadfc..97bec2f 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/igds/DepotConfPR.java
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/DepotConfPR.java
@@ -5,7 +5,6 @@
 import com.bstek.dorado.annotation.Expose;
 import com.fzzy.igds.domain.DepotConf;
 import com.fzzy.igds.service.DepotConfService;
-import com.fzzy.igds.utils.ContextUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Component;
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/DepotPR.java b/fzzy-igdss-view/src/main/java/com/fzzy/igds/DepotPR.java
index b5639f4..6d83f09 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/igds/DepotPR.java
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/DepotPR.java
@@ -3,9 +3,7 @@
 import com.bstek.dorado.annotation.DataProvider;
 import com.bstek.dorado.annotation.DataResolver;
 import com.bstek.dorado.annotation.Expose;
-import com.fzzy.igds.data.IgdsBaseParam;
 import com.fzzy.igds.domain.Depot;
-import com.fzzy.igds.domain.PledgeContract;
 import com.fzzy.igds.service.DepotService;
 import com.fzzy.igds.service.PledgeContractService;
 import com.fzzy.igds.utils.ContextUtil;
@@ -16,7 +14,6 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
 import java.util.List;
 
 /**
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/GrainReportPR.java b/fzzy-igdss-view/src/main/java/com/fzzy/igds/GrainReportPR.java
index 306e62a..edff85b 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/igds/GrainReportPR.java
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/GrainReportPR.java
@@ -7,7 +7,6 @@
 import com.fzzy.igds.constant.FoodVariety;
 import com.fzzy.igds.data.GrainDataReport;
 import com.fzzy.igds.domain.DepotConf;
-import com.fzzy.igds.domain.Dept;
 import com.fzzy.igds.domain.Grain;
 import com.fzzy.igds.service.CoreDeptService;
 import com.fzzy.igds.service.DepotConfService;
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn-Detail.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn-Detail.view.xml
new file mode 100644
index 0000000..d842fa5
--- /dev/null
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn-Detail.view.xml
@@ -0,0 +1,634 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ViewConfig>
+  <Arguments/>
+  <Context/>
+  <Model>
+    <DataType name="dtMain">
+      <ClientEvent name="onDataChange">&#xD;
+&#xD;
+&#xD;
+</ClientEvent>
+      <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="keyProperty">id</Property>
+          <Property name="mapValues">${dorado.getDataProvider(&quot;deptPR#getDeptByUserType&quot;).getResult()}</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>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="contract">
+        <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(&quot;depotPR#getData&quot;).getResult()}</Property>
+          <Property name="keyProperty">id</Property>
+          <Property name="valueProperty">name</Property>
+        </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>
+      </PropertyDef>
+      <PropertyDef name="foodVariety">
+        <Property></Property>
+        <Property name="label">绮鍝佺</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#sysDictData&quot;).getResult(&quot;FOOD_VARIETY_&quot;)}</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>
+      </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">${dorado.getDataProvider(&quot;dicPR#triggerStatusType&quot;).getResult()}</Property>
+          <Property name="keyProperty">dictValue</Property>
+          <Property name="valueProperty">dictLabel</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">Date</Property>
+        <Property name="label">瀹屾垚鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="remark">
+        <Property></Property>
+        <Property name="label">澶囨敞淇℃伅</Property>
+      </PropertyDef>
+      <PropertyDef name="createTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">鍒跺崟鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="createBy">
+        <Property></Property>
+        <Property name="label">鍒跺崟浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="updateTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">鏇存柊鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="updateBy">
+        <Property></Property>
+        <Property name="label">鏇存柊浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="bankId">
+        <Property></Property>
+        <Property name="label">鐩戠潱閾惰</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;bankPR#listAll&quot;).getResult()}</Property>
+          <Property name="keyProperty">id</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+        <Property name="visible">true</Property>
+      </PropertyDef>
+    </DataType>
+  </Model>
+  <View layout="padding:10">
+    <ClientEvent name="onReady">var deptId = window.parent.deptId;//鐖堕〉闈腑鐨勫垎搴撶紪鐮�&#xD;
+var TYPE = &quot;NOTICE_IN&quot;;&#xD;
+query = function(){&#xD;
+    view.get(&quot;#dsQuery&quot;).set(&quot;parameter&quot;,{deptId:deptId}).flushAsync();&#xD;
+};&#xD;
+query();&#xD;
+      &#xD;
+//鏂板&#xD;
+add = function(){&#xD;
+    view.get(&quot;#ajaxInitAdd&quot;).execute(function(data){&#xD;
+    	view.get(&quot;#dsMain&quot;).insert(data);&#xD;
+        view.get(&quot;#dialogMain&quot;).show();&#xD;
+    });&#xD;
+};</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="dataProvider">inoutNoticePR#getYearQuery</Property>
+      <Property name="loadMode">manual</Property>
+      <Property name="dataType">dtNoticeParam</Property>
+    </DataSet>
+    <DataSet id="dsDepotList">
+      <Property name="dataProvider">depotPR#getData</Property>
+      <Property name="userData">浠撳簱鍒楄〃涓嬫媺妗�</Property>
+      <Property name="loadMode">manual</Property>
+      <Property name="dataType">[dtDepot]</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(&quot;#dsQuery.data&quot;);&#xD;
+            if(data){&#xD;
+            view.get(&quot;#dsMain&quot;).set(&quot;parameter&quot;,data).flushAsync();&#xD;
+            }else{&#xD;
+            view.get(&quot;#dsMain&quot;).flushAsync();&#xD;
+            }</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(&quot;#dsQuery&quot;).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">&#xD;
+            var select = view.get(&quot;#dataGridMain&quot;).get(&quot;selection&quot;);&#xD;
+            if(select){&#xD;
+            view.get(&quot;#dialogMain&quot;).show();&#xD;
+            }else{&#xD;
+            $notify(&quot;璇烽�夋嫨闇�瑕佷慨鏀圭殑鏁版嵁鈥︹��&quot;);&#xD;
+            }</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">&#xD;
+            var select = view.get(&quot;#dataGridMain&quot;).get(&quot;selection&quot;);&#xD;
+            if(select){&#xD;
+            view.get(&quot;#ajaxDel&quot;).set(&quot;parameter&quot;,select).execute(function(result){&#xD;
+            select.remove();&#xD;
+            });&#xD;
+            }else{&#xD;
+            $notify(&quot;璇烽�夋嫨闇�瑕佸垹闄ょ殑鏁版嵁鈥︹��&quot;);&#xD;
+            }</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(&quot;#recalculate&quot;).execute(function(result){&#xD;
+            if(result == 'success'){&#xD;
+            $notify(&quot;鏁版嵁鏇存柊瀹屾垚锛侊紒&quot;);&#xD;
+            &#xD;
+            var data = view.get(&quot;#dsQuery.data&quot;);&#xD;
+            view.get(&quot;#dsMain&quot;).set(&quot;parameter&quot;,data.toJSON()).flushAsync();&#xD;
+            }else{&#xD;
+            $notify(&quot;鏁版嵁鏇存柊澶辫触锛侊紒&quot;);&#xD;
+            }&#xD;
+            });</ClientEvent>
+          <Property name="caption">瀹炴椂鏍哥畻</Property>
+          <Property name="exClassName">btn4</Property>
+          <Property name="iconClass">fa fa-refresh</Property>
+          <Property name="width">120</Property>
+          <Property name="tip">瀹屾垚閲忛粯璁ょ粺璁″埌鏄ㄥぉ锛屾煡鐪嬪疄鏃跺畬鎴愰噺璇风偣鍑烩�滃疄鏃舵牳绠椻�濇寜閽�</Property>
+        </ToolBarButton>
+        <ToolBarButton layoutConstraint="left">
+          <ClientEvent name="onClick">&#xD;
+var select = view.get(&quot;#dataGridMain&quot;).get(&quot;selection&quot;);&#xD;
+if(select){&#xD;
+    var bizId = select.get(&quot;id&quot;);&#xD;
+    var url = &quot;/export/download-word?bizId=&quot;+bizId + &quot;&amp;entityName=InoutNoticeIn&quot;;&#xD;
+    window.open(url);&#xD;
+}else{&#xD;
+    $notify(&quot;璇烽�夋嫨闇�瑕佸鍑虹殑閫氱煡鍗曗�︹��&quot;);&#xD;
+}</ClientEvent>
+          <Property name="caption">瀵煎嚭Word</Property>
+          <Property name="exClassName">btn2</Property>
+          <Property name="width">120</Property>
+          <Property name="iconClass">fa fa-print</Property>
+        </ToolBarButton>
+        <Fill/>
+      </ToolBar>
+      <DataGrid id="dataGridMain" layoutConstraint="padding:8">
+        <ClientEvent name="onDataRowClick">self.set(&quot;selection&quot;,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>
+          <Property name="property">deptId</Property>
+          <Property name="align">left</Property>
+          <Property name="name">deptId</Property>
+        </DataColumn>
+        <DataColumn name="name">
+          <Property name="property">name</Property>
+          <Property name="align">center</Property>
+          <Property name="width">120</Property>
+        </DataColumn>
+        <DataColumn name="customerName">
+          <Property name="property">customerName</Property>
+          <Property name="align">center</Property>
+        </DataColumn>
+        <DataColumn name="depotId">
+          <Property name="property">depotId</Property>
+          <Property name="align">center</Property>
+          <Property name="width">120</Property>
+        </DataColumn>
+        <DataColumn name="foodVariety">
+          <Property name="property">foodVariety</Property>
+          <Property name="align">center</Property>
+          <Property name="width">120</Property>
+        </DataColumn>
+        <DataColumn>
+          <Property name="property">targetNumber</Property>
+          <Property name="name">targetNumber</Property>
+          <Property name="align">center</Property>
+          <Property name="width">120</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">updateBy</Property>
+          <Property name="align">center</Property>
+          <Property name="name">updateBy</Property>
+          <Property name="width">120</Property>
+        </DataColumn>
+        <DataColumn>
+          <Property name="property">createTime</Property>
+          <Property name="align">center</Property>
+          <Property name="name">createTime</Property>
+          <Property name="width">160</Property>
+        </DataColumn>
+      </DataGrid>
+      <ToolBar layoutConstraint="bottom">
+        <Fill/>
+        <DataPilot layoutConstraint="right">
+          <Property name="itemCodes">pageSize,pages</Property>
+          <Property name="dataSet">dsMain</Property>
+        </DataPilot>
+      </ToolBar>
+    </Container>
+    <Dialog id="dialogMain" layout="regionPadding:8">
+      <Property name="closeable">false</Property>
+      <Property name="caption">鍏ュ簱閫氱煡鍗�</Property>
+      <Property name="width">85%</Property>
+      <Property name="iconClass">fa fa-tasks</Property>
+      <Buttons>
+        <Button id="btnOk">
+          <ClientEvent name="onClick">view.get(&quot;#updateSave&quot;).execute(function(result){&#xD;
+	if(result.code != '200'){&#xD;
+		$alert(result.message);&#xD;
+		return;&#xD;
+	}&#xD;
+	$alert('鏁版嵁鎵ц鎴愬姛锛�');&#xD;
+	self.get(&quot;parent&quot;).hide();&#xD;
+});</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(&quot;#dsMain.data:#&quot;).cancel();&#xD;
+            self.get(&quot;parent&quot;).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 layoutConstraint="top ">
+            <Property name="dataSet">dsMain</Property>
+            <Property name="showHint">false</Property>
+            <Property name="cols">210,*,210</Property>
+            <Control/>
+            <AutoFormElement>
+              <Property name="name">name</Property>
+              <Property name="property">name</Property>
+              <Property name="editorType">Label</Property>
+              <Property name="showLabel">false</Property>
+              <Property name="showHint">false</Property>
+              <Property name="className">f-title</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">id</Property>
+              <Property name="property">id</Property>
+              <Property name="editorType">Label</Property>
+              <Property name="showHint">false</Property>
+              <Property name="labelAlign">right</Property>
+              <Property name="showLabel">false</Property>
+              <Editor/>
+            </AutoFormElement>
+          </AutoForm>
+          <AutoForm>
+            <Property name="dataSet">dsMain</Property>
+            <Property name="cols">*,*,*</Property>
+            <Property name="labelAlign">right</Property>
+            <Property name="labelSeparator">锛�</Property>
+            <Property name="labelWidth">120</Property>
+            <Property name="showHint">true</Property>
+            <AutoFormElement>
+              <Property name="name">name</Property>
+              <Property name="property">name</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">type</Property>
+              <Property name="property">type</Property>
+              <Property name="trigger">autoMappingDropDown1</Property>
+              <Property name="editorType">RadioGroup</Property>
+              <Property name="showHint">false</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement id="formItemBank">
+              <Property name="name">bankId</Property>
+              <Property name="property">bankId</Property>
+              <Property name="hideMode">visibility</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">deptId</Property>
+              <Property name="property">deptId</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">depotId</Property>
+              <Property name="property">depotId</Property>
+              <Property name="trigger">dsDepotDropDown</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>
+            <AutoFormElement id="formItemCustomerName" layoutConstraint="colSpan:2">
+              <Property name="name">customerName</Property>
+              <Property name="property">customerName</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">createBy</Property>
+              <Property name="property">createBy</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">createTime</Property>
+              <Property name="property">createTime</Property>
+              <Property name="readOnly">true</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement layoutConstraint="colSpan:3">
+              <Property name="name">remark</Property>
+              <Property name="property">remark</Property>
+              <Property name="editorType">TextArea</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">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 layoutConstraint="colSpan:2">
+              <Property name="name">contract</Property>
+              <Property name="property">contract</Property>
+              <Editor/>
+            </AutoFormElement>
+            <Label>
+              <Property name="style">
+                <Property name="color">blue</Property>
+              </Property>
+              <Property name="text">娉細鐩戠閫氱煡鍗曪紝鍙~鍐欒川鎶煎悎鍚屽悕绉�</Property>
+            </Label>
+            <AutoFormElement>
+              <Property name="name">auditStatus</Property>
+              <Property name="property">auditStatus</Property>
+              <Property name="readOnly">true</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">auditUser</Property>
+              <Property name="property">auditUser</Property>
+              <Property name="readOnly">true</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">auditDate</Property>
+              <Property name="property">auditDate</Property>
+              <Property name="readOnly">true</Property>
+              <Editor/>
+            </AutoFormElement>
+            <HtmlContainer layoutConstraint="colSpan:3">
+              <Property name="content">1.鍏ュ簱閫氱煡鍗曚綔涓哄叆搴撲綔涓氱殑鍓嶇疆鏉′欢锛屽繀椤婚厤缃紝鍚﹀垯鏃犳硶杩涜鍏ュ簱浣滀笟銆�&lt;br>&#xD;
+2.鍗曟嵁绫诲瀷=搴撳尯閫氱煡鍗曪紝琛ㄧず搴撳尯鑷繁浣滀笟涓氬姟锛屼笉鍙楃洃绠$鐞嗐��&lt;br>&#xD;
+3.鍗曟嵁绫诲瀷=璐ㄦ娂鐩戠閫氱煡鍗曪紝鍗曟嵁蹇呴』濉啓鐩戠潱閾惰銆�</Property>
+              <Property name="exClassName">h-tip</Property>
+              <Property name="contentOverflow">hidden</Property>
+            </HtmlContainer>
+          </AutoForm>
+        </Container>
+      </Children>
+      <Tools/>
+    </Dialog>
+    <DataSetDropDown id="dsDepotDropDown">
+      <ClientEvent name="onOpen">&#xD;
+var entity = view.get(&quot;#dsMain.data:#&quot;);&#xD;
+if(!entity){&#xD;
+    $alert(&quot;璇峰厛閫夋嫨鎵�灞炲垎搴�&quot;);&#xD;
+}else{&#xD;
+    var deptId = entity.get(&quot;deptId&quot;);&#xD;
+    if(!deptId){&#xD;
+        $alert(&quot;璇峰厛閫夋嫨鎵�灞炲垎搴�&quot;);&#xD;
+    }else{&#xD;
+        view.get(&quot;#dsDepotList&quot;).set(&quot;parameter&quot;,entity.get(&quot;deptId&quot;)).flushAsync();&#xD;
+    }&#xD;
+}</ClientEvent>
+      <Property name="dataSet">dsDepotList</Property>
+      <Property name="height">450</Property>
+      <Property name="autoOpen">true</Property>
+      <Property name="assignmentMap">depotId=id</Property>
+      <Property name="width">400</Property>
+      <DataColumn>
+        <Property name="align">center</Property>
+        <Property name="name">name</Property>
+        <Property name="property">name</Property>
+        <Editor/>
+      </DataColumn>
+    </DataSetDropDown>
+    <UpdateAction id="updateSave">
+      <Property name="dataResolver">inoutNoticePR#saveIn</Property>
+      <UpdateItem>
+        <Property name="dataPath">[#current]</Property>
+        <Property name="dataSet">dsMain</Property>
+      </UpdateItem>
+    </UpdateAction>
+    <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/InoutNoticeIn.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn.view.xml
index c9a5eff..2ddc0e4 100644
--- 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
@@ -38,11 +38,11 @@
           <Property name="mapValues">
             <Collection>
               <Entity>
-                <Property name="name">搴撳尯鑷缓閫氱煡鍗�</Property>
+                <Property name="name">鑷敤閫氱煡鍗�</Property>
                 <Property name="code">10</Property>
               </Entity>
               <Entity>
-                <Property name="name">璐ㄦ娂鐩戠閫氱煡鍗�</Property>
+                <Property name="name">鐩戠閫氱煡鍗�</Property>
                 <Property name="code">20</Property>
               </Entity>
             </Collection>
@@ -403,21 +403,17 @@
       <Property name="closeable">false</Property>
       <Property name="caption">鍏ュ簱閫氱煡鍗�</Property>
       <Property name="width">85%</Property>
-      <Property name="height">90%</Property>
       <Property name="iconClass">fa fa-tasks</Property>
       <Buttons>
         <Button id="btnOk">
           <ClientEvent name="onClick">view.get(&quot;#updateSave&quot;).execute(function(result){&#xD;
-	if(result){&#xD;
-		$alert(result);&#xD;
+	if(result.code != '200'){&#xD;
+		$alert(result.message);&#xD;
 		return;&#xD;
 	}&#xD;
-	$notify(&quot;鏁版嵁鎵ц瀹屾垚锛侊紒&quot;);&#xD;
+	$alert('鏁版嵁鎵ц鎴愬姛锛�');&#xD;
 	self.get(&quot;parent&quot;).hide();&#xD;
-});&#xD;
-&#xD;
-&#xD;
-</ClientEvent>
+});</ClientEvent>
           <Property name="caption">淇濆瓨</Property>
           <Property name="iconClass">fa fa-check-circle</Property>
           <Property name="exClassName">btn1</Property>
@@ -464,7 +460,8 @@
             <Property name="labelAlign">right</Property>
             <Property name="labelSeparator">锛�</Property>
             <Property name="labelWidth">120</Property>
-            <AutoFormElement layoutConstraint="colSpan:2">
+            <Property name="showHint">true</Property>
+            <AutoFormElement>
               <Property name="name">name</Property>
               <Property name="property">name</Property>
               <Editor/>
@@ -473,12 +470,15 @@
               <Property name="name">type</Property>
               <Property name="property">type</Property>
               <Property name="trigger">autoMappingDropDown1</Property>
+              <Property name="editorType">RadioGroup</Property>
+              <Property name="showHint">false</Property>
               <Editor/>
             </AutoFormElement>
             <AutoFormElement id="formItemBank">
               <Property name="name">bankId</Property>
               <Property name="property">bankId</Property>
               <Property name="hideMode">visibility</Property>
+              <Property name="trigger">autoMappingDropDown2</Property>
               <Editor/>
             </AutoFormElement>
             <AutoFormElement>
@@ -509,14 +509,26 @@
               <Editor/>
             </AutoFormElement>
             <AutoFormElement>
-              <Property name="name">unitName</Property>
-              <Property name="property">unitName</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">createBy</Property>
+              <Property name="property">createBy</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">createTime</Property>
+              <Property name="property">createTime</Property>
+              <Property name="readOnly">true</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement layoutConstraint="colSpan:3">
+              <Property name="name">remark</Property>
+              <Property name="property">remark</Property>
+              <Property name="editorType">TextArea</Property>
               <Editor/>
             </AutoFormElement>
             <AutoFormElement>
@@ -536,17 +548,6 @@
               <Property name="readOnly">false</Property>
               <Editor/>
             </AutoFormElement>
-            <AutoFormElement>
-              <Property name="name">createBy</Property>
-              <Property name="property">createBy</Property>
-              <Editor/>
-            </AutoFormElement>
-            <AutoFormElement>
-              <Property name="name">auditStatus</Property>
-              <Property name="property">auditStatus</Property>
-              <Property name="readOnly">true</Property>
-              <Editor/>
-            </AutoFormElement>
             <AutoFormElement layoutConstraint="colSpan:2">
               <Property name="name">contract</Property>
               <Property name="property">contract</Property>
@@ -558,15 +559,10 @@
               </Property>
               <Property name="text">娉細鐩戠閫氱煡鍗曪紝鍙~鍐欒川鎶煎悎鍚屽悕绉�</Property>
             </Label>
-            <AutoFormElement layoutConstraint="colSpan:3">
-              <Property name="name">remark</Property>
-              <Property name="property">remark</Property>
-              <Property name="editorType">TextArea</Property>
-              <Editor/>
-            </AutoFormElement>
             <AutoFormElement>
-              <Property name="name">createTime</Property>
-              <Property name="property">createTime</Property>
+              <Property name="name">auditStatus</Property>
+              <Property name="property">auditStatus</Property>
+              <Property name="readOnly">true</Property>
               <Editor/>
             </AutoFormElement>
             <AutoFormElement>
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeOut-Detail.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeOut-Detail.view.xml
new file mode 100644
index 0000000..f19f133
--- /dev/null
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeOut-Detail.view.xml
@@ -0,0 +1,649 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ViewConfig>
+  <Arguments/>
+  <Context/>
+  <Model>
+    <DataType name="dtMain">
+      <Property name="creationType">com.fzzy.igds.domain.InoutNoticeOut</Property>
+      <PropertyDef name="id">
+        <Property></Property>
+        <Property name="label">閫氱煡鍗曞彿</Property>
+      </PropertyDef>
+      <PropertyDef name="deptId">
+        <Property></Property>
+        <Property name="label">鎵�灞炲垎搴�</Property>
+        <Property name="mapping">
+          <Property name="keyProperty">id</Property>
+          <Property name="mapValues">${dorado.getDataProvider(&quot;deptPR#getDeptByUserType&quot;).getResult()}</Property>
+          <Property name="valueProperty">kqmc</Property>
+        </Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="companyId">
+        <Property></Property>
+        <Property name="label">缁勭粐缂栫爜</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>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="contract">
+        <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(&quot;depotPR#getData&quot;).getResult()}</Property>
+          <Property name="keyProperty">id</Property>
+          <Property name="valueProperty">name</Property>
+        </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>
+      </PropertyDef>
+      <PropertyDef name="foodVariety">
+        <Property></Property>
+        <Property name="label">绮鍝佺</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#sysDictData&quot;).getResult(&quot;FOOD_VARIETY_&quot;)}</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>
+      </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">Date</Property>
+        <Property name="label">瀹屾垚鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="remark">
+        <Property></Property>
+        <Property name="label">澶囨敞淇℃伅</Property>
+      </PropertyDef>
+      <PropertyDef name="createTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">鍒跺崟鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="createBy">
+        <Property></Property>
+        <Property name="label">鍒跺崟浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="updateTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">鏇存柊鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="updateBy">
+        <Property></Property>
+        <Property name="label">鏇存柊浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="bankId">
+        <Property></Property>
+        <Property name="label">鐩戠潱閾惰</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;bankPR#listAll&quot;).getResult()}</Property>
+          <Property name="keyProperty">id</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+        <Property name="visible">true</Property>
+      </PropertyDef>
+    </DataType>
+  </Model>
+  <View layout="padding:10">
+    <ClientEvent name="onReady">var deptId = window.parent.deptId;//鐖堕〉闈腑鐨勫垎搴撶紪鐮�&#xD;
+var TYPE = &quot;NOTICE_OUT&quot;;&#xD;
+query = function(){&#xD;
+	view.get(&quot;#dsQuery&quot;).set(&quot;parameter&quot;,{deptId:deptId}).flushAsync();&#xD;
+};&#xD;
+query();&#xD;
+      &#xD;
+//鏂板&#xD;
+add = function(){&#xD;
+    view.get(&quot;#ajaxInitAdd&quot;).execute(function(data){&#xD;
+    	view.get(&quot;#dsMain&quot;).insert(data);&#xD;
+        view.get(&quot;#dialogMain&quot;).show();&#xD;
+    });&#xD;
+};&#xD;
+&#xD;</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="dsQuery">
+      <Property name="dataType">dtNoticeParam</Property>
+      <Property name="dataProvider">inoutNoticePR#getYearQuery</Property>
+      <Property name="loadMode">manual</Property>
+    </DataSet>
+    <DataSet id="dsDepotList">
+      <Property name="dataProvider">depotPR#getData</Property>
+      <Property name="userData">浠撳簱鍒楄〃涓嬫媺妗�</Property>
+      <Property name="loadMode">manual</Property>
+      <Property name="dataType">[dtDepot]</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(&quot;#dsQuery.data&quot;);&#xD;
+            if(data){&#xD;
+            view.get(&quot;#dsMain&quot;).set(&quot;parameter&quot;,data.toJSON()).flushAsync();&#xD;
+            }else{&#xD;
+            view.get(&quot;#dsMain&quot;).flushAsync();&#xD;
+            }</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(&quot;#dsQuery&quot;).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();&#xD;</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">&#xD;
+            var select = view.get(&quot;#dataGridMain&quot;).get(&quot;selection&quot;);&#xD;
+            if(select){&#xD;
+            view.get(&quot;#dialogMain&quot;).show();&#xD;
+            }else{&#xD;
+            $notify(&quot;璇烽�夋嫨闇�瑕佷慨鏀圭殑鏁版嵁鈥︹��&quot;);&#xD;
+            }</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">&#xD;
+            var select = view.get(&quot;#dataGridMain&quot;).get(&quot;selection&quot;);&#xD;
+            if(select){&#xD;
+            view.get(&quot;#ajaxDel&quot;).set(&quot;parameter&quot;,select).execute(function(result){&#xD;
+            select.remove();&#xD;
+            });&#xD;
+            }else{&#xD;
+            $notify(&quot;璇烽�夋嫨闇�瑕佸垹闄ょ殑浠撳簱鈥︹��&quot;);&#xD;
+            }&#xD;
+          </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(&quot;#recalculate&quot;).execute(function(result){&#xD;
+            if(result == 'success'){&#xD;
+            $notify(&quot;鏁版嵁鏇存柊瀹屾垚锛侊紒&quot;);&#xD;
+            &#xD;
+            var data = view.get(&quot;#dsQuery.data&quot;);&#xD;
+            view.get(&quot;#dsMain&quot;).set(&quot;parameter&quot;,data.toJSON()).flushAsync();&#xD;
+            }else{&#xD;
+            $notify(&quot;鏁版嵁鏇存柊澶辫触锛侊紒&quot;);&#xD;
+            }&#xD;
+            });</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>
+        <ToolBarButton layoutConstraint="left">
+          <ClientEvent name="onClick">&#xD;
+            var select = view.get(&quot;#dataGridMain&quot;).get(&quot;selection&quot;);&#xD;
+            if(select){&#xD;
+            var bizId = select.get(&quot;id&quot;);&#xD;
+            var url = &quot;/export/download-word?bizId=&quot;+bizId + &quot;&amp;entityName=InoutNoticeOut&quot;;&#xD;
+            window.open(url);&#xD;
+            }else{&#xD;
+            $notify(&quot;璇烽�夋嫨闇�瑕佸鍑虹殑閫氱煡鍗曗�︹��&quot;);&#xD;
+            }</ClientEvent>
+          <Property name="caption">瀵煎嚭Word</Property>
+          <Property name="exClassName">btn2</Property>
+          <Property name="width">120</Property>
+          <Property name="iconClass">fa fa-print</Property>
+        </ToolBarButton>
+        <Fill/>
+      </ToolBar>
+      <DataGrid id="dataGridMain" layoutConstraint="padding:8">
+        <ClientEvent name="onDataRowClick">self.set(&quot;selection&quot;,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>
+          <Property name="property">deptId</Property>
+          <Property name="align">left</Property>
+          <Property name="name">deptId</Property>
+        </DataColumn>
+        <DataColumn name="name">
+          <Property name="property">name</Property>
+          <Property name="align">center</Property>
+          <Property name="width">120</Property>
+        </DataColumn>
+        <DataColumn name="customerName">
+          <Property name="property">customerName</Property>
+          <Property name="align">center</Property>
+        </DataColumn>
+        <DataColumn name="depotId">
+          <Property name="property">depotId</Property>
+          <Property name="align">center</Property>
+          <Property name="width">120</Property>
+        </DataColumn>
+        <DataColumn name="foodVariety">
+          <Property name="property">foodVariety</Property>
+          <Property name="align">center</Property>
+          <Property name="width">120</Property>
+        </DataColumn>
+        <DataColumn>
+          <Property name="property">targetNumber</Property>
+          <Property name="name">targetNumber</Property>
+          <Property name="align">center</Property>
+          <Property name="width">120</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">updateBy</Property>
+          <Property name="align">center</Property>
+          <Property name="name">updateBy</Property>
+          <Property name="width">120</Property>
+        </DataColumn>
+        <DataColumn>
+          <Property name="property">createTime</Property>
+          <Property name="align">center</Property>
+          <Property name="name">createTime</Property>
+          <Property name="width">160</Property>
+        </DataColumn>
+      </DataGrid>
+      <ToolBar layoutConstraint="bottom">
+        <Fill/>
+        <DataPilot layoutConstraint="right">
+          <Property name="itemCodes">pageSize,pages</Property>
+          <Property name="dataSet">dsMain</Property>
+        </DataPilot>
+      </ToolBar>
+    </Container>
+    <Dialog id="dialogMain">
+      <Property name="closeable">false</Property>
+      <Property name="caption">鍑哄簱閫氱煡鍗�</Property>
+      <Property name="width">85%</Property>
+      <Property name="height">90%</Property>
+      <Property name="iconClass">fa fa-tasks</Property>
+      <Buttons>
+        <Button id="btnOk">
+          <ClientEvent name="onClick">view.get(&quot;#updateSave&quot;).execute(function(result){&#xD;
+            if(result){&#xD;
+            $alert(result);&#xD;
+            return;&#xD;
+            }&#xD;
+            $notify(&quot;鏁版嵁鎵ц瀹屾垚锛侊紒&quot;);&#xD;
+            self.get(&quot;parent&quot;).hide();&#xD;
+            });</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(&quot;#dsMain.data:#&quot;).cancel();&#xD;
+            self.get(&quot;parent&quot;).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 layoutConstraint="top ">
+            <Property name="dataSet">dsMain</Property>
+            <Property name="showHint">false</Property>
+            <Property name="cols">210,*,210</Property>
+            <Control/>
+            <AutoFormElement>
+              <Property name="name">name</Property>
+              <Property name="property">name</Property>
+              <Property name="editorType">Label</Property>
+              <Property name="showLabel">false</Property>
+              <Property name="showHint">false</Property>
+              <Property name="className">f-title</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">id</Property>
+              <Property name="property">id</Property>
+              <Property name="editorType">Label</Property>
+              <Property name="showHint">false</Property>
+              <Property name="labelAlign">right</Property>
+              <Property name="showLabel">false</Property>
+              <Editor/>
+            </AutoFormElement>
+          </AutoForm>
+          <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 layoutConstraint="colSpan:2">
+              <Property name="name">name</Property>
+              <Property name="property">name</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">type</Property>
+              <Property name="property">type</Property>
+              <Property name="trigger">autoMappingDropDown1</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement id="formItemBank">
+              <Property name="name">bankId</Property>
+              <Property name="property">bankId</Property>
+              <Property name="hideMode">visibility</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">deptId</Property>
+              <Property name="property">deptId</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">depotId</Property>
+              <Property name="property">depotId</Property>
+              <Property name="trigger">dsDepotDropDown</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>
+            <AutoFormElement layoutConstraint="colSpan:2">
+              <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">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">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">createBy</Property>
+              <Property name="property">createBy</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">auditStatus</Property>
+              <Property name="property">auditStatus</Property>
+              <Property name="readOnly">true</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement layoutConstraint="colSpan:2">
+              <Property name="name">contract</Property>
+              <Property name="property">contract</Property>
+              <Editor/>
+            </AutoFormElement>
+            <Label>
+              <Property name="style">
+                <Property name="color">blue</Property>
+              </Property>
+              <Property name="text">娉細鐩戠閫氱煡鍗曪紝鍙~鍐欒川鎶煎悎鍚屽悕绉�</Property>
+            </Label>
+            <AutoFormElement layoutConstraint="colSpan:3">
+              <Property name="name">remark</Property>
+              <Property name="property">remark</Property>
+              <Property name="editorType">TextArea</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">createTime</Property>
+              <Property name="property">createTime</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">auditUser</Property>
+              <Property name="property">auditUser</Property>
+              <Property name="readOnly">true</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">auditDate</Property>
+              <Property name="property">auditDate</Property>
+              <Property name="readOnly">true</Property>
+              <Editor/>
+            </AutoFormElement>
+            <HtmlContainer layoutConstraint="colSpan:3">
+              <Property name="content">1.鍑哄簱閫氱煡鍗曚綔涓哄嚭搴撲綔涓氱殑鍓嶇疆鏉′欢锛屽繀椤婚厤缃紝鍚﹀垯鏃犳硶杩涜鍏ュ簱浣滀笟銆�&lt;br>&#xD;
+                2.鍗曟嵁绫诲瀷=搴撳尯閫氱煡鍗曪紝琛ㄧず搴撳尯鑷繁浣滀笟涓氬姟锛屼笉鍙楃洃绠$鐞嗐��</Property>
+              <Property name="exClassName">h-tip</Property>
+              <Property name="contentOverflow">hidden</Property>
+            </HtmlContainer>
+          </AutoForm>
+        </Container>
+      </Children>
+      <Tools/>
+    </Dialog>
+    <DataSetDropDown id="dsDepotDropDown">
+      <ClientEvent name="onOpen">&#xD;
+var entity = view.get(&quot;#dsMain.data:#&quot;);&#xD;
+if(!entity){&#xD;
+    $alert(&quot;璇峰厛閫夋嫨鎵�灞炲垎搴�&quot;);&#xD;
+}else{&#xD;
+    var deptId = entity.get(&quot;deptId&quot;);&#xD;
+    if(!deptId){&#xD;
+        $alert(&quot;璇峰厛閫夋嫨鎵�灞炲垎搴�&quot;);&#xD;
+    }else{&#xD;
+        view.get(&quot;#dsDepotList&quot;).set(&quot;parameter&quot;,entity.get(&quot;deptId&quot;)).flushAsync();&#xD;
+    }&#xD;
+}</ClientEvent>
+      <Property name="dataSet">dsDepotList</Property>
+      <Property name="height">450</Property>
+      <Property name="autoOpen">true</Property>
+      <Property name="assignmentMap">depotId=id</Property>
+      <Property name="width">400</Property>
+      <DataColumn>
+        <Property name="align">center</Property>
+        <Property name="name">name</Property>
+        <Property name="property">name</Property>
+        <Editor/>
+      </DataColumn>
+    </DataSetDropDown>
+    <UpdateAction id="updateSave">
+      <Property name="dataResolver">inoutNoticePR#saveOut</Property>
+      <UpdateItem>
+        <Property name="dataPath">[#current]</Property>
+        <Property name="dataSet">dsMain</Property>
+      </UpdateItem>
+    </UpdateAction>
+    <AjaxAction id="ajaxDel">
+      <Property name="service">inoutNoticePR#delDataOut</Property>
+      <Property name="confirmMessage">纭畾瑕佹墽琛屽垹闄や箞锛�</Property>
+    </AjaxAction>
+    <AjaxAction id="ajaxInitAdd">
+      <Property name="service">inoutNoticePR#initAddOut</Property>
+    </AjaxAction>
+    <AjaxAction id="recalculate">
+      <Property name="service">inoutNoticePR#updateSumNoticeOut</Property>
+    </AjaxAction>
+  </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
index 36c1764..e82ced6 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticePR.java
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticePR.java
@@ -6,6 +6,7 @@
 import com.bstek.dorado.annotation.Expose;
 import com.bstek.dorado.data.provider.Page;
 import com.fzzy.igds.constant.Constant;
+import com.fzzy.igds.data.BaseResp;
 import com.fzzy.igds.data.NoticeDto;
 import com.fzzy.igds.data.NoticeParam;
 import com.fzzy.igds.service.InoutNoticeService;
@@ -92,7 +93,7 @@
 	 * inoutNoticePR#saveIn 鏇存柊鍏ュ簱閫氱煡鍗�
 	 */
 	@DataResolver
-	public String saveIn(InoutNoticeIn data) {
+	public BaseResp saveIn(InoutNoticeIn data) {
 		InoutNoticeIn inoutNoticeIn = new InoutNoticeIn();
 		BeanUtils.copyProperties(data, inoutNoticeIn);
 		return inoutNoticeService.saveOrUpdateIn(inoutNoticeIn);
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrderConf.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrderConf.view.xml
index dae8778..4819954 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrderConf.view.xml
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrderConf.view.xml
@@ -12,6 +12,11 @@
         <Property></Property>
         <Property name="label">鎵�灞炲簱鍖�</Property>
         <Property name="required">true</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;deptPR#getDeptByUserType&quot;).getResult()}</Property>
+          <Property name="keyProperty">id</Property>
+          <Property name="valueProperty">kqmc</Property>
+        </Property>
       </PropertyDef>
       <PropertyDef name="bizType">
         <Property></Property>
@@ -32,6 +37,7 @@
           <Property name="valueProperty">dictLabel</Property>
         </Property>
         <Property name="required">true</Property>
+        <Property name="defaultValue">N</Property>
       </PropertyDef>
       <PropertyDef name="nodeName1">
         <Property></Property>
@@ -186,15 +192,19 @@
         </DataColumn>
         <DataColumn name="bizType">
           <Property name="property">bizType</Property>
+          <Property name="align">center</Property>
         </DataColumn>
         <DataColumn name="valTag">
           <Property name="property">valTag</Property>
+          <Property name="align">center</Property>
         </DataColumn>
         <DataColumn name="updateBy">
           <Property name="property">updateBy</Property>
+          <Property name="align">center</Property>
         </DataColumn>
         <DataColumn name="updateTime">
           <Property name="property">updateTime</Property>
+          <Property name="align">center</Property>
         </DataColumn>
         <DataColumn name="remark">
           <Property name="property">remark</Property>
@@ -233,7 +243,7 @@
             <Property name="labelSeparator">锛�</Property>
             <Property name="labelAlign">right</Property>
             <Property name="labelWidth">120</Property>
-            <AutoFormElement>
+            <AutoFormElement layoutConstraint="colSpan:2">
               <Property name="name">deptId</Property>
               <Property name="property">deptId</Property>
               <Editor/>
@@ -243,17 +253,17 @@
               <Property name="property">bizType</Property>
               <Editor/>
             </AutoFormElement>
-            <AutoFormElement>
-              <Property name="name">valTag</Property>
-              <Property name="property">valTag</Property>
-              <Editor/>
-            </AutoFormElement>
-            <AutoFormElement layoutConstraint="colSpan:3">
+            <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">valTag</Property>
+              <Property name="property">valTag</Property>
+              <Editor/>
+            </AutoFormElement>
           </AutoForm>
         </Container>
         <IFrame id="iFrameFlow">
diff --git a/fzzy-igdss-web/src/main/resources/templates/login.html b/fzzy-igdss-web/src/main/resources/templates/login.html
index dc37e14..b6cc336 100644
--- a/fzzy-igdss-web/src/main/resources/templates/login.html
+++ b/fzzy-igdss-web/src/main/resources/templates/login.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html>
-<html lang="zh" xmlns:th="http://www.thymeleaf.org">
+<html lang="zh-cn" xmlns:th="http://www.thymeleaf.org">
 <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
diff --git a/fzzy-igdss-web/src/main/resources/templates/work/flow-conf.html b/fzzy-igdss-web/src/main/resources/templates/work/flow-conf.html
index c432081..b002113 100644
--- a/fzzy-igdss-web/src/main/resources/templates/work/flow-conf.html
+++ b/fzzy-igdss-web/src/main/resources/templates/work/flow-conf.html
@@ -174,11 +174,12 @@
         }
 
         .status-bar {
-            background-color: #f8f9fa;
+            background-color: #fcf8e3;
+            border-color: #faebcc;
             padding: 15px 15px;
             border-radius: 6px;
             margin-top: 15px;
-            border-left: 4px solid #037d41;
+            /*border-left: 4px solid #037d41;*/
         }
         .status-text {
             font-size: 13px;

--
Gitblit v1.9.3