diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index 874761c2..c9178ee3 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -24,11 +24,11 @@ - - org.springframework.boot - spring-boot-devtools - true - + + + + + diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/OrderInfoController.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/OrderInfoController.java index cf546a75..1f875f37 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/OrderInfoController.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/OrderInfoController.java @@ -2,6 +2,7 @@ package com.ruoyi.sip.controller; import java.util.List; +import com.ruoyi.sip.domain.DeliveryList; import com.ruoyi.sip.domain.MaintenanceRecordsDto; import com.ruoyi.sip.domain.OrderList; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -17,6 +18,7 @@ import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; +import org.springframework.web.multipart.MultipartFile; /** * 合同档案Controller @@ -132,4 +134,23 @@ public class OrderInfoController extends BaseController { return AjaxResult.success(orderInfoService.selectOrderInfoByMaintenance(dto)); } + @RequiresPermissions("sip:list:export") + @Log(title = "发货清单", businessType = BusinessType.EXPORT) + @PostMapping("/list/export") + @ResponseBody + public AjaxResult listExport(OrderList orderList) { + List list = orderInfoService.listExport(orderList); + ExcelUtil util = new ExcelUtil(OrderList.class); + return util.exportExcel(list, "合同清单数据"); + } + @PostMapping("/list/importData") + @ResponseBody + public AjaxResult listImportData(MultipartFile file, Long orderId) throws Exception + { + ExcelUtil util = new ExcelUtil(OrderList.class); + List orderListList = util.importExcel(file.getInputStream()); + + + return orderInfoService.listImportData(orderListList, orderId); + } } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OrderList.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OrderList.java index 8d4763c7..e90a2a39 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OrderList.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OrderList.java @@ -26,14 +26,14 @@ public class OrderList extends BaseEntity private Long id; /** 关联合同ID */ - @Excel(name = "关联合同ID") +// @Excel(name = "关联合同ID") private Long orderId; /** 产品编码,关联产品编码表 */ @Excel(name = "BOM编码") private String productCode; - @Excel(name = "产品名称") +// @Excel(name = "产品名称") private String productName; /** 数量 */ @@ -43,27 +43,28 @@ public class OrderList extends BaseEntity /** 单价 */ @Excel(name = "单价") private BigDecimal price; - + /** 优惠 */ + @Excel(name = "折扣") + private BigDecimal discount; /** 总价 */ @Excel(name = "总价") private BigDecimal amount; - /** 优惠 */ - private BigDecimal discount; + /** 创建时间 */ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") - @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd") +// @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd") private Date createdAt; /** 更新时间 */ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") - @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd") +// @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd") private Date updatedAt; /** 删除时间,软删除 */ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") - @Excel(name = "删除时间", width = 30, dateFormat = "yyyy-MM-dd") +// @Excel(name = "删除时间", width = 30, dateFormat = "yyyy-MM-dd") private Date deletedAt; private ProductInfo productInfo; diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/OrderInfoMapper.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/OrderInfoMapper.java index 27a68609..9b4cfc26 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/OrderInfoMapper.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/OrderInfoMapper.java @@ -2,6 +2,7 @@ package com.ruoyi.sip.mapper; import java.util.List; +import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.sip.domain.MaintenanceRecordsDto; import com.ruoyi.sip.domain.OrderInfo; import com.ruoyi.sip.domain.OrderList; @@ -105,4 +106,7 @@ public interface OrderInfoMapper List selectOrderInfoByMaintenance(MaintenanceRecordsDto dto); List listMaintenanceByOrderIdList(List orderIdList); + + List listExport(OrderList orderList); + } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IOrderInfoService.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IOrderInfoService.java index 272102b6..8b16209d 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IOrderInfoService.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IOrderInfoService.java @@ -2,6 +2,7 @@ package com.ruoyi.sip.service; import java.util.List; +import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.sip.domain.MaintenanceRecordsDto; import com.ruoyi.sip.domain.OrderInfo; import com.ruoyi.sip.domain.OrderList; @@ -73,4 +74,8 @@ public interface IOrderInfoService * @return */ List getOrderInfo(ApiDataQueryDto dto); + + List listExport(OrderList orderList); + + AjaxResult listImportData(List orderListList, Long orderId); } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OrderInfoServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OrderInfoServiceImpl.java index 650b2ecf..f3144f7e 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OrderInfoServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OrderInfoServiceImpl.java @@ -1,10 +1,13 @@ package com.ruoyi.sip.service.impl; -import java.util.Collections; -import java.util.List; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.*; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Dict; +import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.DictUtils; import com.ruoyi.sip.domain.*; import com.ruoyi.sip.dto.ApiDataQueryDto; @@ -13,8 +16,7 @@ import com.ruoyi.sip.service.ICustomerInfoService; import com.ruoyi.sip.vo.OrderInfoVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.Map; + import java.util.function.Function; import java.util.stream.Collectors; @@ -186,6 +188,41 @@ public class OrderInfoServiceImpl implements IOrderInfoService }).collect(Collectors.toList()); } + @Override + public List listExport(OrderList orderList) { + return orderInfoMapper.listExport(orderList); + } + + @Override + public AjaxResult listImportData(List orderListList, Long orderId) { + Assert.notNull(orderId, "合同ID不能为空"); + List productCodeList = orderListList.stream().map(OrderList::getProductCode).filter(Objects::nonNull).collect(Collectors.toList()); + if (productCodeList.isEmpty()) { + return AjaxResult.error("文件为空或产品编码为空"); + } + for (OrderList orderList : orderListList) { + orderList.setOrderId(orderId); + if (orderList.getDiscount() != null && (orderList.getDiscount().compareTo(BigDecimal.ONE) > 0 || orderList.getDiscount().compareTo(BigDecimal.ZERO) <= 0)) { + return AjaxResult.error("折扣区间需在0-1之间"); + } + if (orderList.getPrice() == null) { + return AjaxResult.error("单价不能为空"); + } + if (orderList.getQuantity() == null) { + return AjaxResult.error("单价不能为空"); + } + + BigDecimal amount = orderList.getPrice().multiply(new BigDecimal(orderList.getQuantity())); + if (orderList.getDiscount()!=null){ + amount = amount.multiply(orderList.getDiscount()).setScale(2, RoundingMode.HALF_UP); + } + orderList.setAmount(amount); + } + orderInfoMapper.deleteOrderListByOrderId(orderId); + orderInfoMapper.batchOrderList(orderListList); + return AjaxResult.success("导入成功"); + } + /** * 查询代表处信息并构建映射 */ diff --git a/ruoyi-sip/src/main/resources/mapper/manage/OrderInfoMapper.xml b/ruoyi-sip/src/main/resources/mapper/manage/OrderInfoMapper.xml index 0eb31ae5..c36522a8 100644 --- a/ruoyi-sip/src/main/resources/mapper/manage/OrderInfoMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/manage/OrderInfoMapper.xml @@ -128,6 +128,9 @@ t1.version_code, t1.order_name, t1.customer_name, + t1.customer_code, + t1.customer_address, + t1.customer_postcode, t1.customer_contact, t1.customer_phone, t1.customer_email, @@ -207,6 +210,21 @@ #{item} + insert into order_info @@ -216,6 +234,9 @@ version_code, order_name, customer_name, + customer_code, + customer_address, + customer_postcode, customer_contact, customer_phone, customer_email, @@ -233,6 +254,9 @@ #{versionCode}, #{orderName}, #{customerName}, + #{customerCode}, + #{customerAddress}, + #{customerPostcode}, #{customerContact}, #{customerPhone}, #{customerEmail}, @@ -257,6 +281,9 @@ customer_contact = #{customerContact}, customer_phone = #{customerPhone}, customer_email = #{customerEmail}, + customer_code=#{customerCode}, + customer_address=#{customerAddress}, + customer_postcode=#{customerPostcode}, order_type = #{orderType}, order_agent_code = #{orderAgentCode}, order_partner_code = #{orderPartnerCode}, @@ -318,9 +345,9 @@ - insert into order_list( id, order_id, product_code, quantity, price, amount, remark, created_at, updated_at) values + insert into order_list(id , order_id, product_code, quantity, price, amount,discount,remark, created_at, updated_at) values - ( #{item.id}, #{item.orderId}, #{item.productCode}, #{item.quantity}, #{item.price}, #{item.amount}, + ( #{item.id}, #{item.orderId}, #{item.productCode}, #{item.quantity}, #{item.price}, #{item.amount},#{item.discount}, #{item.remark}, now(),now())