From a9de97ec2f33c540e4dce56af7a11ccd30a65f5a Mon Sep 17 00:00:00 2001 From: Fancy <Fancy.fx@outlook.com> Date: 星期五, 13 十二月 2024 11:57:49 +0800 Subject: [PATCH] application --- pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/order/OrderSv.java | 87 ++++++++++++++++++++++++++++++++++--------- 1 files changed, 68 insertions(+), 19 deletions(-) diff --git a/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/order/OrderSv.java b/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/order/OrderSv.java index db2edf4..4c909c6 100644 --- a/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/order/OrderSv.java +++ b/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/order/OrderSv.java @@ -14,6 +14,8 @@ import java.math.BigDecimal; import java.math.RoundingMode; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.List; import java.util.Map; @@ -38,6 +40,7 @@ public void setUserUtil(UserUtil userUtil) { this.userUtil = userUtil; } + @Transactional public int save(PrOrder p) { p.id = null; @@ -45,7 +48,8 @@ if (orderDao.exists(p.name, p.id)) { throw new RuntimeException("璁㈠崟鍚嶇О涓嶈兘閲嶅"); } - p.setDeleted(false); + extractedCheck(p); + p.deleted = false; BaUser loginUser = userUtil.getUser(UserTokenContext.get()); if (loginUser != null) { p.creator = loginUser.id; @@ -60,6 +64,7 @@ if (orderDao.exists(p.name, p.id)) { throw new RuntimeException("璁㈠崟鍚嶇О涓嶈兘閲嶅"); } + extractedCheck(p); int count = orderDao.updateByPrimaryKeySelective(p); if (count > 0) { saveOrderItems(p); @@ -119,25 +124,27 @@ } private void changeRate(PrOrder prOrder) { - List<PrOrderItem> items = prOrder.items; - for (int i = 1; i < items.size(); i++) { - for (int j = i - 1; j >= 0; j--) { - //鎷跨潃i渚濇璺熶笂涓�涓瘮杈�,濡傛灉浜у搧鐩稿悓,鍒欎笂涓�涓褰昪omplete_number - number 濡傛灉 > 0 鍒嗙粰i ,濡傛灉 < 0 鍒欏皢 complete_number 缃负0 - if (items.get(j).getProId().intValue() == items.get(i).getProId().intValue()) { - int remainNumber = items.get(j).getCompleteNumber() - items.get(j).getNumber(); - if (remainNumber > 0) { - items.get(j).setCompleteNumber(items.get(j).getNumber()); - items.get(j).setCompleteRate("100.00%"); - items.get(i).setCompleteNumber(remainNumber); - BigDecimal remainBig = new BigDecimal(remainNumber * 100); - BigDecimal iNumberBig = new BigDecimal(items.get(i).getNumber()); - BigDecimal result = remainBig.divide(iNumberBig, 2, RoundingMode.HALF_UP); - items.get(i).setCompleteRate(result.toString() +"%"); - }else{ - items.get(i).setCompleteNumber(0); - items.get(i).setCompleteRate("0.00%"); + if (prOrder != null && prOrder.items != null) { + List<PrOrderItem> items = prOrder.items; + for (int i = 1; i < items.size(); i++) { + for (int j = i - 1; j >= 0; j--) { + //鎷跨潃i渚濇璺熶笂涓�涓瘮杈�,濡傛灉浜у搧鐩稿悓,鍒欎笂涓�涓褰昪omplete_number - number 濡傛灉 > 0 鍒嗙粰i ,濡傛灉 < 0 鍒欏皢 complete_number 缃负0 + if (items.get(j).getProId().intValue() == items.get(i).getProId().intValue()) { + int remainNumber = items.get(j).getCompleteNumber() - items.get(j).getNumber(); + if (remainNumber > 0) { + items.get(j).setCompleteNumber(items.get(j).getNumber()); + items.get(j).setCompleteRate("100.00%"); + items.get(i).setCompleteNumber(remainNumber); + BigDecimal remainBig = new BigDecimal(remainNumber * 100); + BigDecimal iNumberBig = new BigDecimal(items.get(i).getNumber()); + BigDecimal result = remainBig.divide(iNumberBig, 2, RoundingMode.HALF_UP); + items.get(i).setCompleteRate(result.toString() + "%"); + } else { + items.get(i).setCompleteNumber(0); + items.get(i).setCompleteRate("0.00%"); + } + break; } - break; } } } @@ -151,4 +158,46 @@ } return orderList; } + + /** + * 鍙洿鏂扮姸鎬�,涓嶆洿鏂板叾浠栧瓧娈� + * + * @param order 鏇存柊鐘舵�� 濡傛灉鏈夊湪鎵ц涓殑浠诲姟,涓嶈鏆傚仠 + * @return + */ + @Transactional + public int updateStatus(PrOrder order) { + if (order.status == OrderStatusEnum.NORMAL.getCode()) { + PrOrder prOrder = orderDao.selectByPrimaryKey(order.id); + prOrder.status = order.status; + extractedCheck(prOrder); + } + PrOrder param = new PrOrder(); + param.id = order.id; + param.status = order.status; + return orderDao.updateByPrimaryKeySelective(param); + } + + //濡傛灉浜ゆ湡灏忎簬褰撳墠鏃堕棿,涓嶅厑璁歌缃负姝e父 + private void extractedCheck(PrOrder order) { + if (order.status == OrderStatusEnum.NORMAL.getCode()) { + String deliveryDateStr = order.getDeliveryDate(); + LocalDate endDate = LocalDate.parse(deliveryDateStr, DateTimeFormatter.ISO_LOCAL_DATE); + LocalDate nextDay = endDate.plusDays(1); + LocalDate today = LocalDate.now(); // 鑾峰彇褰撳墠鏃ユ湡 + if (nextDay.isBefore(today)) { + throw new RuntimeException("浜や粯鏃ユ湡蹇呴』澶т簬绛変簬褰撳墠鏃ユ湡,璇蜂慨鏀逛氦浠樻棩鏈�"); + } + } + //濡傛灉鏈夊湪鐢熶骇鐨勪换鍔′笉鑳借缃负鏆傚仠 鎴� 缁撴潫 + /* + PrProductionProcess process = processDao.selectByPrimaryKey(order.processId); + if(process == null || !process.proId.equals(order.proId)){ + throw new RuntimeException("浜у搧涓庣敓浜ф祦绋嬩笉鍖归厤"); + } + //寮�濮嬫棩鏈熻灏忎簬缁撴潫鏃ユ湡 + if(order.startDate.compareTo(order.endDate) > 0){ + throw new RuntimeException("寮�濮嬫棩鏈熶笉鑳藉ぇ浜庣粨鏉熸棩鏈�"); + }*/ + } } \ No newline at end of file -- Gitblit v1.8.0