|
|
@ -4,18 +4,23 @@ import cn.hutool.core.date.DateUtil;
|
|
|
|
import cn.hutool.core.io.FileUtil;
|
|
|
|
import cn.hutool.core.io.FileUtil;
|
|
|
|
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.conditions.update.UpdateWrapper;
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
|
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.vo.BomVO;
|
|
|
|
import com.dsic.gj_erp.bean.jcsj.vo.BomVO;
|
|
|
|
import com.dsic.gj_erp.bean.jhgk.DmTzjh;
|
|
|
|
import com.dsic.gj_erp.bean.jhgk.DmTzjh;
|
|
|
|
|
|
|
|
import com.dsic.gj_erp.bean.jhgk.DmYdjh;
|
|
|
|
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.exception.CustomException;
|
|
|
|
import com.dsic.gj_erp.exception.CustomException;
|
|
|
|
import com.dsic.gj_erp.mapper.jcsj.DmBchxmxpMapper;
|
|
|
|
import com.dsic.gj_erp.mapper.jcsj.DmBchxmxpMapper;
|
|
|
|
import com.dsic.gj_erp.mapper.jcsj.DmBomMapper;
|
|
|
|
import com.dsic.gj_erp.mapper.jcsj.DmBomMapper;
|
|
|
|
|
|
|
|
import com.dsic.gj_erp.mapper.jhgk.DmYdjhMapper;
|
|
|
|
import com.dsic.gj_erp.service.jcsj.*;
|
|
|
|
import com.dsic.gj_erp.service.jcsj.*;
|
|
|
|
import com.dsic.gj_erp.service.jhgk.DmTzjhService;
|
|
|
|
import com.dsic.gj_erp.service.jhgk.DmTzjhService;
|
|
|
|
|
|
|
|
import com.dsic.gj_erp.service.jhgk.DmYdjhService;
|
|
|
|
import com.dsic.gj_erp.service.sy.SYService;
|
|
|
|
import com.dsic.gj_erp.service.sy.SYService;
|
|
|
|
|
|
|
|
import com.dsic.gj_erp.util.ObjConvertUtils;
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@ -73,6 +78,12 @@ public class BomUploadServiceImpl {
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
DmBomMapper bomMapper;
|
|
|
|
DmBomMapper bomMapper;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
DmYdjhMapper dmYdjhMapper;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
DmYdjhService dmYdjhService;
|
|
|
|
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
public synchronized ResultBean uploadZ(MultipartFile[] file, String czbh, String pl, String isupload, HttpServletRequest req,String path) throws IOException, CustomException, ScriptException {
|
|
|
|
public synchronized ResultBean uploadZ(MultipartFile[] file, String czbh, String pl, String isupload, HttpServletRequest req,String path) throws IOException, CustomException, ScriptException {
|
|
|
|
String savePath = UUID.randomUUID().toString().replace("-", "");
|
|
|
|
String savePath = UUID.randomUUID().toString().replace("-", "");
|
|
|
@ -922,6 +933,7 @@ public class BomUploadServiceImpl {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// 跨位
|
|
|
|
// 跨位
|
|
|
|
String s = kwxxMap.get(tzbh.substring(4, 7));
|
|
|
|
String s = kwxxMap.get(tzbh.substring(4, 7));
|
|
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isBlank(s)) {
|
|
|
|
if (StringUtils.isBlank(s)) {
|
|
|
|
throw new CustomException(10106, fileName + "跨位信息不存在");
|
|
|
|
throw new CustomException(10106, fileName + "跨位信息不存在");
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -1046,6 +1058,14 @@ public class BomUploadServiceImpl {
|
|
|
|
if (addmxs.size() > 0) {
|
|
|
|
if (addmxs.size() > 0) {
|
|
|
|
bchxmxpService.saveBatch(addmxs);
|
|
|
|
bchxmxpService.saveBatch(addmxs);
|
|
|
|
bchxjbpService.saveBatch(adds);
|
|
|
|
bchxjbpService.saveBatch(adds);
|
|
|
|
|
|
|
|
//List<DmBchxjbp> dmBchxjbps,Map kwxxMap,Map qgKwMap , HttpServletRequest req
|
|
|
|
|
|
|
|
Map bomxzjh = bomxzjh(adds, kwxxMap, qgKwMap, req);
|
|
|
|
|
|
|
|
List<DmYdjh> adds1 = (List<DmYdjh>) bomxzjh.get("adds");
|
|
|
|
|
|
|
|
List<DmYdjh> ups = (List<DmYdjh>) bomxzjh.get("ups");
|
|
|
|
|
|
|
|
dmYdjhService.saveBatch(adds1);
|
|
|
|
|
|
|
|
dmYdjhService.updateBatchById(ups);
|
|
|
|
|
|
|
|
// 修正 生产计划。
|
|
|
|
|
|
|
|
|
|
|
|
dmBchxmxpMapper.updateWpgg(czbh, pl);
|
|
|
|
dmBchxmxpMapper.updateWpgg(czbh, pl);
|
|
|
|
dmBchxmxpMapper.updateWph(czbh, pl);
|
|
|
|
dmBchxmxpMapper.updateWph(czbh, pl);
|
|
|
|
//上传文件到服务器
|
|
|
|
//上传文件到服务器
|
|
|
@ -1713,4 +1733,171 @@ public class BomUploadServiceImpl {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 查询 船号 批量 修正作业计划
|
|
|
|
|
|
|
|
public Map bomxzjh( List<DmBchxjbp> dmBchxjbps,Map kwxxMap,Map qgKwMap , HttpServletRequest req){
|
|
|
|
|
|
|
|
String dcch=dmBchxjbps.get(0).getDcCh();
|
|
|
|
|
|
|
|
String dcpl=dmBchxjbps.get(0).getDcPl();
|
|
|
|
|
|
|
|
List<DmYdjh> ydjhs = dmYdjhService.list(new QueryWrapper<DmYdjh>().eq("dc_ch", dcch )
|
|
|
|
|
|
|
|
.eq("dc_pl",dcpl)
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
DmYdjh ydjhMin=null;
|
|
|
|
|
|
|
|
Boolean f=true;
|
|
|
|
|
|
|
|
if(ydjhs.size()<0){
|
|
|
|
|
|
|
|
f=false;
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
ydjhMin = dmYdjhMapper.getYdjhMin(dcch, dcpl);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<DmYdjh> adds =new ArrayList<>();
|
|
|
|
|
|
|
|
List<DmYdjh> ups =new ArrayList<>();
|
|
|
|
|
|
|
|
List<DmCbxxp> czList = dmCbxxpService.list();
|
|
|
|
|
|
|
|
DmCbxxp dmCzjbb = czList.stream().filter(fst -> fst.getCbbm().equalsIgnoreCase(dcch)).findFirst().orElse(null);
|
|
|
|
|
|
|
|
String cjs="";
|
|
|
|
|
|
|
|
if(null!=dmCzjbb){
|
|
|
|
|
|
|
|
cjs=dmCzjbb.getCjs();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
String cjs1=cjs;
|
|
|
|
|
|
|
|
for(DmBchxjbp dmBchxjbp1:dmBchxjbps ){
|
|
|
|
|
|
|
|
//wpgg ,wpxh
|
|
|
|
|
|
|
|
// DmBchxjbp dmBchxjbp = (DmBchxjbp) ObjConvertUtils.checkNullNew(dmBchxjbp1);
|
|
|
|
|
|
|
|
DmBchxjbp dmBchxjbp = (DmBchxjbp) ObjConvertUtils.checkNullNew(dmBchxjbp1);
|
|
|
|
|
|
|
|
// dmBchxjbp
|
|
|
|
|
|
|
|
String wpgg = dmBchxjbp.getWpgg();
|
|
|
|
|
|
|
|
String wpxh = dmBchxjbp.getWpxh();
|
|
|
|
|
|
|
|
String tzbh = dmBchxjbp.getTzbh();
|
|
|
|
|
|
|
|
String hxfl = dmBchxjbp.getHxfl();
|
|
|
|
|
|
|
|
if(StringUtils.isBlank(wpgg)||"hxfl".equals("X")){
|
|
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 根据 材质 规格 去找 生产计划
|
|
|
|
|
|
|
|
DmYdjh dmYdjh = ydjhs.stream()
|
|
|
|
|
|
|
|
.filter(fst -> StringUtils.isNotBlank(fst.getWpgg())
|
|
|
|
|
|
|
|
&& StringUtils.isNotBlank(fst.getWpxh())
|
|
|
|
|
|
|
|
&& fst.getWpgg().equalsIgnoreCase(dmBchxjbp.getWpgg())
|
|
|
|
|
|
|
|
&& (fst.getWpxh().equalsIgnoreCase(dmBchxjbp.getWpxh())
|
|
|
|
|
|
|
|
|| (cjs1 + fst.getWpxh()).equalsIgnoreCase(dmBchxjbp.getWpxh()))
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
.findFirst()
|
|
|
|
|
|
|
|
.orElse(null);
|
|
|
|
|
|
|
|
if(null!=dmYdjh){
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String hxlx="";
|
|
|
|
|
|
|
|
if (tzbh.substring(4, 5).equals("S")) {
|
|
|
|
|
|
|
|
hxlx = "1010";
|
|
|
|
|
|
|
|
} else if (tzbh.substring(4, 5).equals("N")) {
|
|
|
|
|
|
|
|
hxlx = "1020";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dmYdjh.setLqlb(hxlx);
|
|
|
|
|
|
|
|
dmYdjh.setTzbh(tzbh);
|
|
|
|
|
|
|
|
dmYdjh.setHxcd(dmBchxjbp.getHxcd().doubleValue());
|
|
|
|
|
|
|
|
dmYdjh.setQgcd(dmBchxjbp.getYlzd4().doubleValue());
|
|
|
|
|
|
|
|
dmYdjh.setLjsl(dmBchxjbp.getLjsl().doubleValue());
|
|
|
|
|
|
|
|
dmYdjh.setZl(dmBchxjbp.getDcZl());
|
|
|
|
|
|
|
|
String s = (String) kwxxMap.get(tzbh.substring(4, 7));
|
|
|
|
|
|
|
|
String zzcj = (String) qgKwMap.get(s); //xhj
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dmYdjh.setKw(zzcj);
|
|
|
|
|
|
|
|
dmYdjh.setDcFd(dmBchxjbp.getDcFd());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(tzbh.substring(4, 5).equals("X")){
|
|
|
|
|
|
|
|
dmYdjh.setLx("X");
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
dmYdjh.setLx("B");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dmYdjh.setBmxgrq(DateUtil.format(DateUtil.date(), "yyyy/MM/dd HH:mm"));
|
|
|
|
|
|
|
|
dmYdjh.setBmxgry((String) req.getAttribute("yhms"));
|
|
|
|
|
|
|
|
if(StringUtils.isNotBlank(dmYdjh.getSlxhth())){ // 说明已经上料 需要修正数据
|
|
|
|
|
|
|
|
// 修正
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
// 没上料 规格材质
|
|
|
|
|
|
|
|
dmYdjh.setWpgg(dmBchxjbp.getWpgg());
|
|
|
|
|
|
|
|
dmYdjh.setWpxh(dmBchxjbp.getWpxh());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
ydjhs.remove(dmYdjh); // 从列表中移除找到的元素
|
|
|
|
|
|
|
|
ups.add(dmYdjh);
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DmYdjh dmYdjhadd =new DmYdjh();
|
|
|
|
|
|
|
|
String hxlx="";
|
|
|
|
|
|
|
|
if (tzbh.substring(4, 5).equals("S")) {
|
|
|
|
|
|
|
|
hxlx = "1010";
|
|
|
|
|
|
|
|
} else if (tzbh.substring(4, 5).equals("N")) {
|
|
|
|
|
|
|
|
hxlx = "1020";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
dmYdjhadd.setDcCh(dmBchxjbp.getDcCh());
|
|
|
|
|
|
|
|
dmYdjhadd.setDcPl(dmBchxjbp.getDcPl());
|
|
|
|
|
|
|
|
if(tzbh.substring(4, 5).equals("X")){
|
|
|
|
|
|
|
|
dmYdjhadd.setLx("X");
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
dmYdjhadd.setLx("B");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dmYdjhadd.setWpgg(dmBchxjbp.getWpgg());
|
|
|
|
|
|
|
|
dmYdjhadd.setWpxh(dmBchxjbp.getWpxh());
|
|
|
|
|
|
|
|
dmYdjhadd.setLqlb(hxlx);
|
|
|
|
|
|
|
|
dmYdjhadd.setTzbh(tzbh);
|
|
|
|
|
|
|
|
dmYdjhadd.setHxcd(dmBchxjbp.getHxcd().doubleValue());
|
|
|
|
|
|
|
|
dmYdjhadd.setQgcd(dmBchxjbp.getYlzd4().doubleValue());
|
|
|
|
|
|
|
|
dmYdjhadd.setLjsl(dmBchxjbp.getLjsl().doubleValue());
|
|
|
|
|
|
|
|
dmYdjhadd.setZl(dmBchxjbp.getDcZl());
|
|
|
|
|
|
|
|
String s = (String) kwxxMap.get(tzbh.substring(4, 7));
|
|
|
|
|
|
|
|
String zzcj = (String) qgKwMap.get(s); //xhj
|
|
|
|
|
|
|
|
dmYdjhadd.setKw(zzcj);
|
|
|
|
|
|
|
|
dmYdjhadd.setDcFd(dmBchxjbp.getDcFd());
|
|
|
|
|
|
|
|
dmYdjhadd.setZt("2");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dmYdjhadd.setId(IdWorker.get32UUID());
|
|
|
|
|
|
|
|
dmYdjhadd.setBmbzrq(DateUtil.format(DateUtil.date(), "yyyy/MM/dd HH:mm"));
|
|
|
|
|
|
|
|
dmYdjhadd.setBmbzry((String) req.getAttribute("yhms"));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 新增数据得时候 应该看 是不是有排产数据 有排产数据 给上日期
|
|
|
|
|
|
|
|
if(f){
|
|
|
|
|
|
|
|
dmYdjhadd.setSlrq(ydjhMin.getSlrq());
|
|
|
|
|
|
|
|
dmYdjhadd.setPwrq(ydjhMin.getPwrq());
|
|
|
|
|
|
|
|
dmYdjhadd.setHxrq(ydjhMin.getHxrq());
|
|
|
|
|
|
|
|
dmYdjhadd.setQgrq(ydjhMin.getQgrq());
|
|
|
|
|
|
|
|
dmYdjhadd.setDmrq(ydjhMin.getDmrq());
|
|
|
|
|
|
|
|
dmYdjhadd.setQjgrq(ydjhMin.getQgjhrq());
|
|
|
|
|
|
|
|
dmYdjhadd.setJssj(ydjhMin.getJssj());
|
|
|
|
|
|
|
|
dmYdjhadd.setSljhrq(ydjhMin.getSljhrq());
|
|
|
|
|
|
|
|
dmYdjhadd.setPwjhrq(ydjhMin.getPwjhrq());
|
|
|
|
|
|
|
|
dmYdjhadd.setLljhrq(ydjhMin.getLljhrq());
|
|
|
|
|
|
|
|
dmYdjhadd.setHxjhrq(ydjhMin.getHxjhrq());
|
|
|
|
|
|
|
|
dmYdjhadd.setQgjhrq(ydjhMin.getQgjhrq());
|
|
|
|
|
|
|
|
dmYdjhadd.setJhlx("3");
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
// 新增 没有 日期 数据
|
|
|
|
|
|
|
|
dmYdjhadd.setJhlx("0");
|
|
|
|
|
|
|
|
dmYdjhadd.setSlrq("");
|
|
|
|
|
|
|
|
dmYdjhadd.setPwrq("");
|
|
|
|
|
|
|
|
dmYdjhadd.setHxrq("");
|
|
|
|
|
|
|
|
dmYdjhadd.setQgrq("");
|
|
|
|
|
|
|
|
dmYdjhadd.setDmrq("");
|
|
|
|
|
|
|
|
dmYdjhadd.setQjgrq("");
|
|
|
|
|
|
|
|
dmYdjhadd.setJssj("");
|
|
|
|
|
|
|
|
dmYdjhadd.setSljhrq("");
|
|
|
|
|
|
|
|
dmYdjhadd.setPwjhrq("");
|
|
|
|
|
|
|
|
dmYdjhadd.setLljhrq("");
|
|
|
|
|
|
|
|
dmYdjhadd.setHxjhrq("");
|
|
|
|
|
|
|
|
dmYdjhadd.setQgjhrq("");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// dmYdjhadd
|
|
|
|
|
|
|
|
adds.add(dmYdjhadd);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map rMap = new HashMap();
|
|
|
|
|
|
|
|
rMap.put("adds",adds);
|
|
|
|
|
|
|
|
rMap.put("ups",ups);
|
|
|
|
|
|
|
|
return rMap;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|