进度报表筛选功能修复,产量报表查询修改,修改补片流程卡打印查询问题
9个文件已修改
181 ■■■■ 已修改文件
north-glass-erp/northglass-erp/src/views/pp/processCard/AddProcessCard.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/ProductionScheduling.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/ProcessCardProgress.vue 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/ProductionSchedule.vue 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/Report.xml 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/AddProcessCard.vue
@@ -875,8 +875,7 @@
            <br>
            <el-button type="primary" @click="createProcessCard">{{ $t('processCard.establishProcessCards') }}
            </el-button>
            <br>
            <br>
            <br><br><br><br><br>
            <el-button type="primary" @click="createProcessCardNo">按序号创建
            </el-button>
          </el-main>
north-glass-erp/northglass-erp/src/views/pp/processCard/ProductionScheduling.vue
@@ -155,7 +155,6 @@
      total.dataTotal = res.data.total.total * 1
      total.pageTotal = res.data.total.pageTotal
      pageTotal.value = res.data.total
      console.log(res.data.data)
      xGrid.value.loadData(res.data.data)
      gridOptions.loading = false
      if (selectState==1){
north-glass-erp/northglass-erp/src/views/pp/report/ProcessCardProgress.vue
@@ -46,37 +46,7 @@
    processingNote: '',
  }
})
const columns = [
  // {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
  {field: 'product_name', width: 150,
    title: t('order.product'),
    filters: [{data: ''}],
    slots: {filter: 'num1_filter'},
    filterMethod: filterChanged},
  {field: 'glass_child',width: 130, title:  t('reportingWorks.glassChild') ,filters: [{data: ''}],
    slots: {filter: 'num1_filter'},
    filterMethod: filterChanged},
  {field: 'order_type', width: 120,title: t('order.orderType'),filters: [{data: ''}],
    slots: {filter: 'num1_filter'},
    filterMethod: filterChanged},
  {field: 'process_id',width: 150, title: t('processCard.processId'),filters: [{data: ''}],
    slots: {filter: 'num1_filter'},
    filterMethod: filterChanged},
  // {field: 'order_number', width: 90,title: t('order.OrderNum'),showOverflow:"ellipsis",filters: [{data: ''}],
  //   slots: {filter: 'num1_filter'},
  //   filterMethod: filterChanged},
  // {field: 'glassNumber', width: 110,title: t('reportingWorks.glassNumber'),showOverflow:"ellipsis",filters: [{data: ''}],
  //   slots: {filter: 'num1_filter'},
  //   filterMethod: filterChanged},
  {field: 'technology_number', width: 110,title: t('processCard.technologyNumber'),showOverflow:"ellipsis",filters: [{data: ''}],
    slots: {filter: 'num1_filter'},
    filterMethod: filterChanged},
  {field: 'quantity', width: 90,title: t('order.quantity')},
  {field: 'broken_num',width: 90, title: t('reportingWorks.quantityBroken')},
  // {field: 'shippedQuantity',width: 120, title: t('report.shippedQuantity')},
  {field: 'inventory',width: 120, title: t('report.inventoryNum')},
  {field: 'inventoryArea',width: 120, title: t('report.inventoryArea')},
]
//需要合并的列
let column = [1,3,8]
//点击查询
@@ -87,7 +57,7 @@
        ElMessage.warning(t('report.noDataFoundForThisOrder'))
        return
      }
      gridOptions.columns = JSON.parse(JSON.stringify(columns))
      //gridOptions.columns = JSON.parse(JSON.stringify(columns))
      res.data.title.forEach(item =>{
        let column = {slots: { default: 'quantitySum' }, width: 90,title: item.process}
        gridOptions.columns.push(column)
@@ -143,7 +113,7 @@
    useKey: true
  },
  filterConfig: {   //筛选配置项
    remote: true
    // remote: true
  },
  customConfig: {
    storage: true
@@ -153,7 +123,37 @@
    mode: 'row',
    showStatus: true
  },//表头参数
  columns:[],//表头按钮
   columns : [
    // {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
    {field: 'product_name', width: 150,
      title: t('order.product'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged},
    {field: 'glass_child',width: 130, title:  t('reportingWorks.glassChild') ,filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged},
    {field: 'order_type', width: 120,title: t('order.orderType'),filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged},
    {field: 'process_id',width: 150, title: t('processCard.processId'),filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged},
    {field: 'order_number', width: 100,title: t('order.OrderNum'),showOverflow:"ellipsis",filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged},
    {field: 'glassNumber', width: 110,title: t('reportingWorks.glassNumber'),showOverflow:"ellipsis",filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged},
    {field: 'technology_number', width: 110,title: t('processCard.technologyNumber'),showOverflow:"ellipsis",filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged},
    {field: 'quantity', width: 90,title: t('order.quantity')},
    {field: 'broken_num',width: 90, title: t('reportingWorks.quantityBroken')},
    // {field: 'shippedQuantity',width: 120, title: t('report.shippedQuantity')},
    {field: 'inventory',width: 120, title: t('report.inventoryNum')},
    {field: 'inventoryArea',width: 120, title: t('report.inventoryArea')},
  ],
  toolbarConfig: {
    // buttons: [{
north-glass-erp/northglass-erp/src/views/pp/report/ProductionSchedule.vue
@@ -33,16 +33,6 @@
  return count.toFixed(2)
}
//定义滚动条高度
let scrollTop = ref(null)
let scrollHeight = ref(null)
let clientHeight = ref(null)
const scrollEvnt = (row) => {
  // 内容高度
  scrollTop.value = row.$event.target.scrollTop
  scrollHeight.value = row.$event.target.scrollHeight
  clientHeight.value = row.$event.target.clientHeight
}
//筛选条件,有外键需要先定义明细里面的数据
let filterData = ref({
  order: {
@@ -55,24 +45,7 @@
    processingNote: '',
  }
})
const columns = [
  {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
  {field: 'order_number', width: 150, title: t('order.OrderNum'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  //{field: 'shape',width: 130, title: t('order.shape') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'glassNumber', width: 110,title: t('reportingWorks.glassNumber'),showOverflow:"ellipsis",filters: [{data: ''}],
    slots: {filter: 'num1_filter'},
    filterMethod: filterChanged},
  {field: 'product_name', width: 120,title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'child_width',width: 110, title: t('order.width')},
  {field: 'child_height', width: 90,title: t('order.height'),showOverflow:"ellipsis"},
  {field: 'quantity', width: 90,title: t('order.quantity')},
  {field: 'technology_number',width: 90, title: t('processCard.technologyNumber')},
  {field: 'glass_child',width: 120, title: t('reportingWorks.glassChild')},
  {field: 'inventoryNum',width: 120, title: t('report.inventoryNum')},
  {field: 'inventoryArea',width: 120, title: t('report.inventoryArea')},
  // {field: 'shippedQuantity',width: 120, title: t('report.shippedQuantity')},
  // {field: 'area',width: 120, title: t('report.area')},
]
//需要合并的列
let column = [1,2,3]
//点击查询
@@ -83,7 +56,7 @@
        ElMessage.warning(t('report.noDataFoundForThisOrder'))
        return
      }
      gridOptions.columns = JSON.parse(JSON.stringify(columns))
      //gridOptions.columns = JSON.parse(JSON.stringify(columns))
      res.data.title.forEach(item =>{
        let column = {slots: { default: 'quantitySum' }, width: 90,title: item.process}
        gridOptions.columns.push(column)
@@ -139,7 +112,7 @@
    useKey: true
  },
  filterConfig: {   //筛选配置项
    remote: true
    // remote: true
  },
  customConfig: {
    storage: true
@@ -149,14 +122,26 @@
    mode: 'row',
    showStatus: true
  },//表头参数
  columns:[],//表头按钮
   columns : [
    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
    {field: 'order_number', width: 150, title: t('order.OrderNum'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
    //{field: 'shape',width: 130, title: t('order.shape') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
    {field: 'glassNumber', width: 110,title: t('reportingWorks.glassNumber'),showOverflow:"ellipsis",filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged},
    {field: 'product_name', width: 120,title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
    {field: 'child_width',width: 110, title: t('order.width')},
    {field: 'child_height', width: 90,title: t('order.height'),showOverflow:"ellipsis"},
    {field: 'quantity', width: 90,title: t('order.quantity')},
    {field: 'technology_number',width: 90, title: t('processCard.technologyNumber')},
    {field: 'glass_child',width: 120, title: t('reportingWorks.glassChild')},
    {field: 'inventoryNum',width: 120, title: t('report.inventoryNum')},
    {field: 'inventoryArea',width: 120, title: t('report.inventoryArea')},
    // {field: 'shippedQuantity',width: 120, title: t('report.shippedQuantity')},
    // {field: 'area',width: 120, title: t('report.area')},
  ],
  toolbarConfig: {
    // buttons: [{
    //
    // }],
    // import: false,
    // export: true,
    print: true,
    zoom: true,
    custom: true
@@ -239,7 +224,9 @@
      <template #num1_filter="{ column, $panel }">
        <div>
          <div v-for="(option, index) in column.filters" :key="index">
            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
            <input v-model="option.data"
                   type="text"
                   @input="changeFilterEvent($event, option, $panel)"/>
          </div>
        </div>
      </template>
north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java
@@ -79,6 +79,10 @@
    @TableField(select = false,exist = false)
    private Integer merge;
    //补片原因
    @TableField(select = false,exist = false)
    private String patchReason;
    //外键订单表
    @TableField(select = false,exist= false)
    private Order order;
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
@@ -124,9 +124,9 @@
    List<Map<String, String>> getPrimaryListMergeRefund(String processId, String technologyNumber, Integer orderNumber);
    List<Map<String, Object>> getDetailListRefund(String processId, Integer technologyNumber, Integer orderNumber, String reportingWorkId);
    List<Map<String, Object>> getDetailListRefund(String processId, Integer technologyNumber, Integer orderNumber, String reportingWorkId, String patchReason);
    List<Map<String, String>> getPrimaryListRefund(String processId, String technologyNumber, Integer orderNumber, String reportingWorkId, String mergeTechnologyNumber);
    List<Map<String, String>> getPrimaryListRefund(String processId, String technologyNumber, Integer orderNumber, String reportingWorkId, String mergeTechnologyNumber, String patchReason);
    List<Map<String, Object>> getDetailListLikeRefund(String processId, String technologyNumber, Integer orderNumber, String reportingWorkId);
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -519,8 +519,8 @@
                //流程卡表头表尾数据
                //是否传入合并层数
                if (printMerge.equals("")||printMerge.equals("null") ){
                    itemmap.put("detail", flowCardMapper.getPrimaryListRefund(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(),flowCard.getReportingWorkId(),mergeTechnologyNumber));
                    List<Map<String, Object>> detailList = flowCardMapper.getDetailListRefund(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getOrderNumber(),flowCard.getReportingWorkId());
                    itemmap.put("detail", flowCardMapper.getPrimaryListRefund(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(),flowCard.getReportingWorkId(),mergeTechnologyNumber,flowCard.getPatchReason()));
                    List<Map<String, Object>> detailList = flowCardMapper.getDetailListRefund(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getOrderNumber(),flowCard.getReportingWorkId(),flowCard.getPatchReason());
                    itemmap.put("detailList", detailList);
                }
                else {
@@ -529,11 +529,11 @@
                    if (printLike.equals("")||printLike.equals("null") ){
                        itemmap.put("detail", flowCardMapper.getPrimaryListMergeRefund(flowCard.getProcessId(), printMerge,flowCard.getOrderNumber()));
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListRefund(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getOrderNumber(), flowCard.getReportingWorkId());
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListRefund(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getOrderNumber(), flowCard.getReportingWorkId(), flowCard.getPatchReason());
                        itemmap.put("detailList", detailList);
                    }
                    else {
                        itemmap.put("detail", flowCardMapper.getPrimaryListRefund(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(), flowCard.getReportingWorkId(), mergeTechnologyNumber));
                        itemmap.put("detail", flowCardMapper.getPrimaryListRefund(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(), flowCard.getReportingWorkId(), mergeTechnologyNumber, flowCard.getPatchReason()));
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListLikeRefund(flowCard.getProcessId(), printMerge,flowCard.getOrderNumber(),flowCard.getReportingWorkId());
                        itemmap.put("detailList", detailList);
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -1256,7 +1256,8 @@
          and fc.order_number = #{orderNumber}
          and position(fc.technology_number in #{technologyNumber})
          and pl.reporting_work_id = #{reportingWorkId}
        group by fc.process_id, fc.order_number, fc.technology_number
        and pl.patch_reason = #{patchReason}
        group by fc.process_id, fc.order_number, fc.technology_number,pl.id
        order by IF(sort != NULL and sort != '', sort, fc.order_number)
    </select>
@@ -1311,6 +1312,7 @@
          and fc.order_number = #{orderNumber}
          and fc.technology_number = #{technologyNumber}
          and rw.reporting_work_id = #{reportingWorkId}
          and dd.breakage_reason = #{patchReason}
        group by fc.process_id, fc.technology_number
    </select>
north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -720,6 +720,7 @@
                 left join mm.finished_goods_inventory as f
                           on c.order_id = f.order_id and f.order_number = c.order_number
                 left join (SELECT process_id,
                                   order_number,
                                   technology_number,
                                   sum(a.broken_num) as broken_num,
                                   concat('{',
@@ -727,16 +728,18 @@
                                          '}'
                                       )             as reportWorkQuantity,
                                   concat('{',
                                          GROUP_CONCAT(concat("\"", process, "\":\"", reporting_work_num, "\"")),
                                          GROUP_CONCAT(concat("\"", process, "\":\"", reporting_work_num_count, "\"")),
                                          '}'
                                       )             as reportWorkQuantityCount
                            FROM sd.order_process_detail as a
                            where a.order_id = #{orderId}
                            GROUP BY process_id, a.technology_number) as e
                            GROUP BY process_id, a.order_number,a.technology_number) as e
                           on e.process_id = c.process_id
                                and   e.order_number=c.order_number
                               and e.technology_number = c.technology_number
                 left join sd.delivery_detail as dd on dd.order_id = a.order_id and dd.order_number = a.order_number
        where a.order_id = #{orderId}
        group by c.order_number,c.technology_number
        ORDER BY a.order_number
    </select>
@@ -1222,19 +1225,18 @@
        MAX( ogd.child_width ) as width,
        MAX( ogd.child_height ) as height,
        od.edging_type,
        opd.reporting_work_num as completed_quantity,
        ROUND(MAX( ogd.child_width )*MAX( ogd.child_height )*opd.reporting_work_num/1000000,2) as area,
        rwd.completed_quantity as completed_quantity,
        ROUND(MAX( ogd.child_width )*MAX( ogd.child_height )*rwd.completed_quantity/1000000,2) as area,
        od.product_name,
        JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS code
        FROM
        sd.`order` as o left join sd.order_detail as od  on od.order_id=o.order_id
        left join sd.order_glass_detail as ogd on ogd.order_id=od.order_id and ogd.order_number=od.order_number
        left join flow_card as fc on fc.order_id=ogd.order_id and fc.order_number=ogd.order_number and fc.technology_number=ogd.technology_number
        left join reporting_work as rw on rw.order_id=od.order_id and rw.process_id=fc.process_id
        left join sd.order_process_detail as opd on opd.order_id = o.order_id  AND opd.process_id = rw.process_id
        AND opd.order_number = fc.order_number AND opd.technology_number = fc.technology_number and opd.process=rw.this_process
        reporting_work as rw left join reporting_work_detail as rwd on rwd.reporting_work_id=rw.reporting_work_id
        left join flow_card as fc on fc.order_id=rw.order_id and fc.process_id=rw.process_id  and fc.order_number=rwd.order_number and fc.technology_number=rwd.technology_number
        left join sd.order_glass_detail as ogd on ogd.order_id=fc.order_id and ogd.order_number=fc.order_number and ogd.technology_number=fc.technology_number
        left join sd.order_detail as od  on od.order_id=ogd.order_id and od.order_number=ogd.order_number
        left join sd.`order` as o on o.order_id=od.order_id
        left join sd.product_detail as pd    on pd.prod_id = od.product_id and pd.glass_sort = fc.technology_number and detail_type = "glass"
        where opd.reporting_work_num > 0 and rw.reviewed_state=1 and rw.reporting_work_time between #{selectTime1} and #{selectTime2}
        where o.create_order>0 and rw.reviewed_state>=0 and rw.reporting_work_time between #{selectTime1} and #{selectTime2}
        and position(#{selectProcesses} in rw.this_process)
        <if test="teamOutputDTO.thisProcess != null and teamOutputDTO.thisProcess != ''">
            and rw.this_process regexp #{teamOutputDTO.thisProcess}
@@ -1253,10 +1255,12 @@
        </if>
        GROUP BY
        rw.order_id,
        rw.reporting_work_id,
        rw.this_process,
        rw.teams_groups_name,
        rw.process_id,
        fc.order_number
        rwd.order_number
        ORDER BY
        rw.this_process,
        rw.process_id,