1.修复循环依赖问题

2.增加支持线表导入记录版本号功能,支持选择版本号查看指定线表导入记录
master
董哲奇 7 months ago
parent e0786c6043
commit 9b1a1a6efc

@ -1,5 +1,6 @@
package com.dsic.gj_erp;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import java.io.IOException;
@ -7,7 +8,9 @@ import java.io.IOException;
public class Test {
public static void main(String[] args) throws IOException {
System.out.println(StrUtil.padPre("1",3,"0"));
System.out.println(DateUtil.thisYear());
// System.out.println(StrUtil.padPre("1",3,"0"));
//String aaa="gagagag";
//System.out.println(aaa.split("@")[0]);

@ -51,6 +51,6 @@ public class DmXbjh implements Serializable {
@ApiModelProperty(value = "船号")
private String dcCh;
private int version;
}

@ -80,15 +80,15 @@ public class DmSygdController {
@PostMapping("/tj")
@AuthFunction
@ResponseBody
public ResultBean tj(@RequestBody List<DmSygd> list){
service.tj(list);
public ResultBean tj(String from,String to){
mxService.tj(from,to);
return new ResultBean();
}
@ApiOperation(value = "批量审核")
@PostMapping(value = "/sh")
public ResultBean sh(@RequestBody List<DmSygd> dmSygds) {
service.sh(dmSygds);
public ResultBean sh(String from,String to) {
mxService.sh(from,to);
return new ResultBean();
}

@ -31,7 +31,8 @@ public interface DmSygdMxService extends IService<DmSygdMx> {
List<DmYdjhxf> tqSygd1(String begin, String end);
Object cgjhdhqk(Map<String,Object> map);
void tj(String from,String to);
void sh(String from,String to);
void ydjhImport(List<JhxfExcel> objList);
}

@ -21,8 +21,8 @@ public interface DmSygdService extends IService<DmSygd> {
Map uploadSy(List<SyExcel> list, HttpServletRequest req);
Boolean tj(List<DmSygd> dmSygds);
void tj1(String from,String to);
Boolean sh(List<DmSygd> dmSygds);
void sh1(String from,String to);
}

@ -26,10 +26,7 @@ import com.dsic.gj_erp.handler.dto.RealCapacity;
import com.dsic.gj_erp.mapper.jhgk.DmSygdMxMapper;
import com.dsic.gj_erp.service.jcsj.DmBomService;
import com.dsic.gj_erp.service.jcsj.EmSbcnpService;
import com.dsic.gj_erp.service.jhgk.DmSygdMxService;
import com.dsic.gj_erp.service.jhgk.DmSygdService;
import com.dsic.gj_erp.service.jhgk.DmTzjhService;
import com.dsic.gj_erp.service.jhgk.DmXbjhService;
import com.dsic.gj_erp.service.jhgk.*;
import com.dsic.gj_erp.util.MyString;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -68,6 +65,68 @@ public class DmSygdMxServiceImpl extends ServiceImpl<DmSygdMxMapper, DmSygdMx> i
Dm_zhbmpRepository dm_zhbmpRepository;
@Autowired
DmBomService bomService;
@Autowired
DmYdjhService ydjhService;
@Override
@Transactional(rollbackFor = Exception.class)
public void tj(String from,String to){
List<DmSygdMx> sygdMxes = this.list(Wrappers.<DmSygdMx>lambdaQuery().between(DmSygdMx::getJssj, from, to));
List<DmSygdMx> collect = sygdMxes.stream().map(dmSygd -> {
DmSygdMx dmSygdMx = new DmSygdMx();
dmSygdMx.setId(dmSygd.getId());
dmSygdMx.setZt("1");
return dmSygdMx;
}).collect(Collectors.toList());
this.updateBatchById(collect);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void sh(String from,String to){
List<DmSygdMx> sygdMxes = this.list(Wrappers.<DmSygdMx>lambdaQuery().between(DmSygdMx::getJssj, from, to));
List<DmSygdMx> collect = sygdMxes.stream().map(dmSygd -> {
DmSygdMx dmSygdMx = new DmSygdMx();
dmSygdMx.setId(dmSygd.getId());
dmSygdMx.setZt("2");
return dmSygdMx;
}).collect(Collectors.toList());
this.updateBatchById(collect);
//生成作业计划
new Thread(()->{
this.generateYdjh(sygdMxes);
}).start();
}
@Transactional(rollbackFor = Exception.class)
public void generateYdjh(List<DmSygdMx> sygdMxes) {
List<DmYdjh> ydjhList = sygdMxes.stream().map(item -> {
DmYdjh dmYdjh = new DmYdjh();
BeanUtil.copyProperties(item, dmYdjh);
return dmYdjh;
}).collect(Collectors.toList());
ydjhList.forEach(l->{
if (StrUtil.isAllNotEmpty(l.getXzglxq(),l.getJssj())){
//状态 2拖期 1提前 3追加
if (l.getXzglxq().compareTo(l.getJssj())<0){
if (!DateUtil.isSameMonth(DateUtil.parseDate(l.getXzglxq()),DateUtil.parseDate(l.getJssj()))){
l.setJhlx("3");
}else {
l.setJhlx("1");
}
}
if (l.getXzglxq().compareTo(l.getJssj())>0){
l.setJhlx("2");
}
l.setJssjOld(StrUtil.isEmpty(l.getJssj())?"":l.getJssj());
l.setJssj(l.getXzglxq());
}
if (StrUtil.isEmpty(l.getTzbh())){
l.setJhlx("3");
}
});
ydjhService.saveBatch(ydjhList);
}
public Map<String,List<EmGcrlDto>> getMxMap(String begin,String end){

@ -35,9 +35,6 @@ import java.util.stream.Collectors;
@AllArgsConstructor
public class DmSygdServiceImpl extends ServiceImpl<DmSygdMapper, DmSygd> implements DmSygdService {
private final DmYdjhService ydjhService;
private final DmSygdMxService sygdMxService;
@Override
@Transactional(rollbackFor = Exception.class)
public Map uploadSy(List<SyExcel> list, HttpServletRequest req){
@ -70,19 +67,6 @@ public class DmSygdServiceImpl extends ServiceImpl<DmSygdMapper, DmSygd> impleme
return this.updateBatchById(dmSygds);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void tj1(String from,String to){
List<DmSygdMx> sygdMxes = this.sygdMxService.list(Wrappers.<DmSygdMx>lambdaQuery().between(DmSygdMx::getJssj, from, to));
List<DmSygdMx> collect = sygdMxes.stream().map(dmSygd -> {
DmSygdMx dmSygdMx = new DmSygdMx();
dmSygdMx.setId(dmSygd.getId());
dmSygdMx.setZt("1");
return dmSygdMx;
}).collect(Collectors.toList());
this.sygdMxService.updateBatchById(collect);
}
@Override
@Transactional(rollbackFor = Exception.class)
@ -94,50 +78,4 @@ public class DmSygdServiceImpl extends ServiceImpl<DmSygdMapper, DmSygd> impleme
return this.updateBatchById(dmSygds);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void sh1(String from,String to){
List<DmSygdMx> sygdMxes = this.sygdMxService.list(Wrappers.<DmSygdMx>lambdaQuery().between(DmSygdMx::getJssj, from, to));
List<DmSygdMx> collect = sygdMxes.stream().map(dmSygd -> {
DmSygdMx dmSygdMx = new DmSygdMx();
dmSygdMx.setId(dmSygd.getId());
dmSygdMx.setZt("2");
return dmSygdMx;
}).collect(Collectors.toList());
this.sygdMxService.updateBatchById(collect);
//生成作业计划
new Thread(()->{
this.generateYdjh(sygdMxes);
}).start();
}
@Transactional(rollbackFor = Exception.class)
public void generateYdjh(List<DmSygdMx> sygdMxes) {
List<DmYdjh> ydjhList = sygdMxes.stream().map(item -> {
DmYdjh dmYdjh = new DmYdjh();
BeanUtil.copyProperties(item, dmYdjh);
return dmYdjh;
}).collect(Collectors.toList());
ydjhList.forEach(l->{
if (StrUtil.isAllNotEmpty(l.getXzglxq(),l.getJssj())){
//状态 2拖期 1提前 3追加
if (l.getXzglxq().compareTo(l.getJssj())<0){
if (!DateUtil.isSameMonth(DateUtil.parseDate(l.getXzglxq()),DateUtil.parseDate(l.getJssj()))){
l.setJhlx("3");
}else {
l.setJhlx("1");
}
}
if (l.getXzglxq().compareTo(l.getJssj())>0){
l.setJhlx("2");
}
l.setJssjOld(StrUtil.isEmpty(l.getJssj())?"":l.getJssj());
l.setJssj(l.getXzglxq());
}
if (StrUtil.isEmpty(l.getTzbh())){
l.setJhlx("3");
}
});
ydjhService.saveBatch(ydjhList);
}
}

@ -1,10 +1,15 @@
package com.dsic.gj_erp.service.jhgk.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsic.gj_erp.bean.jhgk.DmXbjh;
import com.dsic.gj_erp.mapper.jhgk.DmXbjhMapper;
@ -17,6 +22,8 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.LinkedHashMap;
@ -26,7 +33,7 @@ import java.util.stream.Collectors;
/**
* <p>
*
*
* </p>
*
* @author xn
@ -40,69 +47,72 @@ public class DmXbjhServiceImpl extends ServiceImpl<DmXbjhMapper, DmXbjh> impleme
ModelMapper modelMapper;
@Override
public Map<String,List<DmXbjh>> getList(JSONObject json) {
QueryWrapper<DmXbjh> queryWrapper=new QueryWrapper<>();
if(StringUtils.isNotEmpty(json.getString("dcCh"))){
queryWrapper.eq("dc_ch",json.getString("dcCh"));
public Map<String, List<DmXbjh>> getList(JSONObject json) {
QueryWrapper<DmXbjh> queryWrapper = new QueryWrapper<>();
if (StringUtils.isNotEmpty(json.getString("dcCh"))) {
queryWrapper.eq("dc_ch", json.getString("dcCh"));
}
if(StringUtils.isNotEmpty(json.getString("Zt"))){
queryWrapper.eq("zt",json.getString("Zt"));
if (StringUtils.isNotEmpty(json.getString("Zt"))) {
queryWrapper.eq("zt", json.getString("Zt"));
}
if(StringUtils.isNotEmpty(json.getString("nf"))){
String nf=json.getString("nf");
String startTime=nf.split("~")[0];
String endTime=nf.split("~")[1];
queryWrapper.between("nf",startTime,endTime);
if (StringUtils.isNotEmpty(json.getString("nf"))) {
String nf = json.getString("nf");
String startTime = nf.split("~")[0];
String endTime = nf.split("~")[1];
queryWrapper.between("nf", startTime, endTime);
}
queryWrapper.orderByDesc("zl");
List<DmXbjh> dmTzjhs=dmXbjhMapper.selectList(queryWrapper);
Map<String,List<DmXbjh>> map=dmTzjhs.stream()
List<DmXbjh> dmTzjhs = dmXbjhMapper.selectList(queryWrapper);
Map<String, List<DmXbjh>> map = dmTzjhs.stream()
.collect(Collectors.groupingBy(DmXbjh::getDcCh));
//对map的value进行排序并返回降序以后的map集合
LinkedHashMap<String, List<DmXbjh>> collect = map.entrySet().stream().sorted((entry1, entry2) -> {
Double zl1=entry1.getValue().stream().filter(l->ObjectUtil.isNotEmpty(l.getZl())).mapToDouble(DmXbjh::getZl).sum();
Double zl2=entry2.getValue().stream().filter(l->ObjectUtil.isNotEmpty(l.getZl())).mapToDouble(DmXbjh::getZl).sum();
//降序排序
return zl2.compareTo(zl1);
}).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,(oldValue, newValue) -> oldValue, LinkedHashMap::new));
//对map的value进行排序并返回降序以后的map集合
LinkedHashMap<String, List<DmXbjh>> collect = map.entrySet().stream().sorted((entry1, entry2) -> {
Double zl1 = entry1.getValue().stream().filter(l -> ObjectUtil.isNotEmpty(l.getZl())).mapToDouble(DmXbjh::getZl).sum();
Double zl2 = entry2.getValue().stream().filter(l -> ObjectUtil.isNotEmpty(l.getZl())).mapToDouble(DmXbjh::getZl).sum();
//降序排序
return zl2.compareTo(zl1);
}).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, LinkedHashMap::new));
return collect;
}
@Override
@Transactional
public JSONObject upload(MultipartFile file) throws IOException {
// ExcelReader reader = ExcelUtil.getReader(file.getInputStream());
//List<DmXbjh> dmXbjhs= ExcelUtil.readDmXbjh(file);
JSONObject dmXbjhs= ExcelUtil.readDmXbjh(file);
JSONObject dmXbjhs = ExcelUtil.readDmXbjh(file);
if (dmXbjhs != null) {
List<DmXbjh> listByNf = list(Wrappers.<DmXbjh>lambdaQuery().eq(DmXbjh::getNf, dmXbjhs.getString("nf")));
this.save(dmXbjhs);
// List<DmXbjh> list=new ArrayList<>();
// mapList.forEach(stringObjectMap -> {
// DmXbjh dmXbjh = modelMapper.map(stringObjectMap, DmXbjh.class);
// dmXbjh.setZt("0");
// list.add(dmXbjh);
// });
this.save(dmXbjhs);
String type = FileUtil.extName(file.getOriginalFilename());
File uploadFile = new File("./线表计划");
if (!uploadFile.exists()) {
uploadFile.mkdirs();
}
int version = !listByNf.isEmpty() ? listByNf.get(0).getVersion() + 1 : 1;
File uploadFiles = new File(StrUtil.format("./线表计划/{}_{}{}{}", dmXbjhs.getString("nf"), version, StrUtil.DOT, type));
file.transferTo(uploadFiles);
}
return dmXbjhs;
}
@Override
@Transactional
public void save(JSONObject json) {
List<DmXbjh> dmXbjhs=new ArrayList<>();
for (String key:json.keySet()) {
JSONArray jsonArray=json.getJSONArray(key);
for (Object object:jsonArray) {
// JSONObject dmxb=JSONObject.parseObject(object.toString());
DmXbjh dmXbjh= modelMapper.map(object,DmXbjh.class);
List<DmXbjh> dmXbjhs = new ArrayList<>();
for (String key : json.keySet()) {
JSONArray jsonArray = json.getJSONArray(key);
for (Object object : jsonArray) {
// JSONObject dmxb=JSONObject.parseObject(object.toString());
DmXbjh dmXbjh = modelMapper.map(object, DmXbjh.class);
dmXbjh.setDcCh(key);
dmXbjhs.add(dmXbjh);
this.remove(new QueryWrapper<DmXbjh>().eq("dc_ch",dmXbjh.getDcCh())
.eq("nf",dmXbjh.getNf())
.eq("yf",dmXbjh.getYf())
this.remove(new QueryWrapper<DmXbjh>().eq("dc_ch", dmXbjh.getDcCh())
.eq("nf", dmXbjh.getNf())
.eq("yf", dmXbjh.getYf())
);
}
}

Loading…
Cancel
Save