24282 2 سال پیش
والد
کامیت
eab3e5a282

+ 5 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/stock/StockJournal.java

@@ -67,6 +67,11 @@ public class StockJournal extends BaseEntity {
     private Integer qualityStatus;
 
     /**
+     * 出入库金额
+     */
+    private BigDecimal amount;
+
+    /**
      * 备注
      */
     private String remarks;

+ 13 - 3
hx-service/victoriatourist/src/main/java/com/fjhx/controller/stock/StockJournalController.java

@@ -1,10 +1,11 @@
 package com.fjhx.controller.stock;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import org.springblade.core.tool.api.R;
+import com.fjhx.base.Condition;
 import com.fjhx.entity.stock.StockJournal;
 import com.fjhx.params.stock.StockJournalVo;
 import com.fjhx.service.stock.StockJournalService;
+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;
@@ -41,16 +42,25 @@ public class StockJournalController {
     }
 
     @PostMapping("/edit")
-    public R edit(@RequestBody StockJournalVo stockJournalVo){
+    public R edit(@RequestBody StockJournalVo stockJournalVo) {
         stockJournalService.edit(stockJournalVo);
         return R.success();
     }
 
     @PostMapping("/delete")
-    public R delete(@RequestBody StockJournalVo stockJournalVo){
+    public R delete(@RequestBody StockJournalVo stockJournalVo) {
         stockJournalService.delete(stockJournalVo);
         return R.success();
     }
 
+    /**
+     * 出入库单据查看
+     */
+    @PostMapping("inOutDocument")
+    public R inOutDocument(@RequestBody Condition condition) {
+        Page<Map<String, Object>> page = stockJournalService.inOutDocument(condition);
+        return R.success(page);
+    }
+
 }
 

+ 2 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/stock/StockJournalMapper.java

@@ -31,4 +31,6 @@ public interface StockJournalMapper extends BaseMapper<StockJournal> {
      */
     Page<StockJournal> getManualInStockPage(@Param("page") Page<StockJournal> page, @Param("ew") IWrapper<StockJournal> wrapper);
 
+    Page<Map<String, Object>> inOutDocument(@Param("page") Page<Object> page, @Param("ew") IWrapper<Object> wrapper);
+
 }

+ 12 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/stock/StockJournalMapper.xml

@@ -65,4 +65,16 @@
             LEFT JOIN warehouse t3 ON t1.warehouse_id = t3.id
         ${ew.customSqlSegment}
     </select>
+
+    <select id="inOutDocument" resultType="java.util.Map">
+        select sj.code,
+               w.name         warehouseName,
+               sum(sj.amount) amount,
+               sj.create_time,
+               sj.create_user
+        from stock_journal sj
+                 left join warehouse w on sj.warehouse_id = w.id
+            ${ew.customSqlSegment}
+    </select>
+
 </mapper>

+ 2 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/service/form/impl/FormOverflowLossServiceImpl.java

@@ -33,7 +33,8 @@ public class FormOverflowLossServiceImpl extends ServiceImpl<FormOverflowLossMap
                 .like("fol", FormOverflowLoss::getCode)
                 .eq("fol", FormOverflowLoss::getWarehouseId)
                 .eq("fol", FormOverflowLoss::getCreateUser)
-                .periodTime("fol", FormOverflowLoss::getCreateTime);
+                .periodTime("fol", FormOverflowLoss::getCreateTime)
+                .orderByDesc("fol", FormOverflowLoss::getId);
 
         Page<Map<String, Object>> page = baseMapper.getPage(condition.getPage(), wrapper);
 

+ 6 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/StockJournalService.java

@@ -41,4 +41,10 @@ public interface StockJournalService extends BaseService<StockJournal> {
      * @return
      */
     Page<StockJournal> getManualInStockPage(Condition condition);
+
+    /**
+     * 出入库单据
+     */
+    Page<Map<String, Object>> inOutDocument(Condition condition);
+
 }

+ 35 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/impl/StockJournalServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.base.Condition;
 import com.fjhx.constants.StockJournalTypeConstant;
+import com.fjhx.entity.stock.Stock;
 import com.fjhx.entity.stock.StockJournal;
 import com.fjhx.enums.stock.InTypeEnum;
 import com.fjhx.enums.stock.OutTypeEnum;
@@ -13,10 +14,13 @@ import com.fjhx.mapper.stock.StockJournalMapper;
 import com.fjhx.params.stock.StockChangeVo;
 import com.fjhx.params.stock.StockJournalVo;
 import com.fjhx.service.stock.StockJournalService;
+import com.fjhx.service.stock.StockService;
 import com.fjhx.uitl.code.CodeEnum;
 import com.fjhx.utils.UserClientUtil;
 import com.fjhx.utils.wrapperUtil.IWrapper;
 import org.springblade.core.tool.utils.Func;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
@@ -35,6 +39,10 @@ import java.util.Map;
 @Service
 public class StockJournalServiceImpl extends ServiceImpl<StockJournalMapper, StockJournal> implements StockJournalService {
 
+    @Lazy
+    @Autowired
+    private StockService stockService;
+
     @Override
     public Page<StockJournal> getPage(Map<String, String> condition) {
 
@@ -133,6 +141,13 @@ public class StockJournalServiceImpl extends ServiceImpl<StockJournalMapper, Sto
                 // 备注
                 String remarks = ObjectUtil.defaultIfNull(changeDetails.getRemarks(), stockChangeVo.getDefaultRemarks());
 
+                // 获取加权平均单价
+                Stock stock = stockService.getOne(q -> q.eq(Stock::getWarehouseId, warehouseId).eq(Stock::getGoodsId, goodsId));
+                BigDecimal weightingAveragePrice = BigDecimal.ZERO;
+                if (stock != null) {
+                    weightingAveragePrice = ObjectUtil.defaultIfNull(stock.getWeightingAveragePrice(), BigDecimal.ZERO);
+                }
+
                 StockJournal stockJournal = new StockJournal();
 
                 if (typeEnum instanceof InTypeEnum) {
@@ -145,6 +160,7 @@ public class StockJournalServiceImpl extends ServiceImpl<StockJournalMapper, Sto
                     stockJournal.setDetailsType(((OutTypeEnum) typeEnum).getKey());
                 }
 
+                stockJournal.setAmount(weightingAveragePrice.multiply(changeQuantity));
                 stockJournal.setCode(code);
                 stockJournal.setBusinessId(businessId);
                 stockJournal.setGoodsId(goodsId);
@@ -216,4 +232,23 @@ public class StockJournalServiceImpl extends ServiceImpl<StockJournalMapper, Sto
         }
         return page;
     }
+
+    @Override
+    public Page<Map<String, Object>> inOutDocument(Condition condition) {
+
+        IWrapper<Object> wrapper = IWrapper.getWrapper(condition)
+                .eq("sj", StockJournal::getType)
+                .like("sj", StockJournal::getCode)
+                .eq("sj", StockJournal::getCreateUser)
+                .eq("sj", StockJournal::getWarehouseId)
+                .periodTime("sj", StockJournal::getCreateTime)
+                .groupBy("sj.code")
+                .orderByDesc("sj", StockJournal::getId);
+
+        Page<Map<String, Object>> page = baseMapper.inOutDocument(condition.getPage(), wrapper);
+
+        UserClientUtil.setUserName(page.getRecords(),"createUser","createUserName");
+
+        return page;
+    }
 }