diff --git a/erp_web/pages/manage/depot.html b/erp_web/pages/manage/depot.html
index 43a77881..7dcf02d3 100644
--- a/erp_web/pages/manage/depot.html
+++ b/erp_web/pages/manage/depot.html
@@ -264,7 +264,17 @@
if(res && res.code == 200) {
$("#searchBtn").click();
} else {
- $.messager.alert('删除提示', '删除仓库信息失败,请稍后再试!', 'error');
+ if(res && res.code == 601){
+ var jsondata={};
+ jsondata.ids=depotID;
+ jsondata.deleteType='2';
+ var type='single';
+ batDeleteDepotForceConfirm(res,"/depot/batchDeleteDepotByIds",jsondata,type);
+ }else if(res && res.code == 600){
+ $.messager.alert('删除提示', res.msg, 'error');
+ }else{
+ $.messager.alert('删除提示', '删除仓库信息异常,请稍后再试!', 'error');
+ }
}
},
//此处添加错误处理
@@ -308,7 +318,17 @@
$("#searchBtn").click();
$(":checkbox").attr("checked", false);
} else {
- $.messager.alert('删除提示', '删除仓库信息失败,请稍后再试!', 'error');
+ if(res && res.code == 601){
+ var jsondata={};
+ jsondata.ids=ids;
+ jsondata.deleteType='2';
+ var type='batch';
+ batDeleteDepotForceConfirm(res,"/depot/batchDeleteDepotByIds",jsondata,type);
+ }else if(res && res.code == 600){
+ $.messager.alert('删除提示', res.msg, 'error');
+ }else{
+ $.messager.alert('删除提示', '删除仓库信息异常,请稍后再试!', 'error');
+ }
}
},
//此处添加错误处理
@@ -321,6 +341,38 @@
});
}
}
+ /**
+ * 确认强制删除
+ * */
+ function batDeleteDepotForceConfirm(res,url,jsondata,type) {
+ $.messager.confirm('删除确认', res.msg, function (r) {
+ if (r) {
+ $.ajax({
+ type: "post",
+ url: url,
+ dataType: "json",
+ data: (jsondata),
+ success: function (res) {
+ if(res && res.code == 200) {
+ $("#searchBtn").click();
+ if(type=='batch'){
+ $(":checkbox").attr("checked", false);
+ }
+ }else if(res && res.code == 600){
+ $.messager.alert('删除提示', res.msg, 'error');
+ }else {
+ $.messager.alert('删除提示', '删除仓库信息异常,请稍后再试!', 'error');
+ }
+ },
+ //此处添加错误处理
+ error: function () {
+ $.messager.alert('删除提示', '删除仓库信息异常,请稍后再试!', 'error');
+ return;
+ }
+ });
+ }
+ });
+ }
//增加
var url;
diff --git a/src/main/java/com/jsh/erp/controller/DepotController.java b/src/main/java/com/jsh/erp/controller/DepotController.java
index f2be6969..6338420d 100644
--- a/src/main/java/com/jsh/erp/controller/DepotController.java
+++ b/src/main/java/com/jsh/erp/controller/DepotController.java
@@ -185,9 +185,20 @@ public class DepotController {
* @return java.lang.Object
*/
@RequestMapping(value = "/batchDeleteDepotByIds")
- public Object batchDeleteDepotByIds(@RequestParam("ids") String ids) throws Exception {
+ public Object batchDeleteDepotByIds(@RequestParam("ids") String ids,@RequestParam(value="deleteType",
+ required =false,defaultValue=BusinessConstants.DELETE_TYPE_NORMAL)String deleteType) throws Exception {
JSONObject result = ExceptionConstants.standardSuccess();
- int i= depotService.batchDeleteDepotByIds(ids);
+ int i=0;
+ if(BusinessConstants.DELETE_TYPE_NORMAL.equals(deleteType)){
+ i= depotService.batchDeleteDepotByIdsNormal(ids);
+ }else if(BusinessConstants.DELETE_TYPE_FORCE.equals(deleteType)){
+ i= depotService.batchDeleteDepotByIds(ids);
+ }else{
+ logger.error("异常码[{}],异常提示[{}],参数,ids[{}],deleteType[{}]",
+ ExceptionConstants.DELETE_REFUSED_CODE,ExceptionConstants.DELETE_REFUSED_MSG,ids,deleteType);
+ throw new BusinessRunTimeException(ExceptionConstants.DELETE_REFUSED_CODE,
+ ExceptionConstants.DELETE_REFUSED_MSG);
+ }
if(i<1){
logger.error("异常码[{}],异常提示[{}],参数,ids[{}]",
ExceptionConstants.DEPOT_DELETE_FAILED_CODE,ExceptionConstants.DEPOT_DELETE_FAILED_MSG,ids);
diff --git a/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java
index ef489843..1ce76911 100644
--- a/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java
+++ b/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java
@@ -121,4 +121,6 @@ public interface DepotHeadMapperEx {
List getDepotHeadListByOrganIds(@Param("organIds") String[] organIds);
List getDepotHeadListByHandsPersonIds(@Param("handsPersonIds") String[] handsPersonIds);
+
+ List getDepotHeadListByDepotIds(@Param("depotIds") String[] depotIds);
}
diff --git a/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java
index 94125578..1d8bca29 100644
--- a/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java
+++ b/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java
@@ -168,4 +168,6 @@ public interface DepotItemMapperEx {
int batchDeleteDepotItemByDepotHeadIds(@Param("depotheadIds")Long []depotHeadIds);
int batchDeleteDepotItemByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]);
+
+ List getDepotItemListListByDepotIds(@Param("depotIds") String[] depotIds);
}
diff --git a/src/main/java/com/jsh/erp/service/depot/DepotService.java b/src/main/java/com/jsh/erp/service/depot/DepotService.java
index 6e6a2c20..08257030 100644
--- a/src/main/java/com/jsh/erp/service/depot/DepotService.java
+++ b/src/main/java/com/jsh/erp/service/depot/DepotService.java
@@ -1,13 +1,12 @@
package com.jsh.erp.service.depot;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.jsh.erp.constants.BusinessConstants;
-import com.jsh.erp.datasource.entities.Depot;
-import com.jsh.erp.datasource.entities.DepotEx;
-import com.jsh.erp.datasource.entities.DepotExample;
-import com.jsh.erp.datasource.entities.User;
-import com.jsh.erp.datasource.mappers.DepotMapper;
-import com.jsh.erp.datasource.mappers.DepotMapperEx;
+import com.jsh.erp.constants.ExceptionConstants;
+import com.jsh.erp.datasource.entities.*;
+import com.jsh.erp.datasource.mappers.*;
+import com.jsh.erp.exception.BusinessRunTimeException;
import com.jsh.erp.service.log.LogService;
import com.jsh.erp.service.user.UserService;
import com.jsh.erp.utils.StringUtil;
@@ -37,6 +36,10 @@ public class DepotService {
private UserService userService;
@Resource
private LogService logService;
+ @Resource
+ private DepotHeadMapperEx depotHeadMapperEx;
+ @Resource
+ private DepotItemMapperEx depotItemMapperEx;
public Depot getDepot(long id) {
return depotMapper.selectByPrimaryKey(id);
@@ -122,4 +125,54 @@ public class DepotService {
String [] idArray=ids.split(",");
return depotMapperEx.batchDeleteDepotByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray);
}
+ /**
+ * create by: qiankunpingtai
+ * website:https://qiankunpingtai.cn
+ * description:
+ * 正常删除,要考虑数据完整性,进行完整性校验
+ * create time: 2019/4/10 16:52
+ * @Param: ids
+ * @return int
+ */
+ @Transactional(value = "transactionManager", rollbackFor = Exception.class)
+ public int batchDeleteDepotByIdsNormal(String ids) throws Exception {
+ /**
+ * 校验
+ * 1、单据主表 jsh_depothead
+ * 2、单据子表 jsh_depotitem
+ * 是否有相关数据
+ * */
+ int deleteTotal=0;
+ if(StringUtils.isEmpty(ids)){
+ return deleteTotal;
+ }
+ String [] idArray=ids.split(",");
+
+ /**
+ * 校验单据主表 jsh_depothead
+ * */
+ List depotHeadList=depotHeadMapperEx.getDepotHeadListByDepotIds(idArray);
+ if(depotHeadList!=null&&depotHeadList.size()>0){
+ logger.error("异常码[{}],异常提示[{}],参数,DepotIds[{}]",
+ ExceptionConstants.DELETE_FORCE_CONFIRM_CODE,ExceptionConstants.DELETE_FORCE_CONFIRM_MSG,ids);
+ throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE,
+ ExceptionConstants.DELETE_FORCE_CONFIRM_MSG);
+ }
+ /**
+ * 校验单据子表 jsh_depotitem
+ * */
+ List depotItemList=depotItemMapperEx.getDepotItemListListByDepotIds(idArray);
+ if(depotItemList!=null&&depotItemList.size()>0){
+ logger.error("异常码[{}],异常提示[{}],参数,DepotIds[{}]",
+ ExceptionConstants.DELETE_FORCE_CONFIRM_CODE,ExceptionConstants.DELETE_FORCE_CONFIRM_MSG,ids);
+ throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE,
+ ExceptionConstants.DELETE_FORCE_CONFIRM_MSG);
+ }
+ /**
+ * 校验通过执行删除操作
+ * */
+ deleteTotal= batchDeleteDepotByIds(ids);
+ return deleteTotal;
+
+ }
}
diff --git a/src/main/resources/mapper_xml/DepotHeadMapperEx.xml b/src/main/resources/mapper_xml/DepotHeadMapperEx.xml
index bfb03301..a66dbb9e 100644
--- a/src/main/resources/mapper_xml/DepotHeadMapperEx.xml
+++ b/src/main/resources/mapper_xml/DepotHeadMapperEx.xml
@@ -474,5 +474,25 @@
)
and ifnull(delete_Flag,'0') !='1'
+
\ No newline at end of file
diff --git a/src/main/resources/mapper_xml/DepotItemMapperEx.xml b/src/main/resources/mapper_xml/DepotItemMapperEx.xml
index 9633254c..8701ea98 100644
--- a/src/main/resources/mapper_xml/DepotItemMapperEx.xml
+++ b/src/main/resources/mapper_xml/DepotItemMapperEx.xml
@@ -411,6 +411,18 @@
)
+