Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override
| | |
| | | <td colspan="5"> |
| | | <div style="display:flex;"> |
| | | <div style="width: 100%"><span style="font-weight: bold;">客æ·åç§°</span>ï¼ |
| | | <input class="contactNumber" style="width: 85%;font-size: 9px" type="text" |
| | | <input class="contactNumber" style="width: 80%;font-size: 9px" type="text" |
| | | v-model="customer.customer_name" /> |
| | | </div> |
| | | </div> |
| | |
| | | <td class="tdNowrap">客æ·åç§°ï¼</td> |
| | | <td colspan="2">{{ items.customer_name }}</td> |
| | | <td class="tdNowrap">项ç®åç§°ï¼</td> |
| | | <td colspan="8" style="min-width: 300px;">{{ items.project }}</td> |
| | | <td v-if="name=='æ´é³åæ¹ç»çææ¯è¡ä»½æéå
¬å¸'" colspan="4" style="min-width: 250px;">{{ items.projectBatch }}</td> |
| | | <td v-else colspan="4" style="min-width: 250px;">{{ items.project }}</td> |
| | | <td class="tdNowrap">å·¥èºæµç¨ï¼</td> |
| | | <td :colspan="2+item.processList.length*2" style="width: 500px">{{ items.process }}</td> |
| | | </tr> |
| | |
| | | const result = Object.fromEntries( |
| | | fields.map(item => [item.field, true]) // è½¬æ¢æ [key, value] æ°ç» |
| | | ) |
| | | let funct = "function(value,row,index,options){return `<div style='width: 6.5cm;height:4.95cm;background-color: #5cadfe'> <br>" |
| | | //<div style='width: 6.5cm;height:4.95cm;background-color: #5cadfe'> |
| | | let funct = "function(value,row,index,options){return ` <br>" |
| | | json.panels[0].printElements[index].options.columns[0].forEach(item => { |
| | | if(item.field && !result[item.field ]){ |
| | | if (company.printShowTitle){ |
| | |
| | | funct += item.title+'<br>' |
| | | } |
| | | }) |
| | | funct+='<br></div>`}' |
| | | funct+='<br>`}' |
| | | //</div> |
| | | json.panels[0].printElements[index].options.columns[0][0].renderFormatter = funct |
| | | } |
| | | }) |
| | |
| | | <template> |
| | | <div > |
| | | <el-row id="footsum" :gutter="20" > |
| | | <el-col :span="20"></el-col> |
| | | <el-col :span="4" style="font-weight: bolder;font-size: 19px" >{{delivery.creator}}</el-col> |
| | | <el-col :span="19"></el-col> |
| | | <el-col :span="5" style="font-weight: bolder;font-size: 19px" >{{delivery.creator}}</el-col> |
| | | </el-row> |
| | | <el-row id="footsum1" :gutter="20" > |
| | | <el-col :span="2" ></el-col> |
| | | <el-col :span="5" style="font-weight: bolder;font-size: 19px">{{ delivery.contacts }}</el-col> |
| | | <el-col :span="5" style="font-weight: bolder;font-size: 19px">{{ delivery.contactNumber }}</el-col> |
| | | <el-col :span="3" style="font-weight: bolder;font-size: 19px">{{ delivery.contacts }}</el-col> |
| | | <el-col :span="7" style="font-weight: bolder;font-size: 19px">{{ delivery.contactNumber }}</el-col> |
| | | <el-col :span="1" ></el-col> |
| | | <el-col :span="11" style="font-weight: bolder;font-size: 19px">{{ delivery.deliveryAddress }}</el-col> |
| | | </el-row> |
| | | |
| | | <table class="content1" v-for="(page,pageIndex) in pageData" > |
| | | <table class="content1" v-for="(page,pageIndex) in pageData" > |
| | | <thead> |
| | | <tr style="height: 3.2cm"><td></td></tr> |
| | | <tr style="height: 3.6cm"><td></td></tr> |
| | | |
| | | <tr> |
| | | <td colspan="6" > |
| | | <el-row :gutter="20"> |
| | | <el-col :span="2"></el-col> |
| | | <el-col :span="9"> |
| | | <el-col :span="8"> |
| | | <input v-model="companyName" |
| | | style="border: 0;width: 100%; |
| | | height: 100%;font-size:19px;font-weight: bolder "/> |
| | | </el-col> |
| | | <el-col :span="5" style="font-size:19px;font-weight: bolder"> {{deliveryId}} </el-col> |
| | | <el-col :span="5"></el-col> |
| | | <el-col :span="3" style="white-space: nowrap;font-size:19px;font-weight: bolder">{{deliveryDate}}</el-col> |
| | | <el-col :span="6" style="font-size:19px;font-weight: bolder"> {{deliveryId}} </el-col> |
| | | <el-col :span="3"></el-col> |
| | | <el-col :span="5" style="white-space: nowrap;font-size:19px;font-weight: bolder">{{deliveryDate}}</el-col> |
| | | </el-row> |
| | | </td> |
| | | </tr> |
| | | <tr style="height: 0.5cm"><td></td></tr> |
| | | <tr style="height: 0.1cm"><td></td></tr> |
| | | |
| | | <tr style="margin-top: 20px"> |
| | | <td colspan="6"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="3"></el-col> |
| | | <el-col :span="9" style="font-size: 21px;font-weight: bolder">{{delivery.customerName }}</el-col> |
| | | <el-col :span="3"> </el-col> |
| | | <el-col :span="9" style="font-size: 21px;font-weight: bolder;white-space: nowrap;"> {{delivery.project }}</el-col> |
| | | <el-col :span="2"></el-col> |
| | | <el-col :span="14" style="font-size: 19px;font-weight: bolder">{{delivery.customerName }}</el-col> |
| | | |
| | | <el-col :span="8" style="font-size: 19px;font-weight: bolder;white-space: nowrap;"> {{delivery.project }}</el-col> |
| | | </el-row> |
| | | </td> |
| | | </tr> |
| | | <tr style="height: 0.3cm"><td></td></tr> |
| | | <tr> |
| | | <td colspan="6"> |
| | | <el-row :gutter="20"> |
| | |
| | | </td> |
| | | </tr> |
| | | |
| | | <tr style="height: 0.2cm"><td></td></tr> |
| | | <tr style="height: 1cm"><td></td></tr> |
| | | |
| | | |
| | | |
| | |
| | | <tbody > |
| | | <tr v-for="(item,index) in page"> |
| | | <td style="width: 5cm"> |
| | | <el-input class="textarea" type="textarea" |
| | | <el-input class="textarea bbb" type="textarea" |
| | | :autosize="{ minRows: 1, maxRows: 20 }" |
| | | v-model="item.DeliveryDetail.orderDetail.productName" /> |
| | | </td> |
| | | <td style="width: 0.8cm"></td> |
| | | |
| | | <td style="width: 5cm"> |
| | | <el-input class="textarea" type="textarea" |
| | | <td style="width: 150px" > |
| | | <el-input class="textarea aaa" type="textarea" |
| | | style="font-weight: bolder;" |
| | | :autosize="{ minRows: 1, maxRows: 20 }" |
| | | v-model="item.DeliveryDetail.orderId" /> |
| | | |
| | | </td> |
| | | <td style="width: 60px"> |
| | | <td style="width: 65px"> |
| | | {{item.DeliveryDetail.quantity}} |
| | | </td> |
| | | <td style="width: 100px"> |
| | | <input style="border: 0" v-model="item.DeliveryDetail.area"> |
| | | <td style="width: 100px" > |
| | | <input style="border: 0;width: 100px" v-model="item.DeliveryDetail.area"> |
| | | </td> |
| | | |
| | | <td |
| | | v-if="props.type===1" |
| | | style="width: 80px" |
| | | v-if="props.type===1" |
| | | > |
| | | {{item.DeliveryDetail.price}} |
| | | </td> |
| | |
| | | <tr> |
| | | <td></td> |
| | | <td></td> |
| | | <td></td> |
| | | <td> |
| | | {{getQuantitySum(pageIndex)}} |
| | | </td> |
| | | <td> |
| | | <input style="border: 0" :value="getAreaSum(pageIndex)"> |
| | | <input style="border: 0;width: 100px" :value="getAreaSum(pageIndex)"> |
| | | </td> |
| | | <td></td> |
| | | <td v-if="props.type===1"> |
| | |
| | | width: 21cm; |
| | | } |
| | | table{ |
| | | width: 21cm |
| | | width: 18.3cm |
| | | |
| | | } |
| | | .content1{ |
| | |
| | | @media print { |
| | | #footsum{ |
| | | position: fixed; |
| | | bottom: 4.2cm; |
| | | bottom: 3.4cm; |
| | | width: 100%; /* æè
设置æå
·ä½ç宽度 */ |
| | | font-size: 17px; |
| | | } |
| | | #footsum1{ |
| | | position: fixed; |
| | | bottom: 1.8cm; |
| | | bottom: 1cm; |
| | | width: 100%; /* æè
设置æå
·ä½ç宽度 */ |
| | | } |
| | | } |
| | |
| | | --el-input-focus-border-width: 0px; |
| | | --el-input-hover-border-color: rgba(255,255,255,0.0); |
| | | --el-input-hover-border-width: 0px; |
| | | } |
| | | /*textarea { |
| | | |
| | | font-size: 16px; |
| | | border:none; |
| | | text-align: right; |
| | | font-weight: bolder; |
| | | width: 100%; |
| | | height: 100%; |
| | | }*/ |
| | | } |
| | | :deep(.el-textarea__inner){ |
| | | font-weight: bolder; |
| | | color: #333333; |
| | | font-family: 'Microsoft YaHei', '微软é
é»', sans-serif; |
| | | } |
| | | |
| | | |
| | | :deep(.aaa){ |
| | | width: 150px; |
| | | } |
| | | :deep(.bbb){ |
| | | width: 5cm; |
| | | } |
| | | </style> |
| | |
| | | </el-row> |
| | | <el-row id="footsum1" :gutter="20" > |
| | | <el-col :span="2" ></el-col> |
| | | <el-col :span="5" style="font-weight: bolder;font-size: 19px">{{ delivery.contacts }}</el-col> |
| | | <el-col :span="5" style="font-weight: bolder;font-size: 19px">{{ delivery.contactNumber }}</el-col> |
| | | <el-col :span="3" style="font-weight: bolder;font-size: 19px">{{ delivery.contacts }}</el-col> |
| | | <el-col :span="7" style="font-weight: bolder;font-size: 19px">{{ delivery.contactNumber }}</el-col> |
| | | <el-col :span="1" ></el-col> |
| | | <el-col :span="11" style="font-weight: bolder;font-size: 19px">{{ delivery.deliveryAddress }}</el-col> |
| | | </el-row> |
| | | |
| | | <table class="content1" v-for="(page,pageIndex) in pageData" > |
| | | <thead> |
| | | <tr style="height: 3.2cm"><td></td></tr> |
| | | <tr style="height: 3.6cm"><td></td></tr> |
| | | |
| | | <tr> |
| | | <td colspan="6" > |
| | |
| | | height: 100%;font-size:19px;font-weight: bolder "/> |
| | | </el-col> |
| | | <el-col :span="5" style="font-size:19px;font-weight: bolder"> {{deliveryId}} </el-col> |
| | | <el-col :span="5"></el-col> |
| | | <el-col :span="3" style="white-space: nowrap;font-size:19px;font-weight: bolder">{{deliveryDate}}</el-col> |
| | | <el-col :span="6"></el-col> |
| | | <el-col :span="2" style="white-space: nowrap;font-size:19px;font-weight: bolder">{{deliveryDate}}</el-col> |
| | | </el-row> |
| | | </td> |
| | | </tr> |
| | | <tr style="height: 0.5cm"><td></td></tr> |
| | | <tr style="height: 0.1cm"><td></td></tr> |
| | | |
| | | <tr style="margin-top: 20px"> |
| | | <td colspan="6"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="3"></el-col> |
| | | <el-col :span="9" style="font-size: 21px;font-weight: bolder">{{delivery.customerName }}</el-col> |
| | | <el-col :span="3"> </el-col> |
| | | <el-col :span="9" style="font-size: 21px;font-weight: bolder;white-space: nowrap;"> {{delivery.project }}</el-col> |
| | | <el-col :span="2"></el-col> |
| | | <el-col :span="17" style="font-size: 17px;font-weight: bolder">{{delivery.customerName }}</el-col> |
| | | |
| | | <el-col :span="5" style="font-size: 17px;font-weight: bolder;white-space: nowrap;"> {{delivery.project }}</el-col> |
| | | </el-row> |
| | | </td> |
| | | </tr> |
| | | <tr style="height: 0.3cm"><td></td></tr> |
| | | <tr style="height: 0.1cm"><td></td></tr> |
| | | <tr> |
| | | <td colspan="6"> |
| | | <el-row :gutter="20"> |
| | |
| | | </td> |
| | | </tr> |
| | | |
| | | <tr style="height: 0.2cm"><td></td></tr> |
| | | <tr style="height: 1cm"><td></td></tr> |
| | | |
| | | |
| | | |
| | |
| | | <template v-for="(items,index1) in page.DeliveryDetailList[0]"> |
| | | <tr> |
| | | |
| | | <td style="width: 20cm" :rowspan="page.id" v-if="index1===0"> |
| | | <td style="width: 4cm" :rowspan="page.id" v-if="index1===0"> |
| | | <el-input class="textarea" type="textarea" |
| | | :autosize="{ minRows: 1, maxRows: 20 }" |
| | | v-model="page.DeliveryDetail.orderDetail.productName" /> |
| | | </td> |
| | | <td style="width: 0.8cm"></td> |
| | | |
| | | <td style="width: 10cm"> |
| | | <td style="width: 2cm"> |
| | | <el-input class="textarea" type="textarea" |
| | | style="font-weight: bolder;" |
| | | :autosize="{ minRows: 1, maxRows: 20 }" |
| | | v-model="items.width" /> |
| | | |
| | | </td> |
| | | <td style="width: 10cm"> |
| | | <td style="width: 2cm"> |
| | | <el-input class="textarea" type="textarea" |
| | | style="font-weight: bolder;" |
| | | :autosize="{ minRows: 1, maxRows: 20 }" |
| | |
| | | {{items.quantity}} |
| | | </td> |
| | | <td style="width: 100px"> |
| | | <input style="border: 0" v-model="items.area"> |
| | | <input style="border: 0;width: 100px" v-model="items.area"> |
| | | </td> |
| | | |
| | | <td |
| | |
| | | {{getQuantitySum(pageIndex)}} |
| | | </td> |
| | | <td> |
| | | <input style="border: 0" :value="getAreaSum(pageIndex)"> |
| | | <input style="border: 0;width: 100px" :value="getAreaSum(pageIndex)"> |
| | | </td> |
| | | <td></td> |
| | | <td v-if="props.type===1||props.type===3"> |
| | |
| | | width: 21cm; |
| | | } |
| | | table{ |
| | | width: 21cm |
| | | width: 18.3cm |
| | | |
| | | } |
| | | .content1{ |
| | |
| | | @media print { |
| | | #footsum{ |
| | | position: fixed; |
| | | bottom: 4.2cm; |
| | | bottom: 3.5cm; |
| | | width: 100%; /* æè
设置æå
·ä½ç宽度 */ |
| | | font-size: 17px; |
| | | } |
| | | #footsum1{ |
| | | position: fixed; |
| | | bottom: 1.8cm; |
| | | bottom: 1cm; |
| | | width: 100%; /* æè
设置æå
·ä½ç宽度 */ |
| | | } |
| | | } |
| | |
| | | address:'æ´é³å½å®¶é«æ°ææ¯å¼ååº', |
| | | telephone:'0379-64312861', |
| | | fax:'0379-64332066', |
| | | errorArea:0.4, |
| | | errorArea:0.5, |
| | | widHeiLength:{//订å宽é«é¿åº¦ |
| | | regexp:/^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/,//æ£å0.00-99999.99 |
| | | //regexp:/^(0|[1-9][0-9]{0,3}([.][0-9]{1,2})?)$/,//æ£å0.00-9999.99 |
| | |
| | | if ($grid) { |
| | | switch (code) { |
| | | case 'out': { |
| | | $grid.clearFilter() |
| | | const selectRecords = $grid.getCheckboxRecords() |
| | | |
| | | |
| | |
| | | } |
| | | |
| | | case 'delete': { |
| | | |
| | | $grid.clearFilter() |
| | | const selectRecords = $grid.getCheckboxRecords() |
| | | if (selectRecords.length === 0) { |
| | | ElMessage.warning(t('productStock.unselectedData')) |
| | |
| | | filterMethod: filterChanged, |
| | | width:110 |
| | | }, |
| | | {field: 'batch', width: 90, title: t('order.batch')}, |
| | | { |
| | | field: 'order_number', |
| | | title: t('order.OrderNum'), |
| | |
| | | request.post(`/report/workInProgressCombination/1/${total.pageSize}/${selectProcesses}/${inputVal}/${inputProject}/${optionVal}`, filterData.value).then((res) => { |
| | | |
| | | if (res.code == 200) { |
| | | total.dataTotal = res.data.total.total*1 |
| | | total.pageTotal= res.data.total.pageTotal |
| | | pageTotal.value = res.data.total |
| | | total.value = res.data.total |
| | | produceList = produceList.value.concat(deepClone(res.data.data)) |
| | | console.log(res.data) |
| | | // total.dataTotal = res.data.total.total*1 |
| | | // total.pageTotal= res.data.total.pageTotal |
| | | // pageTotal.value = res.data.total |
| | | // total.value = res.data.total |
| | | // produceList = produceList.value.concat(deepClone(res.data.data)) |
| | | titleSelectJson.value.processType = res.data.process |
| | | titleSelectJson.value.processType.splice(0,1) |
| | | titleSelectJson.value.processType.unshift(newItem.value) |
| | | //xGrid.value.reloadData(produceList) |
| | | xGrid.value.reloadData(produceList) |
| | | gridOptions.loading = false |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | |
| | | |
| | | if (res.code == 200) { |
| | | console.log(res.data.data) |
| | | total.dataTotal = res.data.total.total * 1 |
| | | total.pageTotal = res.data.total.pageTotal |
| | | pageTotal.value = res.data.total |
| | | total.value = res.data.total |
| | | res.data.data.forEach(item => { |
| | | // 妿 shape å¯è½æ¯åç¬¦ä¸²å°±ç¨ ==ï¼å¦æä¸å®æ¯æ°åå°±ç¨ === |
| | | item.shape = (item.shape == 2) ? t('order.alien') : t('order.universalShape'); |
| | | }); |
| | | // total.dataTotal = res.data.total.total * 1 |
| | | // total.pageTotal = res.data.total.pageTotal |
| | | // pageTotal.value = res.data.total |
| | | // total.value = res.data.total |
| | | xGrid.value.loadData(res.data.data) |
| | | gridOptions.loading = false |
| | | } else { |
| | |
| | | return true; |
| | | }); |
| | | }; |
| | | |
| | | |
| | | const changeGroup = (value)=> { |
| | | //夿åå²çç»æ¯å¦ææ¤çç»ä¿¡æ¯ |
| | | const exists = titleSelectJson.value.historyTeams.some(item => item.basic_name === value) |
| | | if(! exists){ |
| | | titleSelectJson.value.historyTeams.push({ |
| | | basic_name: value, |
| | | process: titleUploadData.value.thisProcess, |
| | | basic_type: 'teamsgroups', |
| | | id: 555 |
| | | }) |
| | | } |
| | | |
| | | |
| | | } |
| | | </script> |
| | | |
| | | <template> |
| | |
| | | <el-col :span="3"> |
| | | <el-select :disabled="groupChangeProcess" |
| | | v-model="titleUploadData.teamsGroupsName" |
| | | @change="changeGroup" |
| | | clearable |
| | | :placeholder="$t('reportingWorks.selectTeam')"> |
| | | <el-option |
| | |
| | | |
| | | Map<String,Float> workInProgressCombinationOrderFootSum(Integer offset, Integer pageSize, String orderId, String inputProject, String selectProcesses, WorkInProgressDTO workInProgressDTO); |
| | | |
| | | List<Map<String, Object>> getWorkInProgressCombination(String process, String laminating, String optionVal); |
| | | |
| | | List<String> selectProcess(); |
| | | |
| | | |
| | | // Map<String, Integer> getWorkInProgressTotal( |
| | | // @Param("selectTime1") Date selectTime1, @Param("selectTime2") Date selectTime2, |
| | |
| | | List<ProductionScheduling> schedulinglist = JSONArray.parseArray(JSONObject.toJSONString(object.get("scheduling")), ProductionScheduling.class); |
| | | if (!schedulinglist.isEmpty()) { |
| | | for (ProductionScheduling productionScheduling : schedulinglist) { |
| | | productionSchedulingMapper.insertSelective(schedulingId,productionScheduling.getOrderGlassDetail().getOrderId(),productionScheduling.getOrderNumber(),productionScheduling.getTechnologyNumber(),processes,productionScheduling.getSchedulingQuantity(),productionScheduling.getScheduledStartTime(),productionScheduling.getPlanEndTime(),productionScheduling.getNotes()); |
| | | productionSchedulingMapper.insertSelective(schedulingId,productionScheduling.getOrder().getOrderId(),productionScheduling.getOrderNumber(),productionScheduling.getTechnologyNumber(),processes,productionScheduling.getSchedulingQuantity(),productionScheduling.getScheduledStartTime(),productionScheduling.getPlanEndTime(),productionScheduling.getNotes()); |
| | | } |
| | | return true; |
| | | } |
| | |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.example.erp.dto.pp.*; |
| | | import com.example.erp.entity.pp.DamageDetails; |
| | | import com.example.erp.entity.pp.Report; |
| | | import com.example.erp.entity.sd.BasicData; |
| | | import com.example.erp.entity.sd.OrderDetail; |
| | |
| | | import com.example.erp.mapper.pp.FlowCardMapper; |
| | | import com.example.erp.mapper.pp.ProductionSchedulingMapper; |
| | | import com.example.erp.mapper.pp.ReportMapper; |
| | | import com.example.erp.mapper.pp.ReportingWorkMapper; |
| | | import com.example.erp.mapper.sd.*; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.StringUtils; |
| | | |
| | | import java.sql.Date; |
| | | import java.time.LocalDate; |
| | | import java.util.*; |
| | | import java.util.concurrent.Executor; |
| | | import java.util.function.Function; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | private final OrderDetailMapper orderDetailMapper; |
| | | |
| | | FlowCardMapper flowCardMapper; |
| | | private ReportingWorkMapper reportingWorkMapper; |
| | | |
| | | |
| | | //ä¸å·¥åºæ¥å·¥çç» |
| | |
| | | } |
| | | |
| | | |
| | | public ReportService(ReportMapper reportMapper, OrderProcessDetailMapper orderProcessDetailMapper, ProductionSchedulingMapper productionSchedulingMapper, FlowCardMapper flowCardMapper, OrderGlassDetailMapper orderGlassDetailMapper, BasicDataMapper basicDataMapper, ProductDetailMapper productDetailMapper, OrderDetailMapper orderDetailMapper) { |
| | | public ReportService(ReportMapper reportMapper, OrderProcessDetailMapper orderProcessDetailMapper, |
| | | ProductionSchedulingMapper productionSchedulingMapper, FlowCardMapper flowCardMapper, |
| | | OrderGlassDetailMapper orderGlassDetailMapper, BasicDataMapper basicDataMapper, |
| | | ProductDetailMapper productDetailMapper, OrderDetailMapper orderDetailMapper, |
| | | ReportingWorkMapper reportingWorkMapper) { |
| | | this.reportMapper = reportMapper; |
| | | this.orderProcessDetailMapper = orderProcessDetailMapper; |
| | | this.productionSchedulingMapper = productionSchedulingMapper; |
| | |
| | | this.basicDataMapper = basicDataMapper; |
| | | this.productDetailMapper = productDetailMapper; |
| | | this.orderDetailMapper = orderDetailMapper; |
| | | this.reportingWorkMapper = reportingWorkMapper; |
| | | } |
| | | |
| | | //æµç¨å¡è¿åº¦æ¹æ³ |
| | |
| | | if (selectProcesses.equals("å
¨é¨")){ |
| | | selectProcesses=""; |
| | | } |
| | | String laminating = ""; |
| | | Map<String, Object> map = new HashMap<>(); |
| | | List<WorkInProgressDTO> dataList2 =reportMapper.workInProgressMpdataList2(offset, pageSize,orderId, inputProject, selectProcesses, workInProgressDTO); |
| | | List<WorkInProgressDTO> dataList1 =reportMapper.workInProgressMpdataList1(offset, pageSize,orderId, inputProject, selectProcesses, workInProgressDTO); |
| | | mergeTeamsGroupsName(dataList1, dataList2); |
| | | map.put("data",dataList1); |
| | | // map.put("total" ,reportMapper.workInProgressCombinationOrderFootSum(offset, pageSize,orderId, inputProject, selectProcesses, workInProgressDTO)); |
| | | map.put("total" ,reportMapper.workInProgressOrderFootSum(offset, pageSize,orderId, inputProject, selectProcesses, workInProgressDTO)); |
| | | // è·åææå·¥åº |
| | | List<String> processList = reportMapper.selectProcess(); |
| | | // éåæ¯ä¸ªå·¥åºå¹¶è°ç¨æ°æ¹æ³ |
| | | List<Map<String, Object>> resultList = new ArrayList<>(); |
| | | if (selectProcesses!=""){ |
| | | laminating = reportingWorkMapper.getProcessLaminating(selectProcesses); |
| | | List<Map<String, Object>> singleResult = reportMapper.getWorkInProgressCombination(selectProcesses,laminating,optionVal); |
| | | |
| | | resultList.addAll(singleResult); |
| | | }else { |
| | | for (String process : processList) { |
| | | //è·åæ¥å·¥å·¥åºæ¯å¦ä¸ºå¤åå·¥ç¨ |
| | | laminating = reportingWorkMapper.getProcessLaminating(process); |
| | | List<Map<String, Object>> singleResult = reportMapper.getWorkInProgressCombination(process,laminating,optionVal); |
| | | |
| | | if (singleResult != null && !singleResult.isEmpty()) { |
| | | resultList.addAll(singleResult); |
| | | } |
| | | } |
| | | } |
| | | |
| | | map.put("data",resultList); |
| | | map.put("process", productionSchedulingMapper.selectProcess()); |
| | | return map; |
| | | } |
| | |
| | | <select id="getPrimaryList"> |
| | | select o.customer_name, |
| | | o.project, |
| | | if(o.batch!="",CONCAT(o.project,'(',o.batch,')'),o.project) as projectBatch, |
| | | #{process} process, |
| | | od.edging_type, |
| | | #{glassChild} as glass_child, |
| | |
| | | <select id="getPrimaryLists"> |
| | | select o.customer_name, |
| | | o.project, |
| | | if(o.batch!="",CONCAT(o.project,'(',o.batch,')'),o.project) as projectBatch, |
| | | #{process} process, |
| | | od.edging_type, |
| | | #{glassChild} as glass_child, |
| | |
| | | fc.process_id, |
| | | o.customer_name, |
| | | o.project, |
| | | o.batch, |
| | | fc.order_number, |
| | | ogd.technology_number, |
| | | ogd.glass_address, |
| | |
| | | <select id="getPrimaryListMerge"> |
| | | select o.customer_name, |
| | | o.project, |
| | | if(o.batch!="",CONCAT(o.project,'(',o.batch,')'),o.project) as projectBatch, |
| | | ogd.process, |
| | | od.edging_type, |
| | | ogdc.concatenated_glass_child as glass_child, |
| | |
| | | <select id="getPrimaryListRefund"> |
| | | select o.customer_name, |
| | | o.project, |
| | | if(o.batch!="",CONCAT(o.project,'(',o.batch,')'),o.project) as projectBatch, |
| | | ogd.process, |
| | | od.edging_type, |
| | | ogd.glass_child, |
| | |
| | | <select id="getPrimaryListRework"> |
| | | select o.customer_name, |
| | | o.project, |
| | | if(o.batch!="",CONCAT(o.project,'(',o.batch,')'),o.project) as projectBatch, |
| | | ogd.process, |
| | | od.edging_type, |
| | | ogd.glass_child, |
| | |
| | | group by d.process |
| | | ) as aa |
| | | </select> |
| | | |
| | | <select id="selectProcess"> |
| | | SELECT basic_name |
| | | FROM sd.basic_data as bd |
| | | where bd.basic_category = 'process' |
| | | and bd.basic_type = 'product' |
| | | and basic_name!='åå²' |
| | | </select> |
| | | |
| | | <select id="getWorkInProgressCombination"> |
| | | select |
| | | #{process} as thisProcess, |
| | | if(#{optionVal} = 1,'',h.project) as project, |
| | | SUM(h.quantity) as stockNum, |
| | | SUM(h.glassArea) as stockArea, |
| | | if(#{optionVal} = 1,'',h.childName) as glassName |
| | | |
| | | from ( |
| | | |
| | | SELECT g.* |
| | | ,GROUP_CONCAT(g.glass_child SEPARATOR '+') as childName |
| | | from( SELECT f.*, |
| | | e.reporting_work_num-f.reporting_work_num as quantity, |
| | | (e.reporting_work_num-f.reporting_work_num)*f.area as glassArea |
| | | from (SELECT a.order_id, |
| | | a.project, |
| | | C.product_id, |
| | | b.order_number, |
| | | b.process_id, |
| | | b.technology_number, |
| | | b.reporting_work_num, |
| | | d.`group` , |
| | | b.id, |
| | | c.area, |
| | | d.glass_child |
| | | |
| | | FROM sd.`order` as a |
| | | LEFT JOIN sd.order_process_detail as b |
| | | on b.process = #{process} and a.order_id =b.order_id |
| | | LEFT JOIN sd.order_detail as c |
| | | on a.order_id = c.order_id and b.order_number =c.order_number |
| | | left join sd.order_glass_detail as d |
| | | on d.order_id =a.order_id and d.order_number = b.order_number and d.technology_number = b.technology_number |
| | | where a.processing_card>0 |
| | | and a.warehousing!=2 |
| | | and (c.quantity-b.reporting_work_num)>0 |
| | | GROUP BY b.process_id, b.order_number, |
| | | b.technology_number) as f |
| | | LEFT JOIN sd.order_process_detail as e |
| | | on e.id=(f.id-1) and e.process_id = f.process_id and e.order_number = f.order_number and e.technology_number =f.technology_number |
| | | where |
| | | e.id is not null |
| | | and e.reporting_work_num-f.reporting_work_num>0 ) as g |
| | | <choose> |
| | | <when test="laminating == 'stepC'"> |
| | | GROUP BY g.process_id, g.order_number, g.`group` |
| | | </when> |
| | | <when test="laminating == 'stepD'"> |
| | | GROUP BY g.process_id, g.order_number |
| | | </when> |
| | | <otherwise> |
| | | GROUP BY g.process_id, g.order_number, g.technology_number |
| | | </otherwise> |
| | | </choose> |
| | | |
| | | |
| | | ) as h |
| | | <choose> |
| | | <when test="optionVal == 1"> |
| | | GROUP BY thisProcess |
| | | </when> |
| | | <otherwise> |
| | | GROUP BY h.project,h.childName |
| | | </otherwise> |
| | | </choose> |
| | | |
| | | </select> |
| | | </mapper> |