Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override
| | |
| | | |
| | | const TgaStyleSet = ref([ |
| | | { |
| | | tid: '此面为室内面', title: '此面为室内面', data: '', type: 'text', |
| | | tid: '清空', title: '', data: '', type: 'text', |
| | | options: { |
| | | field: '', |
| | | testData: '', |
| | |
| | | } |
| | | }, |
| | | { |
| | | tid: '此面为室内面', title: '此面为室内面', data: '', type: 'text', |
| | | options: { |
| | | field: 'inner', |
| | | testData: '', |
| | | width:100, |
| | | height: 16, |
| | | fontSize: 11.25, |
| | | textAlign: "center", |
| | | textContentVerticalAlign: "middle" |
| | | } |
| | | }, |
| | | { |
| | | tid: '此面为室外面', title: '此面为室外面', data: '', type: 'text', |
| | | options: { |
| | | field: '', |
| | | field: 'outside', |
| | | testData: '', |
| | | width:100, |
| | | height: 16, |
| | |
| | | tid: 'size', title: '尺寸数量', data: '', type: 'text', |
| | | options: { |
| | | field: 'size', |
| | | testData: '', |
| | | width:270, |
| | | height: 16, |
| | | fontSize: 11.25, |
| | | textAlign: "left", |
| | | textContentVerticalAlign: "middle" |
| | | } |
| | | }, |
| | | { |
| | | tid: 'numberSize', title: '序号尺寸', data: '', type: 'text', |
| | | options: { |
| | | field: 'numberSize', |
| | | testData: '', |
| | | width:270, |
| | | height: 16, |
| | |
| | | } |
| | | const changeTag = () => { |
| | | const json = JSON.parse(tag.value.value) |
| | | //json.panels[0].printElements[0].options.fields.push({text: '序号尺寸', field: 'numberSize'}) |
| | | |
| | | hiprintTemplate.value.setPaper(json.panels[0].width, json.panels[0].height) |
| | | hiprintTemplate.value.update(json) |
| | | } |
| | |
| | | showOverflow:true, |
| | | rowConfig: {isCurrent: true, isHover: true,height: 30},//鼠标移动或选择高亮 |
| | | virtualScroll: true, // 开启虚拟滚动功能 |
| | | id: 'OrderProcess', |
| | | id: 'Order_Process', |
| | | printConfig: {}, |
| | | importConfig: {}, |
| | | exportConfig: {}, |
| | | scrollY:{ enabled: true,gt:13 },//开启虚拟滚动 |
| | | //scrollX:{ enabled: true,gt:15 },//开启虚拟滚动 |
| | | |
| | | filterConfig: { //筛选配置项 |
| | | // remote: true |
| | | }, |
| | | columnConfig: { |
| | | resizable: true, |
| | | useKey: true |
| | |
| | | const columns = [ |
| | | {field: 'order_number',fixed:"left", width: 90,title: t('order.OrderNum'),showOverflow:"ellipsis"}, |
| | | // {type:'expand',fixed:"left",slots: { content:'content' },width: 50}, |
| | | {field: 'product_name', width: 150, title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged}, |
| | | {field: 'glass_child',width: 130, title: t('reportingWorks.glassChild') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged}, |
| | | {field: 'order_type', width: 120,title: t('order.orderType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged}, |
| | | {field: 'process_id',width: 110, title: t('processCard.processId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged}, |
| | | {field: 'product_name', width: 150, title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'glass_child',width: 130, title: t('reportingWorks.glassChild') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'order_type', width: 120,title: t('order.orderType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'process_id',width: 110, title: t('processCard.processId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | |
| | | {field: 'technology_number', width: 90,title: t('processCard.technologyNumber'),showOverflow:"ellipsis"}, |
| | | {field: 'quantity', width: 90,title: t('order.quantity')}, |
| | |
| | | if (res.code == 200) { |
| | | |
| | | gridOptions.columns = JSON.parse(JSON.stringify(columns)) |
| | | gridOptions.columns.forEach(item =>{ |
| | | item.filterMethod = filterChanged |
| | | }) |
| | | res.data.title.forEach(item =>{ |
| | | let column = {slots: { default: 'quantitySum' }, width: 90,title: item.process} |
| | | gridOptions.columns.push(column) |
| | |
| | | }, |
| | | |
| | | }) |
| | | const processCardColumns = reactive([ |
| | | {field: 'process_id', title: '流程卡', width: 200}, |
| | | {field: 'project', title: '项目名', width: 150}, |
| | | {field: 'order_number', title: '项目名', width: 150}, |
| | | {field: 'width', title: '宽', width: 150}, |
| | | {field: 'height', title: '高', width: 150}, |
| | | {field: 'technology_number', title: '层', width: 150}, |
| | | {field: 'layout_status', title: '总层数', width: 150}, |
| | | {field: 'quantity', title: '数量', width: 150}, |
| | | ]); |
| | | |
| | | // 右键菜单 |
| | | const operationConfigs = [ |
| | | { |
| | |
| | | gridRef: xGrid, |
| | | requiresRow: false, |
| | | showMessage: () => { |
| | | ElMessage.info('此功能暂未完善,暂时无法执行显示流程卡操作。'); |
| | | getProcessCard(); |
| | | processCardDialogVisible.value = true; |
| | | ElMessage.info('操作成功!'); |
| | | } |
| | | }, |
| | | { |
| | |
| | | gridRef: xGrid, |
| | | requiresRow: false, |
| | | showMessage: () => { |
| | | processCardDialogVisible.value = false; |
| | | ElMessage.info('此功能暂未完善,暂时无法执行隐藏流程卡操作。'); |
| | | } |
| | | }, |
| | |
| | | if (config.code === 'setAmount') { |
| | | config.openAmount(); |
| | | ElMessage.success(config.successMsg); |
| | | }else if (['displayProcessCard', 'hideProcessCard', 'setShape', 'safeDXF', 'exportOPTIMA'].includes(config.code)) { |
| | | } else if (['displayProcessCard', 'hideProcessCard', 'setShape', 'safeDXF', 'exportOPTIMA'].includes(config.code)) { |
| | | config.showMessage(); |
| | | } |
| | | }).catch(() => { |
| | |
| | | fetchData(); |
| | | } |
| | | }); |
| | | |
| | | // 流程卡窗口 |
| | | const processCardDialogVisible = ref(false); |
| | | // 用于存储流程卡数据 |
| | | const processCardData = ref(null); |
| | | //流程卡 |
| | | const getProcessCard = () => { |
| | | const projectNo = ref('P24120301') |
| | | request.post(`/glassOptimize/getProcessCard/${projectNo.value}`).then((res) => { |
| | | if (Number(res.code) === 200) { |
| | | processCardData.value = res.data.data; |
| | | } else { |
| | | ElMessage.warning(res.msg); |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | // 从子组件SetAmount获取磨量值,并更新表格数据 |
| | | const Amount = (amountData) => { |
| | |
| | | </template> |
| | | </vxe-grid> |
| | | |
| | | <!-- 流程卡表格 --> |
| | | <el-dialog |
| | | v-model="processCardDialogVisible" |
| | | title="流程卡数据" |
| | | width="80%" |
| | | heigth="600px" |
| | | style="height: 80%;" |
| | | > |
| | | <vxe-grid |
| | | height="100%" |
| | | class="mytable - scrollbar" |
| | | :data="processCardData" |
| | | :columns="processCardColumns" |
| | | > |
| | | </vxe-grid> |
| | | </el-dialog> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | return Result.seccess(glassOptimizeService.projectInfoSv(projectNo)); |
| | | } |
| | | |
| | | //工程信息流程卡 |
| | | @ApiOperation("工程信息流程卡接口") |
| | | @PostMapping ("/getProcessCard/{projectNo}") |
| | | public Result getProcessCard( |
| | | @PathVariable String projectNo){ |
| | | return Result.seccess(glassOptimizeService.getProcessCardSv(projectNo)); |
| | | } |
| | | |
| | | //库存信息 |
| | | @ApiOperation("库存信息接口") |
| | | @PostMapping ("/materialStore/{thickness}/{model}") |
| | |
| | | //工程信息 |
| | | List<Map<String, Object>> projectInfoMp(String projectNo); |
| | | |
| | | //工程信息流程卡 |
| | | List<Map<String, Object>> getProcessCardMp(String projectNo); |
| | | |
| | | //库存信息 |
| | | List<Map<String, Object>> materialStoreMp(String thickness, String model); |
| | | |
| | |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDate; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Service |
| | | @DS("mm") |
| | |
| | | //获取对象集合循环进行新增修改 |
| | | List<FlowCard> flowCardlist = JSONArray.parseArray(JSONObject.toJSONString(object.get("flowCard")), FlowCard.class); |
| | | if (!flowCardlist.isEmpty()){ |
| | | //获取单号 |
| | | String oddNumber= orderNumberSetting("入库"); |
| | | for (FlowCard flowCard : flowCardlist) { |
| | | //获取单号 |
| | | String oddNumber= orderNumberSetting("入库"); |
| | | //添加出入库记录 |
| | | finishedOperateLogMapper.insertIntFinishedOperateLog(flowCard,userName,oddNumber,container); |
| | | Integer finishedGoodsInventorycount = finishedGoodsInventoryMapper.findOrderNumberdcount(flowCard.getOrder().getOrderId(),flowCard.getOrderNumber()); |
| | |
| | | return map; |
| | | } |
| | | |
| | | //工程信息流程卡 |
| | | public Map<String, Object> getProcessCardSv(String projectNo) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("data", glassOptimizeMapper.getProcessCardMp(projectNo)); |
| | | return map; |
| | | } |
| | | |
| | | //库存信息 |
| | | public Map<String, Object> materialStoreSv(String thickness, String model) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | |
| | | fc.process_id, |
| | | fc.received_quantity, |
| | | o.batch |
| | | from pp.flow_card fc left join sd.order_detail od on fc.order_id=od.order_id and fc.order_number=od.order_number inner join sd.`order` o on |
| | | from (select *,min(inventory_quantity) as min_inventory_quantity from pp.flow_card group by order_id,order_number,process_id) as fc |
| | | left join sd.order_detail od on fc.order_id=od.order_id and fc.order_number=od.order_number inner join sd.`order` o on |
| | | o.order_id=fc.order_id |
| | | <where> |
| | | and fc.received_quantity <![CDATA[<]]> fc.inventory_quantity |
| | | and fc.received_quantity <![CDATA[<]]> fc.min_inventory_quantity |
| | | <if test="flowCard.order.orderId != null and flowCard.order.orderId != ''"> |
| | | and o.order_id regexp #{flowCard.order.orderId} |
| | | </if> |
| | |
| | | <if test="finishedOperateLog.quantity != null and finishedOperateLog.quantity != ''"> |
| | | and fol.quantity regexp #{finishedOperateLog.quantity} |
| | | </if> |
| | | <if test="finishedOperateLog.processId != null and finishedOperateLog.processId != ''"> |
| | | and fol.process_id regexp #{finishedOperateLog.processId} |
| | | </if> |
| | | <if test="finishedOperateLog.operator != null and finishedOperateLog.operator != ''"> |
| | | and fol.operator regexp #{finishedOperateLog.operator} |
| | | </if> |
| | |
| | | ' X ', |
| | | TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))), |
| | | ' = ',#{printQuantity} ) as size, |
| | | |
| | | CONCAT( |
| | | od.order_number,') ', |
| | | TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))), |
| | | ' X ', |
| | | TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))), |
| | | ' = ',#{printQuantity} ) as numberSize, |
| | | od.order_number as orderNumber, |
| | | fc.technology_number as technologyNumber, |
| | | od.building_number as buildingNumber, |
| | |
| | | f.order_number; |
| | | </select> |
| | | |
| | | <!--工程信息流程卡--> |
| | | <select id="getProcessCardMp"> |
| | | SELECT |
| | | fc.process_id, |
| | | fc.order_number, |
| | | fc.technology_number, |
| | | fc.quantity, |
| | | fc.layout_status, |
| | | so.project, |
| | | sd.child_width AS width, |
| | | sd.child_height AS height |
| | | FROM |
| | | pp.flow_card AS fc |
| | | INNER JOIN sd.order AS so ON fc.order_id = so.order_id |
| | | INNER JOIN sd.order_glass_detail AS sd ON sd.order_id = so.order_id AND fc.order_id = sd.order_id |
| | | WHERE |
| | | fc.project_no = #{projectNo} |
| | | GROUP BY |
| | | fc.order_id, |
| | | fc.order_number, |
| | | fc.technology_number ; |
| | | </select> |
| | | |
| | | <!--库存信息--> |
| | | <select id="materialStoreMp"> |
| | | SELECT |