From 73be6b08f5a94e71550fe788c5d74705daa91be0 Mon Sep 17 00:00:00 2001 From: guoyuji <guoyujie@ng.com> Date: 星期五, 22 三月 2024 16:48:07 +0800 Subject: [PATCH] 订单首页右键查询流程卡进度 --- north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java | 180 +++++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 129 insertions(+), 51 deletions(-) diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java index aa5c61e..289d005 100644 --- a/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java +++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java @@ -7,13 +7,17 @@ import com.example.erp.entity.sd.DeliveryDetail; import com.example.erp.entity.sd.Order; import com.example.erp.entity.sd.OrderDetail; +import com.example.erp.entity.userInfo.SysError; import com.example.erp.mapper.mm.FinishedGoodsInventoryMapper; import com.example.erp.mapper.sd.DeliveryDetailMapper; import com.example.erp.mapper.sd.DeliveryMapper; import com.example.erp.mapper.sd.OrderDetailMapper; import com.example.erp.mapper.sd.OrderMapper; +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.text.SimpleDateFormat; import java.time.LocalDate; @@ -21,6 +25,7 @@ @Service @DS("sd") +@Transactional(rollbackFor = Exception.class) public class DeliveryService { @Autowired DeliveryMapper deliveryMapper; @@ -32,8 +37,11 @@ OrderDetailMapper orderDetailMapper; @Autowired FinishedGoodsInventoryMapper finishedGoodsInventoryMapper; + @Autowired + SysErrorService sysErrorService; - public Map<String, Object> getseletShippingOrder(Integer pageNum, Integer pageSize,List<String> selectDate, Delivery delivery) { + + public Map<String, Object> getSelectShippingOrder(Integer pageNum, Integer pageSize,List<String> selectDate, Delivery delivery) { Integer offset = (pageNum - 1) * pageSize; String endDate = LocalDate.now().toString(); String startDate = LocalDate.now().minusDays(15).toString(); @@ -46,8 +54,8 @@ } } Map<String, Object> map = new HashMap<>(); - map.put("data", deliveryMapper.getseletShippingOrder(offset, pageSize,startDate,endDate, delivery)); - map.put("total", deliveryMapper.getseletShippingOrderPageTotal(offset, pageSize,startDate,endDate, delivery)); + map.put("data", deliveryMapper.getSelectShippingOrder(offset, pageSize,startDate,endDate, delivery)); + map.put("total", deliveryMapper.getSelectShippingOrderPageTotal(offset, pageSize,startDate,endDate, delivery)); List<String> list = new ArrayList<>(); list.add(startDate); list.add(endDate); @@ -55,14 +63,13 @@ return map; } - public Map<String, Object> getseletShippingOrderDetail(Integer pageNum, Integer pageSize, OrderDetail orderDetail) { + public Map<String, Object> getSelectShippingOrderDetail(Integer pageNum, Integer pageSize, OrderDetail orderDetail) { Integer offset = (pageNum - 1) * pageSize; Map<String, Object> map = new HashMap<>(); - System.out.println(orderDetail.getDeliveryDetail().getMoney()); - map.put("data", deliveryDetailMapper.getseletShippingOrderDetail(offset, pageSize, orderDetail)); - map.put("delivery", deliveryMapper.getseletShippingOrderDetaildelivery(offset, pageSize, orderDetail)); - map.put("total", deliveryDetailMapper.getseletShippingOrderDetailPageTotal(offset, pageSize, orderDetail)); + map.put("data", deliveryDetailMapper.getSelectShippingOrderDetail(offset, pageSize, orderDetail)); + map.put("delivery", deliveryMapper.getSelectShippingOrderDetailDelivery(offset, pageSize, orderDetail)); + map.put("total", deliveryDetailMapper.getSelectShippingOrderDetailPageTotal(offset, pageSize, orderDetail)); return map; } @@ -89,49 +96,102 @@ return map; } - public Map<String, Object> getseletShippingOrderDetails(Integer pageNum, Integer pageSize, OrderDetail orderDetail) { + public Map<String, Object> getSelectShippingOrderDetails(Integer pageNum, Integer pageSize, OrderDetail orderDetail) { Integer offset = (pageNum - 1) * pageSize; Map<String, Object> map = new HashMap<>(); - map.put("data", deliveryDetailMapper.getseletShippingOrderDetails(offset, pageSize, orderDetail)); - map.put("title", deliveryMapper.getseletShippingOrderDetaildeliverys(offset, pageSize, orderDetail)); - map.put("total", deliveryDetailMapper.getseletShippingOrderDetailsPageTotal(offset, pageSize, orderDetail)); + map.put("data", deliveryDetailMapper.getSelectShippingOrderDetails(offset, pageSize, orderDetail)); + map.put("title", deliveryMapper.getSelectShippingOrderDetailDeliverys(offset, pageSize, orderDetail)); + map.put("total", deliveryDetailMapper.getSelectShippingOrderDetailsPageTotal(offset, pageSize, orderDetail)); return map; } public Boolean insertDelivery(Map<String,Object> object) { - Boolean isinsert=false; - Delivery delivery = JSONObject.parseObject(JSONObject.toJSONString(object.get("title")), Delivery.class); - List<OrderDetail> orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("delivery")), OrderDetail.class); - //鑾峰彇鍗曞彿 - String oddNumber= orderNumberSetting("鍙戣揣"); - System.out.println(delivery); - deliveryMapper.insertDelivery(delivery,oddNumber,orderDetaillist.get(0).getOrderId()); - Double area=0.0; - Integer quantity=0; - Double money=0.0; - //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼 - if (!orderDetaillist.isEmpty()){ - for (OrderDetail orderDetail : orderDetaillist) { - quantity+=orderDetail.getDeliveryDetail().getQuantity(); - area+=orderDetail.getFinishedGoodsInventory().getActualSignalArea()*orderDetail.getDeliveryDetail().getQuantity(); - money+=orderDetail.getPrice()*orderDetail.getDeliveryDetail().getQuantity(); - Integer deliveryDetailmaximum=deliveryDetailMapper.getdeliveryDetailmaximum(oddNumber); - System.out.println(deliveryDetailmaximum); - deliveryDetailMapper.insertDeliveryDetail(orderDetail,oddNumber,deliveryDetailmaximum); - deliveryDetailMapper.updateOrderDetailDeliveryNum(orderDetail); - //淇敼搴撳瓨琛ㄥ嚭搴撴暟閲� - finishedGoodsInventoryMapper.updateInventoryquantityOut(orderDetail.getOrderId(),orderDetail.getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity()); - isinsert=true; + boolean saveState = true; + //璁剧疆鍥炴粴鐐� + Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); + try { + + String deliveryId = ""; + String oddNumber; + if (object.get("deliveryId") != null) { + deliveryId = object.get("deliveryId").toString(); } - System.out.println("闈㈢Н"+area+"鏁伴噺"+quantity+"閲戦"+money); - deliveryMapper.updatedelivery(area,quantity,money,oddNumber); - return isinsert; - }else{ - return false; + Delivery delivery = JSONObject.parseObject(JSONObject.toJSONString(object.get("title")), Delivery.class); + List<OrderDetail> orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("delivery")), OrderDetail.class); + //鏌ヨ鍙戣揣鍗曟槸鍚﹀瓨鍦� + Integer deliveryConut = deliveryMapper.getDeliveryConut(deliveryId); + + if (deliveryConut != 0) { + //缂栬緫杩樺師鏁版嵁 + String deliveryDetailNumber = ""; + if (!orderDetaillist.isEmpty()) { + for (OrderDetail orderDetail : orderDetaillist) { + if (orderDetaillist.size() - 1 == orderDetaillist.indexOf(orderDetail)) { + deliveryDetailNumber += orderDetail.getDeliveryDetail().getDeliveryNumber(); + } else { + deliveryDetailNumber += orderDetail.getDeliveryDetail().getDeliveryNumber() + "|"; + } + + } + } + List<DeliveryDetail> deliveryDetaillist = deliveryDetailMapper.getIsNotDeliveryDetail(deliveryDetailNumber, deliveryId); + if (!deliveryDetaillist.isEmpty()) { + for (DeliveryDetail deliveryDetail : deliveryDetaillist) { + //杩樺師搴撳瓨鏁颁互鍙婅鍗曟槑缁嗙殑鍙戣揣鏁� + finishedGoodsInventoryMapper.updateInventoryquantityInt(deliveryDetail.getOrderId(), deliveryDetail.getOrderNumber(), deliveryDetail.getQuantity()); + deliveryDetailMapper.updateIsNotOrderDetailDeliveryNum(deliveryDetail.getOrderId(), deliveryDetail.getOrderNumber(), deliveryDetail.getQuantity()); + } + } + //杩樺師鍙戣揣琛ㄧ殑闈㈢Н鏁伴噺閲戦 + deliveryMapper.updatedelivery(0.0, 0, 0.0, deliveryId); + //鍒犻櫎鍙戣揣鏄庣粏鐨勬暟鎹� + deliveryDetailMapper.deleteDeliveryDetail(deliveryId); + oddNumber = deliveryId; + } else { + //鑾峰彇鍗曞彿 + oddNumber = orderNumberSetting("鍙戣揣"); + //鏂板鍙戣揣琛ㄦ暟鎹� + deliveryMapper.insertDelivery(delivery, oddNumber, orderDetaillist.get(0).getOrderId()); + } + System.out.println(4); + Double area = 0.0; + Integer quantity = 0; + Double money = 0.0; + //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼 + + if (!orderDetaillist.isEmpty()) { + for (OrderDetail orderDetail : orderDetaillist) { + + quantity += orderDetail.getDeliveryDetail().getQuantity(); + area += orderDetail.getFinishedGoodsInventory().getActualSignalArea() * orderDetail.getDeliveryDetail().getQuantity(); + money += orderDetail.getPrice() * orderDetail.getDeliveryDetail().getQuantity(); + Integer deliveryDetailmaximum = deliveryDetailMapper.getdeliveryDetailmaximum(oddNumber); + //鏂板鍙戣揣鏄庣粏鏁版嵁 + deliveryDetailMapper.insertDeliveryDetail(orderDetail, oddNumber, deliveryDetailmaximum + 1); + //淇敼璁㈠崟鏄庣粏 + deliveryDetailMapper.updateOrderDetailDeliveryNum(orderDetail); + //淇敼搴撳瓨琛ㄥ嚭搴撴暟閲� + finishedGoodsInventoryMapper.updateInventoryquantityOut(orderDetail.getOrderId(), orderDetail.getOrderNumber(), orderDetail.getDeliveryDetail().getQuantity()); + + } + //淇敼鍙戣揣鏄庣粏绱姞闈㈢Н鏁伴噺閲戦 + deliveryMapper.updatedelivery(Double.valueOf(String.format("%.2f", area)), quantity, Double.valueOf(String.format("%.2f", money)), oddNumber); + + } else { + return false; + } + } catch (Exception e) { + TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); + //灏嗗紓甯镐紶鍏ユ暟鎹簱 + SysError sysError = new SysError(); + sysError.setError(e.toString()); + sysError.setFunc("saveOrder"); + sysErrorService.insert(sysError); + saveState = false; + } - - + return saveState; } @@ -147,12 +207,38 @@ type = Integer.parseInt(object.get("type").toString()); } - System.out.println(deliveryId); deliveryMapper.updateDeliveryToExamine(deliveryId,type); return true; + + } + + public Boolean deleteDelivery(Map<String,Object> object) { + boolean saveState = true; + //璁剧疆鍥炴粴鐐� + Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); + try { + String deliveryId = ""; + if (object.get("deliveryId") != null) { + deliveryId = object.get("deliveryId").toString(); + } + deliveryDetailMapper.deleteDeliveryDetail(deliveryId); + deliveryMapper.deleteDelivery(deliveryId); + + return true; + }catch (Exception e) { + TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); + //灏嗗紓甯镐紶鍏ユ暟鎹簱 + SysError sysError = new SysError(); + sysError.setError(e.toString()); + sysError.setFunc("saveOrder"); + sysErrorService.insert(sysError); + saveState = false; + + } + return saveState; } @@ -162,14 +248,6 @@ String alias=""; if(Objects.equals(type, "鍙戣揣")){ alias="FH"; - }else if(Objects.equals(type, "鍑哄簱")){ - alias="CK"; - }else if(Objects.equals(type, "璋冩嫧")){ - alias="DB"; - }else if(Objects.equals(type, "棰嗗嚭")){ - alias="LC"; - }else if(Objects.equals(type, "杩斿伐")){ - alias="FG"; } //鏌ヨ褰撳ぉ鐨勬渶澶ф暟閲� Integer maximum=deliveryMapper.getmaximum(type); -- Gitblit v1.8.0