| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.example.erp.dto.mm.FinishedOperateLogDTO; |
| | | import com.example.erp.entity.mm.FinishedGoodsInventory; |
| | | import com.example.erp.entity.mm.FinishedOperateLog; |
| | |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.sql.SQLOutput; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.util.*; |
| | | |
| | | @Service |
| | |
| | | if (object.get("decValue") != null) { |
| | | decValue = Integer.parseInt(object.get("decValue").toString()); |
| | | } |
| | | String createTime = null; |
| | | if(object.get("createTime")!=null){ |
| | | createTime = object.get("createTime").toString(); |
| | | } |
| | | |
| | | Log log = new Log(); |
| | | log.setOperator(userName); |
| | | log.setOperatorId(userId); |
| | |
| | | |
| | | |
| | | //添加出入库记录 |
| | | finishedOperateLogMapper.insertIntFinishedOperateLog(flowCard,userName,oddNumber,container,deliveryDetailMoney,deliveryDetailArea); |
| | | finishedOperateLogMapper.insertIntFinishedOperateLog(flowCard,userName,oddNumber,container,deliveryDetailMoney,deliveryDetailArea,createTime,getComputeArea.doubleValue()); |
| | | Integer finishedGoodsInventorycount = 0; |
| | | finishedGoodsInventorycount = finishedGoodsInventoryMapper.findOrderNumberdContainercount(flowCard.getOrder().getOrderId(),flowCard.getOrderNumber(),container); |
| | | |
| | |
| | | finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),2); |
| | | } |
| | | } else { |
| | | if (finishedGoodsInventoryMapper.insertFinishedGoodsInventory(flowCard, storageRegion, remark,container)) { |
| | | if (finishedGoodsInventoryMapper.insertFinishedGoodsInventory(flowCard, storageRegion, remark,container,getComputeArea.doubleValue())) { |
| | | //修改流程卡表入库数量 |
| | | finishedGoodsInventoryMapper.updateflowcard(flowCard); |
| | | //修改订单明细表入库数量 |
| | |
| | | for (OrderDetail orderDetail : list) { |
| | | //获取单号 |
| | | String oddNumber= orderNumberSetting("出库"); |
| | | OrderDetail orderDetailNew= finishedGoodsInventoryMapper.findOrderDetailNumberd(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber()); |
| | | OrderDetail orderDetailNew= finishedGoodsInventoryMapper. |
| | | findOrderDetailNumberd( |
| | | orderDetail.getDeliveryDetail().getOrderId(), |
| | | orderDetail.getDeliveryDetail().getOrderNumber()); |
| | | |
| | | |
| | | //添加出入库记录 |
| | | finishedOperateLogMapper.insertOutFinishedOperateLog(orderDetail,userName,oddNumber,orderDetail.getDeliveryDetail().getBoxNo()); |
| | | |
| | | orderDetailMapper.update(null, |
| | | new UpdateWrapper<OrderDetail>() |
| | | .setSql("out_stock_num = ifnull(out_stock_num,0)+"+orderDetail.getDeliveryDetail().getQuantity()) |
| | | .eq("order_id",orderDetail.getDeliveryDetail().getOrderId()) |
| | | .eq("order_number",orderDetail.getDeliveryDetail().getOrderNumber()) |
| | | ); |
| | | //判断发货单的库存是否存在 |
| | | Integer finishedGoodsInventorycount = finishedGoodsInventoryMapper.findOrderNumberdcount(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getBoxNo()); |
| | | |
| | |
| | | Integer deliverysum = finishedGoodsInventoryMapper.findDeliveryQuantity(orderDetail.getDeliveryDetail().getDeliveryId()); |
| | | //获取已经出库的数量 |
| | | Integer deliverydetailsum = finishedGoodsInventoryMapper.findDeliverydetailsum(orderDetail.getDeliveryDetail().getDeliveryId(),0); |
| | | //获取订单已经出库的数量 |
| | | OrderDetail orderDetail1 = orderDetailMapper. |
| | | selectOne(new QueryWrapper<OrderDetail>() |
| | | .select("ifnull(sum(out_stock_num),0) as out_stock_num") |
| | | .eq("order_id",orderDetail.getDeliveryDetail().getOrderId()) |
| | | ); |
| | | |
| | | |
| | | if(deliverydetailsum==null){ |
| | | deliverydetailsum=0; |
| | | } |
| | |
| | | //修改订单表发货状态 |
| | | finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),1); |
| | | //判断订单是否全部发货 |
| | | if (orderNumberdsum==orderNumberdDeliverysum) { |
| | | if (Objects.equals(ordersum, orderDetail1.getOutStockNum())) { |
| | | //if (ordersum == (orderDeliveryQuantitySum + orderDetail.getWarehouseNum())) { |
| | | //修改订单表发货状态 |
| | | finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),2); |
| | | finishedGoodsInventoryMapper. |
| | | updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),2); |
| | | } |
| | | if (deliverysum==deliverydetailsum+orderDetail.getDeliveryDetail().getQuantity()) { |
| | | //修改发货表状态 |
| | |
| | | finishedOperateLog.getQuantity(), |
| | | finishedOperateLog.getRemarks() |
| | | ); |
| | | //修改订单明细 出库数量 |
| | | orderDetailMapper.update(null, |
| | | new LambdaUpdateWrapper<OrderDetail>(). |
| | | setSql("out_stock_num = ifnull(out_stock_num,0)-"+finishedOperateLog.getQuantity()) |
| | | .eq(OrderDetail::getOrderId, finishedOperateLog.getOrderId()) |
| | | .eq(OrderDetail::getOrderNumber, finishedOperateLog.getOperationNumber()) |
| | | ); |
| | | |
| | | OrderDetail orderDetail1 = orderDetailMapper. |
| | | selectOne(new QueryWrapper<OrderDetail>() |
| | | .select("ifnull(sum(out_stock_num),0) as out_stock_num") |
| | | .eq("order_id",finishedOperateLog.getOrderId()) |
| | | ); |
| | | |
| | | //修改发货明细表状态 |
| | | finishedGoodsInventoryMapper.updateDeliveryDetailState( |
| | | finishedOperateLog.getOrderId(), |
| | |
| | | //修改订单表发货状态 |
| | | finishedGoodsInventoryMapper.updateOrderDeliveryState(finishedOperateLog.getOrderId(),1); |
| | | //判断订单是否全部发货 |
| | | if (ordersum==finishedOperateLog.getQuantity()+ordernumbersum){ |
| | | if (orderDetail1.getOutStockNum()==0){ |
| | | //修改订单表发货状态 |
| | | finishedGoodsInventoryMapper.updateOrderDeliveryState(finishedOperateLog.getOrderId(),0); |
| | | |
| | |
| | | oldFinishedGoodsInventory.setInventory(oldFinishedGoodsInventory.getInventory()-finishedGoodsInventory.getQuantityAvailable()); |
| | | oldFinishedGoodsInventory.setQuantityAvailable(oldFinishedGoodsInventory.getQuantityAvailable()-finishedGoodsInventory.getQuantityAvailable()); |
| | | oldFinishedGoodsInventory.setArea(oldFinishedGoodsInventory.getInventory()*oldFinishedGoodsInventory.getActualSignalArea()); |
| | | oldFinishedGoodsInventory.setComputeGrossArea(oldFinishedGoodsInventory.getInventory()*oldFinishedGoodsInventory.getComputeArea()); |
| | | |
| | | //新库存数据增加 |
| | | finishedGoodsInventory.setId(null); |
| | | finishedGoodsInventory.setInventory(finishedGoodsInventory.getQuantityAvailable()); |
| | | finishedGoodsInventory.setArea(finishedGoodsInventory.getQuantityAvailable()*finishedGoodsInventory.getActualSignalArea()); |
| | | |
| | | finishedGoodsInventory.setComputeGrossArea(finishedGoodsInventory.getQuantityAvailable()*finishedGoodsInventory.getComputeArea()); |
| | | finishedGoodsInventory.setEnterStorageTime(null); |
| | | finishedGoodsInventoryMapper. |
| | | update(oldFinishedGoodsInventory, |
| | | new LambdaUpdateWrapper<FinishedGoodsInventory>() |
| | |
| | | |
| | | //往操作日志表添加数据 |
| | | finishedOperateLog.setQuantity(finishedGoodsInventory.getQuantityAvailable()); |
| | | finishedOperateLog.setArea(finishedGoodsInventory.getQuantityAvailable()*finishedGoodsInventory.getComputeArea()); |
| | | finishedOperateLog.setComputeArea(finishedGoodsInventory.getComputeArea()); |
| | | finishedOperateLog.setRemarks(oldFinishedGoodsInventory.getBoxNo()+"->"+finishedGoodsInventory.getBoxNo()); |
| | | finishedOperateLogMapper.insert(finishedOperateLog); |
| | | |
| | |
| | | oldFinishedGoodsInventory.setInventory(oldFinishedGoodsInventory.getInventory()-finishedGoodsInventory.getQuantityAvailable()); |
| | | oldFinishedGoodsInventory.setQuantityAvailable(oldFinishedGoodsInventory.getQuantityAvailable()-finishedGoodsInventory.getQuantityAvailable()); |
| | | oldFinishedGoodsInventory.setArea(oldFinishedGoodsInventory.getInventory()*oldFinishedGoodsInventory.getActualSignalArea()); |
| | | oldFinishedGoodsInventory.setComputeGrossArea(oldFinishedGoodsInventory.getInventory()*oldFinishedGoodsInventory.getComputeArea()); |
| | | |
| | | existFinishedGoodsInventory.setInventory(existFinishedGoodsInventory.getInventory()+finishedGoodsInventory.getQuantityAvailable()); |
| | | existFinishedGoodsInventory.setQuantityAvailable(existFinishedGoodsInventory.getQuantityAvailable()+finishedGoodsInventory.getQuantityAvailable()); |
| | | existFinishedGoodsInventory.setArea(existFinishedGoodsInventory.getInventory()*existFinishedGoodsInventory.getActualSignalArea()); |
| | | existFinishedGoodsInventory.setComputeGrossArea(existFinishedGoodsInventory.getInventory()*existFinishedGoodsInventory.getComputeArea()); |
| | | |
| | | finishedGoodsInventoryMapper. |
| | | update(oldFinishedGoodsInventory, |
| | |
| | | |
| | | //往操作日志表添加数据 |
| | | finishedOperateLog.setQuantity(finishedGoodsInventory.getQuantityAvailable()); |
| | | finishedOperateLog.setComputeArea(existFinishedGoodsInventory.getComputeArea()); |
| | | finishedOperateLog.setRemarks(oldFinishedGoodsInventory.getBoxNo()+"->"+existFinishedGoodsInventory.getBoxNo()); |
| | | finishedOperateLogMapper.insert(finishedOperateLog); |
| | | |
| | |
| | | } |
| | | |
| | | Map<String, Object> itemmap = new HashMap<>(); |
| | | itemmap.put("detail",finishedGoodsInventoryMapper.getPrintTitleByBox( |
| | | List<Map<String, String>> detail = finishedGoodsInventoryMapper.getPrintTitleByBox( |
| | | finishedGoodsInventory.getOrder().getCustomerId(), |
| | | finishedGoodsInventory.getOrder().getProject(), |
| | | boxNo, |
| | | orderId |
| | | ) ); |
| | | ); |
| | | |
| | | itemmap.put("detail",detail); |
| | | //获取库存里面此订单此箱号的所有产品信息 |
| | | List<Map<String, Object>> detailList = finishedGoodsInventoryMapper |
| | | .getorderProductByBoxNo(orderId,boxNo); |
| | |
| | | for(Map<String, Object> details:detailList){ |
| | | Map<String, Object> detailsmap = new HashMap<>(); |
| | | detailsmap.put("product_name",details.get("product_name").toString()); |
| | | /*finishedOperateLogMapper |
| | | .getDetailLists( |
| | | finishedOperateLog.getOrderId(), |
| | | finishedOperateLog.getRemarks(), |
| | | Integer.valueOf(details.get("product_id").toString()), |
| | | details.get("thickness").toString() |
| | | );*/ |
| | | //获取明细数据 |
| | | List<Map<String, Object>> orderDetailList = finishedGoodsInventoryMapper |
| | | .getPrintDetail( |