home 2 vuotta sitten
vanhempi
commit
e64843f58f
22 muutettua tiedostoa jossa 679 lisäystä ja 17 poistoa
  1. 4 4
      bladex-tool/blade-starter-mybatis/pom.xml
  2. 6 4
      bladex-tool/blade-starter-mybatis/src/main/java/org/springblade/core/mp/config/MybatisPlusConfiguration.java
  3. 3 3
      hx-service-api/service-flow-api/src/main/java/com/fjhx/feign/IFlowClient.java
  4. 78 0
      hx-service-api/storage-api/src/main/java/com/fjhx/entity/stock/StockTransfer.java
  5. 50 0
      hx-service-api/storage-api/src/main/java/com/fjhx/entity/stock/StockTransferDetails.java
  6. 17 0
      hx-service-api/storage-api/src/main/java/com/fjhx/params/stock/StockTransferDetailsEx.java
  7. 17 0
      hx-service-api/storage-api/src/main/java/com/fjhx/params/stock/StockTransferDetailsVo.java
  8. 17 0
      hx-service-api/storage-api/src/main/java/com/fjhx/params/stock/StockTransferEx.java
  9. 30 0
      hx-service-api/storage-api/src/main/java/com/fjhx/params/stock/StockTransferVo.java
  10. 57 0
      hx-service/storage/src/main/java/com/fjhx/stock/controller/StockTransferController.java
  11. 24 0
      hx-service/storage/src/main/java/com/fjhx/stock/controller/StockTransferDetailsController.java
  12. 5 0
      hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockBackPlanMapper.java
  13. 30 1
      hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockBackPlanMapper.xml
  14. 16 0
      hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockTransferDetailsMapper.java
  15. 5 0
      hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockTransferDetailsMapper.xml
  16. 26 0
      hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockTransferMapper.java
  17. 36 0
      hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockTransferMapper.xml
  18. 28 0
      hx-service/storage/src/main/java/com/fjhx/stock/service/StockTransferDetailsService.java
  19. 29 0
      hx-service/storage/src/main/java/com/fjhx/stock/service/StockTransferService.java
  20. 19 5
      hx-service/storage/src/main/java/com/fjhx/stock/service/impl/StockBackPlanServiceImpl.java
  21. 54 0
      hx-service/storage/src/main/java/com/fjhx/stock/service/impl/StockTransferDetailsServiceImpl.java
  22. 128 0
      hx-service/storage/src/main/java/com/fjhx/stock/service/impl/StockTransferServiceImpl.java

+ 4 - 4
bladex-tool/blade-starter-mybatis/pom.xml

@@ -60,10 +60,10 @@
             <artifactId>blade-core-auto</artifactId>
             <scope>provided</scope>
         </dependency>
-<!--        <dependency>-->
-<!--            <groupId>com.baomidou</groupId>-->
-<!--            <artifactId>mybatis-plus-boot-starter</artifactId>-->
-<!--        </dependency>-->
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+        </dependency>
     </dependencies>
 
 </project>

+ 6 - 4
bladex-tool/blade-starter-mybatis/src/main/java/org/springblade/core/mp/config/MybatisPlusConfiguration.java

@@ -16,8 +16,10 @@
  */
 package org.springblade.core.mp.config;
 
+import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
 import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
 import com.baomidou.mybatisplus.core.injector.ISqlInjector;
+import com.baomidou.mybatisplus.extension.MybatisMapWrapperFactory;
 import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
 import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
@@ -156,10 +158,10 @@ public class MybatisPlusConfiguration implements WebMvcConfigurer {
      * updateTime 2022-08-10
      * </p>
      */
-//    @Bean
-//    public ConfigurationCustomizer configurationCustomizer() {
-//        return i -> i.setObjectWrapperFactory(new MybatisMapWrapperFactory());
-//    }
+    @Bean
+    public ConfigurationCustomizer configurationCustomizer() {
+        return i -> i.setObjectWrapperFactory(new MybatisMapWrapperFactory());
+    }
 
 }
 

