diff --git a/erp_web/pages/materials/material.html b/erp_web/pages/materials/material.html
index bb52820a..80216199 100644
--- a/erp_web/pages/materials/material.html
+++ b/erp_web/pages/materials/material.html
@@ -780,7 +780,17 @@
if(res && res.code == 200) {
$("#searchBtn").click();
} else {
- $.messager.alert('删除提示', '删除商品信息失败,请稍后再试!', 'error');
+ if(res && res.code == 601){
+ var jsondata={};
+ jsondata.ids=materialID;
+ jsondata.deleteType='2';
+ var type='single';
+ batDeleteMaterialForceConfirm(res,"/material/batchDeleteMaterialByIds",jsondata,type);
+ }else if(res && res.code == 600){
+ $.messager.alert('删除提示', res.msg, 'error');
+ }else{
+ $.messager.alert('删除提示', '删除商品信息异常,请稍后再试!', 'error');
+ }
}
},
//此处添加错误处理
@@ -825,7 +835,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';
+ batDeleteMaterialForceConfirm(res,"/material/batchDeleteMaterialByIds",jsondata,type);
+ }else if(res && res.code == 600){
+ $.messager.alert('删除提示', res.msg, 'error');
+ }else{
+ $.messager.alert('删除提示', '删除商品信息异常,请稍后再试!', 'error');
+ }
}
},
//此处添加错误处理
@@ -838,6 +858,38 @@
});
}
}
+ /**
+ * 确认强制删除
+ * */
+ function batDeleteMaterialForceConfirm(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;
+ }
+ });
+ }
+ });
+ }
//批量启用
function setEnableFun() {
diff --git a/erp_web/pages/materials/person.html b/erp_web/pages/materials/person.html
index 252b7523..22ef2b56 100644
--- a/erp_web/pages/materials/person.html
+++ b/erp_web/pages/materials/person.html
@@ -315,7 +315,7 @@
} else {
if(res && res.code == 601){
var jsondata={};
- jsondata.ids=personID;
+ jsondata.ids=ids;
jsondata.deleteType='2';
var type='batch';
batDeletePersonForceConfirm(res,"/person/batchDeletePersonByIds",jsondata,type);
diff --git a/src/main/java/com/jsh/erp/controller/MaterialController.java b/src/main/java/com/jsh/erp/controller/MaterialController.java
index b09c3812..d536ae82 100644
--- a/src/main/java/com/jsh/erp/controller/MaterialController.java
+++ b/src/main/java/com/jsh/erp/controller/MaterialController.java
@@ -353,9 +353,20 @@ public class MaterialController {
* @return java.lang.Object
*/
@RequestMapping(value = "/batchDeleteMaterialByIds")
- public Object batchDeleteMaterialByIds(@RequestParam("ids") String ids) throws Exception {
+ public Object batchDeleteMaterialByIds(@RequestParam("ids") String ids,@RequestParam(value="deleteType",
+ required =false,defaultValue= BusinessConstants.DELETE_TYPE_NORMAL)String deleteType) throws Exception {
JSONObject result = ExceptionConstants.standardSuccess();
- int i= materialService.batchDeleteMaterialByIds(ids);
+ int i=0;
+ if(BusinessConstants.DELETE_TYPE_NORMAL.equals(deleteType)){
+ i= materialService.batchDeleteMaterialByIdsNormal(ids);
+ }else if(BusinessConstants.DELETE_TYPE_FORCE.equals(deleteType)){
+ i= materialService.batchDeleteMaterialByIds(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.MATERIAL_DELETE_FAILED_CODE,ExceptionConstants.MATERIAL_DELETE_FAILED_MSG,ids);
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 1d8bca29..70e71dbe 100644
--- a/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java
+++ b/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java
@@ -170,4 +170,6 @@ public interface DepotItemMapperEx {
int batchDeleteDepotItemByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]);
List getDepotItemListListByDepotIds(@Param("depotIds") String[] depotIds);
+
+ List getDepotItemListListByMaterialIds(@Param("materialIds") String[] materialIds);
}
diff --git a/src/main/java/com/jsh/erp/service/material/MaterialService.java b/src/main/java/com/jsh/erp/service/material/MaterialService.java
index 6884551a..7644f1d7 100644
--- a/src/main/java/com/jsh/erp/service/material/MaterialService.java
+++ b/src/main/java/com/jsh/erp/service/material/MaterialService.java
@@ -1,10 +1,14 @@
package com.jsh.erp.service.material;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.jsh.erp.constants.BusinessConstants;
+import com.jsh.erp.constants.ExceptionConstants;
import com.jsh.erp.datasource.entities.*;
+import com.jsh.erp.datasource.mappers.DepotItemMapperEx;
import com.jsh.erp.datasource.mappers.MaterialMapper;
import com.jsh.erp.datasource.mappers.MaterialMapperEx;
+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.BaseResponseInfo;
@@ -32,6 +36,8 @@ public class MaterialService {
private LogService logService;
@Resource
private UserService userService;
+ @Resource
+ private DepotItemMapperEx depotItemMapperEx;
public Material getMaterial(long id) {
return materialMapper.selectByPrimaryKey(id);
@@ -217,4 +223,43 @@ public class MaterialService {
String [] idArray=ids.split(",");
return materialMapperEx.batchDeleteMaterialByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray);
}
+ /**
+ * create by: qiankunpingtai
+ * website:https://qiankunpingtai.cn
+ * description:
+ * 正常删除,要考虑数据完整性,进行完整性校验
+ * create time: 2019/4/10 18:00
+ * @Param: ids
+ * @return int
+ */
+ @Transactional(value = "transactionManager", rollbackFor = Exception.class)
+ public int batchDeleteMaterialByIdsNormal(String ids) throws Exception{
+ /**
+ * 校验
+ * 1、单据子表 jsh_depotitem
+ * 是否有相关数据
+ * */
+ int deleteTotal=0;
+ if(StringUtils.isEmpty(ids)){
+ return deleteTotal;
+ }
+ String [] idArray=ids.split(",");
+
+ /**
+ * 校验单据子表 jsh_depotitem
+ * */
+ List depotItemList=depotItemMapperEx.getDepotItemListListByMaterialIds(idArray);
+ if(depotItemList!=null&&depotItemList.size()>0){
+ logger.error("异常码[{}],异常提示[{}],参数,MaterialIds[{}]",
+ 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= batchDeleteMaterialByIds(ids);
+ return deleteTotal;
+
+ }
}
diff --git a/src/main/resources/mapper_xml/DepotItemMapperEx.xml b/src/main/resources/mapper_xml/DepotItemMapperEx.xml
index 8701ea98..1679a69d 100644
--- a/src/main/resources/mapper_xml/DepotItemMapperEx.xml
+++ b/src/main/resources/mapper_xml/DepotItemMapperEx.xml
@@ -423,6 +423,18 @@
)
and ifnull(delete_Flag,'0') !='1'
+