gongdecai преди 3 години
родител
ревизия
f4d92b6dda
променени са 12 файла, в които са добавени 611 реда и са изтрити 41 реда
  1. 3 4
      pom.xml
  2. 1 1
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/GeneratorCodeByTables.java
  3. 49 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/CostManagementInfoController.java
  4. 18 1
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/WeightedDetailsController.java
  5. 96 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/CostManagementInfo.java
  6. 8 1
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/WeightedDetails.java
  7. 16 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/CostManagementInfoMapper.java
  8. 32 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/ICostManagementInfoService.java
  9. 63 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/CostManagementInfoServiceImpl.java
  10. 74 2
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/PaymentManagementServiceImpl.java
  11. 246 32
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/WarehouseInOutInfoServiceImpl.java
  12. 5 0
      winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/CostManagementInfoMapper.xml

+ 3 - 4
pom.xml

@@ -184,7 +184,9 @@
             <properties>
                 <env>local</env>
             </properties>
-
+            <activation>
+                <activeByDefault>true</activeByDefault>
+            </activation>
         </profile>
         <profile>
             <id>dev</id>
@@ -203,9 +205,6 @@
             <properties>
                 <env>prod</env>
             </properties>
-            <activation>
-                <activeByDefault>true</activeByDefault>
-            </activation>
         </profile>
     </profiles>
     <build>

+ 1 - 1
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/GeneratorCodeByTables.java

@@ -53,7 +53,7 @@ public class GeneratorCodeByTables {
     }
 
     public static void main(String[] args) throws IOException {
-        generateByTables("Gdc", "com.yh.saas.plugin.yiliangyiyun","weighted_details");
+        generateByTables("Gdc", "com.yh.saas.plugin.yiliangyiyun","cost_management_info");
     }
 
     /**

+ 49 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/CostManagementInfoController.java

@@ -0,0 +1,49 @@
+package com.yh.saas.plugin.yiliangyiyun.controller;
+
+
+import com.baomidou.mybatisplus.plugins.Page;
+import com.yh.saas.plugin.yiliangyiyun.entity.CostManagementInfo;
+import com.yh.saas.plugin.yiliangyiyun.entity.CustomerInfo;
+import com.yh.saas.plugin.yiliangyiyun.entity.WeightedDetails;
+import com.yh.saas.plugin.yiliangyiyun.service.ICostManagementInfoService;
+import com.yh.saas.plugin.yiliangyiyun.service.IWeightedDetailsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 成本管理信息 前端控制器
+ * </p>
+ *
+ * @author Gdc
+ * @since 2021-10-09
+ */
+@RestController
+@RequestMapping("/costManagementInfo")
+public class CostManagementInfoController {
+
+
+    @Autowired
+    private ICostManagementInfoService costManagementInfoService;
+    /**
+     * 列表
+     * @param costManagementInfo
+     * @return
+     */
+    @GetMapping("/selectCostManagementInfo")
+    public Page<CostManagementInfo> selectCostManagementInfo(CostManagementInfo costManagementInfo) {
+        return costManagementInfoService.selectCostManagementInfo(costManagementInfo);
+    }
+
+
+    /**
+     * 编辑信息
+     * @param costManagementInfo
+     * @return
+     */
+    @PostMapping("/api/editCostManagementInfo")
+    public String editCostManagementInfo(@RequestBody CostManagementInfo costManagementInfo){
+        return costManagementInfoService.editCostManagementInfo(costManagementInfo);
+    }
+}
+

+ 18 - 1
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/WeightedDetailsController.java

@@ -1,6 +1,13 @@
 package com.yh.saas.plugin.yiliangyiyun.controller;
 
 
+import com.baomidou.mybatisplus.plugins.Page;
+import com.yh.saas.plugin.yiliangyiyun.entity.WeighingManagement;
+import com.yh.saas.plugin.yiliangyiyun.entity.WeightedDetails;
+import com.yh.saas.plugin.yiliangyiyun.service.IWeighingManagementService;
+import com.yh.saas.plugin.yiliangyiyun.service.IWeightedDetailsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import org.springframework.web.bind.annotation.RestController;
@@ -16,6 +23,16 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 @RequestMapping("/weightedDetails")
 public class WeightedDetailsController {
-
+    @Autowired
+    private IWeightedDetailsService weightedDetailsService;
+    /**
+     * 列表
+     * @param weightedDetails
+     * @return
+     */
+    @GetMapping("/selectInventoryCostInfo")
+    public Page<WeightedDetails> selectInventoryCostInfo(WeightedDetails weightedDetails) {
+        return weightedDetailsService.selectInventoryCostInfo(weightedDetails);
+    }
 }
 

+ 96 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/CostManagementInfo.java

@@ -0,0 +1,96 @@
+package com.yh.saas.plugin.yiliangyiyun.entity;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.annotations.Version;
+
+import com.baomidou.mybatisplus.enums.IdType;
+import com.yh.saas.common.support.entity.BaseModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 成本管理信息
+ * </p>
+ *
+ * @author Gdc
+ * @since 2021-10-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("cost_management_info")
+public class CostManagementInfo extends BaseModel<CostManagementInfo> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.UUID)
+    private String id;
+    /**
+     * 公司id
+     */
+    private String compId;
+    /**
+     * 库点id
+     */
+    private String warehouseId;
+    /**
+     * 库点
+     */
+    private String warehouseName;
+    /**
+     * 货名key
+     */
+    private String goodsNameKey;
+    /**
+     * 货名
+     */
+    private String goodsName;
+    /**
+     * 存储(吨)
+     */
+    private Float storage;
+    /**
+     * 价值
+     */
+    private Float value;
+    /**
+     * 加权成本
+     */
+    private Float cost;
+    /**
+     * 状态标识
+     */
+    private String statusFlag;
+    /**
+     * 状态
+     */
+    private String status;
+    /**
+     * 状态英文
+     */
+    private String statusEn;
+    /**
+     * 手动修改标识
+     */
+    private String flag;
+    /**
+     * 仓库类型  常用1  临时2
+     */
+    private String warehouseType;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 8 - 1
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/WeightedDetails.java