+ 3 - 3
hx-service-api/service-flow-api/src/main/java/com/fjhx/feign/IFlowClient.java

@@ -33,9 +33,9 @@ public interface IFlowClient {
     R<ExampleResult> create(@RequestParam("flowLinkNo") Long flowLinkNo,
                             @RequestParam("code") String code,
                             @RequestParam(value = "nodeCode", required = false) String nodeCode,
-                            @RequestParam("title") String title,
-                            @RequestParam("remarks") String remarks,
-                            @RequestParam("cacheData") String cacheData);
+                            @RequestParam(value = "title", required = false) String title,
+                            @RequestParam(value = "remarks", required = false) String remarks,
+                            @RequestParam(value = "cacheData", required = false) String cacheData);
 
     /**
      * 获取按钮

+ 78 - 0
hx-service-api/storage-api/src/main/java/com/fjhx/entity/stock/StockTransfer.java

@@ -0,0 +1,78 @@
+package com.fjhx.entity.stock;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fjhx.base.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ * 转仓
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-09-13
+ */
+@Data
+public class StockTransfer implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 物料id
+     */
+    private String materialId;
+
+    /**
+     * 提交人账号
+     */
+    private String submitUser;
+
+    /**
+     * 提交时间
+     */
+    private Date submitTime;
+
+    /**
+     * 提交数量
+     */
+    private Integer submitNum;
+
+    /**
+     * 提交米数
+     */
+    private BigDecimal submitMeters;
+
+    /**
+     * 接收人账号
+     */
+    private String receiveUser;
+
+    /**
+     * 审核人账号
+     */
+    private String checkUser;
+
+    /**
+     * 审核时间
+     */
+    private Date checkTime;
+
+    /**
+     * 复核状态(0未复核 1已复合)
+     */
+    private Integer status;
+
+
+}

+ 50 - 0
hx-service-api/storage-api/src/main/java/com/fjhx/entity/stock/StockTransferDetails.java

@@ -0,0 +1,50 @@
+package com.fjhx.entity.stock;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 转仓
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-09-13
+ */
+@Data
+public class StockTransferDetails implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 转仓id
+     */
+    private Long stockTransferId;
+
+    /**
+     * 物料id
+     */
+    private String materialId;
+
+    /**
+     * 数量
+     */
+    private BigDecimal quantity;
+
+    /**
+     * 复合之前的数量
+     */
+    private BigDecimal oldQuantity;
+
+
+}

+ 17 - 0
hx-service-api/storage-api/src/main/java/com/fjhx/params/stock/StockTransferDetailsEx.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.stock;
+
+import com.fjhx.entity.stock.StockTransferDetails;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 转仓
+ *
+ * @author ${author}
+ * @since 2022-09-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class StockTransferDetailsEx extends StockTransferDetails {
+
+}

+ 17 - 0
hx-service-api/storage-api/src/main/java/com/fjhx/params/stock/StockTransferDetailsVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.stock;
+
+import com.fjhx.entity.stock.StockTransferDetails;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 转仓
+ *
+ * @author ${author}
+ * @since 2022-09-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class StockTransferDetailsVo extends StockTransferDetails {
+
+}

+ 17 - 0
hx-service-api/storage-api/src/main/java/com/fjhx/params/stock/StockTransferEx.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.stock;
+
+import com.fjhx.entity.stock.StockTransfer;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 转仓
+ *
+ * @author ${author}
+ * @since 2022-09-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class StockTransferEx extends StockTransfer {
+
+}

+ 30 - 0
hx-service-api/storage-api/src/main/java/com/fjhx/params/stock/StockTransferVo.java

@@ -0,0 +1,30 @@
+package com.fjhx.params.stock;
+
+import com.fjhx.entity.stock.StockTransfer;
+import com.fjhx.entity.stock.StockTransferDetails;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * 转仓
+ *
+ * @author ${author}
+ * @since 2022-09-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class StockTransferVo extends StockTransfer {
+
+    /**
+     * 转仓明细
+     */
+    private List<StockTransferDetails> stockTransferDetailsList;
+
+    /**
+     * 物料名称
+     */
+    private String materialName;
+
+}

