north-glass-erp/northglass-erp/src/components/pp/PrintCustomLabelDetails.vue
@@ -125,6 +125,12 @@ if (propertyName === 'customerName' && orderId === obj.orderId){ obj.customerName = result; } if (propertyName === 'orderId' && orderId === obj.orderId){ obj.orderId = result; } if (propertyName === 'glassNumber' && glassNumber === obj.glassNumber){ obj.glassNumber = result; } }); } north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
@@ -9,6 +9,7 @@ import deepClone from "@/utils/deepClone"; import QRCode from "qrcode"; import companyInfo from "@/stores/sd/companyInfo"; import userInfo from "@/stores/userInfo" //语言获取 const company = companyInfo() const {t} = useI18n() @@ -16,6 +17,7 @@ let produceList = ref([]) let list = ref() const details = ref([]) const user=userInfo() const data = ref({ @@ -207,17 +209,14 @@ <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"> {{itemFlow.otherRemarks}} 流程卡号: {{ itemFlow.process_id }}/{{ itemFlow.technologyNumberMerge }} 共 {{ item.count }} 架 </div> <div v-else style="text-align: right;font-weight: bolder"> {{itemFlow.otherRemarks}} 流程卡号: {{ itemFlow.process_id }}/{{ itemFlow.technologyNumber }} 共 {{ item.count }} 架 <div style="font-weight: bolder;display: flex;justify-content:space-between"> <div>打印人:{{user.user.userName}}</div> <div> {{itemFlow.otherRemarks}} 流程卡号: {{ itemFlow.process_id }}/{{ itemFlow.technologyNumber }} 共 {{ item.count }} 架 </div> </div> </td> </tr> @@ -225,17 +224,17 @@ <td class="tdNowrap">客户名称:</td> <td colspan="2">{{ items.customer_name }}</td> <td class="tdNowrap">项目名称:</td> <td colspan="2">{{ items.project }}</td> <td colspan="4">{{ items.project }}</td> <td class="tdNowrap">工艺流程:</td> <td colspan="22" style="width: 500px">{{ items.process }}</td> <td colspan="20" style="width: 500px">{{ items.process }}</td> </tr> <tr v-for="(itemTr,index) in item.detail" :key="index"> <td class="tdNowrap">磨边类型:</td> <td colspan="2">{{ itemTr.edging_type }}</td> <td class="tdNowrap">单片名称:</td> <td colspan="2">{{ itemTr.glass_child }}</td> <td colspan="4">{{ itemTr.glass_child }}</td> <td class="tdNowrap">产品名称:</td> <td colspan="22">{{ itemTr.product_name }}</td> <td colspan="20">{{ itemTr.product_name }}</td> </tr> <tr> <td rowspan='2'>序号</td> north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue
@@ -9,6 +9,7 @@ import deepClone from "@/utils/deepClone"; import QRCode from "qrcode"; import companyInfo from "@/stores/sd/companyInfo"; import userInfo from "@/stores/userInfo" //语言获取 const company = companyInfo() const {t} = useI18n() @@ -16,6 +17,7 @@ let produceList = ref([]) let list = ref() const details = ref([]) const user=userInfo() const data = ref({ @@ -228,7 +230,7 @@ <table v-for="(item,id) in produceList" id="contentTable" :key="id"> <thead> <tr v-for="(itemFlow,index) in item.detail" :key="index"> <td colspan="29"> <td colspan="33"> <div style="float: left;">补片单号:{{itemFlow.patch_id}}</div> <div id="bj" style="float: right;font-size: 28px">补 {{ id + 1 }}</div> <div>{{ company.companyName }}</div> @@ -237,11 +239,14 @@ itemFlow.process_id }}/{{ itemFlow.technologyNumberMerge }} 共 {{ flowCardCount }} 架 </div> <div v-else style="text-align: right;font-weight: bolder"> {{itemFlow.otherRemarks}} 流程卡号: {{ itemFlow.process_id }}/{{ itemFlow.technologyNumber }} 共 {{ flowCardCount }} 架 <div style="font-weight: bolder;display: flex;justify-content:space-between"> <div>打印人:{{user.user.userName}}</div> <div> {{itemFlow.otherRemarks}} 流程卡号: {{ itemFlow.process_id }}/{{ itemFlow.technologyNumber }} 共 {{ item.count }} 架 </div> </div> </td> </tr> @@ -249,17 +254,17 @@ <td class="tdNowrap">客户名称:</td> <td colspan="2">{{ items.customer_name }}</td> <td class="tdNowrap">项目名称:</td> <td colspan="2">{{ items.project }}</td> <td colspan="8">{{ items.project }}</td> <td class="tdNowrap">工艺流程:</td> <td colspan="22" style="width: 500px">{{ items.process }}</td> <td colspan="20" style="width: 500px">{{ items.process }}</td> </tr> <tr v-for="(itemTr,index) in item.detail" :key="index"> <td class="tdNowrap">磨边类型:</td> <td colspan="2">{{ itemTr.edging_type }}</td> <td class="tdNowrap">单片名称:</td> <td colspan="2">{{ itemTr.glass_child }}</td> <td colspan="8">{{ itemTr.glass_child }}</td> <td class="tdNowrap">产品名称:</td> <td colspan="22">{{ itemTr.product_name }}</td> <td colspan="20">{{ itemTr.product_name }}</td> </tr> <tr> <td rowspan='2'>序号</td> @@ -270,6 +275,10 @@ <td rowspan='2'>面积</td> <td rowspan='2'>周长</td> <td rowspan='2'>半径</td> <td rowspan='2'>类型</td> <td rowspan='2'>原因</td> <td rowspan='2'>工序</td> <td rowspan='2'>班组</td> <td rowspan='2'>备注</td> <td v-for="(itemPr,index) in item.processList" :key="index" colspan="2">{{ itemPr.process }}</td> </tr> @@ -310,6 +319,10 @@ <td>{{ itemDatile.total_area }}</td> <td>{{ itemDatile.perimeter }}</td> <td>{{ itemDatile.bend_radius }}</td> <td>{{ itemDatile.patch_type }}</td> <td>{{ itemDatile.patch_reason }}</td> <td>{{ itemDatile.patch_processes }}</td> <td>{{ itemDatile.responsible_team }}</td> <td>{{ itemDatile.remarks }}</td> <td></td> <td></td> @@ -335,7 +348,7 @@ </tbody> <tfoot> <tr style="height: 14px"> <td v-for="(itemsum,index) in item.detail" :key="index" colspan="29"> <td v-for="(itemsum,index) in item.detail" :key="index" colspan="33"> 数量: <label>{{ itemsum.quantity }}</label> 面积: @@ -368,9 +381,13 @@ <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> @@ -398,13 +415,15 @@ <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="24"></td> <td colspan="28"></td> </tr> <tr v-for="(qrCodeItem,index) in item.detail" :key="index"> <td colspan="25"> <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;"> @@ -418,7 +437,7 @@ </td> </tr> <tr v-for="(itemtextareas,index) in item.detail" :key="index"> <td colspan="29" rowspan="6" style="width: 480px;height: 150px "> <td colspan="33" rowspan="6" style="width: 99%;height: 150px "> <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 12px;text-align: left">{{itemtextareas.processing_note}}</textarea> </div> </td> north-glass-erp/northglass-erp/src/components/pp/PrintReworkProcess.vue
@@ -9,6 +9,7 @@ import deepClone from "@/utils/deepClone"; import QRCode from "qrcode"; import companyInfo from "@/stores/sd/companyInfo"; import userInfo from "@/stores/userInfo" //语言获取 const company = companyInfo() const {t} = useI18n() @@ -16,6 +17,7 @@ let produceList = ref([]) let list = ref() const details = ref([]) const user=userInfo() const data = ref({ @@ -191,35 +193,23 @@ <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"> <div style="float: left;"><input style="border: none;font-size: 28px;width: 70px;margin: 5px "/></div> <td colspan="33"> <div style="float: left;">返片单号:{{itemFlow.patch_id}}</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">{{itemFlow.otherRemarks}} 流程卡号: {{ itemFlow.process_id }}/{{ itemFlow.technologyNumberMerge }} 共 {{ flowCardCount }} 架 </div> <div v-else style="text-align: right;font-weight: bolder"> {{itemFlow.otherRemarks}} 流程卡号: {{ itemFlow.process_id }}/{{ itemFlow.technologyNumber }} 共 {{ flowCardCount }} 架 </div> </td> <td v-else colspan="24"> <div style="float: left;"><input style="border: none;font-size: 28px;width: 70px "/></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">流程卡号: {{ itemFlow.process_id }}/{{ itemFlow.technologyNumberMerge }} 共 {{ flowCardCount }} 架 </div> <div v-else style="text-align: right;font-weight: bolder">流程卡号: {{ itemFlow.process_id }}/{{ itemFlow.technologyNumber }} 共 {{ flowCardCount }} 架 <div style="font-weight: bolder;display: flex;justify-content:space-between"> <div>打印人:{{user.user.userName}}</div> <div> {{itemFlow.otherRemarks}} 流程卡号: {{ itemFlow.process_id }}/{{ itemFlow.technologyNumber }} 共 {{ item.count }} 架 </div> </div> </td> </tr> @@ -227,35 +217,40 @@ <td class="tdNowrap">客户名称:</td> <td colspan="2">{{ items.customer_name }}</td> <td class="tdNowrap">项目名称:</td> <td colspan="2">{{ items.project }}</td> <td colspan="8">{{ 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="20" style="width: 500px">{{ items.process }}</td> </tr> <tr v-for="(itemTr,index) in item.detail" :key="index"> <td class="tdNowrap">磨边类型:</td> <td colspan="2">{{ itemTr.edging_type }}</td> <td class="tdNowrap">单片名称:</td> <td colspan="2">{{ itemTr.glass_child }}</td> <td colspan="8">{{ 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 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'>宽*高</td> <td rowspan='2'>数量</td> <td rowspan='2'>面积</td> <td rowspan='2'>周长</td> <td rowspan='2'>半径</td> <td rowspan='2'>类型</td> <td rowspan='2'>原因</td> <td rowspan='2'>工序</td> <td rowspan='2'>班组</td> <td rowspan='2'>备注</td> <td v-for="(itemPr,index) in item.processList" :key="index" colspan="2">{{ itemPr.process }}</td> </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> @@ -279,16 +274,23 @@ <tr v-for="(itemDatile,index) in item.detailList" :key="index"> <td>{{ itemDatile.order_number }}</td> <td>{{ itemDatile.s01Value }}</td> <td v-if="like=='1'">{{ itemDatile.technology_number }}</td> <td v-else style="display: none"></td> <td>{{ itemDatile.technology_number }}</td> <td>{{ itemDatile.child_width }}</td> <td class="item" style="width: 5%;height: 100%;"> <el-input v-model="itemDatile.quantity" style="border: none" @keyup="handleSummary()"></el-input> <input v-model="itemDatile.quantity" style="width: 100%;height: 100%" @keyup="handleSummary()"/> </td> <td>{{ itemDatile.total_area }}</td> <td>{{ itemDatile.perimeter }}</td> <td>{{ itemDatile.bend_radius }}</td> <td>{{ itemDatile.patch_type }}</td> <td>{{ itemDatile.patch_reason }}</td> <td>{{ itemDatile.patch_processes }}</td> <td>{{ itemDatile.responsible_team }}</td> <td>{{ itemDatile.remarks }}</td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> @@ -309,7 +311,7 @@ </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="33"> 数量: <label>{{ itemsum.quantity }}</label> 面积: @@ -328,7 +330,12 @@ <span v-if="itemtextarea.responsible_personnel!=null">责任信息:{{itemtextarea.responsible_personnel}}</span> </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> @@ -352,10 +359,15 @@ <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> @@ -365,9 +377,16 @@ <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="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;"> @@ -379,7 +398,12 @@ </span> </span> </td> </tr> <tr v-for="(itemtextareas,index) in item.detail" :key="index"> <td colspan="33" rowspan="6" style="width: 99%;height: 150px "> <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 12px;text-align: left">{{itemtextareas.processing_note}}</textarea> </div> </td> </tr> </tfoot> </table> north-glass-erp/northglass-erp/src/views/pp/Replenish/AddReplenish.vue
@@ -318,11 +318,5 @@ width: 99%; height: 95%; } .vxe-grid { /* 禁用浏览器默认选中 */ -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } </style> north-glass-erp/src/main/java/com/example/erp/mapper/pp/PatchLogMapper.java
@@ -4,6 +4,7 @@ import com.example.erp.dto.pp.PatchLogDTO; import com.example.erp.entity.pp.PatchLog; import com.example.erp.entity.pp.ReportingWork; import com.example.erp.entity.userInfo.Log; import com.github.yulichang.base.MPJBaseMapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -38,9 +39,9 @@ List<PatchLogAddDTO> getSelectReplenish(@Param("offset") Integer offset, @Param("pageSize") Integer pageSiz,@Param("patchLogAddDTO") PatchLogAddDTO patchLogAddDTO); Boolean deleteReplenishMp(String patchId); Boolean deleteReplenishMp(Long Id); Boolean updatePatchDdMp(String reportingWorkId, String orderSort, Integer technologyNumber, Integer qualityInspector); Boolean updatePatchDdMp(String reportingWorkId, String orderSort, Integer technologyNumber, Integer qualityInspector, String patchReason); Boolean updatePatchBgMp(String reportingWorkId, String orderSort, Integer technologyNumber); north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkMapper.java
@@ -82,4 +82,10 @@ String getPatchConditionMp(String reportingWorkId); Integer getFirstStep(String processId, String orderSort, Integer technologyNumber, String interceptProcess); Boolean updateReplenishWorkProcess(String processId, String orderSort, Integer technologyNumber, Integer patchNum, String patchProcesses); Boolean updateRWPatchNum(String reportingWorkId, Integer patchNum); Boolean updateRWDPatchNum(String reportingWorkId, String orderSort, Integer technologyNumber, Integer patchNum); } north-glass-erp/src/main/java/com/example/erp/service/pp/ReplenishService.java
@@ -252,12 +252,17 @@ //判断是否已经审核 if(patchLog1.getReviewStatus()==0){ //删除补片表对应补片id数据 patchMapper.deleteReplenishMp(patchLog.getPatchId()); //修改次破明细表补片数量和状态 patchMapper.updatePatchDdMp(patchLog.getReportingWorkId(),patchLog.getOrderSort(),patchLog.getTechnologyNumber(),patchLog.getPatchNum()); patchMapper.deleteReplenishMp(patchLog1.getId()); //删除次破明细表 patchMapper.updatePatchDdMp(patchLog1.getReportingWorkId(),patchLog1.getOrderSort(),patchLog1.getTechnologyNumber(),patchLog1.getPatchNum(),patchLog1.getPatchReason()); //修改报工明细表状态 patchMapper.updatePatchBgMp(patchLog.getReportingWorkId(),patchLog.getOrderSort(),patchLog.getTechnologyNumber()); patchMapper.updatePatchBgMp(patchLog1.getReportingWorkId(),patchLog1.getOrderSort(),patchLog1.getTechnologyNumber()); //修改报工主表次破数量 reportingWorkMapper.updateRWPatchNum(patchLog1.getReportingWorkId(),patchLog1.getPatchNum()); //修改报工副表次破数量 reportingWorkMapper.updateRWDPatchNum(patchLog1.getReportingWorkId(),patchLog1.getOrderSort(),patchLog1.getTechnologyNumber(),patchLog1.getPatchNum()); //更新报工流程表数据 reportingWorkMapper.updateReplenishWorkProcess(patchLog1.getProcessId(),patchLog1.getOrderSort(),patchLog1.getTechnologyNumber(),patchLog1.getPatchNum(),patchLog1.getPatchProcesses()); } else{ saveState = false; @@ -270,7 +275,7 @@ //将异常传入数据库 SysError sysError = new SysError(); sysError.setError(e.toString()); sysError.setFunc("saveOrder"); sysError.setFunc("deleteReplenishSv"); sysErrorService.insert(sysError); saveState = false; north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -1242,7 +1242,11 @@ round(ogd.child_width) as width, round(ogd.child_height) as height, pd.separation, fc.technology_number fc.technology_number, pl.patch_type, pl.patch_reason, pl.patch_processes, pl.responsible_team 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 @@ -1365,7 +1369,8 @@ dd.responsible_process, dd.responsible_team, concat('对应我司单号', o.batch) AS otherRemarks, dd.responsible_personnel dd.responsible_personnel, pl.rework_id as patch_id 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 @@ -1410,7 +1415,12 @@ round(ogd.child_width) as width, round(ogd.child_height) as height, pd.separation, fc.technology_number fc.technology_number, pl.rework_type as patch_type, pl.rework_reason as patch_reason, pl.rework_processes as patch_processes, pl.responsible_team, pl.rework_team 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 north-glass-erp/src/main/resources/mapper/pp/PatchLogMapper.xml
@@ -373,13 +373,14 @@ </select> <delete id="deleteReplenishMp"> delete from pp.patch_log where patch_id=#{patchId} delete from pp.patch_log where id=#{id} </delete> <update id="updatePatchDdMp"> update pp.damage_details set patch_status=0,quantity=quantity-#{qualityInspector} <delete id="updatePatchDdMp"> delete from pp.damage_details where reporting_work_id=#{reportingWorkId} and order_number=#{orderSort} and technology_number=#{technologyNumber} </update> and breakage_reason=#{patchReason} </delete> <update id="updatePatchBgMp"> update pp.reporting_work_detail set patch_status=0 north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
@@ -858,4 +858,27 @@ ogd.technology_number order by fc.order_number </select> <update id="updateReplenishWorkProcess"> update sd.order_process_detail set broken_num=broken_num - #{patchNum} where process_id = #{processId} and order_number = #{orderSort} and technology_number = #{technologyNumber} and process = #{patchProcesses} </update> <update id="updateRWPatchNum"> update reporting_work set this_worn_quantity=this_worn_quantity-#{patchNum} where reporting_work_id=#{reportingWorkId} </update> <update id="updateRWDPatchNum"> update reporting_work_detail set breakage_quantity=breakage_quantity-#{patchNum} where reporting_work_id=#{reportingWorkId} and order_number = #{orderSort} and technology_number = #{technologyNumber} </update> </mapper>