home před 2 roky
rodič
revize
3f5d0a67bd

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

@@ -69,6 +69,11 @@ public class StockBack implements Serializable {
     private Date checkerTime;
 
     /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
      * 逻辑删除 0未删除 1已删除
      */
     @TableLogic

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

@@ -3,6 +3,7 @@ package com.fjhx.entity.stock;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -31,6 +32,7 @@ public class StockDetail implements Serializable {
     /**
      * 软删除
      */
+    @TableLogic
     @TableField("IsDelete")
     private Boolean isdelete;
 

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

@@ -3,6 +3,7 @@ package com.fjhx.entity.stock;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -31,6 +32,7 @@ public class StockTag implements Serializable {
     /**
      * 软删除
      */
+    @TableLogic
     @TableField("IsDelete")
     private Boolean IsDelete;
 

+ 13 - 0
hx-service/storage/src/main/java/com/fjhx/stock/controller/StockWaterController.java

@@ -189,5 +189,18 @@ public class StockWaterController {
         return R.success(result);
     }
 
+    @PostMapping("outStatistics")
+    public R outStatistics(@RequestBody Condition condition) {
+        Map<String, Object> result = stockWaterService.outStatistics(condition);
+        return R.success(result);
+    }
+
+    @PostMapping("swap")
+    public R swap(@RequestBody Condition condition) {
+        stockWaterService.swap(condition);
+        return R.success();
+    }
+
+
 }
 

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

@@ -28,7 +28,8 @@
                sb.operation_meters operationMeters,
                sb.operation_time   operationTime,
                sb.type,
-               uu.RealName         realName
+               uu.RealName         realName,
+               sb.create_time      createTime
         from stock_back sb
                  left join acc_account aa on aa.AccountNo = sb.operator_id
                  left join u_user uu on aa.ID = uu.ID

+ 3 - 0
hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockWaterMapper.java

@@ -77,4 +77,7 @@ public interface StockWaterMapper extends BaseMapper<StockWater> {
     List<Map<String, Object>> getInventoryDetails(@Param("condition") Condition condition);
 
     Page<Map<String, Object>> outPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<Object> wrapper);
+
+    Map<String, Object> outStatistics(@Param("ew") IWrapper<Object> wrapper);
+
 }

+ 17 - 7
hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockWaterMapper.xml

@@ -395,18 +395,28 @@
     </select>
 
     <select id="outPage" resultType="java.util.LinkedHashMap">
-        SELECT sw.WaterId,
-               m.`Name`,
-               m.`Code`,
-               uu.RealName,
-               sw.StockChangeType,
-               sw.CreatedTime,
-               sw.Remark
+        SELECT sw.ID              waterId,
+               m.`Name`           materialName,
+               m.`Code`           materialCode,
+               uu.RealName        realName,
+               sw.StockChangeType stockChangeType,
+               sw.CreatedTime     createdTime,
+               sw.Remark          remark
         FROM stock_water sw
                  LEFT JOIN material m ON sw.MaterialCode = m.`Code`
                  LEFT JOIN u_user uu ON sw.OperUserId = uu.ID
             ${ew.customSqlSegment}
     </select>
 
+    <select id="outStatistics" resultType="java.util.Map">
+        SELECT count(0)           count,
+               sum(swd.ChangeNum) sum
+        FROM stock_water sw
+                 LEFT JOIN material m ON sw.MaterialCode = m.`Code`
+                 LEFT JOIN u_user uu ON sw.OperUserId = uu.ID
+                 LEFT JOIN stock_waterdetial swd on sw.ID = swd.WaterId
+            ${ew.customSqlSegment}
+    </select>
+
 
 </mapper>

+ 4 - 0
hx-service/storage/src/main/java/com/fjhx/stock/service/StockWaterService.java

@@ -55,4 +55,8 @@ public interface StockWaterService extends BaseService<StockWater> {
 
     Page<Map<String, Object>> outPage(Condition condition);
 
+    Map<String, Object> outStatistics(Condition condition);
+
+    void swap(Condition condition);
+
 }

+ 1 - 0
hx-service/storage/src/main/java/com/fjhx/stock/service/impl/StockBackServiceImpl.java

@@ -138,6 +138,7 @@ public class StockBackServiceImpl extends ServiceImpl<StockBackMapper, StockBack
             stockBack.setOperationMeters(materialMetersList.stream().reduce(BigDecimal.ZERO, BigDecimal::add));
             stockBack.setStatus(StatusConstant.NO);
             stockBack.setDelFlag(0);
+            stockBack.setCreateTime(date);
             save(stockBack);
 
             // 退仓详情

+ 76 - 22
hx-service/storage/src/main/java/com/fjhx/stock/service/impl/StockWaterServiceImpl.java

@@ -11,9 +11,13 @@ 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.StatusConstant;
+import com.fjhx.entity.stock.StockDetail;
+import com.fjhx.entity.stock.StockTag;
 import com.fjhx.entity.stock.StockWater;
 import com.fjhx.entity.stock.StockWaterdetial;
 import com.fjhx.stock.mapper.StockWaterMapper;
+import com.fjhx.stock.service.StockDetailService;
+import com.fjhx.stock.service.StockTagService;
 import com.fjhx.stock.service.StockWaterService;
 import com.fjhx.stock.service.StockWaterdetialService;
 import com.fjhx.utils.Assert;
@@ -23,6 +27,7 @@ import com.fjhx.utils.wrapperUtil.IWrapper;
 import com.fjhx.utils.wrapperUtil.KeywordData;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
@@ -43,15 +48,20 @@ public class StockWaterServiceImpl extends ServiceImpl<StockWaterMapper, StockWa
     @Autowired
     private StockWaterdetialService stockWaterdetialService;
 
+    @Autowired
+    private StockDetailService stockDetailService;
+
+    @Autowired
+    private StockTagService stockTagService;
 
     @Override
     public Map<String, Object> getPickingStatistics(Map<String, String> condition) {
 
         QueryWrapper<?> wrapper = WrapperUtil.init(condition)
-                .periodOfTime("sw.CreatedTime") // 时间段查询
+                // 时间段查询
+                .periodOfTime("sw.CreatedTime")
                 .getWrapper();
-
-        wrapper.eq("sw.IsDelete", 0); // 未删除
+        wrapper.eq("sw.IsDelete", 0);
         wrapper.in("sw.StockChangeType", 15, 20, 23);
 
         // 获取统计数据
@@ -616,23 +626,7 @@ public class StockWaterServiceImpl extends ServiceImpl<StockWaterMapper, StockWa
     @Override
     public Page<Map<String, Object>> outPage(Condition condition) {
 
-        String beginTime = condition.getStr("beginTime");
-        String endTime = condition.getStr("endTime");
-
-        IWrapper<Object> wrapper = IWrapper.getWrapper(condition);
-        wrapper.func(q -> {
-                    if (ObjectUtil.isEmpty(condition.getInt("stockChangeType"))) {
-                        q.in("sw.StockChangeType", 20, 26, 27);
-                    } else {
-                        q.eq("sw.StockChangeType", condition.getInt("stockChangeType"));
-                    }
-                })
-                .keyword(new KeywordData("m.name"), new KeywordData("m.code"))
-                .eq("sw.OperUserId", condition.getStr("operUserId"))
-                .between(ObjectUtil.isAllNotEmpty(beginTime, endTime), "sw.CreatedTime", beginTime, endTime)
-                .orderByDesc("sw.CreatedTime");
-
-        Page<Map<String, Object>> page = baseMapper.outPage(condition.getPage(), wrapper);
+        Page<Map<String, Object>> page = baseMapper.outPage(condition.getPage(), getWrapper(condition));
 
         List<Map<String, Object>> records = page.getRecords();
         if (records.size() == 0) {
@@ -640,7 +634,7 @@ public class StockWaterServiceImpl extends ServiceImpl<StockWaterMapper, StockWa
         }
 
         // 查询出库明细
-        List<String> waterIdList = records.stream().map(item -> Convert.toStr(item.get("WaterId")))
+        List<String> waterIdList = records.stream().map(item -> Convert.toStr(item.get("waterId")))
                 .collect(Collectors.toList());
 
         Map<String, List<StockWaterdetial>> waterIdGroup = stockWaterdetialService.getKGroup(
@@ -650,7 +644,7 @@ public class StockWaterServiceImpl extends ServiceImpl<StockWaterMapper, StockWa
                         .eq(StockWaterdetial::getIsDelete, 0));
 
         records.forEach(item -> {
-            String waterId = Convert.toStr(item.get("WaterId"));
+            String waterId = Convert.toStr(item.get("waterId"));
             List<StockWaterdetial> stockWaterdetials = waterIdGroup.get(waterId);
             item.put("detailsList", stockWaterdetials);
         });
@@ -658,6 +652,66 @@ public class StockWaterServiceImpl extends ServiceImpl<StockWaterMapper, StockWa
         return page;
     }
 
+    @Override
+    public Map<String, Object> outStatistics(Condition condition) {
+        return baseMapper.outStatistics(getWrapper(condition));
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void swap(Condition condition) {
+        String oldRfid = condition.getStr("oldRfid");
+        String newRfid = condition.getStr("newRfid");
+
+        StockDetail stockDetail = stockDetailService.getOne(
+                q -> q.eq(StockDetail::getIsdelete, 0).eq(StockDetail::getRfidcode, oldRfid));
+
+        if (stockDetail != null) {
+            stockDetailService.removeById(stockDetail);
+
+            stockDetail.setId(null);
+            stockDetail.setRfidcode(newRfid);
+            stockDetailService.save(stockDetail);
+        }
+
+        StockTag stockTag = stockTagService.getOne(
+                q -> q.eq(StockTag::getIsDelete, 0).eq(StockTag::getRfidCode, oldRfid));
+
+        if (stockTag != null) {
+            stockTagService.removeById(stockTag);
+
+            stockTag.setId(null);
+            stockTag.setRfidCode(newRfid);
+            stockTagService.save(stockTag);
+        }
+    }
+
+    private IWrapper<Object> getWrapper(Condition condition) {
+
+        String beginTime = condition.getStr("beginTime");
+        String endTime = condition.getStr("endTime");
+
+        IWrapper<Object> wrapper = IWrapper.getWrapper(condition);
+        wrapper.eq("sw.IsDelete", 0)
+                .func(q -> {
+                    Integer stockChangeType = condition.getInt("stockChangeType");
+                    if (ObjectUtil.isEmpty(stockChangeType)) {
+                        q.in("sw.StockChangeType", 20, 23, 26, 27);
+                    } else {
+                        if (stockChangeType == 20) {
+                            q.in("sw.StockChangeType", 20, 23);
+                        } else {
+                            q.eq("sw.StockChangeType", stockChangeType);
+                        }
+                    }
+                })
+                .keyword(new KeywordData("m.name"), new KeywordData("m.code"))
+                .eq("sw.OperUserId", condition.getStr("operUserId"))
+                .between(ObjectUtil.isAllNotEmpty(beginTime, endTime), "sw.CreatedTime", beginTime, endTime)
+                .orderByDesc("sw.CreatedTime");
+        return wrapper;
+    }
+
     private List<JSONObject> format(List<Map<String, Object>> list) {
         Map<String, JSONObject> collect = list.stream().collect(Collectors.toMap(
                 item -> item.get("materialCode").toString(),

+ 3 - 2
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/order/OrderJdMapper.java

@@ -1,10 +1,11 @@
 package com.fjhx.mapper.order;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.entity.order.OrderJd;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.fjhx.params.order.OrderJdEx;
 import com.fjhx.utils.wrapperUtil.IWrapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -16,6 +17,6 @@ import com.fjhx.utils.wrapperUtil.IWrapper;
  */
 public interface OrderJdMapper extends BaseMapper<OrderJd> {
 
-    Page<OrderJdEx> getPage(Page<OrderJd> page, IWrapper<Object> wrapper);
+    Page<OrderJdEx> getPage(@Param("page") Page<OrderJd> page, @Param("ew") IWrapper<Object> wrapper);
 
 }