From 3f1468bb3a8f2f765edc368a060f1090c6a3d98b Mon Sep 17 00:00:00 2001 From: jlt Date: Thu, 7 Apr 2022 23:17:23 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=AE=8C=E6=88=90=E8=AE=A4=E9=A2=86?= =?UTF-8?q?=E8=8F=9C=E5=9C=B0=E5=92=8C=E6=9B=B4=E6=96=B0=E8=AE=A4=E9=A2=86?= =?UTF-8?q?=E8=8F=9C=E5=9C=B0=E7=9A=84=E5=90=8E=E7=AB=AF=E9=80=BB=E8=BE=91?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E6=AD=A3=E4=B9=8B=E5=89=8D=E7=9A=84=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E3=80=82=202=E3=80=81=E4=BC=98=E5=8C=96=E4=BA=86?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E5=A4=8D=E9=80=89=E6=A1=86=E7=9A=84=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 下一步:确认生效的前后端逻辑。 --- .../impl/FarmerContractServiceImpl.java | 86 ++++++++++++------- .../resources/mapper/csa/FarmerMapper.xml | 2 +- .../resources/mapper/csa/GardenMapper.xml | 5 +- ruoyi-ui/src/views/csa/contract/enter.vue | 49 ++++++----- ruoyi-ui/src/views/csa/contract/index.vue | 10 +-- sql/csa.sql | 67 ++++++++++++--- 6 files changed, 147 insertions(+), 72 deletions(-) diff --git a/private-farm/src/main/java/com/jlt/csa/service/impl/FarmerContractServiceImpl.java b/private-farm/src/main/java/com/jlt/csa/service/impl/FarmerContractServiceImpl.java index e703a27b2..6d9c43947 100644 --- a/private-farm/src/main/java/com/jlt/csa/service/impl/FarmerContractServiceImpl.java +++ b/private-farm/src/main/java/com/jlt/csa/service/impl/FarmerContractServiceImpl.java @@ -13,6 +13,8 @@ import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DictUtils; import com.ruoyi.common.utils.ExceptionUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.jlt.csa.mapper.FarmerContractMapper; @@ -31,6 +33,8 @@ import static com.ruoyi.common.utils.SecurityUtils.getUsername; @Service public class FarmerContractServiceImpl implements IFarmerContractService { + private static final Logger log = LoggerFactory.getLogger(FarmerContractServiceImpl.class); + private FarmerContractMapper farmerContractMapper; private IFarmerService farmerService; private IGardenService gardenService; @@ -83,43 +87,61 @@ public class FarmerContractServiceImpl implements IFarmerContractService throw new RuntimeException("该合约对应的地主信息不存在,无法认领!"); } - // 已审状态的合约 - if (contract.getStatus().equals(valAudited)) { - Garden garden = gardenService.selectGardenById(claim.getGardenId()); + Garden garden = gardenService.selectGardenById(claim.getGardenId()); - if (!garden.getIsSelled().equals("N")) { - // 菜地为售出状态 - throw new RuntimeException("该菜地已被认领,无法再次认领!"); - } else { - if (garden.getFarmerId() != null) { - // 菜地已经有地主信息 - throw new RuntimeException("该菜地已被他人选定,无法认领!"); - } + if (!garden.getIsSelled().equals("N")) { + // 菜地为售出状态 + throw new RuntimeException("该菜地已被认领,无法再次认领!"); + } else { + if (garden.getFarmerId() != null && garden.getFarmerId() != farmer.getFarmerId()) { + // 菜地已经有地主信息 + throw new RuntimeException("该菜地已被他人选定,无法认领!"); } - - // 准备更新的字段 - contract = new FarmerContract(); - contract.setContractId(claim.getContractId()); - contract.setGardenId(claim.getGardenId()); - contract.setStatus(valClaimed); - - garden = new Garden(); - garden.setGardenId(claim.getGardenId()); - garden.setFarmerId(farmer.getFarmerId()); - - farmer = new Farmer(); - farmer.setFarmerId(garden.getFarmerId()); - farmer.setName(claim.getFarmerName()); - farmer.setMobileNumber(claim.getMobileNumber()); - - this.updateFarmerContract(contract); - gardenService.updateGarden(garden); - farmerService.updateFarmer(farmer); } - // 更改已认领但未生效的合约 + /** 已经绑定过菜地,先取消绑定 */ + if (contract.getStatus().equals(valClaimed)) { + /** 只有选定菜地发生更改的时候才进行取消操作 */ + Garden claimedGarden = gardenService.selectGardenById(contract.getGardenId()); + if (claimedGarden.getGardenId().longValue() != claim.getGardenId()) { + if (!claimedGarden.getIsSelled().equals("N")) { + // 菜地为售出状态,不能取消 + throw new RuntimeException("现合约原有菜地的状态不允许解绑!"); + } - return 1; + // 准备更新菜地字段,取消地主关联和菜地名称 + claimedGarden = new Garden(); + claimedGarden.setGardenId(contract.getGardenId()); + claimedGarden.setFarmerId(0L); + claimedGarden.setName(""); + + gardenService.updateGarden(claimedGarden); + } + } + + /** 将合约、菜地、地主信息相关联 */ + // 准备更新的字段 + String status = contract.getStatus().equals(valAudited) ? valClaimed : null; + contract = new FarmerContract(); + contract.setContractId(claim.getContractId()); + contract.setGardenId(claim.getGardenId()); + contract.setStatus(status); + + garden = new Garden(); + garden.setGardenId(claim.getGardenId()); + garden.setFarmerId(farmer.getFarmerId()); + garden.setName(claim.getGardenName()); + + farmer = new Farmer(); + farmer.setFarmerId(garden.getFarmerId()); + farmer.setName(claim.getFarmerName()); + farmer.setMobileNumber(claim.getMobileNumber()); + + this.updateFarmerContract(contract); + gardenService.updateGarden(garden); + farmerService.updateFarmer(farmer); + + return 4; } /** diff --git a/private-farm/src/main/resources/mapper/csa/FarmerMapper.xml b/private-farm/src/main/resources/mapper/csa/FarmerMapper.xml index b35389364..a55261779 100644 --- a/private-farm/src/main/resources/mapper/csa/FarmerMapper.xml +++ b/private-farm/src/main/resources/mapper/csa/FarmerMapper.xml @@ -8,7 +8,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + diff --git a/private-farm/src/main/resources/mapper/csa/GardenMapper.xml b/private-farm/src/main/resources/mapper/csa/GardenMapper.xml index 8bef60531..3d70114c9 100644 --- a/private-farm/src/main/resources/mapper/csa/GardenMapper.xml +++ b/private-farm/src/main/resources/mapper/csa/GardenMapper.xml @@ -110,9 +110,10 @@ zone_id = #{zoneId}, code = #{code}, - name = #{name}, + name = #{name}, m2 = #{m2}, - farmer_id = #{farmerId}, + farmer_id = #{farmerId}, + farmer_id = null, manager_id = #{managerId}, worker_id = #{workerId}, contacter_id = #{contacterId}, diff --git a/ruoyi-ui/src/views/csa/contract/enter.vue b/ruoyi-ui/src/views/csa/contract/enter.vue index 3684add62..e07497d29 100644 --- a/ruoyi-ui/src/views/csa/contract/enter.vue +++ b/ruoyi-ui/src/views/csa/contract/enter.vue @@ -34,21 +34,25 @@ 锁定 + >确认生效 - + + + + + +