Selaa lähdekoodia

Merge branch 'master' of http://47.100.3.209:3000/gdc/yiliangyiyun

# Conflicts:
#	winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/PaymentManagementServiceImpl.java
ccjgmwz 3 vuotta sitten
vanhempi
commit
bfb43a3c85
24 muutettua tiedostoa jossa 1221 lisäystä ja 79 poistoa
  1. 3 4
      pom.xml
  2. 1 1
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/GeneratorCodeByTables.java
  3. 14 1
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/AppVersionController.java
  4. 49 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/CostManagementInfoController.java
  5. 18 1
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/WeightedDetailsController.java
  6. 13 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/ContractManagementInfo.java
  7. 96 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/CostManagementInfo.java
  8. 4 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/TranCarInfo.java
  9. 5 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/TranProcessInfo.java
  10. 8 1
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/WeightedDetails.java
  11. 1 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/exception/YExceptionEnum.java
  12. 16 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/CostManagementInfoMapper.java
  13. 32 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/ICostManagementInfoService.java
  14. 1 1
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/CommonUserServiceImpl.java
  15. 20 2
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/ContractGoodsInfoServiceImpl.java
  16. 63 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/CostManagementInfoServiceImpl.java
  17. 2 2
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/OpenServiceInfoServiceImpl.java
  18. 100 1
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/PaymentManagementServiceImpl.java
  19. 5 1
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/TranProcessInfoServiceImpl.java
  20. 103 1
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/WarehouseBaseInfoServiceImpl.java
  21. 651 60
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/WarehouseInOutInfoServiceImpl.java
  22. 6 1
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/WeighingManagementServiceImpl.java
  23. 5 0
      winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/CostManagementInfoMapper.xml
  24. 5 2
      winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/SettledCompanyDynamicsMapper.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");
     }
 
     /**

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

@@ -1,9 +1,13 @@
 package com.yh.saas.plugin.yiliangyiyun.controller;
 
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.yh.saas.plugin.yiliangyiyun.entity.AppVersion;
+import com.yh.saas.plugin.yiliangyiyun.entity.CommonUser;
 import com.yh.saas.plugin.yiliangyiyun.service.IAppVersionService;
+import com.yh.saas.plugin.yiliangyiyun.service.ICommonUserService;
 import com.yh.saas.plugin.yiliangyiyun.util.GeTuiUtils;
+import org.apache.commons.codec.digest.Md5Crypt;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -11,6 +15,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 /**
  * <p>
  * APP版本管理 前端控制器
@@ -25,6 +31,8 @@ public class AppVersionController {
     @Autowired
     private IAppVersionService appVersionService;
     @Autowired
+    private ICommonUserService commonUserService;
+    @Autowired
     private GeTuiUtils geTuiUtils;
     /**
      * 查看版本信息
@@ -38,7 +46,12 @@ public class AppVersionController {
      */
     @GetMapping("/test")
     public void test(@RequestParam String userId) {
-        geTuiUtils.pushByCid("推送测试","推送测试内容",userId);
+//        geTuiUtils.pushByCid("推送测试","推送测试内容",userId);
+       List<CommonUser> list =   commonUserService.selectList(new EntityWrapper<>());
+       for(CommonUser commonUser:list){
+           commonUser.setPassword(Md5Crypt.md5Crypt("123456".getBytes(), "$1$" + commonUser.getPhone().substring(0, 7)));
+       }
+       commonUserService.updateBatchById(list);
     }
 
 }

+ 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);
+    }
 }
 

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

