调整溯源扫码

main
masong 2 years ago
parent 8e3d26cea0
commit 1372024199
  1. 16
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/dal/mysql/block/BlockMapper.java
  2. 1
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/dal/mysql/product/ProductMapper.java
  3. 42
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/product/ProductServiceImpl.java
  4. 12
      cjy-server/src/main/resources/application-local.yaml

@ -8,12 +8,16 @@ import com.cjy.traceability.framework.mybatis.core.query.MPJLambdaWrapperX;
import com.cjy.traceability.module.traceability.dal.dataobject.base.TraceabilityBaseDO;
import com.cjy.traceability.module.traceability.dal.dataobject.block.BlockCropDO;
import com.cjy.traceability.module.traceability.dal.dataobject.block.BlockDO;
import com.cjy.traceability.module.traceability.dal.dataobject.cropper.CropperDO;
import com.github.yulichang.query.MPJQueryWrapper;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.ibatis.annotations.Mapper;
import com.cjy.traceability.module.traceability.controller.admin.block.vo.*;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* 地块信息 Mapper
*
@ -38,4 +42,16 @@ public interface BlockMapper extends BaseMapperX<BlockDO> {
default Long selectBlockNumBaseId(Integer baseId){
return selectCount(BlockDO::getBaseId,baseId);
}
default List<Map<String,Object>> selectBaseBlock(String cropperId){
return selectJoinMaps(new MPJLambdaWrapper<BlockDO>()
.selectAs(BlockDO :: getBlockName,"blockName")
.selectAs(BlockDO :: getBlockColor,"blockColor")
.selectAs(BlockDO :: getPositionStr,"positionStr")
.selectAs(TraceabilityBaseDO :: getBaseName,"baseName")
.leftJoin(TraceabilityBaseDO.class,TraceabilityBaseDO::getBaseName,BlockDO :: getBaseId)
.leftJoin(CropperDO.class,CropperDO ::getBlockId,BlockDO :: getId)
.eq(CropperDO :: getId, cropperId)
);
}
}

