chenlu
2024-10-14 6b8129db21a0bb972e2c8102dfbea64113a2385b
报表添加编号字段,设置编号为null等于空,调整报工修改校验问题
10个文件已修改
185 ■■■■ 已修改文件
north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/lang/zh.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgress.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/dto/pp/WorkInProgressDTO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/Report.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
@@ -379,10 +379,10 @@
             <span v-if="!(itemremark.S02==null&&itemremark.S03==null&&itemremark.S04==null&&itemremark.S05==null)">
               编号:{{itemremark.S01}}
             </span>&nbsp;&nbsp;
              <span v-if="itemremark.S02!=null">备注1:{{itemremark.S02}}</span>&nbsp;&nbsp;
              <span v-if="itemremark.S03!=null">备注2:{{itemremark.S03}}</span>&nbsp;&nbsp;
              <span v-if="itemremark.S04!=null">备注3:{{itemremark.S04}}</span>&nbsp;&nbsp;
              <span v-if="itemremark.S05!=null">备注4:{{itemremark.S05}}</span>
              <span v-if="itemremark.S02!=null&&itemremark.S02!=''">备注1:{{itemremark.S02}}</span>&nbsp;&nbsp;
              <span v-if="itemremark.S03!=null&&itemremark.S03!=''">备注2:{{itemremark.S03}}</span>&nbsp;&nbsp;
              <span v-if="itemremark.S04!=null&&itemremark.S04!=''">备注3:{{itemremark.S04}}</span>&nbsp;&nbsp;
              <span v-if="itemremark.S05!=null&&itemremark.S05!=''">备注4:{{itemremark.S05}}</span>
            </div>
          </div>
        </td>
north-glass-erp/northglass-erp/src/lang/zh.js
@@ -543,7 +543,7 @@
        qualityInsTime:'质检时间',
        completedArea:'完工面积',
        wornArea:'次破面积',
        pleaseGreaterThanOrEqual1:'请输入大于等于',
        pleaseGreaterThanOrEqual1:'请输入小于等于',
        pleaseGreaterThanOrEqual2:'的数字',
        lossCount1:'损耗数',
        lossCount2:'不能大于',
