.gitignore
@@ -7,7 +7,9 @@ *.jar *.war *.ear *.idea # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* # Ignore .idea files **/.idea/ north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
@@ -1,9 +1,12 @@ <script setup> <script lang="ts" setup> import {reactive, ref} from "vue" import {VXETable} from "vxe-table" import {useRouter} from "vue-router" const router = useRouter() import * as XLXS from "xlsx" import {ElMessage} from "element-plus" import request from "@/utils/request" import deepClone from "@/utils/deepClone" const router = useRouter() const xGrid = ref() const gridOptions = reactive({ border: "full",//表格加边框 @@ -18,6 +21,15 @@ exportConfig: {}, scrollY:{ enabled: true },//开启虚拟滚动 showOverflow:true, menuConfig: { body: { options: [ [ { code: 'addRow', name: '添加', prefixIcon: 'vxe-icon-square-plus', visible: true, disabled: false } ] ] } }, columnConfig: { resizable: true, useKey: true @@ -30,45 +42,103 @@ }, editConfig: { trigger: 'click', mode: 'row', mode: 'cell', showStatus: true },//表头参数 columns:[ // {title: '操作', width: 110,fixed:"left",slots: { default: 'openProductList' }}, {type: 'seq',fixed:"left", title: '自序', width: 80 }, {field: 'orderID',width:120, title: '楼号',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'orderID',width:120, title: '产品',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'orderID',width:120, title: '宽',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'orderID',width:120, title: '高',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'orderID',width:120, title: '数量',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'orderID',width:120, title: '单价',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'orderID',width:120, title: '形状',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'orderID',width:120, title: '总面积',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'orderID',width:120, title: '单片面积',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'orderID',width:120, title: '结算单片面积',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'orderID',width:120, title: '结算总面积',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'orderID',width:120, title: '磨边类型',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'orderID',width:120, title: '加工要求',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'orderID',width:120, title: '备注',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'orderID',width:120, title: '外购',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true} {field: 'buildingNumber',width:120, title: '楼号',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'productId',width:140, title: '产品ID',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'productName',width:120, title: '产品',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'price',width:140, title: '单价',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'quantity',width:120, title: '数量',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'grossAmount',width:120, title: '总金额',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'width',width:120, title: '宽',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'height',width:120, title: '高',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'area',width:150, title: '实际单片面积',filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true}, {field: 'grossArea',width:140, title: '实际总面积',filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true}, {field: 'computeArea',width:180, title: '结算单片面积',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'computeGrossArea',width:140, title: '结算总面积',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'shape',width:120, title: '形状',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'bendRadius',width:140, title: '弯钢弧度',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'edgingType',width:140, title: '磨边类型',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'processingNote',width:140, title: '加工要求',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, {field: 'remarks',width:120, title: '备注',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true} ],//表头按钮 ], //表单验证 editRules: { buildingNumber: [ { required: false}, { min: 0, max: 255, message: '名称长度在 0 到 255 个字符' } ], productId: [ { required: true, message: '请选择产品' } ], price: [ { validator ({ cellValue }) { const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/ if (cellValue && !regex.test(cellValue)) { return new Error('输入0.00~99999.99的数字') } } } ], computeArea: [ { validator ({ cellValue }) { const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/ if (cellValue && !regex.test(cellValue)) { return new Error('输入0.00~99999.99的数字') } } } ], quantity: [ { type: 'number', min: 0, message: '请输入大于等于0的数值' } ], width:[ { validator ({ cellValue }) { const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/ if (cellValue && !regex.test(cellValue)) { return new Error('输入0.00~99999.99的数字') } } } ], height:[ { validator ({ cellValue }) { const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/ if (cellValue && !regex.test(cellValue)) { return new Error('输入0.00~99999.99的数字') } } } ] }, toolbarConfig: { buttons: [ {'code': 'remarks', 'name': '加工要求'}, {'code': 'Craft', 'name': '工艺',status: 'primary'}, {'code': 'add', 'name': '审核',status: 'primary',disabled: true}, {'code': 'add', 'name': '保存',status: 'primary',icon: 'vxe-icon-save'} {'code': 'saveOrder', 'name': '保存',status: 'primary',icon: 'vxe-icon-save'} ], import: false, export: true, print: true, slots: { tools: 'toolbar_buttons' }, // import: false, // export: true, // print: true, zoom: true, custom: true }, data: [ ],//table body实际数据 } , //table body实际数据 footerMethod ({ columns, data }) {//页脚函数 return[ columns.map((column, columnIndex) => { @@ -84,26 +154,172 @@ } }) const gridEvents = { toolbarButtonClick ({ code }) { async toolbarButtonClick({code}) { const $grid = xGrid.value if ($grid) { switch (code) { case 'Craft': { router.push({path: '/main/order/updateOrderCraft', query: { orderID: 12123 }}) await router.push({path: '/main/order/updateOrderCraft', query: {orderID: 12123}}) break } case 'saveOrder': { if ($grid.getTableData().tableData.length === 0){ ElMessage.error('没有表格数据!') return } console.log($grid.getTableData().tableData) if ($grid) { const errMap = await $grid.validate(true) if (errMap) { ElMessage.error(`校验不通过!`) return } let order ={ title:titleUploadData.value, detail:$grid.getTableData().tableData } saveOrder(order) } break } } } },//头部按钮事件 menuClick ({ menu, row, column }) { const $grid = xGrid.value if ($grid) { switch (menu.code) { case 'deleteList': { $grid.removeCheckboxRow() break } case 'addRow': { if ($grid.getTableData().tableData.length >=240){ ElMessage.error('表格数据已达到最大值!') return } $grid.insert({}) //console.log($grid.getRecordset().insertRecords) break } } } }, cellDblclick (params) {//表格内容双击打开产品界面 const { row } = params //alert("我打开了产品界面") } } // 定义表头上传数据 const titleUploadData = ref({ orderType:'', alType:'', icon:'', orderClassify:'', packType:'', deliveryDate:'' }) //定义接收加载表头下拉数据 const titleSelectJson = ref({ orderType:[], alType:[], icon:[], orderClassify:[], packType:[], }) //页面第一次加载执行 request.get(`/basicData/orderBasicData`).then((res) => { if(res.code==200){ titleSelectJson.value=deepClone(res.data) titleUploadData.value.orderType = titleSelectJson.value.orderType[0].id titleUploadData.value.orderClassify = titleSelectJson.value.orderClassify[0].id titleUploadData.value.icon = titleSelectJson.value.icon[0].id titleUploadData.value.packType = titleSelectJson.value.packType[0].id titleUploadData.value.alType = titleSelectJson.value.alType[0].id const today = new Date today.setTime(today.getTime() + (15 * 24 * 60 * 60 * 1000)) titleUploadData.value.deliveryDate = today.getFullYear() + '-' + ("0" + (today.getMonth() + 1)).slice(-2) + '-' + ("0" + today.getDate()).slice(-2) }else{ ElMessage.warning(res.msg) } }) const saveOrder = (order) => { request.post(`/order/saveOrder`,order).then((res) => { if(res.code==200){ ElMessage.success('保存成功') }else { ElMessage.warning(res.msg) } }) } const countAmount = (row) => { return } const area = (row) => { return parseFloat((row.width * row.height/1000000).toFixed(2)) } const countArea = (row) => { return parseFloat((row.width * row.height/1000000).toFixed(2))*row.quantity } //导入功能 const impotEvent = async () => { const $grid = xGrid.value const { files } = await $grid.readFile({ types: ['xls', 'xlsx'] }) const fileReader = new FileReader() fileReader.onload = (event) => { const data = event.target ? event.target.result : '' const workbook = XLXS.read(data, { type: 'binary' }) let jsonData = XLXS.utils.sheet_to_json(workbook.Sheets.Sheet1).slice(1) if(jsonData.length>240){ ElMessage.error('导入数据不能超过240条,请分订单导入') return } jsonData.forEach((item,index) => { //item.computeArea //console.log() if(item.computeArea === undefined){ item.computeArea = area(item) } item.computeGrossArea = parseFloat((item.computeArea*item.quantity).toString()) }) xGrid.value.loadData(jsonData) } fileReader.readAsBinaryString(files[0]) } //行单元格修改修改触发此事件 const editClosedEvent = ({ row, column }) => { //判断修改相应的数值修改面积与金额 if (['width', 'height', 'quantity', 'price'].includes(column.property)) { row.area = area(row) row.grossArea = countArea(row) row.computeArea = row.area row.computeGrossArea = row.grossArea row.grossAmount=row.price * row.computeGrossArea }else if(column.property === 'computeArea'){ row.computeGrossArea=parseFloat((row.computeArea*row.quantity).toString()) row.grossAmount=row.price * row.computeGrossArea } } </script> <template> <div class="main-div"> <div class="order-primary" style="background-color: white"> <el-row> <el-col :span="2"><el-text>*项目名称:</el-text></el-col> @@ -116,26 +332,42 @@ </el-col> <el-col :span="2"><el-text>*订单类型:</el-text></el-col> <el-col :span="2"> <el-select clearable placeholder=" " > <el-option /> <el-select v-model="titleUploadData.orderType" clearable placeholder="" > <el-option v-for="item in titleSelectJson['orderType']" :key="item.id" :label="item.basicName" :value="item.id" /> </el-select> </el-col> <el-col :span="2"><el-text>订单分类:</el-text></el-col> <el-col :span="2"> <el-select clearable placeholder=" " > <el-option/> <el-select v-model="titleUploadData.orderClassify" clearable placeholder=" " > <el-option v-for="item in titleSelectJson['orderClassify']" :key="item.id" :label="item.basicName" :value="item.id" /> </el-select> </el-col> <el-col :span="2"><el-text>商标选项:</el-text></el-col> <el-col :span="2"> <el-select clearable placeholder=" " > <el-option/> <el-select v-model="titleUploadData.icon" clearable placeholder=" " > <el-option v-for="item in titleSelectJson['icon']" :key="item.id" :label="item.basicName" :value="item.id"/> </el-select> </el-col> <el-col :span="2"><el-text>包装方式:</el-text></el-col> <el-col :span="2"> <el-select clearable placeholder=" " > <el-option/> <el-select v-model="titleUploadData.packType" clearable placeholder=" " > <el-option v-for="item in titleSelectJson['packType']" :key="item.id" :label="item.basicName" :value="item.id"/> </el-select> </el-col> <!-- <el-col :span="2"><el-text /></el-col>--> @@ -146,9 +378,10 @@ <el-col :span="2"><el-text>交货日期:</el-text></el-col> <el-col :span="2"> <el-date-picker type="week" format="[Week] ww" placeholder="选择日期"/> v-model="titleUploadData.deliveryDate" type="date" placeholder="Pick a day" /> </el-col> <el-col :span="2"><el-text>批次:</el-text></el-col> <el-col :span="2"><el-input/></el-col> @@ -166,8 +399,11 @@ </el-col> <el-col :span="2"><el-text>铝条方式:</el-text></el-col> <el-col :span="2"> <el-select clearable placeholder=" " > <el-option/> <el-select v-model="titleUploadData.alType" clearable placeholder=" " > <el-option v-for="item in titleSelectJson['alType']" :key="item.id" :label="item.basicName" :value="item.id"/> </el-select> </el-col> </el-row> @@ -201,6 +437,7 @@ ref="xGrid" v-bind="gridOptions" v-on="gridEvents" @edit-closed="editClosedEvent" > <template #num1_filter="{ column, $panel }"> <div> @@ -209,6 +446,11 @@ </div> </div> </template> <template #toolbar_buttons> <vxe-button @click="impotEvent">导入</vxe-button> </template> </vxe-grid> </div> </div> north-glass-erp/northglass-erp/src/views/sd/product/SelectProduct.vue
@@ -134,9 +134,8 @@ //第一次加载数据 request.post("/product/1/100/"+productGlassTypeStore.GlassType,filterData.value).then((res) => { request.post(`/product/1/100/${productGlassTypeStore.GlassType}`,filterData.value).then((res) => { if(res.code==200){ console.log(res.data.data) pageTotal.value=res.data.total produceList = produceList.value.concat(deepClone(res.data.data)) xGrid.value.reloadData(produceList) north-glass-erp/src/main/java/com/example/erp/controller/OrderTestController.java
File was renamed from north-glass-erp/src/main/java/com/example/erp/controller/OrderController.java @@ -1,19 +1,16 @@ package com.example.erp.controller; import com.example.erp.common.Result; import com.example.erp.mapper.OrderMapper; import com.example.erp.entity.Order; import com.example.erp.mapper.OrderTestMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; //@CrossOrigin //解决单个controller 跨域问题 @RestController @RequestMapping("/order") @RequestMapping("/order11111111") public class OrderController { public class OrderTestController { @Autowired private OrderMapper orderMapper; private OrderTestMapper orderMapper; // @GetMapping //查询order表结果集 // public Result index(){ north-glass-erp/src/main/java/com/example/erp/controller/sd/BasicDataController.java
New file @@ -0,0 +1,22 @@ package com.example.erp.controller.sd; import com.example.erp.common.Result; import com.example.erp.service.sd.BasicDateService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.Map; @RestController @RequestMapping("/basicData") public class BasicDataController { @Autowired BasicDateService basicDateService; @GetMapping("/orderBasicData") public Result getOrderBasicData(){ return Result.seccess(basicDateService.getOrderBasicData()); } } north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java
New file @@ -0,0 +1,27 @@ package com.example.erp.controller.sd; import cn.hutool.json.JSON; import com.alibaba.fastjson.JSONObject; import com.example.erp.common.Result; import com.example.erp.entity.sd.Order; import com.example.erp.service.sd.OrderService; import org.apache.tomcat.Jar; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.Map; @RestController @RequestMapping("/order") public class OrderController { @Autowired private OrderService orderService; @PostMapping("/saveOrder") public Result saveOrder(@RequestBody Map<String, Object> orderMap) { return Result.seccess(orderService.saveOrder(orderMap)); } } north-glass-erp/src/main/java/com/example/erp/entity/OrderTest.java
File was renamed from north-glass-erp/src/main/java/com/example/erp/entity/Order.java @@ -7,7 +7,7 @@ @Data //lombok 简写java代码 实体类的get与set @TableName("`order`") public class Order { public class OrderTest { @TableId(type = IdType.AUTO) private Integer id; private String orderId; north-glass-erp/src/main/java/com/example/erp/entity/sd/BasicData.java
@@ -11,8 +11,8 @@ @TableId(type = IdType.AUTO) private Integer id; private String basicType; private String name; private String type; private String basicName; private String basicCategory; private LocalDate createTime; private LocalDate updateTime; } north-glass-erp/src/main/java/com/example/erp/entity/sd/Order.java
@@ -2,11 +2,13 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.time.LocalDate; @Data @TableName("`order`") public class Order { @TableId(type = IdType.AUTO) north-glass-erp/src/main/java/com/example/erp/mapper/OrderTestMapper.java
File was renamed from north-glass-erp/src/main/java/com/example/erp/mapper/OrderMapper.java @@ -1,13 +1,11 @@ package com.example.erp.mapper; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.example.erp.entity.Order; import com.example.erp.entity.OrderTest; import org.apache.ibatis.annotations.*; import java.util.List; @Mapper public interface OrderMapper extends BaseMapper<Order> { public interface OrderTestMapper extends BaseMapper<OrderTest> { // @Select("select * from `order`") // List<Order> findAll(); north-glass-erp/src/main/java/com/example/erp/mapper/sd/BasicDateMapper.java
New file @@ -0,0 +1,16 @@ package com.example.erp.mapper.sd; import com.example.erp.entity.sd.BasicData; import com.example.erp.service.sd.BasicDateService; import org.apache.ibatis.annotations.Mapper; import org.springframework.beans.factory.annotation.Autowired; import java.util.List; import java.util.Map; @Mapper public interface BasicDateMapper { List<BasicData> getOrderBasicData(); List<String> getOrderBasicDataType(); } north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderMapper.java
New file @@ -0,0 +1,10 @@ package com.example.erp.mapper.sd; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.example.erp.entity.sd.Order; import org.apache.ibatis.annotations.Mapper; @Mapper public interface OrderMapper extends BaseMapper<Order> { Integer selectMaxOrderId(); } north-glass-erp/src/main/java/com/example/erp/service/impl/OrderServiceImpl.java
@@ -2,12 +2,12 @@ import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.example.erp.entity.Order; import com.example.erp.mapper.OrderMapper; import com.example.erp.entity.OrderTest; import com.example.erp.mapper.OrderTestMapper; import com.example.erp.service.IOrderService; import org.springframework.stereotype.Service; @Service @DS("erp_sd") public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements IOrderService { public class OrderServiceImpl extends ServiceImpl<OrderTestMapper, OrderTest> implements IOrderService { } north-glass-erp/src/main/java/com/example/erp/service/sd/BasicDateService.java
New file @@ -0,0 +1,43 @@ package com.example.erp.service.sd; import com.baomidou.dynamic.datasource.annotation.DS; import com.example.erp.mapper.sd.BasicDateMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.example.erp.entity.sd.BasicData; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Service @DS("sd") public class BasicDateService { @Autowired BasicDateMapper basicDateMapper; //获取订单基本数据 public Map<String, List<Object>> getOrderBasicData() { //获取订单基本数据类型 List<String> orderBasicDataType = basicDateMapper.getOrderBasicDataType(); //获取订单基本数据 List<BasicData> orderBasicData = basicDateMapper.getOrderBasicData(); //创建Map对象 Map<String, List<Object>> orderBasicDataMap = new HashMap<>(); ; //创建List对象 //遍历订单基本数据类型 for(String item :orderBasicDataType){ List<Object> orderBasicDataList = new ArrayList<>(); //将类型和List对象放入Map中 orderBasicDataMap.put(item,orderBasicDataList); } //遍历订单基本数据 for (BasicData item : orderBasicData){ //将数据放入List中 orderBasicDataMap.get(item.getBasicCategory()).add(item); } //返回Map对象 return orderBasicDataMap; } } north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
New file @@ -0,0 +1,45 @@ package com.example.erp.service.sd; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.dynamic.datasource.annotation.DS; import com.example.erp.entity.sd.Order; import com.example.erp.entity.sd.OrderDetail; import com.example.erp.mapper.sd.OrderMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @Service @DS("sd") public class OrderService { @Autowired private OrderMapper orderMapper; @Transactional public boolean saveOrder(Map<String,Object> orderMap) { JSONObject orderJson = new JSONObject(orderMap); Order order = JSONObject.parseObject(JSONObject.toJSONString(orderJson.get("title")), Order.class); List<OrderDetail> OrderDetails = JSONArray.parseArray(JSONObject.toJSONString(orderJson.get("detail")), OrderDetail.class); Integer maxOrderId = orderMapper.selectMaxOrderId(); //查询订单id,并且自增 String formattedNumber = String.format("%02d", maxOrderId+1); //格式化当前日期 Date currentDate = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd"); String formattedDate = dateFormat.format(currentDate); order.setOrderId("NG"+formattedDate + formattedNumber); //System.out.println(order); orderMapper.insert(order); return false; } } north-glass-erp/src/main/resources/application.yml
@@ -20,12 +20,12 @@ password: beibo.123/ driver-class-name: com.mysql.cj.jdbc.Driver mm: url: jdbc:mysql://localhost:3306/mm?serverTimezone=GMT%2b8 url: jdbc:mysql://10.153.19.150:3306/mm?serverTimezone=GMT%2b8 username: root password: beibo.123/ driver-class-name: com.mysql.cj.jdbc.Driver pp: url: jdbc:mysql://localhost:3306/pp?serverTimezone=GMT%2b8 url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8 username: root password: beibo.123/ driver-class-name: com.mysql.cj.jdbc.Driver north-glass-erp/src/main/resources/mapper/sd/BasicData.xml
New file @@ -0,0 +1,22 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.erp.mapper.sd.BasicDateMapper"> <select id="getOrderBasicData"> select * from basic_data as a where a.basic_type='order' </select> <select id="getOrderBasicDataType"> select a.basic_category from basic_data as a where a.basic_type='order' group by a.basic_category </select> </mapper> north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml
New file @@ -0,0 +1,15 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.erp.mapper.sd.OrderMapper"> <select id="selectMaxOrderId"> select COUNT(a.order_id) from `order` as a where a.create_time = curdate() </select> </mapper> north-glass-erp/src/test/java/com/example/erp/service/sd/BasicDateServiceTest.java
New file @@ -0,0 +1,16 @@ package com.example.erp.service.sd; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import static org.junit.jupiter.api.Assertions.*; @SpringBootTest class BasicDateServiceTest { @Autowired private BasicDateService basicDateService; @Test void getOrderBasicData() { basicDateService.getOrderBasicData(); } } north-glass-erp/src/test/java/com/example/erp/service/sd/OrderServiceTest.java
New file @@ -0,0 +1,23 @@ package com.example.erp.service.sd; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import java.util.HashMap; import java.util.Map; import static org.junit.jupiter.api.Assertions.*; @SpringBootTest class OrderServiceTest { @Autowired OrderService orderService; @Test void testCreateOrder() { Map<String, Object> order =new HashMap<>(); //orderService.saveOrder(); } } north-glass-erp/target/classes/application.yml
@@ -20,12 +20,12 @@ password: beibo.123/ driver-class-name: com.mysql.cj.jdbc.Driver mm: url: jdbc:mysql://localhost:3306/mm?serverTimezone=GMT%2b8 url: jdbc:mysql://10.153.19.150:3306/mm?serverTimezone=GMT%2b8 username: root password: beibo.123/ driver-class-name: com.mysql.cj.jdbc.Driver pp: url: jdbc:mysql://localhost:3306/pp?serverTimezone=GMT%2b8 url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8 username: root password: beibo.123/ driver-class-name: com.mysql.cj.jdbc.Driver north-glass-erp/target/classes/mapper/sd/BasicData.xml
New file @@ -0,0 +1,22 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.erp.mapper.sd.BasicDateMapper"> <select id="getOrderBasicData"> select * from basic_data as a where a.basic_type='order' </select> <select id="getOrderBasicDataType"> select a.basic_category from basic_data as a where a.basic_type='order' group by a.basic_category </select> </mapper> north-glass-erp/target/classes/mapper/sd/OrderMapper.xml
New file @@ -0,0 +1,15 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.erp.mapper.sd.OrderMapper"> <select id="selectMaxOrderId"> select COUNT(a.order_id) from `order` as a where a.create_time = curdate() </select> </mapper>