+ 57 - 0
hx-service/storage/src/main/java/com/fjhx/stock/controller/StockTransferController.java

@@ -0,0 +1,57 @@
+package com.fjhx.stock.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.stock.StockTransfer;
+import com.fjhx.params.stock.StockTransferVo;
+import com.fjhx.stock.service.StockTransferService;
+import org.springblade.core.tool.api.R;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 转仓 前端控制器
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-09-13
+ */
+@RestController
+@RequestMapping("/stockTransfer")
+public class StockTransferController {
+
+    @Autowired
+    private StockTransferService stockTransferService;
+
+    @PostMapping("/page")
+    public R page(@RequestBody Map<String, String> condition) {
+        Page<Map<String, Object>> page = stockTransferService.getPage(condition);
+        return R.success(page);
+    }
+
+    @PostMapping("/add")
+    public R add(@RequestBody List<StockTransferVo> stockTransferVoList) {
+        stockTransferService.add(stockTransferVoList);
+        return R.success();
+    }
+
+    @PostMapping("/details")
+    public R details(@RequestBody StockTransfer stockTransfer) {
+        StockTransferVo stockTransferVo = stockTransferService.details(stockTransfer.getId());
+        return R.success(stockTransferVo);
+    }
+
+    @PostMapping("/check")
+    public R check(@RequestBody StockTransferVo stockTransferVo) {
+        stockTransferService.check(stockTransferVo);
+        return R.success();
+    }
+
+}
+

+ 24 - 0
hx-service/storage/src/main/java/com/fjhx/stock/controller/StockTransferDetailsController.java

@@ -0,0 +1,24 @@
+package com.fjhx.stock.controller;
+
+import com.fjhx.stock.service.StockTransferDetailsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 转仓 前端控制器
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-09-13
+ */
+@RestController
+@RequestMapping("/stockTransferDetails")
+public class StockTransferDetailsController {
+
+    @Autowired
+    private StockTransferDetailsService stockTransferDetailsService;
+
+}
+

+ 5 - 0
hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockBackPlanMapper.java

@@ -32,4 +32,9 @@ public interface StockBackPlanMapper extends BaseMapper<StockBackPlan> {
     @TenantIgnore
     List<Map<String, Object>> getCorrect(@Param("ew") QueryWrapper<Object> wrapper);
 
+    @TenantIgnore
+    List<Map<String, Object>> getTransferBackList(@Param("ew") QueryWrapper<Object> wrapper);
+
+    @TenantIgnore
+    List<Map<String, Object>> getTransferPickingList(@Param("ew") QueryWrapper<Object> wrapper);
 }

+ 30 - 1
hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockBackPlanMapper.xml

@@ -31,8 +31,8 @@
 
     <select id="getWater" resultType="java.util.Map">
         select swd.ChangeNum   changeNum,
-               m.Name          materialName,
                swd.CreatedTime createTime,
+               m.Name          materialName,
                m.Price         price,
                m.Width         width,
                uu.JobNo        jobNo
@@ -53,4 +53,33 @@
             ${ew.customSqlSegment}
     </select>
 
+    <select id="getTransferBackList" resultType="java.util.Map">
+        select std.quantity  changeNum,
+               st.check_time createTime,
+               m.Name        materialName,
+               m.Price       price,
+               m.Width       width,
+               uu.JobNo      jobNo
+        from stock_transfer st
+                 left join stock_transfer_details std on st.id = std.stock_transfer_id
+                 left join material m on st.material_id = m.id
+                 left join acc_account aa on aa.AccountNo = st.submit_user
+                 left join u_user uu on uu.ID = aa.ID
+            ${ew.customSqlSegment}
+    </select>
+
+    <select id="getTransferPickingList" resultType="java.util.Map">
+        select std.quantity  changeNum,
+               st.check_time createTime,
+               m.Name        materialName,
+               m.Price       price,
+               m.Width       width,
+               uu.JobNo      jobNo
+        from stock_transfer st
+                 left join stock_transfer_details std on st.id = std.stock_transfer_id
+                 left join material m on st.material_id = m.id
+                 left join u_user uu on uu.ID = st.receive_user
+            ${ew.customSqlSegment}
+    </select>
+
 </mapper>

