diff --git a/pom.xml b/pom.xml
index 27ff558..78cc97b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -233,6 +233,11 @@
             <version>2.3.5</version>
         </dependency>
 
+       <!-- <dependency>
+            <groupId>com.github.jeffreyning</groupId>
+            <artifactId>mybatisplus-plus</artifactId>
+            <version>1.7.4-RELEASE</version>
+        </dependency>-->
     </dependencies>
 
     <build>
diff --git a/src/main/java/com/dsic/gj_erp/bean/jcsj/EmSbcnp.java b/src/main/java/com/dsic/gj_erp/bean/jcsj/EmSbcnp.java
index 30d2306..5836dcf 100644
--- a/src/main/java/com/dsic/gj_erp/bean/jcsj/EmSbcnp.java
+++ b/src/main/java/com/dsic/gj_erp/bean/jcsj/EmSbcnp.java
@@ -1,16 +1,12 @@
 package com.dsic.gj_erp.bean.jcsj;
 
 import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
-import javax.persistence.Entity;
-import javax.persistence.Id;
 import java.io.Serializable;
 
 /**
@@ -19,48 +15,110 @@ import java.io.Serializable;
  * </p>
  *
  * @author xn
- * @since 2023-09-15
+ * @since 2023-12-18
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
 @ApiModel(value="EmSbcnp对象", description="")
-@TableName("em_sbcnp")
-//@Entity
 public class EmSbcnp implements Serializable {
 
     private static final long serialVersionUID=1L;
 
-    @ApiModelProperty(value = "设备编号")
-   // @Id
-    @TableId(value = "id", type = IdType.ASSIGN_UUID)
-    private String id;
-    private String sbbh;
+    @ApiModelProperty(value = "跨位")
+    private String kw;
 
-    @ApiModelProperty(value = "设备名称")
-    @TableField("SBMC")
-    private String sbmc;
+    @ApiModelProperty(value = "工序")
+    private String gx;
 
-    @ApiModelProperty(value = "产能")
-    private Double sbcn;
+    @ApiModelProperty(value = "产能单位")
+    private String cndw;
 
-    @ApiModelProperty(value = "产能单位(张/米/...)")
-    private String dw;
+    @ApiModelProperty(value = "白班最小产能")
+    private Double zxcnBb;
 
-    @ApiModelProperty(value = "产能单位时间(天 或小时)")
-    private String dwsj;
+    @ApiModelProperty(value = "白班最大产能")
+    private Double zdcnBb;
 
+    @ApiModelProperty(value = "夜班最小产能")
+    private Double zxcnYb;
 
-    @ApiModelProperty(value = "所属部门")
-    @TableField("SZCS")
-    private String szcs;
+    @ApiModelProperty(value = "夜班最大产能")
+    private Double zdcnYb;
 
-    @ApiModelProperty(value = "跨位")
-    @TableField("KW")
-    private String kw;
+    @ApiModelProperty(value = "合计")
+    private Double cnhj;
 
-    @ApiModelProperty(value = "工序")
-    @TableField("GX")
-    private String gx;
+    @ApiModelProperty(value = "划线白班最小产能")
+    private Double zxcnBb1;
+
+    @ApiModelProperty(value = "划线白班最大产能")
+    private Double zdcnBb1;
+
+    @ApiModelProperty(value = "划线夜班最小产能")
+    private Double zxcnYb1;
+
+    @ApiModelProperty(value = "划线夜班最大产能")
+    private Double zdcnYb1;
+
+    @ApiModelProperty(value = "合计")
+    private Double cnhj1;
+
+    @ApiModelProperty(value = "坡口白班最小产能")
+    private Double zxcnBb2;
+
+    @ApiModelProperty(value = "坡口白班最大产能")
+    private Double zdcnBb2;
+
+    @ApiModelProperty(value = "坡口夜班最小产能")
+    private Double zxcnYb2;
+
+    @ApiModelProperty(value = "坡口夜班最大产能")
+    private Double zdcnYb2;
+
+    @ApiModelProperty(value = "坡口合计")
+    private Double cnhj2;
+
+    @ApiModelProperty(value = "坡口产能单位")
+    private String cndw2;
+
+    @ApiModelProperty(value = "打磨白班最小产能")
+    private Double zxcnBb3;
+
+    @ApiModelProperty(value = "打磨白班最大产能")
+    private Double zdcnBb3;
+
+    @ApiModelProperty(value = "打磨夜班最小产能")
+    private Double zxcnYb3;
+
+    @ApiModelProperty(value = "打磨夜班最大产能")
+    private Double zdcnYb3;
+
+    @ApiModelProperty(value = "打磨合计")
+    private Double cnhj3;
+
+    @ApiModelProperty(value = "打磨产能单位")
+    private String cndw3;
+
+    @ApiModelProperty(value = "曲白班最小产能")
+    private Double zxcnBb4;
+
+    @ApiModelProperty(value = "曲白班最大产能")
+    private Double zdcnBb4;
+
+    @ApiModelProperty(value = "曲夜班最小产能")
+    private Double zxcnYb4;
+
+    @ApiModelProperty(value = "曲夜班最大产能")
+    private Double zdcnYb4;
+
+    @ApiModelProperty(value = "曲合计")
+    private Double cnhj4;
+
+    @ApiModelProperty(value = "曲产能单位")
+    private String cndw4;
+
+    @TableId(value = "id", type = IdType.ASSIGN_UUID)
+    private String id;
 
 
 }
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/bean/pgd/DmPpxxb.java b/src/main/java/com/dsic/gj_erp/bean/pgd/DmPpxxb.java
index 01d9577..6e3c008 100644
--- a/src/main/java/com/dsic/gj_erp/bean/pgd/DmPpxxb.java
+++ b/src/main/java/com/dsic/gj_erp/bean/pgd/DmPpxxb.java
@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableField;
 import java.io.Serializable;
+
+import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -159,8 +161,8 @@ public class DmPpxxb implements Serializable {
     @TableField("YLZD3")
     private String ylzd3;
 
-    @TableId(value = "XWH", type = IdType.ASSIGN_UUID)
-    private Double xwh;
+    @MppMultiId(value = "XWH")
+    private String xwh;
 
     @TableField("YLZD9")
     private String ylzd9;
@@ -213,7 +215,8 @@ public class DmPpxxb implements Serializable {
     @TableField("LCM4")
     private String lcm4;
 
-    @TableField("FXWPH")
+
+    @MppMultiId("FXWPH")
     private String fxwph;
 
     @TableField("WPCC")
@@ -250,4 +253,8 @@ public class DmPpxxb implements Serializable {
     private Double yxqsrq;
 
 
+    private String dwh;
+
+    private String qy;
+
 }
diff --git a/src/main/java/com/dsic/gj_erp/controller/jcsj/EmSbcnpController.java b/src/main/java/com/dsic/gj_erp/controller/jcsj/EmSbcnpController.java
index 6122888..f859690 100644
--- a/src/main/java/com/dsic/gj_erp/controller/jcsj/EmSbcnpController.java
+++ b/src/main/java/com/dsic/gj_erp/controller/jcsj/EmSbcnpController.java
@@ -52,7 +52,7 @@ public class EmSbcnpController {
     @ApiOperation(value = "批量修改")
     @PostMapping(value = "/update")
     public ResultBean update(@RequestBody List<EmSbcnp> sbjbbs) {
-        emSbcnpService.update(sbjbbs);
+        emSbcnpService.updateBatchById(sbjbbs);
 
         return new ResultBean();
     }
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..fe95b6d 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,7 +49,7 @@ 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);
@@ -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 {
 
-        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);
+        ExcelGdxqListener objectListener = new ExcelGdxqListener();
+        ExcelGdxq1Listener objectListener1 = new ExcelGdxq1Listener();
+
+        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..a3a3ed8 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,23 +38,40 @@ 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")
+                .orderByAsc("jssj,dc_ch,dc_pl,zl,lqlb")
         );
         return new ResultBean(list);
     }
 
-    @RequestMapping("/tjydjh")
-    @AuthFunction
-    public ResultBean tjydjh(){
-        return new ResultBean(service.tjydjh());
-    }
 
     @RequestMapping("/hz")
     @AuthFunction
     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){
+            service.xf(list);
+        return new ResultBean();
+    }
+
 }
 
diff --git a/src/main/java/com/dsic/gj_erp/controller/jhgk/YppController.java b/src/main/java/com/dsic/gj_erp/controller/jhgk/YppController.java
new file mode 100644
index 0000000..9c29439
--- /dev/null
+++ b/src/main/java/com/dsic/gj_erp/controller/jhgk/YppController.java
@@ -0,0 +1,144 @@
+package com.dsic.gj_erp.controller.jhgk;
+
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.dsic.gj_erp.bean.ResultBean;
+import com.dsic.gj_erp.bean.jhgk.DmQfxq;
+import com.dsic.gj_erp.bean.jhgk.DmYdjhLj;
+import com.dsic.gj_erp.bean.pgd.DmPpxxb;
+import com.dsic.gj_erp.mapper.pgd.DmPpxxbMapper;
+import com.dsic.gj_erp.service.jhgk.DmQfxqService;
+import com.dsic.gj_erp.service.pgd.DmPpxxbService;
+import lombok.AllArgsConstructor;
+import org.modelmapper.ModelMapper;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("ypp")
+@AllArgsConstructor
+public class YppController {
+
+    private final DmQfxqService qfxqService;
+    private final DmPpxxbService ppxxbService;
+
+    private final DmPpxxbMapper ppxxbMapper;
+
+    @PostMapping("getQfxq")
+    public ResultBean<?> getQfxq(@RequestBody DmQfxq qfxq){
+        String existsSql="select dc_ch,dc_pl,dc_fd from dm_ppxxb ";
+        StringBuilder builder=new StringBuilder(existsSql);
+        builder.append("where dc_ch=").append("'").append(qfxq.getDcCh()).append("'");
+        builder.append(" and dm_qfxq.dc_ch=").append("dm_ppxxb.dc_ch");
+        builder.append(" and dm_qfxq.dc_pl=").append("dm_ppxxb.dc_pl");
+        builder.append(" and dm_qfxq.dc_fd=").append("dm_ppxxb.dc_fd");
+        if (StrUtil.isNotEmpty(qfxq.getDcPl())){
+            builder.append(" and dc_pl=").append("'").append(qfxq.getDcPl()).append("'");
+        }
+        if (StrUtil.isNotEmpty(qfxq.getDcFd())){
+            builder.append(" and dc_fd=").append("'").append(qfxq.getDcFd()).append("'");
+        }
+
+        builder.append(" group by dc_ch,dc_pl,dc_fd");
+        List<DmQfxq> list = qfxqService.list(Wrappers.<DmQfxq>lambdaQuery()
+                .eq(DmQfxq::getDcCh, qfxq.getDcCh())
+                .eq(StrUtil.isNotEmpty(qfxq.getDcPl()),DmQfxq::getDcPl, qfxq.getDcPl())
+                .eq(StrUtil.isNotEmpty(qfxq.getDcFd()),DmQfxq::getDcFd, qfxq.getDcFd())
+                .eq(StrUtil.isNotEmpty(qfxq.getZt()),DmQfxq::getZt,qfxq.getZt())
+                .notExists(builder.toString())
+        );
+        return new ResultBean<>(list);
+    }
+
+    @PostMapping("getLjxx")
+    public ResultBean<?> getLjxx(@RequestBody Map<String,Object> map){
+        List<DmPpxxb> dmYdjhLj = ppxxbMapper.getDmWlqd(map);
+        return new ResultBean<>(dmYdjhLj);
+    }
+
+    @PostMapping("getPpxx")
+    public ResultBean<?> getPpxx(@RequestBody Map<String,Object> map){
+        List<DmPpxxb> dmPpxxb = ppxxbMapper.getDmPpxxb(map);
+        return new ResultBean<>(dmPpxxb);
+    }
+
+    @PostMapping("getList")
+    public ResultBean<?> getList(@RequestBody DmPpxxb dmPpxxb){
+        List<DmPpxxb> list = ppxxbService.list(Wrappers.<DmPpxxb>lambdaQuery()
+                .eq(DmPpxxb::getDcCh, dmPpxxb.getDcCh())
+                .eq(StrUtil.isNotEmpty(dmPpxxb.getDwh()), DmPpxxb::getDwh, dmPpxxb.getDwh())
+                .eq(StrUtil.isNotEmpty(dmPpxxb.getQy()), DmPpxxb::getQy, dmPpxxb.getQy())
+                .eq(StrUtil.isNotEmpty(dmPpxxb.getDcPl()), DmPpxxb::getDcPl, dmPpxxb.getDcPl())
+                .eq(StrUtil.isNotEmpty(dmPpxxb.getDcFd()), DmPpxxb::getDcFd, dmPpxxb.getDcFd())
+        );
+
+        return new ResultBean<>(list);
+    }
+
+    @PostMapping("checkBfwz")
+    public ResultBean<?> checkBfwz(@RequestBody List<DmPpxxb> list){
+
+        return new ResultBean<>();
+    }
+
+    @PostMapping("qtjc")
+    public ResultBean<?> qtjc(@RequestBody List<DmQfxq> list){
+        list.forEach(item->{
+            ModelMapper modelMapper = new ModelMapper();
+            Map map = modelMapper.map(item, Map.class);
+            List<DmPpxxb> dmYdjhLj = ppxxbMapper.getDmWlqd(map);
+            List<DmPpxxb> dmPpxxb = ppxxbMapper.getDmPpxxb(map);
+
+            if (dmPpxxb.size()==0){
+                throw new RuntimeException(item.getDcFd()+"分段未预配盘");
+            }
+
+            dmYdjhLj.forEach(_item->{
+                //todo 校验完工
+            });
+
+            dmPpxxb.forEach(_item->item.setZt("01"));
+            ppxxbService.updateBatchByMultiId(dmPpxxb);
+        });
+        return new ResultBean<>();
+    }
+
+    @PostMapping("zx")
+    @Transactional(rollbackFor = Exception.class)
+    public ResultBean<?> zx(@RequestBody List<DmQfxq> list){
+        List<DmPpxxb> printData=new ArrayList<>();
+        list.forEach(item->{
+            ModelMapper modelMapper = new ModelMapper();
+            Map map = modelMapper.map(item, Map.class);
+            List<DmPpxxb> dmPpxxb = ppxxbMapper.getDmPpxxb(map);
+            dmPpxxb.forEach(_item->{
+                item.setZt("04");
+            });
+            ppxxbService.updateBatchById(dmPpxxb);
+            printData.addAll(dmPpxxb);
+        });
+        return new ResultBean<>(printData);
+    }
+
+    @PostMapping("qr")
+    @Transactional(rollbackFor = Exception.class)
+    public ResultBean<?> qr(@RequestBody List<DmQfxq> list){
+        list.forEach(item->{
+            ModelMapper modelMapper = new ModelMapper();
+            Map map = modelMapper.map(item, Map.class);
+            List<DmPpxxb> dmPpxxb = ppxxbMapper.getDmPpxxb(map);
+            dmPpxxb.forEach(_item->{
+                item.setZt("05");
+            });
+            ppxxbService.updateBatchById(dmPpxxb);
+        });
+        return new ResultBean<>();
+    }
+}
diff --git a/src/main/java/com/dsic/gj_erp/controller/pgd/DmPpxxbController.java b/src/main/java/com/dsic/gj_erp/controller/pgd/DmPpxxbController.java
index 4dca901..0af7fc9 100644
--- a/src/main/java/com/dsic/gj_erp/controller/pgd/DmPpxxbController.java
+++ b/src/main/java/com/dsic/gj_erp/controller/pgd/DmPpxxbController.java
@@ -1,10 +1,22 @@
 package com.dsic.gj_erp.controller.pgd;
 
 
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.dsic.gj_erp.bean.ResultBean;
+import com.dsic.gj_erp.bean.pgd.DmPpxxb;
+import com.dsic.gj_erp.service.jhgk.DmQfxqService;
+import com.dsic.gj_erp.service.pgd.DmPpxxbService;
+import lombok.AllArgsConstructor;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 /**
  * <p>
  *  前端控制器
@@ -15,7 +27,30 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @RestController
 @RequestMapping("/dmPpxxb")
+@AllArgsConstructor
 public class DmPpxxbController {
 
+    private final DmQfxqService qfxqService;
+    private final DmPpxxbService ppxxbService;
+
+    @PostMapping("getDmppxxbList")
+    public ResultBean<?> getDmppxxbList(@RequestBody DmPpxxb dmPpxxb){
+        List<DmPpxxb> list = ppxxbService.list(Wrappers.<DmPpxxb>lambdaQuery()
+                .eq(DmPpxxb::getDcCh, dmPpxxb.getDcCh())
+                .eq(StrUtil.isNotEmpty(dmPpxxb.getDwh()),DmPpxxb::getDwh, dmPpxxb.getDwh())
+                .eq(StrUtil.isNotEmpty(dmPpxxb.getQy()),DmPpxxb::getQy, dmPpxxb.getQy())
+        );
+        return new ResultBean<>(list);
+    }
+
+    @PostMapping("saveDmppxxb")
+    @Transactional(rollbackFor = Exception.class)
+    public ResultBean<?> save(@RequestBody List<DmPpxxb> list){
+        list.forEach(item->item.setZt("00"));
+        ppxxbService.saveOrUpdateBatchByMultiId(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/mapper/pgd/DmPpxxbMapper.java b/src/main/java/com/dsic/gj_erp/mapper/pgd/DmPpxxbMapper.java
index 4fb22d3..4c4bfe4 100644
--- a/src/main/java/com/dsic/gj_erp/mapper/pgd/DmPpxxbMapper.java
+++ b/src/main/java/com/dsic/gj_erp/mapper/pgd/DmPpxxbMapper.java
@@ -1,7 +1,12 @@
 package com.dsic.gj_erp.mapper.pgd;
 
+import com.dsic.gj_erp.bean.jhgk.DmYdjhLj;
 import com.dsic.gj_erp.bean.pgd.DmPpxxb;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -11,6 +16,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @author xn
  * @since 2023-12-14
  */
