diff --git a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/cropper/CropperController.java b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/cropper/CropperController.java index 5a9d050..a7f3bec 100644 --- a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/cropper/CropperController.java +++ b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/cropper/CropperController.java @@ -1,6 +1,10 @@ package com.cjy.traceability.module.traceability.controller.admin.cropper; +import cn.hutool.core.util.NumberUtil; import com.cjy.traceability.module.traceability.controller.admin.species.vo.SpeciesRespVO; +import com.cjy.traceability.module.traceability.dal.dataobject.growrecord.GrowRecordDO; +import com.cjy.traceability.module.traceability.dal.mysql.growrecord.GrowRecordMapper; +import com.cjy.traceability.module.traceability.dal.mysql.recoveryrecord.RecoveryRecordMapper; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -13,6 +17,7 @@ import javax.validation.constraints.*; import javax.validation.*; import javax.servlet.http.*; import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.*; import java.io.IOException; @@ -55,6 +60,14 @@ public class CropperController { return success(true); } + @PutMapping("/updateStatus") + @Operation(summary = "更新农作物状态") + @PreAuthorize("@ss.hasPermission('traceability:cropper:update')") + public CommonResult updateStatusCropper(@Valid @RequestBody CropperSaveReqVO updateReqVO) { + cropperService.updateCropper(updateReqVO); + return success(true); + } + @DeleteMapping("/delete") @Operation(summary = "删除农作物信息") @Parameter(name = "id", description = "编号", required = true) diff --git a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/cropper/vo/CropperSaveReqVO.java b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/cropper/vo/CropperSaveReqVO.java index 513967f..57a512f 100644 --- a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/cropper/vo/CropperSaveReqVO.java +++ b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/cropper/vo/CropperSaveReqVO.java @@ -21,6 +21,8 @@ public class CropperSaveReqVO { @Schema(description = "产品名称", example = "21084") private Integer productId; + private String productName;//产品名称 + @Schema(description = "产品品种", example = "5303") private Integer speciesId; diff --git a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/recoveryrecord/RecoveryRecordController.java b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/recoveryrecord/RecoveryRecordController.java index e1a239b..6516fe5 100644 --- a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/recoveryrecord/RecoveryRecordController.java +++ b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/recoveryrecord/RecoveryRecordController.java @@ -94,9 +94,9 @@ public class RecoveryRecordController { @PostMapping("/createRecovery") @Operation(summary = "采收-创建采收记录-农事记录-溯源产品") - public CommonResult createRecovery(@Valid @RequestBody Recovery recovery) { - int i = recoveryRecordService.createRecovery(recovery); - return success(i); + public CommonResult createRecovery(@Valid @RequestBody Recovery recovery) { + recoveryRecordService.createRecovery(recovery); + return success(true); } } \ No newline at end of file diff --git a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/recoveryrecord/vo/Recovery.java b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/recoveryrecord/vo/Recovery.java index 5feb28c..ac7d378 100644 --- a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/recoveryrecord/vo/Recovery.java +++ b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/recoveryrecord/vo/Recovery.java @@ -19,6 +19,9 @@ public class Recovery { @Schema(description = "农作物id") private Integer cropperId; + @Schema(description = "地块id") + private Integer blockId; + @Schema(description = "农事类型") private Integer husbandryId; diff --git a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/dal/mysql/growrecord/GrowRecordMapper.java b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/dal/mysql/growrecord/GrowRecordMapper.java index 32b1285..a57247f 100644 --- a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/dal/mysql/growrecord/GrowRecordMapper.java +++ b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/dal/mysql/growrecord/GrowRecordMapper.java @@ -30,4 +30,8 @@ public interface GrowRecordMapper extends BaseMapperX { .orderByDesc(GrowRecordDO::getId)); } + default GrowRecordDO selectGrowRecordByCropperId(Integer cropperId) { + return selectOne(GrowRecordDO::getCropperId,cropperId); + } + } \ No newline at end of file diff --git a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/dal/mysql/recoveryrecord/RecoveryRecordMapper.java b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/dal/mysql/recoveryrecord/RecoveryRecordMapper.java index 4ec4c70..2e65541 100644 --- a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/dal/mysql/recoveryrecord/RecoveryRecordMapper.java +++ b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/dal/mysql/recoveryrecord/RecoveryRecordMapper.java @@ -1,5 +1,6 @@ package com.cjy.traceability.module.traceability.dal.mysql.recoveryrecord; +import java.math.BigDecimal; import java.util.*; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -29,4 +30,5 @@ public interface RecoveryRecordMapper extends BaseMapperX { .orderByDesc(RecoveryRecordDO::getId)); } + Map selectProduction(Integer cropperId); } \ No newline at end of file diff --git a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/cropper/CropperServiceImpl.java b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/cropper/CropperServiceImpl.java index f448e2d..6540a4f 100644 --- a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/cropper/CropperServiceImpl.java +++ b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/cropper/CropperServiceImpl.java @@ -3,12 +3,20 @@ package com.cjy.traceability.module.traceability.service.cropper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.cjy.traceability.module.traceability.controller.admin.agriculturalproduct.vo.AgriculturalProductRespVO; +import com.cjy.traceability.module.traceability.controller.admin.growrecord.vo.GrowRecordSaveReqVO; +import com.cjy.traceability.module.traceability.controller.admin.husbandryrecord.vo.HusbandryRecordSaveReqVO; +import com.cjy.traceability.module.traceability.dal.dataobject.growrecord.GrowRecordDO; +import com.cjy.traceability.module.traceability.dal.dataobject.husbandryrecord.HusbandryRecordDO; +import com.cjy.traceability.module.traceability.dal.mysql.growrecord.GrowRecordMapper; +import com.cjy.traceability.module.traceability.dal.mysql.husbandryrecord.HusbandryRecordMapper; +import com.cjy.traceability.module.traceability.dal.mysql.recoveryrecord.RecoveryRecordMapper; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.*; import com.cjy.traceability.module.traceability.controller.admin.cropper.vo.*; import com.cjy.traceability.module.traceability.dal.dataobject.cropper.CropperDO; @@ -32,13 +40,28 @@ public class CropperServiceImpl implements CropperService { @Resource private CropperMapper cropperMapper; + @Resource + private HusbandryRecordMapper husbandryRecordMapper; + @Resource + private RecoveryRecordMapper recoveryRecordMapper; @Override public Integer createCropper(CropperSaveReqVO createReqVO) { // 插入 CropperDO cropper = BeanUtils.toBean(createReqVO, CropperDO.class); cropperMapper.insert(cropper); - // 返回 + //添加农事记录 + HusbandryRecordSaveReqVO createHusbandryRecordVO = new HusbandryRecordSaveReqVO(); + createHusbandryRecordVO.setCropperId(cropper.getId()); + createHusbandryRecordVO.setBatch(cropper.getCurrentBatch()); + createHusbandryRecordVO.setProductName(createReqVO.getProductName()); + createHusbandryRecordVO.setHusbandryId(1);//在农事表中需要将“种植”固定为1id,只能修改名称,不能删除 + createHusbandryRecordVO.setJobWay(cropper.getJobWay()); + createHusbandryRecordVO.setJobTime(cropper.getPlantingTime()); + createHusbandryRecordVO.setOperator(cropper.getCreator()); + HusbandryRecordDO husbandryRecord = BeanUtils.toBean(createHusbandryRecordVO, HusbandryRecordDO.class); + husbandryRecordMapper.insert(husbandryRecord); + return cropper.getId(); } @@ -48,6 +71,18 @@ public class CropperServiceImpl implements CropperService { validateCropperExists(updateReqVO.getId()); // 更新 CropperDO updateObj = BeanUtils.toBean(updateReqVO, CropperDO.class); + + CropperDO cropper = cropperMapper.selectById(updateReqVO.getId()); + Map objectMap = recoveryRecordMapper.selectProduction(updateReqVO.getId()); + GrowRecordDO growRecordDO = new GrowRecordDO(); + growRecordDO.setBlockId(updateReqVO.getBlockId()); + growRecordDO.setCropperId(updateReqVO.getId()); + growRecordDO.setProductName(updateReqVO.getProductName()); + growRecordDO.setPlantTime(cropper.getPlantingTime()); + growRecordDO.setEndTime(LocalDateTime.now()); + growRecordDO.setHarvestNum(Integer.parseInt(objectMap.get("count").toString())); + growRecordDO.setProduction(BigDecimal.valueOf(Double.parseDouble(objectMap.get("production").toString()))); + cropperMapper.updateById(updateObj); } diff --git a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/recoveryrecord/RecoveryRecordService.java b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/recoveryrecord/RecoveryRecordService.java index 932690b..09cc498 100644 --- a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/recoveryrecord/RecoveryRecordService.java +++ b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/recoveryrecord/RecoveryRecordService.java @@ -52,5 +52,5 @@ public interface RecoveryRecordService { */ PageResult getRecoveryRecordPage(RecoveryRecordPageReqVO pageReqVO); - int createRecovery(Recovery recovery); + void createRecovery(Recovery recovery); } \ No newline at end of file diff --git a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/recoveryrecord/RecoveryRecordServiceImpl.java b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/recoveryrecord/RecoveryRecordServiceImpl.java index 57d9085..06331d8 100644 --- a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/recoveryrecord/RecoveryRecordServiceImpl.java +++ b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/recoveryrecord/RecoveryRecordServiceImpl.java @@ -1,21 +1,28 @@ package com.cjy.traceability.module.traceability.service.recoveryrecord; +import cn.hutool.core.util.NumberUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.cjy.traceability.module.traceability.controller.admin.cropper.vo.CropperRespVO; import com.cjy.traceability.module.traceability.controller.admin.cropper.vo.CropperSaveReqVO; +import com.cjy.traceability.module.traceability.controller.admin.growrecord.vo.GrowRecordSaveReqVO; import com.cjy.traceability.module.traceability.controller.admin.husbandryrecord.vo.HusbandryRecordSaveReqVO; import com.cjy.traceability.module.traceability.controller.admin.product.vo.ProductSaveReqVO; +import com.cjy.traceability.module.traceability.dal.dataobject.cropper.CropperDO; +import com.cjy.traceability.module.traceability.dal.dataobject.growrecord.GrowRecordDO; import com.cjy.traceability.module.traceability.dal.dataobject.product.ProductDO; +import com.cjy.traceability.module.traceability.dal.mysql.growrecord.GrowRecordMapper; import com.cjy.traceability.module.traceability.dal.mysql.materials.MaterialsMapper; import com.cjy.traceability.module.traceability.dal.mysql.product.ProductMapper; import com.cjy.traceability.module.traceability.service.cropper.CropperService; import com.cjy.traceability.module.traceability.service.husbandryrecord.HusbandryRecordService; +import com.cjy.traceability.module.traceability.utils.TraceabilityCodeUtil; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.*; import com.cjy.traceability.module.traceability.controller.admin.recoveryrecord.vo.*; import com.cjy.traceability.module.traceability.dal.dataobject.recoveryrecord.RecoveryRecordDO; @@ -45,6 +52,8 @@ public class RecoveryRecordServiceImpl implements RecoveryRecordService { private ProductMapper productMapper; @Resource private CropperService cropperService; + @Resource + private GrowRecordMapper growRecordMapper; @Override public Integer createRecoveryRecord(RecoveryRecordSaveReqVO createReqVO) { @@ -89,7 +98,7 @@ public class RecoveryRecordServiceImpl implements RecoveryRecordService { } @Override - public int createRecovery(Recovery recovery) { + public void createRecovery(Recovery recovery) { //添加农事记录 HusbandryRecordSaveReqVO createHusbandryRecordVO = new HusbandryRecordSaveReqVO(); createHusbandryRecordVO.setBatch(recovery.getBatch()); @@ -134,10 +143,10 @@ public class RecoveryRecordServiceImpl implements RecoveryRecordService { createProductVO.setHusbandryImage(recovery.getHusbandryImage()); createProductVO.setInventoryProduction(recovery.getProduction()); createProductVO.setHusbandryNotes(recovery.getHusbandryNotes()); -// createProductVO.setTraceabilityCode();//溯源码 + createProductVO.setTraceabilityCode(TraceabilityCodeUtil.generateTraceabilityCode("1"));//溯源码 ProductDO product = BeanUtils.toBean(createProductVO, ProductDO.class); - product.setSourceType(2); + product.setSourceType(1); productMapper.insert(product); //如果有下一批次,农作物的当前批次+1 @@ -151,9 +160,20 @@ public class RecoveryRecordServiceImpl implements RecoveryRecordService { updateReqVO.setId(recovery.getCropperId()); updateReqVO.setPlantEnd(2); cropperService.updateCropper(updateReqVO); - } - return 0; + CropperDO cropper = cropperService.getCropper(recovery.getCropperId()); + Map objectMap = recoveryRecordMapper.selectProduction(recovery.getCropperId()); + GrowRecordDO growRecordDO = new GrowRecordDO(); + growRecordDO.setBlockId(recovery.getBlockId()); + growRecordDO.setCropperId(recovery.getCropperId()); + growRecordDO.setProductName(recovery.getProductName()); + growRecordDO.setPlantTime(cropper.getPlantingTime()); + growRecordDO.setEndTime(recovery.getJobTime()); + growRecordDO.setHarvestNum(Integer.parseInt(objectMap.get("count").toString())); + growRecordDO.setProduction(BigDecimal.valueOf(Double.parseDouble(objectMap.get("production").toString()))); + growRecordMapper.insert(growRecordDO); + + } } diff --git a/cjy-module-traceability/cjy-module-traceability-biz/src/main/resources/mapper/agriculturalproduct/AgriculturalProductMapper.xml b/cjy-module-traceability/cjy-module-traceability-biz/src/main/resources/mapper/agriculturalproduct/AgriculturalProductMapper.xml index 7aec652..e758763 100644 --- a/cjy-module-traceability/cjy-module-traceability-biz/src/main/resources/mapper/agriculturalproduct/AgriculturalProductMapper.xml +++ b/cjy-module-traceability/cjy-module-traceability-biz/src/main/resources/mapper/agriculturalproduct/AgriculturalProductMapper.xml @@ -30,8 +30,8 @@ AND product_name LIKE concat('%',#{reqVO.productName},'%') AND product_variety = #{reqVO.productVariety} AND product_status = #{reqVO.productStatus} - AND ( t1.deleted, t2.deleted, t3.deleted ) IN ( ( 0, 0, 0 ) ) - AND ( t1.product_status, t2.variety_status, t3.species_status ) IN ( ( 1, 1, 1 ) ) + AND t1.deleted = 0 + AND t1.product_status = 0 GROUP BY t1.id ORDER BY t1.id DESC diff --git a/cjy-module-traceability/cjy-module-traceability-biz/src/main/resources/mapper/husbandryrecord/HusbandryRecordMapper.xml b/cjy-module-traceability/cjy-module-traceability-biz/src/main/resources/mapper/husbandryrecord/HusbandryRecordMapper.xml index a250628..ada6fb3 100644 --- a/cjy-module-traceability/cjy-module-traceability-biz/src/main/resources/mapper/husbandryrecord/HusbandryRecordMapper.xml +++ b/cjy-module-traceability/cjy-module-traceability-biz/src/main/resources/mapper/husbandryrecord/HusbandryRecordMapper.xml @@ -39,6 +39,7 @@ WHERE t1.cropper_id = #{cropperId} AND t1.batch = #{batch} + AND t1.deleted = 0 ORDER BY t1.job_time DESC diff --git a/cjy-module-traceability/cjy-module-traceability-biz/src/main/resources/mapper/recoveryrecord/RecoveryRecordMapper.xml b/cjy-module-traceability/cjy-module-traceability-biz/src/main/resources/mapper/recoveryrecord/RecoveryRecordMapper.xml index 38d0bc2..b6a8455 100644 --- a/cjy-module-traceability/cjy-module-traceability-biz/src/main/resources/mapper/recoveryrecord/RecoveryRecordMapper.xml +++ b/cjy-module-traceability/cjy-module-traceability-biz/src/main/resources/mapper/recoveryrecord/RecoveryRecordMapper.xml @@ -8,4 +8,7 @@ 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> + \ No newline at end of file