Browse Source

采购验收验退单反审核限制

chenw 6 years ago
parent
commit
c0bf7a9d5a

+ 1 - 0
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java

@@ -86,6 +86,7 @@ public enum BizExceptionCode implements BaseExceptionCode {
     PURCHASE_ORDER_HASAUDIT(70002, "存在已审核单据,单据编号:%s"),
     PURCHASE_ORDER_HASUNAUDIT(70003, "存在未审核单据,单据编号:%s"),
     PURCHASE_ORDER_HASUPLOAD(70004, "已上传优软商务平台的采购订单不允许反审核,如交易信息发生变更请关闭该订单重新新增订单"),
+    PURCHASE_INOUTORDER_HASCHECK(70005, "反审核失败!该单存在已对账明细,不允许反审核"),
 
 
     //销售

+ 2 - 0
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/mapper/ProdIODetailMapper.java

@@ -35,4 +35,6 @@ public interface ProdIODetailMapper extends CommonBaseMapper<ProdIODetail> {
     void getDefaultWarehouseByProduct(@Param("pi_id") Long pi_id);
 
     void updateApcheckStatus(ProdInOutStatusDTO prodInOutStatusDTO);
+
+    int selectApCheckCountByFK(Long id);
 }

+ 7 - 0
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/ProdInOutServiceImpl.java

@@ -382,6 +382,13 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
         if(StringUtils.isEmpty(pi_statuscode)||(!StringUtils.isEmpty(pi_statuscode)&&!pi_statuscode.equals(Status.AUDITED.name()))){
             throw  new BizException(BizExceptionCode.BIZ_UNAUDITED);
         };
+        if (ConfigsCache.current().enableB2B()) {
+            //明细已对账数量
+            int count = prodIODetailMapper.selectApCheckCountByFK(prodInOutDTO.getId());
+            if (count > 0) {
+                throw new BizException(BizExceptionCode.PURCHASE_INOUTORDER_HASCHECK);
+            }
+        }
         Map<String, Object> map = new HashMap<String, Object>();
         map.put("inoutNo",pi_inoutno);
         map.put("class", pi_class);

+ 4 - 0
applications/purchase/purchase-server/src/main/resources/mapper/ProdIODetailMapper.xml

@@ -686,4 +686,8 @@
     AND pd_pdno = #{detno, jdbcType=INTEGER}
     AND companyid = #{companyId, jdbcType=INTEGER}
   </update>
+
+  <select id="selectApCheckCountByFK" resultType="int">
+    SELECT COUNT(*) FROM prodiodetail WHERE pd_piid = #{id} and apcheckStatus = '已对账'
+  </select>
 </mapper>