| | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.time.DateFormatUtils; |
| | | import org.apache.commons.lang3.time.DateUtils; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.text.ParseException; |
| | | import java.time.LocalDate; |
| | | import java.util.*; |
| | | |
| | |
| | | @Resource |
| | | private DepotService depotService; |
| | | |
| | | @Scheduled(cron = "0 0 1 * * ?") |
| | | public void timer() { |
| | | doExe(); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 手动执行库存统计 |
| | | * @param timeStr |
| | | * @throws ParseException |
| | | */ |
| | | public void doExeHand(String timeStr) throws ParseException { |
| | | |
| | | log.info("===============手动统计库存信息==============="); |
| | | //获取所有的库区信息 |
| | | List<Dept> listDept = deptService.listDept(null, ContextUtil.getCompanyId(), null); |
| | | if (null == listDept || listDept.isEmpty()) { |
| | | log.info("-----未获取到库区,不执行库存定时统计-----"); |
| | | return; |
| | | } |
| | | |
| | | Date startTime = DateUtils.parseDate(timeStr, "yyyy-MM-dd"); |
| | | |
| | | Date endTime = new Date(); |
| | | for (Dept dept : listDept) { |
| | | |
| | | //多天循环统计 |
| | | sumMoreDepotStore(startTime, endTime, dept); |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | if (null == lastData) { |
| | | lastData = new DepotStore(); |
| | | |
| | | //主键ID规则:yyyyMMddHHmm_仓库编码 |
| | | lastData.setId(DateFormatUtils.format(time, "yyyyMMddHHmm") + "_" + s); |
| | | lastData.setCompanyId(dept.getCompanyId()); |
| | | lastData.setDeptId(dept.getId()); |
| | | lastData.setDepotId(s); |
| | | lastData.setStorageReal(0.0); |
| | | lastData.setUpdateTime(time); |
| | | lastData.setUpdateBy("系统定时统计"); |
| | | |
| | | if (inTag) { |
| | | //设置入库时间 |
| | | lastData.setStoreDate(time); |
| | |
| | | //设置出库时间 |
| | | lastData.setOutDate(time); |
| | | } |
| | | //获取仓库信息 |
| | | depot = depotService.getCacheDepot(dept.getCompanyId(), s); |
| | | if (null != depot) { |
| | | lastData.setDepotStatus(depot.getDepotStatus()); |
| | | lastData.setFoodVariety(depot.getFoodVariety()); |
| | | lastData.setFoodLevel(depot.getFoodLevel()); |
| | | lastData.setFoodLocation(depot.getFoodLocation()); |
| | | lastData.setFoodLocationId(depot.getFoodLocationId()); |
| | | lastData.setFoodType(depot.getFoodType()); |
| | | lastData.setFoodYear(depot.getFoodYear()); |
| | | } |
| | | } |
| | | |
| | | //主键ID规则:yyyyMMddHHmm_仓库编码 |
| | | lastData.setId(DateFormatUtils.format(time, "yyyyMMddHHmm") + "_" + s); |
| | | |
| | | lastData.setCompanyId(dept.getCompanyId()); |
| | | lastData.setDeptId(dept.getId()); |
| | | lastData.setDepotId(s); |
| | | |
| | | lastData.setUpdateTime(time); |
| | | lastData.setUpdateBy("系统定时统计"); |
| | | |
| | | //获取仓库信息 |
| | | depot = depotService.getCacheDepot(dept.getCompanyId(), s); |
| | | if (null != depot) { |
| | | lastData.setDepotStatus(depot.getDepotStatus()); |
| | | lastData.setFoodVariety(depot.getFoodVariety()); |
| | | lastData.setFoodLevel(depot.getFoodLevel()); |
| | | lastData.setFoodLocation(depot.getFoodLocation()); |
| | | lastData.setFoodLocationId(depot.getFoodLocationId()); |
| | | lastData.setFoodType(depot.getFoodType()); |
| | | lastData.setFoodYear(depot.getFoodYear()); |
| | | } |
| | | |
| | | lastData.setStorageReal(lastData.getStorageReal() + sum); |