采收及种植历史相关

main
zc 2 years ago
parent 34bd37a5cc
commit f9b7bfcb31
  1. 13
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/cropper/CropperController.java
  2. 2
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/cropper/vo/CropperSaveReqVO.java
  3. 6
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/recoveryrecord/RecoveryRecordController.java
  4. 3
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/recoveryrecord/vo/Recovery.java
  5. 4
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/dal/mysql/growrecord/GrowRecordMapper.java
  6. 2
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/dal/mysql/recoveryrecord/RecoveryRecordMapper.java
  7. 37
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/cropper/CropperServiceImpl.java
  8. 2
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/recoveryrecord/RecoveryRecordService.java
  9. 30
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/recoveryrecord/RecoveryRecordServiceImpl.java
  10. 4
      cjy-module-traceability/cjy-module-traceability-biz/src/main/resources/mapper/agriculturalproduct/AgriculturalProductMapper.xml
  11. 1
      cjy-module-traceability/cjy-module-traceability-biz/src/main/resources/mapper/husbandryrecord/HusbandryRecordMapper.xml
  12. 3
      cjy-module-traceability/cjy-module-traceability-biz/src/main/resources/mapper/recoveryrecord/RecoveryRecordMapper.xml

@ -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<Boolean> updateStatusCropper(@Valid @RequestBody CropperSaveReqVO updateReqVO) {
cropperService.updateCropper(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除农作物信息")
@Parameter(name = "id", description = "编号", required = true)

@ -21,6 +21,8 @@ public class CropperSaveReqVO {
@Schema(description = "产品名称", example = "21084")
private Integer productId;
private String productName;//产品名称
@Schema(description = "产品品种", example = "5303")
private Integer speciesId;

@ -94,9 +94,9 @@ public class RecoveryRecordController {
@PostMapping("/createRecovery")
@Operation(summary = "采收-创建采收记录-农事记录-溯源产品")
public CommonResult<Integer> createRecovery(@Valid @RequestBody Recovery recovery) {
int i = recoveryRecordService.createRecovery(recovery);
return success(i);
public CommonResult<Boolean> createRecovery(@Valid @RequestBody Recovery recovery) {
recoveryRecordService.createRecovery(recovery);
return success(true);
}
}

@ -19,6 +19,9 @@ public class Recovery {
@Schema(description = "农作物id")
private Integer cropperId;
@Schema(description = "地块id")
private Integer blockId;
@Schema(description = "农事类型")
private Integer husbandryId;

@ -30,4 +30,8 @@ public interface GrowRecordMapper extends BaseMapperX<GrowRecordDO> {
.orderByDesc(GrowRecordDO::getId));
}
default GrowRecordDO selectGrowRecordByCropperId(Integer cropperId) {
return selectOne(GrowRecordDO::getCropperId,cropperId);
}
}

@ -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<RecoveryRecordDO> {
.orderByDesc(RecoveryRecordDO::getId));
}
Map<String,Object> selectProduction(Integer cropperId);
}

@ -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<String, Object> 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);
}

@ -52,5 +52,5 @@ public interface RecoveryRecordService {
*/
PageResult<RecoveryRecordDO> getRecoveryRecordPage(RecoveryRecordPageReqVO pageReqVO);
int createRecovery(Recovery recovery);
void createRecovery(Recovery recovery);
}

@ -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<String, Object> 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);
}
}

@ -30,8 +30,8 @@
<if test="reqVO.productName != null and reqVO.productName != ''">AND product_name LIKE concat('%',#{reqVO.productName},'%') </if>
<if test="reqVO.productVariety != null and reqVO.productVariety != ''">AND product_variety = #{reqVO.productVariety}</if>
<if test="reqVO.productStatus != null and reqVO.productStatus != ''">AND product_status = #{reqVO.productStatus}</if>
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
</where>
GROUP BY t1.id
ORDER BY t1.id DESC

@ -39,6 +39,7 @@
WHERE
t1.cropper_id = #{cropperId}
AND t1.batch = #{batch}
AND t1.deleted = 0
ORDER BY
t1.job_time DESC
</select>

@ -8,4 +8,7 @@
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
-->
<select id="selectProduction" resultType="java.util.Map">
SELECT SUM(production) production,COUNT(*) count FROM traceability_recovery_record WHERE cropper_id = #{cropperId} AND deleted = 0
</select>
</mapper>
Loading…
Cancel
Save