1.增加钢材到货情况统计功能

master
董哲奇 3 weeks ago
parent 777b028df9
commit 42e24a3c01

@ -1,5 +1,6 @@
package com.dsic.gj_erp.bean;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Getter;
@ -14,11 +15,18 @@ public class 钢材到货情况统计 {
@MppMultiId
private String dcCh;
@MppMultiId
private String plZ;
private BigDecimal planTon;//订货重量(吨)
private BigDecimal completeTon;//已到货重量(吨)
@MppMultiId
private String dzwz;
private BigDecimal planTon;//订货重量(吨)
@TableField(exist = false)
private String planDate;//计划到货日期
private BigDecimal completeTon;//已到货重量(吨)
}

@ -0,0 +1,49 @@
package com.dsic.gj_erp.controller;
import cn.hutool.cron.CronUtil;
import cn.hutool.cron.task.Task;
import com.dsic.gj_erp.service.Service;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
@Service
@RequiredArgsConstructor
public class ScheduledService {
private final Service Service;
private boolean scheduleStartFlag=false;
@PostConstruct
public void execute(){
synchronized (this){
if (this.scheduleStartFlag){
return;
}
this.scheduleStartFlag=true;
}
Service.init();
this.start();
System.out.println("定时任务启动成功");
}
private void start(){
// 支持秒级别定时任务
CronUtil.setMatchSecond(true);
if (CronUtil.getScheduler().isStarted()){
CronUtil.stop();
CronUtil.start();
}
if (!CronUtil.getScheduler().isStarted()){
CronUtil.start();
}
}
}

@ -1,6 +1,9 @@
package com.dsic.gj_erp.controller;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.dsic.gj_erp.bean.ResultBean;
import com.dsic.gj_erp.bean.;
import com.dsic.gj_erp.service.Service;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
@ -15,7 +18,12 @@ public class 钢材到货情况统计Controller {
private final Service service;
@GetMapping("list")
public ResultBean<?> list(){
return new ResultBean<>(service.list());
@SuppressWarnings("unchecked")
public ResultBean<?> list(String dcCh){
return new ResultBean<>(service.list(Wrappers.<>lambdaQuery()
.eq(StrUtil.isNotEmpty(dcCh),::getDcCh,dcCh)
.orderByAsc(::getDcCh,::getPlZ,::getDzwz)
)
);
}
}

@ -1,5 +1,6 @@
package com.dsic.gj_erp.service;
import cn.hutool.core.util.StrUtil;
import cn.hutool.cron.CronUtil;
import cn.hutool.cron.task.Task;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -7,6 +8,7 @@ import com.dsic.gj_erp.bean.钢材到货情况统计;
import com.dsic.gj_erp.mapper.Mapper;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.PostConstruct;
import java.util.ArrayList;
@ -15,26 +17,29 @@ import java.util.List;
@Service
public class Service extends MppServiceImpl<Mapper, > {
@PostConstruct
public void start(){
CronUtil.schedule("* * 16 * * ?", (Task) this::process);
CronUtil.start();
public void init(){
//CronUtil.schedule("0 0 16 * * ?", (Task) this::process);
CronUtil.schedule("*/30 * * * * ?", (Task) this::process);
System.out.println("初始化定时任务");
}
@Transactional(rollbackFor = Exception.class)
public void process(){
List<> = baseMapper.();
List<> insertOrUpdateList=new ArrayList<>();
.forEach(item->{
.stream().filter(item-> StrUtil.isAllNotEmpty(item.getDcCh(),item.getPlZ(),item.getDzwz())).forEach(item->{
_ = this.selectByMultiId(item);
if (_!=null){
if (item.getCompleteTon().compareTo(_.getCompleteTon())>0){
_.setCompleteTon(item.getCompleteTon());
_.setPlanTon(item.getPlanTon());
insertOrUpdateList.add(_);
}
}else{
insertOrUpdateList.add(item);
}
});
this.saveOrUpdateBatchByMultiId(insertOrUpdateList);
}
}

@ -106,6 +106,12 @@ public class WebSocketService extends TextWebSocketHandler {
// 支持秒级别定时任务
CronUtil.setMatchSecond(true);
if (CronUtil.getScheduler().isStarted()){
CronUtil.stop();
CronUtil.start();
}
if (!CronUtil.getScheduler().isStarted()){
CronUtil.start();
}

@ -9,5 +9,5 @@ ws:
maxHttpContentLength: 1048576
maxFramePayloadLength: 1048576
client:
url: ws://192.127.2.129:9000
url: ws://192.127.17.10:9000
id: 100000000002
Loading…
Cancel
Save