Browse Source

[feat]

库存管理 入库单
新增获取首页生产订单周产量分析controller接口;
新增根据时间区间划分自然周时间段,并获取各时间段生产订单入库周产量service方法;
新增根据时间区间段查询入库单mapper方法;
dev
王晓迪 2 days ago
parent
commit
bf6502d616
  1. 15
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseStorageOrderController.java
  2. 8
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/mapper/WarehouseStorageOrderMapper.java
  3. 4
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/IWarehouseStorageOrderService.java
  4. 61
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java
  5. 11
      ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseStorageOrderMapper.xml

15
ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseStorageOrderController.java

@ -1,5 +1,7 @@
package com.ruoyi.warehouse.controller; package com.ruoyi.warehouse.controller;
import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -12,6 +14,7 @@ import com.ruoyi.warehouse.domain.WarehouseStorageOrderDetail;
import com.ruoyi.warehouse.service.IWarehouseStorageOrderDetailService; import com.ruoyi.warehouse.service.IWarehouseStorageOrderDetailService;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
@ -733,4 +736,16 @@ public class WarehouseStorageOrderController extends BaseController
mmap.put("warehouseStorageOrder", warehouseStorageOrder); mmap.put("warehouseStorageOrder", warehouseStorageOrder);
return prefix + "/storageReturnOrderDetail"; return prefix + "/storageReturnOrderDetail";
} }
/**
* 获取首页生产订单周产量分析
*/
@GetMapping("/getIndexList")
@ResponseBody
public List<Integer> getIndexList(@RequestParam("beginDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginDate,
@RequestParam("endDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate)
{
List<Integer> list = warehouseStorageOrderService.getMakeOrderStorageByWeeks(beginDate,endDate);
return list;
}
} }

8
ruoyi-admin/src/main/java/com/ruoyi/warehouse/mapper/WarehouseStorageOrderMapper.java

@ -1,8 +1,12 @@
package com.ruoyi.warehouse.mapper; package com.ruoyi.warehouse.mapper;
import java.util.Date;
import java.util.List; import java.util.List;
import com.ruoyi.system.domain.SysMakeorderBom;
import com.ruoyi.warehouse.domain.WarehouseStorageOrder; import com.ruoyi.warehouse.domain.WarehouseStorageOrder;
import com.ruoyi.warehouse.domain.WarehouseStorageOrderDetail; import com.ruoyi.warehouse.domain.WarehouseStorageOrderDetail;
import org.apache.ibatis.annotations.Param;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
/** /**
@ -153,4 +157,8 @@ public interface WarehouseStorageOrderMapper
* 根据入库单号查询关联单号 * 根据入库单号查询关联单号
*/ */
String selectRelateCodeByCode(String warehouseStorageCode); String selectRelateCodeByCode(String warehouseStorageCode);
/*首页根据日期区间查找生产订单入库记录*/
List<WarehouseStorageOrder> selectByDateRange(@Param("beginDate") Date beginDate,
@Param("endDate") Date endDate);
} }

4
ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/IWarehouseStorageOrderService.java

@ -1,5 +1,6 @@
package com.ruoyi.warehouse.service; package com.ruoyi.warehouse.service;
import java.util.Date;
import java.util.List; import java.util.List;
import com.ruoyi.quality.domain.QualityOrder; import com.ruoyi.quality.domain.QualityOrder;
@ -153,4 +154,7 @@ public interface IWarehouseStorageOrderService
* 导出仓库入库单明细 * 导出仓库入库单明细
* */ * */
List<ExportWarehouseStorageOrderVo> exportStorageOrderList(List<WarehouseStorageOrder> list); List<ExportWarehouseStorageOrderVo> exportStorageOrderList(List<WarehouseStorageOrder> list);
/*获取首页生产订单周产量(周入库量)信息*/
List<Integer> getMakeOrderStorageByWeeks(Date beginDate, Date endDate);
} }

