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' +