Преглед на файлове

优化:产品管理添加,详情对象统一。

lym преди 4 години
родител
ревизия
12f5168783

+ 10 - 0
carbon-back/carbon-back-common/src/main/java/com/hcloud/microserver/system/facade/carbon/entity/ProductBelong.java

@@ -31,6 +31,8 @@ public class ProductBelong implements Serializable {
 
     private Integer belongType;
 
+    private PovertyArea povertyArea;
+
     public String getGuid() {
         return guid;
     }
@@ -118,4 +120,12 @@ public class ProductBelong implements Serializable {
     public void setBelongType(Integer belongType) {
         this.belongType = belongType;
     }
+
+    public PovertyArea getPovertyArea() {
+        return povertyArea;
+    }
+
+    public void setPovertyArea(PovertyArea povertyArea) {
+        this.povertyArea = povertyArea;
+    }
 }

+ 37 - 0
carbon-back/carbon-back-common/src/main/java/com/hcloud/microserver/system/facade/carbon/entity/ProductInfo.java

@@ -1,40 +1,61 @@
 package com.hcloud.microserver.system.facade.carbon.entity;
 
+import com.hcloud.microserver.system.facade.carbon.forms.CollectiveFarmerForm;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 import lombok.ToString;
 
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
 @ToString
+@Data
 public class ProductInfo implements Serializable {
 
     private static final long serialVersionUID = -4385146356458594027L;
     private String guid;
 
+    @ApiModelProperty(value = "产品类型id",example = "产品类型id")
     private String fkProductType;
 
+    @ApiModelProperty(value = "碳汇计算规则",example = "碳汇计算规则")
     private String fkCarbonRule;
 
+    @ApiModelProperty(value = "扶贫区域id",example = "扶贫区域id")
     private String fkPovertyArea;
 
+    @ApiModelProperty(value = "产品名称",example = "产品名称")
+    @NotEmpty(message = "产品名称不能为空!")
     private String productName;
 
+    @ApiModelProperty(value = "产品编码",example = "产品编码")
     private String productCode;
 
+    @ApiModelProperty(value = "碳汇量产生时间",example = "碳汇量产生时间")
+    @NotNull(message = "碳汇量产生时间不能为空!")
     private Date carbonGenerateDate;
 
+    @ApiModelProperty(value = "产品有效周期",example = "产品有效周期")
+    @NotNull(message = "产品有效周期不能为空!")
     private Integer productValidateNum;
 
+    @ApiModelProperty(value = "碳汇量刷新时间",example = "碳汇量刷新时间")
     private Date carbonRefreshTime;
 
+    @ApiModelProperty(value = "产品碳汇量",example = "产品碳汇量")
     private BigDecimal carbonSink;
 
+    @ApiModelProperty(value = "产品图片",example = "产品图片")
     private String productImgs;
 
+    @ApiModelProperty(value = "是否启用 0:未生成商品 1:已生成商品",example = "是否启用 0:未生成商品 1:已生成商品")
     private Integer isEnable;
 
+    @ApiModelProperty(value = "备注",example = "备注")
     private String remark;
 
     private Integer state;
@@ -47,16 +68,32 @@ public class ProductInfo implements Serializable {
 
     private Date modifiedTime;
 
+    @ApiModelProperty(value = "产品扩展信息")
     private List<ProductExpansion> productExpansions;
 
+    @ApiModelProperty(value = "单个贫困户")
     private List<ProductBelong> productBelongs;
 
+    // 冗余一个贫困集体的参数
+    @ApiModelProperty(value = "贫困集体")
+    private List<CollectiveFarmerForm> collectiveFarmerForm;
+
+    @ApiModelProperty(value = "产品类别")
     private ProductType productType;
 
+    @ApiModelProperty(value = "贫困区域")
     private PovertyArea povertyArea;
 
+    @ApiModelProperty(value = "创建人姓名")
     private String createUserName;
 
+    @ApiModelProperty(value = "单个贫困户")
+    private List<FarmerInfo> productBelong;
+
+    // 冗余一个贫困集体的参数
+    @ApiModelProperty(value = "贫困集体")
+    private List<CollectiveFarmer> collectiveFarmer;
+
     public String getGuid() {
         return guid;
     }

+ 3 - 0
carbon-back/carbon-back-common/src/main/java/com/hcloud/microserver/system/facade/carbon/forms/CollectiveFarmerForm.java

@@ -1,6 +1,7 @@
 package com.hcloud.microserver.system.facade.carbon.forms;
 
 import com.hcloud.microserver.commoncore.base.BaseForm;
+import com.hcloud.microserver.system.facade.carbon.entity.PovertyArea;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -95,4 +96,6 @@ public class CollectiveFarmerForm extends BaseForm {
     @ApiModelProperty("银行卡状态")
     private String bankStatus;
 
+    @ApiModelProperty(value = "贫困区域")
+    private PovertyArea povertyArea;
 }

+ 23 - 3
carbon-back/carbon-back-common/src/main/java/com/hcloud/microserver/system/facade/carbon/forms/ProductInfoForm.java

@@ -2,38 +2,58 @@ package com.hcloud.microserver.system.facade.carbon.forms;
 
 import com.hcloud.microserver.commoncore.base.BaseForm;
 import com.hcloud.microserver.system.facade.carbon.entity.ProductType;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
 @Data
+@ApiModel("产品信息")
 public class ProductInfoForm extends BaseForm {
     private String guid;
 
+    @ApiModelProperty(value = "产品类型id",example = "产品类型id")
     private String fkProductType;
 
+    @ApiModelProperty(value = "碳汇计算规则",example = "碳汇计算规则")
     private String fkCarbonRule;
 
+    @ApiModelProperty(value = "扶贫区域id",example = "扶贫区域id")
     private String fkPovertyArea;
 
+    @ApiModelProperty(value = "产品名称",example = "产品名称")
+    @NotEmpty(message = "产品名称不能为空!")
     private String productName;
 
+    @ApiModelProperty(value = "产品编码",example = "产品编码")
     private String productCode;
 
+    @ApiModelProperty(value = "碳汇量产生时间",example = "碳汇量产生时间")
+    @NotNull(message = "碳汇量产生时间不能为空!")
     private Date carbonGenerateDate;
 
+    @ApiModelProperty(value = "产品有效周期",example = "产品有效周期")
+    @NotNull(message = "产品有效周期不能为空!")
     private Integer productValidateNum;
 
+    @ApiModelProperty(value = "碳汇量刷新时间",example = "碳汇量刷新时间")
     private Date carbonRefreshTime;
 
+    @ApiModelProperty(value = "产品碳汇量",example = "产品碳汇量")
     private BigDecimal carbonSink;
 
+    @ApiModelProperty(value = "产品图片",example = "产品图片")
     private String productImgs;
 
+    @ApiModelProperty(value = "是否启用 0:未生成商品 1:已生成商品",example = "是否启用 0:未生成商品 1:已生成商品")
     private Integer isEnable;
 
+    @ApiModelProperty(value = "备注",example = "备注")
     private String remark;
 
     private Integer state;
@@ -50,10 +70,10 @@ public class ProductInfoForm extends BaseForm {
 
     private ProductType productType;
 
-    private List<ProductBelongForm> productBelongForms;
+    private List<ProductBelongForm> productBelongs;
 
-    private List<ProductExpansionForm> productExpansionForms;
+    private List<ProductExpansionForm> productExpansions;
 
     // 冗余一个贫困集体的参数
-    private CollectiveFarmerForm collectiveFarmerForm;
+    private List<CollectiveFarmerForm> collectiveFarmerForm;
 }

+ 3 - 2
carbon-back/carbon-back-service/src/main/java/com/hcloud/microserver/system/bank/controller/ProductInfoController.java

@@ -18,6 +18,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.validation.Valid;
 import java.util.List;
 import java.util.Objects;
 
@@ -41,7 +42,7 @@ public class ProductInfoController extends CarbonBaseController {
 
     @ApiOperation("保存产品")
     @PostMapping("/save")
-    public ResponseBase save(@RequestBody ProductInfoForm productInfoForm) {
+    public ResponseBase save(@RequestBody @Valid ProductInfoForm productInfoForm) {
         int success = this.productInfoService.save(productInfoForm);
 
         return thisReturn(success);
@@ -56,7 +57,7 @@ public class ProductInfoController extends CarbonBaseController {
 
     @ApiOperation("修改产品")
     @PostMapping("/update")
-    public ResponseBase update(@RequestBody ProductInfoForm productInfoForm) {
+    public ResponseBase update(@RequestBody @Valid ProductInfoForm productInfoForm) {
         int success = this.productInfoService.modify(productInfoForm);
         return thisReturn(success);
     }

+ 116 - 110
carbon-back/carbon-back-service/src/main/java/com/hcloud/microserver/system/bank/service/impl/ProductInfoServiceImpl.java

@@ -155,9 +155,10 @@ public class ProductInfoServiceImpl implements ProductInfoService {
             productInfo.setState(1);
             productInfo.setIsEnable(1);
             productInfo.setProductCode(getMaxProductCode());
+            productInfo.setCreateUser(CurrUserUtil.getUserId());
 
             // 批量添加产品归属信息
-            List<ProductBelongForm> productBelongForms = productInfoForm.getProductBelongForms();
+            List<ProductBelongForm> productBelongForms = productInfoForm.getProductBelongs();
             if (Objects.nonNull(productBelongForms) && productBelongForms.size() > 0) {
                 List<ProductBelong> productBelongs = processBelong(guid, productBelongForms);
                 result = this.productBelongMapper.batchInsert(productBelongs);
@@ -165,7 +166,7 @@ public class ProductInfoServiceImpl implements ProductInfoService {
             }
 
             // 批量添加产品扩展信息
-            List<ProductExpansionForm> productExpansionForms = productInfoForm.getProductExpansionForms();
+            List<ProductExpansionForm> productExpansionForms = productInfoForm.getProductExpansions();
             if (Objects.nonNull(productExpansionForms) && productExpansionForms.size() > 0) {
                 List<ProductExpansion> productExpansions = new ArrayList<>();
                 for (ProductExpansionForm productExpansionForm : productExpansionForms) {
@@ -183,37 +184,7 @@ public class ProductInfoServiceImpl implements ProductInfoService {
             }
 
             // 如果前端选择集体户
-            CollectiveFarmerForm collectiveFarmerForm = productInfoForm.getCollectiveFarmerForm();
-            if (Objects.nonNull(collectiveFarmerForm)) {
-                String collectiveGuid = collectiveFarmerForm.getGuid();
-                if (StringUtils.isNotEmpty(collectiveGuid) && collectiveGuid.matches("^\\w{32}$")) {
-                    CollectiveFarmer collectiveFarmer = this.collectiveFarmerMapper.selectByPrimaryKey(collectiveGuid);
-                    List<FarmerInfo> farmerInfos = this.farmerInfoMapper.selectByCollectiveId(collectiveGuid);
-                    if (Objects.nonNull(collectiveFarmer) && Objects.nonNull(farmerInfos)) {
-                        List<ProductBelong> productBelongs = new ArrayList<>();
-                        farmerInfos.forEach(farmerInfo -> {
-                            ProductBelong productBelong = new ProductBelong();
-                            productBelong.setGuid(UUIDUtils.randomUUID());
-                            productBelong.setBelongType(1);
-                            productBelong.setCreateTime(new Date());
-                            productBelong.setFkProductGuid(guid);
-                            productBelong.setFarmerName(farmerInfo.getFarmerName());
-                            productBelong.setFarmerNum(farmerInfo.getFamilyNum());
-                            productBelong.setFarmerVillage(collectiveFarmer.getCollectiveName());
-                            productBelong.setFkFarmerGuid(farmerInfo.getGuid());
-                            productBelong.setModifiedTime(new Date());
-                            productBelong.setState(1);
-                            productBelongs.add(productBelong);
-                        });
-                        if (Objects.nonNull(productBelongs) && productBelongs.size() > 0) {
-                            result = this.productBelongMapper.batchInsert(productBelongs);
-                            if (result < 1) {
-                                throw new RuntimeException("新增产品信息 -- 批量新增产品归属失败");
-                            }
-                        }
-                    }
-                }
-            }
+            saveCollectiveFarmerForm(guid,productInfoForm.getCollectiveFarmerForm());
 
             // 添加产品信息
             result = this.productInfoMapper.insert(productInfo);
@@ -269,7 +240,7 @@ public class ProductInfoServiceImpl implements ProductInfoService {
                 result = this.productBelongMapper.deleteByProductInfoGuid(guid);
                 if (result < 0) throw new RuntimeException("修改产品信息失败 -- 删除产品归属信息失败");
                 // 添加前端传递过来的归属信息
-                List<ProductBelongForm> productBelongForms = productInfoForm.getProductBelongForms();
+                List<ProductBelongForm> productBelongForms = productInfoForm.getProductBelongs();
                 if (Objects.nonNull(productBelongForms) && productBelongForms.size() > 0) {
                     List<ProductBelong> productBelongs = processBelong(guid, productBelongForms);
                     result = this.productBelongMapper.batchInsert(productBelongs);
@@ -279,7 +250,7 @@ public class ProductInfoServiceImpl implements ProductInfoService {
                 result = this.productExpansionMapper.deleteByProductGuid(guid);
                 if (result < 0) throw new RuntimeException("修改产品信息失败 -- 删除产品扩展信息失败");
                 // 添加前端传递过来的扩展信息
-                List<ProductExpansionForm> productExpansionForms = productInfoForm.getProductExpansionForms();
+                List<ProductExpansionForm> productExpansionForms = productInfoForm.getProductExpansions();
                 if (Objects.nonNull(productExpansionForms) && productExpansionForms.size() > 0) {
                     List<ProductExpansion> productExpansions = new ArrayList<>();
                     for (ProductExpansionForm productExpansionForm : productExpansionForms) {
@@ -297,35 +268,7 @@ public class ProductInfoServiceImpl implements ProductInfoService {
                 }
 
                 // 如果前端选择集体户
-                CollectiveFarmerForm collectiveFarmerForm = productInfoForm.getCollectiveFarmerForm();
-                if (Objects.nonNull(collectiveFarmerForm)) {
-                    String collectiveGuid = collectiveFarmerForm.getGuid();
-                    if (StringUtils.isNotEmpty(collectiveGuid) && collectiveGuid.matches("^\\w{32}$")) {
-                        CollectiveFarmer collectiveFarmer = this.collectiveFarmerMapper.selectByPrimaryKey(collectiveGuid);
-                        List<FarmerInfo> farmerInfos = this.farmerInfoMapper.selectByCollectiveId(collectiveGuid);
-                        if (Objects.nonNull(collectiveFarmer) && Objects.nonNull(farmerInfos)) {
-                            List<ProductBelong> productBelongs = new ArrayList<>();
-                            farmerInfos.forEach(farmerInfo -> {
-                                ProductBelong productBelong = new ProductBelong();
-                                productBelong.setGuid(UUIDUtils.randomUUID());
-                                productBelong.setBelongType(1);
-                                productBelong.setCreateTime(new Date());
-                                productBelong.setFkProductGuid(guid);
-                                productBelong.setFarmerName(farmerInfo.getFarmerName());
-                                productBelong.setFarmerNum(farmerInfo.getFamilyNum());
-                                productBelong.setFarmerVillage(collectiveFarmer.getCollectiveName());
-                                productBelong.setFkFarmerGuid(farmerInfo.getGuid());
-                                productBelong.setModifiedTime(new Date());
-                                productBelong.setState(1);
-                                productBelongs.add(productBelong);
-                            });
-                            if (Objects.nonNull(productBelongs) && productBelongs.size() > 0) {
-                                result = this.productBelongMapper.batchInsert(productBelongs);
-                                if (result < 1) throw new RuntimeException("修改产品 -- 批量添加产品归属失败");
-                            }
-                        }
-                    }
-                }
+                saveCollectiveFarmerForm(guid,productInfoForm.getCollectiveFarmerForm());
 
                 List<GoodsInfo> goodsInfos = this.goodsInfoMapper.selectGoodsInfoByProductGuid(guid);
                 if (Objects.nonNull(goodsInfos) && goodsInfos.size() > 0) {
@@ -336,6 +279,8 @@ public class ProductInfoServiceImpl implements ProductInfoService {
                     if (result < 0) throw new RuntimeException("修改产品 -- 批量更新商品失败");
                 }
 
+                productInfo.setModifiedUser(CurrUserUtil.getUserId());
+                productInfo.setModifiedTime(new Date());
                 result = this.productInfoMapper.updateByPrimaryKeySelective(productInfo);
                 if (result < 1) throw new RuntimeException("修改产品信息失败");
             }
@@ -359,11 +304,50 @@ public class ProductInfoServiceImpl implements ProductInfoService {
             productBelong.setCreateTime(new Date());
             productBelong.setModifiedTime(new Date());
             productBelong.setState(1);
+            productBelong.setFkFarmerGuid(productBelongForm.getGuid());
             productBelongs.add(productBelong);
         }
         return productBelongs;
     }
 
+    /**
+     * 添加产品贫困集体
+     * lym
+     * @param guid
+     * @param collectiveFarmerFormList
+     */
+    private void saveCollectiveFarmerForm(String guid,List<CollectiveFarmerForm> collectiveFarmerFormList){
+        CollectiveFarmerForm collectiveFarmerForm = null;
+        if (collectiveFarmerFormList != null && collectiveFarmerFormList.size() > 0){
+            collectiveFarmerForm = collectiveFarmerFormList.get(0);
+        }
+        if (Objects.nonNull(collectiveFarmerForm)) {
+            String collectiveGuid = collectiveFarmerForm.getGuid();
+            if (StringUtils.isNotEmpty(collectiveGuid) && collectiveGuid.matches("^\\w{32}$")) {
+                CollectiveFarmer collectiveFarmer = this.collectiveFarmerMapper.selectByPrimaryKey(collectiveGuid);
+                //集体主体与个人主体不强关联
+                if (Objects.nonNull(collectiveFarmer)) {
+                    List<ProductBelong> productBelongs = new ArrayList<>();
+                    ProductBelong productBelong = new ProductBelong();
+                    productBelong.setGuid(UUIDUtils.randomUUID());
+                    productBelong.setBelongType(2);
+                    productBelong.setCreateTime(new Date());
+                    productBelong.setFkProductGuid(guid);
+                    productBelong.setFarmerNum(collectiveFarmer.getCollectivePersonNum());
+                    productBelong.setFarmerVillage(collectiveFarmer.getCollectiveName());
+                    productBelong.setModifiedTime(new Date());
+                    productBelong.setState(1);
+                    productBelong.setFkCollectiveGuid(collectiveFarmer.getGuid());
+                    productBelongs.add(productBelong);
+                    if (Objects.nonNull(productBelongs) && productBelongs.size() > 0) {
+                        int result = this.productBelongMapper.batchInsert(productBelongs);
+                        if (result < 1) throw new RuntimeException("批量添加产品归属失败");
+                    }
+                }
+            }
+        }
+    }
+
     /**
      * 产品列表 分页查询
      *
@@ -463,36 +447,33 @@ public class ProductInfoServiceImpl implements ProductInfoService {
     }
 
     @Override
+    @Transactional
     public int publishGoods(GoodsInfo goodsInfo, GoodsSaleInfo goodsSaleInfo, List<ProductInfo> productInfos) {
         int result = 0;
         boolean cond1 = Objects.nonNull(goodsInfo);
         boolean cond2 = Objects.nonNull(goodsSaleInfo);
         boolean cond3 = Objects.nonNull(productInfos) && productInfos.size() > 0;
 
+        //发布商品(一个商品对一个产品)
         if (cond1 && cond2 && cond3) {
-            // 生成商品记录的guid
-            String goodsInfoGuid = UUIDUtils.randomUUID();
-            goodsInfo.setGuid(goodsInfoGuid);
-            goodsInfo.setState(1);
-            goodsInfo.setModifiedTime(new Date());
-            goodsInfo.setCreateTime(new Date());
-            // 扶贫产品
-            goodsInfo.setGoodsType(productInfos.get(0).getProductType().getTypeVal());
-            goodsInfo.setGoodsCode(getMaxGoodsCode());
-            goodsInfo.setIsSale(0);
-            goodsInfo.setCreateUser(CurrUserUtil.getUserId());
-
-            // 合计碳汇量
-            BigDecimal totalCarbonSink = new BigDecimal(0);
-            StringBuffer goodsImages = new StringBuffer();
-            StringBuffer goodsName = new StringBuffer();
-
-            // 生成商品明细
-            List<GoodsDetail> goodsDetails = new ArrayList<>();
-            productInfos.forEach(productInfo -> {
-                totalCarbonSink.add(productInfo.getCarbonSink());
-                goodsImages.append(productInfo.getProductImgs() + ";");
-                goodsName.append(productInfo.getProductName() + ",");
+            for (ProductInfo productInfo:productInfos){ //批量生成商品
+                // 生成商品记录的guid
+                String goodsInfoGuid = UUIDUtils.randomUUID();
+                goodsInfo.setGuid(goodsInfoGuid);
+                goodsInfo.setState(1);
+                goodsInfo.setModifiedTime(new Date());
+                goodsInfo.setCreateTime(new Date());
+                // 扶贫产品
+                goodsInfo.setGoodsType(productInfos.get(0).getProductType().getTypeVal());
+                goodsInfo.setGoodsCode(getMaxGoodsCode());
+                goodsInfo.setIsSale(0);
+                goodsInfo.setCreateUser(CurrUserUtil.getUserId());
+                // 设置商品图片
+                goodsInfo.setGoodsImages(productInfo.getProductImgs());
+                goodsInfo.setGoodsName(productInfo.getProductName());
+
+                // 生成商品明细
+                List<GoodsDetail> goodsDetails = new ArrayList<>();
                 GoodsDetail goodsDetail = new GoodsDetail();
                 goodsDetail.setGuid(UUIDUtils.randomUUID());
                 goodsDetail.setFkGoodsGuid(goodsInfoGuid);
@@ -507,28 +488,26 @@ public class ProductInfoServiceImpl implements ProductInfoService {
                 goodsDetail.setSaleUnit("公斤");
                 goodsDetail.setProductCode(productInfo.getProductCode());
                 goodsDetails.add(goodsDetail);
-            });
-
-            // 设置商品图片
-            goodsInfo.setGoodsImages(goodsImages.substring(0, goodsImages.length() - 1));
-            goodsInfo.setGoodsName(goodsName.substring(0, goodsName.length() - 1));
-
-            // 商品销售信息表
-            goodsSaleInfo.setGuid(UUIDUtils.randomUUID());
-            goodsSaleInfo.setFkGoodsGuid(goodsInfoGuid);
-            goodsSaleInfo.setSalePrice(goodsInfo.getPrice());
-            goodsSaleInfo.setIsEnable(1);
-            goodsSaleInfo.setState(1);
-            goodsSaleInfo.setUnsaledCarbonSkin(totalCarbonSink);
-            goodsSaleInfo.setSaledCarbonSkin(new BigDecimal(0));
-            goodsSaleInfo.setModifiedTime(new Date());
-
-            result = this.goodsDetailMapper.batchInsert(goodsDetails);
-            if (result < 1){ throw new RuntimeException("添加商品明细失败");}
-            result = this.goodsSaleInfoMapper.insertSelective(goodsSaleInfo);
-            if (result < 1) {throw new RuntimeException("添加商品销售信息失败");}
-            result = this.goodsInfoMapper.insertSelective(goodsInfo);
-            if (result < 1) {throw new RuntimeException("添加商品信息失败");}
+
+                // 商品销售信息表
+                goodsSaleInfo.setGuid(UUIDUtils.randomUUID());
+                goodsSaleInfo.setFkGoodsGuid(goodsInfoGuid);
+                goodsSaleInfo.setSalePrice(goodsInfo.getPrice());
+                goodsSaleInfo.setIsEnable(1);
+                goodsSaleInfo.setState(1);
+                goodsSaleInfo.setUnsaledCarbonSkin(goodsInfo.getCarbonVal());
+                goodsSaleInfo.setSaledCarbonSkin(new BigDecimal(0));
+                goodsSaleInfo.setModifiedTime(new Date());
+
+                result = this.goodsDetailMapper.batchInsert(goodsDetails);
+                if (result < 1){ throw new RuntimeException("添加商品明细失败");}
+                result = this.goodsSaleInfoMapper.insertSelective(goodsSaleInfo);
+                if (result < 1) {throw new RuntimeException("添加商品销售信息失败");}
+                result = this.goodsInfoMapper.insertSelective(goodsInfo);
+                if (result < 1) {throw new RuntimeException("添加商品信息失败");}
+            }
+
+
 
         }
 
@@ -583,6 +562,33 @@ public class ProductInfoServiceImpl implements ProductInfoService {
 
     @Override
     public ProductInfo findById(String guid) {
-        return productInfoMapper.findById(guid);
+        ProductInfo info = productInfoMapper.findById(guid);
+        if (info != null && info.getProductBelongs() != null && info.getProductBelongs().size() > 0){
+            List<ProductBelong> productBelongs = info.getProductBelongs();
+            ProductBelong productBelong = productBelongs.get(0); //一对一
+
+            if (productBelong.getBelongType() != null ){
+                productBelong.setPovertyArea(info.getPovertyArea());
+                //贫困集体
+                if (productBelong.getBelongType() == 1 && StringUtils.isNotEmpty(productBelong.getFkFarmerGuid())){
+                    //前端显示选择个人贫困信息
+                    List<FarmerInfo> farmerInfos = new ArrayList<>();
+                    farmerInfos.add(farmerInfoMapper.selectByPrimaryKey(productBelong.getFkFarmerGuid()));
+                    info.setProductBelong(farmerInfos);
+                }
+                if (productBelong.getBelongType() == 2 && StringUtils.isNotEmpty(productBelong.getFkCollectiveGuid())){
+                    List<CollectiveFarmerForm> collectiveFarmerFormList = new ArrayList<>();
+                    CollectiveFarmerForm collectiveFarmerForm = BeanCopyUtil.convertBean(productBelong,CollectiveFarmerForm.class);
+                    collectiveFarmerFormList.add(collectiveFarmerForm);
+                    info.setCollectiveFarmerForm(collectiveFarmerFormList);
+                    //前端显示选择贫困集体信息
+                    List<CollectiveFarmer> collectiveFarmers = new ArrayList<>();
+                    collectiveFarmers.add(collectiveFarmerMapper.selectByPrimaryKey(productBelong.getFkCollectiveGuid()));
+                    info.setCollectiveFarmer(collectiveFarmers);
+                    info.setProductBelongs(null);
+                }
+            }
+        }
+        return info;
     }
 }