ソースを参照

杰生 每日面料使用率统计优化

home 2 年 前
コミット
7a17b41277

+ 1 - 1
bladex/blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetailsServiceImpl.java

@@ -164,7 +164,7 @@ public class BladeUserDetailsServiceImpl implements UserDetailsService {
      * @param count    次数
      */
     private void setFailCount(String tenantId, String username, int count) {
-        bladeRedis.setEx(CacheNames.tenantKey(tenantId, CacheNames.USER_FAIL_KEY, username), count + 1, Duration.ofMinutes(30));
+        bladeRedis.setEx(CacheNames.tenantKey(tenantId, CacheNames.USER_FAIL_KEY, username), count + 1, Duration.ofMinutes(10));
     }
 
 

+ 1 - 1
hx-service-api/storage-api/src/main/java/com/fjhx/params/stock/StatisticsResult.java

@@ -137,7 +137,7 @@ public class StatisticsResult {
      * 使用率
      */
     public BigDecimal getUseRate() {
-        return BigDecimalUtil.init(scheduleArea).multiply(100).divideTry(getActualUse(), 2).getValue();
+        return BigDecimalUtil.init(getScheduleArea()).multiply(100).divideTry(getActualUse(), 2).getValue();
     }
 
     public BigDecimal getScheduleArea() {

+ 13 - 6
hx-service/storage-restructure/src/main/java/com/fjhx/service/contract/impl/ContractDetailsServiceImpl.java

@@ -47,15 +47,22 @@ public class ContractDetailsServiceImpl extends ServiceImpl<ContractDetailsMappe
         WaterBatch waterBatch = waterBatchService.getById(waterBatchId);
         ContractDetails contractDetails = getById(waterBatch.getContractDetailsId());
 
-        // 出货数量
-        BigDecimal shipmentQuantity = contractDetails.getShipmentQuantity();
+        // 出货数量
+        BigDecimal shipmentQuantity = contractDetails.getShipmentQuantity().add(waterBatch.getTagQuantitySum());
 
         // 更新合同出货数量
         update(Wrappers.<ContractDetails>lambdaUpdate()
                 .eq(StorageBaseEntity::getId, contractDetails.getId())
-                .set(ContractDetails::getShipmentQuantity, shipmentQuantity.add(waterBatch.getTagQuantitySum())));
-
-        // TODO 出库数量大于百分之95,应供应商出货状态已完成,合同出货状态已完成
+                .set(ContractDetails::getShipmentQuantity, shipmentQuantity)
+        );
+
+        // TODO 出库数量大于百分之95,应供应商出货状态已完成,合同出货状态已完成(目前合同和明细为 1对1 关系,明细完成直接更新合同即可)
+        if (BigDecimalUtil.ge(shipmentQuantity, contractDetails.getQuantity().multiply(new BigDecimal("0.95")))) {
+            contractService.update(Wrappers.<Contract>lambdaUpdate()
+                    .eq(StorageBaseEntity::getId, contractDetails.getContractId())
+                    .set(Contract::getShipmentStatus, StatusConstant.YES)
+            );
+        }
     }
 
     @Override
@@ -101,7 +108,7 @@ public class ContractDetailsServiceImpl extends ServiceImpl<ContractDetailsMappe
                 contractDetails.setCompleteTime(date);
                 contractDetails.setCompleteStatus(StatusConstant.YES);
 
-                // TODO 更新合同表(目前合同和明细为 1对1 关系,合同完成直接更新明细即可)
+                // TODO 更新合同表(目前合同和明细为 1对1 关系,明细完成直接更新合同即可)
                 Contract contract = new Contract();
                 contract.setStatus(ContractStatusEnum.COMPLETED.getType());
                 contract.setShipmentStatus(StatusConstant.YES);

+ 1 - 1
hx-service/storage-restructure/src/main/java/com/fjhx/service/water/impl/WaterServiceImpl.java

@@ -58,7 +58,7 @@ public class WaterServiceImpl extends ServiceImpl<WaterMapper, Water> implements
         // 获取变更标签
         List<WaterTag> waterTagList = getWaterTagList(waterVo.getWaterTagIdList());
 
-        // TODO 如果是一体机出库,判断是否异常出库
+        // 判断出库是否异常
         setErrorOutStatus(typeEnum, waterVo);
 
         // 添加流水

+ 23 - 10
hx-service/storage/src/main/java/com/fjhx/stock/service/impl/StockBackPlanServiceImpl.java

@@ -14,6 +14,7 @@ import com.fjhx.stock.service.StockBackPlanService;
 import com.fjhx.utils.BigDecimalUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.client.RestTemplate;
 
 import java.math.BigDecimal;
@@ -100,12 +101,13 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
         saveBatch(new ArrayList<>(flagMap.values()));
     }
 
