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

master
董哲奇 4 months 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