From b3db79464f6ed14fa69de5a4f5f099c8d7fd26c9 Mon Sep 17 00:00:00 2001
From: xhj <xhjzrq@163.com>
Date: Fri, 25 Oct 2024 08:49:21 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9C=88=E5=BA=A6=E8=AE=A1=E5=88=92=E5=AF=BC?=
=?UTF-8?q?=E5=85=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../com/dsic/gj_erp/bean/jhgk/DmYdjh.java | 9 +
.../controller/pgd/PgdSljhController.java | 250 +++++++++++++++++-
.../dsic/gj_erp/mapper/jhgk/DmYdjhMapper.java | 2 +
.../resources/mappers/jhgk/DmYdjhMapper.xml | 17 ++
4 files changed, 277 insertions(+), 1 deletion(-)
diff --git a/src/main/java/com/dsic/gj_erp/bean/jhgk/DmYdjh.java b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmYdjh.java
index b1e9139..4ffd899 100644
--- a/src/main/java/com/dsic/gj_erp/bean/jhgk/DmYdjh.java
+++ b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmYdjh.java
@@ -265,12 +265,21 @@ public class DmYdjh implements Serializable {
private String slxzxqrq; // 小组需求期
private String sldzxqrq; // 大组需求期
+
+ private String ckbzrq;
+ private String ckbzry;
+ private String bmbzrq;
+ private String bmbzry;
+ private String bmxgry;
+ private String bmxgrq;
+
// 上料信息
private String slkcdw; // 库存垛位
private String slcs; // 层数
private String slxhth; // 小合同号
private String slhth; // 合同号
private String slwlh; // 物料号
+ private String kcch; // 物料号
private String slkcxx; // 所有库存信息
private Integer slycldw; // 预处理垛位
private Integer slyclcs; // 预处理垛位
diff --git a/src/main/java/com/dsic/gj_erp/controller/pgd/PgdSljhController.java b/src/main/java/com/dsic/gj_erp/controller/pgd/PgdSljhController.java
index 7c3e1ec..693f173 100644
--- a/src/main/java/com/dsic/gj_erp/controller/pgd/PgdSljhController.java
+++ b/src/main/java/com/dsic/gj_erp/controller/pgd/PgdSljhController.java
@@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.dsic.gj_erp.annotation.AuthFunction;
import com.dsic.gj_erp.bean.ResultBean;
import com.dsic.gj_erp.bean.fd.DmCzjbb;
@@ -19,6 +20,8 @@ import com.dsic.gj_erp.bean.pgd.PgdTzjh;
import com.dsic.gj_erp.bean.sy.Dm_zhbmp;
import com.dsic.gj_erp.dao.sy.Dm_zhbmpRepository;
import com.dsic.gj_erp.exception.CustomException;
+import com.dsic.gj_erp.exception.ServiceException;
+import com.dsic.gj_erp.mapper.jhgk.DmYdjhMapper;
import com.dsic.gj_erp.mapper.kc.ImCkwpkwpMapper;
import com.dsic.gj_erp.service.fd.DmCzjbbService;
import com.dsic.gj_erp.service.jcsj.DmCbxxpService;
@@ -35,6 +38,8 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import java.util.stream.Collectors;
/**
@@ -56,6 +61,9 @@ public class PgdSljhController {
@Autowired
DmYdjhService dmYdjhService;
+ @Autowired
+ DmYdjhMapper dmYdjhMapper;
+
@Autowired
ImCkwpkwpMapper imCkwpkwpMapper;
@@ -268,7 +276,9 @@ public class PgdSljhController {
}
String cjs1=cjs;
DmYdjh dmYdjh = ydjhs.stream()
- .filter(fst -> fst.getDcCh().equalsIgnoreCase(slKc.getDCCH()) &&StringUtils.isNotBlank(fst.getWpgg())&& StringUtils.isNotBlank(fst.getWpxh())
+ .filter(fst -> fst.getDcCh().equalsIgnoreCase(slKc.getDCCH())
+ &&StringUtils.isNotBlank(fst.getWpgg())
+ && StringUtils.isNotBlank(fst.getWpxh())
&& fst.getWpgg().equalsIgnoreCase(slKc.getWPGG())
&& (fst.getWpxh().equalsIgnoreCase(slKc.getWPXH())
|| (cjs1 + fst.getWpxh()).equalsIgnoreCase(slKc.getWPXH()))
@@ -320,6 +330,153 @@ public class PgdSljhController {
return new ResultBean(retrunMap);
}
+ /**
+ *
+ * @param req
+ * 需求船号 需求批量 流向 抛丸位置 切割跨位(根据 合同号生成) 备注
+ * 根据 需求船号 需求批量 去 dm_ydjh 表中 查询 反写 库存垛位 上料层数,小合同号,合同号,物料号
+ * 库存表 增加 dm_ydjh 表 id (dm_ydjh 中 有数据 )
+ * @return
+ * @throws Exception
+ * @throws CustomException
+ */
+ @PostMapping("kcAdnSlBd1")
+ @ResponseBody
+ public ResultBean kcAdnSlBd1(HttpServletRequest req, @RequestBody List<SlKc> slKcs) throws Exception, CustomException {
+
+
+
+ List<DmCbxxp> czList = dmCbxxpService.list();
+ List<DmYdjh>ydupList=new ArrayList<>();
+ List<DmYdjh>ydadList=new ArrayList<>();
+ List<SlKc>ckupList=new ArrayList<>();
+ // 进行比对
+ for(SlKc slKc :slKcs){
+ // 获取船级社
+ String cjs="";
+ DmCbxxp dmCzjbb = czList.stream().filter(fst -> fst.getCbbm().equalsIgnoreCase(slKc.getDCCH())).findFirst().orElse(null);
+
+ if(null!=dmCzjbb){
+ cjs=dmCzjbb.getCjs();
+ }
+ String cjs1=cjs;
+ // 根据需求批量 船号 去 查询
+ List<DmYdjh> ydjhs = dmYdjhService.list(new QueryWrapper<DmYdjh>().eq("dc_ch", slKc.getZYCH() ).eq("isnull(ZT,'')","2")
+ .eq("dc_pl",slKc.getZYPL())
+ );
+ DmYdjh dmYdjh = ydjhs.stream()
+ .filter(fst -> fst.getDcCh().equalsIgnoreCase(slKc.getZYCH())
+ &&StringUtils.isNotBlank(fst.getWpgg())
+ && StringUtils.isNotBlank(fst.getWpxh())
+ && fst.getWpgg().equalsIgnoreCase(slKc.getWPGG())
+ && (fst.getWpxh().equalsIgnoreCase(slKc.getWPXH())
+ || (cjs1 + fst.getWpxh()).equalsIgnoreCase(slKc.getWPXH()))
+ && fst.getDcPl().equalsIgnoreCase(slKc.getZYPL())
+ )
+ .findFirst()
+ .orElse(null);
+
+ if(null!=dmYdjh){
+ System.out.println("slKc = " + slKc);
+
+ System.out.println(slKc.getCFCS1()+dmYdjh.getId());
+ dmYdjh.setSlkcdw(slKc.getKWH());
+ dmYdjh.setSlcs(slKc.getCFCS1());
+ dmYdjh.setSlxhth(slKc.getGCDDH());
+ dmYdjh.setSlhth(slKc.getDcFd());
+ dmYdjh.setSlwlh(slKc.getWPH());
+ dmYdjh.setKcch(slKc.getDCCH());
+ ydupList.add(dmYdjh);
+
+
+ slKc.setZYLX(getLx(dmYdjh.getLqlb(), dmYdjh.getZl()));
+ slKc.setSLDW(dmYdjh.getKw());
+ slKc.setDHH(dmYdjh.getSljhrq());
+ //slKc.setPwwz(dmYdjh.getKw());
+ slKc.setYdid(dmYdjh.getId());
+ slKc.setDCTH(dmYdjh.getTzbh());
+ ydjhs.remove(dmYdjh); // 从列表中移除找到的元素
+ ckupList.add(slKc);
+ }else{
+ // 等于nul应该就是没有
+ // 新增月度计划
+ // 根据 月度计划新增一条信息。
+ // 获取
+ DmYdjh ydjhMin = dmYdjhMapper.getYdjhMin(slKc.getZYCH(), slKc.getZYPL());
+ if(null!=ydjhMin){
+ DmYdjh ydjh =new DmYdjh();
+ ydjh.setId(IdWorker.get32UUID());
+ ydjh.setDcCh(slKc.getZYCH());
+ ydjh.setDcPl(slKc.getZYPL());
+ ydjh.setWpgg(slKc.getWPGG());
+ ydjh.setWpxh(slKc.getWPXH());
+ ydjh.setSlrq(ydjhMin.getSlrq());
+ ydjh.setPwrq(ydjhMin.getPwrq());
+ ydjh.setHxrq(ydjhMin.getHxrq());
+ ydjh.setQgrq(ydjhMin.getQgrq());
+ ydjh.setDmrq(ydjhMin.getDmrq());
+ ydjh.setQjgrq(ydjhMin.getQgjhrq());
+ ydjh.setJssj(ydjhMin.getJssj());
+ ydjh.setSljhrq(ydjhMin.getSljhrq());
+ ydjh.setPwjhrq(ydjhMin.getPwjhrq());
+ ydjh.setLljhrq(ydjhMin.getLljhrq());
+ ydjh.setHxjhrq(ydjhMin.getHxjhrq());
+ ydjh.setQgjhrq(ydjhMin.getQgjhrq());
+ ydjh.setKw(extractNumber(slKc.getDcFd()));
+ ydjh.setCkbzrq(DateUtil.format(DateUtil.date(), "yyyy/MM/dd HH:mm"));
+ ydjh.setCkbzry((String) req.getAttribute("yhms"));
+
+ //------
+ ydjh.setSlkcdw(slKc.getKWH());
+ ydjh.setSlcs(slKc.getCFCS1());
+ ydjh.setSlxhth(slKc.getGCDDH());
+ ydjh.setSlhth(slKc.getDcFd());
+ ydjh.setSlwlh(slKc.getWPH());
+ ydjh.setKcch(slKc.getDCCH());
+ slKc.setYdid(ydjh.getId());
+ //ydjhs.remove(dmYdjh); // 从列表中移除找到的元素
+ ckupList.add(slKc);
+
+ ydadList.add(ydjh);
+ //-----
+ }else{
+ throw new ServiceException(10001,slKc.getZYCH()+"船只"+slKc.getZYPL()+"未进行排产");
+ }
+
+ }
+
+
+ }
+ dmYdjhService.updateBatchById(ydupList);
+ dmYdjhService.saveBatch(ydadList);
+ for(SlKc slKc :slKcs){
+ ImCkwpkwp imCkwpkwp =new ImCkwpkwp();
+ imCkwpkwp.setCkh(slKc.getCKH());
+ imCkwpkwp.setWph(slKc.getWPH());
+ imCkwpkwp.setKwh(slKc.getKWH());
+ imCkwpkwp.setNbsbm(slKc.getNBSBM());
+ imCkwpkwp.setYdid(slKc.getYdid());
+ imCkwpkwp.setZych(slKc.getZYCH());
+ imCkwpkwp.setZypl(slKc.getZYPL());
+ imCkwpkwp.setZylx(slKc.getZYLX());
+ imCkwpkwp.setSldw(slKc.getSLDW());
+ imCkwpkwp.setPwwz(slKc.getPwwz());
+ imCkwpkwp.setBz(slKc.getBZ());
+ imCkwpkwp.setDhh(slKc.getDHH());
+ imCkwpkwp.setDcTh(slKc.getDCTH());
+ imCkwpkwp.setYdid(slKc.getYdid());
+ imCkwpkwpService.updateByMultiId(imCkwpkwp);
+ }
+ return new ResultBean();
+ }
+ public String extractNumber(String str) {
+ Pattern pattern = Pattern.compile("-(\\d+)");
+ Matcher matcher = pattern.matcher(str);
+ if (matcher.find()) {
+ return matcher.group(1);
+ }
+ return "";
+ }
@PostMapping("kcAdnSlZx")
@ResponseBody
public ResultBean kcAdnSlZx(HttpServletRequest req, @RequestBody Map map) throws Exception, CustomException {
@@ -331,6 +488,7 @@ public class PgdSljhController {
List<DmYdjh>ydupList=new ArrayList<>();
+
List<ImCkwpkwp>ckupList=new ArrayList<>();
//String id = syService.f_getpjh("DM", "SYSTEM", "YLBH");
for(SlKc slKc :slKcs){
@@ -473,5 +631,95 @@ public class PgdSljhController {
}
return "";
}
+
+ @PostMapping("kcAdnSlBd2")
+ @ResponseBody
+ public ResultBean kcAdnSlBd2(HttpServletRequest req, @RequestBody Map map) throws Exception, CustomException {
+
+ String str= JSON.toJSONString(map.get("data1"));
+ List<SlKc> slKcs= JSONObject.parseArray(str, SlKc.class);
+
+
+ QueryWrapper<DmYdjh> qw =new QueryWrapper<>();
+ qw.eq(StrUtil.isNotEmpty((String)map.get("dcch")),"dc_ch",(String)map.get("dcch"));
+ qw.eq(StrUtil.isNotEmpty((String)map.get("dcpl")),"dc_pl",(String)map.get("dcpl"));
+ qw.eq("isnull(ZT,'')","2").eq("isnull(slkcdw,'')","");
+ List<DmYdjh> ydjhs = dmYdjhService.list(qw);
+ //库存标识 不等于 01 没有匹配上
+
+
+
+
+
+
+
+ List<DmCbxxp> czList = dmCbxxpService.list();
+ List<DmYdjh>ydupList=new ArrayList<>();
+ List<SlKc>ckupList=new ArrayList<>();
+ // 进行比对
+ for(SlKc slKc :slKcs){
+ // 获取船级社
+ String cjs="";
+ DmCbxxp dmCzjbb = czList.stream().filter(fst -> fst.getCbbm().equalsIgnoreCase(slKc.getDCCH())).findFirst().orElse(null);
+
+ if(null!=dmCzjbb){
+ cjs=dmCzjbb.getCjs();
+ }
+ String cjs1=cjs;
+ DmYdjh dmYdjh = ydjhs.stream()
+ .filter(fst -> fst.getDcCh().equalsIgnoreCase(slKc.getDCCH())
+ &&StringUtils.isNotBlank(fst.getWpgg())
+ && StringUtils.isNotBlank(fst.getWpxh())
+ && fst.getWpgg().equalsIgnoreCase(slKc.getWPGG())
+ && (fst.getWpxh().equalsIgnoreCase(slKc.getWPXH())
+ || (cjs1 + fst.getWpxh()).equalsIgnoreCase(slKc.getWPXH()))
+ )
+ .findFirst()
+ .orElse(null);
+
+ if(null!=dmYdjh){
+ System.out.println("slKc = " + slKc);
+ dmYdjh.setSlkcdw(slKc.getKWH());
+ System.out.println(slKc.getCFCS1()+dmYdjh.getId());
+ dmYdjh.setSlcs(slKc.getCFCS1());
+ dmYdjh.setSlxhth(slKc.getGCDDH());
+ dmYdjh.setSlhth(slKc.getDcFd());
+ dmYdjh.setSlwlh(slKc.getWPH());
+ dmYdjh.setSlycldw((Integer) map.get("dw"));
+
+
+// ImCkwpkwp imCkwpkwp =new ImCkwpkwp();
+// imCkwpkwp.setCkh(slKc.getCKH());
+// imCkwpkwp.setWph(slKc.getWPH());
+// imCkwpkwp.setKwh(slKc.getKWH());
+// imCkwpkwp.setNbsbm(slKc.getNBSBM());
+// imCkwpkwp.setYdid(dmYdjh.getId());
+// imCkwpkwp.setZych(dmYdjh.getDcCh());
+// imCkwpkwp.setZypl(dmYdjh.getDcPl());
+// imCkwpkwp.setZylx(dmYdjh.getZl());
+// imCkwpkwp.setSldw(dmYdjh.getKw());
+ ydupList.add(dmYdjh);
+ // ckupList.add(imCkwpkwp);
+
+ slKc.setZYLX(getLx(dmYdjh.getLqlb(), dmYdjh.getZl()));
+ slKc.setZYCH(dmYdjh.getDcCh());
+ slKc.setZYPL(dmYdjh.getDcPl());
+ slKc.setDCTH(dmYdjh.getTzbh());
+ // slKc.setZYLX(dmYdjh.getZl());
+ slKc.setSLDW(dmYdjh.getKw());
+ slKc.setDHH(dmYdjh.getSljhrq());
+ //slKc.setPwwz(dmYdjh.getKw());
+ slKc.setYdid(dmYdjh.getId());
+ ydjhs.remove(dmYdjh); // 从列表中移除找到的元素
+ ckupList.add(slKc);
+ }
+ // 填写 库存垛位 kwh 层数 cfcs1 小合同号 gcddh 合同工 dc_fd 物料号 wph 炉批号 lph
+
+ }
+ Map retrunMap =new HashMap();
+ retrunMap.put("slkcs",ckupList);
+ // retrunMap.put("ydjhs",ydupList);
+ return new ResultBean(retrunMap);
+ }
}
diff --git a/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmYdjhMapper.java b/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmYdjhMapper.java
index 916e7e8..336c659 100644
--- a/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmYdjhMapper.java
+++ b/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmYdjhMapper.java
@@ -49,4 +49,6 @@ public interface DmYdjhMapper extends BaseMapper<DmYdjh> {
List<Map<String,Object>> gxjhwcqk(String from,String to);
List<Map<String,Object>> gcjd(List<String> czbh);
+
+ DmYdjh getYdjhMin(@Param("dcch") String dcch, @Param("dcpl") String dcpl);
}
diff --git a/src/main/resources/mappers/jhgk/DmYdjhMapper.xml b/src/main/resources/mappers/jhgk/DmYdjhMapper.xml
index c13870b..a6b0773 100644
--- a/src/main/resources/mappers/jhgk/DmYdjhMapper.xml
+++ b/src/main/resources/mappers/jhgk/DmYdjhMapper.xml
@@ -822,4 +822,21 @@
#{item}
</foreach>
</insert>
+
+ <select id="getYdjhMin" parameterType="string" resultType="com.dsic.gj_erp.bean.jhgk.DmYdjh">
+ select min (slrq) as slrq,
+ min (pwrq) as pwrq,
+ min (hxrq) as hxrq,
+ min (qgrq) as qgrq,
+ min (dmrq) as dmrq,
+ min (qjgrq) as qjgrq,
+ min (jssj) as jssj,
+ min (sljhrq) as sljhrq,
+ min (pwjhrq) as pwjhrq,
+ min (lljhrq) as lljhrq,
+ min (hxjhrq) as hxjhrq,
+ min (qgjhrq) as qgjhrq from dm_ydjh
+where dc_ch=#{dcch} and dc_pl =#{dcpl}
+
+ </select>
</mapper>