From 26ead5eef59d03ff3b5197a92a6016f94e15eefb Mon Sep 17 00:00:00 2001
From: xiaoning <1097449274@qq.com>
Date: Mon, 18 Dec 2023 10:32:35 +0800
Subject: [PATCH] xn

---
 .../com/dsic/gj_erp/bean/jhgk/DmQfxq.java     |  83 ++++++----
 .../controller/jhgk/DmQfxqController.java     |  33 +++-
 .../controller/jhgk/DmSygdxqController.java   |  28 +---
 .../controller/jhgk/DmYdjhController.java     |  21 +++
 .../dsic/gj_erp/mapper/jhgk/DmYdjhMapper.java |   2 +
 .../gj_erp/service/jhgk/DmQfxqService.java    |   5 +-
 .../gj_erp/service/jhgk/DmYdjhService.java    |   1 +
 .../service/jhgk/impl/DmQfxqServiceImpl.java  | 108 ++++++++++---
 .../service/jhgk/impl/DmYdjhServiceImpl.java  |  40 +++--
 .../resources/mappers/jhgk/DmQfxqMapper.xml   |  19 +--
 .../resources/mappers/jhgk/DmYdjhMapper.xml   | 151 +++++++++++++++---
 11 files changed, 356 insertions(+), 135 deletions(-)

