diff --git a/erp_web/js/pages/manage/supplier.js b/erp_web/js/pages/manage/supplier.js index 8c71d20a..9ba584e5 100644 --- a/erp_web/js/pages/manage/supplier.js +++ b/erp_web/js/pages/manage/supplier.js @@ -179,7 +179,17 @@ if(res && res.code == 200) { $("#searchBtn").click(); } else { - $.messager.alert('删除提示', '删除信息失败,请稍后再试!', 'error'); + if(res && res.code == 601){ + var jsondata={}; + jsondata.ids=supplierTotalInfo[0]; + jsondata.deleteType='2'; + var type='single'; + batDeleteSupplierForceConfirm(res,"/supplier/batchDeleteSupplierByIds",jsondata,type); + }else if(res && res.code == 600){ + $.messager.alert('删除提示', res.msg, 'error'); + }else{ + $.messager.alert('删除提示', '删除信息失败,请稍后再试!', 'error'); + } } }, //此处添加错误处理 @@ -224,7 +234,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'; + batDeleteSupplierForceConfirm(res,"/supplier/batchDeleteSupplierByIds",jsondata,type); + }else if(res && res.code == 600){ + $.messager.alert('删除提示', res.msg, 'error'); + }else{ + $.messager.alert('删除提示', '删除信息失败,请稍后再试!', 'error'); + } } }, //此处添加错误处理 @@ -237,6 +257,38 @@ }); } } + /** + * 确认强制删除 + * */ + function batDeleteSupplierForceConfirm(res,url,jsondata) { + $.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/manage/account.html b/erp_web/pages/manage/account.html index 11508d11..92ce970e 100644 --- a/erp_web/pages/manage/account.html +++ b/erp_web/pages/manage/account.html @@ -238,7 +238,10 @@ var jsondata={}; jsondata.ids=accountTotalInfo[0]; jsondata.deleteType='2'; - batDeleteAccountForceConfirm(res,"/account/batchDeleteAccountByIds",jsondata); + var type='single'; + batDeleteAccountForceConfirm(res,"/account/batchDeleteAccountByIds",jsondata,type); + }else if(res && res.code == 600){ + $.messager.alert('删除提示', res.msg, 'error'); }else{ $.messager.alert('删除提示', '删除结算账户失败,请稍后再试!', 'error'); } @@ -289,7 +292,10 @@ var jsondata={}; jsondata.ids=ids; jsondata.deleteType='2'; - batDeleteAccountForceConfirm(res,"/account/batchDeleteAccountByIds",jsondata); + var type='batch'; + batDeleteAccountForceConfirm(res,"/account/batchDeleteAccountByIds",jsondata,type); + }else if(res && res.code == 600){ + $.messager.alert('删除提示', res.msg, 'error'); }else{ $.messager.alert('删除提示', '删除结算账户失败,请稍后再试!', 'error'); } @@ -308,7 +314,7 @@ /** * 确认强制删除 * */ - function batDeleteAccountForceConfirm(res,url,jsondata) { + function batDeleteAccountForceConfirm(res,url,jsondata,type) { $.messager.confirm('删除确认', res.msg, function (r) { if (r) { $.ajax({ @@ -319,7 +325,12 @@ success: function (res) { if(res && res.code == 200) { $("#searchBtn").click(); - } else { + if(type=='batch'){ + $(":checkbox").attr("checked", false); + } + }else if(res && res.code == 600){ + $.messager.alert('删除提示', res.msg, 'error'); + }else { $.messager.alert('删除提示', '删除结算账户失败,请稍后再试!', 'error'); } }, diff --git a/erp_web/pages/materials/person.html b/erp_web/pages/materials/person.html index 6803f865..252b7523 100644 --- a/erp_web/pages/materials/person.html +++ b/erp_web/pages/materials/person.html @@ -258,7 +258,17 @@ if(res && res.code == 200) { $("#searchBtn").click(); } else { - $.messager.alert('删除提示', '删除经手人信息失败,请稍后再试!', 'error'); + if(res && res.code == 601){ + var jsondata={}; + jsondata.ids=personID; + jsondata.deleteType='2'; + var type='single'; + batDeletePersonForceConfirm(res,"/person/batchDeletePersonByIds",jsondata,type); + }else if(res && res.code == 600){ + $.messager.alert('删除提示', res.msg, 'error'); + }else{ + $.messager.alert('删除提示', '删除经手人信息失败,请稍后再试!', 'error'); + } } }, //此处添加错误处理 @@ -303,7 +313,17 @@ $("#searchBtn").click(); $(":checkbox").attr("checked", false); } else { - $.messager.alert('删除提示', '删除经手人信息失败,请稍后再试!', 'error'); + if(res && res.code == 601){ + var jsondata={}; + jsondata.ids=personID; + jsondata.deleteType='2'; + var type='batch'; + batDeletePersonForceConfirm(res,"/person/batchDeletePersonByIds",jsondata,type); + }else if(res && res.code == 600){ + $.messager.alert('删除提示', res.msg, 'error'); + }else{ + $.messager.alert('删除提示', '删除经手人信息失败,请稍后再试!', 'error'); + } } }, //此处添加错误处理 @@ -316,6 +336,38 @@ }); } } + /** + * 确认强制删除 + * */ + function batDeletePersonForceConfirm(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/PersonController.java b/src/main/java/com/jsh/erp/controller/PersonController.java index 51835b86..6460f737 100644 --- a/src/main/java/com/jsh/erp/controller/PersonController.java +++ b/src/main/java/com/jsh/erp/controller/PersonController.java @@ -2,6 +2,7 @@ package com.jsh.erp.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.BusinessConstants; import com.jsh.erp.constants.ExceptionConstants; import com.jsh.erp.datasource.entities.Person; import com.jsh.erp.exception.BusinessRunTimeException; @@ -133,9 +134,20 @@ public class PersonController { * @return java.lang.Object */ @RequestMapping(value = "/batchDeletePersonByIds") - public Object batchDeletePersonByIds(@RequestParam("ids") String ids) throws Exception { + public Object batchDeletePersonByIds(@RequestParam("ids") String ids,@RequestParam(value="deleteType", + required =false,defaultValue= BusinessConstants.DELETE_TYPE_NORMAL)String deleteType) throws Exception { JSONObject result = ExceptionConstants.standardSuccess(); - int i= personService.batchDeletePersonByIds(ids); + int i=0; + if(BusinessConstants.DELETE_TYPE_NORMAL.equals(deleteType)){ + i= personService.batchDeletePersonByIdsNormal(ids); + }else if(BusinessConstants.DELETE_TYPE_FORCE.equals(deleteType)){ + i= personService.batchDeletePersonByIds(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.PERSON_DELETE_FAILED_CODE,ExceptionConstants.PERSON_DELETE_FAILED_MSG,ids); diff --git a/src/main/java/com/jsh/erp/controller/SupplierController.java b/src/main/java/com/jsh/erp/controller/SupplierController.java index f43d024e..692e3aa6 100644 --- a/src/main/java/com/jsh/erp/controller/SupplierController.java +++ b/src/main/java/com/jsh/erp/controller/SupplierController.java @@ -2,6 +2,7 @@ package com.jsh.erp.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.BusinessConstants; import com.jsh.erp.constants.ExceptionConstants; import com.jsh.erp.datasource.entities.Supplier; import com.jsh.erp.exception.BusinessRunTimeException; @@ -452,9 +453,20 @@ public class SupplierController { * @return java.lang.Object */ @RequestMapping(value = "/batchDeleteSupplierByIds") - public Object batchDeleteSupplierByIds(@RequestParam("ids") String ids) throws Exception { + public Object batchDeleteSupplierByIds(@RequestParam("ids") String ids,@RequestParam(value="deleteType", + required =false,defaultValue= BusinessConstants.DELETE_TYPE_NORMAL)String deleteType) throws Exception { JSONObject result = ExceptionConstants.standardSuccess(); - int i= supplierService.batchDeleteSupplierByIds(ids); + int i=0; + if(BusinessConstants.DELETE_TYPE_NORMAL.equals(deleteType)){ + i= supplierService.batchDeleteSupplierByIdsNormal(ids); + }else if(BusinessConstants.DELETE_TYPE_FORCE.equals(deleteType)){ + i= supplierService.batchDeleteSupplierByIds(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.SUPPLIER_DELETE_FAILED_CODE,ExceptionConstants.SUPPLIER_DELETE_FAILED_MSG,ids); diff --git a/src/main/java/com/jsh/erp/datasource/mappers/AccountHeadMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/AccountHeadMapperEx.java index 53374f76..34494868 100644 --- a/src/main/java/com/jsh/erp/datasource/mappers/AccountHeadMapperEx.java +++ b/src/main/java/com/jsh/erp/datasource/mappers/AccountHeadMapperEx.java @@ -39,4 +39,8 @@ public interface AccountHeadMapperEx { int batchDeleteAccountHeadByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String[] ids); List getAccountHeadListByAccountIds(@Param("accountIds") String[] accountIds); + + List getAccountHeadListByOrganIds(@Param("organIds") String[] organIds); + + List getAccountHeadListByHandsPersonIds(@Param("handsPersonIds") String[] handsPersonIds); } \ No newline at end of file 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 aab6ea3c..ef489843 100644 --- a/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java +++ b/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java @@ -117,4 +117,8 @@ public interface DepotHeadMapperEx { int batchDeleteDepotHeadByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); List getDepotHeadListByAccountIds(@Param("accountIds") String[] accountIds); + + List getDepotHeadListByOrganIds(@Param("organIds") String[] organIds); + + List getDepotHeadListByHandsPersonIds(@Param("handsPersonIds") String[] handsPersonIds); } diff --git a/src/main/java/com/jsh/erp/service/person/PersonService.java b/src/main/java/com/jsh/erp/service/person/PersonService.java index 2876516e..c1b995ab 100644 --- a/src/main/java/com/jsh/erp/service/person/PersonService.java +++ b/src/main/java/com/jsh/erp/service/person/PersonService.java @@ -1,12 +1,15 @@ package com.jsh.erp.service.person; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.jsh.erp.constants.BusinessConstants; -import com.jsh.erp.datasource.entities.Person; -import com.jsh.erp.datasource.entities.PersonExample; -import com.jsh.erp.datasource.entities.User; +import com.jsh.erp.constants.ExceptionConstants; +import com.jsh.erp.datasource.entities.*; +import com.jsh.erp.datasource.mappers.AccountHeadMapperEx; +import com.jsh.erp.datasource.mappers.DepotHeadMapperEx; import com.jsh.erp.datasource.mappers.PersonMapper; import com.jsh.erp.datasource.mappers.PersonMapperEx; +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; @@ -35,6 +38,10 @@ public class PersonService { private UserService userService; @Resource private LogService logService; + @Resource + private AccountHeadMapperEx accountHeadMapperEx; + @Resource + private DepotHeadMapperEx depotHeadMapperEx; public Person getPerson(long id) { return personMapper.selectByPrimaryKey(id); @@ -117,4 +124,52 @@ public class PersonService { String [] idArray=ids.split(","); return personMapperEx.batchDeletePersonByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); } + /** + * create by: qiankunpingtai + * website:https://qiankunpingtai.cn + * description: + * 正常删除,要考虑数据完整性,进行完整性校验 + * create time: 2019/4/10 15:14 + * @Param: ids + * @return int + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeletePersonByIdsNormal(String ids) { + /** + * 校验 + * 1、财务主表 jsh_accounthead + * 2、单据主表 jsh_depothead + * 是否有相关数据 + * */ + int deleteTotal=0; + if(StringUtils.isEmpty(ids)){ + return deleteTotal; + } + String [] idArray=ids.split(","); + /** + * 校验财务主表 jsh_accounthead + * */ + List accountHeadList=accountHeadMapperEx.getAccountHeadListByHandsPersonIds(idArray); + if(accountHeadList!=null&&accountHeadList.size()>0){ + logger.error("异常码[{}],异常提示[{}],参数,HandsPersonIds[{}]", + 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_depothead + * */ + List depotHeadList=depotHeadMapperEx.getDepotHeadListByHandsPersonIds(idArray); + if(depotHeadList!=null&&depotHeadList.size()>0){ + logger.error("异常码[{}],异常提示[{}],参数,HandsPersonIds[{}]", + 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= batchDeletePersonByIds(ids); + return deleteTotal; + } } diff --git a/src/main/java/com/jsh/erp/service/supplier/SupplierService.java b/src/main/java/com/jsh/erp/service/supplier/SupplierService.java index 3706c432..24f06105 100644 --- a/src/main/java/com/jsh/erp/service/supplier/SupplierService.java +++ b/src/main/java/com/jsh/erp/service/supplier/SupplierService.java @@ -1,12 +1,15 @@ package com.jsh.erp.service.supplier; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.jsh.erp.constants.BusinessConstants; -import com.jsh.erp.datasource.entities.Supplier; -import com.jsh.erp.datasource.entities.SupplierExample; -import com.jsh.erp.datasource.entities.User; +import com.jsh.erp.constants.ExceptionConstants; +import com.jsh.erp.datasource.entities.*; +import com.jsh.erp.datasource.mappers.AccountHeadMapperEx; +import com.jsh.erp.datasource.mappers.DepotHeadMapperEx; import com.jsh.erp.datasource.mappers.SupplierMapper; import com.jsh.erp.datasource.mappers.SupplierMapperEx; +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; @@ -39,6 +42,10 @@ public class SupplierService { private LogService logService; @Resource private UserService userService; + @Resource + private AccountHeadMapperEx accountHeadMapperEx; + @Resource + private DepotHeadMapperEx depotHeadMapperEx; public Supplier getSupplier(long id) { return supplierMapper.selectByPrimaryKey(id); @@ -187,4 +194,53 @@ public class SupplierService { String [] idArray=ids.split(","); return supplierMapperEx.batchDeleteSupplierByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); } + /** + * create by: qiankunpingtai + * website:https://qiankunpingtai.cn + * description: + *正常删除,要考虑数据完整性,进行完整性校验 + * create time: 2019/4/10 14:48 + * @Param: ids + * @return int + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteSupplierByIdsNormal(String ids) throws Exception { + /** + * 校验 + * 1、财务主表 jsh_accounthead + * 2、单据主表 jsh_depothead + * 是否有相关数据 + * */ + int deleteTotal=0; + if(StringUtils.isEmpty(ids)){ + return deleteTotal; + } + String [] idArray=ids.split(","); + /** + * 校验财务主表 jsh_accounthead + * */ + List accountHeadList=accountHeadMapperEx.getAccountHeadListByOrganIds(idArray); + if(accountHeadList!=null&&accountHeadList.size()>0){ + logger.error("异常码[{}],异常提示[{}],参数,OrganIds[{}]", + 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_depothead + * */ + List depotHeadList=depotHeadMapperEx.getDepotHeadListByOrganIds(idArray); + if(depotHeadList!=null&&depotHeadList.size()>0){ + logger.error("异常码[{}],异常提示[{}],参数,OrganIds[{}]", + 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= batchDeleteSupplierByIds(ids); + return deleteTotal; + + } } diff --git a/src/main/resources/mapper_xml/AccountHeadMapperEx.xml b/src/main/resources/mapper_xml/AccountHeadMapperEx.xml index a493d204..2583ed86 100644 --- a/src/main/resources/mapper_xml/AccountHeadMapperEx.xml +++ b/src/main/resources/mapper_xml/AccountHeadMapperEx.xml @@ -88,14 +88,26 @@ ) - select from jsh_accounthead where 1=1 - and accountId in ( - - #{accountId} + and organId in ( + + #{organId} + + ) + and ifnull(delete_Flag,'0') !='1' + + + + \ No newline at end of file