Merge branch 'master' of http://bore.pub:10439/r/ERP_override
| | |
| | | "@element-plus/icons-vue": "^2.1.0", |
| | | "@vue-macros/reactivity-transform": "^0.3.23", |
| | | "axios": "^1.5.1", |
| | | "decimal.js": "^10.4.3", |
| | | "element-plus": "^2.4.0", |
| | | "file-saver": "^2.0.5", |
| | | "moment": "^2.30.1", |
| | |
| | | "engines": { |
| | | "node": ">=0.10.0" |
| | | } |
| | | }, |
| | | "node_modules/decimal.js": { |
| | | "version": "10.4.3", |
| | | "resolved": "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.4.3.tgz", |
| | | "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" |
| | | }, |
| | | "node_modules/delayed-stream": { |
| | | "version": "1.0.0", |
| | |
| | | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", |
| | | "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" |
| | | }, |
| | | "decimal.js": { |
| | | "version": "10.4.3", |
| | | "resolved": "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.4.3.tgz", |
| | | "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" |
| | | }, |
| | | "delayed-stream": { |
| | | "version": "1.0.0", |
| | | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", |
| | |
| | | "@element-plus/icons-vue": "^2.1.0", |
| | | "@vue-macros/reactivity-transform": "^0.3.23", |
| | | "axios": "^1.5.1", |
| | | "decimal.js": "^10.4.3", |
| | | "element-plus": "^2.4.0", |
| | | "file-saver": "^2.0.5", |
| | | "moment": "^2.30.1", |
| | |
| | | |
| | | request.post(`/Delivery/getSelectDeliveryPrinting`,form.value).then((res) => { |
| | | if(res.code==200){ |
| | | console.log(res.data.data) |
| | | produceList.value = deepClone(res.data.data) |
| | | delivery.value=deepClone(res.data.delivery) |
| | | money.value=deepClone(res.data.money) |
| | |
| | | |
| | | const getColumns = async () => { |
| | | await request.post(`/basicOtherMoney/findAllByState`).then(res=>{ |
| | | console.log(res.data) |
| | | res.data.forEach(item => { |
| | | let column = { |
| | | field: `otherColumns.${item.column}`, |
| | |
| | | perimeter: 0 |
| | | }) |
| | | const getData = () => { |
| | | console.log(selectedValues.value) |
| | | request.post(`/order/printOrderProductGlassDetailMonolithic/${props.orderId}`,selectedValues.value).then(res => { |
| | | data.value= res.data |
| | | productIdData.value=data.value.orderDetail |
| | |
| | | inconsistentParameters :'The required parameters are inconsistent', |
| | | strip :'Piece', |
| | | exportSelected :'Export selected', |
| | | }, |
| | | |
| | | menu:{ |
| | | salesAndDistribution :'Sales and Distribution', |
| | | productionPlanning :'Production Planning', |
| | | materialManage :'Material Manage', |
| | | userManage :'User Manage', |
| | | |
| | | product :'Product', |
| | | order :'Order', |
| | | delivery :'Delivery', |
| | | returns :'Returns', |
| | | customer :'Customer', |
| | | workOrder :'Work Order', |
| | | processCard :'Process Card', |
| | | reportingWorks :'Report for work', |
| | | rework :'Rework', |
| | | replenish :'Replenish', |
| | | machine :'Machine', |
| | | bOM :'BOM', |
| | | report :'Report', |
| | | productStock :'Product Stock', |
| | | ingredientsStock :'Ingredients Stock', |
| | | ingredients :'Ingredients', |
| | | trader :'Trader', |
| | | stockReport :'Stock Report', |
| | | purchaseOrder :'Purchase Order', |
| | | purchaseStorage :'Purchase Storage', |
| | | purchaseReturn :'Purchase Return', |
| | | orderBasicData :'Order Basic Data', |
| | | productionBasicData :'Production Basic Data', |
| | | warehouseBasicData :'Warehouse Basic Data', |
| | | user :'User', |
| | | role :'Role', |
| | | userPassWord :'User Pass Word', |
| | | } |
| | | |
| | | |
| | |
| | | inconsistentParameters :'Обязательные параметры не совпадают', |
| | | strip :'Статья', |
| | | exportSelected :'Экспортировать выделение', |
| | | }, |
| | | |
| | | menu:{ |
| | | salesAndDistribution :'Продажа и распределение', |
| | | productionPlanning :'Производство и планирование', |
| | | materialManage :'Закупки и материалы', |
| | | userManage :'Пользователи и права доступа', |
| | | |
| | | product :'Управление товарными запасами', |
| | | order :'Управление заказами', |
| | | delivery :'Управление доставкой', |
| | | returns :'Управление возвратом', |
| | | customer :'Информация о клиентах', |
| | | workOrder :'Управление рабочей документацией', |
| | | processCard :'Управление картами процессов', |
| | | reportingWorks :'Управление обратной связью', |
| | | rework :'Управление переработкой', |
| | | replenish :'Управление дополнительным стеклом', |
| | | machine :'Управление оборудованием', |
| | | bOM :'Управление BOM', |
| | | report :'Управление отчетами', |
| | | productStock :'Запасы готовой продукции', |
| | | ingredientsStock :'Запасы материалов', |
| | | ingredients :'Материальные данные', |
| | | trader :'Управление поставщиками', |
| | | stockReport :'Таблица запасов', |
| | | purchaseOrder :'Закупочные заказы', |
| | | purchaseStorage :'Закупки на складе', |
| | | purchaseReturn :'Возврат покупок', |
| | | orderBasicData :'Основы заказа', |
| | | productionBasicData :'Основа производства', |
| | | warehouseBasicData :'База запасов', |
| | | user :'Список пользователей', |
| | | role :'Права на роль', |
| | | userPassWord :'Изменить пароль', |
| | | } |
| | | |
| | | |
| | |
| | | inconsistentParameters :'必填,参数不一致', |
| | | strip :'条', |
| | | exportSelected :'导出选中', |
| | | }, |
| | | |
| | | menu:{ |
| | | salesAndDistribution :'销售与分销', |
| | | productionPlanning :'生产与计划', |
| | | materialManage :'采购与物资', |
| | | userManage :'用户与权限', |
| | | |
| | | product :'商品管理', |
| | | order :'订单管理', |
| | | delivery :'送货管理', |
| | | returns :'退货管理', |
| | | customer :'客户信息', |
| | | workOrder :'工单管理', |
| | | processCard :'流程卡管理', |
| | | reportingWorks :'报工管理', |
| | | rework :'返工管理', |
| | | Replenish :'补片管理', |
| | | machine :'设备管理', |
| | | bOM :'BOM管理', |
| | | report :'报表管理', |
| | | productStock :'成品库存', |
| | | ingredientsStock :'物料库存', |
| | | ingredients :'物料资料', |
| | | trader :'供应商管理', |
| | | stockReport :'仓储报表', |
| | | purchaseOrder :'采购订单', |
| | | purchaseStorage :'采购入库', |
| | | purchaseReturn :'采购退货', |
| | | orderBasicData :'订单基础', |
| | | productionBasicData :'生产基础', |
| | | warehouseBasicData :'库存基础', |
| | | user :'用户列表', |
| | | role :'角色权限', |
| | | userPassWord :'修改密码', |
| | | } |
| | | |
| | | |
New file |
| | |
| | | |
| | | import Decimal from "decimal.js" |
| | | |
| | | // 封装加法函数 |
| | | function add(num1, num2) { |
| | | const decimal1 = new Decimal(num1); |
| | | const decimal2 = new Decimal(num2); |
| | | return decimal1.plus(decimal2).toString(); |
| | | } |
| | | |
| | | // 封装减法函数 |
| | | function subtract(num1, num2) { |
| | | const decimal1 = new Decimal(num1); |
| | | const decimal2 = new Decimal(num2); |
| | | return decimal1.minus(decimal2).toFixed(2); |
| | | } |
| | | |
| | | // 封装乘法函数 |
| | | function multiply(num1, num2) { |
| | | const decimal1 = new Decimal(num1); |
| | | const decimal2 = new Decimal(num2); |
| | | return decimal1.times(decimal2).toFixed(2) |
| | | } |
| | | |
| | | // 封装除法函数 |
| | | function divide(num1, num2) { |
| | | const decimal1 = new Decimal(num1); |
| | | const decimal2 = new Decimal(num2); |
| | | return decimal1.dividedBy(decimal2).toFixed(2); |
| | | } |
| | | export { |
| | | add, |
| | | subtract, |
| | | multiply, |
| | | divide |
| | | |
| | | } |
| | |
| | | surplusMaterials: selectRecords, |
| | | state:2 |
| | | }) |
| | | console.log(flowData.value) |
| | | request.post("/MaterialInventory/addSelectSurplusMaterialsDate",flowData.value).then((res) => { |
| | | if(res.code==200 && res.data===true){ |
| | | ElMessage.success(t('basicData.msg.saveSuccess')) |
| | |
| | | const validRules = ref({ |
| | | "inventoryQuantity": [{ |
| | | validator (e) { |
| | | console.log(e.row) |
| | | if ((parseInt(e.row.inventoryQuantity) + e.row.receivedQuantity) > e.row.orderDetail.quantity) { |
| | | return new Error('入库数量不能超过订单总数') |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | console.log(lastList.value) |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | |
| | | |
| | | if (res.code == 200) { |
| | | titleSelectJson.value = deepClone(res.data) |
| | | console.log(titleSelectJson.value) |
| | | //其他金额 |
| | | otherMoney.value = titleSelectJson.value.deliveryOtherMoney[0] |
| | | //let columns = [] |
| | |
| | | |
| | | |
| | | titleUploadData.value=deepClone(res.data.title) |
| | | console.log(111) |
| | | console.log(titleSelectJson.value) |
| | | titleUploadData.value.paymentTerms = titleSelectJson.value.paymentTerms[0].basicName |
| | | titleUploadData.value.payMethod = titleSelectJson.value.payMethod[0].basicName |
| | | const today = new Date |
| | |
| | | deliveryIdType:company.deliveryIdType |
| | | |
| | | }) |
| | | console.log(flowData.value) |
| | | request.post("/Delivery/insertDelivery", flowData.value).then((res) => { |
| | | if(res.code==200 && res.data===true){ |
| | | ElMessage.success(t('delivery.deliveryNoteSubmittedSuccessfully')) |
| | |
| | | |
| | | const printingNumber = ()=>{ |
| | | request.post(`/Delivery/updateDeliveryPrintNumber/${rowClickIndex.value.deliveryId}`).then(res =>{ |
| | | |
| | | }) |
| | | } |
| | | |
| | |
| | | return |
| | | } |
| | | //判断所选项目是否相同 |
| | | console.log(projectArray) |
| | | if(!isAllEqual(projectArray)){ |
| | | ElMessage.warning(t('delivery.pleaseSelectTheSameCustomerProject')) |
| | | return |
| | |
| | | import downLoadFile from "@/hook/downLoadFile" |
| | | import footSum from "@/hook/footSum" |
| | | import {useI18n} from "vue-i18n" |
| | | import {multiply} from '@/utils/decimal' |
| | | const { t } = useI18n() |
| | | |
| | | let dialogTableVisible = ref(false) |
| | |
| | | } |
| | | |
| | | if(titleUploadData.value.calculateType===3){ |
| | | item.grossAmount=parseFloat((item.price * item.quantity).toFixed(2)) |
| | | item.grossAmount=multiply(item.price,item.quantity) |
| | | }else{ |
| | | item.grossAmount=parseFloat((item.price * item.computeGrossArea).toFixed(2)) |
| | | item.grossAmount=multiply(item.price,item.computeGrossArea) |
| | | } |
| | | |
| | | }) |
| | |
| | | item.computeGrossArea = item.grossArea |
| | | } |
| | | if(titleUploadData.value.calculateType===3){ |
| | | item.grossAmount=parseFloat((item.price * item.quantity).toFixed(2)) |
| | | item.grossAmount=multiply(item.price , item.quantity) |
| | | }else{ |
| | | item.grossAmount=parseFloat((item.price * 1 * item.computeGrossArea).toFixed(2)) |
| | | item.grossAmount=multiply(item.price * 1 , item.computeGrossArea) |
| | | } |
| | | |
| | | }) |
| | |
| | | row.computeGrossArea = row.grossArea |
| | | } |
| | | if(titleUploadData.value.calculateType===3){ |
| | | row.grossAmount=parseFloat((row.price * row.quantity).toFixed(2)) |
| | | row.grossAmount=multiply(row.price ,row.quantity) |
| | | }else{ |
| | | row.grossAmount=parseFloat((row.price * row.computeGrossArea).toFixed(2)) |
| | | row.grossAmount=multiply(row.price , row.computeGrossArea) |
| | | } |
| | | |
| | | }else if(column.property === 'computeArea'){ |
| | |
| | | if(titleUploadData.value?.orderReview!==2){ |
| | | row.computeGrossArea = row.computeArea * row.quantity |
| | | } |
| | | row.grossAmount=parseFloat((row.price * row.computeGrossArea).toFixed(2)) |
| | | row.grossAmount=multiply(row.price , row.computeGrossArea) |
| | | } |
| | | |
| | | } |
| | |
| | | } |
| | | request.post(`/order/getOrderList/${pageNum.value}/${total.pageSize}/${orderType.value}/${orderInfo.selectDate}`,filterData.value).then((res) => { |
| | | if(res.code==200){ |
| | | console.log(res.data.data) |
| | | total.dataTotal = res.data.total.total*1 |
| | | total.pageTotal=parseInt(res.data.total) |
| | | pageNum.value=1 |
| | |
| | | }) |
| | | onMounted(()=>{ |
| | | request.get('/userInfo/findAll').then(res=>{ |
| | | console.log(res.data) |
| | | let arr = res.data.users[0] |
| | | arr.forEach(item=>{ |
| | | let bValues = item.userRoleList.map(item => item.role); |
| | |
| | | |
| | | |
| | | const submitForm = () => { |
| | | console.log(register.userName) |
| | | if(register.userName==""||register.userName==null){ |
| | | ElMessage.warning(t('user.userNameCannotBeEmpty')) |
| | | return |
| | |
| | | import org.springframework.transaction.interceptor.TransactionAspectSupport; |
| | | |
| | | import java.lang.reflect.Field; |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDate; |
| | | import java.util.*; |
| | |
| | | calculateType=orderDetail.getOrder().getCalculateType(); |
| | | } |
| | | double deliveryDetailMoney = 0.0; |
| | | |
| | | BigDecimal getComputeArea= BigDecimal.valueOf(orderDetail.getComputeArea()); |
| | | BigDecimal getQuantity= BigDecimal.valueOf(orderDetail.getDeliveryDetail().getQuantity()); |
| | | BigDecimal getPrice= BigDecimal.valueOf(orderDetail.getPrice()); |
| | | BigDecimal getWidth= BigDecimal.valueOf(orderDetail.getWidth()); |
| | | BigDecimal getHeight= BigDecimal.valueOf(orderDetail.getHeight()); |
| | | BigDecimal singlePieceArea =getComputeArea.multiply(getQuantity).setScale(2, RoundingMode.HALF_UP) |
| | | .multiply(getPrice).setScale(2, RoundingMode.HALF_UP); |
| | | //根据订单计算方式进行金额计算 |
| | | if (calculateType==1){ |
| | | deliveryDetailMoney=singlePieceArea.doubleValue(); |
| | | |
| | | }else if (calculateType==2){ |
| | | if(Objects.equals(orderDetail.getArea(), orderDetail.getComputeArea())){ |
| | | deliveryDetailMoney=getWidth.multiply(getHeight).multiply(getQuantity).divide(BigDecimal.valueOf(1000000), 2, RoundingMode.HALF_UP) |
| | | .multiply(getPrice).setScale(2, RoundingMode.HALF_UP).doubleValue(); |
| | | }else{ |
| | | deliveryDetailMoney=singlePieceArea.doubleValue(); |
| | | } |
| | | }else if (calculateType==3){ |
| | | deliveryDetailMoney=getQuantity.multiply(getPrice).setScale(2, RoundingMode.HALF_UP).doubleValue(); |
| | | |
| | | } |
| | | /*if (calculateType==1){ |
| | | deliveryDetailMoney=Double.parseDouble(String.format("%.2f",Double.parseDouble( |
| | | String.format("%.2f", orderDetail.getComputeArea()*orderDetail.getDeliveryDetail().getQuantity()) |
| | | )*orderDetail.getPrice())); |
| | |
| | | }else if (calculateType==3){ |
| | | deliveryDetailMoney=Double.parseDouble(String.format("%.2f",orderDetail.getPrice() * orderDetail.getDeliveryDetail().getQuantity())); |
| | | |
| | | } |
| | | //根据订单计算方式进行金额计算 |
| | | }*/ |
| | | |
| | | |
| | | |
| | | if(orderDetail.getOtherColumns()!="{}"&&orderDetail.getOtherColumns()!=null){ |