@@ -111,7 +111,14 @@ public class WeightedDetails extends BaseModel<WeightedDetails> {
      * 状态英文
      */
     private String statusEn;
-
+    /**
+     * 扣款金额
+     */
+    private String deductionAmount;
+    /**
+     * 修改标识
+     */
+    private String flag;
 
     /**
      * 年份

+ 16 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/CostManagementInfoMapper.java

@@ -0,0 +1,16 @@
+package com.yh.saas.plugin.yiliangyiyun.mapper;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.CostManagementInfo;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 成本管理信息 Mapper 接口
+ * </p>
+ *
+ * @author Gdc
+ * @since 2021-10-09
+ */
+public interface CostManagementInfoMapper extends BaseMapper<CostManagementInfo> {
+
+}

+ 32 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/ICostManagementInfoService.java

@@ -0,0 +1,32 @@
+package com.yh.saas.plugin.yiliangyiyun.service;
+
+import com.baomidou.mybatisplus.plugins.Page;
+import com.yh.saas.plugin.yiliangyiyun.entity.CostManagementInfo;
+import com.baomidou.mybatisplus.service.IService;
+
+/**
+ * <p>
+ * 成本管理信息 服务类
+ * </p>
+ *
+ * @author Gdc
+ * @since 2021-10-09
+ */
+public interface ICostManagementInfoService extends IService<CostManagementInfo> {
+
+    /**
+     * 列表
+     *
+     * @param costManagementInfo
+     * @return
+     */
+    Page<CostManagementInfo> selectCostManagementInfo(CostManagementInfo costManagementInfo);
+
+    /**
+     * 编辑信息
+     *
+     * @param costManagementInfo
+     * @return
+     */
+    String editCostManagementInfo(CostManagementInfo costManagementInfo);
+}

+ 63 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/CostManagementInfoServiceImpl.java

@@ -0,0 +1,63 @@
+package com.yh.saas.plugin.yiliangyiyun.service.impl;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.yh.saas.plugin.yiliangyiyun.entity.CostManagementInfo;
+import com.yh.saas.plugin.yiliangyiyun.entity.CustomerInfo;
+import com.yh.saas.plugin.yiliangyiyun.entity.WeightedDetails;
+import com.yh.saas.plugin.yiliangyiyun.mapper.CostManagementInfoMapper;
+import com.yh.saas.plugin.yiliangyiyun.service.ICostManagementInfoService;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * <p>
+ * 成本管理信息 服务实现类
+ * </p>
+ *
+ * @author Gdc
+ * @since 2021-10-09
+ */
+@Service
+public class CostManagementInfoServiceImpl extends ServiceImpl<CostManagementInfoMapper, CostManagementInfo> implements ICostManagementInfoService {
+
+
+
+    /**
+     * 列表
+     *
+     * @param costManagementInfo
+     * @return
+     */
+    @Override
+    public Page<CostManagementInfo> selectCostManagementInfo(CostManagementInfo costManagementInfo) {
+        Page<CostManagementInfo> costManagementInfoPage = this.selectPage(costManagementInfo.getQueryPage(), new EntityWrapper<CostManagementInfo>()
+                .eq("warehouse_id", costManagementInfo.getWarehouseId())
+                .eq("warehouse_type", costManagementInfo.getWarehouseType()));
+        int count = this.selectCount(new EntityWrapper<CostManagementInfo>()
+                .eq("warehouse_id", costManagementInfo.getWarehouseId())
+                .eq("warehouse_type", costManagementInfo.getWarehouseType()));
+        costManagementInfoPage.setSize(count);
+        return costManagementInfoPage;
+    }
+
+
+    /**
+     * 编辑信息
+     *
+     * @param costManagementInfo
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public String editCostManagementInfo(CostManagementInfo costManagementInfo) {
+        boolean one = this.updateById(costManagementInfo);
+        if (one) {
+            return "OK";
+        } else {
+            return "NG";
+        }
+    }
+
+}

+ 74 - 2
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/PaymentManagementServiceImpl.java

@@ -63,7 +63,10 @@ public class PaymentManagementServiceImpl extends ServiceImpl<PaymentManagementM
     private IWarehouseBaseInfoService warehouseBaseInfoService;
     @Autowired
     private IWarehousePositionInfoService warehousePositionInfoService;
-
+    @Autowired
+    private IWeightedDetailsService weightedDetailsService;
+    @Autowired
+    private ICostManagementInfoService costManagementInfoService;
     /**
      * 付款管理列表
      * @param paymentManagement
@@ -216,7 +219,7 @@ public class PaymentManagementServiceImpl extends ServiceImpl<PaymentManagementM
             warehouseInOutInfo1.setGrade(qualityInspectionManagement.getGrade());
             //潮粮取纯重,干粮取净重
             if("潮粮".equals(paymentManagement1.getType())){
-                warehouseInOutInfo1.setNetWeight(paymentManagement1.getPureWeight());
+                warehouseInOutInfo1.setPureWeight(paymentManagement1.getPureWeight());
             }else{
                 warehouseInOutInfo1.setNetWeight(paymentManagement1.getNetWeight());
             }
@@ -233,7 +236,76 @@ public class PaymentManagementServiceImpl extends ServiceImpl<PaymentManagementM
             warehouseInOutDetail.setJiaorenli(qualityInspectionManagement.getJiaorenli());
             warehouseInOutDetail.setImperfectGrain(qualityInspectionManagement.getImperfectGrain());
             warehouseInOutDetailService.insert(warehouseInOutDetail);
+
+            // 生成加权成本数据
+            Float original = 0f;
+            WeightedDetails weightedDetails = new WeightedDetails();
+            weightedDetails.setCompId(AuthSecurityUtils.getCurrentUserInfo().getCompId());
+            weightedDetails.setId(IdGenerator.generateUUID());
+            weightedDetails.setWarehouseId(warehouseInOutInfo1.getBaseId());
+            weightedDetails.setWarehouseName(warehouseInOutInfo1.getWarehouseName());
+            weightedDetails.setGoodsNameKey(warehouseInOutInfo1.getGoodsNameKey());
+            weightedDetails.setGoodsName(warehouseInOutInfo1.getGoodsName());
+            weightedDetails.setGrainType(warehouseInOutInfo1.getType());
+            weightedDetails.setInTypeKey(warehouseInOutInfo1.getTaskTypeKey());
+            weightedDetails.setInType(warehouseInOutInfo1.getTaskType());
+            weightedDetails.setNetWeight(warehouseInOutInfo1.getNetWeight());
+            weightedDetails.setPureWeight(warehouseInOutInfo1.getPureWeight());
+            weightedDetails.setUnitPrice(warehouseInOutInfo1.getUnitPrice());
+            weightedDetails.setDeductionAmount(warehouseInOutInfo1.getDeductionAmount());
+            weightedDetails.setFreight(warehouseInOutInfo1.getFreight());
+            weightedDetails.setOriginalStock(original);
+            // 查询入库全加权成本
+            List<WeightedDetails> weightedDetailsList = weightedDetailsService.selectList(new EntityWrapper<WeightedDetails>().eq("warehouse_id", warehouseInOutInfo1.getWarehouseName())
+                    .eq("goods_name_key", warehouseInOutInfo1.getGoodsNameKey()).orderBy("update_date", false));
+            if (CollectionUtils.isEmpty(weightedDetailsList)) {
+                weightedDetails.setCostBefore(0f);
+            } else {
+                weightedDetails.setCostBefore(weightedDetailsList.get(0).getCostBefore());
+            }
+            // 计算新加权成本
+            Float newCost = 0f;
+            if ("干粮".equals(warehouseInOutInfo1.getTaskType())) {
+                newCost = ((warehouseInOutInfo1.getCost() + warehouseInOutInfo1.getFreight()) * warehouseInOutInfo1.getNetWeight() + original * weightedDetails.getCostBefore()) / (warehouseInOutInfo1.getNetWeight() + original);
+
+            } else {
+                newCost = ((warehouseInOutInfo1.getCost() + warehouseInOutInfo1.getFreight()) * warehouseInOutInfo1.getNetWeight() + original * weightedDetails.getCostBefore()) / (warehouseInOutInfo1.getPureWeight() + original);
+
+            }
+            weightedDetails.setCostAfter(newCost);
+
+            weightedDetailsService.insert(weightedDetails);
+            // 修改成本信息表
+            CostManagementInfo costManagementInfo = costManagementInfoService.selectOne(new EntityWrapper<CostManagementInfo>().eq("warehouse_id", weightedDetails.getWarehouseId())
+                    .eq("goods_name_key", weightedDetails.getGoodsNameKey()));
+            List<WeightedDetails> weightedDetailsLists = weightedDetailsService.selectList(new EntityWrapper<WeightedDetails>().eq("warehouse_id", warehouseInOutInfo1.getWarehouseName())
+                    .eq("goods_name_key", warehouseInOutInfo1.getGoodsNameKey()).orderBy("update_date", false));
+            Float net = 0f;
+            for(int i=0;i<weightedDetailsLists.size();i++){
+                net = net +weightedDetailsLists.get(i).getNetWeight();
+            }
+            if(costManagementInfo ==null){
+                CostManagementInfo costManagementInfo1= new CostManagementInfo();
+                costManagementInfo1.setCompId(AuthSecurityUtils.getCurrentUserInfo().getCompId());
+                costManagementInfo1.setId(IdGenerator.generateUUID());
+                costManagementInfo1.setWarehouseId(weightedDetails.getWarehouseId());
+                costManagementInfo1.setWarehouseName(weightedDetails.getWarehouseName());
+                costManagementInfo1.setGoodsNameKey(weightedDetails.getGoodsNameKey());
+                costManagementInfo1.setGoodsName(weightedDetails.getGoodsName());
+                costManagementInfo1.setWarehouseType(warehouseBaseInfo.getWarehouseType());
+
+                costManagementInfo1.setStorage(net);
+                costManagementInfo1.setCost(weightedDetails.getCostAfter());
+                costManagementInfoService.insert(costManagementInfo1);
+            }
+            else{
+                costManagementInfo.setCost(weightedDetails.getCostAfter());
+                costManagementInfo.setStorage(net);
+                costManagementInfoService.updateById(costManagementInfo);
+            }
         }
+
+
         this.updateById(paymentManagement);
         return "OK";
     }

+ 246 - 32
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/WarehouseInOutInfoServiceImpl.java

@@ -88,6 +88,10 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
     private GeTuiUtils geTuiUtils;
     @Autowired
     private IStockSaleReceiptReportService stockSaleReceiptReportService;
+    @Autowired
+    private IWeightedDetailsService weightedDetailsService;
+    @Autowired
+    private ICostManagementInfoService costManagementInfoService;
 
     /**
      * 待完成页面列表
@@ -99,8 +103,8 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
     public Page<WarehouseInOutInfo> selectWarehouseInOutInfo(WarehouseInOutInfo warehouseInOutInfo) {
         //查询页面信息
         Wrapper<WarehouseInOutInfo> warehouseInOutInfoWrapper = new EntityWrapper<WarehouseInOutInfo>();
-        if (warehouseInOutInfo.getInOutFlag()!=null){
-            warehouseInOutInfoWrapper.eq("in_out_flag",warehouseInOutInfo.getInOutFlag());
+        if (warehouseInOutInfo.getInOutFlag() != null) {
+            warehouseInOutInfoWrapper.eq("in_out_flag", warehouseInOutInfo.getInOutFlag());
         }
         warehouseInOutInfoWrapper.eq("base_id", warehouseInOutInfo.getBaseId())
                 .eq("position_id", warehouseInOutInfo.getPositionId())
@@ -228,6 +232,8 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                 //判断出入库
                 //常用库入库
                 if ("2".equals(warehouseInOutInfo.getInOutFlag()) && "1".equals(warehouseBaseInfo.getWarehouseType())) {
+
+                    float original = 0f;
                     //判断是否有库
                     if (warehouseBaseInfo != null) {
                         //  查询库位
@@ -240,6 +246,7 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                                     .eq("delete_flag", "0"));
                             // 判断是否有货
                             if (warehousePositionStorageInfo != null) {
+                                original = warehousePositionStorageInfo.getStorage();
                                 // 更新库存量
                                 warehousePositionStorageInfo.setStorage(warehousePositionStorageInfo.getStorage() + warehouseInOutInfo.getNetWeight());
                                 warehousePositionStorageInfoService.updateById(warehousePositionStorageInfo);
@@ -268,14 +275,79 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                         tranCarInfo.setDeductionAmount(warehouseInOutInfo.getDeductionAmount());
                         tranCarInfo.setStatus(StatusEnum.DELIVERED.getName());
                         tranCarInfo.setStatusFlag(StatusEnum.DELIVERED.getFlag());
-                        if ("1".equals(tranCarInfo.getSubmit())){
+                        if ("1".equals(tranCarInfo.getSubmit())) {
                             throw new YException(YExceptionEnum.CARNO_SUBMITTED_ERROR);
-                        }
-                        else{
+                        } else {
                             tranCarInfo.setSubmit("1");
                         }
                         tranCarInfoService.updateById(tranCarInfo);
                     }
+
+                    // 生成加权成本数据
+                    WeightedDetails weightedDetails = new WeightedDetails();
+                    weightedDetails.setCompId(AuthSecurityUtils.getCurrentUserInfo().getCompId());
+                    weightedDetails.setId(IdGenerator.generateUUID());
+                    weightedDetails.setWarehouseId(warehouseInOutInfo.getBaseId());
+                    weightedDetails.setWarehouseName(warehouseInOutInfo.getWarehouseName());
+                    weightedDetails.setGoodsNameKey(warehouseInOutInfo.getGoodsNameKey());
+                    weightedDetails.setGoodsName(warehouseInOutInfo.getGoodsName());
+                    weightedDetails.setGrainType(warehouseInOutInfo.getType());
+                    weightedDetails.setInTypeKey(warehouseInOutInfo.getTaskTypeKey());
+                    weightedDetails.setInType(warehouseInOutInfo.getTaskType());
+                    weightedDetails.setNetWeight(warehouseInOutInfo.getNetWeight());
+                    weightedDetails.setPureWeight(warehouseInOutInfo.getPureWeight());
+                    weightedDetails.setUnitPrice(warehouseInOutInfo.getUnitPrice());
+                    weightedDetails.setDeductionAmount(warehouseInOutInfo.getDeductionAmount());
+                    weightedDetails.setFreight(warehouseInOutInfo.getFreight());
+                    weightedDetails.setOriginalStock(original);
+                    // 查询入库全加权成本
+                    List<WeightedDetails> weightedDetailsList = weightedDetailsService.selectList(new EntityWrapper<WeightedDetails>().eq("warehouse_id", warehouseInOutInfo.getWarehouseName())
+                            .eq("goods_name_key", warehouseInOutInfo.getGoodsNameKey()).orderBy("update_date", false));
+                    if (CollectionUtils.isEmpty(weightedDetailsList)) {
+                        weightedDetails.setCostBefore(0f);
+                    } else {
+                        weightedDetails.setCostBefore(weightedDetailsList.get(0).getCostBefore());
+                    }
+                    // 计算新加权成本
+                    Float newCost = 0f;
+                    if ("干粮".equals(warehouseInOutInfo.getTaskType())) {
+                        newCost = ((warehouseInOutInfo.getCost() + warehouseInOutInfo.getFreight()) * warehouseInOutInfo.getNetWeight() + original * weightedDetails.getCostBefore()) / (warehouseInOutInfo.getNetWeight() + original);
+
+                    } else {
+                        newCost = ((warehouseInOutInfo.getCost() + warehouseInOutInfo.getFreight()) * warehouseInOutInfo.getNetWeight() + original * weightedDetails.getCostBefore()) / (warehouseInOutInfo.getPureWeight() + original);
+
+                    }
+                    weightedDetails.setCostAfter(newCost);
+
+                    weightedDetailsService.insert(weightedDetails);
+                    // 修改成本信息表
+                    CostManagementInfo costManagementInfo = costManagementInfoService.selectOne(new EntityWrapper<CostManagementInfo>().eq("warehouse_id", weightedDetails.getWarehouseId())
+                            .eq("goods_name_key", weightedDetails.getGoodsNameKey()));
+                    List<WeightedDetails> weightedDetailsLists = weightedDetailsService.selectList(new EntityWrapper<WeightedDetails>().eq("warehouse_id", warehouseInOutInfo.getWarehouseName())
+                            .eq("goods_name_key", warehouseInOutInfo.getGoodsNameKey()).orderBy("update_date", false));
+                    Float net = 0f;
+                    for(int i=0;i<weightedDetailsLists.size();i++){
+                        net = net +weightedDetailsLists.get(i).getNetWeight();
+                    }
+                    if(costManagementInfo ==null){
+                        CostManagementInfo costManagementInfo1= new CostManagementInfo();
+                        costManagementInfo1.setCompId(AuthSecurityUtils.getCurrentUserInfo().getCompId());
+                        costManagementInfo1.setId(IdGenerator.generateUUID());
+                        costManagementInfo1.setWarehouseId(weightedDetails.getWarehouseId());
+                        costManagementInfo1.setWarehouseName(weightedDetails.getWarehouseName());
+                        costManagementInfo1.setGoodsNameKey(weightedDetails.getGoodsNameKey());
+                        costManagementInfo1.setGoodsName(weightedDetails.getGoodsName());
+                        costManagementInfo1.setWarehouseType(warehouseBaseInfo.getWarehouseType());
+
+                        costManagementInfo1.setStorage(net);
+                        costManagementInfo1.setCost(weightedDetails.getCostAfter());
+                        costManagementInfoService.insert(costManagementInfo1);
+                    }
+                    else{
+                        costManagementInfo.setCost(weightedDetails.getCostAfter());
+                        costManagementInfo.setStorage(net);
+                        costManagementInfoService.updateById(costManagementInfo);
+                    }
                 }
                 //常用库出库
                 else if ("1".equals(warehouseInOutInfo.getInOutFlag()) && "1".equals(warehouseBaseInfo.getWarehouseType())) {
@@ -383,6 +455,7 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                             .eq("delete_flag", "0"));
                     //更新库存量
                     if (warehouseBaseInfo != null) {
+                        float original = 0f;
                         //  查询库位
                         WarehousePositionInfo warehousePositionInfo = warehousePositionInfoService.selectById(warehouseInOutInfo.getPositionId());
                         if (warehousePositionInfo != null) {
@@ -393,12 +466,14 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                                     .eq("delete_flag", "0"));
                             // 判断是否有货
                             if (warehousePositionStorageInfo != null) {
+                                original = warehousePositionStorageInfo.getStorage() + warehouseInOutInfo.getNetWeight();
                                 // 更新库存量
                                 warehousePositionStorageInfo.setStorage(warehousePositionStorageInfo.getStorage() + warehouseInOutInfo.getNetWeight());
                                 warehousePositionStorageInfoService.updateById(warehousePositionStorageInfo);
                             }
                             // 没有货
                             else {
+                                original=0f;
                                 WarehousePositionStorageInfo warehousePositionStorageInfo1 = new WarehousePositionStorageInfo();
                                 warehousePositionStorageInfo1.setId(IdGenerator.generateUUID());
                                 warehousePositionStorageInfo1.setPositionId(warehouseInOutInfo.getPositionId());
@@ -408,11 +483,76 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                                 warehousePositionStorageInfoService.insert(warehousePositionStorageInfo1);
                             }
                         }
+                        // 生成加权成本数据
+                        WeightedDetails weightedDetails = new WeightedDetails();
+                        weightedDetails.setCompId(AuthSecurityUtils.getCurrentUserInfo().getCompId());
+                        weightedDetails.setId(IdGenerator.generateUUID());
+                        weightedDetails.setWarehouseId(warehouseInOutInfo.getBaseId());
+                        weightedDetails.setWarehouseName(warehouseInOutInfo.getWarehouseName());
+                        weightedDetails.setGoodsNameKey(warehouseInOutInfo.getGoodsNameKey());
+                        weightedDetails.setGoodsName(warehouseInOutInfo.getGoodsName());
+                        weightedDetails.setGrainType(warehouseInOutInfo.getType());
+                        weightedDetails.setInTypeKey(warehouseInOutInfo.getTaskTypeKey());
+                        weightedDetails.setInType(warehouseInOutInfo.getTaskType());
+                        weightedDetails.setNetWeight(warehouseInOutInfo.getNetWeight());
+                        weightedDetails.setPureWeight(warehouseInOutInfo.getPureWeight());
+                        weightedDetails.setUnitPrice(warehouseInOutInfo.getUnitPrice());
+                        weightedDetails.setDeductionAmount(warehouseInOutInfo.getDeductionAmount());
+                        weightedDetails.setFreight(warehouseInOutInfo.getFreight());
+                        weightedDetails.setOriginalStock(original);
+                        // 查询入库全加权成本
+                        List<WeightedDetails> weightedDetailsList = weightedDetailsService.selectList(new EntityWrapper<WeightedDetails>().eq("warehouse_id", warehouseInOutInfo.getWarehouseName())
+                                .eq("goods_name_key", warehouseInOutInfo.getGoodsNameKey()).orderBy("update_date", false));
+                        if (CollectionUtils.isEmpty(weightedDetailsList)) {
+                            weightedDetails.setCostBefore(0f);
+                        } else {
+                            weightedDetails.setCostBefore(weightedDetailsList.get(0).getCostBefore());
+                        }
+                        // 计算新加权成本
+                        Float newCost = 0f;
+                        if ("干粮".equals(warehouseInOutInfo.getTaskType())) {
+                            newCost = ((warehouseInOutInfo.getCost() + warehouseInOutInfo.getFreight()) * warehouseInOutInfo.getNetWeight() + original * weightedDetails.getCostBefore()) / (warehouseInOutInfo.getNetWeight() + original);
+
+                        } else {
+                            newCost = ((warehouseInOutInfo.getCost() + warehouseInOutInfo.getFreight()) * warehouseInOutInfo.getNetWeight() + original * weightedDetails.getCostBefore()) / (warehouseInOutInfo.getPureWeight() + original);
+
+                        }
+                        weightedDetails.setCostAfter(newCost);
+
+                        weightedDetailsService.insert(weightedDetails);
+                        // 修改成本信息表
+                        CostManagementInfo costManagementInfo = costManagementInfoService.selectOne(new EntityWrapper<CostManagementInfo>().eq("warehouse_id", weightedDetails.getWarehouseId())
+                                .eq("goods_name_key", weightedDetails.getGoodsNameKey()));
+                        List<WeightedDetails> weightedDetailsLists = weightedDetailsService.selectList(new EntityWrapper<WeightedDetails>().eq("warehouse_id", warehouseInOutInfo.getWarehouseName())
+                                .eq("goods_name_key", warehouseInOutInfo.getGoodsNameKey()).orderBy("update_date", false));
+                        Float net = 0f;
+                        for(int i=0;i<weightedDetailsLists.size();i++){
+                            net = net +weightedDetailsLists.get(i).getNetWeight();
+                        }
+                        if(costManagementInfo ==null){
+                            CostManagementInfo costManagementInfo1= new CostManagementInfo();
+                            costManagementInfo1.setCompId(AuthSecurityUtils.getCurrentUserInfo().getCompId());
+                            costManagementInfo1.setId(IdGenerator.generateUUID());
+                            costManagementInfo1.setWarehouseId(weightedDetails.getWarehouseId());
+                            costManagementInfo1.setWarehouseName(weightedDetails.getWarehouseName());
+                            costManagementInfo1.setGoodsNameKey(weightedDetails.getGoodsNameKey());
+                            costManagementInfo1.setGoodsName(weightedDetails.getGoodsName());
+                            costManagementInfo1.setWarehouseType(warehouseBaseInfo.getWarehouseType());
+
+                            costManagementInfo1.setStorage(net);
+                            costManagementInfo1.setCost(weightedDetails.getCostAfter());
+                            costManagementInfoService.insert(costManagementInfo1);
+                        }
+                        else{
+                            costManagementInfo.setCost(weightedDetails.getCostAfter());
+                            costManagementInfo.setStorage(net);
+                            costManagementInfoService.updateById(costManagementInfo);
+                        }
                     }
                     StockPurchaseReceiptReport stockPurchaseReceiptReport = new StockPurchaseReceiptReport();
                     PurchaseReceiptReport purchaseReceiptReport = new PurchaseReceiptReport();
                     // 期货采购入库统计
-                    if("2".equals(contractManagementInfo.getGoodsType())) {
+                    if ("2".equals(contractManagementInfo.getGoodsType())) {
                         purchaseReceiptReport.setId(IdGenerator.generateUUID());
                         purchaseReceiptReport.setCompId(warehouseBaseInfo.getCompId());
                         purchaseReceiptReport.setContractNo(warehouseInOutInfo.getContractNo());
@@ -480,7 +620,7 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                         }
                     }
                     //现货采购入库统计
-                    else{
+                    else {
                         stockPurchaseReceiptReport.setId(IdGenerator.generateUUID());
                         stockPurchaseReceiptReport.setCompId(warehouseBaseInfo.getCompId());
                         stockPurchaseReceiptReport.setContractNo(warehouseInOutInfo.getContractNo());
@@ -506,10 +646,9 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                             tranCarInfo.setDeductionAmount(warehouseInOutInfo.getDeductionAmount());
                             tranCarInfo.setStatus(StatusEnum.DELIVERED.getName());
                             tranCarInfo.setStatusFlag(StatusEnum.DELIVERED.getFlag());
-                            if ("1".equals(tranCarInfo.getSubmit())){
+                            if ("1".equals(tranCarInfo.getSubmit())) {
                                 throw new YException(YExceptionEnum.CARNO_SUBMITTED_ERROR);
-                            }
-                            else{
+                            } else {
                                 tranCarInfo.setSubmit("1");
                             }
                             tranCarInfoService.updateById(tranCarInfo);
@@ -594,8 +733,8 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                     }
                     //查询期货现货合同
                     ContractManagementInfo contractManagementInfo = contractManagementInfoService.selectOne(new EntityWrapper<ContractManagementInfo>()
-                            .eq("contract_no",warehouseInOutInfo.getContractNo()));
-                    if("2".equals(contractManagementInfo.getGoodsType())){
+                            .eq("contract_no", warehouseInOutInfo.getContractNo()));
+                    if ("2".equals(contractManagementInfo.getGoodsType())) {
                         //客户生成收货信息
                         TranCarInfo tranCarInfo = new TranCarInfo();
                         tranCarInfo.setId(IdGenerator.generateUUID());
@@ -626,7 +765,7 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                             salesDeliveryReport.setUnitPrice(saleOrder.getUnitPrice());
                             salesDeliveryReport.setInvoiceFee(saleOrder.getInvoiceFee());
                             //期货
-                            if (saleOrder.getBasis()!=null){
+                            if (saleOrder.getBasis() != null) {
                                 salesDeliveryReport.setBasisPrice(saleOrder.getBasis());
                                 BigDecimal unitPrice = new BigDecimal(Float.toString(salesDeliveryReport.getUnitPrice()));
                                 BigDecimal basis = new BigDecimal(Float.toString(salesDeliveryReport.getBasisPrice()));
@@ -681,7 +820,7 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                             salesDeliveryReportService.updateById(salesDeliveryReport);
                             workflowService.activateInstance(salesDeliveryReport.getWorkflowId(), salesDeliveryReport.getId());
                         }
-                    }else {
+                    } else {
                         //现货销售统计
                         StockSaleReceiptReport stockSaleReceiptReport = new StockSaleReceiptReport();
                         stockSaleReceiptReport.setId(IdGenerator.generateUUID());
@@ -692,11 +831,11 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                         stockSaleReceiptReport.setGrossWeight(warehouseInOutInfo.getGrossWeight());
                         stockSaleReceiptReport.setTare(warehouseInOutInfo.getTare());
                         stockSaleReceiptReport.setNetWeight(warehouseInOutInfo.getNetWeight());
-                        if("出库任务".equals(warehouseInOutInfo.getTaskType())){
+                        if ("出库任务".equals(warehouseInOutInfo.getTaskType())) {
                             stockSaleReceiptReport.setDeliveryDate(warehouseInOutInfo.getInOutDate());
                             stockSaleReceiptReport.setSettlementWeight(warehouseInOutInfo.getNetWeight());
                             stockSaleReceiptReport.setAmountIngReceivable(warehouseInOutInfo.getUnitPrice() * stockSaleReceiptReport.getSettlementWeight());
-                        }else if ("退库并出库".equals(warehouseInOutInfo.getTaskType())){
+                        } else if ("退库并出库".equals(warehouseInOutInfo.getTaskType())) {
                             stockSaleReceiptReport.setReturnDate(warehouseInOutInfo.getInOutDate());
                             stockSaleReceiptReport.setSettlementWeight(-warehouseInOutInfo.getNetWeight());
                             stockSaleReceiptReport.setAmountIngReceivable(0.0f);
@@ -755,6 +894,8 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                     }
                     //更新库存量
                     if (warehouseBaseInfo != null) {
+
+                       Float original = 0f;
                         //  查询库位
                         WarehousePositionInfo warehousePositionInfo = warehousePositionInfoService.selectById(warehouseInOutInfo.getPositionId());
                         if (warehousePositionInfo != null) {
@@ -765,12 +906,14 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                                     .eq("delete_flag", "0"));
                             // 判断是否有货
                             if (warehousePositionStorageInfo != null) {
+                                original = warehousePositionStorageInfo.getStorage() + warehouseInOutInfo.getNetWeight();
                                 // 更新库存量
                                 warehousePositionStorageInfo.setStorage(warehousePositionStorageInfo.getStorage() + warehouseInOutInfo.getNetWeight());
                                 warehousePositionStorageInfoService.updateById(warehousePositionStorageInfo);
                             }
                             // 没有货
                             else {
+                                original= 0f;
                                 WarehousePositionStorageInfo warehousePositionStorageInfo1 = new WarehousePositionStorageInfo();
                                 warehousePositionStorageInfo1.setId(IdGenerator.generateUUID());
                                 warehousePositionStorageInfo1.setPositionId(warehouseInOutInfo.getPositionId());
@@ -780,11 +923,77 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                                 warehousePositionStorageInfoService.insert(warehousePositionStorageInfo1);
                             }
                         }
+
+                        // 生成加权成本数据
+                        WeightedDetails weightedDetails = new WeightedDetails();
+                        weightedDetails.setCompId(AuthSecurityUtils.getCurrentUserInfo().getCompId());
+                        weightedDetails.setId(IdGenerator.generateUUID());
+                        weightedDetails.setWarehouseId(warehouseInOutInfo.getBaseId());
+                        weightedDetails.setWarehouseName(warehouseInOutInfo.getWarehouseName());
+                        weightedDetails.setGoodsNameKey(warehouseInOutInfo.getGoodsNameKey());
+                        weightedDetails.setGoodsName(warehouseInOutInfo.getGoodsName());
+                        weightedDetails.setGrainType(warehouseInOutInfo.getType());
+                        weightedDetails.setInTypeKey(warehouseInOutInfo.getTaskTypeKey());
+                        weightedDetails.setInType(warehouseInOutInfo.getTaskType());
+                        weightedDetails.setNetWeight(warehouseInOutInfo.getNetWeight());
+                        weightedDetails.setPureWeight(warehouseInOutInfo.getPureWeight());
+                        weightedDetails.setUnitPrice(warehouseInOutInfo.getUnitPrice());
+                        weightedDetails.setDeductionAmount(warehouseInOutInfo.getDeductionAmount());
+                        weightedDetails.setFreight(warehouseInOutInfo.getFreight());
+                        weightedDetails.setOriginalStock(original);
+                        // 查询入库全加权成本
+                        List<WeightedDetails> weightedDetailsList = weightedDetailsService.selectList(new EntityWrapper<WeightedDetails>().eq("warehouse_id", warehouseInOutInfo.getWarehouseName())
+                                .eq("goods_name_key", warehouseInOutInfo.getGoodsNameKey()).orderBy("update_date", false));
+                        if (CollectionUtils.isEmpty(weightedDetailsList)) {
+                            weightedDetails.setCostBefore(0f);
+                        } else {
+                            weightedDetails.setCostBefore(weightedDetailsList.get(0).getCostBefore());
+                        }
+                        // 计算新加权成本
+                        Float newCost = 0f;
+                        if ("干粮".equals(warehouseInOutInfo.getTaskType())) {
+                            newCost = ((warehouseInOutInfo.getCost() + warehouseInOutInfo.getFreight()) * warehouseInOutInfo.getNetWeight() + original * weightedDetails.getCostBefore()) / (warehouseInOutInfo.getNetWeight() + original);
+
+                        } else {
+                            newCost = ((warehouseInOutInfo.getCost() + warehouseInOutInfo.getFreight()) * warehouseInOutInfo.getNetWeight() + original * weightedDetails.getCostBefore()) / (warehouseInOutInfo.getPureWeight() + original);
+
+                        }
+                        weightedDetails.setCostAfter(newCost);
+
+                        weightedDetailsService.insert(weightedDetails);
+                        // 修改成本信息表
+                        CostManagementInfo costManagementInfo = costManagementInfoService.selectOne(new EntityWrapper<CostManagementInfo>().eq("warehouse_id", weightedDetails.getWarehouseId())
+                                .eq("goods_name_key", weightedDetails.getGoodsNameKey()));
+                        List<WeightedDetails> weightedDetailsLists = weightedDetailsService.selectList(new EntityWrapper<WeightedDetails>().eq("warehouse_id", warehouseInOutInfo.getWarehouseName())
+                                .eq("goods_name_key", warehouseInOutInfo.getGoodsNameKey()).orderBy("update_date", false));
+                        Float net = 0f;
+                        for(int i=0;i<weightedDetailsLists.size();i++){
+                            net = net +weightedDetailsLists.get(i).getNetWeight();
+                        }
+                        if(costManagementInfo ==null){
+                            CostManagementInfo costManagementInfo1= new CostManagementInfo();
+                            costManagementInfo1.setCompId(AuthSecurityUtils.getCurrentUserInfo().getCompId());
+                            costManagementInfo1.setId(IdGenerator.generateUUID());
+                            costManagementInfo1.setWarehouseId(weightedDetails.getWarehouseId());
+                            costManagementInfo1.setWarehouseName(weightedDetails.getWarehouseName());
+                            costManagementInfo1.setGoodsNameKey(weightedDetails.getGoodsNameKey());
+                            costManagementInfo1.setGoodsName(weightedDetails.getGoodsName());
+                            costManagementInfo1.setWarehouseType(warehouseBaseInfo.getWarehouseType());
+
+                            costManagementInfo1.setStorage(net);
+                            costManagementInfo1.setCost(weightedDetails.getCostAfter());
+                            costManagementInfoService.insert(costManagementInfo1);
+                        }
+                        else{
+                            costManagementInfo.setCost(weightedDetails.getCostAfter());
+                            costManagementInfo.setStorage(net);
+                            costManagementInfoService.updateById(costManagementInfo);
+                        }
                     }
                     StockPurchaseReceiptReport stockPurchaseReceiptReport = new StockPurchaseReceiptReport();
                     PurchaseReceiptReport purchaseReceiptReport = new PurchaseReceiptReport();
                     // 期货采购入库统计
-                    if("2".equals(contractManagementInfo.getGoodsType())) {
+                    if ("2".equals(contractManagementInfo.getGoodsType())) {
                         purchaseReceiptReport.setId(IdGenerator.generateUUID());
                         purchaseReceiptReport.setCompId(warehouseBaseInfo.getCompId());
                         purchaseReceiptReport.setContractNo(warehouseInOutInfo.getContractNo());
@@ -852,7 +1061,7 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                         }
                     }
                     //现货采购入库统计
-                    else{
+                    else {
                         stockPurchaseReceiptReport.setId(IdGenerator.generateUUID());
                         stockPurchaseReceiptReport.setCompId(warehouseBaseInfo.getCompId());
                         stockPurchaseReceiptReport.setContractNo(warehouseInOutInfo.getContractNo());
@@ -878,10 +1087,9 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                             tranCarInfo.setDeductionAmount(warehouseInOutInfo.getDeductionAmount());
                             tranCarInfo.setStatus(StatusEnum.DELIVERED.getName());
                             tranCarInfo.setStatusFlag(StatusEnum.DELIVERED.getFlag());
-                            if ("1".equals(tranCarInfo.getSubmit())){
+                            if ("1".equals(tranCarInfo.getSubmit())) {
                                 throw new YException(YExceptionEnum.CARNO_SUBMITTED_ERROR);
-                            }
-                            else{
+                            } else {
                                 tranCarInfo.setSubmit("1");
                             }
                             tranCarInfoService.updateById(tranCarInfo);
@@ -968,8 +1176,8 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
 
                     //查询期货现货合同
                     ContractManagementInfo contractManagementInfo = contractManagementInfoService.selectOne(new EntityWrapper<ContractManagementInfo>()
-                            .eq("contract_no",warehouseInOutInfo.getContractNo()));
-                    if("2".equals(contractManagementInfo.getGoodsType())){
+                            .eq("contract_no", warehouseInOutInfo.getContractNo()));
+                    if ("2".equals(contractManagementInfo.getGoodsType())) {
                         //客户生成收货信息
                         TranCarInfo tranCarInfo = new TranCarInfo();
                         tranCarInfo.setId(IdGenerator.generateUUID());
@@ -1000,7 +1208,7 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                             salesDeliveryReport.setUnitPrice(saleOrder.getUnitPrice());
                             salesDeliveryReport.setInvoiceFee(saleOrder.getInvoiceFee());
                             //期货
-                            if (saleOrder.getBasis()!=null){
+                            if (saleOrder.getBasis() != null) {
                                 salesDeliveryReport.setBasisPrice(saleOrder.getBasis());
                                 BigDecimal unitPrice = new BigDecimal(Float.toString(salesDeliveryReport.getUnitPrice()));
                                 BigDecimal basis = new BigDecimal(Float.toString(salesDeliveryReport.getBasisPrice()));
@@ -1055,7 +1263,7 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                             salesDeliveryReportService.updateById(salesDeliveryReport);
                             workflowService.activateInstance(salesDeliveryReport.getWorkflowId(), salesDeliveryReport.getId());
                         }
-                    }else {
+                    } else {
                         //现货销售统计
                         StockSaleReceiptReport stockSaleReceiptReport = new StockSaleReceiptReport();
                         stockSaleReceiptReport.setId(IdGenerator.generateUUID());
@@ -1066,15 +1274,21 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                         stockSaleReceiptReport.setGrossWeight(warehouseInOutInfo.getGrossWeight());
                         stockSaleReceiptReport.setTare(warehouseInOutInfo.getTare());
                         stockSaleReceiptReport.setNetWeight(warehouseInOutInfo.getNetWeight());
-                        if("出库任务".equals(warehouseInOutInfo.getTaskType())){
+                        if ("出库任务".equals(warehouseInOutInfo.getTaskType())) {
                             stockSaleReceiptReport.setDeliveryDate(warehouseInOutInfo.getInOutDate());
                             stockSaleReceiptReport.setSettlementWeight(warehouseInOutInfo.getNetWeight());
                             stockSaleReceiptReport.setAmountIngReceivable(warehouseInOutInfo.getUnitPrice() * stockSaleReceiptReport.getSettlementWeight());
-                        }else if ("退库并出库".equals(warehouseInOutInfo.getTaskType())){
-                            stockSaleReceiptReport.setReturnDate(warehouseInOutInfo.getInOutDate());
-                            stockSaleReceiptReport.setSettlementWeight(-warehouseInOutInfo.getNetWeight());
-                            stockSaleReceiptReport.setAmountIngReceivable(0.0f);
-                            stockSaleReceiptReport.setReturnFlag("1");
+                        } else if ("退库并出库".equals(warehouseInOutInfo.getTaskType())) {
+                            if ("1".equals(warehouseInOutInfo.getTaskTypeKey())) {
+                                stockSaleReceiptReport.setDeliveryDate(warehouseInOutInfo.getInOutDate());
+                                stockSaleReceiptReport.setSettlementWeight(warehouseInOutInfo.getNetWeight());
+                                stockSaleReceiptReport.setAmountIngReceivable(warehouseInOutInfo.getUnitPrice() * stockSaleReceiptReport.getSettlementWeight());
+                            } else if ("4".equals(warehouseInOutInfo.getTaskTypeKey())) {
+                                stockSaleReceiptReport.setReturnDate(warehouseInOutInfo.getInOutDate());
+                                stockSaleReceiptReport.setSettlementWeight(-warehouseInOutInfo.getNetWeight());
+                                stockSaleReceiptReport.setAmountIngReceivable(0.0f);
+                                stockSaleReceiptReport.setReturnFlag("1");
+                            }
                         }
                         stockSaleReceiptReportService.insert(stockSaleReceiptReport);
                         boolean isStartWorkflow = org.apache.commons.lang3.StringUtils.isBlank(stockSaleReceiptReport.getWorkflowId());
@@ -1294,7 +1508,7 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
         WarehouseInOutInfo warehouseInOutInfo = this.selectById(id);
         //详情信息
         WarehouseInOutDetail warehouseInOutDetail = warehouseInOutDetailService.selectOne(new EntityWrapper<WarehouseInOutDetail>().eq(WarehouseInOutDetail.QueryFiles.INFO_ID, id));
-        if (warehouseInOutDetail!=null){
+        if (warehouseInOutDetail != null) {
             warehouseInOutInfo.setWarehouseInOutDetail(warehouseInOutDetail);
         }
         return warehouseInOutInfo;

+ 5 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/CostManagementInfoMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yh.saas.plugin.yiliangyiyun.mapper.CostManagementInfoMapper">
+
+</mapper>