|
|
|
@ -3,21 +3,26 @@ package com.cjy.traceability.module.traceability.service.product; |
|
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import javax.annotation.Resource; |
|
|
|
|
import org.springframework.validation.annotation.Validated; |
|
|
|
|
|
|
|
|
|
import java.util.*; |
|
|
|
|
import com.cjy.traceability.module.traceability.controller.admin.product.vo.*; |
|
|
|
|
import com.cjy.traceability.module.traceability.dal.dataobject.product.ProductDO; |
|
|
|
|
import com.cjy.traceability.framework.common.pojo.PageResult; |
|
|
|
|
import com.cjy.traceability.framework.common.util.object.BeanUtils; |
|
|
|
|
|
|
|
|
|
import com.cjy.traceability.module.system.api.dict.DictDataApi; |
|
|
|
|
import com.cjy.traceability.module.system.api.user.AdminUserApi; |
|
|
|
|
import com.cjy.traceability.module.traceability.controller.admin.product.vo.ProductPageReqVO; |
|
|
|
|
import com.cjy.traceability.module.traceability.controller.admin.product.vo.ProductSaveReqVO; |
|
|
|
|
import com.cjy.traceability.module.traceability.dal.dataobject.product.ProductDO; |
|
|
|
|
import com.cjy.traceability.module.traceability.dal.mysql.husbandry.HusbandryMapper; |
|
|
|
|
import com.cjy.traceability.module.traceability.dal.mysql.husbandryrecord.HusbandryRecordMapper; |
|
|
|
|
import com.cjy.traceability.module.traceability.dal.mysql.product.ProductMapper; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import org.springframework.validation.annotation.Validated; |
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
|
import java.util.HashMap; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
|
|
import static com.cjy.traceability.framework.common.exception.util.ServiceExceptionUtil.exception; |
|
|
|
|
import static com.cjy.traceability.module.traceability.enums.ErrorCodeConstants.*; |
|
|
|
|
import static com.cjy.traceability.module.traceability.enums.ErrorCodeConstants.PRODUCT_NOT_EXISTS; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 溯源产品管理 Service 实现类 |
|
|
|
@ -30,6 +35,12 @@ public class ProductServiceImpl implements ProductService { |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private ProductMapper productMapper; |
|
|
|
|
@Resource |
|
|
|
|
private DictDataApi dictDataApi; |
|
|
|
|
@Resource |
|
|
|
|
private AdminUserApi adminUserApi; |
|
|
|
|
private HusbandryRecordMapper husbandryRecordMapper; |
|
|
|
|
private HusbandryMapper husbandryMapper; |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Integer createProduct(ProductSaveReqVO createReqVO) { |
|
|
|
@ -72,16 +83,40 @@ public class ProductServiceImpl implements ProductService { |
|
|
|
|
public PageResult<ProductDO> getProductPage(ProductPageReqVO pageReqVO) { |
|
|
|
|
// 必须使用 MyBatis Plus 的分页对象
|
|
|
|
|
IPage<ProductDO> page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); |
|
|
|
|
productMapper.selectAllData(page,pageReqVO); |
|
|
|
|
productMapper.selectAllData(page, pageReqVO); |
|
|
|
|
//去获取损耗数量
|
|
|
|
|
page.getRecords().stream().forEach(item->{ |
|
|
|
|
page.getRecords().stream().forEach(item -> { |
|
|
|
|
item.setProductLoss(productMapper.getProductLossByProductId(item.getId())); |
|
|
|
|
}); |
|
|
|
|
return new PageResult<>(page.getRecords(), page.getTotal()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public List<Map<String,Object>> getAllTraceableProducts(Integer id) { |
|
|
|
|
public List<Map<String, Object>> getAllTraceableProducts(Integer id) { |
|
|
|
|
return productMapper.getAllTraceableProducts(id); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Map<String, Object> scanTheCode(String traceabilityCode) { |
|
|
|
|
Map<String, Object> map = new HashMap<>(5); |
|
|
|
|
//1.产品基本信息
|
|
|
|
|
Map<String, Object> productMap = productMapper.selectProduct(traceabilityCode); |
|
|
|
|
productMap.put("authenticationType", dictDataApi.getDictData("authentication_type", productMap.get("authenticationType").toString()).getLabel()); |
|
|
|
|
productMap.put("qualityResult", dictDataApi.getDictData("quality_result", productMap.get("qualityResult").toString()).getLabel()); |
|
|
|
|
map.put("basicInformation", productMap); |
|
|
|
|
//2. 产品农业
|
|
|
|
|
if("1".equals(productMap.get("sourceType"))){ |
|
|
|
|
List<Map<String,Object>> agriculture = husbandryRecordMapper.getHusbandryRecordListByBatch(Integer.parseInt(productMap.get("cropperId").toString()),Integer.parseInt(productMap.get("batch").toString())); |
|
|
|
|
map.put("agriculture",agriculture); |
|
|
|
|
}else{ |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
//判断是自产还是二次加工
|
|
|
|
|
// 二次加工则获取原材料农业信息
|
|
|
|
|
|
|
|
|
|
//3.产品加工
|
|
|
|
|
//4. 产品配送
|
|
|
|
|
//5. 产品销售
|
|
|
|
|
return productMap; |
|
|
|
|
} |
|
|
|
|
} |