diff --git a/src/main/java/com/dsic/gj_erp/bean/jhgk/DmQfxq.java b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmQfxq.java
index 02d365f..28c10df 100644
--- a/src/main/java/com/dsic/gj_erp/bean/jhgk/DmQfxq.java
+++ b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmQfxq.java
@@ -12,62 +12,87 @@ import java.io.Serializable;
 
 /**
  * <p>
- * 
+ *
  * </p>
  *
  * @author xn
- * @since 2023-09-18
+ * @since 2023-11-02
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
-@ApiModel(value="DmQfxq对象", description="")
+@ApiModel(value="DmSygdxq对象", description="")
 public class DmQfxq implements Serializable {
 
     private static final long serialVersionUID=1L;
 
-    @ApiModelProperty(value = "船名")
-    @TableField("DC_CH")
-    private String dcCh;
-
-    @ApiModelProperty(value = "批量")
-    @TableField("DC_PL")
-    private String dcPl;
-
     @ApiModelProperty(value = "分段")
     @TableField("DC_FD")
     private String dcFd;
 
-    @ApiModelProperty(value = "配送场地")
-    private String pscd;
+    @ApiModelProperty(value = "总段号")
+    private String zdh;
 
-    @ApiModelProperty(value = "车间主管")
-    private String cjzg;
+    @ApiModelProperty(value = "大组极重")
+    private Double dzjz;
 
-    @ApiModelProperty(value = "大板")
-    private String db;
+    @ApiModelProperty(value = "总装部最新分段需求期")
+    private String zxfdxq;
 
-    @ApiModelProperty(value = "型材")
-    private String xc;
+    @ApiModelProperty(value = "钢料需求")
+    private String xzglxq;
+    private String dzglxq;
+    @ApiModelProperty(value = "钢料需求")
+    private String xzglxqOld;
+    private String dzglxqOld;
 
-    @ApiModelProperty(value = "T型材")
-    private String txc;
+    @ApiModelProperty(value = "X大板")
+    private String xdb;
 
-    @ApiModelProperty(value = "备注")
-    private String bz;
+    @ApiModelProperty(value = "X数控件")
+    private String xskj;
 
-    @ApiModelProperty(value = "状态")
-    private String zt;
+    @ApiModelProperty(value = "X平铁")
+    private String xpt;
+
+    @ApiModelProperty(value = "X压弯")
+    private String xyw;
+
+    @ApiModelProperty(value = "X型材")
+    private String xxc;
+
+    @ApiModelProperty(value = "X二次装T型材")
+    private String xtxc;
+
+
+    @ApiModelProperty(value = "D曲板")
+    private String dqb;
+
+    @ApiModelProperty(value = "D型材T")
+    private String dxc;
+
+    @ApiModelProperty(value = "D散件")
+    private String dsj;
+
+    @ApiModelProperty(value = "D大板")
+    private String ddb;
 
     @TableId(value = "id", type = IdType.ASSIGN_UUID)
     private String id;
 
-    @ApiModelProperty(value = "编制人员")
-    private String bzry;
-    @ApiModelProperty(value = "编制日期")
-    private String bzrq;
+    private String dcCh;
+
+    private String dcPl;
+
+    private String drr;
+    private String drrq;
+    private String zt;
+    private int drcs=1;
+
     @ApiModelProperty(value = "审核人员")
     private String shry;
     @ApiModelProperty(value = "审核日期")
     private String shrq;
+    private String xqzt="0";
+
 
 }
diff --git a/src/main/java/com/dsic/gj_erp/controller/jhgk/DmQfxqController.java b/src/main/java/com/dsic/gj_erp/controller/jhgk/DmQfxqController.java
index b28a11f..7249583 100644
--- a/src/main/java/com/dsic/gj_erp/controller/jhgk/DmQfxqController.java
+++ b/src/main/java/com/dsic/gj_erp/controller/jhgk/DmQfxqController.java
@@ -1,6 +1,8 @@
 package com.dsic.gj_erp.controller.jhgk;
 
 
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.excel.EasyExcel;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -8,8 +10,13 @@ import com.dsic.gj_erp.annotation.AuthFunction;
 import com.dsic.gj_erp.bean.ResultBean;
 import com.dsic.gj_erp.bean.jcsj.DmCbxxp;
 import com.dsic.gj_erp.bean.jhgk.DmQfxq;
+import com.dsic.gj_erp.bean.jhgk.DmSygdxq;
+import com.dsic.gj_erp.bean.jhgk.excel.GdxqExcel;
+import com.dsic.gj_erp.bean.jhgk.excel.GdxqExcel1;
 import com.dsic.gj_erp.bean.jhgk.excel.QfExcel;
 import com.dsic.gj_erp.exception.CustomException;
+import com.dsic.gj_erp.listeners.ExcelGdxq1Listener;
+import com.dsic.gj_erp.listeners.ExcelGdxqListener;
 import com.dsic.gj_erp.listeners.ExcelQFListener;
 import com.dsic.gj_erp.service.jcsj.DmCbxxpService;
 import com.dsic.gj_erp.service.jhgk.DmQfxqService;
@@ -42,10 +49,10 @@ public class DmQfxqController {
     @AuthFunction
     public ResultBean getList(@RequestBody DmQfxq qfxq) {
         List<DmQfxq> list = service.list(new QueryWrapper<DmQfxq>()
-                .eq(StrUtil.isNotEmpty(qfxq.getDb()), "substring(db,0,8) ", qfxq.getDb())
+                .eq(StrUtil.isNotEmpty(qfxq.getXzglxq()), "substring(Xzglxq,0,8) ", qfxq.getXzglxq())
                 .eq(StrUtil.isNotEmpty(qfxq.getZt()), "zt", qfxq.getZt())
                 .orderByAsc("DC_CH,cast(dc_pl as int),DC_FD"));
-        return new ResultBean(list);
+        return new ResultBean();
     }
 
     @RequestMapping("/getCzxx")
@@ -62,12 +69,24 @@ public class DmQfxqController {
     @PostMapping("/upload")
     @AuthFunction
     @ResponseBody
-    public ResultBean uploadQf(@RequestParam("file") MultipartFile file, String czbh, HttpServletRequest req) throws Exception, CustomException {
+    public ResultBean uploadQf(@RequestParam("file") MultipartFile file, HttpServletRequest req) throws Exception, CustomException {
+
+        ExcelGdxqListener objectListener = new ExcelGdxqListener();
+        ExcelGdxq1Listener objectListener1 = new ExcelGdxq1Listener();
 
-        ExcelQFListener objectListener = new ExcelQFListener();
-        EasyExcel.read(file.getInputStream(), QfExcel.class, objectListener).sheet(0).headRowNumber(1).doRead();
-        List<QfExcel> objList = objectListener.getObjectList();
-        return service.uploadQf(objList, czbh, req);
+        EasyExcel.read(file.getInputStream(), GdxqExcel.class, objectListener).sheet(0).headRowNumber(1).doRead();
+        List<GdxqExcel> objList = objectListener.getObjectList();
+
+        EasyExcel.read(file.getInputStream(), GdxqExcel1.class, objectListener1).sheet(1).headRowNumber(1).doRead();
+        List<GdxqExcel1> objList1 = objectListener1.getObjectList();
+
+        List<DmQfxq> list = BeanUtil.copyToList(objList, DmQfxq.class);
+        List<DmQfxq> list1 = BeanUtil.copyToList(objList1, DmQfxq.class);
+        String username=(String) req.getAttribute("yhms");
+        String day= DateUtil.format(DateUtil.date(), "yyyy/MM/dd");
+        service.saveXzList(list,username,day);
+        service.saveDzList(list1,username,day);
+        return new ResultBean();
     }
 
     //保存
diff --git a/src/main/java/com/dsic/gj_erp/controller/jhgk/DmSygdxqController.java b/src/main/java/com/dsic/gj_erp/controller/jhgk/DmSygdxqController.java
index b0d5085..40d5949 100644
--- a/src/main/java/com/dsic/gj_erp/controller/jhgk/DmSygdxqController.java
+++ b/src/main/java/com/dsic/gj_erp/controller/jhgk/DmSygdxqController.java
@@ -49,33 +49,7 @@ public class DmSygdxqController {
                 .ge(StrUtil.isNotEmpty(map.get("beginTime")), "xzglxq", DateUtil.beginOfMonth(DateUtil.parseDate(map.get("beginTime"))))
                 .le(StrUtil.isNotEmpty(map.get("endTime")), "xzglxq", DateUtil.endOfMonth(DateUtil.parseDate(map.get("endTime"))))
                 .orderByAsc("dc_ch, cast(dc_pl as int),xzglxq"));
-        if (ObjUtil.isEmpty(list)) {
-            return new ResultBean();
-        }
-//        Map<String, List<DmSygdxq>> groupByZl = list.stream().collect(Collectors.groupingBy(DmSygdxq::getZl));
-
-        Map<String, Map<String, Double>> m =
-                list.stream()
-                        .filter(x -> Objects.nonNull(x.getXzglxq()) && Objects.nonNull(x.getDzjz()))
-                        .collect(Collectors.groupingBy(DmSygdxq::getDcCh
-                                , Collectors.groupingBy(x -> x.getXzglxq().substring(5, 7)
-                                        , Collectors.summingDouble(l -> l.getDzjz())
-                                )));
-
-        List<Json> list1 = new ArrayList<>();
-        for (String ch : m.keySet()) {
-            String str = "\"dcCh\":" +"\"" +ch+"\"" ;
-            for (String month : m.get(ch).keySet()) {
-                str += ",\"yf" + month + "\":\"" + m.get(ch).get(month)+"\"";
-            }
-            str = "{" + str + "}";
-            Json j = new Json(str);
-            list1.add(j);
-        }
-        Map map1 = new HashMap();
-        map1.put("hz", list1);
-        map1.put("list", list);
-        return new ResultBean(map1);
+        return new ResultBean(list);
     }
 
     @PostMapping("/upload")
diff --git a/src/main/java/com/dsic/gj_erp/controller/jhgk/DmYdjhController.java b/src/main/java/com/dsic/gj_erp/controller/jhgk/DmYdjhController.java
index 34da123..8d1504f 100644
--- a/src/main/java/com/dsic/gj_erp/controller/jhgk/DmYdjhController.java
+++ b/src/main/java/com/dsic/gj_erp/controller/jhgk/DmYdjhController.java
@@ -4,6 +4,7 @@ package com.dsic.gj_erp.controller.jhgk;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.dsic.gj_erp.annotation.AuthFunction;
 import com.dsic.gj_erp.bean.ResultBean;
 import com.dsic.gj_erp.bean.jhgk.DmYdjh;
@@ -15,6 +16,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -36,6 +38,7 @@ public class DmYdjhController {
     public ResultBean getList(@RequestBody Map<String, String> map){
         List<DmYdjh> list= service.list(new QueryWrapper<DmYdjh>()
                 .eq(StrUtil.isNotEmpty(map.get("dcCh")),"dc_ch",map.get("dcCh"))
+                .eq(StrUtil.isNotEmpty(map.get("zt")),"zt",map.get("zt"))
                 .ge(StrUtil.isNotEmpty(map.get("yf")), "jssj", DateUtil.beginOfMonth(DateUtil.parseDate(map.get("yf"))))
                 .le(StrUtil.isNotEmpty(map.get("yf")), "jssj", DateUtil.endOfMonth(DateUtil.parseDate(map.get("yf"))))
                 .orderByAsc("jssj,dc_ch,dc_pl")
@@ -54,5 +57,23 @@ public class DmYdjhController {
     public ResultBean hz(@RequestBody List<DmYdjh> list){
         return new ResultBean(service.hz(list));
     }
+
+    @RequestMapping("/tj")
+    @AuthFunction
+    public ResultBean tj(@RequestBody List<DmYdjh> list){
+        List<String> idList=list.stream().map(DmYdjh::getId).collect(Collectors.toList());
+        service.update(new UpdateWrapper<DmYdjh>().set("zt","1")
+                .in( "id",idList)
+        );
+        return new ResultBean();
+    }
+
+    @RequestMapping("/xf")
+    @AuthFunction
+    public ResultBean xf(@RequestBody List<DmYdjh> list){
+
+        return new ResultBean();
+    }
+
 }
 
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 0f81bd5..212c33d 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
@@ -25,4 +25,6 @@ public interface DmYdjhMapper extends BaseMapper<DmYdjh> {
    List<PgdSljh>  getSljh(@Param("begin") String begin, @Param("end") String end);
    List<PgdPwjh>  getPwjh(@Param("begin") String begin, @Param("end") String end);
    List<PgdQgjh>  getQgjh(@Param("begin") String begin, @Param("end") String end);
+   int  xfbc(List<String> ids);
+   int  tqlj(List<String> ids);
 }
diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/DmQfxqService.java b/src/main/java/com/dsic/gj_erp/service/jhgk/DmQfxqService.java
index cf70954..c61fc60 100644
--- a/src/main/java/com/dsic/gj_erp/service/jhgk/DmQfxqService.java
+++ b/src/main/java/com/dsic/gj_erp/service/jhgk/DmQfxqService.java
@@ -4,6 +4,7 @@ package com.dsic.gj_erp.service.jhgk;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.dsic.gj_erp.bean.ResultBean;
 import com.dsic.gj_erp.bean.jhgk.DmQfxq;
+import com.dsic.gj_erp.bean.jhgk.DmSygdxq;
 import com.dsic.gj_erp.bean.jhgk.excel.QfExcel;
 
 import javax.servlet.http.HttpServletRequest;
@@ -20,5 +21,7 @@ import java.util.Map;
  */
 public interface DmQfxqService extends IService<DmQfxq> {
 
-    ResultBean uploadQf(List<QfExcel> list, String project, HttpServletRequest req);
+
+    void saveXzList(List<DmQfxq> list, String username, String day);
+    void saveDzList(List<DmQfxq> list, String username, String day);
 }
diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/DmYdjhService.java b/src/main/java/com/dsic/gj_erp/service/jhgk/DmYdjhService.java
index e3a631b..b2535d6 100644
--- a/src/main/java/com/dsic/gj_erp/service/jhgk/DmYdjhService.java
+++ b/src/main/java/com/dsic/gj_erp/service/jhgk/DmYdjhService.java
@@ -21,4 +21,5 @@ public interface DmYdjhService extends IService<DmYdjh> {
 
     List<DmSygdMx> tjydjh();
      Map<String,Object> hz(List<DmYdjh> ydjhList);
+    void   xf(List<DmYdjh> ydjhList);
 }
diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmQfxqServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmQfxqServiceImpl.java
index ee09914..aeaca4c 100644
--- a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmQfxqServiceImpl.java
+++ b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmQfxqServiceImpl.java
@@ -2,15 +2,15 @@ package com.dsic.gj_erp.service.jhgk.impl;
 
 
 import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dsic.gj_erp.bean.ResultBean;
-import com.dsic.gj_erp.bean.jcsj.EmGcrl;
 import com.dsic.gj_erp.bean.jhgk.DmQfxq;
+import com.dsic.gj_erp.bean.jhgk.DmSygdxq;
 import com.dsic.gj_erp.bean.jhgk.DmYdjh;
 import com.dsic.gj_erp.bean.jhgk.excel.QfExcel;
