diff --git a/erp_web/pages/manage/inOutItem.html b/erp_web/pages/manage/inOutItem.html
index f61b8880..ce2b1bbe 100644
--- a/erp_web/pages/manage/inOutItem.html
+++ b/erp_web/pages/manage/inOutItem.html
@@ -234,7 +234,17 @@
if(res && res.code == 200) {
$("#searchBtn").click();
} else {
- $.messager.alert('删除提示', '删除收支项目失败,请稍后再试!', 'error');
+ if(res && res.code == 601){
+ var jsondata={};
+ jsondata.ids=inOutItemTotalInfo[0];
+ jsondata.deleteType='2';
+ var type='single';
+ batDeleteInOutItemForceConfirm(res,"/inOutItem/batchDeleteInOutItemByIds",jsondata,type);
+ }else if(res && res.code == 600){
+ $.messager.alert('删除提示', res.msg, 'error');
+ }else{
+ $.messager.alert('删除提示', '删除结算账户失败,请稍后再试!', 'error');
+ }
}
},
//此处添加错误处理
@@ -278,7 +288,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';
+ batDeleteInOutItemForceConfirm(res,"/inOutItem/batchDeleteInOutItemByIds",jsondata,type);
+ }else if(res && res.code == 600){
+ $.messager.alert('删除提示', res.msg, 'error');
+ }else{
+ $.messager.alert('删除提示', '删除结算账户失败,请稍后再试!', 'error');
+ }
}
},
//此处添加错误处理
@@ -291,6 +311,38 @@
});
}
}
+ /**
+ * 确认强制删除
+ * */
+ function batDeleteInOutItemForceConfirm(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/InOutItemController.java b/src/main/java/com/jsh/erp/controller/InOutItemController.java
index cbdb7d95..fc920907 100644
--- a/src/main/java/com/jsh/erp/controller/InOutItemController.java
+++ b/src/main/java/com/jsh/erp/controller/InOutItemController.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.InOutItem;
import com.jsh.erp.exception.BusinessRunTimeException;
@@ -66,9 +67,20 @@ public class InOutItemController {
* @return java.lang.Object
*/
@RequestMapping(value = "/batchDeleteInOutItemByIds")
- public Object batchDeleteInOutItemByIds(@RequestParam("ids") String ids) throws Exception {
+ public Object batchDeleteInOutItemByIds(@RequestParam("ids") String ids,@RequestParam(value="deleteType",
+ required =false,defaultValue= BusinessConstants.DELETE_TYPE_NORMAL)String deleteType) throws Exception {
JSONObject result = ExceptionConstants.standardSuccess();
- int i= inOutItemService.batchDeleteInOutItemByIds(ids);
+ int i=0;
+ if(BusinessConstants.DELETE_TYPE_NORMAL.equals(deleteType)){
+ i= inOutItemService.batchDeleteInOutItemByIdsNormal(ids);
+ }else if(BusinessConstants.DELETE_TYPE_FORCE.equals(deleteType)){
+ i= inOutItemService.batchDeleteInOutItemByIds(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.IN_OUT_ITEM_DELETE_FAILED_CODE,ExceptionConstants.IN_OUT_ITEM_DELETE_FAILED_MSG,ids);
diff --git a/src/main/java/com/jsh/erp/datasource/mappers/AccountItemMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/AccountItemMapperEx.java
index 4628c280..33c0cbfd 100644
--- a/src/main/java/com/jsh/erp/datasource/mappers/AccountItemMapperEx.java
+++ b/src/main/java/com/jsh/erp/datasource/mappers/AccountItemMapperEx.java
@@ -30,4 +30,6 @@ public interface AccountItemMapperEx {
List getAccountItemListByAccountIds(@Param("accountIds") String[] accountIds);
List getAccountItemListByHeaderIds(@Param("headerIds") String[] headerIds);
+
+ List getAccountItemListByInOutItemIds(@Param("inOutItemIds") String[] inOutItemIds);
}
\ No newline at end of file
diff --git a/src/main/java/com/jsh/erp/service/inOutItem/InOutItemService.java b/src/main/java/com/jsh/erp/service/inOutItem/InOutItemService.java
index 79468ab2..4fbd7007 100644
--- a/src/main/java/com/jsh/erp/service/inOutItem/InOutItemService.java
+++ b/src/main/java/com/jsh/erp/service/inOutItem/InOutItemService.java
@@ -1,12 +1,17 @@
package com.jsh.erp.service.inOutItem;
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.AccountItem;
import com.jsh.erp.datasource.entities.InOutItem;
import com.jsh.erp.datasource.entities.InOutItemExample;
import com.jsh.erp.datasource.entities.User;
+import com.jsh.erp.datasource.mappers.AccountItemMapperEx;
import com.jsh.erp.datasource.mappers.InOutItemMapper;
import com.jsh.erp.datasource.mappers.InOutItemMapperEx;
+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 +40,8 @@ public class InOutItemService {
private UserService userService;
@Resource
private LogService logService;
+ @Resource
+ private AccountItemMapperEx accountItemMapperEx;
public InOutItem getInOutItem(long id) {
return inOutItemMapper.selectByPrimaryKey(id);
@@ -105,4 +112,42 @@ public class InOutItemService {
String [] idArray=ids.split(",");
return inOutItemMapperEx.batchDeleteInOutItemByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray);
}
+ /**
+ * create by: qiankunpingtai
+ * website:https://qiankunpingtai.cn
+ * description:
+ * 正常删除,要考虑数据完整性,进行完整性校验
+ * create time: 2019/4/10 16:23
+ * @Param: ids
+ * @return int
+ */
+ @Transactional(value = "transactionManager", rollbackFor = Exception.class)
+ public int batchDeleteInOutItemByIdsNormal(String ids) throws Exception {
+ /**
+ * 校验
+ * 1、财务子表 jsh_accountitem
+ * 是否有相关数据
+ * */
+ int deleteTotal=0;
+ if(StringUtils.isEmpty(ids)){
+ return deleteTotal;
+ }
+ String [] idArray=ids.split(",");
+ /**
+ * 校验财务子表 jsh_accountitem
+ * */
+ List accountItemList=accountItemMapperEx.getAccountItemListByInOutItemIds(idArray);
+ if(accountItemList!=null&&accountItemList.size()>0){
+ logger.error("异常码[{}],异常提示[{}],参数,InOutItemIds[{}]",
+ 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= batchDeleteInOutItemByIds(ids);
+ return deleteTotal;
+
+ }
}
diff --git a/src/main/resources/mapper_xml/AccountItemMapperEx.xml b/src/main/resources/mapper_xml/AccountItemMapperEx.xml
index 517240cb..d4acb20f 100644
--- a/src/main/resources/mapper_xml/AccountItemMapperEx.xml
+++ b/src/main/resources/mapper_xml/AccountItemMapperEx.xml
@@ -84,4 +84,16 @@
)
and ifnull(delete_Flag,'0') !='1'
+
\ No newline at end of file