+    @Transactional(rollbackFor = Exception.class)
     @Override
-    public void statisticsScheduleDateTask() {
+    public synchronized void statisticsScheduleDateTask() {
 
         // 统计近3天排班
         Date endDate = new Date();
-        Date beginDate = DateUtil.beginOfDay(DateUtil.offsetDay(endDate, -3));
+        Date beginDate = DateUtil.beginOfDay(DateUtil.offsetDay(endDate, -2));
 
         List<StockBackPlan> list = list(Wrappers.<StockBackPlan>lambdaQuery()
                 .between(StockBackPlan::getPlanTime, beginDate, endDate));
@@ -157,6 +159,17 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
         stockBackPlanDetails.setBackNum(0);
         stockBackPlanDetails.setBackMeters(BigDecimal.ZERO);
         stockBackPlanDetails.setBackArea(BigDecimal.ZERO);
+
+        stockBackPlanDetails.setTransferOutMoney(BigDecimal.ZERO);
+        stockBackPlanDetails.setTransferOutMeters(BigDecimal.ZERO);
+        stockBackPlanDetails.setTransferOutArea(BigDecimal.ZERO);
+        stockBackPlanDetails.setTransferOutNum(0);
+
+        stockBackPlanDetails.setTransferInMoney(BigDecimal.ZERO);
+        stockBackPlanDetails.setTransferInMeters(BigDecimal.ZERO);
+        stockBackPlanDetails.setTransferInArea(BigDecimal.ZERO);
+        stockBackPlanDetails.setTransferInNum(0);
+
         return stockBackPlanDetails;
     }
 
@@ -388,16 +401,16 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
 
             // 金额
             stockBackPlanDetails.setTransferInMoney(
-                    BigDecimalUtil.init(stockBackPlanDetails.getPickingMoney()).add(price.multiply(changeNum)).getValue(2));
+                    BigDecimalUtil.init(stockBackPlanDetails.getTransferInMoney()).add(price.multiply(changeNum)).getValue(2));
 
             // 数量
-            stockBackPlanDetails.setTransferInNum(stockBackPlanDetails.getPickingNum() + 1);
+            stockBackPlanDetails.setTransferInNum(stockBackPlanDetails.getTransferInNum() + 1);
 
             // 米
-            stockBackPlanDetails.setTransferInMeters(stockBackPlanDetails.getPickingMeters().add(changeNum));
+            stockBackPlanDetails.setTransferInMeters(stockBackPlanDetails.getTransferInMeters().add(changeNum));
 
             // 面积
-            stockBackPlanDetails.setTransferInArea(stockBackPlanDetails.getPickingArea().add(
+            stockBackPlanDetails.setTransferInArea(stockBackPlanDetails.getTransferInArea().add(
                     BigDecimalUtil.init(changeNum).multiply(width).divide(100, 2).getValue()));
         }
 
@@ -447,16 +460,16 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
 
             // 金额
             stockBackPlanDetails.setTransferOutMoney(
-                    BigDecimalUtil.init(stockBackPlanDetails.getBackMoney()).add(price.multiply(changeNum)).getValue(2));
+                    BigDecimalUtil.init(stockBackPlanDetails.getTransferOutMoney()).add(price.multiply(changeNum)).getValue(2));
 
             // 数量
-            stockBackPlanDetails.setTransferOutNum(stockBackPlanDetails.getBackNum() + 1);
+            stockBackPlanDetails.setTransferOutNum(stockBackPlanDetails.getTransferOutNum() + 1);
 
             // 米
-            stockBackPlanDetails.setTransferOutMeters(stockBackPlanDetails.getBackMeters().add(changeNum));
+            stockBackPlanDetails.setTransferOutMeters(stockBackPlanDetails.getTransferOutMeters().add(changeNum));
 
             // 面积
-            stockBackPlanDetails.setTransferOutArea(stockBackPlanDetails.getBackArea().add(
+            stockBackPlanDetails.setTransferOutArea(stockBackPlanDetails.getTransferOutArea().add(
                     BigDecimalUtil.init(changeNum).multiply(width).divide(100, 2).getValue()));
         }
     }

+ 2 - 2
hx-service/storage/src/main/java/com/fjhx/task/controller/ScheduleTaskController.java

@@ -55,8 +55,8 @@ public class ScheduleTaskController {
     /**
      * 统计排班数据
      */
-    @Scheduled(cron = "0 0 10,22 * * ?")
-//    @Scheduled(cron = "0 36 * * * ?")
+    @Scheduled(cron = "30 0/5 * * * ?")
+//    @Scheduled(cron = "0 43 * * * ?")
     private void statisticsScheduleDateTask() {
         if (BladeApplication.isLocalDev()) {
             return;