流程卡修改样式,成品便签添加根据编号一键修改,修改流程卡排序方式,添加配置是否查询样品订单
18个文件已修改
299 ■■■■ 已修改文件
north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabel.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/SelectSortDetailProcessCard.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/TeamOutput.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/Report.xml 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabel.vue
@@ -104,6 +104,7 @@
    // 获取前缀和 orderId
    const prefix = obj.processId.substring(0, 11);
    const orderId = obj.orderId;
    const glassNumber=obj.glassNumber
    // 根据 propertyName 更新属性
    if (propertyName === 'productAbbreviation' && prefix === obj.processId.substring(0, 11)) {
@@ -113,6 +114,10 @@
    if (propertyName === 'project' && orderId === obj.orderId) {
      obj.project = result;
    }
    if (propertyName === 'productName' && glassNumber === obj.glassNumber){
      obj.productName = result;
    }
  });
}
north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
@@ -189,16 +189,20 @@
    <table v-for="(item,id) in produceList" id="contentTable" :key="id">
      <thead>
      <tr v-for="(itemFlow,index) in item.detail" :key="index">
        <td  v-if="like='1'"  colspan="26">
        <td  v-if="like='1'"  colspan="29">
          <div style="float: left;"><input style="border: none;font-size: 28px;width: 70px;margin: 5px  "/></div>
          <div id="bj" style="float: right;font-size: 28px">{{ id + 1 }}</div>
          <div>{{ company.companyName }}</div>
          <div>生产流程卡</div>
          <div v-if="itemFlow.technologyNumberMerge!=''" style="text-align: right;font-weight: bolder">流程卡号: {{
          <div v-if="itemFlow.technologyNumberMerge!=''" style="text-align: right;font-weight: bolder">
            {{itemFlow.otherRemarks}}&nbsp;&nbsp;
            流程卡号: {{
              itemFlow.process_id
            }}/{{ itemFlow.technologyNumberMerge }} 共 {{ flowCardCount }} 架
          </div>
          <div v-else style="text-align: right;font-weight: bolder">流程卡号: {{
          <div v-else style="text-align: right;font-weight: bolder">
            {{itemFlow.otherRemarks}}&nbsp;&nbsp;
            流程卡号: {{
              itemFlow.process_id
            }}/{{ itemFlow.technologyNumber }} 共 {{ flowCardCount }} 架
          </div>
@@ -224,8 +228,8 @@
        <td class="tdNowrap">项目名称:</td>
        <td colspan="2">{{ items.project }}</td>
        <td class="tdNowrap">工艺流程:</td>
        <td colspan="19" v-if="like='1'" style="width: 500px">{{ items.process }}</td>
        <td colspan="17" v-else style="width: 500px">{{ items.process }}</td>
        <td colspan="22" v-if="like='1'" style="width: 500px">{{ items.process }}</td>
        <td colspan="20" v-else style="width: 500px">{{ items.process }}</td>
      </tr>
      <tr v-for="(itemTr,index) in item.detail" :key="index">
        <td class="tdNowrap">磨边类型:</td>
@@ -233,15 +237,15 @@
        <td class="tdNowrap">单片名称:</td>
        <td colspan="2">{{ itemTr.glass_child }}</td>
        <td class="tdNowrap">产品名称:</td>
        <td v-if="like=='1'" colspan="19">{{ itemTr.product_name }}</td>
        <td v-else colspan="17">{{ itemTr.product_name }}</td>
        <td v-if="like=='1'" colspan="22">{{ itemTr.product_name }}</td>
        <td v-else colspan="20">{{ itemTr.product_name }}</td>
      </tr>
      <tr>
        <td rowspan='2'>序号</td>
        <td rowspan='2'>编号</td>
        <td v-if="like!=null" rowspan="2">小片顺序</td>
        <td v-else style="display: none;" rowspan="2">小片顺序</td>
        <td rowspan='2'>宽*高</td>
        <td rowspan='2' style="width: 90px">宽*高</td>
        <td rowspan='2'>数量</td>
        <td rowspan='2'>面积</td>
        <td rowspan='2'>周长</td>
@@ -251,6 +255,10 @@
      </tr>
      <tr>
        <td>{{ company.printLabel.printFlowCard.patch }}</td>
        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
        <td>{{ company.printLabel.printFlowCard.patch }}</td>
        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
        <td>{{ company.printLabel.printFlowCard.patch }}</td>
        <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
        <td>{{ company.printLabel.printFlowCard.patch }}</td>
@@ -300,11 +308,14 @@
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
      </tr>
      </tbody>
      <tfoot>
      <tr style="height: 14px">
        <td v-for="(itemsum,index) in item.detail" :key="index" colspan="26">
        <td v-for="(itemsum,index) in item.detail" :key="index" colspan="29">
          数量:
          <label>{{ itemsum.quantity }}</label>
          面积:
@@ -314,17 +325,12 @@
        </td>
      </tr>
      <tr v-for="(itemtextarea,index) in item.detail" :key="index">
        <td v-if="like='1'" colspan="4" rowspan="6" style="width: 480px;height: 100px ">
          <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 11px">{{itemtextarea.otherRemarks}}</textarea>
          </div>
        </td>
        <td v-else colspan="6" rowspan="2" style="width: 480px;height: 100px ">
          <!--          <div style="width: 100%;height: 100%"><textarea style="height: 99%;width: 99%;font-size: 11px">{{ itemtextarea.processing_note }}</textarea>-->
          <!--          </div>-->
           <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 11px">{{itemtextarea.otherRemarks}}</textarea>
           </div>
        </td>
        <td>完工签名</td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
@@ -348,9 +354,17 @@
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
      </tr>
      <tr>
        <td>质检签名</td>
        <td colspan="2"></td>
        <td colspan="2">生产签名</td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
        <td colspan="2"></td>
@@ -364,10 +378,10 @@
      </tr>
      <tr>
        <td>原片箱号</td>
        <td colspan="20"></td>
        <td colspan="28"></td>
      </tr>
      <tr v-for="(qrCodeItem,index) in item.detail" :key="index">
        <td colspan="23">
        <td colspan="29">
          <span style="display: flex;">
            <span v-for="(qrCodeItems,index) in qrCodeItem.qrcodeList" :key="index" style="display: flex;width: 35%">
            <div class='qrCode' style="width: 80px;height: 80px;">
@@ -380,6 +394,18 @@
          </span>
        </td>
      </tr>
      <tr v-for="(itemtextareas,index) in item.detail" :key="index">
        <td v-if="like='1'" colspan="29" rowspan="6" style="width: 480px;height: 150px ">
          <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 12px">{{itemtextareas.processing_note}}</textarea>
          </div>
        </td>
        <td v-else colspan="29" rowspan="2" style="width: 480px;height: 150px ">
          <!--          <div style="width: 100%;height: 100%"><textarea style="height: 99%;width: 99%;font-size: 11px">{{ itemtextarea.processing_note }}</textarea>-->
          <!--          </div>-->
          <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 12px">{{itemtextareas.processing_note}}</textarea>
          </div>
        </td>
      </tr>
      </tfoot>
    </table>
@@ -428,7 +454,6 @@
}
.tdNowrap {
  white-space: nowrap;
}
@@ -439,16 +464,19 @@
input{
  font-weight: bolder;
  border: none;
}
@page {
  size: auto;  /* auto is the initial value */
  margin: 2mm 2mm 0mm 1mm  /* this affects the margin in the printer settings */
}
@media print {
  @page {
    size: auto;  /* auto is the initial value */
    margin: 4mm 5mm 0mm 5mm  /* this affects the margin in the printer settings */
  }
  table {
    page-break-before: always;
    page-break-inside: auto;
north-glass-erp/northglass-erp/src/components/pp/SelectSortDetailProcessCard.vue
@@ -25,7 +25,8 @@
let router = useRouter()
let props = defineProps({
  processId:null,
  technologyNumber:null
  technologyNumber:null,
  process:null
})
domZindex.setCurrent(3000)
@@ -66,7 +67,7 @@
})
//第一次加载数据
request.post(`/processCard/printFlowCardDetails/${props.processId}/${props.technologyNumber}`,filterData.value).then((res) => {
request.post(`/processCard/printFlowCardDetails/${props.processId}/${props.technologyNumber}/${props.process}`,filterData.value).then((res) => {
  if (res.code == 200) {
    produceDetailList.value = (res.data.data)
    xGridDetail.value.reloadData(produceDetailList.value)
@@ -249,6 +250,13 @@
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {
      field: 'process',
      title: t('craft.process'),
      filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
  ],
  //表单验证
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
@@ -40,7 +40,8 @@
//排序
let editRow = ref({
  processId: null,
  technologyNumber: null
  technologyNumber: null,
  process:null
})
//打印
@@ -64,6 +65,7 @@
    case 'edit' : {
      editRow.value.processId = row.process_id
      editRow.value.technologyNumber = row.technology_number
      editRow.value.process = row.process
      printVisible.value = true
      // router.push({path: '/sort-detail', query: {processId: row.process_id,technologyNumber:row.technology_number}})
@@ -730,7 +732,7 @@
        :title="$t('processCard.processCardDetails')"
        destroy-on-close
        style="width: 80%;height:75% ">
      <sort-detail id="child" :processId="editRow.processId" :technologyNumber="editRow.technologyNumber"/>
      <sort-detail id="child" :processId="editRow.processId" :technologyNumber="editRow.technologyNumber" :process="editRow.process"/>
    </el-dialog>
north-glass-erp/northglass-erp/src/views/pp/report/TeamOutput.vue
@@ -19,7 +19,7 @@
})
//工序
const value = ref()
const procseeValue = ref()
//表尾求和
const sumNum = (list, field) => {
@@ -75,7 +75,7 @@
form.date1 = getNowTime()
let startTime = form.date1[0]
let endTime = form.date1[1]
let selectProcesses = value.value
let selectProcesses = procseeValue.value
let total = reactive({
  pageTotal: 0,
@@ -126,7 +126,7 @@
  let startTime = form.date1[0]
  let endTime = form.date1[1]
  let selectProcesses = value.value
  let selectProcesses = procseeValue.value
  request.post(`/report/teamOutput/${pageNum.value}/${total.pageSize}/${startTime}/${endTime}/${selectProcesses}`, filterData.value).then((res) => {
@@ -156,6 +156,7 @@
}
function filterChanged(column){
  let selectProcesses = procseeValue.value
  //gridOptions.loading=true
  //筛选条件发生变化条件发生变化
  let value = column.datas[0]!=undefined?column.datas[0]:''
@@ -173,6 +174,7 @@
  let startTime = form.date1[0]
  let endTime = form.date1[1]
  console.log(selectProcesses)
  request.post(`/report/teamOutput/1/${total.pageSize}/${startTime}/${endTime}/${selectProcesses}`, filterData.value).then((res) => {
    if (res.code == 200) {
@@ -252,7 +254,7 @@
    {field: 'width', width: 100, title: t('order.width')},
    {field: 'height', width: 100, title: t('order.height')},
    {field: 'shape', width: 90, title: t('order.shape')},
    {field: 'thickness', width: 90, title: t('order.totalThickness'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'thickness', width: 90, title: t('order.totalThickness')},
    {field: 'edgingType', width: 110, title: t('order.edgingType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'completedQuantity', width: 90, title: t('reportingWorks.completedQuantity')},
    {field: 'area', width: 100, title: t('reportingWorks.completedArea')},
@@ -292,7 +294,7 @@
})
function exportExcel(url, fileName,date) {
  let processes = value.value
  let processes = procseeValue.value
  if(date===null){
    ElMessage.warning(t('report.pleaseSelectADateFirst'))
    return
@@ -351,7 +353,7 @@
            value-format="YYYY-MM-DD"
        />
        &nbsp;&nbsp;
        <el-select v-model="value" clearable default-value="default_city" style="width: 120px">
        <el-select v-model="procseeValue" clearable default-value="default_city" style="width: 120px">
          <el-option
              v-for="item in titleSelectJson['processType']"
              :key="item.id"
@@ -368,6 +370,7 @@
        class="mytable-scrollbar"
        height="100%"
        v-bind="gridOptions"
        @filter-change="filterChanged"
    >
      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
@@ -391,6 +394,7 @@
            :layouts="[  'PrevPage', 'Jump','PageCount', 'NextPage',  'Total']"
            :total="total.dataTotal"
            @page-change="handlePageChange"
        >
        </vxe-pager>
      </template>
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
@@ -10,7 +10,9 @@
import userInfo from "@/stores/userInfo"
import { useI18n } from 'vue-i18n'
import footSum from "@/hook/footSum"
import companyInfo from "@/stores/sd/companyInfo"
domZIndex.setCurrent(3000)
const company = companyInfo()
//语言获取
const { t } = useI18n()
let brokenVisible = ref(false)
@@ -1025,9 +1027,11 @@
  //流程卡号
  let processIdStr = result[1];
  //层号
  let technologyStr = result[2];
  request.post(`/reportingWork/addSelectLastWork/${processIdStr}/${technologyStr}/${process}`).then((res) => {
  let reportType= company.reportType
  console.log(reportType)
  request.post(`/reportingWork/addSelectLastWork/${processIdStr}/${technologyStr}/${process}/${reportType}`).then((res) => {
    if (res.code == 200) {
      if(res.data.data==null){
        ElMessage.error(t('reportingWorks.noDataThisProcessCard'))
north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java
@@ -218,11 +218,12 @@
    }
    @ApiOperation("流程卡打印明细数据排序查询接口")
    @PostMapping("/printFlowCardDetails/{processId}/{technologyNumber}")
    @PostMapping("/printFlowCardDetails/{processId}/{technologyNumber}/{process}")
    public Result printFlowCardDetails(@PathVariable String processId,
                                       @PathVariable String technologyNumber,
                                       @PathVariable String process,
                                       @RequestBody FlowCard flowCard) {
        return Result.seccess(flowCardService.printFlowCardDetailsSv(processId, technologyNumber, flowCard));
        return Result.seccess(flowCardService.printFlowCardDetailsSv(processId, technologyNumber,process, flowCard));
    }
    @ApiOperation("保存打印排序接口")
north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportController.java
@@ -261,13 +261,21 @@
    }
    @ApiOperation("订单排产计划")
    @ApiOperation("订单排产计划导出")
    @PostMapping("/exportScheduleReport")
    public void exportScheduleReport(HttpServletResponse response,
                                     @RequestBody Map<String, Object> dates
    ) throws IOException, IllegalAccessException, InstantiationException {
        //参数:相应的数据,实体类信息,相应的方法(数据获取),生成的excel名字
        System.out.println(dates);
        DownExcel.download(response, ScheduleProductionScheduleDTO.class, reportService.exportScheduleReportSv(dates), "ScheduleProduction");
    }
    @ApiOperation("班组产量导出")
    @PostMapping("/exportTeamOutput")
    public void exportTeamOutput(HttpServletResponse response,
                                     @RequestBody Map<String, Object> dates
    ) throws IOException, IllegalAccessException, InstantiationException {
        //参数:相应的数据,实体类信息,相应的方法(数据获取),生成的excel名字
        DownExcel.download(response, TeamOutputDTO.class, reportService.exportTeamOutputSv(dates), "TeamOutput");
    }
}
north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java
@@ -31,12 +31,13 @@
    @ApiOperation("报工新增查询")
    @SaCheckPermission("AddReportingWork.search")
    @PostMapping  ("/addSelectLastWork/{processIdStr}/{technologyStr}/{process}")
    @PostMapping  ("/addSelectLastWork/{processIdStr}/{technologyStr}/{process}/{reportType}")
    public Result AddSelectLastWork(
            @PathVariable String processIdStr,
            @PathVariable String technologyStr,
            @PathVariable String process)  {
        return  Result.seccess(reportingWorkService.AddSelectLastWorkSv(processIdStr,technologyStr,process));
            @PathVariable String process,
            @PathVariable String reportType)  {
        return  Result.seccess(reportingWorkService.AddSelectLastWorkSv(processIdStr,technologyStr,process,reportType));
    }
    @ApiOperation("查询工序")
    @PostMapping  ("/selectProcess")
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
@@ -86,7 +86,7 @@
    List<Map<String, String>> getPrintLabel1(String processId,Integer technologyNumber);
    List<Map<String, String>> printFlowCardDetailsMp(String processId, String technologyNumber, FlowCard flowCard);
    List<Map<String, String>> printFlowCardDetailsMp(String processId, String technologyNumber, String process, FlowCard flowCard);
    Boolean printSortMp(String processId, Integer orderNumber, Integer technologyNumber, Integer sort);
@@ -118,7 +118,7 @@
    List<Map<String, String>> selectReworkPrintMp(Date selectTime1, Date selectTime2, FlowCard flowCard);
    List<Map<String, Object>> getDetailListLike(String processId, String technologyNumber);
    List<Map<String, Object>> getDetailListLike(String processId, String technologyNumber, String process);
    List<Map<String, String>> getPrimaryListMergeRefund(String processId, String technologyNumber, Integer orderNumber);
@@ -145,4 +145,10 @@
    List<Map<String, String>> getRepairPrintCustomDataSemi(String processId, Integer technologyNumber, String reportingWorkId);
    List<Map<String, String>> selectPrintAllMp(String orderId);
    Boolean printAddSortMp(String processId, Integer orderNumber, Integer technologyNumber, Integer sort, String process);
    Integer printAddSortCountMp(String processId, Integer orderNumber, Integer technologyNumber, Integer sort, String process);
    Boolean printUpdateSortMp(String processId, Integer orderNumber, Integer technologyNumber, Integer sort, String process);
}
north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportMapper.java
@@ -85,6 +85,8 @@
    Map<String, Integer> workInProgressTotal(Integer offset, Integer pageSize, String orderId, String inputProject, String selectProcesses, WorkInProgressDTO workInProgressDTO);
    List<TeamOutputDTO> exportTeamOutputMp(List<LocalDate> date, String process);
//    Map<String, Integer> getWorkInProgressTotal(
//                                                @Param("selectTime1") Date selectTime1, @Param("selectTime2") Date selectTime2,
north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkMapper.java
@@ -12,7 +12,7 @@
public interface ReportingWorkMapper extends BaseMapper<ReportingWork> {
    ReportingWork AddSelectLastWorkMp(String processIdStr, String technologyStr,String previousProcess,String nextProcess,String process);
    ReportingWork AddSelectLastWorkMp(String processIdStr, String technologyStr, String previousProcess, String nextProcess, String process, String reportType);
    List<BasicDataProduce> SelectWorkBasicDeviceMp(String process);
@@ -22,7 +22,7 @@
    String SelectWorkTechnologyMp(String processIdStr);
    List<Map<String,String>> SelectTechnologicalNumMp(String processIdStr, String technologyStr,String process);
    List<Map<String,String>> SelectTechnologicalNumMp(String processIdStr, String technologyStr, String process, String reportType);
    List<Map<String,String>> SelectReworlDetailMp(String processIdStr, String technologyStr, String process);
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -270,7 +270,7 @@
                    //是否包含切割
                    boolean containsCutting = flowCard.getProcess().contains("切割");
                    if(String.valueOf(flowCard.getTechnologyNumber()).length()>1 && containsCutting){
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()));
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getProcess());
                        itemmap.put("detailList", detailList);
                    }
                    else {
@@ -291,7 +291,7 @@
                    else {
                        itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getGlassChild(), flowCard.getProcess()));
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), printMerge);
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), printMerge, flowCard.getProcess());
                        itemmap.put("detailList", detailList);
                    }
                }
@@ -369,9 +369,9 @@
        return map;
    }
    public Map<String, Object> printFlowCardDetailsSv(String processId, String technologyNumber, FlowCard flowCard) {
    public Map<String, Object> printFlowCardDetailsSv(String processId, String technologyNumber, String process, FlowCard flowCard) {
        Map<String, Object> map = new HashMap<>();
        map.put("data", flowCardMapper.printFlowCardDetailsMp(processId, technologyNumber, flowCard));
        map.put("data", flowCardMapper.printFlowCardDetailsMp(processId, technologyNumber,process, flowCard));
        return map;
    }
@@ -379,7 +379,14 @@
        List<FlowCard> FlowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("flowCard")), FlowCard.class);
        if (!FlowCardList.isEmpty()) {
            for (FlowCard flowCard : FlowCardList) {
                flowCardMapper.printSortMp(flowCard.getProcessId(),flowCard.getOrderNumber(),flowCard.getTechnologyNumber(),flowCard.getSort());
               // flowCardMapper.printSortMp(flowCard.getProcessId(),flowCard.getOrderNumber(),flowCard.getTechnologyNumber(),flowCard.getSort());
                //判断保存的数据是否已存在
                Integer count = flowCardMapper.printAddSortCountMp(flowCard.getProcessId(),flowCard.getOrderNumber(),flowCard.getTechnologyNumber(),flowCard.getSort(),flowCard.getProcess());
                if (count >0){
                    flowCardMapper.printUpdateSortMp(flowCard.getProcessId(),flowCard.getOrderNumber(),flowCard.getTechnologyNumber(),flowCard.getSort(),flowCard.getProcess());
                }else {
                    flowCardMapper.printAddSortMp(flowCard.getProcessId(),flowCard.getOrderNumber(),flowCard.getTechnologyNumber(),flowCard.getSort(),flowCard.getProcess());
                }
            }
        }
        return true;
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
@@ -435,4 +435,11 @@
        String process= (String) dates.get("processes");
        return reportMapper.exportScheduleReportMp(date,process);
    }
    public List exportTeamOutputSv(Map<String, Object> dates) {
        List<LocalDate> date= (List<LocalDate>) dates.get("date");
        String process= (String) dates.get("processes");
        return reportMapper.exportTeamOutputMp(date,process);
    }
}
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -22,7 +22,6 @@
import com.example.erp.mapper.userInfo.LogMapper;
import com.example.erp.service.sd.OrderProcessDetailService;
import com.example.erp.service.userInfo.LogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -74,7 +73,7 @@
        this.orderGlassDetailMapper = orderGlassDetailMapper;
    }
    public Map<String, Object> AddSelectLastWorkSv(String processIdStr, String technologyStr, String process) {
    public Map<String, Object> AddSelectLastWorkSv(String processIdStr, String technologyStr, String process, String reportType) {
        Map<String, Object> map = new HashMap<>();
        //查询流程卡工艺流程
        String technologicalProcess = reportingWorkMapper.SelectTechnologicalProcess(processIdStr,technologyStr);
@@ -107,7 +106,7 @@
                    nextProcess = processList[i + 1];
                }
                //查询当前工序的表头数据
                map.put("data", reportingWorkMapper.AddSelectLastWorkMp(processIdStr, technologyStr, previousProcess, nextProcess, process));
                map.put("data", reportingWorkMapper.AddSelectLastWorkMp(processIdStr, technologyStr, previousProcess, nextProcess, process,reportType));
                map.put("thisProcess", processList);
                break;
            }
@@ -132,7 +131,7 @@
        //判断本工序是不是第一道工序
        if (interceptProcess.equals(process)) {
            //是第一道工序,查询流程卡数据
            map.put("Detail", reportingWorkMapper.SelectTechnologicalNumMp(processIdStr, technologyStr, process));
            map.put("Detail", reportingWorkMapper.SelectTechnologicalNumMp(processIdStr, technologyStr, process,reportType));
        } else {
            //不是第一道工序,查询报工数据
            List<Map<String,String>>  details = reportingWorkMapper.SelectReworlDetailMp(processIdStr, technologyStr, process);
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -755,14 +755,18 @@
               ogd.child_height,
               fc.quantity,
               ROUND(ogd.child_width * ogd.child_height * fc.quantity / 1000000, 2) as area,
               fc.sort,
               ogd.glass_child
               ifnull(fcs.sort,'') as sort,
               ogd.glass_child,
               #{process} as process
        FROM flow_card AS fc
                 LEFT JOIN sd.order_glass_detail AS ogd ON fc.order_id = ogd.order_id
            AND fc.order_number = ogd.order_number
            AND fc.technology_number = ogd.technology_number
        left join flow_card_sort as fcs on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and fcs.technology_number = fc.technology_number
            and fcs.process=#{process}
        where fc.process_id = #{processId}
          and position(fc.technology_number in #{technologyNumber})
        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, fc.order_number)
    </select>
@@ -1114,10 +1118,12 @@
                 left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
                 left join sd.product_detail as pd
                           on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
                 left join flow_card_sort as fcs on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and fcs.technology_number = fc.technology_number
            and fcs.process=#{process}
        where fc.process_id = #{processId}
          and position(fc.technology_number in #{technologyNumber})
        group by fc.process_id, fc.order_number, fc.technology_number
        order by IF(sort != NULL || sort != '', sort, fc.order_number)
        order by IF(fcs.sort != NULL || fcs.sort != '', fcs.sort, fc.order_number)
    </select>
    <select id="getPrimaryListMergeRefund">
@@ -1469,10 +1475,12 @@
                 left join sd.order_glass_detail ogd
                           on ogd.order_id = o.order_id and ogd.order_number = od.order_number and
                              ogd.technology_number = fc.technology_number
                 left join flow_card_sort as fcs on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and fcs.technology_number = fc.technology_number
            and fcs.process=#{process}
        where fc.process_id = #{processId}
          and fc.technology_number = #{technologyNumber}
          and position(fc.technology_number in #{technologyNumber})
        group by od.order_number, ogd.technology_number, ogd.child_width, ogd.child_height
        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, fc.order_number)
        order by IF(fcs.sort != NULL || fcs.sort != '', fcs.sort, fc.order_number)
    </select>
    <select id="selectPrintNotMp">
@@ -1797,4 +1805,26 @@
          and process != ""
        GROUP BY order_id,process_id,technology_number,process
    </select>
    <insert id="printAddSortMp">
        insert into flow_card_sort (process_id,order_number,technology_number,process,sort,create_time)
        values (#{processId},#{orderNumber},#{technologyNumber},#{process},#{sort},now())
    </insert>
    <select id="printAddSortCountMp">
        select
        count(*)
        from flow_card_sort
        where process_id = #{processId}
          and order_number = #{orderNumber}
          and technology_number = #{technologyNumber}
          and process = #{process}
    </select>
    <update id="printUpdateSortMp">
        update flow_card_sort
        set sort = #{sort}
        where process_id = #{processId}
          and order_number = #{orderNumber}
          and technology_number = #{technologyNumber}
          and process = #{process}
    </update>
</mapper>
north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -1266,6 +1266,64 @@
        limit #{offset},#{pageSize};
    </select>
    <select id="exportTeamOutputMp">
        SELECT
        rw.reporting_work_time,
        rw.this_process,
        rw.teams_groups_name,
        o.project,
        rw.process_id,
        rwd.order_number,
        MAX( ogd.child_width ) as width,
        MAX( ogd.child_height ) as height,
        if(od.shape=1,'普形',if(od.shape=2,'异形','')) as shape,
        sum( pd.thickness ) as thickness,
        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,
        od.product_name,
        JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS code
        FROM
        reporting_work AS rw
        LEFT JOIN reporting_work_detail AS rwd ON rw.reporting_work_id = rwd.reporting_work_id
        LEFT JOIN sd.`order` AS o ON o.order_id = rw.order_id
        LEFT JOIN sd.order_detail AS od ON od.order_id = o.order_id
        AND od.order_number = rwd.order_number
        LEFT JOIN sd.order_glass_detail AS ogd ON ogd.order_id = o.order_id
        AND ogd.order_number = rwd.order_number
        AND ogd.technology_number = rwd.technology_number
        AND ogd.order_number = od.order_number
        LEFT JOIN (
        SELECT
        prod_id,
        glass_sort,
        REPLACE ( JSON_UNQUOTE( JSON_EXTRACT( separation, '$.thickness' )), 'mm', '' ) AS thickness
        FROM
        sd.product_detail
        WHERE
        detail_type = "glass"
        ) AS pd ON pd.prod_id = od.product_id AND pd.glass_sort = rwd.technology_number
        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 = ogd.order_number
        AND opd.technology_number = ogd.technology_number
        where opd.reporting_work_num > 0 and rw.reviewed_state=1
          and date(rw.reporting_work_time) >= #{date[0]}
          and date(rw.reporting_work_time) &lt;= #{date[1]}
        and position(#{process} in rw.this_process)
        GROUP BY
        rw.this_process,
        rw.teams_groups_name,
        rw.process_id,
        rwd.order_number
        ORDER BY
        rw.this_process,
        rw.process_id,
        rwd.order_number,
        rw.reporting_work_time,
        rw.teams_groups_name
    </select>
    <select id="teamOutputPageTotal">
        SELECT
        CEILING(count(rwd.id)/#{pageSize}) as 'pageTotal',
north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
@@ -88,6 +88,7 @@
        left join reporting_work_detail as rwd on rw.reporting_work_id = rwd.reporting_work_id and rwd.technology_number=fc.technology_number
        where fc.process_id = #{processIdStr}
          and fc.technology_number = #{technologyStr}
          and if(#{reportType}=1,o.order_type!='样品订单',o.order_id!='')
        GROUP BY fc.process_id
    </select>
@@ -166,11 +167,13 @@
        on patch.process_id = fc.process_id
        and patch.order_sort = fc.order_number
        and patch.technology_number = fc.technology_number
        left join sd.`order` as o on o.order_id=od.order_id
        WHERE
            fc.process_id = #{processIdStr}
          AND fc.technology_number = #{technologyStr}
          AND odpd.process = #{process}
          and if(#{reportType}=1,o.order_type!='样品订单',o.order_id!='')
        order by fc.order_number
    </select>