@ -117,6 +117,7 @@ public interface ProductMapper extends BaseMapperX<ProductDO> {
.selectAs(ProductDO :: getSourceType, "sourceType")
.selectAs(ProductDO :: getCropperId,"cropperId")
.select(ProductDO :: getBatch)
.select(ProductDO :: getId)
.selectAs(AgriculturalProductDO :: getProductBreed,"productBreed")
.selectAs(SpeciesDO :: getSpeciesName,"speciesName")
.selectAs(VarietyDO :: getVarietyName,"varietyName")

@ -2,10 +2,14 @@ package com.cjy.traceability.module.traceability.service.product;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cjy.traceability.module.traceability.dal.dataobject.base.TraceabilityBaseDO;
import com.cjy.traceability.module.traceability.dal.dataobject.materials.MaterialsDO;
import com.cjy.traceability.module.traceability.dal.mysql.base.TraceabilityBaseMapper;
import com.cjy.traceability.module.traceability.dal.mysql.block.BlockMapper;
import com.cjy.traceability.module.traceability.dal.mysql.husbandry.HusbandryMapper;
import com.cjy.traceability.module.traceability.dal.mysql.materials.MaterialsMapper;
import com.cjy.traceability.module.traceability.dal.mysql.processingworkshop.ProcessingWorkshopMapper;
import com.cjy.traceability.module.traceability.service.husbandryrecord.HusbandryRecordService;
import com.cjy.traceability.module.traceability.utils.TraceabilityCodeUtil;
import org.springframework.stereotype.Service;
@ -31,6 +35,7 @@ import com.cjy.traceability.module.traceability.dal.mysql.scanrecord.ScanRecordM
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -54,7 +59,7 @@ public class ProductServiceImpl implements ProductService {
@Resource
private AdminUserApi adminUserApi;
@Resource
private HusbandryRecordMapper husbandryRecordMapper;
private HusbandryRecordService husbandryRecordService;
@Resource
private SaleRecordMapper saleRecordMapper;
@Resource
@ -63,9 +68,8 @@ public class ProductServiceImpl implements ProductService {
private DeliveryRecordMapper deliveryRecordMapper;
@Resource
private ScanRecordMapper scanRecordMapper;
private HusbandryMapper husbandryMapper;
@Resource
private BlockMapper blockMapper;
@Resource
private ProcessingWorkshopMapper processingWorkshopMapper;
@ -152,6 +156,7 @@ public class ProductServiceImpl implements ProductService {
return productMapper.selectDataById(id);
}
@Override
public PageResult<ProductDO> getProductPage(ProductPageReqVO pageReqVO) {
// 必须使用 MyBatis Plus 的分页对象
@ -204,19 +209,40 @@ public class ProductServiceImpl implements ProductService {
//5. 产品农业
if ("1".equals(productMap.get("sourceType"))) {
Map<String, Object> cropperAgriculture = new HashMap<>(1);
List<Map<String, Object>> agriculture = husbandryRecordMapper.getHusbandryRecordListByBatch(Integer.parseInt(productMap.get("cropperId").toString()), Integer.parseInt(productMap.get("batch").toString()));
List<Map<String, Object>> agriculture = husbandryRecordService.getHusbandryRecordListByBatch(Integer.parseInt(productMap.get("cropperId").toString()), Integer.parseInt(productMap.get("batch").toString()));
cropperAgriculture.put("cropperName", productMap.get("processingName").toString());
cropperAgriculture.put("agriculture", agriculture);
map.put("agricultureRecord", cropperAgriculture);
} else {
Map<String, Object> cropperAgriculture = new HashMap<>(rawMaterials.size());
List<Map<String,Object>> agricultureRecord = new ArrayList<>();
for (Map<String, Object> rawMaterial : rawMaterials) {
List<Map<String, Object>> agriculture = husbandryRecordMapper.getHusbandryRecordListByBatch(Integer.parseInt(rawMaterial.get("cropperId").toString()), Integer.parseInt(rawMaterial.get("batch").toString()));
List<Map<String, Object>> agriculture = husbandryRecordService.getHusbandryRecordListByBatch(Integer.parseInt(rawMaterial.get("cropperId").toString()), Integer.parseInt(rawMaterial.get("batch").toString()));
Map<String, Object> cropperAgriculture = new HashMap<>(2);
cropperAgriculture.put("cropperName", rawMaterial.get("productName").toString());
cropperAgriculture.put("agriculture", agriculture);
map.put("agricultureRecord", cropperAgriculture);
agricultureRecord.add(cropperAgriculture);
}
map.put("agricultureRecord", agricultureRecord);
}
List<Map<String,Object>> materialList = new ArrayList<>();
// 获取地块 基地信息
if(productMap.get("sourceType").equals("1")){
List<Map<String,Object>> baseBlockList = blockMapper.selectBaseBlock(productMap.get("cropperId").toString());
Map<String, Object> baseBlockMap = new HashMap<>(1);
baseBlockMap.put("cropperName",productMap.get("processingName").toString());
baseBlockMap.put("baseBlockList",baseBlockList);
materialList.add(baseBlockMap);
}else{
for(Map<String,Object> materials : rawMaterials){
List<Map<String,Object>> baseBlockList = blockMapper.selectBaseBlock(productMap.get("cropperId").toString());
Map<String, Object> baseBlockMap = new HashMap<>(2);
baseBlockMap.put("cropperName",productMap.get("processingName").toString());
baseBlockMap.put("baseBlockList",baseBlockList);
materialList.add(baseBlockMap);
}
}
map.put("baseBlock",materialList);
ScanRecordDO scanRecordDO = new ScanRecordDO()
.setProvince(province)
.setCity(city)

@ -47,29 +47,29 @@ spring:
primary: master
datasource:
master:
name: agricultural-products-traceability
url: jdbc:mysql://192.168.130.16:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
name: traceability
url: jdbc:mysql://192.168.130.155:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
# url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL Connector/J 5.X 连接的示例
# url: jdbc:postgresql://127.0.0.1:5432/${spring.datasource.dynamic.datasource.master.name} # PostgreSQL 连接的示例
# url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例
# url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=${spring.datasource.dynamic.datasource.master.name} # SQLServer 连接的示例
# url: jdbc:dm://10.211.55.4:5236?schema=RUOYI_VUE_PRO # DM 连接的示例
username: root
password: Cjy@1303
password: root
# username: sa
# password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W
# username: SYSDBA # DM 连接的示例
# password: SYSDBA # DM 连接的示例
slave: # 模拟从库,可根据自己需要修改
name: agricultural-products-traceability
name: traceability
lazy: true # 开启懒加载,保证启动速度
url: jdbc:mysql://192.168.130.16:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
url: jdbc:mysql://192.168.130.155:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
# url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL Connector/J 5.X 连接的示例
# url: jdbc:postgresql://127.0.0.1:5432/${spring.datasource.dynamic.datasource.slave.name} # PostgreSQL 连接的示例
# url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例
# url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=${spring.datasource.dynamic.datasource.slave.name} # SQLServer 连接的示例
username: root
password: Cjy@1303
password: root
# username: sa
# password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W

Loading…
Cancel
Save