1.作业计划执行看板修改为上料核对后可见

2.作业计划执行看板修复各工序语音派工和报工bug
3.月度计划合并分段显示
master
董哲奇 7 months ago
parent eeb5c0bdab
commit e8708ef670

@ -162,6 +162,21 @@ public class ZyjhController {
} }
} }
/**
*
*
*/
@PostMapping("pgd2")
public ResultBean<?> pgd2(@RequestBody PgdSearch search) throws NoSuchFieldException {
List<DmYdjh> list = zyjhService.list(Wrappers.<DmYdjh>query()
//执行查询
.isNull(search.getField()).ge("zt",11)
// .eq("",search.getUser()).lt("zt",62)
);
return new ResultBean<>(list);
}
/** /**
* *
*/ */
@ -217,21 +232,6 @@ public class ZyjhController {
return new ResultBean<>(list); return new ResultBean<>(list);
} }
// @PostMapping("sljhWeb")
// public ResultBean<?> sljhWeb(@RequestBody SljhSearch search){
// String date = DateUtil.date().toString("yyyy/MM/dd");
// if (StrUtil.isAllNotEmpty(search.getSljhrq())){
// date=search.getSljhrq();
// }
// List<DmYdjh> list = zyjhService.list(Wrappers.<DmYdjh>lambdaQuery()
// .le(DmYdjh::getSljhrq, date)
// .eq(StrUtil.isNotEmpty(search.getDcch()),DmYdjh::getZt, search.getZt())
// .eq(StrUtil.isNotEmpty(search.getDcch()),DmYdjh::getDcCh, search.getDcch())
// .eq(StrUtil.isNotEmpty(search.getPl()),DmYdjh::getDcPl, search.getPl())
// .eq(StrUtil.isNotEmpty(search.getKw()),DmYdjh::getKw, search.getKw())
// );
// return new ResultBean<>(list);
// }
/** /**
* *
@ -294,4 +294,13 @@ public class ZyjhController {
return new ResultBean<>(); return new ResultBean<>();
} }
@PostMapping("test")
public ResultBean<?> test(@RequestBody Message msg){
wsHandler.tip(msg.toJson());
if (msg.getCode()==3000){
wsHandler.zyjhzx(msg.toJson());
}
return new ResultBean<>();
}
} }

@ -2,7 +2,6 @@ package com.dsic.gj_erp.service.jhgk.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
@ -10,37 +9,29 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsic.gj_erp.bean.ResultBean; import com.dsic.gj_erp.bean.ResultBean;
import com.dsic.gj_erp.bean.jcsj.*; import com.dsic.gj_erp.bean.jcsj.*;
import com.dsic.gj_erp.bean.jcsj.excel.PlExcel;
import com.dsic.gj_erp.bean.jhgk.*; import com.dsic.gj_erp.bean.jhgk.*;
import com.dsic.gj_erp.bean.jhgk.dto.*; import com.dsic.gj_erp.bean.jhgk.dto.*;
import com.dsic.gj_erp.bean.sy.Dm_zhbmp; import com.dsic.gj_erp.bean.sy.Dm_zhbmp;
import com.dsic.gj_erp.dao.sy.Dm_zhbmpRepository; import com.dsic.gj_erp.dao.sy.Dm_zhbmpRepository;
import com.dsic.gj_erp.handler.ComputePlan; import com.dsic.gj_erp.handler.ComputePlan;
import com.dsic.gj_erp.handler.dto.RealCapacity; import com.dsic.gj_erp.handler.dto.RealCapacity;
import com.dsic.gj_erp.mapper.jcsj.DmBomMapper;
import com.dsic.gj_erp.mapper.jcsj.EmGcrlMapper;
import com.dsic.gj_erp.mapper.jhgk.DmSygdMxMapper; import com.dsic.gj_erp.mapper.jhgk.DmSygdMxMapper;
import com.dsic.gj_erp.mapper.jhgk.DmZrcjhMapper;
import com.dsic.gj_erp.service.jcsj.DmCzplpNewService;
import com.dsic.gj_erp.service.jcsj.EmSbcnpService; import com.dsic.gj_erp.service.jcsj.EmSbcnpService;
import com.dsic.gj_erp.service.jhgk.*; import com.dsic.gj_erp.service.jhgk.*;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.sql.Date;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -907,44 +898,151 @@ public class DmSygdMxServiceImpl extends ServiceImpl<DmSygdMxMapper, DmSygdMx> i
return new ResultBean(sygdList); return new ResultBean(sygdList);
} }
private List<DmYdjhxf> tqSygd2(String begin,String end){
List<String> slkw=Arrays.asList("7","8","9","5","6","15","11","14");
List<DmSygdMx> list = this.list(Wrappers.<DmSygdMx>lambdaQuery().between(DmSygdMx::getJssj, begin, end));
Map<String, List<DmSygdMx>> collect = list.stream().collect(Collectors.groupingBy(item -> item.getDcCh() +"_"+ item.getDcPl()));
List<DmYdjhxf> list2=new ArrayList<>();
//按批次合并为一行
collect.forEach((key,val)->{
Set<String> plSet=new HashSet<>();
DmYdjhxf dmYdjhxf = new DmYdjhxf();
dmYdjhxf.setDcCh(key.split("_")[0]);
dmYdjhxf.setDcPl(key.split("_")[1]);
AtomicReference<Integer> bs= new AtomicReference<>(0);
AtomicReference<Integer> yklm= new AtomicReference<>(0);
AtomicReference<Integer> yksk= new AtomicReference<>(0);
AtomicReference<Integer> eksk= new AtomicReference<>(0);
AtomicReference<Integer> eksk2= new AtomicReference<>(0);
AtomicReference<Integer> sksk= new AtomicReference<>(0);
AtomicReference<Integer> skpt= new AtomicReference<>(0);
AtomicReference<Integer> skbs= new AtomicReference<>(0);
AtomicReference<Integer> skbs2= new AtomicReference<>(0);
val.forEach(item-> {
plSet.add(item.getDcFd());
if (slkw.contains(item.getKw())){
bs.updateAndGet(v -> v + 1);
}
if ("7".equals(item.getKw())){
yklm.updateAndGet(v -> v + 1);
}
if ("8".equals(item.getKw())){
yksk.updateAndGet(v -> v + 1);
}
if ("9".equals(item.getKw())){
eksk.updateAndGet(v -> v + 1);
}
if ("5".equals(item.getKw())){
eksk2.updateAndGet(v -> v + 1);
}
if ("14".equals(item.getKw())){
sksk.updateAndGet(v -> v + 1);
}
if ("6".equals(item.getKw())){
skpt.updateAndGet(v -> v + 1);
}
if ("15".equals(item.getKw())){
skbs.updateAndGet(v -> v + 1);
}
if ("11".equals(item.getKw())){
skbs2.updateAndGet(v -> v + 1);
}
});
dmYdjhxf.setDcFd(String.join("/", plSet));
dmYdjhxf.setBs(Double.valueOf(bs.get()));
//上料日期
DmSygdMx minSlrq=val.stream().filter(item->StrUtil.isNotEmpty(item.getSlrq()))
.min(Comparator.comparing(DmSygdMx::getSlrq)).get();
dmYdjhxf.setSl(minSlrq.getSlrq());
//型材抛丸日期
val.stream().filter(item -> "16".equals(item.getKw()))
.min(Comparator.comparing(DmSygdMx::getSlrq)).ifPresent(item -> dmYdjhxf.setXcpw(item.getSlrq()));
//抛丸日期
val.stream().filter(item->StrUtil.isNotEmpty(item.getPwrq()))
.min(Comparator.comparing(DmSygdMx::getPwrq)).ifPresent(item -> dmYdjhxf.setPw(item.getPwrq()));
//一跨龙门数量
dmYdjhxf.setYklm(yklm.get()+"");
//一跨数控数量
dmYdjhxf.setYksk(yksk.get()+"");
//二跨数控数量
dmYdjhxf.setEksk(eksk.get()+"");
//二跨数控开始
val.stream().filter(item -> "9".equals(item.getKw()))
.min(Comparator.comparing(DmSygdMx::getQgrq)).ifPresent(item -> dmYdjhxf.setEkskks(item.getQgrq()));
//二跨数控2
dmYdjhxf.setEksk2(eksk2.get()+"");
//二跨数控2开始
val.stream().filter(item -> "5".equals(item.getKw()))
.min(Comparator.comparing(DmSygdMx::getQgrq)).ifPresent(item -> dmYdjhxf.setEkskks(item.getQgrq()));
dmYdjhxf.setSksk(sksk.get()+"");
val.stream().filter(item->"14".equals(item.getKw()))
.min(Comparator.comparing(DmSygdMx::getQgrq)).ifPresent(item -> dmYdjhxf.setSkskqgks(item.getQgrq()));
dmYdjhxf.setSkpt(skpt.get()+"");
val.stream().filter(item->"6".equals(item.getKw()))
.min(Comparator.comparing(DmSygdMx::getQgrq)).ifPresent(item -> dmYdjhxf.setPtks(item.getQgrq()));
dmYdjhxf.setSkbs(skbs.get()+"");
val.stream().filter(item->"15".equals(item.getKw()))
.min(Comparator.comparing(DmSygdMx::getQgrq)).ifPresent(item -> dmYdjhxf.setSkqgks(item.getQgrq()));
dmYdjhxf.setSkbs2(skbs2.get()+"");
val.stream().filter(item->"11".equals(item.getKw()))
.min(Comparator.comparing(DmSygdMx::getQgrq)).ifPresent(item -> dmYdjhxf.setSkbs2(item.getQgrq()));
dmYdjhxf.setFdxq(val.get(0).getJssj());
list2.add(dmYdjhxf);
});
return list2;
}
@Transactional @Transactional
public List<DmYdjhxf> tqSygd1(String begin,String end){ public List<DmYdjhxf> tqSygd1(String begin,String end){
List<DmYdjhxf> list= baseMapper.tqSygd1(begin,end); // List<DmYdjhxf> list= baseMapper.tqSygd1(begin,end);
List<DmYdjhxf> list2=new ArrayList<>(); // List<DmYdjhxf> list2=new ArrayList<>();
//1行分为两行
for (DmYdjhxf l : list) {
DmYdjhxf ydjhxf1=new DmYdjhxf();//第二行
ydjhxf1.setDcCh(l.getDcCh());
ydjhxf1.setDcPl(l.getDcPl());
String[] fds= l.getDcFd().split(" ");
double count= fds.length%2;
int index;
if (count>0){
index= (fds.length/2)+1;
}else {
index= fds.length/2;
}
String fd1= Arrays.toString(Arrays.copyOfRange(fds, 0, index)).replace(","," ");// 截取索引0包括到索引index不包括的元素
String fd2= Arrays.toString(Arrays.copyOfRange(fds, index, fds.length)).replace(","," ");
l.setDcFd(fd1.substring(1,fd1.lastIndexOf("]"))); //1行分为两行
ydjhxf1.setDcFd(fd2.substring(1,fd2.lastIndexOf("]"))); // for (DmYdjhxf l : list) {
ydjhxf1.setEksk(l.getEksk2()); // DmYdjhxf ydjhxf1=new DmYdjhxf();//第二行
ydjhxf1.setEkskks(l.getEkskks2()); // ydjhxf1.setDcCh(l.getDcCh());
if (StrUtil.isNotEmpty(l.getSkbs())){ // ydjhxf1.setDcPl(l.getDcPl());
l.setZl("X");//4跨普通板 // String[] fds= l.getDcFd().split(" ");
} // double count= fds.length%2;
if (StrUtil.isNotEmpty(l.getSkbs2())){ // int index;
ydjhxf1.setZl("Z");//2跨T型材腹板 // if (count>0){
} // index= (fds.length/2)+1;
ydjhxf1.setSkbs(l.getSkbs2()); // }else {
ydjhxf1.setSkqgks(l.getSkqgks2()); // index= fds.length/2;
ydjhxf1.setFdxq(l.getFdxq()); // }
list2.add(l); // String fd1= Arrays.toString(Arrays.copyOfRange(fds, 0, index)).replace(","," ");// 截取索引0包括到索引index不包括的元素
list2.add(ydjhxf1); // String fd2= Arrays.toString(Arrays.copyOfRange(fds, index, fds.length)).replace(","," ");
} //
// l.setDcFd(fd1.substring(1,fd1.lastIndexOf("]")));
// ydjhxf1.setDcFd(fd2.substring(1,fd2.lastIndexOf("]")));
// ydjhxf1.setEksk(l.getEksk2());
// ydjhxf1.setEkskks(l.getEkskks2());
// if (StrUtil.isNotEmpty(l.getSkbs())){
// l.setZl("X");//4跨普通板
// }
// if (StrUtil.isNotEmpty(l.getSkbs2())){
// ydjhxf1.setZl("Z");//2跨T型材腹板
// }
// ydjhxf1.setSkbs(l.getSkbs2());
// ydjhxf1.setSkqgks(l.getSkqgks2());
// ydjhxf1.setFdxq(l.getFdxq());
// list2.add(l);
// list2.add(ydjhxf1);
// }
return list2; return this.tqSygd2(begin,end);
} }
} }

@ -9,5 +9,5 @@ ws:
maxHttpContentLength: 1048576 maxHttpContentLength: 1048576
maxFramePayloadLength: 1048576 maxFramePayloadLength: 1048576
client: client:
url: ws://127.0.0.1:9000 url: ws://192.168.13.9:9000
id: abc id: abc

@ -2,8 +2,29 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dsic.gj_erp.mapper.jhgk.DmQfxqMapper"> <mapper namespace="com.dsic.gj_erp.mapper.jhgk.DmQfxqMapper">
<select id="getYdjh" resultType="com.dsic.gj_erp.bean.jhgk.DmYdjh" parameterType="arraylist"> <select id="getYdjh" resultType="com.dsic.gj_erp.bean.jhgk.DmYdjh" parameterType="arraylist">
select * from(
SELECT
a.DC_CH,a.DC_PL, a.xzglxq, a.dzglxq as gjjs_dz,
b.dc_ch1, b.LQLB, b.tzbh, b.wpgg, b.wpxh, b.hxcd, b.qgcd, b.qbs, b.pklx, b.pkcd, b.ljsl,
b.zl, b.lx, b.xcms, b.kw, b.slrq, b.slrq sljhrq, b.slry, b.llrq, b.llrq lljhrq, b.pw, b.pwry,
b.pwrq, b.pwrq pwjhrq, b.hxsb, b.hxry, b.hxrq, b.hxrq hxjhrq, b.qgsb, b.qgry, b.qgrq, b.qgrq qgjhrq,
b.pwsb, b.DC_FD, b.jzbs, b.jzsb, b.jzry, b.dcCh2, b.gjks, b.gxsj, b.hxkc_cd, b.qgkc_cd, b.jssj, b.zt,
b.xcgs, b.bclqzl, b.bcshzl, b.bcylzl, b.bcljtlzl, b.bcqpyld, b.ylbhgg, b.xxr, b.pkrq, b.qjgrq, b.dmrq,
row_number() over(partition by a.DC_CH,a.DC_PL,b.tzbh order by a.xzglxq ) rn
from
dm_qfxq a left JOIN dm_sygd_mx b
on a.dc_pl=b.dc_pl and a.DC_CH=b.dc_ch and a.DC_FD=b.dc_fd
where a.id in
<foreach collection="ids" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
) a
where a.rn =1
ORDER BY a.xzglxq,a.DC_CH,a.DC_PL
</select>
<select id="getYdjh_bak" resultType="com.dsic.gj_erp.bean.jhgk.DmYdjh" parameterType="arraylist">
SELECT SELECT
dm_qfxq.DC_CH,dm_qfxq.DC_PL, dm_qfxq.DC_CH,dm_qfxq.DC_PL,

Loading…
Cancel
Save