对比新文件 |
| | |
| | | package com.gk.firework.Scheduls.WarningTask; |
| | | |
| | | |
| | | import com.gk.firework.Domain.StockInfo; |
| | | import com.gk.firework.Domain.WarnContentInfo; |
| | | import com.gk.firework.Domain.WarningInfo; |
| | | import com.gk.firework.Service.SaleOrderService; |
| | | import com.gk.firework.Service.StockService; |
| | | import com.gk.firework.Service.WarnContentService; |
| | | import com.gk.firework.Service.WarningService; |
| | | import org.apache.log4j.LogManager; |
| | | import org.apache.log4j.Logger; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
| | | import org.springframework.context.annotation.Configuration; |
| | | import org.springframework.scheduling.annotation.EnableScheduling; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.ArrayList; |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | @Configuration |
| | | @EnableScheduling |
| | | @ConditionalOnProperty(prefix = "scheduling",name = "enabled",havingValue = "true") |
| | | public class StockWarnTask { |
| | | private Logger logger = LogManager.getLogger(StockWarnTask.class); |
| | | private static final String warnType = "库存超量"; |
| | | |
| | | @Autowired |
| | | WarningService warningService; |
| | | @Autowired |
| | | SaleOrderService saleOrderService; |
| | | @Autowired |
| | | WarnContentService warnContentService; |
| | | @Autowired |
| | | StockService stockService; |
| | | |
| | | // @Scheduled(cron = "0/20 * * * * ?") //每隔5秒执行一次 |
| | | @Scheduled(cron = "0 0 2 * * ?") //每天凌晨两点执行一次 |
| | | private void purchaseWarn() throws Exception{ |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | try { |
| | | List<WarningInfo> warningInfos = warningService.selectByType(warnType); |
| | | if (warningInfos.size() > 0){ |
| | | for (WarningInfo warningInfo : warningInfos){ |
| | | insertWarnContent(warningInfo); |
| | | } |
| | | } |
| | | }catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | private void insertWarnContent(WarningInfo warningInfo) { |
| | | Integer min = warningInfo.getMinimum(); |
| | | Integer max = warningInfo.getMaximum(); |
| | | List<Integer> slices = new ArrayList<>(); |
| | | for (int i = 1; i < 21; i++){ |
| | | slices.add(i); |
| | | } |
| | | //超过预警值 |
| | | List<StockInfo> earlyWarnList = stockService.selectEarlyWarn(min,max,warningInfo.getEnterprisetype(),slices); |
| | | if (earlyWarnList.size() > 0){ |
| | | List<WarnContentInfo> warnContentInfos = new ArrayList<>(); |
| | | for (StockInfo stockInfo : earlyWarnList) { |
| | | String warncontent = "超出库存限制,当前库存总数为"+stockInfo.getNum(); |
| | | WarnContentInfo warnContentExist = warnContentService.selectByEnterpriseWarn(warnType,"预警",Long.parseLong(stockInfo.getOwner()),warncontent); |
| | | if (warnContentExist == null) { |
| | | WarnContentInfo warnContentInfo = new WarnContentInfo(); |
| | | warnContentInfo.setWarntype(warnType); |
| | | warnContentInfo.setWarnlevel("预警"); |
| | | warnContentInfo.setEnterpriseid(Long.parseLong(stockInfo.getOwner())); |
| | | warnContentInfo.setWarncontent(warncontent); |
| | | warnContentInfo.setIsmend((byte) 0); |
| | | warnContentInfo.setIsneed((byte) 0); |
| | | warnContentInfo.setIssend((byte) 0); |
| | | warnContentInfo.setModifiedby("系统生成"); |
| | | warnContentInfo.setModifieddate(new Date()); |
| | | warnContentInfo.setCreateddate(new Date()); |
| | | |
| | | if (warnContentInfos.size() > 0){ |
| | | boolean isfound = false; |
| | | for (WarnContentInfo warnContent : warnContentInfos){ |
| | | if (warnContent.getEnterpriseid().equals(warnContentInfo.getEnterpriseid()) |
| | | && warnContent.getWarncontent().equals(warnContentInfo.getWarncontent())){ |
| | | isfound = true; |
| | | break; |
| | | } |
| | | } |
| | | if (!isfound){ |
| | | warnContentInfos.add(warnContentInfo); |
| | | } |
| | | }else { |
| | | warnContentInfos.add(warnContentInfo); |
| | | } |
| | | } |
| | | } |
| | | warnContentService.saveBatch(warnContentInfos); |
| | | } |
| | | //超过报警值 |
| | | List<StockInfo> alarmList = stockService.selectAlarm(max,warningInfo.getEnterprisetype(),slices); |
| | | if (alarmList.size() > 0){ |
| | | List<WarnContentInfo> warnContentInfos = new ArrayList<>(); |
| | | Byte issms = warningInfo.getIssms(); |
| | | for (StockInfo stockInfo : alarmList) { |
| | | String warncontent = "超出库存限制,当前库存总数为"+stockInfo.getNum(); |
| | | WarnContentInfo warnContentExist = warnContentService.selectByEnterpriseWarn(warnType,"报警",Long.parseLong(stockInfo.getOwner()),warncontent); |
| | | if (warnContentExist == null) { |
| | | WarnContentInfo warnContentInfo = new WarnContentInfo(); |
| | | warnContentInfo.setWarntype(warnType); |
| | | warnContentInfo.setWarnlevel("报警"); |
| | | warnContentInfo.setEnterpriseid(Long.parseLong(stockInfo.getOwner())); |
| | | warnContentInfo.setWarncontent(warncontent); |
| | | warnContentInfo.setIsmend((byte) 0); |
| | | warnContentInfo.setIsneed(issms); |
| | | warnContentInfo.setIssend((byte) 0); |
| | | warnContentInfo.setModifiedby("系统生成"); |
| | | warnContentInfo.setModifieddate(new Date()); |
| | | warnContentInfo.setCreateddate(new Date()); |
| | | |
| | | if (warnContentInfos.size() > 0){ |
| | | boolean isfound = false; |
| | | for (WarnContentInfo warnContent : warnContentInfos){ |
| | | if (warnContent.getEnterpriseid().equals(warnContentInfo.getEnterpriseid()) |
| | | && warnContent.getWarncontent().equals(warnContentInfo.getWarncontent())){ |
| | | isfound = true; |
| | | break; |
| | | } |
| | | } |
| | | if (!isfound){ |
| | | warnContentInfos.add(warnContentInfo); |
| | | } |
| | | }else { |
| | | warnContentInfos.add(warnContentInfo); |
| | | } |
| | | } |
| | | } |
| | | warnContentService.saveBatch(warnContentInfos); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | } |