diff --git a/src/com/engine/salary/biz/SISchemeBiz.java b/src/com/engine/salary/biz/SISchemeBiz.java index 44657d430..c6a05f62e 100644 --- a/src/com/engine/salary/biz/SISchemeBiz.java +++ b/src/com/engine/salary/biz/SISchemeBiz.java @@ -1,5 +1,6 @@ package com.engine.salary.biz; +`import com.api.formmode.mybatis.util.SqlProxyHandle; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.encrypt.AESEncryptUtil; import com.engine.salary.encrypt.sischeme.InsuranceSchemeDetailPOEncrypt; @@ -15,6 +16,8 @@ import com.engine.salary.entity.sischeme.vo.InsuranceSchemeFormVO; import com.engine.salary.enums.sicategory.*; import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.siaccount.InsuranceAccountDetailMapper; +import com.engine.salary.mapper.siaccount.SIAccountUtilMapper; import com.engine.salary.mapper.sicategory.ICategoryMapper; import com.engine.salary.mapper.sischeme.InsuranceSchemeDetailMapper; import com.engine.salary.mapper.sischeme.InsuranceSchemeMapper; @@ -37,9 +40,11 @@ import java.util.stream.Collectors; * @Date 2022/3/7 * @Version V1.0 **/ -public class SISchemeBiz { - +public class SISchemeBiz { + private SIAccountUtilMapper getSIAccountUtilMapper() { + return SqlProxyHandle.getProxy(SIAccountUtilMapper.class); + } /** * 获取社保方案 * @param id @@ -441,4 +446,24 @@ public class item.setLowerLimit(AESEncryptUtil.decrypt(item.getLowerLimit())); return item; } + public int checkBeforeDeleteSocialscheme(Map params){ + return getSIAccountUtilMapper().checkBeforeDeleteSocialscheme((Collection)params.get("ids")).get(0).getNum(); + } + + public void deleteSocialscheme(Map params){ + SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); + try { + + InsuranceSchemeDetailMapper insuranceSchemeDetailMapper = sqlSession.getMapper(InsuranceSchemeDetailMapper.class); + InsuranceSchemeMapper insuranceSchemeMapper = sqlSession.getMapper(InsuranceSchemeMapper.class); + insuranceSchemeMapper.deleteByIds((Collection)params.get("ids")); + insuranceSchemeDetailMapper.deleteByIds((Collection)params.get("ids")); + sqlSession.commit(); + }finally { + sqlSession.close(); + } + } + + + } diff --git a/src/com/engine/salary/cmd/sischeme/SISchemeDeleteCmd.java b/src/com/engine/salary/cmd/sischeme/SISchemeDeleteCmd.java index fa981afe7..6fb368f4c 100644 --- a/src/com/engine/salary/cmd/sischeme/SISchemeDeleteCmd.java +++ b/src/com/engine/salary/cmd/sischeme/SISchemeDeleteCmd.java @@ -40,6 +40,11 @@ public class SISchemeDeleteCmd extends AbstractCommonCommand throw new SalaryRunTimeException("参数错误"); } SISchemeBiz siSchemeBiz = new SISchemeBiz(); + int num = siSchemeBiz.checkBeforeDeleteSocialscheme(params); + if (num > 0){ + throw new SalaryRunTimeException("该社保福利方案已被使用"); + } + siSchemeBiz.deleteSocialscheme(params); return apidatas; } diff --git a/src/com/engine/salary/entity/sischeme/param/InsuranceSchemeReqParam.java b/src/com/engine/salary/entity/sischeme/param/InsuranceSchemeReqParam.java index 2ac4b9efe..b4df38ac3 100644 --- a/src/com/engine/salary/entity/sischeme/param/InsuranceSchemeReqParam.java +++ b/src/com/engine/salary/entity/sischeme/param/InsuranceSchemeReqParam.java @@ -34,4 +34,6 @@ public class InsuranceSchemeReqParam { * 福利方案明细 */ private List insuranceSchemeDetailList; + + private List ids; } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/siaccount/SIAccountUtilMapper.java b/src/com/engine/salary/mapper/siaccount/SIAccountUtilMapper.java index 49451f2b1..076b0a94e 100644 --- a/src/com/engine/salary/mapper/siaccount/SIAccountUtilMapper.java +++ b/src/com/engine/salary/mapper/siaccount/SIAccountUtilMapper.java @@ -1,10 +1,14 @@ package com.engine.salary.mapper.siaccount; import com.engine.salary.entity.siaccount.dto.SIAccountUtilDTO; +import org.apache.ibatis.annotations.Param; +import java.util.Collection; import java.util.List; public interface SIAccountUtilMapper { List checkIfBusinessaccounting(Long id); + + List checkBeforeDeleteSocialscheme(@Param("ids") Collection id); } diff --git a/src/com/engine/salary/mapper/siaccount/SIAccountUtilMapper.xml b/src/com/engine/salary/mapper/siaccount/SIAccountUtilMapper.xml index 4abc1b1db..786db2b2c 100644 --- a/src/com/engine/salary/mapper/siaccount/SIAccountUtilMapper.xml +++ b/src/com/engine/salary/mapper/siaccount/SIAccountUtilMapper.xml @@ -20,4 +20,16 @@ AND c.delete_type = 0 AND c.status != 1 + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.java b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.java index 68992ec31..9134813af 100644 --- a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.java +++ b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.java @@ -69,4 +69,6 @@ public interface InsuranceSchemeDetailMapper { List queryInsuranceSchemeDetailList(@Param("primaryId") Long primaryId, @Param("isPayment") Integer isPayment); + void deleteByIds(@Param("ids")Collection ids); + } diff --git a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.xml b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.xml index d6a55eb4d..2f63040a3 100644 --- a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.xml +++ b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.xml @@ -226,5 +226,15 @@ AND delete_type = 0 + + UPDATE + hrsa_scheme_detail + SET delete_type = 1 + WHERE primary_id IN + + #{id} + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeMapper.java b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeMapper.java index ce7ea7378..5ea511304 100644 --- a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeMapper.java +++ b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeMapper.java @@ -3,6 +3,7 @@ package com.engine.salary.mapper.sischeme; import com.engine.salary.entity.sischeme.po.InsuranceSchemePO; import org.apache.ibatis.annotations.Param; +import java.util.Collection; import java.util.List; /** @@ -60,4 +61,6 @@ public interface InsuranceSchemeMapper { List listByWelfareType(@Param("welfareType")Integer welfareType); + + void deleteByIds(@Param("ids")Collection ids); } diff --git a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeMapper.xml b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeMapper.xml index 1f2d011c2..c1c08c17e 100644 --- a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeMapper.xml +++ b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeMapper.xml @@ -160,5 +160,14 @@ order by id desc + + + UPDATE hrsa_social_security_scheme + SET delete_type=1 + WHERE id IN + + #{id} + + \ No newline at end of file diff --git a/src/com/engine/salary/web/SISchemeController.java b/src/com/engine/salary/web/SISchemeController.java index 5736e372a..49aea2b19 100644 --- a/src/com/engine/salary/web/SISchemeController.java +++ b/src/com/engine/salary/web/SISchemeController.java @@ -145,16 +145,16 @@ public class SISchemeController { * 删除(接口中暂无) * @param request * @param response - * @param ids + * @param insuranceSchemeReqParam * @return */ @POST @Path("/delete") @Produces(MediaType.APPLICATION_JSON) - public String deleteTaxRate(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Collection ids) { + public String deleteTaxRate(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody InsuranceSchemeReqParam insuranceSchemeReqParam) { User user = HrmUserVarify.getUser(request, response); Map map = ParamUtil.request2Map(request); - map.put("ids",ids); + map.put("ids",insuranceSchemeReqParam.getIds()); return new ResponseResult< Map, Map>(user).run(getService(user)::delete,map); }