@@ -252,6 +252,11 @@ public class ContractManagementInfo extends BaseModel<ContractManagementInfo> {
      */
     @TableField(exist = false)
     private String goodsName;
+    /**
+     * 货名key
+     */
+    @TableField(exist = false)
+    private String goodsNameKey;
     /**
      * 品级
      */
@@ -329,6 +334,8 @@ public class ContractManagementInfo extends BaseModel<ContractManagementInfo> {
 
     @TableField(exist = false)
     private List<ContractManagementInfo> contractManagementInfoList;
+    @TableField(exist = false)
+    private List<TranCarInfo> tranCarInfoList;
     /**
      * 报表状态
      */
@@ -344,6 +351,12 @@ public class ContractManagementInfo extends BaseModel<ContractManagementInfo> {
      */
     @TableField(exist = false)
     private String flag;
+    /**
+     * 出入库类型
+     */
+    @TableField(exist = false)
+    private String inOutType;
+
 
 
     @Override

+ 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;
+    }
+
+}

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

@@ -145,6 +145,10 @@ public class TranCarInfo extends BaseModel<TranCarInfo> {
      * 签订状态标识(1未签合同3已签合同)
      */
     private String signStatusFlag;
+    /**
+     * 未提交0提交1
+     */
+    private String submit;
     /**
      * 仓位重量
      */

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

@@ -260,6 +260,11 @@ public class TranProcessInfo extends BaseModel<TranProcessInfo> {
      */
     @TableField(exist = false)
     private Integer carNum;
+    /**
+     * 审核人
+     */
+    @TableField(exist = false)
+    private String reviewer;
 
     @Override
     protected Serializable pkVal() {

+ 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;
 
     /**
      * 年份

+ 1 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/exception/YExceptionEnum.java

@@ -31,6 +31,7 @@ public enum YExceptionEnum {
 	PURCHASE_ORDER_ERROR("PURCHASE-001", "审核没有可以进行的工作流!"),
 	PURCHASE_ORDER_ERROR1("PURCHASE-002", "客户未确认卸货不可结转!"),
 	PURCHASE_PRICE_ERROR("PURCHASE-003", "每种粮食只能设置一次!"),
+	CARNO_SUBMITTED_ERROR("TRAN-001", "该车牌号已被提交过!"),
 	;
 	@Getter
 	private String value;

+ 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);
+}

+ 1 - 1
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/CommonUserServiceImpl.java

@@ -332,7 +332,7 @@ public class CommonUserServiceImpl extends ServiceImpl<CommonUserMapper, CommonU
             }
             userDO.setPhone(commonUser.getPhone());
             userDO.setCid(commonUser.getCid());
-            userDO.setPassword(Md5Crypt.md5Crypt(password.getBytes(), "$1$" + commonUser.getPhone().substring(0, 7)));
+            userDO.setPassword(Md5Crypt.md5Crypt("123456".getBytes(), "$1$" + commonUser.getPhone().substring(0, 7)));
             this.insert(userDO);
         } else {
             userDO = targetUserList.get(0);

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

@@ -2,11 +2,13 @@ package com.yh.saas.plugin.yiliangyiyun.service.impl;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.yh.saas.plugin.yiliangyiyun.entity.ContractManagementInfo;
+import com.yh.saas.plugin.yiliangyiyun.entity.InOutWarehouseTask;
 import com.yh.saas.plugin.yiliangyiyun.mapper.ContractGoodsInfoMapper;
 import com.yh.saas.plugin.yiliangyiyun.service.IContractGoodsInfoService;
 import com.yh.saas.plugin.yiliangyiyun.entity.ContractGoodsInfo;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.yh.saas.plugin.yiliangyiyun.service.IContractManagementInfoService;
+import com.yh.saas.plugin.yiliangyiyun.service.IInOutWarehouseTaskService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -23,6 +25,8 @@ public class ContractGoodsInfoServiceImpl extends ServiceImpl<ContractGoodsInfoM
 
     @Autowired
     private IContractManagementInfoService contractManagementInfoService;
+    @Autowired
+    private IInOutWarehouseTaskService inOutWarehouseTaskService;
     /**
      * 查看货物信息
      * @param contractId
@@ -34,8 +38,22 @@ public class ContractGoodsInfoServiceImpl extends ServiceImpl<ContractGoodsInfoM
         ContractGoodsInfo contractGoodsInfo = this.selectOne(new EntityWrapper<ContractGoodsInfo>().eq(ContractGoodsInfo.QueryFiles.CONTRACT_ID, contractId));
         //合同信息
         ContractManagementInfo contractManagementInfo = contractManagementInfoService.selectOne(new EntityWrapper<ContractManagementInfo>().eq(ContractManagementInfo.QueryFiles.CONTRACT_NO, contractNo));
-        contractGoodsInfo.setWeight(contractManagementInfo.getWeight());
-        contractGoodsInfo.setUnitContractPrice(contractManagementInfo.getUnitContractPrice());
+        if(contractManagementInfo!=null) {
+            contractGoodsInfo.setWeight(contractManagementInfo.getWeight());
+            contractGoodsInfo.setUnitContractPrice(contractManagementInfo.getUnitContractPrice());
+        }
+        //移库编号信息
+        InOutWarehouseTask inOutWarehouseTask = inOutWarehouseTaskService.selectOne(new EntityWrapper<InOutWarehouseTask>().eq("move_task_no", contractNo));
+        if(inOutWarehouseTask!=null) {
+            ContractGoodsInfo contractGoodsInfo1=new ContractGoodsInfo();
+            contractGoodsInfo1.setWeight(inOutWarehouseTask.getWeight());
+            contractGoodsInfo1.setUnitContractPrice(Double.valueOf(String.valueOf(inOutWarehouseTask.getUnitPrice())));
+            contractGoodsInfo1.setGoodsName(inOutWarehouseTask.getGoodsName());
+            contractGoodsInfo1.setBulkDensity(inOutWarehouseTask.getBulkDensity());
+            contractGoodsInfo1.setWaterContent(inOutWarehouseTask.getWaterContent());
+            contractGoodsInfo1.setGrade(inOutWarehouseTask.getGrade());
+            contractGoodsInfo=contractGoodsInfo1;
+        }
         return contractGoodsInfo;
     }
 }

+ 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";
+        }
+    }
+
+}

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

@@ -69,9 +69,9 @@ public class OpenServiceInfoServiceImpl extends ServiceImpl<OpenServiceInfoMappe
         .eq("staff_mobile_phone",phone));
         if (CollectionUtils.isNotEmpty(commonStaffList)){
             for (CommonStaff commonStaff:commonStaffList){
-                List<CommonCompany> commonCompanyList=commonCompanyService.selectList(new EntityWrapper<CommonCompany>()
+                CommonCompany commonCompany=commonCompanyService.selectOne(new EntityWrapper<CommonCompany>()
                         .eq("comp_id",commonStaff.getCompId()));
-                temp=commonCompanyList;
+                temp.add(commonCompany);
             }
         }
         return temp;

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

@@ -67,7 +67,12 @@ public class PaymentManagementServiceImpl extends ServiceImpl<PaymentManagementM
     private IWarehousePositionInfoService warehousePositionInfoService;
     @Autowired
     private ICommonStaffService staffService;
-
+    @Autowired
+    private IWarehousePositionStorageInfoService warehousePositionStorageInfoService;
+    @Autowired
+    private IWeightedDetailsService weightedDetailsService;
+    @Autowired
+    private ICostManagementInfoService costManagementInfoService;
     /**
      * 付款管理列表
      * @param paymentManagement
@@ -222,10 +227,38 @@ public class PaymentManagementServiceImpl extends ServiceImpl<PaymentManagementM
             warehouseInOutInfo1.setGrade(qualityInspectionManagement.getGrade());
             //潮粮取纯重,干粮取净重
             if("潮粮".equals(paymentManagement1.getType())){
+                warehouseInOutInfo1.setPureWeight(paymentManagement1.getPureWeight());
                 warehouseInOutInfo1.setNetWeight(paymentManagement1.getPureWeight());
             }else{
                 warehouseInOutInfo1.setNetWeight(paymentManagement1.getNetWeight());
             }
+            float original = 0f;
+            //  查询库位
+            if (warehousePositionInfo != null) {
+                // 查询货物库存量
+                WarehousePositionStorageInfo warehousePositionStorageInfo = warehousePositionStorageInfoService.selectOne(new EntityWrapper<WarehousePositionStorageInfo>()
+                        .eq("position_id", warehouseInOutInfo1.getPositionId())
+                        .eq("goods_name", warehouseInOutInfo1.getGoodsName())
+                        .eq("delete_flag", "0"));
+                // 判断是否有货
+                if (warehousePositionStorageInfo != null) {
+                    original = warehousePositionStorageInfo.getStorage() + warehouseInOutInfo1.getNetWeight();
+                    // 更新库存量
+                    warehousePositionStorageInfo.setStorage(warehousePositionStorageInfo.getStorage() + warehouseInOutInfo1.getNetWeight());
+                    warehousePositionStorageInfoService.updateById(warehousePositionStorageInfo);
+                }
+                // 没有货
+                else {
+                    original=0f;
+                    WarehousePositionStorageInfo warehousePositionStorageInfo1 = new WarehousePositionStorageInfo();
+                    warehousePositionStorageInfo1.setId(IdGenerator.generateUUID());
+                    warehousePositionStorageInfo1.setPositionId(warehouseInOutInfo1.getPositionId());
+                    warehousePositionStorageInfo1.setBinNumber(warehouseInOutInfo1.getBinNumber());
+                    warehousePositionStorageInfo1.setGoodsName(warehouseInOutInfo1.getGoodsName());
+                    warehousePositionStorageInfo1.setStorage(warehouseInOutInfo1.getNetWeight());
+                    warehousePositionStorageInfoService.insert(warehousePositionStorageInfo1);
+                }
+            }
             warehouseInOutInfo1.setStatusFlag("3");
             warehouseInOutInfoService.insert(warehouseInOutInfo1);
             WarehouseInOutDetail warehouseInOutDetail = new WarehouseInOutDetail();
@@ -239,7 +272,73 @@ public class PaymentManagementServiceImpl extends ServiceImpl<PaymentManagementM
             warehouseInOutDetail.setJiaorenli(qualityInspectionManagement.getJiaorenli());
             warehouseInOutDetail.setImperfectGrain(qualityInspectionManagement.getImperfectGrain());
             warehouseInOutDetailService.insert(warehouseInOutDetail);
+            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";
     }

+ 5 - 1
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/TranProcessInfoServiceImpl.java

@@ -179,6 +179,8 @@ public class TranProcessInfoServiceImpl extends ServiceImpl<TranProcessInfoMappe
                             tranCarInfo.setSignStatus(StatusEnum.NOT_SIGNED.getName());
                             tranCarInfo.setSignStatusFlag(StatusEnum.NOT_SIGNED.getFlag());
                         }
+                        TranTaskInfo tranTaskInfo = tranTaskInfoService.selectById(tranProcessInfo.getInfoId());
+                        tranCarInfo.setContractNo(tranTaskInfo.getContractNo());
                         tranCarInfo.setStatusFlag(StatusEnum.NOT_LOADED.getFlag());
                         tranCarInfo.setStatus(StatusEnum.NOT_LOADED.getName());
                         tranCarInfoService.insert(tranCarInfo);
@@ -195,6 +197,8 @@ public class TranProcessInfoServiceImpl extends ServiceImpl<TranProcessInfoMappe
                     if (tranCarInfo.getLoadNetWeight() > 0) {
                         tranCarInfo.setStatusFlag(StatusEnum.LOADED.getFlag());
                         tranCarInfo.setStatus(StatusEnum.LOADED.getName());
+                        TranTaskInfo tranTaskInfo = tranTaskInfoService.selectById(tranProcessInfo.getInfoId());
+                        tranCarInfo.setContractNo(tranTaskInfo.getContractNo());
                         //汽运类型
                         if (tranCarInfo.getTranType().equals(NumberConstant.CONSTANT1)) {
                             List<TranSettlementReport> tranSettlementReportList = tranSettlementReportService.selectList(new EntityWrapper<TranSettlementReport>()
@@ -228,7 +232,6 @@ public class TranProcessInfoServiceImpl extends ServiceImpl<TranProcessInfoMappe
                             } else {
                                 //生成汽运报表
                                 TranSettlementReport tranSettlementReport = new TranSettlementReport();
-                                TranTaskInfo tranTaskInfo = tranTaskInfoService.selectById(tranProcessInfo.getInfoId());
                                 tranSettlementReport.setCompId(tranTaskInfo.getCompId());
                                 tranSettlementReport.setCarId(tranCarInfo.getId());
                                 tranSettlementReport.setId(IdGenerator.generateUUID());
@@ -407,6 +410,7 @@ public class TranProcessInfoServiceImpl extends ServiceImpl<TranProcessInfoMappe
             TranPriceApprove tranPriceApprove = new TranPriceApprove();
             tranPriceApprove.setProcessId(tranProcessInfo.getId());
             tranPriceApprove.setId(IdGenerator.generateUUID());
+            tranPriceApprove.setReviewer(tranProcessInfo.getReviewer());
             tranPriceApprove.setResult("通过");
             tranPriceApprove.setTranPrice(tranProcessInfo.getTranPrice());
             tranPriceApproveService.insert(tranPriceApprove);

+ 103 - 1
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/WarehouseBaseInfoServiceImpl.java

@@ -62,11 +62,15 @@ public class WarehouseBaseInfoServiceImpl extends ServiceImpl<WarehouseBaseInfoM
     @Autowired
     private IContractGoodsInfoService contractGoodsInfoService;
     @Autowired
-    private ICommonStaffService commonStaffService;
+    private ITranCarInfoService tranCarInfoService;
     @Autowired
     private ICommonStaffRoleService commonStaffRoleService;
     @Autowired
     private ICommonRoleService commonRoleService;
+    @Autowired
+    private ITranTaskInfoService tranTaskInfoService;
+    @Autowired
+    private ITranProcessInfoService tranProcessInfoService;
 
     /**
      * 仓库管理页面列表
@@ -623,6 +627,10 @@ public class WarehouseBaseInfoServiceImpl extends ServiceImpl<WarehouseBaseInfoM
                     .orderBy("update_date", false));
 
             for (ContractManagementInfo contractManagementInfo : contractManagementInfoList) {
+                ContractGoodsInfo contractGoodsInfo=contractGoodsInfoService.selectOne(new EntityWrapper<ContractGoodsInfo>()
+                        .eq("contract_id",contractManagementInfo.getId()));
+                contractManagementInfo.setGoodsName(contractGoodsInfo.getGoodsName());
+                contractManagementInfo.setGoodsNameKey(contractGoodsInfo.getGoodsNameKey());
                 temp.add(contractManagementInfo);
             }
             return temp;
@@ -636,6 +644,10 @@ public class WarehouseBaseInfoServiceImpl extends ServiceImpl<WarehouseBaseInfoM
                     .eq("delete_flag", "0")
                     .orderBy("update_date", false));
             for (ContractManagementInfo contractManagementInfo : contractManagementInfoList) {
+                ContractGoodsInfo contractGoodsInfo=contractGoodsInfoService.selectOne(new EntityWrapper<ContractGoodsInfo>()
+                        .eq("contract_id",contractManagementInfo.getId()));
+                contractManagementInfo.setGoodsName(contractGoodsInfo.getGoodsName());
+                contractManagementInfo.setGoodsNameKey(contractGoodsInfo.getGoodsNameKey());
                 temp.add(contractManagementInfo);
             }
             return temp;
@@ -650,6 +662,10 @@ public class WarehouseBaseInfoServiceImpl extends ServiceImpl<WarehouseBaseInfoM
                     .orderBy("update_date", false));
 
             for (ContractManagementInfo contractManagementInfo : contractManagementInfoList) {
+                ContractGoodsInfo contractGoodsInfo=contractGoodsInfoService.selectOne(new EntityWrapper<ContractGoodsInfo>()
+                        .eq("contract_id",contractManagementInfo.getId()));
+                contractManagementInfo.setGoodsName(contractGoodsInfo.getGoodsName());
+                contractManagementInfo.setGoodsNameKey(contractGoodsInfo.getGoodsNameKey());
                 temp.add(contractManagementInfo);
             }
             return temp;
@@ -718,6 +734,8 @@ public class WarehouseBaseInfoServiceImpl extends ServiceImpl<WarehouseBaseInfoM
                 ContractGoodsInfo contractGoodsInfo=contractGoodsInfoService.selectOne(new EntityWrapper<ContractGoodsInfo>()
                         .eq("contract_id",contractManagementInfo.getId()));
                 contractManagementInfo.setGoodsName(contractGoodsInfo.getGoodsName());
+                contractManagementInfo.setGoodsNameKey(contractGoodsInfo.getGoodsNameKey());
+                contractManagementInfo.setInOutType("销售出库");
                 //期货取点价,现货取单价
                 contractManagementInfo.setContractPrice(contractManagementInfo.getPointPrice()!=null?contractManagementInfo.getPointPrice():Float.valueOf(String.valueOf(contractManagementInfo.getUnitContractPrice())));
                 temp.add(contractManagementInfo);
@@ -733,6 +751,7 @@ public class WarehouseBaseInfoServiceImpl extends ServiceImpl<WarehouseBaseInfoM
                 BeanUtils.copyProperties(inOutWarehouseTask, contractManagementInfo);
                 contractManagementInfo.setContractNo(inOutWarehouseTask.getMoveTaskNo());
                 contractManagementInfo.setContractPrice(inOutWarehouseTask.getUnitPrice());
+                contractManagementInfo.setInOutType("移库出库");
                 temp.add(contractManagementInfo);
             }
             return temp;
@@ -749,7 +768,15 @@ public class WarehouseBaseInfoServiceImpl extends ServiceImpl<WarehouseBaseInfoM
             for (ContractManagementInfo contractManagementInfo : contractManagementInfoList) {
                 ContractGoodsInfo contractGoodsInfo=contractGoodsInfoService.selectOne(new EntityWrapper<ContractGoodsInfo>()
                         .eq("contract_id",contractManagementInfo.getId()));
+                //查合同下的车牌号
+                List<TranCarInfo> tranCarInfoList=tranCarInfoService.selectList(new EntityWrapper<TranCarInfo>()
+                        .eq("contract_no",contractManagementInfo.getContractNo()));
+                if (!CollectionUtils.isEmpty(tranCarInfoList)){
+                    contractManagementInfo.setTranCarInfoList(tranCarInfoList);
+                }
                 contractManagementInfo.setGoodsName(contractGoodsInfo.getGoodsName());
+                contractManagementInfo.setGoodsNameKey(contractGoodsInfo.getGoodsNameKey());
+                contractManagementInfo.setInOutType("采购入库");
                 //期货取点价,现货取单价
                 contractManagementInfo.setContractPrice(contractManagementInfo.getPointPrice()!=null?contractManagementInfo.getPointPrice():Float.valueOf(String.valueOf(contractManagementInfo.getUnitContractPrice())));
                 temp.add(contractManagementInfo);
@@ -763,8 +790,53 @@ public class WarehouseBaseInfoServiceImpl extends ServiceImpl<WarehouseBaseInfoM
             for (InOutWarehouseTask inOutWarehouseTask : inOutWarehouseTaskList) {
                 ContractManagementInfo contractManagementInfo = new ContractManagementInfo();
                 BeanUtils.copyProperties(inOutWarehouseTask, contractManagementInfo);
+                //查移库任务编号下的车牌号
+                List<TranCarInfo> tranCarInfoList=tranCarInfoService.selectList(new EntityWrapper<TranCarInfo>()
+                        .eq("contract_no",inOutWarehouseTask.getMoveTaskNo()));
+                if (!CollectionUtils.isEmpty(tranCarInfoList)){
+                    contractManagementInfo.setTranCarInfoList(tranCarInfoList);
+                }
+                //移库编号成本
+                if ("移库出库".equals(inOutWarehouseTask.getInOutType())) {
+                    //自动创建的临时库移库,成本为对应的合同单价
+                    ContractManagementInfo contractManagementInfo1 = contractManagementInfoService.selectOne(new EntityWrapper<ContractManagementInfo>()
+                            .eq("comp_id", inOutWarehouseTask.getCompId())
+                            .eq("contract_no", inOutWarehouseTask.getWarehouseName()));
+                    if (contractManagementInfo1 != null) {
+                        contractManagementInfo.setUnitContractPrice(contractManagementInfo1.getUnitContractPrice());
+                    }
+                    //其他类型移库,一个运输阶段成本加权,多个成本为空
+                    TranTaskInfo tranTaskInfo=tranTaskInfoService.selectOne(new EntityWrapper<TranTaskInfo>()
+                            .eq("comp_id", inOutWarehouseTask.getCompId())
+                            .eq("contract_no", inOutWarehouseTask.getMoveTaskNo()));
+                    if (tranTaskInfo!=null){
+                        List<TranProcessInfo> tranProcessInfoList=tranProcessInfoService.selectList(new EntityWrapper<TranProcessInfo>()
+                        .eq("info_id",tranTaskInfo.getId()));
+                        //只有一个汽运的运输阶段
+                        if (tranProcessInfoList.size()==1&&tranProcessInfoList.get(0).getTranTypeKey()=="1"){
+                            //成本为所选车辆出库时所在库的加权成本
+
+                        }
+                        else{
+                            contractManagementInfo.setUnitContractPrice(null);
+                        }
+                    }
+                }
+                else if ("退库".equals(inOutWarehouseTask.getInOutType())) {
+                    //自动创建的临时库退库,成本为对应的合同单价
+                    ContractManagementInfo contractManagementInfo1 = contractManagementInfoService.selectOne(new EntityWrapper<ContractManagementInfo>()
+                            .eq("comp_id", inOutWarehouseTask.getCompId())
+                            .eq("contract_no", inOutWarehouseTask.getWarehouseName()));
+                    if (contractManagementInfo1 != null) {
+                        contractManagementInfo.setUnitContractPrice(contractManagementInfo1.getUnitContractPrice());
+                    }
+                }
+                else{
+                    contractManagementInfo.setUnitContractPrice(null);
+                }
                 contractManagementInfo.setContractNo(inOutWarehouseTask.getMoveTaskNo());
                 contractManagementInfo.setContractPrice(inOutWarehouseTask.getUnitPrice());
+                contractManagementInfo.setInOutType("移库入库");
                 temp.add(contractManagementInfo);
             }
             return temp;
@@ -781,7 +853,15 @@ public class WarehouseBaseInfoServiceImpl extends ServiceImpl<WarehouseBaseInfoM
             for (ContractManagementInfo contractManagementInfo : contractManagementInfoList) {
                 ContractGoodsInfo contractGoodsInfo=contractGoodsInfoService.selectOne(new EntityWrapper<ContractGoodsInfo>()
                         .eq("contract_id",contractManagementInfo.getId()));
+                //查合同下的车牌号
+                List<TranCarInfo> tranCarInfoList=tranCarInfoService.selectList(new EntityWrapper<TranCarInfo>()
+                        .eq("contract_no",contractManagementInfo.getContractNo()));
+                if (!CollectionUtils.isEmpty(tranCarInfoList)){
+                    contractManagementInfo.setTranCarInfoList(tranCarInfoList);
+                }
                 contractManagementInfo.setGoodsName(contractGoodsInfo.getGoodsName());
+                contractManagementInfo.setGoodsNameKey(contractGoodsInfo.getGoodsNameKey());
+                contractManagementInfo.setInOutType("采购入库");
                 //期货取点价,现货取单价
                 contractManagementInfo.setContractPrice(contractManagementInfo.getPointPrice()!=null?contractManagementInfo.getPointPrice():Float.valueOf(String.valueOf(contractManagementInfo.getUnitContractPrice())));
                 temp.add(contractManagementInfo);
@@ -793,6 +873,17 @@ public class WarehouseBaseInfoServiceImpl extends ServiceImpl<WarehouseBaseInfoM
                     .eq("delete_flag", "0")
                     .orderBy("update_date", false));
             for (ContractManagementInfo contractManagementInfo1 : contractManagementInfoList1) {
+                ContractGoodsInfo contractGoodsInfo=contractGoodsInfoService.selectOne(new EntityWrapper<ContractGoodsInfo>()
+                        .eq("contract_id",contractManagementInfo1.getId()));
+                //查合同下的车牌号
+                List<TranCarInfo> tranCarInfoList=tranCarInfoService.selectList(new EntityWrapper<TranCarInfo>()
+                        .eq("contract_no",contractManagementInfo1.getContractNo()));
+                if (!CollectionUtils.isEmpty(tranCarInfoList)){
+                    contractManagementInfo1.setTranCarInfoList(tranCarInfoList);
+                }
+                contractManagementInfo1.setGoodsName(contractGoodsInfo.getGoodsName());
+                contractManagementInfo1.setGoodsNameKey(contractGoodsInfo.getGoodsNameKey());
+                contractManagementInfo1.setInOutType("退库");
                 temp.add(contractManagementInfo1);
             }
             List<InOutWarehouseTask> inOutWarehouseTaskList = iInOutWarehouseTaskService.selectList(new EntityWrapper<InOutWarehouseTask>()
@@ -804,8 +895,15 @@ public class WarehouseBaseInfoServiceImpl extends ServiceImpl<WarehouseBaseInfoM
             for (InOutWarehouseTask inOutWarehouseTask : inOutWarehouseTaskList) {
                 ContractManagementInfo contractManagementInfo = new ContractManagementInfo();
                 BeanUtils.copyProperties(inOutWarehouseTask, contractManagementInfo);
+                //查移库任务编号下的车牌号
+                List<TranCarInfo> tranCarInfoList=tranCarInfoService.selectList(new EntityWrapper<TranCarInfo>()
+                        .eq("contract_no",inOutWarehouseTask.getMoveTaskNo()));
+                if (!CollectionUtils.isEmpty(tranCarInfoList)){
+                    contractManagementInfo.setTranCarInfoList(tranCarInfoList);
+                }
                 contractManagementInfo.setContractNo(inOutWarehouseTask.getMoveTaskNo());
                 contractManagementInfo.setContractPrice(inOutWarehouseTask.getUnitPrice());
+                contractManagementInfo.setInOutType("移库入库");
                 temp.add(contractManagementInfo);
             }
             return temp;
@@ -818,6 +916,10 @@ public class WarehouseBaseInfoServiceImpl extends ServiceImpl<WarehouseBaseInfoM
                     .eq("delete_flag", "0")
                     .orderBy("update_date", false));
             for (ContractManagementInfo contractManagementInfo : contractManagementInfoList) {
+                ContractGoodsInfo contractGoodsInfo=contractGoodsInfoService.selectOne(new EntityWrapper<ContractGoodsInfo>()
+                        .eq("contract_id",contractManagementInfo.getId()));
+                contractManagementInfo.setGoodsName(contractGoodsInfo.getGoodsName());
+                contractManagementInfo.setGoodsNameKey(contractGoodsInfo.getGoodsNameKey());
                 temp.add(contractManagementInfo);
             }
             List<InOutWarehouseTask> inOutWarehouseTaskList = iInOutWarehouseTaskService.selectList(new EntityWrapper<InOutWarehouseTask>()

+ 651 - 60
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;
 
     /**
      * 待完成页面列表
@@ -98,11 +102,15 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
     @Override
     public Page<WarehouseInOutInfo> selectWarehouseInOutInfo(WarehouseInOutInfo warehouseInOutInfo) {
         //查询页面信息
-        Page<WarehouseInOutInfo> warehouseInOutInfoPage = this.selectPage(warehouseInOutInfo.getQueryPage(), new EntityWrapper<WarehouseInOutInfo>()
-                .eq("base_id", warehouseInOutInfo.getBaseId())
+        Wrapper<WarehouseInOutInfo> warehouseInOutInfoWrapper = new EntityWrapper<WarehouseInOutInfo>();
+        if (warehouseInOutInfo.getInOutFlag() != null) {
+            warehouseInOutInfoWrapper.eq("in_out_flag", warehouseInOutInfo.getInOutFlag());
+        }
+        warehouseInOutInfoWrapper.eq("base_id", warehouseInOutInfo.getBaseId())
                 .eq("position_id", warehouseInOutInfo.getPositionId())
                 .eq("status_flag", StatusEnum.TEMPORARILY_STORED.getFlag())
-                .orderBy("update_date", false));
+                .orderBy("update_date", false);
+        Page<WarehouseInOutInfo> warehouseInOutInfoPage = this.selectPage(warehouseInOutInfo.getQueryPage(), warehouseInOutInfoWrapper);
         List<WarehouseInOutInfo> warehouseInOutInfoList = warehouseInOutInfoPage.getRecords();
         if (warehouseInOutInfoList != null) {
             for (WarehouseInOutInfo warehouseInOutInfo1 : warehouseInOutInfoList) {
@@ -224,6 +232,8 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                 //判断出入库
                 //常用库入库
                 if ("2".equals(warehouseInOutInfo.getInOutFlag()) && "1".equals(warehouseBaseInfo.getWarehouseType())) {
+
+                    float original = 0f;
                     //判断是否有库
                     if (warehouseBaseInfo != null) {
                         //  查询库位
@@ -236,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);
@@ -252,8 +263,91 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                                 warehousePositionStorageInfoService.insert(warehousePositionStorageInfo1);
                             }
                         }
+                    }
+                    TranCarInfo tranCarInfo = tranCarInfoService.selectOne(new EntityWrapper<TranCarInfo>()
+                            .eq("contract_no", warehouseInOutInfo.getContractNo())
+                            .eq("car_no", warehouseInOutInfo.getCarNo())
+                            .eq(TranCarInfo.QueryFiles.DELETE_FLAG, NumberConstant.CONSTANT0));
+                    if (tranCarInfo != null) {
+                        //将到货数据同步到派车表
+                        tranCarInfo.setUnloadNetWeight(warehouseInOutInfo.getNetWeight());
+                        tranCarInfo.setUnloadPoundImg(warehouseInOutInfo.getAddressUrl());
+                        tranCarInfo.setDeductionAmount(warehouseInOutInfo.getDeductionAmount());
+                        tranCarInfo.setStatus(StatusEnum.DELIVERED.getName());
+                        tranCarInfo.setStatusFlag(StatusEnum.DELIVERED.getFlag());
+                        if ("1".equals(tranCarInfo.getSubmit())) {
+                            throw new YException(YExceptionEnum.CARNO_SUBMITTED_ERROR);
+                        } 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())) {
@@ -347,12 +441,439 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                 warehouseInOutDetail.setInfoId(warehouseInOutInfo.getId());
                 warehouseInOutDetail.setId(IdGenerator.generateUUID());
                 warehouseInOutDetailService.insert(warehouseInOutDetail);
+                //App端入库关联派车表
+                if ("0".equals(warehouseInOutInfo.getPcFlag()) && "入库任务".equals(warehouseInOutInfo.getTaskType())) {
+                    TranCarInfo tranCarInfo = tranCarInfoService.selectOne(new EntityWrapper<TranCarInfo>()
+                            .eq("contract_no", warehouseInOutInfo.getContractNo())
+                            .eq("car_no", warehouseInOutInfo.getCarNo())
+                            .eq(TranCarInfo.QueryFiles.DELETE_FLAG, NumberConstant.CONSTANT0));
+                    // 采购订单
+                    PurchaseOrder purchaseOrder = purchaseOrderService.selectOne(new EntityWrapper<PurchaseOrder>().eq("contract_no", warehouseInOutInfo.getContractNo())
+                            .eq("delete_flag", "0"));
+                    // 合同表
+                    ContractManagementInfo contractManagementInfo = contractManagementInfoService.selectOne(new EntityWrapper<ContractManagementInfo>().eq("contract_no", warehouseInOutInfo.getContractNo())
+                            .eq("delete_flag", "0"));
+                    //更新库存量
+                    if (warehouseBaseInfo != null) {
+                        float original = 0f;
+                        //  查询库位
+                        WarehousePositionInfo warehousePositionInfo = warehousePositionInfoService.selectById(warehouseInOutInfo.getPositionId());
+                        if (warehousePositionInfo != null) {
+                            // 查询货物库存量
+                            WarehousePositionStorageInfo warehousePositionStorageInfo = warehousePositionStorageInfoService.selectOne(new EntityWrapper<WarehousePositionStorageInfo>()
+                                    .eq("position_id", warehouseInOutInfo.getPositionId())
+                                    .eq("goods_name", warehouseInOutInfo.getGoodsName())
+                                    .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());
+                                warehousePositionStorageInfo1.setBinNumber(warehouseInOutInfo.getBinNumber());
+                                warehousePositionStorageInfo1.setGoodsName(warehouseInOutInfo.getGoodsName());
+                                warehousePositionStorageInfo1.setStorage(warehouseInOutInfo.getNetWeight());
+                                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())) {
+                        purchaseReceiptReport.setId(IdGenerator.generateUUID());
+                        purchaseReceiptReport.setCompId(warehouseBaseInfo.getCompId());
+                        purchaseReceiptReport.setContractNo(warehouseInOutInfo.getContractNo());
+                        purchaseReceiptReport.setGoodsName(warehouseInOutInfo.getGoodsName());
+                        purchaseReceiptReport.setGoodsNameKey(warehouseInOutInfo.getGoodsNameKey());
+                        purchaseReceiptReport.setPositionNumber(warehouseInOutInfo.getBinNumber());
+                        purchaseReceiptReport.setCarNo(warehouseInOutInfo.getCarNo());
+                        purchaseReceiptReport.setTranCarNo(warehouseInOutInfo.getTranCarNo());
+                        purchaseReceiptReport.setWarehousingDate(warehouseInOutInfo.getInOutDate());
+                        purchaseReceiptReport.setProtein(warehouseInOutDetail.getProtein());
+                        purchaseReceiptReport.setWaterContent(warehouseInOutDetail.getWaterContent());
+                        purchaseReceiptReport.setDeductionAmount(Float.valueOf(warehouseInOutInfo.getDeductionAmount()));
+                        purchaseReceiptReport.setNetWeight(warehouseInOutInfo.getNetWeight());
+                        purchaseReceiptReport.setDeductionItems(warehouseInOutInfo.getDeductionItems());
+                        purchaseReceiptReport.setWarehouseName(warehouseInOutInfo.getWarehouseName());
+                        purchaseReceiptReport.setStatusFlag(StatusEnum.FORM_REVIEWED.getFlag());
+                        purchaseReceiptReport.setStatus(StatusEnum.FORM_REVIEWED.getName());
+                        if (purchaseOrder != null) {
+                            purchaseReceiptReport.setUnitPrice(purchaseOrder.getUnitPrice());
+                            purchaseReceiptReport.setUnloadingCharge(purchaseOrder.getUnloadingCharge());
+                            purchaseReceiptReport.setInvoiceFee(purchaseOrder.getInvoiceFee());
+                            //期货
+                            if (purchaseOrder.getBasis() != null) {
+                                purchaseReceiptReport.setBasisPrice(purchaseOrder.getBasis());
+                                BigDecimal unitPrice = new BigDecimal(Float.toString(purchaseReceiptReport.getUnitPrice()));
+                                BigDecimal basis = new BigDecimal(Float.toString(purchaseReceiptReport.getBasisPrice()));
+                                BigDecimal unloadingCharge = new BigDecimal(Float.toString(purchaseReceiptReport.getUnloadingCharge()));
+                                BigDecimal invoiceFee = new BigDecimal(Float.toString(purchaseReceiptReport.getInvoiceFee()));
+                                BigDecimal deductionAmount = new BigDecimal(Float.toString(purchaseReceiptReport.getDeductionAmount()));
+                                purchaseReceiptReport.setSettlementPrice(unitPrice.add(basis).add(unloadingCharge).add(invoiceFee).add(deductionAmount).floatValue());
+                            }
+                            purchaseReceiptReport.setCustomerName(purchaseOrder.getSeller());
+                            purchaseReceiptReport.setInvoiceType(purchaseOrder.getType());
+                            purchaseReceiptReport.setInvoiceTypeKey(purchaseOrder.getType());
+                            purchaseReceiptReport.setAmountIngPayable(CalculationUtil.mulToFloat(purchaseReceiptReport.getSettlementPrice(), purchaseReceiptReport.getNetWeight()));
+                            purchaseReceiptReport.setAmountEdPayable(0f);
+                            purchaseReceiptReport.setAmountNotPayable(purchaseReceiptReport.getAmountIngPayable());
+                            if (tranCarInfo != null) {
+                                //将到货数据同步到派车表
+                                tranCarInfo.setUnloadNetWeight(warehouseInOutInfo.getNetWeight());
+                                tranCarInfo.setUnloadPoundImg(warehouseInOutInfo.getAddressUrl());
+                                tranCarInfo.setDeductionAmount(warehouseInOutInfo.getDeductionAmount());
+                                tranCarInfo.setDeductionItems(warehouseInOutInfo.getDeductionItems());
+                                tranCarInfo.setStatus(StatusEnum.DELIVERED.getName());
+                                tranCarInfo.setStatusFlag(StatusEnum.DELIVERED.getFlag());
+                                if (purchaseOrder != null) {
+                                    tranCarInfo.setSettlementPrice(purchaseReceiptReport.getSettlementPrice());
+                                }
+                                tranCarInfoService.updateById(tranCarInfo);
+                            }
+                        }
+                        // 客户确认
+                        TranCarInfo tranCarInfo1 = tranCarInfoService.selectOne(new EntityWrapper<TranCarInfo>()
+                                .eq("contract_no", warehouseInOutInfo.getContractNo())
+                                .eq("car_no", warehouseInOutInfo.getCarNo())
+                                .eq("delete_flag", "0"));
+                        if (tranCarInfo1 != null && "3".equals(tranCarInfo1.getConfirmFlag())) {
+                            purchaseReceiptReport.setCustomerConfirmationStatusFlag("1");
+                            purchaseReceiptReport.setCustomerConfirmationStatus("是");
+                            tesk(warehouseInOutInfo, "2");
+                            geTuiUtils.pushByCid("卸货提醒", "您的合同车辆:" + warehouseInOutInfo.getCarNo() + "申请卸货,请及时确认", purchaseOrder.getCommonId());
+                        } else {
+                            purchaseReceiptReport.setCustomerConfirmationStatusFlag("3");
+                            purchaseReceiptReport.setCustomerConfirmationStatus("否");
+                        }
+                    }
+                    //现货采购入库统计
+                    else {
+                        stockPurchaseReceiptReport.setId(IdGenerator.generateUUID());
+                        stockPurchaseReceiptReport.setCompId(warehouseBaseInfo.getCompId());
+                        stockPurchaseReceiptReport.setContractNo(warehouseInOutInfo.getContractNo());
+                        stockPurchaseReceiptReport.setWarehouseName(warehouseInOutInfo.getWarehouseName());
+                        stockPurchaseReceiptReport.setCarNo(warehouseInOutInfo.getCarNo());
+                        stockPurchaseReceiptReport.setGrossWeight(warehouseInOutInfo.getGrossWeight());
+                        stockPurchaseReceiptReport.setTare(warehouseInOutInfo.getTare());
+                        stockPurchaseReceiptReport.setNetWeight(warehouseInOutInfo.getNetWeight());
+                        stockPurchaseReceiptReport.setWarehousingDate(warehouseInOutInfo.getInOutDate());
+                        stockPurchaseReceiptReport.setDeductionWeight(warehouseInOutInfo.getDeductionWeight());
+                        stockPurchaseReceiptReport.setSettlementWeight(warehouseInOutInfo.getNetWeight());
+                        stockPurchaseReceiptReport.setAmountIngPayable
+                                (warehouseInOutInfo.getNetWeight() *
+                                        (Float.valueOf(String.valueOf(contractManagementInfo.getUnitContractPrice())) - Float.valueOf(warehouseInOutInfo.getDeductionAmount())));
+                        stockPurchaseReceiptReport.setAmountEdPayable(0.0f);
+                        stockPurchaseReceiptReport.setAmountNotPayable(stockPurchaseReceiptReport.getAmountIngPayable());
+                        stockPurchaseReceiptReport.setStatusFlag(StatusEnum.FORM_REVIEWED.getFlag());
+                        stockPurchaseReceiptReport.setStatus(StatusEnum.FORM_REVIEWED.getName());
+                        if (tranCarInfo != null) {
+                            //将到货数据同步到派车表
+                            tranCarInfo.setUnloadNetWeight(warehouseInOutInfo.getNetWeight());
+                            tranCarInfo.setUnloadPoundImg(warehouseInOutInfo.getAddressUrl());
+                            tranCarInfo.setDeductionAmount(warehouseInOutInfo.getDeductionAmount());
+                            tranCarInfo.setStatus(StatusEnum.DELIVERED.getName());
+                            tranCarInfo.setStatusFlag(StatusEnum.DELIVERED.getFlag());
+                            if ("1".equals(tranCarInfo.getSubmit())) {
+                                throw new YException(YExceptionEnum.CARNO_SUBMITTED_ERROR);
+                            } else {
+                                tranCarInfo.setSubmit("1");
+                            }
+                            tranCarInfoService.updateById(tranCarInfo);
+                        }
+                    }
+                    purchaseReceiptReportService.insert(purchaseReceiptReport);
+                    boolean isStartWorkflow = org.apache.commons.lang3.StringUtils.isBlank(purchaseReceiptReport.getWorkflowId());
+                    // 不是退回的单子
+                    if (isStartWorkflow) {
+                        Workflow workflow = workflowService
+                                .findLatestWorkflowByBusinessCodeByApp(purchaseReceiptReport.getCompId(), "PROCUREMENT-RECEIPT-REPORT");
+                        // 没配置审核流程,直接结束并处理信息
+                        if (workflow == null) {
+                            throw new YException(YExceptionEnum.PURCHASE_ORDER_ERROR);
+                        }
+                        // 开启审核流
+                        else {
+
+                            // 设置状态 已提交审核
+                            purchaseReceiptReport.setWorkflowId(workflow.getId());
+                            purchaseReceiptReportService.updateById(purchaseReceiptReport);
+                            workflowService.startInstance(workflow.getId(), purchaseReceiptReport.getId());
+                        }
+                    }
+                    // 退回的单子 再启用
+                    else {
+
+                        purchaseReceiptReportService.updateById(purchaseReceiptReport);
+                        workflowService.activateInstance(purchaseReceiptReport.getWorkflowId(), purchaseReceiptReport.getId());
+                    }
+                }
+                //App端出库
+                else if ("0".equals(warehouseInOutInfo.getPcFlag()) && "出库任务".equals(warehouseInOutInfo.getTaskType())) {
+                    //状态改为已发车
+                    warehouseInOutInfo.setTranFlag("1");
+                    // 销售订单
+                    SaleOrder saleOrder = saleOrderService.selectOne(new EntityWrapper<SaleOrder>().eq("contract_no", warehouseInOutInfo.getContractNo())
+                            .eq("delete_flag", "0"));
+                    //判断是否第一次提交
+                    if (StringUtils.isEmpty(warehouseInOutDetail.getId())) {
+                        // 插入详情
+                        warehouseInOutDetail.setInfoId(warehouseInOutInfo.getId());
+                        warehouseInOutDetail.setId(IdGenerator.generateUUID());
+                        warehouseInOutDetailService.insert(warehouseInOutDetail);
+                    }
+                    //更新库存量
+                    //判断是否有货
+                    if (warehouseBaseInfo != null) {
+                        //  查询库位
+                        WarehousePositionInfo warehousePositionInfo = warehousePositionInfoService.selectById(warehouseInOutInfo.getPositionId());
+                        if (warehousePositionInfo != null) {
+                            // 查询货物库存量
+                            WarehousePositionStorageInfo warehousePositionStorageInfo = warehousePositionStorageInfoService.selectOne(new EntityWrapper<WarehousePositionStorageInfo>()
+                                    .eq("position_id", warehouseInOutInfo.getPositionId())
+                                    .eq("goods_name", warehouseInOutInfo.getGoodsName())
+                                    .eq("delete_flag", "0"));
+                            // 判断是否有货
+                            if (warehousePositionStorageInfo != null) {
+                                if (warehouseInOutInfo.getNetWeight() <= warehousePositionStorageInfo.getStorage()) {
+                                    // 更新库存量
+                                    warehousePositionStorageInfo.setStorage(warehousePositionStorageInfo.getStorage() - warehouseInOutInfo.getNetWeight());
+                                    warehousePositionStorageInfoService.updateById(warehousePositionStorageInfo);
+                                }
+                                //出库量大于库存量
+                                else {
+                                    throw new YException(YExceptionEnum.INVENTORY_NO_ERROR);
+                                }
+                            }
+                            // 没有储存量
+                            else {
+                                throw new YException(YExceptionEnum.POSITIONSTORAGE_NO_ERROR);
+                            }
+                        }
+                        //库位不存在
+                        else {
+                            throw new YException(YExceptionEnum.POSITION_NO_ERROR);
+                        }
+                    }
+                    //仓库不存在
+                    else {
+                        throw new YException(YExceptionEnum.WAREHOUSE_NO_ERROR);
+                    }
+                    //查询期货现货合同
+                    ContractManagementInfo contractManagementInfo = contractManagementInfoService.selectOne(new EntityWrapper<ContractManagementInfo>()
+                            .eq("contract_no", warehouseInOutInfo.getContractNo()));
+                    if ("2".equals(contractManagementInfo.getGoodsType())) {
+                        //客户生成收货信息
+                        TranCarInfo tranCarInfo = new TranCarInfo();
+                        tranCarInfo.setId(IdGenerator.generateUUID());
+                        tranCarInfo.setCarNo(warehouseInOutInfo.getCarNo());
+                        tranCarInfo.setContractNo(warehouseInOutInfo.getContractNo());
+                        tranCarInfo.setTranCarNo(warehouseInOutInfo.getTranCarNo());
+                        tranCarInfo.setLoadNetWeight(warehouseInOutInfo.getNetWeight());
+                        tranCarInfo.setLoadPoundImg(warehouseInOutInfo.getAddressUrl());
+                        tranCarInfo.setConfirmFlag(StatusEnum.NOT_CONFIRM.getFlag());
+                        // 期货销售出库统计
+                        SalesDeliveryReport salesDeliveryReport = new SalesDeliveryReport();
+                        salesDeliveryReport.setId(IdGenerator.generateUUID());
+                        salesDeliveryReport.setCompId(warehouseBaseInfo.getCompId());
+                        salesDeliveryReport.setContractNo(warehouseInOutInfo.getContractNo());
+                        salesDeliveryReport.setGoodsName(warehouseInOutInfo.getGoodsName());
+                        salesDeliveryReport.setGoodsNameKey(warehouseInOutInfo.getGoodsNameKey());
+                        salesDeliveryReport.setPositionNumber(warehouseInOutInfo.getBinNumber());
+                        salesDeliveryReport.setCarNo(warehouseInOutInfo.getCarNo());
+                        salesDeliveryReport.setTranCarNo(warehouseInOutInfo.getTranCarNo());
+                        salesDeliveryReport.setRetrievalDate(warehouseInOutInfo.getInOutDate());
+                        salesDeliveryReport.setProtein(warehouseInOutDetail.getProtein());
+                        salesDeliveryReport.setWaterContent(warehouseInOutDetail.getWaterContent());
+                        salesDeliveryReport.setNetWeight(warehouseInOutInfo.getNetWeight());
+                        salesDeliveryReport.setWarehouseName(warehouseInOutInfo.getWarehouseName());
+                        salesDeliveryReport.setStatusFlag(StatusEnum.FORM_REVIEWED.getFlag());
+                        salesDeliveryReport.setStatus(StatusEnum.FORM_REVIEWED.getName());
+                        if (saleOrder != null) {
+                            salesDeliveryReport.setUnitPrice(saleOrder.getUnitPrice());
+                            salesDeliveryReport.setInvoiceFee(saleOrder.getInvoiceFee());
+                            //期货
+                            if (saleOrder.getBasis() != null) {
+                                salesDeliveryReport.setBasisPrice(saleOrder.getBasis());
+                                BigDecimal unitPrice = new BigDecimal(Float.toString(salesDeliveryReport.getUnitPrice()));
+                                BigDecimal basis = new BigDecimal(Float.toString(salesDeliveryReport.getBasisPrice()));
+                                BigDecimal invoiceFee = new BigDecimal(Float.toString(salesDeliveryReport.getInvoiceFee()));
+                                salesDeliveryReport.setSettlementPrice(unitPrice.add(basis).add(invoiceFee).floatValue());
+                                tranCarInfo.setSettlementPrice(saleOrder.getUnitPrice() + saleOrder.getBasis() + saleOrder.getInvoiceFee());
+                            }
+                            salesDeliveryReport.setCustomerName(saleOrder.getBuyer());
+                            salesDeliveryReport.setCollectionIngPayable(CalculationUtil.mulToFloat(salesDeliveryReport.getSettlementPrice(), salesDeliveryReport.getNetWeight()));
+                            salesDeliveryReport.setCollectionEdPayable(0f);
+                            salesDeliveryReport.setCollectionNotPayable(salesDeliveryReport.getCollectionIngPayable());
+                            tranCarInfoService.insert(tranCarInfo);
+                        }
+
+                        // 客户确认
+                        TranCarInfo tranCarInfo1 = tranCarInfoService.selectOne(new EntityWrapper<TranCarInfo>()
+                                .eq("contract_no", warehouseInOutInfo.getContractNo())
+                                .eq("car_no", warehouseInOutInfo.getCarNo())
+                                .eq("delete_flag", "0"));
+                        if (tranCarInfo1 != null && "3".equals(tranCarInfo1.getConfirmFlag())) {
+                            salesDeliveryReport.setCustomerConfirmationStatusFlag("1");
+                            salesDeliveryReport.setCustomerConfirmationStatus("是");
+                            geTuiUtils.pushByCid("发货通知", "您的合同车辆:" + warehouseInOutInfo.getCarNo() + "已发出", saleOrder.getCommonId());
+                            tesk(warehouseInOutInfo, "1");
+                        } else {
+                            salesDeliveryReport.setCustomerConfirmationStatusFlag("3");
+                            salesDeliveryReport.setCustomerConfirmationStatus("否");
+                        }
+                        salesDeliveryReportService.insert(salesDeliveryReport);
+
+                        boolean isStartWorkflow = org.apache.commons.lang3.StringUtils.isBlank(salesDeliveryReport.getWorkflowId());
+                        // 不是退回的单子
+                        if (isStartWorkflow) {
+                            Workflow workflow = workflowService
+                                    .findLatestWorkflowByBusinessCodeByApp(saleOrder.getCompId(), "SALE-RECEIPT-REPORT");
+                            // 没配置审核流程,直接结束并处理信息
+                            if (workflow == null) {
+                                throw new YException(YExceptionEnum.PURCHASE_ORDER_ERROR);
+                            }
+                            // 开启审核流
+                            else {
+
+                                // 设置状态 已提交审核
+                                salesDeliveryReport.setWorkflowId(workflow.getId());
+                                salesDeliveryReportService.updateById(salesDeliveryReport);
+                                workflowService.startInstance(workflow.getId(), salesDeliveryReport.getId());
+                            }
+                        }
+                        // 退回的单子 再启用
+                        else {
+
+                            salesDeliveryReportService.updateById(salesDeliveryReport);
+                            workflowService.activateInstance(salesDeliveryReport.getWorkflowId(), salesDeliveryReport.getId());
+                        }
+                    } else {
+                        //现货销售统计
+                        StockSaleReceiptReport stockSaleReceiptReport = new StockSaleReceiptReport();
+                        stockSaleReceiptReport.setId(IdGenerator.generateUUID());
+                        stockSaleReceiptReport.setCompId(warehouseBaseInfo.getCompId());
+                        stockSaleReceiptReport.setContractNo(warehouseInOutInfo.getContractNo());
+                        stockSaleReceiptReport.setWarehouseName(warehouseInOutInfo.getWarehouseName());
+                        stockSaleReceiptReport.setCarNo(warehouseInOutInfo.getCarNo());
+                        stockSaleReceiptReport.setGrossWeight(warehouseInOutInfo.getGrossWeight());
+                        stockSaleReceiptReport.setTare(warehouseInOutInfo.getTare());
+                        stockSaleReceiptReport.setNetWeight(warehouseInOutInfo.getNetWeight());
+                        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");
+                        }
+                        stockSaleReceiptReportService.insert(stockSaleReceiptReport);
+                        boolean isStartWorkflow = org.apache.commons.lang3.StringUtils.isBlank(stockSaleReceiptReport.getWorkflowId());
+                        // 不是退回的单子
+                        if (isStartWorkflow) {
+                            Workflow workflow = workflowService
+                                    .findLatestWorkflowByBusinessCodeByApp(saleOrder.getCompId(), "SALE-RECEIPT-REPORT");
+                            // 没配置审核流程,直接结束并处理信息
+                            if (workflow == null) {
+                                throw new YException(YExceptionEnum.PURCHASE_ORDER_ERROR);
+                            }
+                            // 开启审核流
+                            else {
+
+                                // 设置状态 已提交审核
+                                stockSaleReceiptReport.setWorkflowId(workflow.getId());
+                                stockSaleReceiptReportService.updateById(stockSaleReceiptReport);
+                                workflowService.startInstance(workflow.getId(), stockSaleReceiptReport.getId());
+                            }
+                        }
+                        // 退回的单子 再启用
+                        else {
+
+                            stockSaleReceiptReportService.updateById(stockSaleReceiptReport);
+                            workflowService.activateInstance(stockSaleReceiptReport.getWorkflowId(), stockSaleReceiptReport.getId());
+                        }
+                    }
+
+                }
             }
             // 编辑修改记录
             else {
                 //App端入库关联派车表
                 if ("0".equals(warehouseInOutInfo.getPcFlag()) && "入库任务".equals(warehouseInOutInfo.getTaskType())) {
-//                    warehouseInOutInfo.setInOutDate(warehouseInOutInfo.getUpdateDate());
                     TranCarInfo tranCarInfo = tranCarInfoService.selectOne(new EntityWrapper<TranCarInfo>()
                             .eq("contract_no", warehouseInOutInfo.getContractNo())
                             .eq("car_no", warehouseInOutInfo.getCarNo())
@@ -373,6 +894,8 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                     }
                     //更新库存量
                     if (warehouseBaseInfo != null) {
+
+                       Float original = 0f;
                         //  查询库位
                         WarehousePositionInfo warehousePositionInfo = warehousePositionInfoService.selectById(warehouseInOutInfo.getPositionId());
                         if (warehousePositionInfo != null) {
@@ -383,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());
@@ -398,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());
@@ -434,15 +1025,6 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                                 BigDecimal deductionAmount = new BigDecimal(Float.toString(purchaseReceiptReport.getDeductionAmount()));
                                 purchaseReceiptReport.setSettlementPrice(unitPrice.add(basis).add(unloadingCharge).add(invoiceFee).add(deductionAmount).floatValue());
                             }
-//                        //现货
-//                        else {
-//                            BigDecimal unitPrice = new BigDecimal(Float.toString(purchaseReceiptReport.getUnitPrice()));
-//                            BigDecimal unloadingCharge = new BigDecimal(Float.toString(purchaseReceiptReport.getUnloadingCharge()));
-//                            BigDecimal invoiceFee = new BigDecimal(Float.toString(purchaseReceiptReport.getInvoiceFee()));
-//                            BigDecimal deductionAmount = new BigDecimal(Float.toString(purchaseReceiptReport.getDeductionAmount()));
-//                            purchaseReceiptReport.setSettlementPrice(unitPrice.add(unloadingCharge).add(invoiceFee).add(deductionAmount).floatValue());
-//
-//                        }
                             purchaseReceiptReport.setCustomerName(purchaseOrder.getSeller());
                             purchaseReceiptReport.setInvoiceType(purchaseOrder.getType());
                             purchaseReceiptReport.setInvoiceTypeKey(purchaseOrder.getType());
@@ -463,9 +1045,23 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                                 tranCarInfoService.updateById(tranCarInfo);
                             }
                         }
+                        // 客户确认
+                        TranCarInfo tranCarInfo1 = tranCarInfoService.selectOne(new EntityWrapper<TranCarInfo>()
+                                .eq("contract_no", warehouseInOutInfo.getContractNo())
+                                .eq("car_no", warehouseInOutInfo.getCarNo())
+                                .eq("delete_flag", "0"));
+                        if (tranCarInfo1 != null && "3".equals(tranCarInfo1.getConfirmFlag())) {
+                            purchaseReceiptReport.setCustomerConfirmationStatusFlag("1");
+                            purchaseReceiptReport.setCustomerConfirmationStatus("是");
+                            tesk(warehouseInOutInfo, "2");
+                            geTuiUtils.pushByCid("卸货提醒", "您的合同车辆:" + warehouseInOutInfo.getCarNo() + "申请卸货,请及时确认", purchaseOrder.getCommonId());
+                        } else {
+                            purchaseReceiptReport.setCustomerConfirmationStatusFlag("3");
+                            purchaseReceiptReport.setCustomerConfirmationStatus("否");
+                        }
                     }
                     //现货采购入库统计
-                    else{
+                    else {
                         stockPurchaseReceiptReport.setId(IdGenerator.generateUUID());
                         stockPurchaseReceiptReport.setCompId(warehouseBaseInfo.getCompId());
                         stockPurchaseReceiptReport.setContractNo(warehouseInOutInfo.getContractNo());
@@ -484,25 +1080,22 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                         stockPurchaseReceiptReport.setAmountNotPayable(stockPurchaseReceiptReport.getAmountIngPayable());
                         stockPurchaseReceiptReport.setStatusFlag(StatusEnum.FORM_REVIEWED.getFlag());
                         stockPurchaseReceiptReport.setStatus(StatusEnum.FORM_REVIEWED.getName());
-                    }
-
-                    // 客户确认
-                    TranCarInfo tranCarInfo1 = tranCarInfoService.selectOne(new EntityWrapper<TranCarInfo>()
-                            .eq("contract_no", warehouseInOutInfo.getContractNo())
-                            .eq("car_no", warehouseInOutInfo.getCarNo())
-                            .eq("delete_flag", "0"));
-                    if (tranCarInfo1 != null && "3".equals(tranCarInfo1.getConfirmFlag())) {
-                        purchaseReceiptReport.setCustomerConfirmationStatusFlag("1");
-                        purchaseReceiptReport.setCustomerConfirmationStatus("是");
-                        tesk(warehouseInOutInfo, "2");
-                        geTuiUtils.pushByCid("卸货提醒", "您的合同车辆:" + warehouseInOutInfo.getCarNo() + "申请卸货,请及时确认", purchaseOrder.getCommonId());
-                    } else {
-                        purchaseReceiptReport.setCustomerConfirmationStatusFlag("3");
-                        purchaseReceiptReport.setCustomerConfirmationStatus("否");
+                        if (tranCarInfo != null) {
+                            //将到货数据同步到派车表
+                            tranCarInfo.setUnloadNetWeight(warehouseInOutInfo.getNetWeight());
+                            tranCarInfo.setUnloadPoundImg(warehouseInOutInfo.getAddressUrl());
+                            tranCarInfo.setDeductionAmount(warehouseInOutInfo.getDeductionAmount());
+                            tranCarInfo.setStatus(StatusEnum.DELIVERED.getName());
+                            tranCarInfo.setStatusFlag(StatusEnum.DELIVERED.getFlag());
+                            if ("1".equals(tranCarInfo.getSubmit())) {
+                                throw new YException(YExceptionEnum.CARNO_SUBMITTED_ERROR);
+                            } else {
+                                tranCarInfo.setSubmit("1");
+                            }
+                            tranCarInfoService.updateById(tranCarInfo);
+                        }
                     }
                     purchaseReceiptReportService.insert(purchaseReceiptReport);
-
-
                     boolean isStartWorkflow = org.apache.commons.lang3.StringUtils.isBlank(purchaseReceiptReport.getWorkflowId());
                     // 不是退回的单子
                     if (isStartWorkflow) {
@@ -532,16 +1125,6 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                 else if ("0".equals(warehouseInOutInfo.getPcFlag()) && "出库任务".equals(warehouseInOutInfo.getTaskType())) {
                     //状态改为已发车
                     warehouseInOutInfo.setTranFlag("1");
-//                    warehouseInOutInfo.setInOutDate(warehouseInOutInfo.getUpdateDate());
-                    //客户生成收货信息
-                    TranCarInfo tranCarInfo = new TranCarInfo();
-                    tranCarInfo.setId(IdGenerator.generateUUID());
-                    tranCarInfo.setCarNo(warehouseInOutInfo.getCarNo());
-                    tranCarInfo.setContractNo(warehouseInOutInfo.getContractNo());
-                    tranCarInfo.setTranCarNo(warehouseInOutInfo.getTranCarNo());
-                    tranCarInfo.setLoadNetWeight(warehouseInOutInfo.getNetWeight());
-                    tranCarInfo.setLoadPoundImg(warehouseInOutInfo.getAddressUrl());
-                    tranCarInfo.setConfirmFlag(StatusEnum.NOT_CONFIRM.getFlag());
                     // 销售订单
                     SaleOrder saleOrder = saleOrderService.selectOne(new EntityWrapper<SaleOrder>().eq("contract_no", warehouseInOutInfo.getContractNo())
                             .eq("delete_flag", "0"));
@@ -593,8 +1176,17 @@ 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());
+                        tranCarInfo.setCarNo(warehouseInOutInfo.getCarNo());
+                        tranCarInfo.setContractNo(warehouseInOutInfo.getContractNo());
+                        tranCarInfo.setTranCarNo(warehouseInOutInfo.getTranCarNo());
+                        tranCarInfo.setLoadNetWeight(warehouseInOutInfo.getNetWeight());
+                        tranCarInfo.setLoadPoundImg(warehouseInOutInfo.getAddressUrl());
+                        tranCarInfo.setConfirmFlag(StatusEnum.NOT_CONFIRM.getFlag());
                         // 期货销售出库统计
                         SalesDeliveryReport salesDeliveryReport = new SalesDeliveryReport();
                         salesDeliveryReport.setId(IdGenerator.generateUUID());
@@ -616,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()));
@@ -624,13 +1216,6 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                                 salesDeliveryReport.setSettlementPrice(unitPrice.add(basis).add(invoiceFee).floatValue());
                                 tranCarInfo.setSettlementPrice(saleOrder.getUnitPrice() + saleOrder.getBasis() + saleOrder.getInvoiceFee());
                             }
-                            //现货
-//                            else{
-//                                BigDecimal unitPrice = new BigDecimal(Float.toString(salesDeliveryReport.getUnitPrice()));
-//                                BigDecimal invoiceFee = new BigDecimal(Float.toString(salesDeliveryReport.getInvoiceFee()));
-//                                salesDeliveryReport.setSettlementPrice(unitPrice.add(invoiceFee).floatValue());
-//                                tranCarInfo.setSettlementPrice(saleOrder.getUnitPrice()+ saleOrder.getInvoiceFee());
-//                            }
                             salesDeliveryReport.setCustomerName(saleOrder.getBuyer());
                             salesDeliveryReport.setCollectionIngPayable(CalculationUtil.mulToFloat(salesDeliveryReport.getSettlementPrice(), salesDeliveryReport.getNetWeight()));
                             salesDeliveryReport.setCollectionEdPayable(0f);
@@ -678,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());
@@ -689,15 +1274,21 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                         stockSaleReceiptReport.setGrossWeight(warehouseInOutInfo.getGrossWeight());
                         stockSaleReceiptReport.setTare(warehouseInOutInfo.getTare());
                         stockSaleReceiptReport.setNetWeight(warehouseInOutInfo.getNetWeight());
-                        if("1".equals(warehouseInOutInfo.getTaskTypeKey())){
+                        if ("出库任务".equals(warehouseInOutInfo.getTaskType())) {
                             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");
+                        } 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());
@@ -917,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;

+ 6 - 1
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/WeighingManagementServiceImpl.java

@@ -238,7 +238,12 @@ public class WeighingManagementServiceImpl extends ServiceImpl<WeighingManagemen
                 QualityInspectionManagement qualityInspectionManagement = qualityInspectionManagementService.selectOne(new EntityWrapper<QualityInspectionManagement>()
                         .eq("relation_id", weighingManagement1.getRelationId()));
                 if (qualityInspectionManagement!=null){
-                    paymentManagement1.setTidalGrainPrice(qualityInspectionManagement.getTidalGrainPrice());
+                    if ("潮粮".equals(weighingManagement1.getType())) {
+                        paymentManagement1.setTidalGrainPrice(qualityInspectionManagement.getTidalGrainPrice());
+                    }
+                    else{
+                        paymentManagement1.setTidalGrainPrice(qualityInspectionManagement.getDryGrainPrice());
+                    }
                 }
                 paymentManagementService.insert(paymentManagement1);
             }

+ 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>

+ 5 - 2
winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/SettledCompanyDynamicsMapper.xml

@@ -23,7 +23,7 @@
                 AND status_flag = '3'
             </if>
             <if test="searchType == 3">
-                AND status_flag = '5'
+                AND status_flag = '4'
             </if>
             <if test="searchType == 4">
                 AND status_flag = '8'
@@ -72,7 +72,10 @@
                 AND status_flag = '3'
             </if>
             <if test="searchType == 3">
-                AND status_flag = '5'
+                AND status_flag = '4'
+            </if>
+            <if test="searchType == 4">
+                AND status_flag = '8'
             </if>
         </if>
         <if test="pcFlag != null and pcFlag != ''and pcFlag != '1'">