-public interface DmPpxxbMapper extends BaseMapper<DmPpxxb> {
+public interface DmPpxxbMapper extends MppBaseMapper<DmPpxxb> {
+
+    List<DmPpxxb> getDmWlqd(Map<String,Object> map);
 
+    List<DmPpxxb> getDmPpxxb(Map<String,Object> map);
 }
diff --git a/src/main/java/com/dsic/gj_erp/service/jcsj/impl/EmSbcnpServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/jcsj/impl/EmSbcnpServiceImpl.java
index e3afed1..2d3cef0 100644
--- a/src/main/java/com/dsic/gj_erp/service/jcsj/impl/EmSbcnpServiceImpl.java
+++ b/src/main/java/com/dsic/gj_erp/service/jcsj/impl/EmSbcnpServiceImpl.java
@@ -33,23 +33,17 @@ public class EmSbcnpServiceImpl extends ServiceImpl<EmSbcnpMapper, EmSbcnp> impl
     @Override
     public List<EmSbcnp> getList(JSONObject json) {
         QueryWrapper<EmSbcnp> queryWrapper=new QueryWrapper<>();
-        if(StringUtils.isNotEmpty(json.getString("sbmc"))){
-            queryWrapper.eq("SBMC",json.getString("sbmc"));
-        }
         if(StringUtils.isNotEmpty(json.getString("kw"))){
             queryWrapper.eq("KW",json.getString("kw"));
         }
-//        if(StringUtils.isNotEmpty(json.getString("sbmc"))){
-//            queryWrapper.eq("SBMC",json.getString("sbmc"));
-//        }
         List<EmSbcnp> emSbjbbs=emSbcnpMapper.selectList(queryWrapper.orderByAsc("kw,gx"));
         return emSbjbbs;
     }
 
     @Override
     public void save(List<EmSbcnp> emSbcnps) {
-        List<EmSbcnp> saveList= emSbcnps.stream().filter(emSbcnp -> StringUtils.isNotEmpty(emSbcnp.getSbbh())).collect(Collectors.toList());
-        saveBatch(saveList);
+//        List<EmSbcnp> saveList= emSbcnps.stream().filter(emSbcnp -> StringUtils.isNotEmpty(emSbcnp.getSbbh())).collect(Collectors.toList());
+        saveBatch(emSbcnps);
     }
 
     @Override
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/DmSygdMxServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdMxServiceImpl.java
index 2714987..f10e71d 100644
--- a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdMxServiceImpl.java
+++ b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdMxServiceImpl.java
@@ -149,7 +149,6 @@ public class DmSygdMxServiceImpl extends ServiceImpl<DmSygdMxMapper, DmSygdMx> i
                                                      .orderByAsc("gl"));
         //3.预排产
         //TODO 假设:产能测算266.9;又套料图需当天完成