61
ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java

@ -2,6 +2,9 @@ package com.ruoyi.warehouse.service.impl;
import java.util.*; import java.util.*;
import java.util.function.Function; import java.util.function.Function;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.ruoyi.aftersales.mapper.AfterSalesShippingDeviceMapper; import com.ruoyi.aftersales.mapper.AfterSalesShippingDeviceMapper;
@ -1354,6 +1357,10 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
} }
} }
//更新入库单的数据 //更新入库单的数据
warehouseStorageOrder.setStorageTime(DateUtils.getNowDate());
warehouseStorageOrder.setUpdateBy(loginName);
warehouseStorageOrder.setWarehouseEmployee(loginName);
warehouseStorageOrder.setUpdateTime(DateUtils.getNowDate());
int updateResult = warehouseStorageOrderMapper.updateWarehouseStorageOrder(warehouseStorageOrder); int updateResult = warehouseStorageOrderMapper.updateWarehouseStorageOrder(warehouseStorageOrder);
if (updateResult <= 0){ if (updateResult <= 0){
throw new BusinessException("更新入库单数据失败,未影响任何行"); throw new BusinessException("更新入库单数据失败,未影响任何行");
@ -2291,4 +2298,58 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
return exportWarehouseStorageOrderVos; return exportWarehouseStorageOrderVos;
} }
/*根据时间区间划分自然周时间段,并获取各时间段生产订单入库周产量*/
@Override
public List<Integer> getMakeOrderStorageByWeeks(Date beginDate, Date endDate){
List<Integer> list = new ArrayList<>();
Calendar calendar = Calendar.getInstance();
calendar.setTime(beginDate);
Date nowDate = new Date();
// 调整到该周的周一
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
int daysToMonday = dayOfWeek - Calendar.MONDAY;
if (daysToMonday < 0) {
daysToMonday += 7; // 如果已经是周一,则不需要调整
}
calendar.add(Calendar.DAY_OF_YEAR, -daysToMonday);
while (!calendar.getTime().after(endDate)) {
Date startTime = calendar.getTime();
// 设置结束时间为下周的第一天的前一天(即本周的周日)
Calendar endCalendar = (Calendar) calendar.clone();
endCalendar.add(Calendar.DAY_OF_YEAR, 6); // 加上6天得到本周的周日
if (endCalendar.getTime().after(nowDate)) {
endCalendar.setTime(nowDate);
}
Date endTime = endCalendar.getTime();
// System.out.println("Start: " + formatDate(startTime) + ", End: " + formatDate(endTime));
List<WarehouseStorageOrder> storageOrders = warehouseStorageOrderMapper.selectByDateRange(startTime,endTime);
if(StringUtils.isEmpty(storageOrders)){
list.add(0);
}else{
int storageSum = storageOrders.stream()
.filter(Objects::nonNull) // 过滤掉 null 的 WarehouseStorageOrder 对象
.mapToInt(order -> Optional.ofNullable(order.getStorageNum()).orElse(0)) // 如果 storageNum 为 null,则使用 0
.sum();
list.add(storageSum);
}
System.out.println(list);
// 将日历设置为下一周的开始
calendar.add(Calendar.DAY_OF_YEAR, 7);
}
return list;
}
/*转换日期格式*/
private static String formatDate(Date date) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(date);
}
} }

11
ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseStorageOrderMapper.xml

@ -342,4 +342,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach> </foreach>
</select> </select>
<select id="selectByDateRange" parameterType="map" resultMap="WarehouseStorageOrderResult">
<include refid="selectWarehouseStorageOrderVo"/>
<where>
<if test="beginDate != null and endDate != null">
and storage_time between #{beginDate} and #{endDate}
</if>
<!-- 固定条件:订单类型为生产订单 -->
and warehouse_order_type = '1'
</where>
</select>
</mapper> </mapper>
Loading…
Cancel
Save