From decd9f8bf3e6119efce34e6bbc0c320a2a2446c1 Mon Sep 17 00:00:00 2001 From: guoyuji <guoyujie@ng.com> Date: 星期五, 02 二月 2024 15:41:50 +0800 Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override --- north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java | 368 +++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 317 insertions(+), 51 deletions(-) diff --git a/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java index b3ac882..4055e7d 100644 --- a/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java +++ b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java @@ -1,5 +1,6 @@ package com.example.erp.service.mm; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.dynamic.datasource.annotation.DS; import com.example.erp.entity.mm.FinishedGoodsInventory; @@ -7,16 +8,16 @@ import com.example.erp.entity.pp.FlowCard; import com.example.erp.entity.sd.Order; import com.example.erp.entity.sd.OrderDetail; +import com.example.erp.mapper.mm.BasicWarehouseTypeMapper; import com.example.erp.mapper.mm.FinishedGoodsInventoryMapper; import com.example.erp.mapper.mm.FinishedOperateLogMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.sql.SQLException; +import java.text.SimpleDateFormat; import java.time.LocalDate; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; @Service @DS("mm") @@ -25,67 +26,332 @@ FinishedGoodsInventoryMapper finishedGoodsInventoryMapper; @Autowired FinishedOperateLogMapper finishedOperateLogMapper; - public Map<String,Object> defaultDateFinishedGoodsInventory(Integer pageNum, Integer pageSize,FinishedGoodsInventory finishedGoodsInventory) { - Integer offset = (pageNum-1)*pageSize; - Map<String,Object> map = new HashMap<>(); - map.put("data",finishedGoodsInventoryMapper.defaultfinishedGoods(offset,pageSize,finishedGoodsInventory)); - map.put("total",finishedGoodsInventoryMapper.getPageTotal(offset,pageSize,finishedGoodsInventory)); + @Autowired + BasicWarehouseTypeMapper basicWarehouseTypeMapper; + + public Map<String, Object> defaultDateFinishedGoodsInventory(Integer pageNum, Integer pageSize, FinishedGoodsInventory finishedGoodsInventory) { + Integer offset = (pageNum - 1) * pageSize; + Map<String, Object> map = new HashMap<>(); + map.put("data", finishedGoodsInventoryMapper.defaultfinishedGoods(offset, pageSize, finishedGoodsInventory)); + map.put("total", finishedGoodsInventoryMapper.getPageTotal(offset, pageSize, finishedGoodsInventory)); return map; } - public Map<String,Object> getseletwarehousing(Integer pageNum, Integer pageSize, FlowCard flowCard) { - Integer offset = (pageNum-1)*pageSize; - Map<String,Object> map = new HashMap<>(); - map.put("data",finishedGoodsInventoryMapper.getseletwarehousing(offset,pageSize,flowCard)); - map.put("total",finishedGoodsInventoryMapper.getseletwarehousingPageTotal(offset,pageSize,flowCard)); + public Map<String, Object> getseletwarehousing(Integer pageNum, Integer pageSize, FlowCard flowCard) { + Integer offset = (pageNum - 1) * pageSize; + Map<String, Object> map = new HashMap<>(); + map.put("data", finishedGoodsInventoryMapper.getseletwarehousing(offset, pageSize, flowCard)); + map.put("total", finishedGoodsInventoryMapper.getseletwarehousingPageTotal(offset, pageSize, flowCard)); return map; } - public Boolean addseletwarehousing(Map<String,Map<String,Object>> object) { + public Boolean addseletwarehousing(Map<String,Object> object) { + Boolean isinsert=false; - Map<String,Object> maps= object.get("finishedGoodsInventory"); - String storageRegion= maps.get("storageRegion").toString(); - String remark= maps.get("remark").toString(); - JSONObject jsonObject = new JSONObject(object.get("flowcard")); - FlowCard flowCard = JSONObject.parseObject(JSONObject.toJSONString(jsonObject), FlowCard.class); - System.out.println("鏁版嵁2锛�"+flowCard); - //娣诲姞鍑哄叆搴撹褰� - finishedOperateLogMapper.insertFinishedOperateLog(flowCard); - System.out.println(flowCard.getOrder().getOrderId()); - Integer finishedGoodsInventorycount=finishedGoodsInventoryMapper.findOrderNumberdcount(flowCard.getOrderNumber()); - System.out.println("鏁伴噺:"+finishedGoodsInventorycount); - if(finishedGoodsInventorycount>0){ - finishedGoodsInventoryMapper.updateInventory(flowCard); - finishedGoodsInventoryMapper.updateflowcard(flowCard); - return true; - }else{ - if (finishedGoodsInventoryMapper.insertFinishedGoodsInventory(flowCard,storageRegion,remark)){ - finishedGoodsInventoryMapper.updateflowcard(flowCard); - return true; + //瀹氫箟鍓嶇浼犺緭鐨勬暟鎹� + String storageRegion = ""; + String remark = ""; + if (object.get("remark") != null) { + remark = object.get("remark").toString(); + } + if (object.get("storageRegion") != null) { + storageRegion = object.get("storageRegion").toString(); + } + + String userName = ""; + String userId = ""; + if (object.get("userName") != null) { + userName = object.get("userName").toString(); + } + if (object.get("userId") != null) { + userId = object.get("userId").toString(); + } + + //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼 + List<FlowCard> flowCardlist = JSONArray.parseArray(JSONObject.toJSONString(object.get("flowcard")), FlowCard.class); + if (!flowCardlist.isEmpty()){ + for (FlowCard flowCard : flowCardlist) { + //鑾峰彇鍗曞彿 + String oddNumber= orderNumberSetting("鍏ュ簱"); + //娣诲姞鍑哄叆搴撹褰� + finishedOperateLogMapper.insertIntFinishedOperateLog(flowCard,userName,oddNumber); + System.out.println(flowCard.getOrder().getOrderId()); + Integer finishedGoodsInventorycount = finishedGoodsInventoryMapper.findOrderNumberdcount(flowCard.getOrder().getOrderId(),flowCard.getOrderNumber()); + Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(flowCard.getOrder().getOrderId()); + Integer ordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(flowCard.getOrder().getOrderId()); + + System.out.println("璁㈠崟鎬绘暟:" + ordersum + "宸插叆搴撴暟閲忥細" + ordernumbersum + "鍑嗗鍏ュ簱鏁伴噺" + flowCard.getInventoryQuantity()); + if (finishedGoodsInventorycount > 0) { + //淇敼搴撳瓨琛ㄥ叆搴撴暟閲� + finishedGoodsInventoryMapper.updateInventory(flowCard,storageRegion, remark); + //淇敼娴佺▼鍗¤〃鍏ュ簱鏁伴噺 + finishedGoodsInventoryMapper.updateflowcard(flowCard); + //淇敼璁㈠崟鏄庣粏琛ㄥ叆搴撴暟閲� + finishedGoodsInventoryMapper.updateIntOrderNumberConut(flowCard.getOrder().getOrderId(),flowCard.getOrderNumber(),flowCard.getInventoryQuantity()); + //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍏ュ簱 + if (ordersum == (ordernumbersum + flowCard.getInventoryQuantity())) { + //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬� + finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),2); + } + isinsert=true; + } else { + if (finishedGoodsInventoryMapper.insertFinishedGoodsInventory(flowCard, storageRegion, remark)) { + //淇敼娴佺▼鍗¤〃鍏ュ簱鏁伴噺 + finishedGoodsInventoryMapper.updateflowcard(flowCard); + //淇敼璁㈠崟鏄庣粏琛ㄥ叆搴撴暟閲� + finishedGoodsInventoryMapper.updateIntOrderNumberConut(flowCard.getOrder().getOrderId(),flowCard.getOrderNumber(),flowCard.getInventoryQuantity()); + //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬� + finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),1); + isinsert=true; + } else { + isinsert= false; + } + } + } + return isinsert; }else{ return false; } - } - - - /*Order order=finishedGoodsInventoryMapper.findOrderId(flowCard.getOrder().getOrderId()); - OrderDetail orderDetail=finishedGoodsInventoryMapper.findOrderNumber(flowCard.getOrderNumber());*/ - /*finishedGoodsInventory.setOrder(order); - finishedGoodsInventory.setOrderDetail(orderDetail); - finishedGoodsInventory.setInventory(flowCard.getInventoryQuantity()); - finishedGoodsInventory.setActualSignalArea(flowCard.getOrderDetail().getHeight()*flowCard.getOrderDetail().getWidth()); - finishedGoodsInventory.setArea(flowCard.getOrderDetail().getHeight()*flowCard.getOrderDetail().getWidth()*flowCard.getInventoryQuantity()); - finishedGoodsInventory.setQuantityAvailable(flowCard.getInventoryQuantity()); - finishedGoodsInventory.setWarehouseNumber(flowCard.getOrderDetail().getBuildingNumber()); - finishedGoodsInventory.setStorageRegion(flowCard.getOrderDetail().getBuildingNumber()); - finishedGoodsInventory.setStatus(0); - finishedGoodsInventory.setEnterStorageTime(LocalDate.now()); - finishedGoodsInventory.setUpdateTime(LocalDate.now()); - finishedGoodsInventory.setEndTime(null); - finishedGoodsInventory.setRemark("");*/ } + + + public Map<String, Object> getseletdeliveryDetail(Integer pageNum, Integer pageSize, OrderDetail orderDetail) { + Integer offset = (pageNum - 1) * pageSize; + Map<String, Object> map = new HashMap<>(); + map.put("data", finishedGoodsInventoryMapper.getseletdeliveryDetail(offset, pageSize, orderDetail)); + map.put("total", finishedGoodsInventoryMapper.getseletdeliveryDetailPageTotal(offset, pageSize, orderDetail)); + return map; + } + + + public Boolean adddeliveryDetail(Map<String,Object> object) { + Boolean isinsert=false; + String userName = ""; + String userId = ""; + if (object.get("userName") != null) { + userName = object.get("userName").toString(); + } + if (object.get("userId") != null) { + userId = object.get("userId").toString(); + } + //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼 + List<OrderDetail> orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), OrderDetail.class); + if (!orderDetaillist.isEmpty()){ + for (OrderDetail orderDetail : orderDetaillist) { + //鑾峰彇鍗曞彿 + String oddNumber= orderNumberSetting("鍑哄簱"); + //娣诲姞鍑哄叆搴撹褰� + finishedOperateLogMapper.insertOutFinishedOperateLog(orderDetail,userName,oddNumber); + Integer finishedGoodsInventorycount = finishedGoodsInventoryMapper.findOrderNumberdcount(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber()); + System.out.println("鏁版嵁3:"+finishedGoodsInventorycount); + Integer finishedGoodsInventorybycount=finishedGoodsInventoryMapper.finishedGoodsInventorybycount(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber()); + Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getDeliveryDetail().getOrderId()); + Integer ordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getDeliveryDetail().getOrderId()); + + System.out.println("璁㈠崟鎬绘暟:" + ordersum + "璁㈠崟鍓╀綑鏁伴噺锛�" + ordernumbersum + "鍑嗗鍑哄簱鏁伴噺" + orderDetail.getWarehouseNum()+ "搴撳瓨鏁伴噺" + finishedGoodsInventorybycount); + if (finishedGoodsInventorycount > 0) { + if(Objects.equals(finishedGoodsInventorybycount, orderDetail.getWarehouseNum())){ + System.out.println(123); + //淇敼搴撳瓨琛ㄥ嚭搴撴暟閲� + finishedGoodsInventoryMapper.updateInventoryquantityavailable(orderDetail); + //淇敼鍙戣揣鏄庣粏琛ㄧ姸鎬� + finishedGoodsInventoryMapper.updateDeliveryDetailState(orderDetail,0); + //淇敼璁㈠崟鏄庣粏琛ㄥ彂璐ф暟閲� + finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getWarehouseNum()); + //淇敼璁㈠崟琛ㄥ彂璐х姸鎬� + finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),1); + //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍙戣揣 + if (0 == (ordernumbersum - orderDetail.getWarehouseNum())) { + //淇敼璁㈠崟琛ㄥ彂璐х姸鎬� + finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),2); + } + isinsert=true; + } + + } else { + isinsert=false; + } + } + return isinsert; + }else{ + return false; + } + + + + } + + public Map<String, Object> getSelectAllocate(Integer pageNum, Integer pageSize, OrderDetail orderDetail) { + Integer offset = (pageNum - 1) * pageSize; + Map<String, Object> map = new HashMap<>(); + map.put("data", finishedGoodsInventoryMapper.getSelectAllocate(offset, pageSize, orderDetail)); + map.put("total", finishedGoodsInventoryMapper.getSelectAllocatePageTotal(offset, pageSize, orderDetail)); + map.put("type", basicWarehouseTypeMapper.getBasicWarehouseTypeTakeOut()); + return map; + } + + public Boolean updateFinishedGoodsInventoryAllocate(Map<String,Object> object) { + Boolean isinsert=false; + String userName = ""; + String userId = ""; + if (object.get("userName") != null) { + userName = object.get("userName").toString(); + } + if (object.get("userId") != null) { + userId = object.get("userId").toString(); + } + //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼 + List<OrderDetail> orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), OrderDetail.class); + if (!orderDetaillist.isEmpty()){ + for (OrderDetail orderDetail : orderDetaillist) { + Integer oldordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getFinishedGoodsInventory().getOrderId()); + Integer oldordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getFinishedGoodsInventory().getOrderId()); + + Integer newordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getOrderId()); + Integer newordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getOrderId()); + + //鑾峰彇鍗曞彿 + String oddNumber= orderNumberSetting("璋冩嫧"); + //娣诲姞璋冩嫧璁板綍 + finishedOperateLogMapper.insertFinishedOperateLogAllocate(orderDetail,userName,oddNumber); + //淇敼鍘熻鍗曠殑搴撳瓨鏁伴噺 + finishedGoodsInventoryMapper.updateInventoryquantityAllocateOut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity())); + //淇敼璋冩嫧鍚庤鍗曠殑搴撳瓨鏁伴噺 + finishedGoodsInventoryMapper.updateInventoryquantityAllocateInt(orderDetail.getOrderId(),orderDetail.getOrderNumber(), Math.toIntExact(orderDetail.getQuantity())); + //淇敼鍘熻鍗曟槑缁嗚〃鍙戣揣鏁伴噺 + finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity())); + //淇敼璋冩嫧鏂拌鍗曟槑缁嗚〃鍙戣揣鏁伴噺 + finishedGoodsInventoryMapper.updateIntOrderNumberConut(orderDetail.getOrderId(),orderDetail.getOrderNumber(), Math.toIntExact(orderDetail.getQuantity())); + if (newordersum==newordernumbersum+orderDetail.getQuantity()){ + //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬� + finishedGoodsInventoryMapper.updateOrderWarehousingState(orderDetail.getOrderId(),2); + } + if (Objects.equals(oldordersum, oldordernumbersum)){ + //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬� + finishedGoodsInventoryMapper.updateOrderWarehousingState(orderDetail.getFinishedGoodsInventory().getOrderId(),1); + } + isinsert=true; + } + return isinsert; + }else{ + return false; + } + + + + } + + public Map<String, Object> getselectAllocateFinishedOperateLog(Integer pageNum, Integer pageSize, FinishedOperateLog finishedOperateLog) { + Integer offset = (pageNum - 1) * pageSize; + Map<String, Object> map = new HashMap<>(); + map.put("data", finishedOperateLogMapper.getselectAllocateFinishedOperateLog(offset, pageSize, finishedOperateLog)); + map.put("total", finishedOperateLogMapper.getselectAllocateFinishedOperateLogPageTotal(offset, pageSize, finishedOperateLog)); + return map; + } + + public Boolean updateFinishedGoodsInventoryTakeOut(Map<String,Object> object) { + Boolean isinsert=false; + String userName = ""; + String userId = ""; + if (object.get("userName") != null) { + userName = object.get("userName").toString(); + System.out.println(12344); + } + if (object.get("userId") != null) { + userId = object.get("userId").toString(); + } + + String operateType = ""; + String remarks = ""; + if (object.get("remarks") != null) { + remarks = object.get("remarks").toString(); + } + if (object.get("operateType") != null) { + operateType = object.get("operateType").toString(); + } + //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼 + List<OrderDetail> orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), OrderDetail.class); + if (!orderDetaillist.isEmpty()){ + for (OrderDetail orderDetail : orderDetaillist) { + Integer oldordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getFinishedGoodsInventory().getOrderId()); + Integer oldordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getFinishedGoodsInventory().getOrderId()); + + //鑾峰彇鍗曞彿 + String oddNumber= orderNumberSetting("棰嗗嚭"); + //娣诲姞棰嗗嚭璁板綍 + finishedOperateLogMapper.insertFinishedOperateLogTakeOut(orderDetail,userName,oddNumber,operateType,remarks); + //淇敼搴撳瓨鏁伴噺 + finishedGoodsInventoryMapper.updateInventoryquantityAllocateOut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity())); + //淇敼璁㈠崟鏄庣粏琛ㄦ暟閲� + finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity())); + if (Objects.equals(oldordersum, oldordernumbersum)){ + //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬� + finishedGoodsInventoryMapper.updateOrderWarehousingState(orderDetail.getFinishedGoodsInventory().getOrderId(),1); + } + isinsert=true; + } + return isinsert; + }else{ + return false; + } + + + } + + public Map<String, Object> getselectTakeOutFinishedOperateLog(Integer pageNum, Integer pageSize, FinishedOperateLog finishedOperateLog) { + Integer offset = (pageNum - 1) * pageSize; + Map<String, Object> map = new HashMap<>(); + map.put("data", finishedOperateLogMapper.getselectAllocateFinishedOperateLog(offset, pageSize, finishedOperateLog)); + map.put("total", finishedOperateLogMapper.getselectAllocateFinishedOperateLogPageTotal(offset, pageSize, finishedOperateLog)); + return map; + } + + public Map<String, Object> getSelectOperateRecord(Integer pageNum, Integer pageSize, FinishedOperateLog finishedOperateLog) { + Integer offset = (pageNum - 1) * pageSize; + Map<String, Object> map = new HashMap<>(); + map.put("data", finishedOperateLogMapper.getSelectOperateRecord(offset, pageSize, finishedOperateLog)); + map.put("total", finishedOperateLogMapper.getSelectOperateRecordLogPageTotal(offset, pageSize, finishedOperateLog)); + return map; + } + + + + + + public String orderNumberSetting(String type) { + //鏍规嵁绫诲瀷鑷姩鐢熸垚涓嶅悓鐨勬搷浣滃崟鍙� + String alias=""; + if(Objects.equals(type, "鍏ュ簱")){ + alias="RK"; + }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=finishedOperateLogMapper.getmaximum(type); + //璁剧疆涓や綅涓嶅琛�0 + String formattedNumber = String.format("%02d", maximum+1); + //鏍煎紡鍖栧綋鍓嶆棩鏈� + Date currentDate = new Date(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd"); + String formattedDate = dateFormat.format(currentDate); + String oddNumbers = alias+formattedDate+formattedNumber; + return oddNumbers; + } + + + + + + + } -- Gitblit v1.8.0