-import com.dsic.gj_erp.mapper.jcsj.EmGcrlMapper;
 import com.dsic.gj_erp.mapper.jhgk.DmQfxqMapper;
 import com.dsic.gj_erp.service.jhgk.DmQfxqService;
 import com.dsic.gj_erp.service.jhgk.DmYdjhService;
@@ -33,31 +33,91 @@ import java.util.stream.Collectors;
 @Service
 public class DmQfxqServiceImpl extends ServiceImpl<DmQfxqMapper, DmQfxq> implements DmQfxqService {
 
-
-    @Resource
-    private EmGcrlMapper gcrlMapper;
-
     @Resource
     private DmYdjhService ydjhService;
 
     @Override
-    @Transactional(rollbackFor = Exception.class)
-    public ResultBean uploadQf(List<QfExcel> list, String project, HttpServletRequest req) {
-        List<DmQfxq> listForSave = new ArrayList<>();
-        for (QfExcel q : list) {
-            DmQfxq a = new DmQfxq();
-            BeanUtil.copyProperties(q, a);
-            String pl = a.getDcPl().length() == 1 ? "00" + a.getDcPl() : a.getDcPl().length() == 2 ? "0" + a.getDcPl() : a.getDcPl();
-            a.setDcPl(pl);
-            a.setBzry((String) req.getAttribute("yhms"));
-            a.setBzrq(DateUtil.format(DateUtil.date(), "yyyy/MM/dd"));
-            listForSave.add(a);
-            this.remove(new QueryWrapper<DmQfxq>().eq("Dc_ch", a.getDcCh()).eq("Dc_pl", a.getDcPl()).eq("Dc_fd", a.getDcFd()));
-        }
-        this.saveBatch(listForSave);
-        //生成月度计划信息
-        generateYdjh(listForSave);
-        return new ResultBean();
+    @Transactional
+    public void saveXzList(List<DmQfxq> list, String username, String day){
+        list.forEach(l->{
+            l.setDcPl(l.getDcPl().length() == 1 ? "00" + l.getDcPl() : l.getDcPl().length() == 2 ? "0" + l.getDcPl() : l.getDcPl());
+            DmQfxq qfxq=this.getOne(new QueryWrapper<DmQfxq>()
+                    .eq("dc_ch",l.getDcCh())
+                    .eq("dc_pl",l.getDcPl())
+                    .eq("DC_FD",l.getDcFd())
+            );
+            if (ObjUtil.isNotEmpty(qfxq)){
+                l.setDrcs(qfxq.getDrcs()+1);
+                l.setXzglxqOld(qfxq.getXzglxq());
+                l.setDrr(username);
+                l.setDrrq(day);
+                //状态 2拖期 1提前
+                if (l.getXzglxq().compareTo(qfxq.getXzglxq())>0){
+                    l.setXqzt("2");
+                }
+                if (l.getXzglxq().compareTo(qfxq.getXzglxq())<0){
+                    l.setXqzt("1");
+                }
+                this.update(new UpdateWrapper<DmQfxq>()
+                        .set("xzglxq",l.getXzglxq())
+                        .set("xzglxq_old",l.getXzglxqOld())
+                        .set("xdb",l.getXdb())
+                        .set("xskj",l.getXskj())
+                        .set("xpt",l.getXpt())
+                        .set("xyw",l.getXyw())
+                        .set("xxc",l.getXxc())
+                        .set("xtxc",l.getXtxc())
+                        .set("drcs",l.getDrcs())
+                        .set("xqzt",l.getXqzt())
+                        .set("drrq",l.getDrrq())
+                        .set("drr",l.getDrr())
+                        .eq("dc_ch",l.getDcCh())
+                        .eq("dc_pl",l.getDcPl())
+                        .eq("DC_FD",l.getDcFd())
+                );
+            }else {
+                l.setDrr(username);
+                l.setDrrq(day);
+                this.save(l);
+            }
+
+
+        });
+    }
+
+    @Override
+    @Transactional
+    public void saveDzList(List<DmQfxq> list,String username,String day){
+        list.forEach(l->{
+            l.setDcPl(l.getDcPl().length() == 1 ? "00" + l.getDcPl() : l.getDcPl().length() == 2 ? "0" + l.getDcPl() : l.getDcPl());
+            DmQfxq qfxq=this.getOne(new QueryWrapper<DmQfxq>()
+                    .eq("dc_ch",l.getDcCh())
+                    .eq("dc_pl",l.getDcPl())
+                    .eq("DC_FD",l.getDcFd())
+            );
+            if (ObjUtil.isNotEmpty(qfxq)){
+                l.setDrr(username);
+                l.setDrrq(day);
+                this.update(new UpdateWrapper<DmQfxq>()
+                        .set("dzglxq",l.getDzglxq())
+                        .set("dzglxq_old",qfxq.getDzglxq())
+                        .set("dqb",l.getDqb())
+                        .set("dxc",l.getDxc())
+                        .set("dsj",l.getDsj())
+                        .set("ddb",l.getDdb())
+                        .set("drrq",l.getDrrq())
+                        .set("drr",l.getDrr())
+                        .eq("dc_ch",l.getDcCh())
+                        .eq("dc_pl",l.getDcPl())
+                        .eq("DC_FD",l.getDcFd())
+                );
+            }else {
+                l.setDrr(username);
+                l.setDrrq(day);
+                this.save(l);
+            }
+        });
+        generateYdjh(list);
     }
 
     /**
diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmYdjhServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmYdjhServiceImpl.java
index 7712971..d9f27cb 100644
--- a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmYdjhServiceImpl.java
+++ b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmYdjhServiceImpl.java
@@ -3,8 +3,10 @@ package com.dsic.gj_erp.service.jhgk.impl;
 
 import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dsic.gj_erp.bean.jcsj.EmGcrl;
+import com.dsic.gj_erp.bean.jcsj.EmSbcnp;
 import com.dsic.gj_erp.bean.jhgk.DmQfxq;
 import com.dsic.gj_erp.bean.jhgk.DmSygdMx;
 import com.dsic.gj_erp.bean.jhgk.DmYdjh;
@@ -55,7 +57,7 @@ public class DmYdjhServiceImpl extends ServiceImpl<DmYdjhMapper, DmYdjh> impleme
         //3.根据前方需求期,重新为三月滚动明细排产(板),排产后的数据添加到月度计划,并且反写数据到三月滚动明细
 //      List<DmQfxq> qfxqList= qfxqService.list(new QueryWrapper<DmQfxq>().eq("substring(db,0,8) ", DateUtil.format(DateUtil.nextMonth(),"yyyy/MM")));
         int i = qfxqService.count(new QueryWrapper<DmQfxq>()
-                .eq("substring(db,0,8) ", "2023/08"));
+                .eq("substring(xzglxq,0,8) ", "2023/08"));
          if (i < 1) {
             System.out.println("下月的前方需求信息未导入!");
             return null;
@@ -83,35 +85,37 @@ public class DmYdjhServiceImpl extends ServiceImpl<DmYdjhMapper, DmYdjh> impleme
         String end ="2023/08/31";
         //图纸计划
 
-        List<PgdTzjh> tzjhList=tzjhService.list(new QueryWrapper<PgdTzjh>().between("qgxqrq",begin,end));
+        List<PgdTzjh> tzjhList=tzjhService.list(new QueryWrapper<PgdTzjh>().between("qgxqrq",begin,end).orderByAsc("czbh,pl,qgxqrq"));
         if (tzjhList.size()<1){
             baseMapper.getTzjh(begin,end);
-            tzjhList=tzjhService.list(new QueryWrapper<PgdTzjh>().between("qgxqrq",begin,end));
+            tzjhList=tzjhService.list(new QueryWrapper<PgdTzjh>().between("qgxqrq",begin,end)
+                    .orderByAsc("czbh,pl,qgxqrq")
+            );
         }
         //订货清单
-        List<PgdDh> dhList=dhService.list(new QueryWrapper<PgdDh>().between("slxqrq",begin,end));
+        List<PgdDh> dhList=dhService.list(new QueryWrapper<PgdDh>().between("slxqrq",begin,end).orderByAsc("czbh,slxqrq"));
         if (dhList.size()<1){
             baseMapper.getDhjh(begin,end);
-            dhList=dhService.list(new QueryWrapper<PgdDh>().between("slxqrq",begin,end));
+            dhList=dhService.list(new QueryWrapper<PgdDh>().between("slxqrq",begin,end).orderByAsc("czbh,slxqrq"));
         }
         //上料计划
-        List<PgdSljh> slList=slService.list(new QueryWrapper<PgdSljh>().between("sljhrq",begin,end));
+        List<PgdSljh> slList=slService.list(new QueryWrapper<PgdSljh>().between("sljhrq",begin,end).orderByAsc("czbh,pl,sljhrq"));
         if (slList.size()<1){
             baseMapper.getSljh(begin,end);
-            slList=slService.list(new QueryWrapper<PgdSljh>().between("sljhrq",begin,end));
+            slList=slService.list(new QueryWrapper<PgdSljh>().between("sljhrq",begin,end).orderByAsc("czbh,pl,sljhrq"));
         }
         //抛丸计划
 
-        List<PgdPwjh> pwList=pwService.list(new QueryWrapper<PgdPwjh>().between("pwjhrq",begin,end));
+        List<PgdPwjh> pwList=pwService.list(new QueryWrapper<PgdPwjh>().between("pwjhrq",begin,end).orderByAsc("czbh,pl,pwjhrq"));
         if (pwList.size()<1){
             baseMapper.getPwjh(begin,end);
-            pwList=pwService.list(new QueryWrapper<PgdPwjh>().between("pwjhrq",begin,end));
+            pwList=pwService.list(new QueryWrapper<PgdPwjh>().between("pwjhrq",begin,end).orderByAsc("czbh,pl,pwjhrq"));
         }
         //切割计划
-        List<PgdQgjh> qgList=qgService.list(new QueryWrapper<PgdQgjh>().between("qgjhrq",begin,end));
+        List<PgdQgjh> qgList=qgService.list(new QueryWrapper<PgdQgjh>().between("qgjhrq",begin,end).orderByAsc("czbh,pl,qgjhrq"));
         if (qgList.size()<1){
             baseMapper.getQgjh(begin,end);
-            qgList=qgService.list(new QueryWrapper<PgdQgjh>().between("qgjhrq",begin,end));
+            qgList=qgService.list(new QueryWrapper<PgdQgjh>().between("qgjhrq",begin,end).orderByAsc("czbh,pl,qgjhrq"));
         }
         map.put("tzjhList",tzjhList);
         map.put("dhList",dhList);
@@ -121,4 +125,18 @@ public class DmYdjhServiceImpl extends ServiceImpl<DmYdjhMapper, DmYdjh> impleme
         return map;
     }
     //下发 派工单状态改为编制 生成零件信息
+    @Override
+    public void xf(List<DmYdjh> ydjhList){
+
+        //修改状态
+        List<String> idList=ydjhList.stream().map(DmYdjh::getId).collect(Collectors.toList());
+        this.update(new UpdateWrapper<DmYdjh>().set("zt","2")
+                .in( "id",idList)
+        );
+        //修改汇总状态 改为 编制
+        baseMapper.xfbc(idList);
+        //生成对应零件信息 bom->tzjhLj
+        baseMapper.tqlj(idList);
+    }
+
 }
diff --git a/src/main/resources/mappers/jhgk/DmQfxqMapper.xml b/src/main/resources/mappers/jhgk/DmQfxqMapper.xml
index e0e869e..3eef070 100644
--- a/src/main/resources/mappers/jhgk/DmQfxqMapper.xml
+++ b/src/main/resources/mappers/jhgk/DmQfxqMapper.xml
@@ -2,25 +2,12 @@
 <!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">
 
-    <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.dsic.gj_erp.bean.jhgk.DmQfxq">
-        <id column="id" property="id" />
-        <result column="DC_CH" property="dcCh" />
-        <result column="DC_PL" property="dcPl" />
-        <result column="DC_FD" property="dcFd" />
-        <result column="pscd" property="pscd" />
-        <result column="cjzg" property="cjzg" />
-        <result column="db" property="db" />
-        <result column="xc" property="xc" />
-        <result column="txc" property="txc" />
-        <result column="bz" property="bz" />
-        <result column="zt" property="zt" />
-    </resultMap>
+
     <select id="getYdjh" resultType="com.dsic.gj_erp.bean.jhgk.DmYdjh" parameterType="arraylist">
 
         SELECT
             dm_qfxq.DC_CH,dm_qfxq.DC_PL,
-            dm_qfxq.db,dm_qfxq.xc,dm_qfxq.txc,
+--             dm_qfxq.xzglxq,
             dm_sygd_mx.dc_ch1,
             dm_sygd_mx.LQLB,
             dm_sygd_mx.tzbh,
@@ -91,6 +78,6 @@
                 dm_qfxq
                 left JOIN dm_sygd_mx  on
                 dm_qfxq.dc_pl=dm_sygd_mx.dc_pl and dm_qfxq.DC_CH=dm_sygd_mx.dc_ch
-        ORDER BY dm_qfxq.db,dm_qfxq.DC_CH,dm_qfxq.DC_PL
+        ORDER BY dm_qfxq.xzglxq,dm_qfxq.DC_CH,dm_qfxq.DC_PL
     </select>
 </mapper>
diff --git a/src/main/resources/mappers/jhgk/DmYdjhMapper.xml b/src/main/resources/mappers/jhgk/DmYdjhMapper.xml
index e268efc..4a4eb52 100644
--- a/src/main/resources/mappers/jhgk/DmYdjhMapper.xml
+++ b/src/main/resources/mappers/jhgk/DmYdjhMapper.xml
@@ -144,15 +144,15 @@
                dm_sygd_mx.bcqpyld,
                dm_sygd_mx.ylbhgg,t.xqsj as jssj from
             ( SELECT DC_CH,DC_PL,DC_FD,tzbh,xqsj,rn FROM
-                ( SELECT dm_qfxq.db as xqsj,dm_bom.tzbh,
+                ( SELECT dm_qfxq.xzglxq as xqsj,dm_bom.tzbh,
                          dm_qfxq.DC_CH,dm_qfxq.DC_PL,dm_qfxq.DC_FD,
-                         row_number() over(partition by dm_qfxq.DC_CH,dm_qfxq.DC_PL,dm_bom.tzbh order by dm_qfxq.db ) rn
+                         row_number() over(partition by dm_qfxq.DC_CH,dm_qfxq.DC_PL,dm_bom.tzbh order by dm_qfxq.xzglxq ) rn
                   from dm_qfxq LEFT JOIN 	dm_bom
                                             on dm_bom.dcch = dm_qfxq.DC_CH
                                                 and dm_bom.pl = dm_qfxq.DC_PL
                                                 and dm_bom.fd = dm_qfxq.DC_FD
                   where
-                      substring(dm_qfxq.db, 0, 8) =#{nextMonth}) r where r.rn=1
+                      substring(dm_qfxq.xzglxq, 0, 8) =#{nextMonth}) r where r.rn=1
             )t LEFT JOIN dm_sygd_mx
                          on dm_sygd_mx.dc_ch=t.DC_CH and dm_sygd_mx.dc_pl=t.DC_PL and dm_sygd_mx.tzbh=t.TZBH
         order BY t.xqsj,t.DC_CH,t.DC_PL
@@ -181,26 +181,33 @@
             dm_czplp_new.jsq_lqb as lqbjsrq,
             dm_czplp_new.xfq_tlt as tltxfrq,
             dm_czplp_new.jsq_tlt as tltjsrq,
-            dm_ydjh.qgrq as qgxqrq,
-            dm_ydjh.jssj as qfxqrqxz,
-            dm_ydjh.gjjs_dz as qfxqrqdz,
+            MIN(dm_ydjh.qgrq) as qgxqrq,
+            MIN(dm_ydjh.jssj) as qfxqrqxz,
+            MIN(dm_ydjh.gjjs_dz) as qfxqrqdz,
             REPLACE(CAST(CAST(NEWID()AS BINARY(10)) + CAST(GETDATE() AS BINARY(6)) AS UNIQUEIDENTIFIER),'-','')
                 as id
-        from dm_ydjh LEFT JOIN
-             (SELECT dm_czplp_new.DC_CH,dm_czplp_new.DC_PL,dm_czplp_new.jsq_lqb,dm_czplp_new.jsq_tlt,dm_czplp_new.xfq_lqb,dm_czplp_new.xfq_tlt,dm_czplp_new.jsq_ptb,dm_czplp_new.xfq_ptb
-              from dm_czplp_new
-              GROUP BY dm_czplp_new.DC_CH,dm_czplp_new.DC_PL,dm_czplp_new.jsq_lqb,dm_czplp_new.jsq_tlt,dm_czplp_new.xfq_lqb,dm_czplp_new.xfq_tlt,dm_czplp_new.jsq_ptb,dm_czplp_new.xfq_ptb)
-                 dm_czplp_new
+        from
+            dm_ydjh
+            LEFT JOIN  dm_czplp_new
              on
                          dm_ydjh.dc_ch=dm_czplp_new.DC_CH and
                          dm_ydjh.dc_pl=dm_czplp_new.DC_pl
         WHERE
             dm_ydjh.qgrq BETWEEN #{begin} and #{end}
+        GROUP BY
+            dm_ydjh.dc_ch,
+            dm_ydjh.dc_pl,
+            dm_ydjh.dc_fd,
+            dm_czplp_new.xfq_lqb,
+            dm_czplp_new.jsq_lqb,
+            dm_czplp_new.xfq_tlt,
+            dm_czplp_new.jsq_tlt
     </select>
     <select id="getDhjh" resultType="com.dsic.gj_erp.bean.pgd.PgdDh">
         insert into pgd_dh
         (id,
          czbh,
+         pl,
          dhqdh,
          wpcz,
          slxqrq,
@@ -216,7 +223,7 @@
         SELECT
             REPLACE(CAST(CAST(NEWID()AS BINARY(10)) + CAST(GETDATE() AS BINARY(6)) AS UNIQUEIDENTIFIER),'-','') as id,
             dm_ydjh.dc_ch     as czbh,
-               dm_czplp_new.dhqd as dhqdh,
+            dm_ydjh.dhqd as dhqdh,
                dm_ydjh.jssj      as qfxqrqxz,
                dm_ydjh.gjjs_dz   as qfxqrqdz,
                dm_ydjh.slrq      as slxqrq,
@@ -230,13 +237,6 @@
                dhxx.RKXH         as wpcz
         from dm_ydjh
                  LEFT JOIN
-             (SELECT DC_CH, DC_PL, dhqd
-              from dm_czplp_new
-              GROUP BY DC_CH, DC_PL, dhqd) dm_czplp_new
-             on
-                         dm_ydjh.dc_ch = dm_czplp_new.DC_CH and
-                         dm_ydjh.dc_pl = dm_czplp_new.DC_pl
-                 LEFT JOIN
              (select MS_DDJBP.CGFLM,
                      MS_DDJBP.DDH,
                      MS_DDJBP.ddmc       as ddmc,
@@ -261,7 +261,7 @@
                 and im_crklsz.HDLX <![CDATA[ <> ]]> '99'
               GROUP BY MS_DDJBP.CGFLM, MS_DDJBP.DDH, MS_DDJBP.ddmc, MS_DDMXP.dc_ch, MS_DDMXP.WPHD, MS_DDMXP.WPCD,
                        MS_DDMXP.WPKD, MS_DDMXP.RKXH, MS_DDJBP.dhqdh) dhxx
-             on dhxx.dhqdh = dm_czplp_new.dhqd
+             on dhxx.dhqdh = dm_ydjh.dhqd
         where dm_ydjh.slrq BETWEEN #{begin} and #{end}
         ORDER BY dm_ydjh.dc_ch,
                  dm_ydjh.dc_pl
@@ -311,6 +311,7 @@
                     dm_ydjh.dc_pl=IM_CKWPKWP.DC_pl and
                     dm_ydjh.tzbh=IM_CKWPKWP.DC_th
         WHERE dm_ydjh.slrq  BETWEEN #{begin} and #{end}
+
     </select>
     <select id="getPwjh" resultType="com.dsic.gj_erp.bean.pgd.PgdPwjh">
 
@@ -397,4 +398,114 @@
         from dm_ydjh
          where dm_ydjh.qgrq BETWEEN #{begin} and #{end}
     </select>
+    <update id="xfbc"  parameterType="arraylist">
+        update pgd_tzjh
+        set zt='01'
+        from pgd_tzjh,dm_ydjh
+        where pgd_tzjh.czbh= dm_ydjh.dc_ch and pgd_tzjh.pl=dm_ydjh.dc_pl
+          and dm_ydjh.id in
+            <foreach collection="ids" index="index" item="item" open="(" separator="," close=");">
+                #{item}
+            </foreach>
+
+        update pgd_dh
+        set zt='01'
+        from pgd_dh,dm_ydjh
+        where pgd_dh.czbh= dm_ydjh.dc_ch and pgd_dh.dhqdh=dm_ydjh.dhqdh
+        and dm_ydjh.id in
+        <foreach collection="ids" index="index" item="item" open="(" separator="," close=");">
+            #{item}
+        </foreach>
+
+        update pgd_sljh
+        set zt='01'
+        from pgd_sljh,dm_ydjh
+        where pgd_sljh.czbh= dm_ydjh.dc_ch and pgd_sljh.pl=dm_ydjh.dc_pl and pgd_sljh.tlth=dm_ydjh.tzbh
+        and dm_ydjh.id in
+        <foreach collection="ids" index="index" item="item" open="(" separator="," close=");">
+            #{item}
+        </foreach>
+
+        update pgd_pwjh
+        set zt='01'
+        from pgd_pwjh,dm_ydjh
+        where pgd_pwjh.czbh= dm_ydjh.dc_ch and pgd_pwjh.pl=dm_ydjh.dc_pl and pgd_pwjh.tlth=dm_ydjh.tzbh
+        and dm_ydjh.id in
+        <foreach collection="ids" index="index" item="item" open="(" separator="," close=");">
+            #{item}
+        </foreach>
+
+        update pgd_qgjh
+        set zt='01'
+        from pgd_qgjh,dm_ydjh
+        where pgd_qgjh.czbh= dm_ydjh.dc_ch and pgd_qgjh.pl=dm_ydjh.dc_pl and pgd_qgjh.tlth=dm_ydjh.tzbh
+        and dm_ydjh.id in
+        <foreach collection="ids" index="index" item="item" open="(" separator="," close=");">
+            #{item}
+        </foreach>
+
+    </update>
+    <insert id="tqlj" parameterType="arraylist">
+        insert into dm_ydjh_lj (
+            id,
+            czbh,
+            pl,
+            fd,
+            kw,
+            zl,
+            tlth,
+            ptblx,
+            ljbh,
+            ljmc,
+            ljgg,
+            ljcz,
+            wpfl,
+            jldw,
+            sl,
+            qfxqrqxz,
+            qfxqrqdz,
+            gylx,
+            pklx,
+            pkcd,
+            pkbs,
+            dmbs,
+            dmcd,
+            qbs
+        )
+        SELECT
+            REPLACE(CAST(CAST(NEWID()AS BINARY(10)) + CAST(GETDATE() AS BINARY(6)) AS UNIQUEIDENTIFIER),'-','') as id,
+            dm_ydjh.dc_ch as 	czbh,
+            dm_ydjh.dc_pl as 	pl,
+            dm_bom.fd as 	fd,
+            dm_ydjh.kw as 	kw,
+            dm_bom.zl as 	zl,
+            dm_bom.tzbh as 	tlth,
+            '' as 	ptblx,
+            dm_bom.ljbh as 	ljbh,
+            '' as 	ljmc,
+            dm_bom.wpgg as 	ljgg,
+            dm_bom.wpcz as 	ljcz,
+            '' as 	wpfl,
+            '' as 	jldw,
+            dm_bom.ljsl as 	sl,
+            dm_qfxq.xzglxq as 	qfxqrqxz,
+            dm_qfxq.dzglxq as 	qfxqrqdz,
+            '' as 	gylx,
+            dm_bom.pklx as 	pklx,
+            dm_bom.pkcd as 	pkcd,
+            dm_bom.pkbs as 	pkbs,
+            dm_bom.dmbs as 	dmbs,
+            dm_bom.dmcd as 	dmcd,
+            dm_bom.qbs as 	qbs
+        from dm_ydjh,dm_bom
+                         LEFT JOIN dm_qfxq on dm_qfxq.DC_CH=dm_bom.dcch and dm_qfxq.DC_PL=dm_bom.pl and dm_qfxq.DC_FD=dm_bom.fd
+        WHERE
+            dm_ydjh.dc_ch= dm_bom.dcch
+          and dm_ydjh.dc_pl=dm_bom.pl
+          and dm_ydjh.tzbh=dm_bom.tzbh
+            and dm_ydjh.id in
+            <foreach collection="ids" index="index" item="item" open="(" separator="," close=");">
+                #{item}
+            </foreach>
+    </insert>
 </mapper>