| | |
| | | import {VXETable} from "vxe-table"; |
| | | import useUserInfoStore from '@/stores/userInfo' |
| | | import {useI18n} from "vue-i18n"; |
| | | import UpdateOrderCraft from "@/components/sd/order/UpdateOrderCraft.vue"; |
| | | import {filterChanged} from "@/hook"; |
| | | let productGlassTypeStore = useProductGlassTypeStore() |
| | | const { t } = useI18n() |
| | | const userStore = useUserInfoStore() |
| | |
| | | let pageNum=ref(1) |
| | | let pageState = null |
| | | |
| | | let craftVisible = ref(false) |
| | | |
| | | const craftObj = reactive({ |
| | | newCraft: [], |
| | | oldCraft: [], |
| | | }) |
| | | |
| | | const numberList = reactive({ |
| | | technologyNumber:[], |
| | | }) |
| | | |
| | | const saveCraft = () => { |
| | | //rowIndex.value.process = craftObj.newCraft.join('->') |
| | | let orderProcess= craftObj.newCraft.join('->') |
| | | request.post(`/processCard/updateProcess/${rowIndex.value.process_id}/${rowIndex.value.technology_number}/${rowIndex.value.order_id}/${orderProcess}`, craftObj).then((res) => { |
| | | if (res.code == 200 && res.data === true) { |
| | | ElMessage.success(t('basicData.msg.saveSuccess')) |
| | | router.push({ |
| | | path: '/main/processCard/SelectDetailProcessCard', |
| | | query: {processId: processId,random: Math.random()} |
| | | }) |
| | | } else { |
| | | |
| | | ElMessage.warning(t('basicData.msg.saveFail')) |
| | | |
| | | } |
| | | }) |
| | | craftVisible.value= false |
| | | } |
| | | |
| | | |
| | | let process = ref([]) |
| | | request.get(`/basicData/BasicDataByType/product/process`).then((res) =>{ |
| | | if (res.code==200){ |
| | | process.value=res.data |
| | | } |
| | | }) |
| | | |
| | | let rowIndex = ref({}) |
| | | const updateCraft = (row) => { |
| | | craftVisible.value= true |
| | | Object.keys(craftObj).forEach((key) =>{ |
| | | craftObj[key] = row['process'].split('->') |
| | | }) |
| | | Object.keys(numberList).forEach((key) =>{ |
| | | numberList[key] = row['concatNumber'].split(',') |
| | | }) |
| | | craftObj.technologyNumber=[] |
| | | craftObj.technologyNumber.push(...numberList.technologyNumber); |
| | | rowIndex.value = row |
| | | } |
| | | //第一次加载 |
| | | |
| | | const {currentRoute} = useRouter() |
| | |
| | | },//表头参数 |
| | | columns:[ |
| | | {type:'expand',fixed:"left",slots: { content:'content' },width: 50}, |
| | | {title: t('basicData.operate'), width: 100, slots: { default: 'button_slot' },fixed:"left",}, |
| | | { type: 'seq',fixed:"left", title: t('basicData.Number'), width: 50 }, |
| | | {field: 'order_id', title: t('order.orderId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },width: 80 }, |
| | | {field: 'order_id', title: t('order.orderId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },width: 110 }, |
| | | {field: 'process_id', width: 140, title: t('processCard.processId') ,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'order_number', title: t('order.OrderNum') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },}, |
| | | {field: 'technology_number', title: t('processCard.technologyNumber') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },}, |
| | | {field: 'order_number', title: t('order.OrderNum') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },width: 100}, |
| | | {field: 'technology_number', title: t('processCard.technologyNumber') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },width: 100}, |
| | | {field: 'quantity', title: t('order.quantity'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, width: 80}, |
| | | {field: 'child_width', title: t('order.width'), }, |
| | | {field: 'child_height', title: t('order.height'), }, |
| | | {field: 'area', title: t('order.area') ,showOverflow:"ellipsis"}, |
| | | {field: 'product_name', title: t('order.product'), }, |
| | | {field: 'glass_child', title: t('reportingWorks.glassChild'), }, |
| | | {field: 'founder', title: t('processCard.founder'), }, |
| | | {field: 'splitFrame_time', title: t('processCard.splitFrameTime'), }, |
| | | {field: 'child_width', title: t('order.width'),width: 80 }, |
| | | {field: 'child_height', title: t('order.height'),width: 80 }, |
| | | {field: 'area', title: t('order.area') ,showOverflow:"ellipsis",width: 70}, |
| | | {field: 'process',width:250, title: t('craft.process'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },}, |
| | | {field: 'product_name', title: t('order.product'),width: 310 }, |
| | | {field: 'glass_child', title: t('reportingWorks.glassChild'),width: 200 }, |
| | | {field: 'founder', title: t('processCard.founder'),width: 110 }, |
| | | {field: 'splitFrame_time', title: t('processCard.splitFrameTime'),width: 110 }, |
| | | {field: 'concatNumber', title: '总序号',width: 110}, |
| | | |
| | | ],//表头按钮 |
| | | |
| | | toolbarConfig: { |
| | | buttons: [ |
| | | {'code': 'add', 'name': t('processCard.merge'),status: 'primary'} |
| | | {'code': 'add', 'name': t('processCard.merge'),status: 'primary'}, |
| | | |
| | | ], |
| | | import: false, |
| | | // export: true, |
| | |
| | | <!--左边固定显示的插槽--> |
| | | |
| | | |
| | | <template #num1_filter="{ column, $panel }"> |
| | | <div> |
| | | <div v-for="(option, index) in column.filters" :key="index"> |
| | | <input type="type" v-model="option.data" |
| | | @keyup.enter.native="$panel.confirmFilter()" |
| | | @input="changeFilterEvent($event, option, $panel)"/> |
| | | </div> |
| | | </div> |
| | | <!--左边固定显示的插槽--> |
| | | <template #button_slot="{ row }"> |
| | | <el-button @click="updateCraft(row)" link type="primary" size="small">{{$t('craft.updateCraft')}}</el-button> |
| | | </template> |
| | | |
| | | |
| | | </vxe-grid> |
| | | |
| | | <el-dialog id="processChange" |
| | | v-model="craftVisible" |
| | | :title="$t('craft.technologicalProcess')" |
| | | :close-on-click-modal="false" |
| | | :close-on-press-escape="false" |
| | | style="width: 60%;height:60% ;position: relative;" > |
| | | |
| | | <update-order-craft |
| | | :craftObj="craftObj" |
| | | :process="process" |
| | | @saveCraft="saveCraft" |
| | | /> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | |
| | | } |
| | | |
| | | @ApiOperation("修改工艺流程") |
| | | @PostMapping("/updateProcess/{processId}/{technologyNumber}/{orderId}/{process}") |
| | | public Result updateProcess( |
| | | @PathVariable String processId, |
| | | @PathVariable String technologyNumber, |
| | | @PathVariable String orderId, |
| | | @PathVariable String process, |
| | | @RequestBody Map<String, Object> object |
| | | ) { |
| | | |
| | | return Result.seccess(flowCardService.updateProcessSv(processId,technologyNumber,orderId,process,object)); |
| | | } |
| | | } |
| | |
| | | List<Map<String, Object>> getPrintCustomDataProject(String projectNo); |
| | | |
| | | List<Map<String, String>> getPrintLabel3(String projectNo); |
| | | |
| | | Boolean updateProcessMp(String processId, String technologyNumber, String process, String number); |
| | | |
| | | Boolean deleteProcessMp(String processId, String technologyNumber); |
| | | |
| | | Boolean updateOrderProcessMp(String orderId, String number, String technologyNumber, String orderprocess); |
| | | } |
| | |
| | | map.put("title", flowCardMapper.getPrintTitle(type)); |
| | | return map; |
| | | } |
| | | |
| | | public Boolean updateProcessSv(String processId, String technologyNumber, String orderId, String Orderprocess, Map<String, Object> object) { |
| | | |
| | | //判断该流程卡是否报工 |
| | | Integer count = flowCardMapper.reportingWorkCount(processId); |
| | | if (count == 0) { |
| | | //删除小片工艺表对应的数据 |
| | | flowCardMapper.deleteProcessMp(processId,technologyNumber); |
| | | //重新插入修改好工艺流程卡的数据 |
| | | List<String> newCraftList = (List<String>) object.get("newCraft"); |
| | | List<String> numberList = (List<String>) object.get("technologyNumber"); |
| | | // 判断 newCraftList 是否为空 |
| | | if (newCraftList != null) { |
| | | for (String number : numberList) { |
| | | //修改订单小片表工艺流程 |
| | | flowCardMapper.updateOrderProcessMp(orderId,number,technologyNumber,Orderprocess); |
| | | for (String process : newCraftList) { |
| | | flowCardMapper.updateProcessMp(processId,technologyNumber,process,number); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return true; |
| | | }else { |
| | | return false; |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | od.product_name, |
| | | ogd.glass_child, |
| | | fc.founder, |
| | | date(fc.splitFrame_time) as splitFrame_time |
| | | date(fc.splitFrame_time) as splitFrame_time, |
| | | ogd.process, |
| | | c.concatNumber |
| | | 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 sd.order_detail as od on od.order_id = ogd.order_id and od.order_number = ogd.order_number |
| | | left join ( |
| | | select process_id,technology_number, GROUP_CONCAT(order_number) as concatNumber from |
| | | flow_card where process_id = #{processId} GROUP BY process_id,technology_number |
| | | ) as c on c.process_id=fc.process_id |
| | | where fc.process_id = #{processId} |
| | | GROUP BY fc.order_id, fc.process_id, fc.order_number, fc.technology_number |
| | | order by fc.order_number, fc.technology_number |
| | |
| | | group by order_id,od.order_number |
| | | order by ogd.child_width desc,ogd.child_height desc |
| | | </select> |
| | | |
| | | <delete id="deleteProcessMp"> |
| | | delete from sd.order_process_detail where process_id = #{processId} and technology_number= #{technologyNumber} |
| | | </delete> |
| | | |
| | | <insert id="updateProcessMp"> |
| | | insert into sd.order_process_detail (order_id, |
| | | process_id, |
| | | order_number, |
| | | technology_number, |
| | | process, |
| | | create_time) |
| | | select fc.order_id, |
| | | fc.process_id, |
| | | fc.order_number, |
| | | #{technologyNumber}, |
| | | #{process}, |
| | | NOW() |
| | | from pp.flow_card as fc |
| | | where fc.process_id = #{processId} |
| | | and fc.order_number = #{number} |
| | | and fc.technology_number = #{technologyNumber} |
| | | GROUP BY fc.order_number |
| | | </insert> |
| | | |
| | | <update id="updateOrderProcessMp"> |
| | | update sd.order_glass_detail set process=#{orderprocess} |
| | | where order_id=#{orderId} and order_number=#{number} and technology_number=#{technologyNumber} |
| | | </update> |
| | | </mapper> |