north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgress.vue
@@ -295,6 +295,8 @@
      slots: {filter: 'num1_filter'},
      visible: true
    },
    {field: 'glassNumber', width: 110,title: t('reportingWorks.glassNumber'),showOverflow:"ellipsis",filters: [{data: ''}],
      slots: {filter: 'num1_filter'}},
    {field: 'orderNumber', width: 100, title: t('order.OrderNum'),visible: true},
    {field: 'technologyNumber', width: 120, title: t('processCard.technologyNumber'),filters: [{data: ''}],
      slots: {filter: 'num1_filter'}, showOverflow: "ellipsis",visible: true},
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
@@ -358,7 +358,9 @@
          }else  if(row.quantity_card<row.completedQuantity){
            return new Error("完工数不能大于流程卡数量")
          }
          if(titleUploadData.value.reportingWorkId!=null  && row.completedQuantity<row.minQuantity){
          const completedNum =
              (row.completedQuantity === undefined || row.completedQuantity===null || row.completedQuantity==='') ? 0 : row.completedQuantity
          if(titleUploadData.value.reportingWorkId!=null  && completedNum>row.minQuantity){
            return new Error(`${t('reportingWorks.pleaseGreaterThanOrEqual1')}
            ${row.minQuantity}
            ${t('reportingWorks.pleaseGreaterThanOrEqual2')}`)
north-glass-erp/src/main/java/com/example/erp/dto/pp/WorkInProgressDTO.java
@@ -39,4 +39,6 @@
    private String productName;
    @ExcelProperty("弯钢半径")
    private String bendRadius;
    @ExcelProperty("编号")
    private String glassNumber;
}
north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkMapper.java
@@ -94,4 +94,6 @@
    List<Map<String,String>> getSelectProcessJiajiao();
    List<Map<String,String>> getSelectProcessDuoqu();
    List<Map<String, String>> SelectReworlDetailMpReview(String processIdStr, String technologyStr, String process, String previousProcess);
}
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -138,24 +138,48 @@
                //是第一道工序,查询流程卡数据
                map.put("Detail", reportingWorkMapper.SelectTechnologicalNumMp(processIdStr, technologyStr, process,reportType));
            } else {
                //不是第一道工序,查询报工数据
                List<Map<String,String>>  details = reportingWorkMapper.SelectReworlDetailMp(processIdStr, technologyStr, process,previousProcess);
                if(process.equals("中空")){
                    String orderId = processIdStr.substring(0,10);
                    details.forEach( detail -> {
                        Integer glassId = orderGlassDetailMapper.
                                getMinIdByGroup(orderId,
                                        String.valueOf(detail.get("order_number")),
                                        String.valueOf(detail.get("group")));
                        int listGlassId = Integer.parseInt(String.valueOf(detail.get("glassId")));
                        if(listGlassId  !=glassId){
                            detail.put("rowClass","latter");
                ReportingWork retrievedData = (ReportingWork) map.get("data");
                if (retrievedData!=null){
                    Integer reviewedState = retrievedData.getReviewedState();
                    //根据审核状态查询未审核数据
                    if (reviewedState==1){//已审核
                        //不是第一道工序,查询报工数据
                        List<Map<String,String>>  details = reportingWorkMapper.SelectReworlDetailMp(processIdStr, technologyStr, process,previousProcess);
                        if(process.equals("中空")){
                            String orderId = processIdStr.substring(0,10);
                            details.forEach( detail -> {
                                Integer glassId = orderGlassDetailMapper.
                                        getMinIdByGroup(orderId,
                                                String.valueOf(detail.get("order_number")),
                                                String.valueOf(detail.get("group")));
                                int listGlassId = Integer.parseInt(String.valueOf(detail.get("glassId")));
                                if(listGlassId  !=glassId){
                                    detail.put("rowClass","latter");
                                }
                            });
                        }
                    });
                        map.put("Detail",details );
                    }else {
                        //不是第一道工序,查询报工数据
                        List<Map<String,String>>  details = reportingWorkMapper.SelectReworlDetailMpReview(processIdStr, technologyStr, process,previousProcess);
                        if(process.equals("中空")){
                            String orderId = processIdStr.substring(0,10);
                            details.forEach( detail -> {
                                Integer glassId = orderGlassDetailMapper.
                                        getMinIdByGroup(orderId,
                                                String.valueOf(detail.get("order_number")),
                                                String.valueOf(detail.get("group")));
                                int listGlassId = Integer.parseInt(String.valueOf(detail.get("glassId")));
                                if(listGlassId  !=glassId){
                                    detail.put("rowClass","latter");
                                }
                            });
                        }
                        map.put("Detail",details );
                    }
                }
                map.put("Detail",details );
            }
            // 第一道工序(流程卡数+补片数量-完工数-次破数-返工未完成数-禁用数量)
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -2226,11 +2226,11 @@
    <select id="remakList">
        SELECT
            JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S01')) AS S01,
            JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S04')) AS S02,
            JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S05')) AS S03,
            JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S06')) AS S04,
            JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S07')) AS S05
            ifnull(JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S01')),'') AS S01,
            ifnull(JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S04')),'') AS S02,
            ifnull(JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S05')),'') AS S03,
            ifnull(JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S06')),'') AS S04,
            ifnull(JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S07')),'') AS S05
        FROM flow_card as fc left join sd.order_detail as od on  fc.order_id = od.order_id
        and fc.order_number = od.order_number
        WHERE fc.process_id=#{processId}
north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -151,6 +151,7 @@
        <result column="stockArea" property="stockArea"/>
        <result column="product_name" property="productName"/>
        <result column="bend_radius" property="bendRadius"/>
        <result column="glassNumber" property="glassNumber"/>
    </resultMap>
    <!--    流程卡进度-->
@@ -168,7 +169,7 @@
               ifnull(f.inventory, 0)                         as inventory,
               round(ifnull(f.inventory, 0) * a.area, 2)      as inventoryArea,
               ifnull(dd.quantity, 0)                         as shippedQuantity,
               JSON_UNQUOTE(JSON_EXTRACT(a.other_columns, '$.S01')) AS glassNumber
               ifnull(JSON_UNQUOTE(JSON_EXTRACT(a.other_columns, '$.S01')),'') AS glassNumber
        from flow_card as c
                 left join
             sd.order_detail as a
@@ -335,7 +336,8 @@
        (odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
        odpd.broken_num) / 1000000, 2) as stockArea,
        od.product_name,
        od.bend_radius
        od.bend_radius,
        ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),'') AS glassNumber
        from sd.order_detail AS od
        LEFT JOIN sd.order_glass_detail AS ogd
@@ -397,6 +399,9 @@
        </if>
        <if test="workInProgressDTO.technologyNumber != null and workInProgressDTO.technologyNumber != ''">
            and ogd.technology_number regexp #{workInProgressDTO.technologyNumber}
        </if>
        <if test="workInProgressDTO.glassNumber != null and workInProgressDTO.glassNumber != ''">
            and ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),'') regexp #{workInProgressDTO.glassNumber}
        </if>
        group by fc.process_id, fc.order_number, fc.technology_number
        order by fc.process_id, fc.order_number, fc.technology_number
@@ -539,7 +544,7 @@
        round( ogd.child_width * ogd.child_height * dd.breakage_quantity / 1000000, 2 ) as area,
        IFNULL(dd.responsible_personnel,'') as personnel,
        ogd.glass_child,
        JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS glassNumber
        ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),'') AS glassNumber
        FROM
        sd.ORDER AS o
        LEFT JOIN sd.order_glass_detail AS ogd ON ogd.order_id = o.order_id