+ 16 - 0
hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockTransferDetailsMapper.java

@@ -0,0 +1,16 @@
+package com.fjhx.stock.mapper;
+
+import com.fjhx.entity.stock.StockTransferDetails;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 转仓 Mapper 接口
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-09-13
+ */
+public interface StockTransferDetailsMapper extends BaseMapper<StockTransferDetails> {
+
+}

+ 5 - 0
hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockTransferDetailsMapper.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.fjhx.stock.mapper.StockTransferDetailsMapper">
+
+</mapper>

+ 26 - 0
hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockTransferMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.stock.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.stock.StockTransfer;
+import com.fjhx.params.stock.StockTransferVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 转仓 Mapper 接口
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-09-13
+ */
+public interface StockTransferMapper extends BaseMapper<StockTransfer> {
+
+    Page<Map<String, Object>> getPage(@Param("page") Page<StockTransfer> page, @Param("ew") QueryWrapper<Object> wrapper);
+
+    StockTransferVo StockTransferVo(@Param("id") Long id);
+
+}

+ 36 - 0
hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockTransferMapper.xml

@@ -0,0 +1,36 @@
+<?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.fjhx.stock.mapper.StockTransferMapper">
+
+    <select id="getPage" resultType="java.util.Map">
+        select st.id,
+               st.submit_num,
+               st.submit_meters,
+               st.submit_time,
+               uu.RealName  receive_user,
+               uu2.RealName submit_user
+        from stock_transfer st
+                 left join u_user uu on st.receive_user = uu.ID
+                 left join acc_account aa on st.submit_user = aa.AccountNo
+                 left join u_user uu2 on aa.ID = uu2.ID
+            ${ew.customSqlSegment}
+    </select>
+
+    <select id="StockTransferVo" resultType="com.fjhx.params.stock.StockTransferVo">
+        select st.id,
+               st.material_id,
+               st.submit_user,
+               st.submit_time,
+               st.submit_num,
+               st.submit_meters,
+               st.receive_user,
+               st.check_user,
+               st.check_time,
+               st.status,
+               m.Name material_name
+        from stock_transfer st
+                 left join material m on st.material_id = m.ID
+        where st.id = #{id}
+    </select>
+
+</mapper>

+ 28 - 0
hx-service/storage/src/main/java/com/fjhx/stock/service/StockTransferDetailsService.java

@@ -0,0 +1,28 @@
+package com.fjhx.stock.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.stock.StockTransferDetails;
+import com.fjhx.params.stock.StockTransferDetailsVo;
+import com.fjhx.base.BaseService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 转仓 服务类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-09-13
+ */
+public interface StockTransferDetailsService extends BaseService<StockTransferDetails> {
+
+    Page<StockTransferDetails> getPage(Map<String, String> condition);
+
+    void add(StockTransferDetailsVo stockTransferDetailsVo);
+
+    void edit(StockTransferDetailsVo stockTransferDetailsVo);
+
+    void delete(StockTransferDetailsVo stockTransferDetailsVo);
+
+}

+ 29 - 0
hx-service/storage/src/main/java/com/fjhx/stock/service/StockTransferService.java

@@ -0,0 +1,29 @@
+package com.fjhx.stock.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.stock.StockTransfer;
+import com.fjhx.params.stock.StockTransferVo;
+import com.fjhx.base.BaseService;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 转仓 服务类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-09-13
+ */
+public interface StockTransferService extends BaseService<StockTransfer> {
+
+    Page<Map<String, Object>> getPage(Map<String, String> condition);
+
+    void add(List<StockTransferVo> stockTransferVoList);
+
+    StockTransferVo details(Long id);
+
+    void check(StockTransferVo stockTransferVo);
+
+}

+ 19 - 5
hx-service/storage/src/main/java/com/fjhx/stock/service/impl/StockBackPlanServiceImpl.java

@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.constants.StatusConstant;
 import com.fjhx.entity.stock.StockBackPlan;
 import com.fjhx.entity.stock.StockBackPlanDetails;
 import com.fjhx.stock.mapper.StockBackPlanMapper;
@@ -136,6 +137,14 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
 
         // 查询出库
         List<Map<String, Object>> pickingList = baseMapper.getWater(pickingWrapper);
+
+        // 转仓
+        List<Map<String, Object>> transferPickingList = baseMapper.getTransferPickingList(Wrappers.query()
+                .ge("std.check_time", DateUtil.format(beginDate, "yyyy-MM-dd 7:30:00"))
+                .eq("st.status", StatusConstant.YES)
+        );
+        pickingList.addAll(transferPickingList);
+
         for (Map<String, Object> map : pickingList) {
 
             // 出库时间
@@ -184,14 +193,19 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
                     BigDecimalUtil.init(changeNum).multiply(width).divide(100, 2).getValue()));
         }
 
-        // 回仓统计
-        QueryWrapper<Object> backWrapper = Wrappers.query()
+        // 查询回仓
+        List<Map<String, Object>> backList = baseMapper.getWater(Wrappers.query()
                 .ge("swd.CreatedTime", DateUtil.format(beginDate, "yyyy-MM-dd 9:30:00"))
                 .eq("swd.StockChangeType", 16)
                 .likeRight("m.Code", "01.")
-                .isNotNull("uu.JobNo");
-        // 查询回仓
-        List<Map<String, Object>> backList = baseMapper.getWater(backWrapper);
+                .isNotNull("uu.JobNo"));
+
+        // 转仓
+        List<Map<String, Object>> transferBackList = baseMapper.getTransferBackList(Wrappers.query()
+                .ge("std.check_time", DateUtil.format(beginDate, "yyyy-MM-dd 9:30:00"))
+                .eq("st.status", StatusConstant.YES)
+        );
+        backList.addAll(transferBackList);
 
         for (Map<String, Object> map : backList) {
 

+ 54 - 0
hx-service/storage/src/main/java/com/fjhx/stock/service/impl/StockTransferDetailsServiceImpl.java

@@ -0,0 +1,54 @@
+package com.fjhx.stock.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.utils.WrapperUtil;
+import com.fjhx.entity.stock.StockTransferDetails;
+import com.fjhx.params.stock.StockTransferDetailsVo;
+import com.fjhx.stock.mapper.StockTransferDetailsMapper;
+import com.fjhx.stock.service.StockTransferDetailsService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 转仓 服务实现类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-09-13
+ */
+@Service
+public class StockTransferDetailsServiceImpl extends ServiceImpl<StockTransferDetailsMapper, StockTransferDetails> implements StockTransferDetailsService {
+
+    @Override
+    public Page<StockTransferDetails> getPage(Map<String, String> condition) {
+
+        QueryWrapper<StockTransferDetails> wrapper = Wrappers.query();
+
+        WrapperUtil.init(condition, wrapper)
+                .createTimeDesc();
+
+        Page<StockTransferDetails> page = page(condition, wrapper);
+        return page;
+    }
+
+    @Override
+    public void add(StockTransferDetailsVo stockTransferDetailsVo) {
+        save(stockTransferDetailsVo);
+    }
+
+    @Override
+    public void edit(StockTransferDetailsVo stockTransferDetailsVo) {
+        updateById(stockTransferDetailsVo);
+    }
+
+    @Override
+    public void delete(StockTransferDetailsVo stockTransferDetailsVo) {
+        removeById(stockTransferDetailsVo.getId());
+    }
+
+}

+ 128 - 0
hx-service/storage/src/main/java/com/fjhx/stock/service/impl/StockTransferServiceImpl.java

@@ -0,0 +1,128 @@
+package com.fjhx.stock.service.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.constants.StatusConstant;
+import com.fjhx.entity.stock.StockTransfer;
+import com.fjhx.entity.stock.StockTransferDetails;
+import com.fjhx.params.stock.StockTransferVo;
+import com.fjhx.stock.mapper.StockTransferMapper;
+import com.fjhx.stock.service.StockTransferDetailsService;
+import com.fjhx.stock.service.StockTransferService;
+import com.fjhx.utils.Assert;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 转仓 服务实现类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-09-13
+ */
+@Service
+public class StockTransferServiceImpl extends ServiceImpl<StockTransferMapper, StockTransfer> implements StockTransferService {
+
+    @Autowired
+    private StockTransferDetailsService stockTransferDetailsService;
+
+    @Override
+    public Page<Map<String, Object>> getPage(Map<String, String> condition) {
+
+        QueryWrapper<Object> wrapper = Wrappers.query()
+                .eq("st.status", StatusConstant.NO);
+
+        return baseMapper.getPage(createPage(condition), wrapper);
+    }
+
+    @Override
+    public void add(List<StockTransferVo> stockTransferVoList) {
+
+        ArrayList<StockTransferDetails> stockTransferDetailsList = new ArrayList<>();
+
+        for (StockTransferVo stockTransferVo : stockTransferVoList) {
+            Assert.notEmpty(stockTransferVo.getSubmitUser(), "提交人账号不能为空");
+
+            Assert.notEmpty(stockTransferVo.getReceiveUser(), "接收人账号不能为空");
+
+            String materialId = stockTransferVo.getMaterialId();
+            Assert.notEmpty(materialId, "物料id不能为空");
+
+            List<StockTransferDetails> itemStockTransferDetailsList = stockTransferVo.getStockTransferDetailsList();
+            Assert.notEmpty(itemStockTransferDetailsList, "物料信息不能为空");
+
+            // 赋值提交数量
+            stockTransferVo.setSubmitNum(itemStockTransferDetailsList.size());
+
+            // 赋值提交米数
+            stockTransferVo.setSubmitMeters(itemStockTransferDetailsList.stream()
+                    .map(StockTransferDetails::getQuantity)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add));
+
+            // 赋值提交时间
+            stockTransferVo.setSubmitTime(new Date());
+
+            // 状态 未复核
+            stockTransferVo.setStatus(StatusConstant.NO);
+
+            // 保存
+            save(stockTransferVo);
+
+            // 转仓id
+            Long id = stockTransferVo.getId();
+
+            // 赋值明细
+            for (StockTransferDetails stockTransferDetails : itemStockTransferDetailsList) {
+                stockTransferDetails.setStockTransferId(id);
+                stockTransferDetails.setMaterialId(materialId);
+                stockTransferDetails.setOldQuantity(stockTransferDetails.getQuantity());
+            }
+
+            stockTransferDetailsList.addAll(itemStockTransferDetailsList);
+
+        }
+
+        stockTransferDetailsService.saveBatch(stockTransferDetailsList);
+
+    }
+
+    @Override
+    public StockTransferVo details(Long id) {
+
+        StockTransferVo stockTransferVo = baseMapper.StockTransferVo(id);
+
+        List<StockTransferDetails> stockTransferDetailsList =
+                stockTransferDetailsService.list(StockTransferDetails::getStockTransferId, id);
+        stockTransferVo.setStockTransferDetailsList(stockTransferDetailsList);
+
+        return stockTransferVo;
+    }
+
+    @Override
+    public void check(StockTransferVo stockTransferVo) {
+        Assert.notEmpty(stockTransferVo.getCheckUser(), "复核人账号不能为空");
+        stockTransferVo.setCheckTime(new Date());
+        updateById(stockTransferVo);
+
+        List<StockTransferDetails> stockTransferDetailsList = stockTransferVo.getStockTransferDetailsList();
+        for (StockTransferDetails stockTransferDetails : stockTransferDetailsList) {
+            if (ObjectUtil.isEmpty(stockTransferDetails.getId())) {
+                stockTransferDetails.setOldQuantity(BigDecimal.ZERO);
+                stockTransferDetails.setMaterialId(stockTransferVo.getMaterialId());
+                stockTransferDetails.setStockTransferId(stockTransferVo.getId());
+            }
+        }
+        stockTransferDetailsService.saveOrUpdateBatch(stockTransferDetailsList);
+    }
+
+}