智慧农业后台管理
农事操作新增农产品绑定,采收修改,农产品种植修改,新增根据地块查询农产品
16 files modified
148 ■■■■■ changed files
src/main/java/org/springblade/modules/farm/entity/FarmingRecord.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java 13 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/controller/StrainController.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.java 9 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml 7 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/service/FarmPlantService.java 11 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farmplant/service/impl/FarmPlantServiceImpl.java 13 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/recovery/controller/RecoveryController.java 4 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/recovery/entity/Recovery.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.xml 6 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/recovery/service/RecoveryService.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/recovery/service/impl/RecoveryServiceImpl.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/traceability/controller/TraceabilityController.java 36 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/traceability/entity/Traceability.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/traceability/mapper/TraceabilityMapper.xml 5 ●●●●● patch | view | raw | blame | history
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;
}
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));
    }
}
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));
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);
}
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>
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);
}
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);
    }
}
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
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;
}
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);
}
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>
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);
}
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);
    }
}
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));
src/main/java/org/springblade/modules/traceability/entity/Traceability.java
@@ -81,4 +81,9 @@
     */
    private String print;
    /**
     * 采收记录id
     */
    private Integer recoveryId;
}
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>