@@ -748,7 +753,7 @@
               round(ifnull(f.inventory, 0) * a.area, 2)            as inventoryArea,
               ifnull(dd.quantity, 0)                               as shippedQuantity,
               ifnull(dd.area, 0)                                   as area,
               JSON_UNQUOTE(JSON_EXTRACT(a.other_columns, '$.S01')) AS glassNumber
               ifnull(JSON_UNQUOTE(JSON_EXTRACT(a.other_columns, '$.S01')),'') AS glassNumber
        from flow_card as c
                 left join
north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
@@ -914,4 +914,90 @@
                          WHERE basic_type='product' AND basic_category='process' AND basic_name='钢化'
                      ) AS combined_results;
    </select>
    <select id="SelectReworlDetailMpReview">
        SELECT
        fc.order_number,
        ogd.glass_child,
        ogd.technology_number,
        ogd.glass_address,
        fc.quantity AS quantity_card,
        ogd.child_width,
        ogd.child_height,
        if(od.shape=1,'普形',if(od.shape=2,'异形','')) as shape,
        if((odpds.reporting_work_num_count + ifnull(c.patchNumSum,0) -odpd.reporting_work_num_count -odpd.broken_num ) &lt; 0,
        0,
        odpds.reporting_work_num_count + ifnull(c.patchNumSum,0) -odpd.reporting_work_num_count -odpd.broken_num) as quantity,
        if((odpds.reporting_work_num_count + ifnull(c.patchNumSum,0) -odpd.reporting_work_num_count -odpd.broken_num) &lt; 0,
        0,
        odpds.reporting_work_num_count + ifnull(c.patchNumSum,0) -odpd.reporting_work_num_count -odpd.broken_num) as completedQuantity,
        odpd.reporting_work_num as completed,
        odpd.broken_num as onceBroken,
        ogd.`group`,
        if(fc.quantity -odpd.reporting_work_num = 0 ,true,false) as saveFlag, -- 判断是否已经完成,已经完成不序号和同序号数量相同才能提交
        od.other_columns,
        ogd.id as 'glassId'
        ,rws.reviewed_state
        FROM
        sd.order_detail AS od
        LEFT JOIN sd.order_glass_detail AS ogd
        ON od.order_id = ogd.order_id
        AND od.order_number = ogd.order_number
        <if test="process == '夹胶' or (process == '打胶和粘框' and previousProcess=='夹胶')">
            AND ogd.`group` = (select `group`
            from sd.order_glass_detail
            where order_id = ogd.order_id
            and order_number = ogd.order_number
            and POSITION(technology_number in #{technologyStr})
            limit 1)
        </if>
        LEFT JOIN flow_card AS fc
        ON fc.order_id = ogd.order_id
        and fc.production_id=ogd.production_id
        AND fc.order_number = ogd.order_number
        AND fc.technology_number = ogd.technology_number
        left join sd.order_process_detail as odpd
        ON  odpd.order_id = fc.order_id
        AND odpd.order_number = fc.order_number
        AND odpd.technology_number = fc.technology_number
        and odpd.process_id = fc.process_id
        left join sd.order_process_detail as odpds
        ON  odpds.id = odpd.id-1
        left join
        (SELECT
        sum(rw.rework_num) as 'patchNumSum',
        rw.process_id,rw.order_sort,rw.technology_number,
        rwk.this_process
        from
        rework as rw
        LEFT JOIN
        reporting_work as rwk
        on rw.reporting_work_id =rwk.reporting_work_id
        where rwk.this_process=#{process}
        and rw.review_status=0
        and rw.process_id = #{processIdStr}
        GROUP BY rw.process_id,rw.order_sort,rw.technology_number) as c
        on c.process_id = fc.process_id
        and c.order_sort = fc.order_number
        and c.technology_number = fc.technology_number
        left join (select reviewed_state as reviewed_state ,
        process_id,a.reporting_work_id,b.technology_number,b.order_number
        from reporting_work as a
        left join reporting_work_detail as b on a.reporting_work_id = b.reporting_work_id
        where this_process=#{previousProcess} and reviewed_state=0 and process_id= #{processIdStr}
        and  POSITION(b.technology_number in #{technologyStr})
        GROUP BY a.reporting_work_id,b.order_number,b.technology_number
        ) as rws
        on rws.process_id = fc.process_id and rws.order_number=fc.order_number and rws.technology_number=fc.technology_number
        WHERE
        fc.process_id = #{processIdStr}
        <if test="process != '中空' and process != '夹胶' and process != '包装' and process != '打胶和粘框' ">
            AND POSITION(fc.technology_number in #{technologyStr})
        </if>
        AND odpd.process = #{process}
        and rws.reviewed_state=0
        order by fc.order_number
    </select>
</mapper>