-
         for (int i = 0; i < gcrlList.size(); i++) {
             for (int j = 0; j < 266; j++) {
                 int index = 266 * i + j;
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..0807e46 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,8 +57,8 @@ 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"));
-         if (i < 1) {
+                .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);
@@ -120,5 +124,20 @@ public class DmYdjhServiceImpl extends ServiceImpl<DmYdjhMapper, DmYdjh> impleme
         map.put("qgList",qgList);
         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/java/com/dsic/gj_erp/service/pgd/DmPpxxbService.java b/src/main/java/com/dsic/gj_erp/service/pgd/DmPpxxbService.java
index 466d1bf..c4c712b 100644
--- a/src/main/java/com/dsic/gj_erp/service/pgd/DmPpxxbService.java
+++ b/src/main/java/com/dsic/gj_erp/service/pgd/DmPpxxbService.java
@@ -2,6 +2,7 @@ package com.dsic.gj_erp.service.pgd;
 
 import com.dsic.gj_erp.bean.pgd.DmPpxxb;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.jeffreyning.mybatisplus.service.IMppService;
 
 /**
  * <p>
@@ -11,6 +12,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @author xn
  * @since 2023-12-14
  */
-public interface DmPpxxbService extends IService<DmPpxxb> {
+public interface DmPpxxbService extends IMppService<DmPpxxb> {
 
 }
diff --git a/src/main/java/com/dsic/gj_erp/service/pgd/impl/DmPpxxbServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/pgd/impl/DmPpxxbServiceImpl.java
index bcf1dc6..86f2099 100644
--- a/src/main/java/com/dsic/gj_erp/service/pgd/impl/DmPpxxbServiceImpl.java
+++ b/src/main/java/com/dsic/gj_erp/service/pgd/impl/DmPpxxbServiceImpl.java
@@ -3,7 +3,7 @@ package com.dsic.gj_erp.service.pgd.impl;
 import com.dsic.gj_erp.bean.pgd.DmPpxxb;
 import com.dsic.gj_erp.mapper.pgd.DmPpxxbMapper;
 import com.dsic.gj_erp.service.pgd.DmPpxxbService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
 import org.springframework.stereotype.Service;
 
 /**
@@ -15,6 +15,6 @@ import org.springframework.stereotype.Service;
  * @since 2023-12-14
  */
 @Service
-public class DmPpxxbServiceImpl extends ServiceImpl<DmPpxxbMapper, DmPpxxb> implements DmPpxxbService {
+public class DmPpxxbServiceImpl extends MppServiceImpl<DmPpxxbMapper, DmPpxxb> implements DmPpxxbService {
 
 }
diff --git a/src/main/resources/mappers/jhgk/DmQfxqMapper.xml b/src/main/resources/mappers/jhgk/DmQfxqMapper.xml
index e0e869e..2452665 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,
@@ -80,7 +67,7 @@
         from
             (SELECT * from (
                                SELECT
-                                   *,row_number() over(partition by DC_CH,DC_PL order by db ) rn
+                                   *,row_number() over(partition by DC_CH,DC_PL order by xzglxq ) rn
                                from dm_qfxq where id in
                                 <foreach collection="ids" index="index" item="item" open="(" separator="," close=")">
                                     #{item}
@@ -90,7 +77,8 @@
              WHERE dm_qfxq.rn=1)
                 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
+                        dm_qfxq.dc_pl=dm_sygd_mx.dc_pl
+                    and dm_qfxq.DC_CH=dm_sygd_mx.dc_ch
+        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>
diff --git a/src/main/java/com/dsic/gj_erp/mapper/pgd/DmPpxxbMapper.xml b/src/main/resources/mappers/pgd/DmPpxxbMapper.xml
similarity index 85%
rename from src/main/java/com/dsic/gj_erp/mapper/pgd/DmPpxxbMapper.xml
rename to src/main/resources/mappers/pgd/DmPpxxbMapper.xml
index dd5ebe8..9d3a5bd 100644
--- a/src/main/java/com/dsic/gj_erp/mapper/pgd/DmPpxxbMapper.xml
+++ b/src/main/resources/mappers/pgd/DmPpxxbMapper.xml
@@ -76,4 +76,21 @@
         ZXWPH, SL, JLDW, WPJB, WPFLM, ZDRY, XGRQ, DC_CH, DC_CM, DC_PL, DC_FD, DC_TH, DC_ZL, DC_TZ, DC_YJ, DC_YS, DC_PB, DC_LPH, DC_TPBH, DC_TPMC, JLDW1, WPMC, WPGG, WPXH, ABCLX, GZLX, YLZD1, LCM1, zt, drcs, tpxx, dzxqq, xzxqq, gylx, YLZD3, XWH, YLZD9, GYSBH, YHFLH, YLZD6, TQQXZL, LCM3, YLZD5, BZ, DEZL, LCM2, YXZZRQ, YLZD2, LCM5, YLZD8, XNJBS, DRRQ, LCM4, FXWPH, WPCC, FWPJB, JZL, XLCC, YLZD7, SJBCSL, YLZD4, GYLB, DRRY, WPH, YXQSRQ
     </sql>
 
+    <select id="getDmWlqd" resultType="com.dsic.gj_erp.bean.pgd.DmPpxxb">
+        select
+            wlqd.*
+        from
+            dm_qfxq xq join dm_ydjh_lj lj on xq.dc_ch =lj.czbh and xq.dc_pl =lj.pl and xq.DC_FD =lj.fd
+            join dm_wlqd wlqd on lj.czbh=wlqd.dc_ch and lj.ljbh=wlqd.wph
+        WHERE  xq.dc_ch =#{dcCh} and xq.dc_pl =#{dcPl} and xq.DC_FD =#{dcFd}
+    </select>
+
+    <select id="getDmPpxxb" resultType="com.dsic.gj_erp.bean.pgd.DmPpxxb">
+        select
+            lj.*
+        from
+            dm_qfxq xq join dm_ppxxb lj on xq.dc_ch =lj.czbh and xq.dc_pl =lj.pl and xq.DC_FD =lj.fd
+        WHERE  xq.dc_ch =#{dcCh} and xq.dc_pl =#{dcPl} and xq.DC_FD =#{dcFd}
+    </select>
+
 </mapper>