Commit d7eab8e8 authored by 朱晨阳's avatar 朱晨阳

修改一个农户对应多个场站删除问题

parent 8a58c918
......@@ -34,12 +34,18 @@ public interface PeasantHouseholdMapper extends BaseMapper<PeasantHousehold> {
List<Map<String,Object>> selectUserIsHouse(String telephone);
Integer selectIsAllRevoke(String amosUserId);
Integer selectIsAllRevoke(String peasantHouseholdNo);
void deleteHphByUserId(String userId);
void deletePauByUserId(String userId);
void deleteAliByUserId(String userId);
void deleteHhcByUserId(String userId);
Integer selectSurveyOrNot(String sequenceNbr);
PeasantHousehold selectReview(String sequenceNbr);
Integer selectPowerStationNumber(String amosUserId);
void deleteHphByNo(String peasantHouseholdNo);
void deleteHhcByNo(String peasantHouseholdNo);
}
......@@ -81,19 +81,19 @@ on hygf_document_station.preparation_money_id=hygf_preparation_money.sequence_nb
`user`.MOBILE = #{telephone}
</select>
<select id="selectSurveyOrNot" resultType="Integer">
select survey_or_not from hygf_peasant_household where sequence_nbr = #{sequenceNbr}
<select id="selectReview" resultType="com.yeejoin.amos.boot.module.hygf.api.entity.PeasantHousehold">
select review, amos_user_id from hygf_peasant_household where sequence_nbr = #{sequenceNbr}
</select>
<select id="selectIsAllRevoke" resultType="Integer">
SELECT
count(*) = ( SELECT count(*) FROM hygf_household_contract WHERE project_user_id = #{amosUserId} and initiate_status = '已发起' AND STATUS = '已作废' )
count(*) = ( SELECT count(*) FROM hygf_household_contract WHERE peasant_household_number = #{peasantHouseholdNo} and initiate_status = '已发起' AND STATUS = '已作废' )
FROM
hygf_household_contract
WHERE
project_user_id = #{amosUserId} and initiate_status = '已发起'
peasant_household_number = #{peasantHouseholdNo} and initiate_status = '已发起'
</select>
<select id="deleteHphByUserId">
......@@ -112,4 +112,16 @@ on hygf_document_station.preparation_money_id=hygf_preparation_money.sequence_nb
DELETE FROM hygf_household_contract WHERE project_user_id=#{userId}
</select>
<select id="selectPowerStationNumber" resultType="Integer">
select count(*) from hygf_peasant_household where amos_user_id = #{amosUserId}
</select>
<select id="deleteHphByNo">
DELETE FROM hygf_peasant_household WHERE peasant_household_no=#{peasantHouseholdNo}
</select>
<select id="deleteHhcByNo">
DELETE FROM hygf_household_contract WHERE peasant_household_number=#{peasantHouseholdNo}
</select>
</mapper>
......@@ -283,13 +283,13 @@ public class PeasantHouseholdController extends BaseController {
/**
* 根据sequenceNbr和userId删除用户信息
* sequenceNbr 唯一标识
* @param userId 用户id
* @param peasantHouseholdNo 电站编号
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@DeleteMapping(value = "/{sequenceNbr}/{userId}")
@ApiOperation(httpMethod = "DELETE",value = "根据userId删除用户信息和合同", notes = "根据userId删除用户信息和合同")
public ResponseModel<Boolean> deleteUser(@PathVariable String sequenceNbr, @PathVariable String userId) {
return ResponseHelper.buildResponse(peasantHouseholdServiceImpl.deleteUser(sequenceNbr, userId));
@DeleteMapping(value = "/{sequenceNbr}/{peasantHouseholdNo}")
@ApiOperation(httpMethod = "DELETE",value = "根据场站编号删除用户信息和合同", notes = "根据场站编号删除用户信息和合同")
public ResponseModel<Boolean> deleteUser(@PathVariable String sequenceNbr, @PathVariable String peasantHouseholdNo) {
return ResponseHelper.buildResponse(peasantHouseholdServiceImpl.deleteUser(sequenceNbr, peasantHouseholdNo));
}
}
......@@ -239,7 +239,7 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
List<PeasantHousehold> newRecords = records.stream().map(item -> {
// 查询该条数据能否被删除, 0不能删除, 1可以删除
item.setIsAllRevoke(peasantHouseholdMapper.selectIsAllRevoke(item.getAmosUserId()));
item.setIsAllRevoke(peasantHouseholdMapper.selectIsAllRevoke(item.getPeasantHouseholdNo()));
if(item.getSurveyOrNot() != null){
......@@ -795,37 +795,45 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
}
@Override
public Boolean deleteUser(String sequenceNbr, String userId) {
try {
public Boolean deleteUser(String sequenceNbr, String peasantHouseholdNo) {
// try {
// 根据sequenceNbr获取农户勘察状态
Integer surveyOrNot = peasantHouseholdMapper.selectSurveyOrNot(sequenceNbr);
PeasantHousehold peasantHousehold = peasantHouseholdMapper.selectReview(sequenceNbr);
if(surveyOrNot != 0) {
throw new BadRequest("该用户已勘察, 不允许删除!");
if(peasantHousehold.getReview() != 0) {
throw new BadRequest("该电站已发起流程, 无法删除!");
}
// 查询该条数据能否被删除, 0不能删除, 1可以删除
Integer isAllRevok = peasantHouseholdMapper.selectIsAllRevoke(userId);
// 查询该条数据能否被删除, 0不能删除, 1可以删除
Integer isAllRevok = peasantHouseholdMapper.selectIsAllRevoke(peasantHouseholdNo);
if(isAllRevok != 1) {
throw new BadRequest("该用户有未完成的任务, 不允许删除!");
throw new BadRequest("该用户有未完成的任务, 无法删除!");
}
// 删除hygf_peasant_household表中数据
peasantHouseholdMapper.deleteHphByUserId(userId);
// 删除privilege_agency_user表中数据
peasantHouseholdMapper.deletePauByUserId(userId);
// 删除auth_login_info表中数据
peasantHouseholdMapper.deleteAliByUserId(userId);
// 删除hygf_household_contract表中数据
peasantHouseholdMapper.deleteHhcByUserId(userId);
// 查询当前用户名下的电站数量
Integer powerStationNumber = peasantHouseholdMapper.selectPowerStationNumber(peasantHousehold.getAmosUserId());
if(powerStationNumber > 1) {
// 删除hygf_peasant_household表中数据
peasantHouseholdMapper.deleteHphByNo(peasantHouseholdNo);
// 删除hygf_household_contract表中数据
peasantHouseholdMapper.deleteHhcByNo(peasantHouseholdNo);
}else {
// 删除hygf_peasant_household表中数据
peasantHouseholdMapper.deleteHphByUserId(peasantHousehold.getAmosUserId());
// 删除privilege_agency_user表中数据
peasantHouseholdMapper.deletePauByUserId(peasantHousehold.getAmosUserId());
// 删除auth_login_info表中数据
peasantHouseholdMapper.deleteAliByUserId(peasantHousehold.getAmosUserId());
// 删除hygf_household_contract表中数据
peasantHouseholdMapper.deleteHhcByUserId(peasantHousehold.getAmosUserId());
}
return true;
} catch (Exception e) {
throw new BadRequest("删除失败!" + e.getMessage());
}
// } catch (Exception e) {
// throw new BadRequest("删除失败!" + e.getMessage());
// }
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment