From 7342c944e24f884a2ef7826bd6c9e0442b06d2a7 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Wed, 01 Jun 2022 17:18:09 +0800
Subject: [PATCH] 农事操作新增农产品绑定,采收修改,农产品种植修改,新增根据地块查询农产品
---
src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml | 7 ++
src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.java | 7 ++
src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java | 13 ++++
src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.java | 9 +++
src/main/java/org/springblade/modules/recovery/service/RecoveryService.java | 7 ++
src/main/java/org/springblade/modules/farmplant/service/FarmPlantService.java | 11 +++
src/main/java/org/springblade/modules/recovery/controller/RecoveryController.java | 4 +
src/main/java/org/springblade/modules/recovery/entity/Recovery.java | 5 -
src/main/java/org/springblade/modules/traceability/mapper/TraceabilityMapper.xml | 5 +
src/main/java/org/springblade/modules/farmplant/service/impl/FarmPlantServiceImpl.java | 13 ++++
src/main/java/org/springblade/modules/traceability/entity/Traceability.java | 5 +
src/main/java/org/springblade/modules/recovery/service/impl/RecoveryServiceImpl.java | 10 +++
src/main/java/org/springblade/modules/farmplant/controller/StrainController.java | 5 +
src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.xml | 6 ++
src/main/java/org/springblade/modules/farm/entity/FarmingRecord.java | 5 +
src/main/java/org/springblade/modules/traceability/controller/TraceabilityController.java | 36 ++++++++++++
16 files changed, 141 insertions(+), 7 deletions(-)
diff --git a/src/main/java/org/springblade/modules/farm/entity/FarmingRecord.java b/src/main/java/org/springblade/modules/farm/entity/FarmingRecord.java
index e50f524..a016dea 100644
--- a/src/main/java/org/springblade/modules/farm/entity/FarmingRecord.java
+++ b/src/main/java/org/springblade/modules/farm/entity/FarmingRecord.java
@@ -77,4 +77,9 @@
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
+ /**
+ * 农产品id
+ */
+ private Integer strainId;
+
}
diff --git a/src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java b/src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java
index b77b25e..d9a7a55 100644
--- a/src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java
+++ b/src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java
@@ -32,12 +32,15 @@
import org.springblade.modules.farmplant.entity.FarmPlant;
import org.springblade.modules.farmplant.service.FarmPlantService;
import org.springblade.modules.farmplant.vo.FarmPlantVO;
+import org.springblade.modules.farmplant.vo.StrainVO;
import org.springblade.modules.lang.entity.Land;
import org.springblade.modules.lang.service.ILandService;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
+import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@@ -197,4 +200,14 @@
return R.data(farmplantService.getFarmPlantStatistics(Condition.getPage(query),farmPlantVO));
}
+ /**
+ * 农产品列表
+ * @param farm 农产品对象
+ * @return
+ */
+ @GetMapping("/strain-tree")
+ public R strainTree(FarmPlantVO farm){
+ return R.data(farmplantService.strainTree(farm));
+ }
+
}
diff --git a/src/main/java/org/springblade/modules/farmplant/controller/StrainController.java b/src/main/java/org/springblade/modules/farmplant/controller/StrainController.java
index 8136b65..7a808ee 100644
--- a/src/main/java/org/springblade/modules/farmplant/controller/StrainController.java
+++ b/src/main/java/org/springblade/modules/farmplant/controller/StrainController.java
@@ -105,6 +105,11 @@
return R.status(strainService.removeByIds(Func.toLongList(ids)));
}
+ /**
+ * 农产品列表
+ * @param strain
+ * @return
+ */
@GetMapping("/strain-tree")
public R strainTree(StrainVO strain){
return R.data(strainService.strainTree(strain));
diff --git a/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.java b/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.java
index e4a4b24..5fba690 100644
--- a/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.java
+++ b/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.java
@@ -4,7 +4,9 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.modules.farmplant.entity.FarmPlant;
+import org.springblade.modules.farmplant.entity.Strain;
import org.springblade.modules.farmplant.vo.FarmPlantVO;
+import org.springblade.modules.farmplant.vo.StrainVO;
import java.util.List;
@@ -31,4 +33,11 @@
* @return
*/
List<FarmPlantVO> getFarmPlantStatistics(@Param("page") IPage<FarmPlantVO> page,@Param("farmPlant") FarmPlantVO farm);
+
+ /**
+ * 农产品列表
+ * @param farm 农产品对象
+ * @return
+ */
+ List<Strain> strainTree(@Param("farm") FarmPlantVO farm);
}
diff --git a/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml b/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml
index eff9b65..406c6df 100644
--- a/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml
+++ b/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml
@@ -52,4 +52,11 @@
</if>
group by sfp.strain_id,strain_name,land_unit
</select>
+
+ <!--已种植农产品列表-->
+ <select id="strainTree" resultType="org.springblade.modules.farmplant.entity.Strain">
+ select ss.id,ss.strain_name strainName from sys_farm_plant sfp
+ left join sys_strain ss on ss.id = sfp.strain_id
+ where sfp.status = "1" and sfp.land_id = #{farm.landId}
+ </select>
</mapper>
diff --git a/src/main/java/org/springblade/modules/farmplant/service/FarmPlantService.java b/src/main/java/org/springblade/modules/farmplant/service/FarmPlantService.java
index 559a7b2..3463e9a 100644
--- a/src/main/java/org/springblade/modules/farmplant/service/FarmPlantService.java
+++ b/src/main/java/org/springblade/modules/farmplant/service/FarmPlantService.java
@@ -4,7 +4,11 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.farmplant.entity.FarmPlant;
+import org.springblade.modules.farmplant.entity.Strain;
import org.springblade.modules.farmplant.vo.FarmPlantVO;
+import org.springblade.modules.farmplant.vo.StrainVO;
+
+import java.util.List;
/**
* 农场养殖记录表服务类
@@ -29,4 +33,11 @@
* @return
*/
IPage<FarmPlantVO> getFarmPlantStatistics(IPage<FarmPlantVO> page,FarmPlantVO farmPlantVO);
+
+ /**
+ * 农产品列表
+ * @param farm 农产品对象
+ * @return
+ */
+ List<Strain> strainTree(FarmPlantVO farm);
}
diff --git a/src/main/java/org/springblade/modules/farmplant/service/impl/FarmPlantServiceImpl.java b/src/main/java/org/springblade/modules/farmplant/service/impl/FarmPlantServiceImpl.java
index ddab157..346c179 100644
--- a/src/main/java/org/springblade/modules/farmplant/service/impl/FarmPlantServiceImpl.java
+++ b/src/main/java/org/springblade/modules/farmplant/service/impl/FarmPlantServiceImpl.java
@@ -2,9 +2,11 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.modules.farmplant.entity.FarmPlant;
+import org.springblade.modules.farmplant.entity.Strain;
import org.springblade.modules.farmplant.mapper.FarmPlantMapper;
import org.springblade.modules.farmplant.service.FarmPlantService;
import org.springblade.modules.farmplant.vo.FarmPlantVO;
+import org.springblade.modules.farmplant.vo.StrainVO;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
@@ -62,4 +64,15 @@
});
return page.setRecords(farmPlantVOS);
}
+
+
+ /**
+ * 农产品列表
+ * @param farm 农产品对象
+ * @return
+ */
+ @Override
+ public List<Strain> strainTree(FarmPlantVO farm) {
+ return baseMapper.strainTree(farm);
+ }
}
diff --git a/src/main/java/org/springblade/modules/recovery/controller/RecoveryController.java b/src/main/java/org/springblade/modules/recovery/controller/RecoveryController.java
index dfbeeaa..eed9c82 100644
--- a/src/main/java/org/springblade/modules/recovery/controller/RecoveryController.java
+++ b/src/main/java/org/springblade/modules/recovery/controller/RecoveryController.java
@@ -26,6 +26,8 @@
import javax.validation.Valid;
import java.math.BigDecimal;
+import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
import java.util.Date;
/**
@@ -88,6 +90,7 @@
@Transactional(rollbackFor = Exception.class)
public R save(@Valid @RequestBody Recovery recovery) {
recovery.setCreateTime(new Date());
+ //新增
boolean save = recoveryService.save(recovery);
if (save){
//同时生成农事记录和库存记录
@@ -136,6 +139,7 @@
return R.status(save);
}
+
/**
* double 相加
* @param d1
diff --git a/src/main/java/org/springblade/modules/recovery/entity/Recovery.java b/src/main/java/org/springblade/modules/recovery/entity/Recovery.java
index 02a70bf..af0d347 100644
--- a/src/main/java/org/springblade/modules/recovery/entity/Recovery.java
+++ b/src/main/java/org/springblade/modules/recovery/entity/Recovery.java
@@ -81,9 +81,4 @@
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
- /**
- * 溯源码编号
- */
- private String code;
-
}
diff --git a/src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.java b/src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.java
index 39090e7..37babd3 100644
--- a/src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.java
+++ b/src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.java
@@ -24,4 +24,11 @@
* @return
*/
List<RecoveryVO> selectRecoveryPage(@Param("page") IPage page, @Param("recovery") RecoveryVO recovery);
+
+ /**
+ * 按前缀查询溯源码编号总数
+ * @param pre
+ * @return
+ */
+ int getCodePreCount(@Param("pre") String pre);
}
diff --git a/src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.xml b/src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.xml
index 7b2e2eb..fc5f121 100644
--- a/src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.xml
+++ b/src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.xml
@@ -24,4 +24,10 @@
and sr.operator = #{recovery.operator}
</if>
</select>
+
+ <!--查询当前前缀已有的溯源码编号,取倒数7位的最大值-->
+ <select id="getCodePreCount" resultType="java.lang.Integer">
+ select ifnull(max(0+RIGHT(code,7)),0) from sys_traceability
+ where code like concat('%', #{pre},'%')
+ </select>
</mapper>
diff --git a/src/main/java/org/springblade/modules/recovery/service/RecoveryService.java b/src/main/java/org/springblade/modules/recovery/service/RecoveryService.java
index acadb48..515bcbd 100644
--- a/src/main/java/org/springblade/modules/recovery/service/RecoveryService.java
+++ b/src/main/java/org/springblade/modules/recovery/service/RecoveryService.java
@@ -21,4 +21,11 @@
* @return
*/
IPage<RecoveryVO> selectRecoveryPage(IPage<RecoveryVO> page, RecoveryVO recovery);
+
+ /**
+ * 按前缀查询溯源码编号总数
+ * @param pre
+ * @return
+ */
+ int getCodePreCount(String pre);
}
diff --git a/src/main/java/org/springblade/modules/recovery/service/impl/RecoveryServiceImpl.java b/src/main/java/org/springblade/modules/recovery/service/impl/RecoveryServiceImpl.java
index b45f2d0..7f468d4 100644
--- a/src/main/java/org/springblade/modules/recovery/service/impl/RecoveryServiceImpl.java
+++ b/src/main/java/org/springblade/modules/recovery/service/impl/RecoveryServiceImpl.java
@@ -25,4 +25,14 @@
public IPage<RecoveryVO> selectRecoveryPage(IPage<RecoveryVO> page, RecoveryVO recovery) {
return page.setRecords(baseMapper.selectRecoveryPage(page, recovery));
}
+
+ /**
+ * 按前缀查询溯源码编号总数
+ * @param pre
+ * @return
+ */
+ @Override
+ public int getCodePreCount(String pre) {
+ return baseMapper.getCodePreCount(pre);
+ }
}
diff --git a/src/main/java/org/springblade/modules/traceability/controller/TraceabilityController.java b/src/main/java/org/springblade/modules/traceability/controller/TraceabilityController.java
index 420be2e..fc2d017 100644
--- a/src/main/java/org/springblade/modules/traceability/controller/TraceabilityController.java
+++ b/src/main/java/org/springblade/modules/traceability/controller/TraceabilityController.java
@@ -1,4 +1,5 @@
package org.springblade.modules.traceability.controller;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.ApiOperation;
@@ -9,13 +10,18 @@
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
+import org.springblade.modules.recovery.entity.Recovery;
+import org.springblade.modules.recovery.service.RecoveryService;
import org.springblade.modules.traceability.entity.Traceability;
import org.springblade.modules.traceability.service.TraceabilityService;
import org.springblade.modules.traceability.vo.TraceabilityVO;
+import org.springframework.retry.annotation.Recover;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
+import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
import java.util.Date;
/**
@@ -29,6 +35,9 @@
public class TraceabilityController extends BladeController {
private final TraceabilityService traceabilityService;
+
+
+ private final RecoveryService recoveryService;
/**
* 详情
@@ -71,7 +80,33 @@
@Transactional(rollbackFor = Exception.class)
public R save(@Valid @RequestBody Traceability traceability) {
traceability.setCreateTime(new Date());
+ //生成溯源码编号
+ //去生成保安证编号
+ String pre = getCodePre();
+ //查询当前前缀下最大的编号
+ int max = recoveryService.getCodePreCount(pre);
+ String result = null;
+ if (max == 0) {
+ result = pre + "0000001";
+ } else {
+ //格式化
+ DecimalFormat decimalFormat = new DecimalFormat("0000000");
+ max++;
+ result = pre + (decimalFormat.format(max));
+ }
+ traceability.setCode(result);
+ //新增
return R.status(traceabilityService.save(traceability));
+ }
+
+
+ /**
+ * 编号前缀
+ * @return
+ */
+ private String getCodePre() {
+ String nowDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
+ return nowDate.substring(2,4)+nowDate.substring(5,7);
}
/**
@@ -80,6 +115,7 @@
@PostMapping("/update")
@ApiOperationSupport(order = 5)
@ApiOperation(value = "修改", notes = "传入traceability")
+ @Transactional(rollbackFor = Exception.class)
public R update(@Valid @RequestBody Traceability traceability) {
//更新并返回
return R.status(traceabilityService.updateById(traceability));
diff --git a/src/main/java/org/springblade/modules/traceability/entity/Traceability.java b/src/main/java/org/springblade/modules/traceability/entity/Traceability.java
index a9ed88b..02f553b 100644
--- a/src/main/java/org/springblade/modules/traceability/entity/Traceability.java
+++ b/src/main/java/org/springblade/modules/traceability/entity/Traceability.java
@@ -81,4 +81,9 @@
*/
private String print;
+ /**
+ * 采收记录id
+ */
+ private Integer recoveryId;
+
}
diff --git a/src/main/java/org/springblade/modules/traceability/mapper/TraceabilityMapper.xml b/src/main/java/org/springblade/modules/traceability/mapper/TraceabilityMapper.xml
index b7e18f8..7860287 100644
--- a/src/main/java/org/springblade/modules/traceability/mapper/TraceabilityMapper.xml
+++ b/src/main/java/org/springblade/modules/traceability/mapper/TraceabilityMapper.xml
@@ -4,10 +4,11 @@
<!--自定义查询农场养殖记录分页数据-->
<select id="selectTraceabilityPage" resultType="org.springblade.modules.traceability.vo.TraceabilityVO">
- select * from sys_traceability
+ select st.* from sys_traceability st
+ left join sys_recovery sr on st.recovery_id = sr.id
where 1=1
<if test="traceability.code!=null and traceability.code!=''">
- and code = #{traceability.code}
+ and st.code = #{traceability.code}
</if>
</select>
</mapper>
--
Gitblit v1.9.3