From bdde1c2c0cd6c33435f894c126dc71b4ad5528e4 Mon Sep 17 00:00:00 2001
From: sgj <1442489573@qq.com>
Date: 星期五, 16 一月 2026 15:26:17 +0800
Subject: [PATCH] 出库通知单逻辑修改

---
 fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticePR.java                |    2 
 fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeOut.view.xml           |   14 +++---
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java   |   96 +++++++++++++++++++++++++++++++-----------------
 fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderConfService.java |    2 
 4 files changed, 71 insertions(+), 43 deletions(-)

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 78013ef..cfe719f 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
@@ -315,58 +315,39 @@
      * @param data
      * @return
      */
-    public String saveOrUpdateOut(InoutNoticeOut data) {
+    @Transactional(rollbackFor = Exception.class)
+    public BaseResp saveOrUpdateOut(InoutNoticeOut data) {
         //濡傛灉鍑哄簱閫氱煡鍗曠被鍨嬩负搴撳尯閫氱煡鍗曪紝楠岃瘉浠撳簱鏄惁鏄湭瑙e帇寰椾粨搴擄紝鏄垯涓嶅厑璁镐繚瀛�
-        //鑾峰彇鎵�鏈夎川鎶煎悎鍚屾暟鎹�
-        List<PledgeContract> pledgeContracts = pledgeContractService.listAll(null);
-        if ("10".equals(data.getType())) {
+        if (InoutConstant.NOTICE_IN_TYPE_10.equals(data.getType())) {
             //鍦ㄨ川鎶煎悎鍚屾壘鍒版湭瑙e帇锛屼笖璐ㄦ娂浠撳簱鍖呭惈褰撳墠浠撳簱鐨勬暟鎹�
-            for (PledgeContract pledgeContract : pledgeContracts) {
-                if (pledgeContract.getDepotIds().contains(data.getDepotId())) {
-                    if (pledgeContract.getStatus().equals(Constant.YN_N)) {
-                        return "鍑哄簱浠撳簱鏈В鍘嬶紝鏃犳硶淇濆瓨锛�";
-                    }
-                }
+            //鑾峰彇璐ㄦ娂鍚堝悓鏁版嵁
+            PledgeContract pledge = this.getPledgeByDepotIdOut(data);
+            if (null != pledge && pledge.getStatus().equals(Constant.YN_N)) {
+                return BaseResp.error("褰撳墠浠撳簱鏈夋湭瑙e帇鐨勮川鎶煎悎鍚岋紝璐ㄦ娂鍚堝悓=" + pledge.getName());
             }
         }
         //濡傛灉鍑哄簱閫氱煡鍗曠被鍨嬩负鐩戠閫氱煡鍗�
-        if ("20".equals(data.getType())) {
+        //濡傛灉璐ㄦ娂閫氱煡鍗�
+        if (InoutConstant.NOTICE_IN_TYPE_20.equals(data.getType())) {
             //1.楠岃瘉閾惰鏄惁濉啓锛屾湭濉啓锛屽垯涓嶅厑璁镐繚瀛�
             if (StringUtils.isEmpty(data.getBankId())) {
-                return "鐩戠潱閾惰涓嶈兘涓虹┖锛�";
-
+                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.getPledgeByDepotIdAndBankIdOut(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);
-            noticeOutMapper.insert(data);
+            return this.saveOutAddStartWork(data);
         } else {
             data.setUpdateBy(ContextUtil.getLoginUserName());
             data.setUpdateTime(new Date());
             noticeOutMapper.updateById(data);
+            return BaseResp.success();
         }
-        return null;
     }
 
     /**
@@ -380,6 +361,53 @@
         return null;
     }
 
+    private BaseResp saveOutAddStartWork(InoutNoticeOut 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.startByNoticeOut(data, conf);
+            log.info("---------鍚姩宸ュ崟娴佺▼------{}", resp);
+        }
+
+        noticeOutMapper.insert(data);
+
+        return BaseResp.success();
+    }
+
+    /**
+     * 鍒ゆ柇褰撳墠浠撳簱鏄惁鍦ㄨ川鎶煎悎鍚屼腑鏈В鍘�
+     * @param data 褰撳墠鏁版嵁
+     * @return true-鍦ㄨ川鎶煎悎鍚屼腑鏈В鍘嬶紝false-鍦ㄨ川鎶煎悎鍚屼腑宸茶В鍘�
+     */
+    private PledgeContract getPledgeByDepotIdOut(InoutNoticeOut data) {
+        IgdsBaseParam param = new IgdsBaseParam();
+        param.setCompanyId(data.getCompanyId());
+        param.setDeptId(data.getDeptId());
+        param.setDepotId(data.getDepotId());
+        return pledgeContractService.getByDepotId(param);
+    }
+
+    private PledgeContract getPledgeByDepotIdAndBankIdOut(InoutNoticeOut 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);
+    }
+
     /**
      * 鏍规嵁ID鑾峰彇閫氱煡鍗曚俊鎭�
      * @param id
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 6f8031e..618e5de 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
@@ -95,7 +95,7 @@
 
         List<WorkOrderConf> list = mapper.selectList(queryWrapper);
 
-        if (null == list) return null;
+        if (null == list || list.isEmpty()) return null;
         return list.get(0);
     }
 }
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeOut.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeOut.view.xml
index f19f133..357dd74 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeOut.view.xml
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeOut.view.xml
@@ -422,13 +422,13 @@
       <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>
+	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>
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 e82ced6..717f0d3 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
@@ -175,7 +175,7 @@
 	 * @return
 	 */
 	@DataResolver
-	public String saveOut(InoutNoticeOut data) {
+	public BaseResp saveOut(InoutNoticeOut data) {
 		InoutNoticeOut inoutNoticeOut = new InoutNoticeOut();
 		BeanUtils.copyProperties(data, inoutNoticeOut);
 		return inoutNoticeService.saveOrUpdateOut(inoutNoticeOut);

--
Gitblit v1.9.3