Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override
| | |
| | | .row3 { |
| | | margin-top: -5px; |
| | | height: 30px; |
| | | font-size: 20pt; |
| | | font-size: 22pt; |
| | | font-weight: bolder; |
| | | } |
| | | |
| | |
| | | margin-left: 40px; |
| | | } |
| | | .row1 span{ |
| | | font-size: 15pt; |
| | | font-size: 17pt; |
| | | } |
| | | |
| | | .row2 span{ |
| | | font-size: 15pt; |
| | | font-size: 17pt; |
| | | } |
| | | |
| | | .row5 span{ |
| | | font-size: 15pt; |
| | | font-size: 17pt; |
| | | } |
| | | |
| | | .row6 { |
| | |
| | | height: 35px; |
| | | } |
| | | .row1 span { |
| | | font-size: 15pt; |
| | | font-size: 17pt; |
| | | } |
| | | |
| | | .row2 { |
| | |
| | | height: 35px; |
| | | } |
| | | .row2 span { |
| | | font-size: 14pt; |
| | | font-size: 16pt; |
| | | } |
| | | span { |
| | | font-size: 12pt; |
| | |
| | | .row3 { |
| | | margin-top: -5px; |
| | | height: 35px; |
| | | font-size: 22pt; |
| | | font-size: 24pt; |
| | | font-weight: bolder; |
| | | line-height: 35px; |
| | | } |
| | |
| | | margin-left: 20px; |
| | | } |
| | | .row5 span { |
| | | font-size: 14pt; |
| | | font-size: 16pt; |
| | | } |
| | | |
| | | .row6 { |
| | |
| | | height: 35px; |
| | | } |
| | | .row1 span { |
| | | font-size: 15pt; |
| | | font-size: 17pt; |
| | | } |
| | | .row2 { |
| | | font-size: 12pt; |
| | |
| | | height: 35px; |
| | | } |
| | | .row2 span { |
| | | font-size: 14pt; |
| | | font-size: 17pt; |
| | | } |
| | | span { |
| | | font-size: 12pt; |
| | |
| | | line-height: 35px; |
| | | } |
| | | .row3 span{ |
| | | font-size: 22pt; |
| | | font-size: 24pt; |
| | | } |
| | | |
| | | .row5 { |
| | |
| | | font-size: 14pt; |
| | | } |
| | | .row5 span { |
| | | font-size: 14pt; |
| | | font-size: 16pt; |
| | | } |
| | | |
| | | .row6 { |
| | |
| | | {field: 'glass_address', title: t('processCard.glassAddress'), width: 90}, |
| | | {field: 'quantity', title: t('order.quantity'), width: 90}, |
| | | {field: 'total_area', title: t('order.area'), width: 90}, |
| | | {field: 'product_name', title: t('order.product'), width: 120}, |
| | | {field: 'product_name', title: t('order.product'), width: 120, |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged}, |
| | | { |
| | | field: 'glass_child', |
| | | title: t('reportingWorks.glassChild'), |
| | |
| | | }, |
| | | {field: 'quantity', title: t('order.quantity'), width: 90}, |
| | | {field: 'total_area', title: t('order.area'), width: 90}, |
| | | {field: 'product_name', title: t('order.product'), width: 120}, |
| | | {field: 'product_name', title: t('order.product'), width: 120, |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged |
| | | }, |
| | | { |
| | | field: 'glass_child', |
| | | title: t('reportingWorks.glassChild'), |
| | |
| | | height: 20px; |
| | | } |
| | | .row1 span { |
| | | font-size: 10pt; |
| | | font-size: 12pt; |
| | | font-weight: bold; |
| | | } |
| | | |
| | |
| | | .row3 { |
| | | margin-top: -5px; |
| | | height: 25px; |
| | | font-size: 15pt; |
| | | font-size: 17pt; |
| | | font-weight: bolder; |
| | | } |
| | | |
| | |
| | | font-size: 8pt; |
| | | } |
| | | .row5 span { |
| | | font-size: 10pt; |
| | | font-size: 12pt; |
| | | font-weight: bold; |
| | | } |
| | | |
| | |
| | | font-size: 8pt; |
| | | } |
| | | .row6 span { |
| | | font-size: 10pt; |
| | | font-size: 12pt; |
| | | font-weight: bold; |
| | | } |
| | | .cell{ |
| | |
| | | height: 20px; |
| | | } |
| | | .row1 span { |
| | | font-size: 10pt; |
| | | font-size: 12pt; |
| | | } |
| | | |
| | | .row2 { |
| | |
| | | height: 20px; |
| | | } |
| | | .row2 span { |
| | | font-size: 10pt; |
| | | font-size: 12pt; |
| | | } |
| | | span { |
| | | font-size: 10pt; |
| | |
| | | .row3 { |
| | | margin-top: -5px; |
| | | height: 28px; |
| | | font-size: 15pt; |
| | | font-size: 17pt; |
| | | font-weight: bolder; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | .row5 span { |
| | | font-size: 8pt; |
| | | font-size: 10pt; |
| | | } |
| | | |
| | | |
| | |
| | | import {Search} from "@element-plus/icons-vue"; |
| | | import { useI18n } from 'vue-i18n' |
| | | import useUserInfoStore from '@/stores/userInfo' |
| | | import useOrderInfoStore from "@/stores/sd/order/orderInfo" |
| | | //语言获取 |
| | | const { t } = useI18n() |
| | | const userStore = useUserInfoStore() |
| | | const orderInfo = useOrderInfoStore() |
| | | let router=useRouter() |
| | | const getTableRow = (row,type) =>{ |
| | | switch (type) { |
| | |
| | | |
| | | |
| | | //第一次加载获取近七天时间和默认状态 |
| | | form.date1 = getNowTime() |
| | | let startTime = form.date1[0] |
| | | let endTime = form.date1[1] |
| | | |
| | | if (orderInfo.workOrderDate[0]=="" && orderInfo.workOrderDate[1]==""){ |
| | | orderInfo.workOrderDate=getNowTime() |
| | | } |
| | | let startTime = orderInfo.workOrderDate[0] |
| | | let endTime = orderInfo.workOrderDate[1] |
| | | //第一次加载数据 |
| | | |
| | | request.post(`/processCard/selectAddProcess/${startTime}/${endTime}`, filterData.value).then((res) => { |
| | |
| | | //点击查询 |
| | | const getWorkOrder = () => { |
| | | |
| | | let startTime = form.date1[0] |
| | | let endTime = form.date1[1] |
| | | let startTime = orderInfo.workOrderDate[0] |
| | | let endTime = orderInfo.workOrderDate[1] |
| | | request.post(`/processCard/selectAddProcess/${startTime}/${endTime}`, filterData.value).then((res) => { |
| | | if (res.code == 200) { |
| | | |
| | |
| | | } |
| | | |
| | | //获取选中时间 |
| | | let startTime = form.date1[0] |
| | | let endTime = form.date1[1] |
| | | let startTime = orderInfo.workOrderDate[0] |
| | | let endTime = orderInfo.workOrderDate[1] |
| | | |
| | | request.post(`/processCard/selectAddProcess/${startTime}/${endTime}`, filterData.value).then((res) => { |
| | | if (res.code == 200) { |
| | |
| | | <div id="selectForm"> |
| | | <el-row :gutter="0"> |
| | | <el-date-picker |
| | | v-model="form.date1" |
| | | type="daterange" |
| | | format="YYYY/MM/DD" |
| | | value-format="YYYY-MM-DD" |
| | | :start-placeholder="$t('basicData.startDate')" |
| | | :end-placeholder="$t('basicData.endDate')" |
| | | v-model="orderInfo.workOrderDate" |
| | | :default-time="defaultTime" |
| | | |
| | | :end-placeholder="$t('basicData.endDate')" |
| | | :start-placeholder="$t('basicData.startDate')" |
| | | format="YYYY/MM/DD" |
| | | type="daterange" |
| | | value-format="YYYY-MM-DD" |
| | | /> |
| | | |
| | | |
| | |
| | | {field: 'breakageReason', width: 100,title: t('reportingWorks.breakageReason'), sortable: true,showOverflow:"ellipsis"}, |
| | | {field: 'breakageQuantity', width: 100,title: t('reportingWorks.quantityBroken'), sortable: true}, |
| | | {field: 'area',width: 100, title: t('reportingWorks.wornArea'), sortable: true}, |
| | | {field: 'project', width: 120,title: t('order.project'), sortable: true}, |
| | | {field: 'orderId',width: 120, title: t('order.orderId'), sortable: true}, |
| | | {field: 'project', width: 120,title: t('order.project'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'orderId',width: 120, title: t('order.orderId'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'glassChild',width: 120, title: t('reportingWorks.glassChild'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | ],//表格表头字段 |
| | | data:[],//表格数据 |
| | |
| | | }) |
| | | |
| | | //工序 |
| | | const value = ref(t('machine.edgeGrinding')) |
| | | const value = ref() |
| | | |
| | | //表尾求和 |
| | | const sumNum = (list, field) => { |
| | |
| | | }, |
| | | {field: 'order_number', width: 100, title: t('order.OrderNum')}, |
| | | {field: 'technology_number', width: 120, title: t('processCard.technologyNumber'), showOverflow: "ellipsis"}, |
| | | {field: 'glass_child', width: 100, title: t('reportingWorks.glassChild')}, |
| | | {field: 'glass_child', width: 100, title: t('reportingWorks.glassChild'), filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged}, |
| | | {field: 'child_width', width: 120, title: t('order.width')}, |
| | | {field: 'child_height', width: 120, title: t('order.height')}, |
| | | {field: 'quantity', width: 120, title: t('order.quantity')}, |
| | |
| | | {field: 'completeArea', width: 120, title: t('report.completedArea')}, |
| | | {field: 'incompleteNum', width: 120, title: t('report.unfinishedQuantity')}, |
| | | {field: 'incompleteArea', width: 120, title: t('report.unfinishedArea')}, |
| | | {field: 'product_name', width: 120, title: t('order.product')}, |
| | | {field: 'product_name', width: 120, title: t('order.product'), filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged}, |
| | | ],//表头按钮 |
| | | |
| | | toolbarConfig: { |
| | |
| | | <style scoped> |
| | | .main-div-customer { |
| | | width: 99%; |
| | | height: 100%; |
| | | height: 93%; |
| | | } |
| | | |
| | | #selectForm { |
| | |
| | | |
| | | List<Map<String, Object>> selectFlowCardMerge(String processId); |
| | | |
| | | Boolean updateFlowCardMerge(String processId,List<Integer> technologyNumbers); |
| | | Boolean updateFlowCardMerge(String processId,List<Integer> technologyNumbers,Integer index); |
| | | |
| | | Boolean deleteflowCardSort(String orderId, String processId); |
| | | |
| | |
| | | List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("flowCard")), FlowCard.class); |
| | | if (!flowCardList.isEmpty()) { |
| | | List<Map<String, Object>> flowCardList1=flowCardMapper.selectFlowCardMerge(flowCardList.get(0).getProcessId()); |
| | | int index=1; |
| | | for(int i = 0;i < flowCardList1.size();i++){ |
| | | if(Integer.valueOf(flowCardList1.get(i).get("count2").toString())>1){ |
| | | List<Integer> technologyNumber = Arrays.stream(flowCardList1.get(i).get("count1").toString().split(",")) |
| | | .map(Integer::parseInt) |
| | | .collect(Collectors.toList()); |
| | | flowCardMapper.updateFlowCardMerge(flowCardList.get(0).getProcessId(),technologyNumber); |
| | | flowCardMapper.updateFlowCardMerge(flowCardList.get(0).getProcessId(),technologyNumber,index); |
| | | index+=1; |
| | | returns="true"; |
| | | } |
| | | } |
| | |
| | | </select> |
| | | |
| | | <update id="updateFlowCardMerge"> |
| | | update pp.flow_card fc set fc.merge=1 |
| | | update pp.flow_card fc set fc.merge=#{index} |
| | | where fc.process_id = #{processId} and fc.technology_number in |
| | | <foreach item="technologyNumber" collection="technologyNumbers" open="(" separator="," close=")"> |
| | | #{technologyNumber} |
| | |
| | | <if test="crossProcessBreakingDTO.breakageType != null and crossProcessBreakingDTO.breakageType != ''"> |
| | | and dd.breakage_type regexp #{crossProcessBreakingDTO.breakageType} |
| | | </if> |
| | | <if test="crossProcessBreakingDTO.project != null and crossProcessBreakingDTO.project != ''"> |
| | | and o.project regexp #{crossProcessBreakingDTO.project} |
| | | </if> |
| | | <if test="crossProcessBreakingDTO.orderId != null and crossProcessBreakingDTO.orderId != ''"> |
| | | and o.order_id regexp #{crossProcessBreakingDTO.orderId} |
| | | </if> |
| | | GROUP BY dd.id |
| | | order by dd.id desc |
| | | limit #{offset},#{pageSize} |
| | |
| | | and dd.available = 0 |
| | | and reviewed_state != 2 |
| | | and rw.this_process != dd.responsible_process |
| | | <if test="crossProcessBreakingDTO.code != null and crossProcessBreakingDTO.code != ''"> |
| | | and JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) regexp #{crossProcessBreakingDTO.code} |
| | | </if> |
| | | <if test="crossProcessBreakingDTO.processId != null and crossProcessBreakingDTO.processId != ''"> |
| | | and rw.process_id regexp #{crossProcessBreakingDTO.processId} |
| | | </if> |
| | | <if test="crossProcessBreakingDTO.thisProcess != null and crossProcessBreakingDTO.thisProcess != ''"> |
| | | and rw.this_process regexp #{crossProcessBreakingDTO.thisProcess} |
| | | </if> |
| | | <if test="crossProcessBreakingDTO.responsibleProcess != null and crossProcessBreakingDTO.responsibleProcess != ''"> |
| | | and dd.responsible_process regexp #{crossProcessBreakingDTO.responsibleProcess} |
| | | </if> |
| | | <if test="crossProcessBreakingDTO.responsibleTeam != null and crossProcessBreakingDTO.responsibleTeam != ''"> |
| | | and dd.responsible_team regexp #{crossProcessBreakingDTO.responsibleTeam} |
| | | </if> |
| | | <if test="crossProcessBreakingDTO.glassChild != null and crossProcessBreakingDTO.glassChild != ''"> |
| | | and ogd.glass_child regexp #{crossProcessBreakingDTO.glassChild} |
| | | </if> |
| | | <if test="crossProcessBreakingDTO.breakageType != null and crossProcessBreakingDTO.breakageType != ''"> |
| | | and dd.breakage_type regexp #{crossProcessBreakingDTO.breakageType} |
| | | </if> |
| | | <if test="crossProcessBreakingDTO.project != null and crossProcessBreakingDTO.project != ''"> |
| | | and o.project regexp #{crossProcessBreakingDTO.project} |
| | | </if> |
| | | <if test="crossProcessBreakingDTO.orderId != null and crossProcessBreakingDTO.orderId != ''"> |
| | | and o.order_id regexp #{crossProcessBreakingDTO.orderId} |
| | | </if> |
| | | order by dd.id desc |
| | | </select> |
| | | |
| | |
| | | ogd.glass_child, |
| | | ogd.child_width, |
| | | ogd.child_height, |
| | | od.quantity, |
| | | fc.quantity, |
| | | ROUND(ogd.child_width * ogd.child_height / 1000000, 2) as childArea, |
| | | ROUND(ogd.child_width * ogd.child_height * od.quantity / 1000000, 2) as actualArea, |
| | | ROUND(ogd.child_width * ogd.child_height * fc.quantity / 1000000, 2) as actualArea, |
| | | odpd.reporting_work_num as completeNum, |
| | | ROUND(ogd.child_width * ogd.child_height * odpd.reporting_work_num / 1000000, |
| | | 2) as completeArea, |
| | | od.quantity - odpd.reporting_work_num as incompleteNum, |
| | | ROUND(ogd.child_width * ogd.child_height * (od.quantity - odpd.reporting_work_num) / 1000000, |
| | | fc.quantity - odpd.reporting_work_num as incompleteNum, |
| | | ROUND(ogd.child_width * ogd.child_height * (fc.quantity - odpd.reporting_work_num) / 1000000, |
| | | 2) as incompleteArea, |
| | | od.product_name |
| | | |
| | |
| | | and o.create_time between #{selectTime1} and #{selectTime2} |
| | | and position(#{orderId} in od.order_id) |
| | | and position(#{inputProject} in o.project) |
| | | and od.quantity > odpd.reporting_work_num |
| | | and fc.quantity - odpd.reporting_work_num>0 |
| | | |
| | | group by fc.process_id, fc.order_number, fc.technology_number |
| | | order by fc.process_id, fc.order_number, fc.technology_number |