| | |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.example.erp.common.Constants; |
| | | import com.example.erp.dto.sd.OrderDTO; |
| | | import com.example.erp.dto.sd.OrderDetailProductDTO; |
| | | import com.example.erp.dto.sd.OrderSearchDTO; |
| | | import com.example.erp.entity.sd.*; |
| | | import com.example.erp.entity.userInfo.Log; |
| | |
| | | import com.example.erp.mapper.sd.*; |
| | | import com.example.erp.service.userInfo.LogService; |
| | | import com.example.erp.service.userInfo.SysErrorService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.transaction.interceptor.TransactionAspectSupport; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.sql.SQLOutput; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDate; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static org.apache.coyote.http11.Constants.a; |
| | | |
| | | @Service |
| | | @DS("sd") |
| | |
| | | |
| | | |
| | | //修改订单数据,并且重新生成多个副表数据 |
| | | public void updateOrder(Order order,List<OrderDetail> OrderDetails,List<OrderOtherMoney> orderOtherMoneyList) { |
| | | |
| | | public void updateOrder(Order order,List<OrderDetail> OrderDetails,List<OrderOtherMoney> orderOtherMoneyList) throws Exception { |
| | | Order oldOrder = orderMapper.selectOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderId,order.getOrderId())); |
| | | if(oldOrder.getProcessReview()==2){ |
| | | throw new ServiceException(Constants.Code_600,"该订单已经审核,无法修改"); |
| | | } |
| | | if(!Objects.equals(oldOrder.getVersion(), order.getVersion())){ |
| | | throw new ServiceException(Constants.Code_600,"该订单已经修改,请刷新页面"); |
| | | } |
| | | order.setCreateTime(null); |
| | | order.setVersion(order.getVersion()+1); |
| | | LambdaUpdateWrapper<Order> updateWrapper = new LambdaUpdateWrapper<>(); |
| | | updateWrapper.eq(Order::getOrderId, order.getOrderId()); |
| | | orderMapper.update(order,updateWrapper); |
| | |
| | | |
| | | //删除订单工艺表 |
| | | // orderProcessDetailMapper.delete(new LambdaQueryWrapper<OrderProcessDetail>().eq(OrderProcessDetail::getOrderId, order.getOrderId())); |
| | | |
| | | orderDetailMapper.deleteOrderFile(order.getOrderId()); |
| | | |
| | | insertOtherDetail(order.getOrderId(),OrderDetails,orderOtherMoneyList); |
| | | } |
| | |
| | | Product product = productMapper.selectById(OrderDetails.get(i).getProductId()); |
| | | |
| | | OrderDetails.get(i).setWeight(Double.valueOf(String.format("%.2f",product.getThickness()*OrderDetails.get(i).getWidth()*OrderDetails.get(i).getHeight()/1000000*2.5))); |
| | | if(OrderDetails.get(i).getBendRadius()!=null && OrderDetails.get(i).getBendRadius()!=0){ |
| | | /*if(OrderDetails.get(i).getBendRadius()!=null && OrderDetails.get(i).getBendRadius()!=0){ |
| | | //获取弯钢弧度 |
| | | Double bendRadius = OrderDetails.get(i).getBendRadius(); |
| | | //获取宽 |
| | |
| | | String archRiseS = String.format("%.1f",bendRadius-(bendRadius*Math.cos(width/2/bendRadius))); |
| | | Double archRise = Double.parseDouble(archRiseS); |
| | | OrderDetails.get(i).setArchRise(archRise); |
| | | } |
| | | }*/ |
| | | |
| | | Map<String,Object> otherColumns = JSON.parseObject(OrderDetails.get(i).getOtherColumns(), new TypeReference<Map<String, Object>>(){}); |
| | | int finalI = i; |
| | |
| | | OrderDetails.get(i).setOtherColumns("{}"); |
| | | } |
| | | |
| | | if(OrderDetails.get(i).getFileName()!=null&&!OrderDetails.get(i).getFileName().trim().isEmpty()){ |
| | | orderMapper.saveOrderFile(OrderDetails.get(i).getFileName(), OrderDetails.get(i).getFileData(),orderId,OrderDetails.get(i).getOrderNumber()); |
| | | } |
| | | |
| | | if(OrderDetails.get(i).getShape()==null){ |
| | | OrderDetails.get(i).setShape("1"); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | orderDetailMapper.insertBatch(OrderDetails); |
| | | //往小片表传入产品数据 |
| | | orderGlassDetailMapper.insertOrderGlassDetail(orderId); |
| | | |
| | | //修改成品拱高 |
| | | List<OrderDetail> orderDetails = orderDetailMapper |
| | | .selectList(new LambdaQueryWrapper<OrderDetail>() |
| | | .eq(OrderDetail::getOrderId, orderId) |
| | | .isNotNull(OrderDetail::getBendRadius) |
| | | ); |
| | | |
| | | orderDetails.forEach(orderDetail -> { |
| | | //获取最小弧度 |
| | | OrderGlassDetail orderGlassDetail = orderGlassDetailMapper |
| | | .selectOne(new LambdaQueryWrapper<OrderGlassDetail>() |
| | | .eq(OrderGlassDetail::getOrderId, orderId) |
| | | .eq(OrderGlassDetail::getOrderNumber, orderDetail.getOrderNumber()) |
| | | .orderByDesc(OrderGlassDetail::getArc) |
| | | .last("limit 1") |
| | | ); |
| | | //获取当前序号产品Math.cos( |
| | | Product product = productMapper.selectById(orderDetail.getProductId()); |
| | | //内半径 |
| | | Double radius = orderDetail.getBendRadius() - product.getTotalThickness(); |
| | | |
| | | //内片内弧长 |
| | | Double innerArc = orderGlassDetail.getArc() |
| | | -orderGlassDetail.getArc()*product.getTotalThickness()/orderDetail.getBendRadius(); |
| | | |
| | | //拱高 |
| | | String archRiseS = String.format("%.1f",radius-radius*Math.cos(innerArc/2/radius)); |
| | | Double archRise = Double.parseDouble(archRiseS); |
| | | orderDetail.setArchRise(archRise); |
| | | |
| | | orderDetailMapper.update(null,new LambdaUpdateWrapper<OrderDetail>() |
| | | .set(OrderDetail::getArchRise,archRise) |
| | | .eq(OrderDetail::getId, orderDetail.getId()) |
| | | ); |
| | | |
| | | }); |
| | | |
| | | |
| | | if(orderOtherMoneyList!=null){ |
| | | orderOtherMoneyList.forEach(orderOtherMoney ->{ |
| | | orderOtherMoney.setId(null); |
| | |
| | | public Map<String,Object> getOrderList(Integer pageNum, Integer pageSize, List<String> selectDate, Map<String,Object> config,Integer orderType) { |
| | | Integer offset = (pageNum-1)*pageSize; |
| | | String endDate = LocalDate.now().toString(); |
| | | String startDate = LocalDate.now().minusDays(15).toString(); |
| | | String startDate = LocalDate.now().minusDays(365).toString(); |
| | | if(selectDate !=null && selectDate.size()==2){ |
| | | if(!selectDate.get(0).isEmpty()){ |
| | | startDate = selectDate.get(0); |
| | |
| | | } |
| | | //删除订单 |
| | | public Integer deleteOrder(String id) { |
| | | return orderMapper.delete( |
| | | orderDetailMapper.deleteOrderFile(id); |
| | | return orderMapper.delete( |
| | | new QueryWrapper<Order>().eq("order_id",id) |
| | | ); |
| | | } |
| | |
| | | Order order = orderMapper.selectOne(new QueryWrapper<Order>().eq("order_id",id)); |
| | | List<OrderDetail> orderDetails = orderDetailMapper.selectList(new QueryWrapper<OrderDetail>().eq("order_id",id)); |
| | | List<OrderOtherMoney> orderOtherMoneyList = orderOtherMoneyMapper.findById(id); |
| | | List<Map<String,String>> orderFileList = orderMapper.selectOrderFileList(id); |
| | | |
| | | |
| | | Map<String,Object> map = new HashMap<>(); |
| | | map.put("order",order); |
| | | map.put("orderDetails",orderDetails); |
| | | map.put("orderOtherMoneyList",orderOtherMoneyList); |
| | | map.put("orderFile",orderFileList); |
| | | return map; |
| | | } |
| | | //订单审核 |
| | |
| | | } |
| | | |
| | | |
| | | public Map<String,Object> getOrderReport(Integer pageNum, Integer pageSize, List<String> selectDate, OrderDetail orderDetail) { |
| | | public Map<String,Object> getOrderReport(Integer pageNum, Integer pageSize, List<String> selectDate, OrderDetail orderDetail, Integer model, Integer scope) { |
| | | Integer offset = (pageNum-1)*pageSize; |
| | | String endDate = LocalDate.now().toString(); |
| | | String startDate = LocalDate.now().minusDays(15).toString(); |
| | |
| | | endDate = selectDate.get(1); |
| | | } |
| | | } |
| | | |
| | | Map<String,Object> map = new HashMap<>(); |
| | | map.put("data",orderDetailMapper.getOrderReport(offset, pageSize, startDate, endDate, orderDetail)); |
| | | map.put("data",orderDetailMapper.getOrderReport(offset, pageSize, startDate, endDate, orderDetail,model,scope)); |
| | | map.put("total",orderDetailMapper.getOrderReportTotal(offset, pageSize, startDate, endDate, orderDetail,"order")); |
| | | List<String> list = new ArrayList<>(); |
| | | list.add(startDate); |
| | |
| | | } |
| | | |
| | | } |
| | | |
| | | public Object uploadDxf(Map<String,Object> object) { |
| | | String fileName = ""; |
| | | if (object.get("fileName") != null) { |
| | | fileName = object.get("fileName").toString(); |
| | | } |
| | | String fileData = ""; |
| | | if (object.get("fileData") != null) { |
| | | fileData = object.get("fileData").toString(); |
| | | } |
| | | byte[] dxfData = Base64.getDecoder().decode(fileData); |
| | | String orderId="NG25010101"; |
| | | Integer orderNumber=1; |
| | | orderMapper.saveOrderFile(fileName, fileData,orderId,orderNumber); |
| | | return true; |
| | | } |
| | | |
| | | public Map<String,Object> selectUploadDxf(Map<String,Object> object) { |
| | | String orderId = ""; |
| | | if (object.get("orderId") != null) { |
| | | orderId = object.get("orderId").toString(); |
| | | } |
| | | int orderNumber =0; |
| | | if (object.get("orderNumber") != null) { |
| | | orderNumber = Integer.parseInt(object.get("orderNumber").toString()); |
| | | } |
| | | Map<String,Object> map = new HashMap<>(); |
| | | map.put("data",orderMapper.selectOrderFile(orderId,orderNumber)); |
| | | return map; |
| | | } |
| | | |
| | | public boolean updateOrderFile(Map<String,Object> object) { |
| | | String orderId = ""; |
| | | if (object.get("orderId") != null) { |
| | | orderId = object.get("orderId").toString(); |
| | | } |
| | | int orderNumber =0; |
| | | if (object.get("orderNumber") != null) { |
| | | orderNumber = Integer.parseInt(object.get("orderNumber").toString()); |
| | | } |
| | | String dataBase64 = ""; |
| | | if (object.get("dataBase64") != null) { |
| | | dataBase64 = object.get("dataBase64").toString(); |
| | | } |
| | | Map<String,String> orderFile =orderMapper.selectOrderFile(orderId,orderNumber); |
| | | if(orderFile!=null){ |
| | | orderMapper.updateOrderFile("map.dxf", dataBase64,orderId,orderNumber); |
| | | }else{ |
| | | orderMapper.saveOrderFile("map.dxf", dataBase64,orderId,orderNumber); |
| | | } |
| | | return true; |
| | | } |
| | | } |