Browse Source

基础资料模块-客户/供应商删除限制

huangx 7 years ago
parent
commit
5c90433215

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

@@ -39,6 +39,7 @@ public enum BizExceptionCode implements BaseExceptionCode {
     PRODUCT_HAS_WAREHOUSE(79502, "存在物料默认仓库资料为该仓库资料,无法删除"),
     PRODUCTWH_HAS_WAREHOUSE(79503, "该仓库资料存在库存,无法删除"),
     ACCOUNT_EXISTS(79503, "账号已存在"),
+    USING_EXISTS(79504, ""),
 
 
 

+ 4 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/CustomerMapper.java

@@ -4,6 +4,8 @@ import com.usoftchina.saas.base.mapper.CommonBaseMapper;
 import com.usoftchina.saas.document.entities.Customer;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Map;
+
 public interface CustomerMapper extends CommonBaseMapper<Customer> {
     int deleteByPrimaryKey(Long cu_id);
 
@@ -27,4 +29,6 @@ public interface CustomerMapper extends CommonBaseMapper<Customer> {
     int validNameAndCodeWhenUpdate(Customer record);
 
     int validFinish(@Param("id") Long id,@Param("companyId") Long companyId);
+
+    void check(Map<String, Object> map);
 }

+ 3 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/VendorMapper.java

@@ -10,6 +10,7 @@ import com.usoftchina.saas.document.entities.VendorList;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 public interface VendorMapper extends CommonBaseMapper<Vendor> {
 
@@ -28,4 +29,6 @@ public interface VendorMapper extends CommonBaseMapper<Vendor> {
     int getCountByName(@Param("name") String name, @Param("companyId") Long companyId);
 
     int validFinish(@Param("id") Long id,@Param("companyId") Long companyId);
+
+    void check(Map<String, Object> map);
 }

+ 25 - 14
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/CustomerServiceImpl.java

@@ -28,9 +28,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  * Created by zdw
@@ -55,6 +53,8 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
     private MaxnumberService maxnumberService;
     @Autowired
     private SubledgerMapper subledgerMapper;
+    @Autowired
+    private CustomerMapper customerMapper;
 
 
     @Override
@@ -294,17 +294,28 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
     private void singleDelete(Long id) {
         if (null!=id) {
             DocBaseDTO docBaseDTO = getBaseDTOById(id);
-            //主表删除
-            getMapper().deleteByPrimaryKey(id);
-            //从表删除
-            customercontactMapper.deleteByFK(id);
-            customeraddressMapper.deleteByFK(id);
-
-            //删除中间表
-            subledgerMapper.deleteCustomer("期初余额", "期初余额", Math.toIntExact(id));
-
-            //日志
-            messageLogService.delete(docBaseDTO);
+            Map<String, Object> map = new HashMap<String, Object>();
+            map.put("v_id",id);
+            map.put("v_code", docBaseDTO.getCode());
+            map.put("v_type","cust");
+            map.put("v_res","");
+            customerMapper.check(map);
+            Object result =  map.get("v_res");
+            if(!StringUtils.isEmpty(result)){
+                throw new BizException(BizExceptionCode.USING_EXISTS.getCode(),result.toString());
+            }else{
+                //主表删除
+                getMapper().deleteByPrimaryKey(id);
+                //从表删除
+                customercontactMapper.deleteByFK(id);
+                customeraddressMapper.deleteByFK(id);
+
+                //删除中间表
+                subledgerMapper.deleteCustomer("期初余额", "期初余额", Math.toIntExact(id));
+
+                //日志
+                messageLogService.delete(docBaseDTO);
+            }
         }
     }
 

+ 23 - 11
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/VendorServiceImpl.java

@@ -2,6 +2,7 @@ package com.usoftchina.saas.document.service.impl;
 
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
 import com.usoftchina.saas.commons.api.MaxnumberService;
 import com.usoftchina.saas.commons.api.MessageLogService;
@@ -27,11 +28,10 @@ import com.usoftchina.saas.page.PageRequest;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.StringUtils;
 
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  * @author chenwei
@@ -48,6 +48,8 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
     private MaxnumberService maxnumberService;
     @Autowired
     private SubledgerMapper subledgerMapper;
+    @Autowired
+    private VendorMapper vendorMapper;
 
     @Override
     public PageInfo<VendorDTO> getVendorsByCondition(PageRequest page, ListReqDTO listReqDTO) {
@@ -257,14 +259,24 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
     @Override
     public void deleteById(Long id) {
         if(id != null && id > 0){
-            getMapper().deleteByPrimaryKey(id);
-            vendorcontactMapper.deleteByFK(id);
-            String code = getMapper().getCodeById(id, BaseContextHolder.getCompanyId());
-
-            //删除中间表
-            subledgerMapper.deleteVendor("期初余额", "期初余额", Math.toIntExact(id));
-            //记录LOG
-            messageLogService.delete(generateMsgObj(id, code));
+            String code = getMapper().getCodeById(id, new Long(1));
+            Map<String, Object> map = new HashMap<String, Object>();
+            map.put("v_id",id);
+            map.put("v_code", code);
+            map.put("v_type","vend");
+            map.put("v_res","");
+            vendorMapper.check(map);
+            Object result =  map.get("v_res");
+            if(!StringUtils.isEmpty(result)){
+                throw new BizException(BizExceptionCode.USING_EXISTS.getCode(),result.toString());
+            }else{
+                getMapper().deleteByPrimaryKey(id);
+                vendorcontactMapper.deleteByFK(id);
+                //删除中间表
+                subledgerMapper.deleteVendor("期初余额", "期初余额", Math.toIntExact(id));
+                //记录LOG
+                messageLogService.delete(generateMsgObj(id, code));
+            }
         }
     }
 

+ 9 - 1
applications/document/document-server/src/main/resources/mapper/CustomerMapper.xml

@@ -391,7 +391,15 @@
   select count(1) from periodsdetail where pd_status=99 and pd_detno=(select DATE_FORMAT(cu_begindate,'%Y%m') from customer where cu_id =#{id})
   and companyId =#{companyId};
   </select>
-
+  <select id="check" parameterMap="checkParamMap" statementType="CALLABLE">
+        CALL SP_LIMITBASE(?, ?, ?, ?)
+    </select>
+  <parameterMap id="checkParamMap" type="java.util.Map">
+    <parameter property="v_type" jdbcType="VARCHAR" mode="IN" />
+    <parameter property="v_id" jdbcType="INTEGER" mode="IN" />
+    <parameter property="v_code" jdbcType="VARCHAR" mode="IN" />
+    <parameter property="v_res" jdbcType="VARCHAR" mode="OUT" />
+  </parameterMap>
 
 
 </mapper>

+ 9 - 0
applications/document/document-server/src/main/resources/mapper/VendorMapper.xml

@@ -477,5 +477,14 @@
         and companyId =#{companyId};
     </select>
 
+    <select id="check" parameterMap="checkParamMap" statementType="CALLABLE">
+        CALL SP_LIMITBASE(?, ?, ?, ?)
+    </select>
+    <parameterMap id="checkParamMap" type="java.util.Map">
+        <parameter property="v_type" jdbcType="VARCHAR" mode="IN" />
+        <parameter property="v_id" jdbcType="INTEGER" mode="IN" />
+        <parameter property="v_code" jdbcType="VARCHAR" mode="IN" />
+        <parameter property="v_res" jdbcType="VARCHAR" mode="OUT" />
+    </parameterMap>
 </mapper>