qinqi пре 1 година
родитељ
комит
cd5fc2d7da

+ 49 - 44
wwwroot/mes/pc/productionPlanReport/productionPlanReport.ashx

@@ -31,50 +31,55 @@ public class mouldproduceplan : IHttpHandler, IReadOnlySessionState
                 string GOODSID = context.Request["GOODSID"];
                 try
                 {
-                    string sqlStr = @" SELECT PP.PLANID ,
-                                          PP.GOODSID,
-                                          PP.LOGOID,
-                                          L.LOGONAME AS 商标名称,
-                                          PP.GOODSCODE AS 产品型号,
-                                          substr(PB.NAME,instr(PB.NAME,'H',1)) AS 产品变更型号,
-                                          G.GOODSNAME AS 产品名称,
-                                          G.GOODSSPECIFICATION AS 出水距,
-                                          PP.MATERIALCODE AS 物料编码, 
-                                          PP.QUANTITY AS 计划数量,
-                                          PP.BEGINTIME AS 开始时间,
-                                          PP.ENDTIME AS 截止时间,
-                                          fpp.fpcount as 包装数量,
-                                         lcc.lccount  as 切换商标数量
-                                   FROM  TP_PM_PRODUCTION_PLAN PP
-                                   LEFT JOIN TP_MST_LOGO L ON PP.LOGOID = L.LOGOID
-                                   LEFT JOIN TP_MST_GOODS G ON G.GOODSID = PP.GOODSID
-                                   LEFT JOIN TP_MST_USER U ON PP.CREATEUSERID = U.USERID
-                                   LEFT JOIN TP_MST_USER U1 ON PP.UPDATEUSERID = U1.USERID
-                                   LEFT JOIN TP_MST_PACKINGBOM PB ON PB.MATNR = PP.MATERIALCODE
-                                   LEFT JOIN (SELECT fp.goodsid,fp.logoid,PP.PLANID,count(distinct fp.barcode) fpcount FROM tp_pm_finishedproduct fp
-                                             LEFT JOIN TP_PM_PRODUCTION_PLAN PP on fp.goodsid = PP.GOODSID and fp.LOGOID = PP.LOGOID
-                                                     WHERE fp.createtime >= PP.BEGINTIME
-                                                     and fp.createtime < PP.ENDTIME 
-                                                     and fp.valueflag = 1
-                                                     and PP.VALUEFLAG = 1 
-                                                     group by fp.goodsid,fp.logoid,PP.PLANID
-                                    )fpp ON fpp.goodsid = PP.GOODSID AND fpp.LOGOID = PP.LOGOID AND fpp.PLANID = PP.PLANID
-                                   LEFT JOIN (SELECT gdd.goodsid,lc.newlogoid,PP.PLANID,count(distinct lc.barcode) lccount FROM tp_pm_logochangedrecord lc
-                                                      LEFT JOIN tp_pm_groutingdailydetail gdd ON gdd.barcode = lc.barcode
-                                                       LEFT JOIN TP_PM_PRODUCTION_PLAN PP on gdd.goodsid = PP.GOODSID and lc.newlogoid = PP.LOGOID
-                                                       LEFT JOIN tp_pc_procedure p ON lc.procedureid = p.procedureid
-                                                     WHERE lc.createtime >= PP.BEGINTIME
-                                                     and lc.createtime < PP.ENDTIME
-                                                     and gdd.goodsid = PP.GOODSID
-                                                     and gdd.logoid = lc.newlogoid
-                                                     and lc.newlogoid = PP.LOGOID
-                                                      AND lc.oldlogoid <> lc.newlogoid
-                                                      AND (p.modeltype = '-5' OR p.procedureid IN (106,107, 78))
-                                                      AND NOT EXISTS (SELECT s.barcode FROM tp_pm_scrapproduct s
-                                                            WHERE s.barcode = lc.barcode AND s.valueflag = 1 AND s.createtime >= lc.createtime)
-                                                     group by gdd.goodsid,lc.newlogoid,PP.PLANID
-                                    )lcc     ON lcc.goodsid = PP.GOODSID AND lcc.newlogoid = PP.LOGOID AND lcc.PLANID = PP.PLANID
-                                   WHERE PP.VALUEFLAG = 1  ";
+                    string sqlStr = @" SELECT pp.planid
+                                              ,pp.goodsid
+                                              ,pp.logoid
+                                              ,l.logoname AS 商标名称
+                                              ,pp.goodscode AS 产品型号
+                                              ,substr(pb.name, instr(pb.name, 'H', 1)) AS 产品变更型号
+                                              ,g.goodsname AS 产品名称
+                                              ,g.goodsspecification AS 出水距
+                                              ,pp.materialcode AS 物料编码
+                                              ,pp.quantity AS 计划数量
+                                              ,pp.begintime AS 开始时间
+                                              ,pp.endtime AS 截止时间
+                                              ,CASE WHEN pp.controlrange = 1 THEN '装配'
+                                                   WHEN pp.controlrange = 2 THEN '包装' END AS 控制范围
+                                              ,fpp.fpcount AS 包装数量
+                                              ,lcc.lccount1 AS 实际切换商标数量
+                                              ,lcc.lccount2 AS 范围内切换商标数量
+                                          FROM tp_pm_production_plan pp
+                                         LEFT JOIN TP_MST_LOGO L ON PP.LOGOID = L.LOGOID
+                                         LEFT JOIN TP_MST_GOODS G ON G.GOODSID = PP.GOODSID
+                                         LEFT JOIN TP_MST_USER U ON PP.CREATEUSERID = U.USERID
+                                         LEFT JOIN TP_MST_USER U1 ON PP.UPDATEUSERID = U1.USERID
+                                         LEFT JOIN TP_MST_PACKINGBOM PB ON PB.MATNR = PP.MATERIALCODE
+                                         LEFT JOIN (SELECT fp.goodsid,fp.logoid,PP1.PLANID,PP1.controlrange,count(distinct fp.barcode) fpcount FROM tp_pm_finishedproduct fp
+                                                   LEFT JOIN TP_PM_PRODUCTION_PLAN PP1 on fp.goodsid = PP1.GOODSID and fp.LOGOID = PP1.LOGOID
+                                                           WHERE fp.createtime >= PP1.BEGINTIME
+                                                           and fp.createtime < PP1.ENDTIME 
+                                                           and fp.valueflag = 1
+                                                           and PP1.VALUEFLAG = 1  
+                                                           group by fp.goodsid,fp.logoid,PP1.PLANID,PP1.controlrange
+                                          )fpp ON fpp.goodsid = PP.GOODSID AND fpp.LOGOID = PP.LOGOID AND fpp.PLANID = PP.PLANID and  fpp.controlrange = PP.controlrange
+                                         LEFT JOIN ( SELECT goodsid ,newlogoid,planid,controlrange,sum(lccount1) lccount1,sum(lccount2) lccount2 
+                                                     FROM (SELECT gdd.goodsid,lc.newlogoid,pp2.planid ,pp2.controlrange,COUNT(DISTINCT lc.barcode) lccount1
+                                               ,case when pp2.controlrange = 1  AND p.modeltype = '-5' AND p.procedureid NOT IN (126, 152) then COUNT(DISTINCT lc.barcode) 
+                                               when pp2.controlrange = 2 AND p.procedureid IN (106, 107, 78, 126, 152) then COUNT(DISTINCT lc.barcode)  end as lccount2
+                                           FROM tp_pm_logochangedrecord lc
+                                           LEFT JOIN tp_pm_groutingdailydetail gdd ON gdd.barcode = lc.barcode
+                                           LEFT JOIN tp_pm_production_plan pp2 ON gdd.goodsid = pp2.goodsid AND lc.newlogoid = pp2.logoid
+                                           LEFT JOIN tp_pc_procedure p ON lc.procedureid = p.procedureid
+                                          WHERE lc.createtime >= pp2.begintime AND lc.createtime < pp2.endtime
+                                            AND gdd.goodsid = pp2.goodsid AND gdd.logoid = lc.newlogoid
+                                            AND lc.newlogoid = pp2.logoid AND lc.oldlogoid <> lc.newlogoid
+                                            AND pp2.valueflag = 1 AND (p.modeltype = '-5' OR p.procedureid IN (106,107, 78))
+                                            AND NOT EXISTS (SELECT s.barcode FROM tp_pm_scrapproduct s
+                                                  WHERE s.barcode = lc.barcode AND s.valueflag = 1 AND s.createtime >= lc.createtime)
+                                          GROUP BY gdd.goodsid,lc.newlogoid,pp2.planid,pp2.controlrange ,p.modeltype,p.procedureid)
+                                                  GROUP BY goodsid,newlogoid,planid,controlrange
+                                          )lcc     ON lcc.goodsid = PP.GOODSID AND lcc.newlogoid = PP.LOGOID AND lcc.PLANID = PP.PLANID and  lcc.controlrange = PP.controlrange
+                                         WHERE PP.VALUEFLAG = 1 ";
                     if (!string.IsNullOrEmpty(GOODSID))
                     {
                         sqlStr += " AND PP.GOODSID in (" + GOODSID + ")";

+ 3 - 1
wwwroot/mes/pc/productionPlanReport/productionPlanReport_index.html

@@ -49,11 +49,13 @@
                             <th data-options="field:'出水距',title:'出水距',align:'center',sortable:false"></th>
                             <th data-options="field:'商标名称',title:'商标名称',align:'center',sortable:false"></th>
                             <th data-options="field:'物料编码',title:'物料编码',align:'center',sortable:false"></th>
+                            <th data-options="field:'控制范围',title:'控制范围',align:'center',sortable:false"></th>
                             <th data-options="field:'开始时间',title:'开始时间',align:'center',sortable:false"></th>
                             <th data-options="field:'截止时间',title:'截止时间',align:'center',sortable:false"></th>
                             <th data-options="field:'计划数量',title:'计划数量',align:'center',sortable:false"></th>
                             <th data-options="field:'包装数量',title:'包装数量',align:'center',sortable:false"></th>
-                            <th data-options="field:'切换商标数量',title:'切换商标数量',align:'center',sortable:false"></th>
+                            <th data-options="field:'实际切换商标数量',title:'实际切换商标数量',align:'center',sortable:false"></th>
+                            <th data-options="field:'范围内切换商标数量',title:'范围内切换商标数量',align:'center',sortable:false"></th>
                         </tr>
                     </thead>
                 </table>